Here's a patch for this dhcpcd client which shortens the timeouts
to something I can stomach.

Dean

Begin3
Title:          dhcpcd
Version:        0.65
Entered-date:   05MAY97
Description:    dhcpcd is an RFC2131 compliant DHCP client daemon. It
                gets an IP address and other information from a
                corresponding DHCP server, configures the network
                interface automatically, and tries to renew the lease
                time according to RFC2131. It works in the RFC1541
                compliant mode when the '-r' option is specified.
                So far it is found that dhcpcd 0.65 works fine with the
                following DHCP servers:
                  1. ISC's dhcpcd-BETA-5.15
                  2. DHCP server on Windows NT server 3.51
                  3. DHCP server version 1.3b by WIDE project.
                  4. DHCP server in the SolarNet PC-Admin 1.5 package
                  5. DHCP server used in the Time Warner Cable's
                     Internet Access Service
                See the "Changes" file if you want to know the difference
                from the previous version.
Keywords:       DHCP, client, Linux
Author:         yoichi@fore.com (Yoichi Hariguchi)
Maintained-by:  yoichi@fore.com (Yoichi Hariguchi)
Primary-site:   ftp.kobe-u.ac.jp /pub/PC-UNIX/Linux/network/dhcp
                33kB dhcpcd-0.65.tar.gz
Alternate-site: sunsite.unc.edu /pub/Linux/system/Network/daemons
                33kB dhcpcd-0.65.tar.gz
Original-site:  
Platforms:       Linux 1.2.xx, 1.3.xx, 2.0.x
Copying-policy: GPL
End

diff -ur dhcpcd-0.65/client.c dhcpcd-0.65.local/client.c
--- dhcpcd-0.65/client.c	Wed May  7 21:36:49 1997
+++ dhcpcd-0.65.local/client.c	Tue May 13 01:57:00 1997
@@ -196,10 +196,17 @@
 	mkDhcpDiscoverMsg(Ifbuf.haddr, &DhcpMsgSend);
 	setSockAddrIn(htons(DHCP_SERVER_PORT), htonl(INADDR_BROADCAST), &addr);
 
+/* this is not something I want to pay for on every card insertion... this
+ * is something that should happen during a system initialization script
+ * only to stagger the broadcasts from multiple clients coming up after a
+ * power failure. -dgaudet
+ */
+#if 0
 	do {
 		waitTime = random() % 10;
 	} while ( waitTime == 0 );
 	sleep(waitTime);
+#endif
 	time(&ReqSentTime);			/* record local time
 								   not @ REQUEST but @ DISCOVER (RFC1541) */
 	if ( sendto(Ssend, (char *)&DhcpMsgSend, sizeof(DhcpMsgSend), 0,
diff -ur dhcpcd-0.65/dhcp.h dhcpcd-0.65.local/dhcp.h
--- dhcpcd-0.65/dhcp.h	Wed May  7 21:36:49 1997
+++ dhcpcd-0.65.local/dhcp.h	Tue May 13 01:55:37 1997
@@ -31,7 +31,7 @@
 #define HOST_INFO_DIR	"/etc/dhcpc"
 #define HOST_INFO_FILE	"hostinfo"
 #define MAGIC_COOKIE	0x63825363	/* magic cookie in the option field */
-#define ARP_REPLY_TIMEOUT	15		/* timeout for arp reply msg in sec */
+#define ARP_REPLY_TIMEOUT	2		/* timeout for arp reply msg in sec */
 #define F_BROADCAST			0x8000	/* broadcast flag in 'flags' field */
 #undef NEED_MACBCAST_RESPONSE		/* define this if MAC broadcast response
 									 * is necessary in receiving DHCPOFFER,
