The background info for this is in Bug 19501. When pump fails to renew a lease and then fails to get a new lease for the interface, it exits. Unfortunately, before exiting it does not disable the interface or remove the IP address from the interface. This (in combination with Bug 19501 and Bug 19502) leads to IP address conflicts on a network. In the existing code, if the client is unable to renew on the first attempt, it immediately tries to get a new lease (which almost certainly fails for the same reason the renew failed) and then exits. The interface keeps running with the expired lease's IP address. Sooner or later the DHCP server will hand that address out to another host (although the server and other client should really do an arp to see if it's already taken although MS does not -- at least in some configs). Since pump has exited, it will not ever renew the lease. I suspect the right thing to do (if the patch from Bug 19502 isn't applied) may be to call pumpDisableInterface() before calling exit(0) around pump.c:390. -scott
I can't find any places where pump exits without first calling the ifdown scripts...