summaryrefslogtreecommitdiff
path: root/srcx/jstart.c
diff options
context:
space:
mode:
authorStef Walter <stef@memberwebs.com>2004-05-18 17:30:47 +0000
committerStef Walter <stef@memberwebs.com>2004-05-18 17:30:47 +0000
commit811897239f2f63dc4e4f67e81f3236e5aa1d870f (patch)
tree05833d178ac7bed7552c958b9e5789452616206d /srcx/jstart.c
parent6dd6bb17ea5bbfe539c1f8a87bf92286e0b15d1f (diff)
Some argument changes.
Documentation files.
Diffstat (limited to 'srcx/jstart.c')
-rw-r--r--srcx/jstart.c37
1 files changed, 21 insertions, 16 deletions
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);
}