summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2012-12-17 00:31:55 +0000
committerrmacklem <rmacklem@FreeBSD.org>2012-12-17 00:31:55 +0000
commita7212cb7084f9ab440b56233e7f68a1d6163d35f (patch)
treed7aadc204b4163f26a6f880dbbc6785b21c829e5 /usr.sbin
parent2a6db409ab7daeaadc29117638217ffd0b02c64f (diff)
downloadFreeBSD-src-a7212cb7084f9ab440b56233e7f68a1d6163d35f.zip
FreeBSD-src-a7212cb7084f9ab440b56233e7f68a1d6163d35f.tar.gz
Fix the gssd daemon so that it uses syslog() to report
an error instead of calling err() when it is daemonized, so that the error gets logged. Discussed with: rwatson, jhb Tested by: Illias A. Marinos, Herbert Poeckl MFC after: 2 weeks
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/gssd/gssd.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/usr.sbin/gssd/gssd.c b/usr.sbin/gssd/gssd.c
index ba2805b..05dc3ae 100644
--- a/usr.sbin/gssd/gssd.c
+++ b/usr.sbin/gssd/gssd.c
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
#include <sys/linker.h>
#include <sys/module.h>
#include <sys/queue.h>
+#include <sys/syslog.h>
#include <ctype.h>
#include <err.h>
#include <pwd.h>
@@ -106,21 +107,43 @@ main(int argc, char **argv)
sun.sun_len = SUN_LEN(&sun);
fd = socket(AF_LOCAL, SOCK_STREAM, 0);
if (!fd) {
+ if (debug_level == 0) {
+ syslog(LOG_ERR, "Can't create local gssd socket");
+ exit(1);
+ }
err(1, "Can't create local gssd socket");
}
oldmask = umask(S_IXUSR|S_IRWXG|S_IRWXO);
if (bind(fd, (struct sockaddr *) &sun, sun.sun_len) < 0) {
+ if (debug_level == 0) {
+ syslog(LOG_ERR, "Can't bind local gssd socket");
+ exit(1);
+ }
err(1, "Can't bind local gssd socket");
}
umask(oldmask);
if (listen(fd, SOMAXCONN) < 0) {
+ if (debug_level == 0) {
+ syslog(LOG_ERR, "Can't listen on local gssd socket");
+ exit(1);
+ }
err(1, "Can't listen on local gssd socket");
}
xprt = svc_vc_create(fd, RPC_MAXDATASIZE, RPC_MAXDATASIZE);
if (!xprt) {
+ if (debug_level == 0) {
+ syslog(LOG_ERR,
+ "Can't create transport for local gssd socket");
+ exit(1);
+ }
err(1, "Can't create transport for local gssd socket");
}
if (!svc_reg(xprt, GSSD, GSSDVERS, gssd_1, NULL)) {
+ if (debug_level == 0) {
+ syslog(LOG_ERR,
+ "Can't register service for local gssd socket");
+ exit(1);
+ }
err(1, "Can't register service for local gssd socket");
}
OpenPOWER on IntegriCloud