The standard DHCP client in NDK version 2.25.0.9 times out and terminates after about 3 minutes. Most, if not all, other IP products I have worked with do not terminate their DHCP clients unless the product is reset or power cycled. Our previous Stellaris-based product, which used lwIP, does not time out.
To get around this, I copied dhcp.h and dhcpsm.c into my project. I then commented out the " if( ++MaxDiscover > MAX_DISCOVER_TRIES ) goto Exit;" about line 418 in dhcpsm.c. It seems to work OK. I powered up my board without connecting anything to the ethernet connector. About 16 hours later I then plugged the board into my router. The unit got an IP address from the router and proceeded to function normally.
Why did TI put a timeout into the NDK implementation? Is the timeout needed for some reason? Was it to prevent some other problem like a memory leak or other longer-term problem? Is this modification OK or will this cause other problems?
Tom