aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-06-29 11:22:24 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2010-06-29 11:22:24 +0000
commit27f032f4765e120b79ea6ced513ac7d32e470815 (patch)
treeb08708f28264915ddf6b9d862165173891787170
parent586eec61ad4692cc4c78e0e8d35091a83e027d8b (diff)
downloadsircbot-27f032f4765e120b79ea6ced513ac7d32e470815.tar.bz2
sircbot-27f032f4765e120b79ea6ced513ac7d32e470815.tar.xz
logfile support
Add support for logfile via -l option.
-rw-r--r--sircbot.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sircbot.c b/sircbot.c
index 9c072d6..6c63e49 100644
--- a/sircbot.c
+++ b/sircbot.c
@@ -65,7 +65,7 @@ static int write_pid(const char *file)
return n;
}
-int daemonize(const char *pidfile)
+int daemonize(const char *pidfile, const char *logfile)
{
int devnull, f;
int pid = fork();
@@ -93,8 +93,8 @@ int daemonize(const char *pidfile)
return -1;
/* redirect stdin/stdout/stderr to /dev/null */
freopen("/dev/null", "r", stdin);
- freopen("/dev/null", "w", stdout);
- freopen("/dev/null", "w", stderr);
+ freopen(logfile, "w", stdout);
+ freopen(logfile, "w", stderr);
return 0;
}
@@ -410,14 +410,18 @@ int main(int argc, char *argv[])
const char *user = "sircbot";
const char *group = "sircbot";
const char *pass = NULL;
+ const char *logfile = "/dev/null";
struct sircbot_channel *chan;
int i, c, port = 6667;
- while ((c = getopt(argc, argv, "fn:p:P:r:s:")) != -1) {
+ while ((c = getopt(argc, argv, "fl:n:p:P:r:s:")) != -1) {
switch (c) {
case 'f':
foreground = 1;
break;
+ case 'l':
+ logfile = optarg;
+ break;
case 'n':
nick = optarg;
break;
@@ -458,7 +462,7 @@ int main(int argc, char *argv[])
/* daemonize */
if (!foreground) {
- if (daemonize(pidfile) < 0)
+ if (daemonize(pidfile, logfile) < 0)
return 1;
}
signal(SIGTERM, sighandler);