From: Tom Gundersen Date: Fri, 11 Apr 2014 16:02:54 +0000 (+0200) Subject: sd-dhcp-client: rebind raw socket when resetting transaction id X-Git-Tag: v213~438 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eb105b96d58a3ebfeedb76a5d421b13748e0395c;p=thirdparty%2Fsystemd.git sd-dhcp-client: rebind raw socket when resetting transaction id As we are now filtering the raw socket based on the transaction id, we must reset the BPF when we reset the transaction id. --- diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c index afad776d1c6..4be37a2389f 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: