udhcpc[6]: on SIGUSR1, do not go from rebind to renew state
function old new delta udhcpc6_main 2628 2636 +8 udhcpc_main 2556 2563 +7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 15/0) Total: 15 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@ -1517,6 +1517,9 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
if (client_data.state <= REQUESTING)
|
if (client_data.state <= REQUESTING)
|
||||||
/* Initial negotiations in progress, do not disturb */
|
/* Initial negotiations in progress, do not disturb */
|
||||||
break;
|
break;
|
||||||
|
if (client_data.state == REBINDING)
|
||||||
|
/* Do not go back from rebind to renew state */
|
||||||
|
break;
|
||||||
|
|
||||||
if (lease_remaining > 30) /* if renew fails, do not go back to BOUND */
|
if (lease_remaining > 30) /* if renew fails, do not go back to BOUND */
|
||||||
lease_remaining = 30;
|
lease_remaining = 30;
|
||||||
@ -1524,22 +1527,21 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
packet_num = 0;
|
packet_num = 0;
|
||||||
|
|
||||||
switch (client_data.state) {
|
switch (client_data.state) {
|
||||||
/* Try to renew/rebind */
|
|
||||||
case BOUND:
|
case BOUND:
|
||||||
case RENEWING:
|
case RENEWING:
|
||||||
case REBINDING:
|
/* Try to renew/rebind */
|
||||||
change_listen_mode(LISTEN_KERNEL);
|
change_listen_mode(LISTEN_KERNEL);
|
||||||
client_data.state = RENEW_REQUESTED;
|
client_data.state = RENEW_REQUESTED;
|
||||||
goto got_SIGUSR1;
|
goto got_SIGUSR1;
|
||||||
|
|
||||||
/* Two SIGUSR1 received, start things over */
|
|
||||||
case RENEW_REQUESTED:
|
case RENEW_REQUESTED:
|
||||||
|
/* Two SIGUSR1 received, start things over */
|
||||||
change_listen_mode(LISTEN_NONE);
|
change_listen_mode(LISTEN_NONE);
|
||||||
d6_run_script_no_option("deconfig");
|
d6_run_script_no_option("deconfig");
|
||||||
|
|
||||||
/* Wake from SIGUSR2-induced deconfigured state */
|
|
||||||
default:
|
default:
|
||||||
/* case RELEASED: */
|
/* case RELEASED: */
|
||||||
|
/* Wake from SIGUSR2-induced deconfigured state */
|
||||||
change_listen_mode(LISTEN_NONE);
|
change_listen_mode(LISTEN_NONE);
|
||||||
}
|
}
|
||||||
client_data.state = INIT_SELECTING;
|
client_data.state = INIT_SELECTING;
|
||||||
|
@ -1582,6 +1582,9 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
if (client_data.state <= REQUESTING)
|
if (client_data.state <= REQUESTING)
|
||||||
/* Initial negotiations in progress, do not disturb */
|
/* Initial negotiations in progress, do not disturb */
|
||||||
break;
|
break;
|
||||||
|
if (client_data.state == REBINDING)
|
||||||
|
/* Do not go back from rebind to renew state */
|
||||||
|
break;
|
||||||
|
|
||||||
if (lease_remaining > 30) /* if renew fails, do not go back to BOUND */
|
if (lease_remaining > 30) /* if renew fails, do not go back to BOUND */
|
||||||
lease_remaining = 30;
|
lease_remaining = 30;
|
||||||
@ -1589,21 +1592,20 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
packet_num = 0;
|
packet_num = 0;
|
||||||
|
|
||||||
switch (client_data.state) {
|
switch (client_data.state) {
|
||||||
/* Try to renew/rebind */
|
|
||||||
case BOUND:
|
case BOUND:
|
||||||
case RENEWING:
|
case RENEWING:
|
||||||
case REBINDING:
|
/* Try to renew/rebind */
|
||||||
client_data.state = RENEW_REQUESTED;
|
client_data.state = RENEW_REQUESTED;
|
||||||
goto got_SIGUSR1;
|
goto got_SIGUSR1;
|
||||||
|
|
||||||
/* Two SIGUSR1 received, start things over */
|
|
||||||
case RENEW_REQUESTED:
|
case RENEW_REQUESTED:
|
||||||
|
/* Two SIGUSR1 received, start things over */
|
||||||
change_listen_mode(LISTEN_NONE);
|
change_listen_mode(LISTEN_NONE);
|
||||||
d4_run_script_deconfig();
|
d4_run_script_deconfig();
|
||||||
|
|
||||||
/* Wake from SIGUSR2-induced deconfigured state */
|
|
||||||
default:
|
default:
|
||||||
/* case RELEASED: */
|
/* case RELEASED: */
|
||||||
|
/* Wake from SIGUSR2-induced deconfigured state */
|
||||||
change_listen_mode(LISTEN_NONE);
|
change_listen_mode(LISTEN_NONE);
|
||||||
}
|
}
|
||||||
client_data.state = INIT_SELECTING;
|
client_data.state = INIT_SELECTING;
|
||||||
|
Reference in New Issue
Block a user