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:
Denys Vlasenko 2021-06-03 16:22:35 +02:00
parent f6def87a2e
commit ecaf8e8d08
2 changed files with 12 additions and 8 deletions

View File

@ -1517,6 +1517,9 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
if (client_data.state <= REQUESTING)
/* Initial negotiations in progress, do not disturb */
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 */
lease_remaining = 30;
@ -1524,22 +1527,21 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
packet_num = 0;
switch (client_data.state) {
/* Try to renew/rebind */
case BOUND:
case RENEWING:
case REBINDING:
/* Try to renew/rebind */
change_listen_mode(LISTEN_KERNEL);
client_data.state = RENEW_REQUESTED;
goto got_SIGUSR1;
/* Two SIGUSR1 received, start things over */
case RENEW_REQUESTED:
/* Two SIGUSR1 received, start things over */
change_listen_mode(LISTEN_NONE);
d6_run_script_no_option("deconfig");
/* Wake from SIGUSR2-induced deconfigured state */
default:
/* case RELEASED: */
/* Wake from SIGUSR2-induced deconfigured state */
change_listen_mode(LISTEN_NONE);
}
client_data.state = INIT_SELECTING;

View File

@ -1582,6 +1582,9 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
if (client_data.state <= REQUESTING)
/* Initial negotiations in progress, do not disturb */
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 */
lease_remaining = 30;
@ -1589,21 +1592,20 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
packet_num = 0;
switch (client_data.state) {
/* Try to renew/rebind */
case BOUND:
case RENEWING:
case REBINDING:
/* Try to renew/rebind */
client_data.state = RENEW_REQUESTED;
goto got_SIGUSR1;
/* Two SIGUSR1 received, start things over */
case RENEW_REQUESTED:
/* Two SIGUSR1 received, start things over */
change_listen_mode(LISTEN_NONE);
d4_run_script_deconfig();
/* Wake from SIGUSR2-induced deconfigured state */
default:
/* case RELEASED: */
/* Wake from SIGUSR2-induced deconfigured state */
change_listen_mode(LISTEN_NONE);
}
client_data.state = INIT_SELECTING;