#endif
opt = getopt32(argv, "fSv"
IF_FEATURE_UDHCP_PORT("P:", &str_P)
-#if defined CONFIG_UDHCP_DEBUG && CONFIG_UDHCP_DEBUG >= 1
- , &dhcp_verbose
-#endif
+ IF_UDHCP_VERBOSE(, &dhcp_verbose)
);
if (!(opt & 1)) { /* no -f */
bb_daemonize_or_rexec(0, argv);
/* Setup the signal pipe */
udhcp_sp_setup();
+ continue_with_autotime:
timeout_end = monotonic_sec() + server_config.auto_time;
while (1) { /* loop until universe collapses */
fd_set rfds;
}
if (retval == 0) {
write_leases();
- timeout_end = monotonic_sec() + server_config.auto_time;
- continue;
+ goto continue_with_autotime;
}
if (retval < 0 && errno != EINTR) {
log1("Error on select");
bb_info_msg("Received SIGUSR1");
write_leases();
/* why not just reset the timeout, eh */
- timeout_end = monotonic_sec() + server_config.auto_time;
- continue;
+ goto continue_with_autotime;
case SIGTERM:
bb_info_msg("Received SIGTERM");
+ write_leases();
goto ret0;
case 0: /* no signal: read a packet */
break;