tgAPIVER,
tgINITPID, tgINITPID_PID,
tgXID, tgUTS, tgSYSINFO,
+ tgFEATURE,
} VserverTag;
static struct {
"context, sysname, nodename, release, version, "
"machine and domainname") },
{ "SYSINFO", tgSYSINFO, "gives out information about the systen" },
+ { "FEATURE", tgFEATURE, "returns 0 iff the queried feature is supported" },
};
int wrapper_exit_code = 1;
if (vc_get_vx_info(xid, &info)==-1) perror("vc_get_vx_info()");
else {
- utilvserver_fmt_long(buf, info.xid);
+ utilvserver_fmt_long(buf, info.initpid);
return buf;
}
if (xid==VC_NOCTX) perror("vc_get_task_xid()");
else if (vc_get_vx_info(xid, &info)==-1) perror("vc_get_vx_info()");
else {
- utilvserver_fmt_long(buf, info.xid);
+ utilvserver_fmt_long(buf, info.initpid);
return buf;
}
}
static int
+testFeature(int argc, char *argv[])
+{
+ return (argc>0 && vc_isSupportedString(argv[0])) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+static int
execQuery(char const *vserver, VserverTag tag, int argc, char *argv[])
{
char const * res = 0;
case tgAPIVER : res = getAPIVer(buf); break;
case tgUTS : res = getUTS(buf, xid, argc, argv); break;
case tgSYSINFO : return printSysInfo(buf); break;
+ case tgFEATURE : return testFeature(argc,argv); break;
default : assert(false); abort(); // TODO
}