diff options
Diffstat (limited to 'watchquagga')
-rw-r--r-- | watchquagga/ChangeLog | 5 | ||||
-rw-r--r-- | watchquagga/watchquagga.c | 18 |
2 files changed, 10 insertions, 13 deletions
diff --git a/watchquagga/ChangeLog b/watchquagga/ChangeLog index 20f974ef..79261c26 100644 --- a/watchquagga/ChangeLog +++ b/watchquagga/ChangeLog @@ -1,3 +1,8 @@ +2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu> + + * watchquagga.c: (try_connect) Use new set_nonblocking function instead + of calling fcntl directly. + 2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * watchquagga.c: (run_job) Fix bug: delay.tv_sec was being used diff --git a/watchquagga/watchquagga.c b/watchquagga/watchquagga.c index 772b4294..cde21b99 100644 --- a/watchquagga/watchquagga.c +++ b/watchquagga/watchquagga.c @@ -1,5 +1,5 @@ /* - $Id: watchquagga.c,v 1.9 2005/01/12 16:24:51 ajs Exp $ + $Id: watchquagga.c,v 1.10 2005/02/16 20:40:25 ajs Exp $ Monitor status of quagga daemons and restart if necessary. @@ -23,6 +23,7 @@ #include <zebra.h> #include <thread.h> #include <log.h> +#include <network.h> #include <sigevent.h> #include <lib/version.h> #include <getopt.h> @@ -733,7 +734,6 @@ try_connect(struct daemon *dmn) int sock; struct sockaddr_un addr; socklen_t len; - int flags; if (gs.loglevel > LOG_DEBUG+1) zlog_debug("%s: attempting to connect",dmn->name); @@ -766,18 +766,10 @@ try_connect(struct daemon *dmn) return -1; } - /* Set non-blocking. */ - if ((flags = fcntl(sock, F_GETFL, 0)) < 0) + if (set_nonblocking(sock) < 0) { - zlog_err("%s(%s): fcntl(F_GETFL) failed: %s", - __func__,addr.sun_path, safe_strerror(errno)); - close(sock); - return -1; - } - if (fcntl(sock, F_SETFL, (flags|O_NONBLOCK)) < 0) - { - zlog_err("%s(%s): fcntl(F_SETFL,O_NONBLOCK) failed: %s", - __func__,addr.sun_path, safe_strerror(errno)); + zlog_err("%s(%s): set_nonblocking(%d) failed", + __func__, addr.sun_path, sock); close(sock); return -1; } |