version 1.10, 2011/01/04 00:42:46 |
version 1.11, 2011/01/26 01:54:56 |
|
|
{ |
{ |
struct args *args = self->args; |
struct args *args = self->args; |
struct cmd_if_shell_data *cdata; |
struct cmd_if_shell_data *cdata; |
struct job *job; |
const char *shellcmd = args->argv[0]; |
|
|
cdata = xmalloc(sizeof *cdata); |
cdata = xmalloc(sizeof *cdata); |
cdata->cmd = xstrdup(args->argv[1]); |
cdata->cmd = xstrdup(args->argv[1]); |
|
|
if (ctx->curclient != NULL) |
if (ctx->curclient != NULL) |
ctx->curclient->references++; |
ctx->curclient->references++; |
|
|
job = job_add(NULL, 0, NULL, |
job_run(shellcmd, cmd_if_shell_callback, cmd_if_shell_free, cdata); |
args->argv[0], cmd_if_shell_callback, cmd_if_shell_free, cdata); |
|
job_run(job); |
|
|
|
return (1); /* don't let client exit */ |
return (1); /* don't let client exit */ |
} |
} |