-// $Id: vkill.c,v 1.8 2004/08/19 14:30:50 ensc Exp $ --*- c -*--
+// $Id: vkill.c 2491 2007-02-05 20:59:03Z dhozac $ --*- c -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#endif
#include "vserver.h"
-#include "linuxvirtual.h"
#include "util.h"
+#include "lib/virtual.h"
+
#include <getopt.h>
#include <signal.h>
#include <stdlib.h>
}
#else // VC_ENABLE_API_LEGACY
inline static int
-kill_wrapper(xid_t xid, char const *pid, int sig)
+kill_wrapper(xid_t xid, char const *pid_s, int sig)
{
- if (vc_ctx_kill(xid,atoi(pid),sig)==-1) {
+ pid_t pid;
+ long tmp;
+
+ if (!isNumber(pid_s, &tmp, true)) {
+ WRITE_MSG(2, "vkill: '");
+ WRITE_STR(2, pid_s);
+ WRITE_MSG(2, "' is not a number\n");
+ }
+ pid = (pid_t) tmp;
+
+ 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;
}
default :
WRITE_MSG(2, "Try '");
WRITE_STR(2, argv[0]);
- WRITE_MSG(2, " --help\" for more information.\n");
+ WRITE_MSG(2, " --help' for more information.\n");
return EXIT_FAILURE;
break;
}