本文整理汇总了C++中cli_usage_out函数的典型用法代码示例。如果您正苦于以下问题:C++ cli_usage_out函数的具体用法?C++ cli_usage_out怎么用?C++ cli_usage_out使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cli_usage_out函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cli_cmd_peer_probe_cbk
int
cli_cmd_peer_probe_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *dict = NULL;
int sent = 0;
int parse_error = 0;
if (!(wordcount == 3)) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_PROBE];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
dict = dict_new ();
if (!dict)
goto out;
ret = dict_set_str (dict, "hostname", (char *)words[2]);
if (ret)
goto out;
ret = valid_internet_address ((char *) words[2], _gf_false);
if (ret == 1) {
ret = 0;
} else {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
/* if (words[3]) {
ret = dict_set_str (dict, "port", (char *)words[3]);
if (ret)
goto out;
}
*/
if (proc->fn) {
ret = proc->fn (frame, THIS, dict);
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Peer probe failed");
}
if (frame)
STACK_DESTROY (frame->root);
return ret;
}
开发者ID:rsevero,项目名称:glusterfs,代码行数:60,代码来源:cli-cmd-peer.c
示例2: cli_cmd_volume_start_cbk
int
cli_cmd_volume_start_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
gf1_cli_start_vol_req req = {0,};
int sent = 0;
int parse_error = 0;
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
if (wordcount < 3 || wordcount > 4) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
req.volname = (char *)words[2];
if (!req.volname)
goto out;
if (wordcount == 4) {
if (!strcmp("force", words[3])) {
req.flags |= GF_CLI_FLAG_OP_FORCE;
} else {
ret = -1;
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_START_VOLUME];
if (proc->fn) {
ret = proc->fn (frame, THIS, &req);
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Volume start failed");
}
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:51,代码来源:cli-cmd-volume.c
示例3: cli_cmd_peer_status_cbk
int
cli_cmd_peer_status_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
int sent = 0;
int parse_error = 0;
if (wordcount != 2) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LIST_FRIENDS];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
if (proc->fn) {
ret = proc->fn (frame, THIS, (char *)words[1] );
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Peer status failed");
}
return ret;
}
开发者ID:BillTheBest,项目名称:glusterfs,代码行数:34,代码来源:cli-cmd-peer.c
示例4: cli_cmd_fsm_log_cbk
int
cli_cmd_fsm_log_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
char *name = "";
if ((wordcount != 4) && (wordcount != 3)) {
cli_usage_out (word->pattern);
goto out;
}
if (wordcount == 4)
name = (char*)words[3];
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_FSM_LOG];
if (proc && proc->fn) {
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
ret = proc->fn (frame, THIS, (void*)name);
}
out:
return ret;
}
开发者ID:ArikaChen,项目名称:glusterfs,代码行数:26,代码来源:cli-cmd-system.c
示例5: cli_cmd_uuid_reset_cbk
int
cli_cmd_uuid_reset_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
int sent = 0;
int parse_error = 0;
gf_answer_t answer = GF_ANSWER_NO;
char *question = NULL;
cli_local_t *local = NULL;
dict_t *dict = NULL;
xlator_t *this = NULL;
question = "Resetting uuid changes the uuid of local glusterd. "
"Do you want to continue?";
if (wordcount != 3) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_UUID_RESET];
this = THIS;
frame = create_frame (this, this->ctx->pool);
if (!frame)
goto out;
dict = dict_new ();
if (!dict) {
ret = -1;
goto out;
}
CLI_LOCAL_INIT (local, words, frame, dict);
answer = cli_cmd_get_confirmation (state, question);
if (GF_ANSWER_NO == answer) {
ret = 0;
goto out;
}
//send NULL as argument since no dictionary is sent to glusterd
if (proc->fn) {
ret = proc->fn (frame, this, dict);
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("uuid reset failed");
}
CLI_STACK_DESTROY (frame);
return ret;
}
开发者ID:ArikaChen,项目名称:glusterfs,代码行数:60,代码来源:cli-cmd-system.c
示例6: cli_cmd_volume_rename_cbk
int
cli_cmd_volume_rename_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *dict = NULL;
int sent = 0;
int parse_error = 0;
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
dict = dict_new ();
if (!dict)
goto out;
if (wordcount != 4) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
ret = dict_set_str (dict, "old-volname", (char *)words[2]);
if (ret)
goto out;
ret = dict_set_str (dict, "new-volname", (char *)words[3]);
if (ret)
goto out;
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_RENAME_VOLUME];
if (proc->fn) {
ret = proc->fn (frame, THIS, dict);
}
out:
if (dict)
dict_destroy (dict);
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Volume rename on '%s' failed", (char *)words[2]);
}
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:54,代码来源:cli-cmd-volume.c
示例7: cli_cmd_volume_remove_brick_cbk
int
cli_cmd_volume_remove_brick_cbk (struct cli_state *state,
struct cli_cmd_word *word, const char **words,
int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *options = NULL;
gf_answer_t answer = GF_ANSWER_NO;
int sent = 0;
int parse_error = 0;
const char *question = "Removing brick(s) can result in data loss. "
"Do you want to Continue?";
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
ret = cli_cmd_volume_remove_brick_parse (words, wordcount, &options);
if (ret) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
answer = cli_cmd_get_confirmation (state, question);
if (GF_ANSWER_NO == answer) {
ret = 0;
goto out;
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_REMOVE_BRICK];
if (proc->fn) {
ret = proc->fn (frame, THIS, options);
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Volume remove-brick failed");
}
if (options)
dict_unref (options);
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:53,代码来源:cli-cmd-volume.c
示例8: cli_cmd_quota_cbk
int
cli_cmd_quota_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = 0;
int parse_err = 0;
int32_t type = 0;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *options = NULL;
gf_answer_t answer = GF_ANSWER_NO;
const char *question = "Disabling quota will delete all the quota "
"configuration. Do you want to continue?";
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_QUOTA];
if (proc == NULL) {
ret = -1;
goto out;
}
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame) {
ret = -1;
goto out;
}
ret = cli_cmd_quota_parse (words, wordcount, &options);
if (ret < 0) {
cli_usage_out (word->pattern);
parse_err = 1;
goto out;
} else if (dict_get_int32 (options, "type", &type) == 0 &&
type == GF_QUOTA_OPTION_TYPE_DISABLE) {
answer = cli_cmd_get_confirmation (state, question);
if (answer == GF_ANSWER_NO)
goto out;
}
if (proc->fn)
ret = proc->fn (frame, THIS, options);
out:
if (options)
dict_unref (options);
if (ret && parse_err == 0)
cli_out ("Quota command failed");
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:52,代码来源:cli-cmd-volume.c
示例9: cli_cmd_snapshot_cbk
int
cli_cmd_snapshot_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = 0;
int parse_err = 0;
dict_t *options = NULL;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
cli_local_t *local = NULL;
proc = &cli_rpc_prog->proctable [GLUSTER_CLI_SNAP];
if (proc == NULL) {
ret = -1;
goto out;
}
frame = create_frame (THIS, THIS->ctx->pool);
if (frame == NULL) {
ret = -1;
goto out;
}
/* Parses the command entered by the user */
ret = cli_cmd_snapshot_parse (words, wordcount, &options, state);
if (ret) {
if (ret < 0) {
cli_usage_out (word->pattern);
parse_err = 1;
} else {
/* User might have cancelled the snapshot operation */
ret = 0;
}
goto out;
}
CLI_LOCAL_INIT (local, words, frame, options);
if (proc->fn)
ret = proc->fn (frame, THIS, options);
out:
if (ret && parse_err == 0)
cli_out ("Snapshot command failed");
CLI_STACK_DESTROY (frame);
return ret;
}
开发者ID:GlusterFS,项目名称:glusterfs,代码行数:49,代码来源:cli-cmd-snapshot.c
示例10: cli_cmd_volume_delete_cbk
int
cli_cmd_volume_delete_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
char *volname = NULL;
gf_answer_t answer = GF_ANSWER_NO;
const char *question = NULL;
int sent = 0;
int parse_error = 0;
question = "Deleting volume will erase all information about the volume. "
"Do you want to continue?";
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_DELETE_VOLUME];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
if (wordcount != 3) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
answer = cli_cmd_get_confirmation (state, question);
if (GF_ANSWER_NO == answer) {
ret = 0;
goto out;
}
volname = (char *)words[2];
if (proc->fn) {
ret = proc->fn (frame, THIS, volname);
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Volume delete failed");
}
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:49,代码来源:cli-cmd-volume.c
示例11: cli_cmd_ganesha_cbk
int cli_cmd_ganesha_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int sent = 0;
int parse_error = 0;
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *options = NULL;
cli_local_t *local = NULL;
char *op_errstr = NULL;
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_GANESHA];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
ret = cli_cmd_ganesha_parse (state, words, wordcount,
&options, &op_errstr);
if (ret) {
if (op_errstr) {
cli_err ("%s", op_errstr);
GF_FREE (op_errstr);
} else
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
CLI_LOCAL_INIT (local, words, frame, options);
if (proc->fn) {
ret = proc->fn (frame, THIS, options);
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Setting global option failed");
}
CLI_STACK_DESTROY (frame);
return ret;
}
开发者ID:RichWpg,项目名称:glusterfs,代码行数:47,代码来源:cli-cmd-global.c
示例12: cli_cmd_volume_replace_brick_cbk
int
cli_cmd_volume_replace_brick_cbk (struct cli_state *state,
struct cli_cmd_word *word,
const char **words,
int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *options = NULL;
int sent = 0;
int parse_error = 0;
#ifdef GF_SOLARIS_HOST_OS
cli_out ("Command not supported on Solaris");
goto out;
#endif
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_REPLACE_BRICK];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
ret = cli_cmd_volume_replace_brick_parse (words, wordcount, &options);
if (ret) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
if (proc->fn) {
ret = proc->fn (frame, THIS, options);
}
out:
if (options)
dict_unref (options);
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Volume replace-brick failed");
}
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:47,代码来源:cli-cmd-volume.c
示例13: cli_cmd_uuid_get_cbk
int
cli_cmd_uuid_get_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
int sent = 0;
int parse_error = 0;
dict_t *dict = NULL;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
cli_local_t *local = NULL;
xlator_t *this = NULL;
this = THIS;
if (wordcount != 3) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_UUID_GET];
frame = create_frame (this, this->ctx->pool);
if (!frame)
goto out;
dict = dict_new ();
if (!dict)
goto out;
CLI_LOCAL_INIT (local, words, frame, dict);
if (proc->fn)
ret = proc->fn (frame, this, dict);
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("uuid get failed");
}
if (dict)
dict_unref (dict);
CLI_STACK_DESTROY (frame);
return ret;
}
开发者ID:ArikaChen,项目名称:glusterfs,代码行数:46,代码来源:cli-cmd-system.c
示例14: cli_cmd_sync_volume_cbk
int
cli_cmd_sync_volume_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
gf1_cli_sync_volume_req req = {0,};
int sent = 0;
int parse_error = 0;
if ((wordcount < 3) || (wordcount > 4)) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
if ((wordcount == 3) || !strcmp(words[3], "all")) {
req.flags = GF_CLI_SYNC_ALL;
req.volname = "";
} else {
req.volname = (char *)words[3];
}
req.hostname = (char *)words[2];
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_SYNC_VOLUME];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
if (proc->fn) {
ret = proc->fn (frame, THIS, &req);
}
out:
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Volume sync failed");
}
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:45,代码来源:cli-cmd-volume.c
示例15: cli_cmd_umount_cbk
int
cli_cmd_umount_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
int ret = -1;
dict_t *dict = NULL;
if (!(wordcount == 3 ||
(wordcount == 4 && strcmp (words[3], "lazy") == 0))) {
cli_usage_out (word->pattern);
goto out;
}
dict = dict_new ();
if (!dict)
goto out;
ret = dict_set_str (dict, "path", (char *)words[2]);
if (ret != 0)
goto out;
ret = dict_set_int32 (dict, "lazy", wordcount == 4);
if (ret != 0)
goto out;
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_UMOUNT];
if (proc && proc->fn) {
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
ret = proc->fn (frame, THIS, dict);
}
out:
if (dict)
dict_unref (dict);
if (!proc && ret)
cli_out ("Umount command failed");
return ret;
}
开发者ID:ArikaChen,项目名称:glusterfs,代码行数:43,代码来源:cli-cmd-system.c
示例16: cli_cmd_volume_top_cbk
int
cli_cmd_volume_top_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *options = NULL;
int sent = 0;
int parse_error = 0;
ret = cli_cmd_volume_top_parse (words, wordcount, &options);
if (ret) {
parse_error = 1;
cli_usage_out (word->pattern);
goto out;
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_TOP_VOLUME];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
if (proc->fn) {
ret = proc->fn (frame, THIS, options);
}
out:
if (options)
dict_unref (options);
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("Volume top failed");
}
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:43,代码来源:cli-cmd-volume.c
示例17: cli_cmd_log_locate_cbk
int
cli_cmd_log_locate_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *options = NULL;
int sent = 0;
int parse_error = 0;
if (!((wordcount == 4) || (wordcount == 5))) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LOG_LOCATE];
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
ret = cli_cmd_log_locate_parse (words, wordcount, &options);
if (ret)
goto out;
if (proc->fn) {
ret = proc->fn (frame, THIS, options);
}
out:
if (options)
dict_destroy (options);
if (ret) {
cli_cmd_sent_status_get (&sent);
if ((sent == 0) && (parse_error == 0))
cli_out ("getting log file location information failed");
}
return ret;
}
开发者ID:pavantc,项目名称:glusterd_scalability,代码行数:43,代码来源:cli-cmd-volume.c
示例18: cli_cmd_pmap_b2p_cbk
int
cli_cmd_pmap_b2p_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
dict_t *dict = NULL;
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
dict = dict_new ();
if (!dict)
goto out;
if (wordcount != 4) {
cli_usage_out (word->pattern);
goto out;
}
ret = dict_set_str (dict, "brick", (char *)words[3]);
if (ret)
goto out;
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_PMAP_PORTBYBRICK];
if (proc->fn) {
ret = proc->fn (frame, THIS, dict);
}
out:
if (!proc && ret) {
if (dict)
dict_destroy (dict);
if (wordcount > 1)
cli_out ("Fetching spec for volume %s failed",
(char *)words[3]);
}
return ret;
}
开发者ID:ArikaChen,项目名称:glusterfs,代码行数:42,代码来源:cli-cmd-system.c
示例19: cli_cmd_copy_file_cbk
int
cli_cmd_copy_file_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
int ret = -1;
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
char *filename = "";
dict_t *dict = NULL;
cli_local_t *local = NULL;
if (wordcount != 4) {
cli_usage_out (word->pattern);
goto out;
}
dict = dict_new ();
if (!dict)
goto out;
filename = (char*)words[3];
ret = dict_set_str (dict, "source", filename);
if (ret)
gf_log ("", GF_LOG_ERROR, "Unable to set filename in dict");
ret = dict_set_str (dict, "volname", "N/A");
if (ret)
gf_log ("", GF_LOG_ERROR, "Unable to set volname in dict");
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_COPY_FILE];
if (proc && proc->fn) {
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
CLI_LOCAL_INIT (local, words, frame, dict);
ret = proc->fn (frame, THIS, (void*)dict);
}
out:
return ret;
}
开发者ID:Anna-Miya-Dan,项目名称:glusterfs,代码行数:40,代码来源:cli-cmd-system.c
示例20: cli_cmd_mount_cbk
int
cli_cmd_mount_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
rpc_clnt_procedure_t *proc = NULL;
call_frame_t *frame = NULL;
int ret = -1;
dict_t *dict = NULL;
void *dataa[] = {NULL, NULL};
if (wordcount < 4) {
cli_usage_out (word->pattern);
goto out;
}
dict = make_seq_dict (wordcount - 3, (char **)words + 3);
if (!dict)
goto out;
dataa[0] = (void *)words[2];
dataa[1] = dict;
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_MOUNT];
if (proc && proc->fn) {
frame = create_frame (THIS, THIS->ctx->pool);
if (!frame)
goto out;
ret = proc->fn (frame, THIS, dataa);
}
out:
if (dict)
dict_unref (dict);
if (!proc && ret)
cli_out ("Mount command failed");
return ret;
}
开发者ID:ArikaChen,项目名称:glusterfs,代码行数:39,代码来源:cli-cmd-system.c
注:本文中的cli_usage_out函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论