[systemd-commits] src/libsystemd-network
Tom Gundersen
tomegun at kemper.freedesktop.org
Fri Apr 11 09:44:34 PDT 2014
src/libsystemd-network/sd-dhcp-client.c | 6 ++++++
1 file changed, 6 insertions(+)
New commits:
commit eb105b96d58a3ebfeedb76a5d421b13748e0395c
Author: Tom Gundersen <teg at jklm.no>
Date: Fri Apr 11 18:02:54 2014 +0200
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 afad776..4be37a2 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:
More information about the systemd-commits
mailing list