summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoremax <emax@FreeBSD.org>2009-02-04 22:04:06 +0000
committeremax <emax@FreeBSD.org>2009-02-04 22:04:06 +0000
commitebea9bff1dbd39061821016995df2ed6229638fe (patch)
treefe79fa257b8da5af41a6be92e335edf2f75cbfab
parentf0da128350a84dfa9167374bf7dcbc4f03500c6a (diff)
downloadFreeBSD-src-ebea9bff1dbd39061821016995df2ed6229638fe.zip
FreeBSD-src-ebea9bff1dbd39061821016995df2ed6229638fe.tar.gz
Clenup code a bit and do not call fork(2) before dameon(3) where not needed.
MFC after: 1 month
-rw-r--r--usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c18
-rw-r--r--usr.sbin/bluetooth/hcsecd/hcsecd.c5
-rw-r--r--usr.sbin/bluetooth/hcseriald/hcseriald.c21
-rw-r--r--usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c20
4 files changed, 12 insertions, 52 deletions
diff --git a/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c b/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c
index 314149e..4e0d04b 100644
--- a/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c
+++ b/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c
@@ -281,22 +281,8 @@ main(int argc, char *argv[])
}
/* Became daemon if required */
- if (background) {
- switch (fork()) {
- case -1:
- err(1, "Could not fork()");
- /* NOT REACHED */
-
- case 0:
- exit(0);
- /* NOT REACHED */
-
- default:
- if (daemon(0, 0) < 0)
- err(1, "Could not daemon()");
- break;
- }
- }
+ if (background && daemon(0, 0) < 0)
+ err(1, "Could not daemon()");
openlog(SPPD_IDENT, LOG_NDELAY|LOG_PERROR|LOG_PID, LOG_DAEMON);
syslog(LOG_INFO, "Starting on %s...", (tty != NULL)? tty : "stdin/stdout");
diff --git a/usr.sbin/bluetooth/hcsecd/hcsecd.c b/usr.sbin/bluetooth/hcsecd/hcsecd.c
index de7a775..72f9c8c 100644
--- a/usr.sbin/bluetooth/hcsecd/hcsecd.c
+++ b/usr.sbin/bluetooth/hcsecd/hcsecd.c
@@ -128,9 +128,8 @@ main(int argc, char *argv[])
(void * const) &filter, sizeof(filter)) < 0)
err(1, "Could not set HCI socket filter");
- if (detach)
- if (daemon(0, 0) < 0)
- err(1, "Could not daemon()ize");
+ if (detach && daemon(0, 0) < 0)
+ err(1, "Could not daemon()ize");
openlog(HCSECD_IDENT, LOG_NDELAY|LOG_PERROR|LOG_PID, LOG_DAEMON);
diff --git a/usr.sbin/bluetooth/hcseriald/hcseriald.c b/usr.sbin/bluetooth/hcseriald/hcseriald.c
index ee8d19c..b811c1d 100644
--- a/usr.sbin/bluetooth/hcseriald/hcseriald.c
+++ b/usr.sbin/bluetooth/hcseriald/hcseriald.c
@@ -101,23 +101,10 @@ main(int argc, char *argv[])
/* Open device */
n = open_device(device, speed, name);
- if (detach) {
- pid_t pid = fork();
-
- if (pid == (pid_t) -1) {
- syslog(LOG_ERR, "Could not fork(). %s (%d)",
- strerror(errno), errno);
- exit(1);
- }
-
- if (pid != 0)
- exit(0);
-
- if (daemon(0, 0) < 0) {
- syslog(LOG_ERR, "Could not daemon(0, 0). %s (%d)",
- strerror(errno), errno);
- exit(1);
- }
+ if (detach && daemon(0, 0) < 0) {
+ syslog(LOG_ERR, "Could not daemon(0, 0). %s (%d)",
+ strerror(errno), errno);
+ exit(1);
}
/* Write PID file */
diff --git a/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c b/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c
index cea2e3b..956dc4d 100644
--- a/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c
+++ b/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c
@@ -166,22 +166,10 @@ main(int argc, char *argv[])
openlog(RFCOMM_PPPD, LOG_PID | LOG_PERROR | LOG_NDELAY, LOG_USER);
- if (detach) {
- pid = fork();
- if (pid == (pid_t) -1) {
- syslog(LOG_ERR, "Could not fork(). %s (%d)",
- strerror(errno), errno);
- exit(1);
- }
-
- if (pid != 0)
- exit(0);
-
- if (daemon(0, 0) < 0) {
- syslog(LOG_ERR, "Could not daemon(0, 0). %s (%d)",
- strerror(errno), errno);
- exit(1);
- }
+ if (detach && daemon(0, 0) < 0) {
+ syslog(LOG_ERR, "Could not daemon(0, 0). %s (%d)",
+ strerror(errno), errno);
+ exit(1);
}
s = socket(PF_BLUETOOTH, SOCK_STREAM, BLUETOOTH_PROTO_RFCOMM);
OpenPOWER on IntegriCloud