summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-07-07 10:04:42 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2020-07-07 10:18:58 +0900
commit921693a0f386b01fb755d044f7345b1d00bf4a05 (patch)
treee227ee13e4583ade8b297cc968ebad97b3ba587e
parentceaec54a3c8366e81863a7d0d9c1f1d9f09960e1 (diff)
downloadsystemd-921693a0f386b01fb755d044f7345b1d00bf4a05.tar.gz
dhcp4: do not try to renew address when client has no lease
-rw-r--r--src/libsystemd-network/sd-dhcp-client.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
index 69589c301b..ef24b9c4de 100644
--- a/src/libsystemd-network/sd-dhcp-client.c
+++ b/src/libsystemd-network/sd-dhcp-client.c
@@ -1441,7 +1441,10 @@ static int client_timeout_t1(sd_event_source *s, uint64_t usec, void *userdata)
sd_dhcp_client *client = userdata;
DHCP_CLIENT_DONT_DESTROY(client);
- client->state = DHCP_STATE_RENEWING;
+ if (client->lease)
+ client->state = DHCP_STATE_RENEWING;
+ else if (client->state != DHCP_STATE_INIT)
+ client->state = DHCP_STATE_INIT_REBOOT;
client->attempt = 0;
return client_initialize_time_events(client);