diff options
| author | Nakidai <nakidai@disroot.org> | 2026-02-04 12:21:47 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2026-02-04 12:21:47 +0300 |
| commit | ce0f41da41a2d97d4a8e7159747464ecef72de4c (patch) | |
| tree | 7e09329f15932710eb9fc14d18053c812c55515f /main.c | |
| parent | 58a7e4a4d7449d58732e024ea07ea3623c10d8de (diff) | |
| download | libreircd-ce0f41da41a2d97d4a8e7159747464ecef72de4c.tar.gz libreircd-ce0f41da41a2d97d4a8e7159747464ecef72de4c.zip | |
Add WHOIS and config parsing
Now users can query each other Plus, server info and creation date can be changed without recompiling using configuration file in IRC message format which is loaded on startup TODO: since readcfg uses IRC logic, handle() now should be able to deal with commands ending with simply \n
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(); } |