version 1.33, 2010/06/28 22:10:42 |
version 1.34, 2010/07/11 17:06:45 |
|
|
|
|
fputc('\n', ctx->cmdclient->stderr_file); |
fputc('\n', ctx->cmdclient->stderr_file); |
fflush(ctx->cmdclient->stderr_file); |
fflush(ctx->cmdclient->stderr_file); |
|
|
|
ctx->cmdclient->retcode = 1; |
} |
} |
|
|
/* Callback to send print message to client. */ |
/* Callback to send print message to client. */ |
|
|
void |
void |
server_client_msg_command(struct client *c, struct msg_command_data *data) |
server_client_msg_command(struct client *c, struct msg_command_data *data) |
{ |
{ |
struct cmd_ctx ctx; |
struct cmd_ctx ctx; |
struct cmd_list *cmdlist = NULL; |
struct cmd_list *cmdlist = NULL; |
int argc; |
struct msg_exit_data exitdata; |
char **argv, *cause; |
int argc; |
|
char **argv, *cause; |
|
|
ctx.error = server_client_msg_error; |
ctx.error = server_client_msg_error; |
ctx.print = server_client_msg_print; |
ctx.print = server_client_msg_print; |
|
|
} |
} |
cmd_free_argv(argc, argv); |
cmd_free_argv(argc, argv); |
|
|
if (cmd_list_exec(cmdlist, &ctx) != 1) |
if (cmd_list_exec(cmdlist, &ctx) != 1) { |
server_write_client(c, MSG_EXIT, NULL, 0); |
exitdata.retcode = c->retcode; |
|
server_write_client(c, MSG_EXIT, &exitdata, sizeof exitdata); |
|
} |
cmd_list_free(cmdlist); |
cmd_list_free(cmdlist); |
return; |
return; |
|
|
error: |
error: |
if (cmdlist != NULL) |
if (cmdlist != NULL) |
cmd_list_free(cmdlist); |
cmd_list_free(cmdlist); |
server_write_client(c, MSG_EXIT, NULL, 0); |
exitdata.retcode = c->retcode; |
|
server_write_client(c, MSG_EXIT, &exitdata, sizeof exitdata); |
} |
} |
|
|
/* Handle identify message. */ |
/* Handle identify message. */ |