summaryrefslogtreecommitdiff
path: root/srcx/jstart.c
diff options
context:
space:
mode:
Diffstat (limited to 'srcx/jstart.c')
-rw-r--r--srcx/jstart.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/srcx/jstart.c b/srcx/jstart.c
index 76bdaae..370c064 100644
--- a/srcx/jstart.c
+++ b/srcx/jstart.c
@@ -3,23 +3,17 @@
/* TODO: Attribute properly */
#include <sys/types.h>
-#include <sys/stat.h>
#include <sys/param.h>
-#include <sys/sysctl.h>
-#include <sys/proc.h>
-#include <sys/user.h>
+#include <sys/jail.h>
+
+#include <netinet/in.h>
+#include <arpa/inet.h>
#include <paths.h>
-#include <signal.h>
#include <stdio.h>
-#include <syslog.h>
#include <err.h>
-#include <errno.h>
-#include <stdarg.h>
#include <unistd.h>
-#include <kvm.h>
#include <limits.h>
-#include <fcntl.h>
#include "util.h"
@@ -27,9 +21,13 @@
#include "../config.h"
#endif
+#define START_SCRIPT "/etc/rc"
+static char* START_ARGS[] = { _PATH_BSHELL, START_SCRIPT };
+
+static void usage();
+
int main(int argc, char* argv[])
{
-#include <signal.h>
int ch, jid;
struct jail j;
int printjid = 0;
@@ -66,13 +64,12 @@ int main(int argc, char* argv[])
if(chdir(argv[0]) != 0)
err(1, "couldn't change to jail directory: %s", argv[0]);
- if(inet_aton(argv[2], &in) != 0)
+ if(inet_aton(argv[2], &in) != 1)
errx(1, "invalid ip address: %s", argv[2]);
memset(&j, 0, sizeof(j));
j.version = 0;
j.path = argv[0];
-#include <signal.h>
j.hostname = argv[1];
j.ip_number = ntohl(in.s_addr);
@@ -84,7 +81,6 @@ int main(int argc, char* argv[])
if(console)
{
-
}
if(printjid)
@@ -93,10 +89,10 @@ int main(int argc, char* argv[])
fflush(stdout);
}
- if(!check_jail_command("/etc/rc"))
+ if(!check_jail_command(NULL, START_SCRIPT))
exit(1);
- run_jail_command("/etc/rc");
+ run_jail_command(NULL, START_ARGS[0], START_ARGS, JAIL_RUN_CONSOLE | JAIL_RUN_STDOUT);
return 0;
}
@@ -105,3 +101,5 @@ static void usage()
fprintf(stderr, "usage: jstart [-ic] path hostname ip-number\n");
exit(2);
}
+
+