diff options
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/main.c b/main.c index 324309f..3c364a1 100644 --- a/main.c +++ b/main.c @@ -37,7 +37,7 @@ main(int argc, char **argv) for (i = 1; i < 4; ++i) if (!argv[i] || !*argv[i]) - errx(1, "usage: %s hostname bindaddr port", argv[0]); + errx(1, "usage: %s hostname bindaddr port [config]", argv[0]); hostname = argv[1]; host = argv[2]; port = strtoul(argv[3], &p, 10); @@ -45,9 +45,20 @@ main(int argc, char **argv) errx(1, "invalid port"); #ifdef __OpenBSD__ - if (pledge("stdio inet", "")) + if (argv[4] && unveil(argv[4], "r")) + err(1, "unveil()"); + if (pledge("stdio inet rpath unveil", "")) err(1, "pledge()"); #endif /* __OpenBSD__ */ + if (argv[4]) + readcfg(argv[4]); + +#ifdef __OpenBSD__ + if (argv[4] && (unveil(argv[4], "") || unveil(NULL, NULL))) + err(1, "unveil()"); + if (pledge("stdio inet", "")) + err(1, "pledge()"); +#endif /* __OpenBSD__ */ ircd(); } |