2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* watchquagga.c: (try_connect) Use new set_nonblocking function instead
of calling fcntl directly.
diff --git a/watchquagga/ChangeLog b/watchquagga/ChangeLog
index 20f974e..79261c2 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 772b429..cde21b9 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 @@
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 @@
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;
}