rpms/dhcp/FC-3 dhcp-3.0.1-fast.patch,NONE,1.1

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Jul 7 22:26:06 UTC 2005


Author: jvdias

Update of /cvs/dist/rpms/dhcp/FC-3
In directory cvs.devel.redhat.com:/tmp/cvs-serv18454

Added Files:
	dhcp-3.0.1-fast.patch 
Log Message:
remove dhclient 1-5 second delay on startup when only configuring one interface

dhcp-3.0.1-fast.patch:
 dhclient.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

--- NEW FILE dhcp-3.0.1-fast.patch ---
--- dhcp-3.0.1/client/dhclient.c.fast	2005-06-09 17:29:31.000000000 -0400
+++ dhcp-3.0.1/client/dhclient.c	2005-06-09 17:28:51.000000000 -0400
@@ -100,6 +100,7 @@
 	int no_dhclient_db = 0;
 	int no_dhclient_pid = 0;
 	int no_dhclient_script = 0;
+	int n_ips=0;
 	char *s;
 
 	/* Make sure we have stdin, stdout and stderr. */
@@ -467,14 +468,20 @@
 	   time plus the sum of the last four bytes of each
 	   interface's hardware address interpreted as an integer.
 	   Not much entropy, but we're booting, so we're not likely to
-	   find anything better. */
+	   find anything better. 
+
+	   Also count the number of interfaces; if there is only one,
+           there is no point in waiting up to 5 seconds to kick off.
+        */
 	seed = 0;
+	n_ips =0;
 	for (ip = interfaces; ip; ip = ip -> next) {
 		int junk;
 		memcpy (&junk,
 			&ip -> hw_address.hbuf [ip -> hw_address.hlen -
 					       sizeof seed], sizeof seed);
 		seed += junk;
+		++n_ips;
 	}
 	srandom (seed + cur_time);
 
@@ -488,8 +495,15 @@
 				client -> state = S_INIT;
 				/* Set up a timeout to start the initialization
 				   process. */
-				add_timeout (cur_time + random () % 5,
-					     state_reboot, client, 0, 0);
+				if( n_ips > 1 )
+				{
+				    add_timeout (cur_time + random () % 5,
+						 state_reboot, client, 0, 0);
+				}else
+				{
+				    add_timeout (cur_time ,
+						 state_reboot, client, 0, 0);
+				}
 			}
 		}
 	}




More information about the fedora-cvs-commits mailing list