diff options
-rw-r--r-- | src/libsystemd-network/sd-dhcp-client.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c index afad776d1c..4be37a2389 100644 --- a/src/libsystemd-network/sd-dhcp-client.c +++ b/src/libsystemd-network/sd-dhcp-client.c @@ -473,7 +473,13 @@ static int client_timeout_resend(sd_event_source *s, uint64_t usec, /* start over as we did not receive a timely ack or nak */ client->state = DHCP_STATE_INIT; client->attempt = 1; + + client->fd = safe_close(client->fd); client->xid = random_u32(); + r = dhcp_network_bind_raw_socket(client->index, &client->link, client->xid); + if (r < 0) + goto error; + client->fd = r; /* fall through */ case DHCP_STATE_INIT: |