summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games/hunt/huntd/driver.c26
-rw-r--r--games/hunt/huntd/huntd.616
2 files changed, 29 insertions, 13 deletions
diff --git a/games/hunt/huntd/driver.c b/games/hunt/huntd/driver.c
index f18d2bd54c8..0ab3bbf3e06 100644
--- a/games/hunt/huntd/driver.c
+++ b/games/hunt/huntd/driver.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: driver.c,v 1.17 2007/04/02 14:55:16 jmc Exp $ */
+/* $OpenBSD: driver.c,v 1.18 2008/10/02 16:44:43 millert Exp $ */
/* $NetBSD: driver.c,v 1.5 1997/10/20 00:37:16 lukem Exp $ */
/*
* Copyright (c) 1983-2003, Regents of the University of California.
@@ -63,7 +63,7 @@ in_addr_t Server_addr = INADDR_ANY; /* address to bind to */
static void clear_scores(void);
static int havechar(PLAYER *);
-static void init(void);
+static void init(int);
int main(int, char *[]);
static void makeboots(void);
static void send_stats(void);
@@ -96,13 +96,19 @@ main(ac, av)
int ret;
int nready;
int fd;
+ int background = 0;
First_arg = av[0];
config();
- while ((c = getopt(ac, av, "sp:a:D:")) != -1) {
+ while ((c = getopt(ac, av, "bsp:a:D:")) != -1) {
switch (c) {
+ case 'b':
+ background = 1;
+ conf_syslog = 1;
+ conf_logerr = 0;
+ break;
case 's':
server = TRUE;
break;
@@ -120,7 +126,7 @@ main(ac, av)
default:
erred:
fprintf(stderr,
- "usage: %s [-s] [-a addr] [-Dvar=value ...] "
+ "usage: %s [-bs] [-a addr] [-Dvar=value ...] "
"[-p port]\n",
av[0]);
exit(2);
@@ -134,7 +140,7 @@ erred:
LOG_DAEMON);
/* Initialise game parameters: */
- init();
+ init(background);
again:
do {
@@ -320,7 +326,7 @@ again:
* Initialize the global parameters.
*/
static void
-init()
+init(int background)
{
int i;
struct sockaddr_in test_port;
@@ -330,10 +336,6 @@ init()
struct sigaction sact;
struct servent *se;
- (void) setsid();
- if (setpgid(getpid(), getpid()) == -1)
- err(1, "setpgid");
-
sact.sa_flags = SA_RESTART;
sigemptyset(&sact.sa_mask);
@@ -452,6 +454,10 @@ init()
cleanup(1);
}
+ /* Become a daemon if asked to do so. */
+ if (background)
+ daemon(0, 0);
+
/* Datagram sockets do not need a listen() call. */
}
diff --git a/games/hunt/huntd/huntd.6 b/games/hunt/huntd/huntd.6
index 96f1de660d9..9d12839a531 100644
--- a/games/hunt/huntd/huntd.6
+++ b/games/hunt/huntd/huntd.6
@@ -1,5 +1,5 @@
.\" $NetBSD: huntd.6,v 1.3 1998/01/09 08:03:42 perry Exp $
-.\" $OpenBSD: huntd.6,v 1.18 2007/05/31 19:19:18 jmc Exp $
+.\" $OpenBSD: huntd.6,v 1.19 2008/10/02 16:44:43 millert Exp $
.\"
.\" Hunt
.\" Copyright (c) 1985 Conrad C. Huang, Gregory S. Couch, Kenneth C.R.C. Arnold
@@ -9,7 +9,7 @@
.\" All rights reserved. The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
-.Dd $Mdocdate: May 31 2007 $
+.Dd $Mdocdate: October 2 2008 $
.Dt HUNTD 6
.Os
.Sh NAME
@@ -17,7 +17,7 @@
.Nd hunt daemon, back-end for hunt game
.Sh SYNOPSIS
.Nm huntd
-.Op Fl s
+.Op Fl bs
.Op Fl a Ar addr
.Sm off
.Oo
@@ -39,6 +39,16 @@ The
.Ar addr
argument must be given as an IP address.
.Pp
+If the
+.Fl b
+option is specified,
+.Nm
+will fork and go into the background.
+In this mode, errors will be logged via
+.Va syslog
+intead of to
+.Va stderr .
+.Pp
Options given with
.Fl D
override those read from configuration files