53 #define SERVER_DB_FILE_NAME "echo_plugin_server.db" 54 #define SERVER_STOB_FILE_NAME "echo_plugin_server.stob" 55 #define SERVER_ADDB_STOB_FILE_NAME "linuxstob:echo_plugin_server_addb.stob" 56 #define SERVER_LOG_FILE_NAME "echo_plugin.log" 103 snprintf(out_buf,
buf_size,
"%s:%u:%u:%u", nid,
109 printf(
"%s endpoint: %s\n", ep_name, out_buf);
119 printf(
"\n########################################\n");
120 printf(
"\n\nPlugin started. Press Enter to terminate\n\n");
121 printf(
"\n########################################\n");
122 nr = read(0, &
ch,
sizeof ch);
124 printf(
"\n\nPlugin terminated.\n");
130 return (rc < 0 || rc >=
size) ? -EINVAL : 0;
149 while (
rc == -ENOMEM &&
ctx->log_str) {
156 ctx->log_str_size += 1024;
160 fprintf(
ctx->log_file,
"#####################\n");
161 fprintf(
ctx->log_file,
"%s\n",
ctx->log_str);
162 fprintf(
ctx->log_file,
"#####################\n");
181 ctx->log_file = fopen(fname,
"w+");
193 ctx->log_str_size = 1024;
199 ctx->flt_fids[0].f_container = 11;
200 ctx->flt_fids[0].f_key = 11;
204 rc =
ctx->pdo->fpo_register_filter(&
ctx->flt_fids[0], &
fd, &pcb);
210 ctx->pdo->fpo_enable_filters(
true,
ctx->flt_fids,
218 fclose(
ctx->log_file);
224 ctx->pdo->fpo_enable_filters(
false,
ctx->flt_fids,
227 ctx->pdo->fpo_deregister_plugin(
230 fclose(
ctx->log_file);
235 enum { STRING_LEN = 16 };
236 static char tm_len[STRING_LEN];
237 static char rpc_size[STRING_LEN];
243 "-s",
"ds1",
"-s",
"ds2",
"-s",
"fdmi",
"-q", tm_len,
"-m", rpc_size,
301 int main(
int argc,
char *argv[])
int handle_fdmi_rec_not(struct m0_uint128 *rec_id, struct m0_buf fdmi_rec, struct m0_fid filter_id)
static void deinit_plugin(struct fdmi_plugin_ctx *ctx)
#define M0_ALLOC_ARR(arr, nr)
static int init_plugin(struct fdmi_plugin_ctx *ctx, const char *fname)
#define SERVER_STOB_FILE_NAME
M0_INTERNAL void m0_fol_rec_fini(struct m0_fol_rec *rec)
#define SERVER_DB_FILE_NAME
int m0_cs_default_stypes_init(void)
int m0_rpc_server_start(struct m0_rpc_server_ctx *sctx)
struct m0_fid flt_fids[1]
int m0_init(struct m0 *instance)
int main(int argc, char *argv[])
int(* po_fdmi_rec)(struct m0_uint128 *rec_id, struct m0_buf fdmi_rec, struct m0_fid filter_id)
static int int2str(char *dest, size_t size, int src, int defval)
M0_INTERNAL void m0_fol_rec_init(struct m0_fol_rec *rec, struct m0_fol *fol)
static struct m0 instance
static int tm_recv_queue_len
int m0_fol_rec_to_str(struct m0_fol_rec *rec, char *str, int str_len)
#define SERVER_ADDB_STOB_FILE_NAME
#define SERVER_LOG_FILE_NAME
#define M0_NET_XPRT_PREFIX_DEFAULT
struct m0_net_xprt ** rsx_xprts
static char server_endpoint[M0_NET_LNET_XEP_ADDR_LEN]
static struct m0_rpc_server_ctx sctx
static void fop_fini(void)
struct fdmi_plugin_ctx g_plugin_ctx
static void quit_dialog(void)
struct m0_net_xprt ** m0_net_all_xprt_get(void)
static int max_rpc_msg_size
struct m0t1fs_filedata * fd
void m0_rpc_server_stop(struct m0_rpc_server_ctx *sctx)
static int build_endpoint_addr(char *out_buf, size_t buf_size)
const struct m0_fdmi_pd_ops * pdo
struct m0_pdclust_src_addr src
static int run_server(void)
void m0_cs_default_stypes_fini(void)
M0_INTERNAL int m0_fol_rec_decode(struct m0_fol_rec *rec, struct m0_buf *at)
const struct m0_fdmi_pd_ops * m0_fdmi_plugin_dock_api_get(void)