From 811897239f2f63dc4e4f67e81f3236e5aa1d870f Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Tue, 18 May 2004 17:30:47 +0000 Subject: Some argument changes. Documentation files. --- srcx/jstart.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'srcx/jstart.c') diff --git a/srcx/jstart.c b/srcx/jstart.c index 370c064..ab0c0af 100644 --- a/srcx/jstart.c +++ b/srcx/jstart.c @@ -31,10 +31,9 @@ int main(int argc, char* argv[]) int ch, jid; struct jail j; int printjid = 0; - int console = 0; struct in_addr in; - while((ch = getopt(argc, argv, "ic")) != -1) + while((ch = getopt(argc, argv, "i")) != -1) { switch(ch) { @@ -42,10 +41,6 @@ int main(int argc, char* argv[]) printjid = 1; break; - case 'c': - console = 1; - break; - case '?': default: usage(); @@ -55,7 +50,7 @@ int main(int argc, char* argv[]) argc -= optind; argv += optind; - if(argc != 3) + if(argc < 3) usage(); if(getuid() != 0) @@ -78,27 +73,37 @@ int main(int argc, char* argv[]) if(jid == -1) err(1, "couldn't create jail"); - if(console) - { - - } - if(printjid) { printf("%d\n", jid); fflush(stdout); } - if(!check_jail_command(NULL, START_SCRIPT)) - exit(1); + argc -= 3; + argv += 3; + + if(argc == 0) + { + if(!check_jail_command(NULL, START_SCRIPT)) + exit(1); + + run_jail_command(NULL, START_ARGS[0], START_ARGS, JAIL_RUN_CONSOLE | JAIL_RUN_STDOUT); + } + + else + { + if(!check_jail_command(NULL, argv[0])) + exit(1); + + run_jail_command(NULL, argv[0], argv, JAIL_RUN_CONSOLE | JAIL_RUN_STDOUT); + } - run_jail_command(NULL, START_ARGS[0], START_ARGS, JAIL_RUN_CONSOLE | JAIL_RUN_STDOUT); return 0; } static void usage() { - fprintf(stderr, "usage: jstart [-ic] path hostname ip-number\n"); + fprintf(stderr, "usage: jstart [-ic] path hostname ip-number [command ...]\n"); exit(2); } -- cgit v1.2.3