speed up ipconfig dhcp timeout to something a little more reasonable. Reference: /n/atom/patch/applied/ipconfigdhcpfast Date: Thu Feb 27 19:11:00 CET 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/ip/ipconfig/ipconfig.h Thu Feb 27 19:10:36 2014 +++ /sys/src/cmd/ip/ipconfig/ipconfig.h Thu Feb 27 19:10:36 2014 @@ -100,7 +100,7 @@ void binddevice(void); void bootprequest(void); void controldevice(void); -void dhcpquery(int, int); +void dhcpquery(int, int, int); void dhcprecv(void); void dhcpsend(int); int dhcptimer(void); --- /sys/src/cmd/ip/ipconfig/main.c Thu Feb 27 19:10:36 2014 +++ /sys/src/cmd/ip/ipconfig/main.c Thu Feb 27 19:10:36 2014 @@ -179,7 +179,7 @@ void binddevice(void); void bootprequest(void); void controldevice(void); -void dhcpquery(int, int); +void dhcpquery(int, int, int); void dhcprecv(void); void dhcpsend(int); int dhcptimer(void); @@ -620,11 +620,11 @@ /* run dhcp if we need something */ if(dodhcp){ mkclientid(); - for(tries = 0; tries < 30; tries++){ - dhcpquery(!noconfig, Sselecting); + int timeout[5] = {1, 2, 4, 7, 10}; + for(tries = 0; tries < nelem(timeout); tries++){ + dhcpquery(!noconfig, Sselecting, timeout[tries]); if(conf.state == Sbound) break; - sleep(1000); } } @@ -885,7 +885,7 @@ } void -dhcpquery(int needconfig, int startstate) +dhcpquery(int needconfig, int startstate, int timeout) { if(needconfig) fprint(conf.cfd, "add %I %I", IPnoaddr, IPnoaddr); @@ -919,7 +919,7 @@ dhcprecv(); if(dhcptimer() < 0) break; - if(time(0) - conf.starttime > 10) + if(time(0) - conf.starttime > timeout) break; } close(conf.fd); @@ -988,7 +988,7 @@ } else conf.lease -= t; } - dhcpquery(needconfig, needconfig? Sselecting: Srenewing); + dhcpquery(needconfig, needconfig? Sselecting: Srenewing, 10); if(needconfig && conf.state == Sbound){ if(ip4cfg() < 0)