X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvkill.c;h=1ce6e529d1bb012b359dc525255c02633f0c0478;hb=e56e7eebefd18c80abf0e533f3cbdd9c1c22e700;hp=d9341976e46db8b85faa5c86d89198ecd9b3cc90;hpb=e1eee2721587a7255b29ec8ba1c753c88f7ccb16;p=util-vserver.git diff --git a/src/vkill.c b/src/vkill.c index d934197..1ce6e52 100644 --- a/src/vkill.c +++ b/src/vkill.c @@ -119,7 +119,7 @@ kill_wrapper_legacy(xid_t UNUSED xid, char const *proc, int UNUSED sig) signal(SIGCHLD, SIG_DFL); pid = Efork(); - if (pid==0) { + if (pid>0) { int status; int res; while ((res=wait4(pid, &status, 0,0))==-1 && @@ -132,25 +132,8 @@ kill_wrapper_legacy(xid_t UNUSED xid, char const *proc, int UNUSED sig) perror("vkill: execl()"); exit(1); } +#endif -static int -kill_wrapper(xid_t xid, char const *pid, int sig) -{ - //printf("kill_wrapper(%u, %s, %i)\n", xid, pid, sig); - if (vc_ctx_kill(xid,atoi(pid),sig)==-1) { - int err = errno; - if (vc_get_version(VC_CAT_COMPAT)==-1) - return kill_wrapper_legacy(xid, pid, sig); - else { - errno = err; - perror("vkill: vc_ctx_kill()"); - return 1; - } - } - - return 0; -} -#else // VC_ENABLE_API_LEGACY inline static int kill_wrapper(xid_t xid, char const *pid_s, int sig) { @@ -167,12 +150,21 @@ kill_wrapper(xid_t xid, char const *pid_s, int sig) if (xid==VC_NOCTX) xid = vc_get_task_xid(pid); if (vc_ctx_kill(xid,pid,sig)==-1) { - perror("vkill: vc_ctx_kill()"); - return 1; +#if defined(VC_ENABLE_API_LEGACY) + int err = errno; + if (vc_get_version(VC_CAT_COMPAT)==-1) + return kill_wrapper_legacy(xid, pid_s, sig); + else { + errno = err; +#else + { +#endif + perror("vkill: vc_ctx_kill()"); + return 1; + } } return 0; } -#endif int main(int argc, char *argv[])