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,