diff options
author | gad <gad@FreeBSD.org> | 2001-06-15 22:30:02 +0000 |
---|---|---|
committer | gad <gad@FreeBSD.org> | 2001-06-15 22:30:02 +0000 |
commit | 30c0318b7212b809feebeafc31e09189164336db (patch) | |
tree | 829ed21ba70cd48c0ce7a7bebbba3fb0005c7f9d | |
parent | e402d6c9159ae45f5056765c53cebfe6c25ee35e (diff) | |
download | FreeBSD-src-30c0318b7212b809feebeafc31e09189164336db.zip FreeBSD-src-30c0318b7212b809feebeafc31e09189164336db.tar.gz |
*** empty log message ***
-rw-r--r-- | usr.sbin/lpr/lpd/lpd.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/usr.sbin/lpr/lpd/lpd.c b/usr.sbin/lpr/lpd/lpd.c index ed912c9..75ee364 100644 --- a/usr.sbin/lpr/lpd/lpd.c +++ b/usr.sbin/lpr/lpd/lpd.c @@ -114,8 +114,8 @@ static void doit(void); static void startup(void); static void chkhost(struct sockaddr *_f); static int ckqueue(struct printer *_pp); +static int *socksetup(int _af, int _debuglvl); static void usage(void); -static int *socksetup(int _af, int _options); /* XXX from libc/net/rcmd.c */ extern int __ivaliduser_sa __P((FILE *, struct sockaddr *, socklen_t, @@ -299,10 +299,7 @@ main(int argc, char **argv) FD_SET(funix, &defreadfds); listen(funix, 5); if (pflag == 0) { - options = SO_REUSEADDR; - if (socket_debug) - options |= SO_DEBUG; - finet = socksetup(family, options); + finet = socksetup(family, socket_debug); } else finet = NULL; /* pretend we couldn't open TCP socket. */ if (finet) { @@ -322,7 +319,7 @@ main(int argc, char **argv) * XXX - should be redone for multi-protocol */ for (;;) { - int domain = -1, nfds, s = -1; + int domain, nfds, s; fd_set readfds; FD_COPY(&defreadfds, &readfds); @@ -332,8 +329,8 @@ main(int argc, char **argv) syslog(LOG_WARNING, "select: %m"); continue; } - domain = 0; /* avoid compile-time warning */ - s = 0; /* avoid compile-time warning */ + domain = -1; /* avoid compile-time warning */ + s = -1; /* avoid compile-time warning */ if (FD_ISSET(funix, &readfds)) { domain = AF_UNIX, fromlen = sizeof(fromunix); s = accept(funix, @@ -699,7 +696,7 @@ again: /* if af is PF_UNSPEC more than one socket may be returned */ /* the returned list is dynamically allocated, so caller needs to free it */ static int * -socksetup(int af, int options) +socksetup(int af, int debuglvl) { struct addrinfo hints, *res, *r; int error, maxs, *s, *socks; @@ -732,16 +729,15 @@ socksetup(int af, int options) syslog(LOG_DEBUG, "socket(): %m"); continue; } - if (options & SO_REUSEADDR) - if (setsockopt(*s, SOL_SOCKET, SO_REUSEADDR, &on, - sizeof(on)) < 0) { - syslog(LOG_ERR, "setsockopt(SO_REUSEADDR): %m"); - close(*s); - continue; - } - if (options & SO_DEBUG) - if (setsockopt(*s, SOL_SOCKET, SO_DEBUG, - &on, sizeof(on)) < 0) { + if (setsockopt(*s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) + < 0) { + syslog(LOG_ERR, "setsockopt(SO_REUSEADDR): %m"); + close(*s); + continue; + } + if (debuglvl) + if (setsockopt(*s, SOL_SOCKET, SO_DEBUG, &debuglvl, + sizeof(debuglvl)) < 0) { syslog(LOG_ERR, "setsockopt (SO_DEBUG): %m"); close(*s); continue; |