changeset 57:e2185cab548d draft

Don't try to send messages when we infinite leasetime and the interface fd is closed.
author Roy Marples <roy@marples.name>
date Thu, 08 Feb 2007 09:40:22 +0000
parents ec69e8346e0d
children 8120e49daefd
files ChangeLog Makefile client.c
diffstat 3 files changed, 21 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Jan 28 16:54:27 2007 +0000
+++ b/ChangeLog	Thu Feb 08 09:40:22 2007 +0000
@@ -1,3 +1,7 @@
+dhcpcd-3.0.11
+Don't try to send messages when we infinite leasetime and the interface
+fd is closed.
+
 dhcpcd-3.0.10
 Only write a new ntp.conf if any of our servers are not present in it.
 We now work with SIGCHLD and call wait so that we don't leave any
--- a/Makefile	Sun Jan 28 16:54:27 2007 +0000
+++ b/Makefile	Thu Feb 08 09:40:22 2007 +0000
@@ -1,6 +1,6 @@
 # Should work for both GNU make and BSD make
 
-VERSION = 3.0.10
+VERSION = 3.0.11
 
 CFLAGS ?= -O2 -pipe
 
--- a/client.c	Sun Jan 28 16:54:27 2007 +0000
+++ b/client.c	Thu Feb 08 09:40:22 2007 +0000
@@ -181,18 +181,23 @@
 	      retval = 0;
 	      while (retval == 0)
 		{
-		  /* Slow down our requests */
-		  if (retry < TIMEOUT_MINI_INF)
-		    retry += TIMEOUT_MINI;
-		  else if (retry > TIMEOUT_MINI_INF)
-		    retry = TIMEOUT_MINI_INF;
+		  maxfd = signal_fd_set (&rset, iface->fd);
+		  if (iface->fd == -1)
+		    retval = select (maxfd + 1, &rset, NULL, NULL, NULL);
+		  else
+		    {
+		      /* Slow down our requests */
+		      if (retry < TIMEOUT_MINI_INF)
+			retry += TIMEOUT_MINI;
+		      else if (retry > TIMEOUT_MINI_INF)
+			retry = TIMEOUT_MINI_INF;
 
-		  tv.tv_sec = retry;
-		  tv.tv_usec = 0;
-		  maxfd = signal_fd_set (&rset, iface->fd);
-		  retval = select (maxfd + 1, &rset, NULL, NULL, &tv);
-		  if (retval == 0)
-		    SEND_MESSAGE (last_type);
+		      tv.tv_sec = retry;
+		      tv.tv_usec = 0;
+		      retval = select (maxfd + 1, &rset, NULL, NULL, &tv);
+		      if (retval == 0)
+			SEND_MESSAGE (last_type);
+		    }
 		}
 	    }
 	  else