summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2004-12-06 13:51:17 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2004-12-06 13:51:17 +0000
commit5fddc1cb91eccff537debd39f04201f34e116d20 (patch)
treec69153a05c5635335f4b1bf5798de5ca67ea5db1
parenta20df811f278b976b3bed1536174b9e0179216be (diff)
Set correct source address for relayed packets. This affects only setups that
use 'next-server' config option. From Hans Kremers. OK henning@
-rw-r--r--usr.sbin/dhcpd/dhcp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/dhcpd/dhcp.c b/usr.sbin/dhcpd/dhcp.c
index 4c2b14ed211..b6ecd376718 100644
--- a/usr.sbin/dhcpd/dhcp.c
+++ b/usr.sbin/dhcpd/dhcp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dhcp.c,v 1.14 2004/09/16 18:35:42 deraadt Exp $ */
+/* $OpenBSD: dhcp.c,v 1.15 2004/12/06 13:51:16 claudio Exp $ */
/*
* Copyright (c) 1995, 1996, 1997, 1998, 1999
@@ -1215,8 +1215,10 @@ dhcp_reply(struct lease *lease)
to.sin_addr = raw.giaddr;
to.sin_port = server_port;
+ memcpy(&from, state->from.iabuf, sizeof from);
+
(void) send_packet(state->ip, &raw,
- packet_length, raw.siaddr, &to, &state->haddr);
+ packet_length, form, &to, &state->haddr);
free_lease_state(state, "dhcp_reply gateway");
lease->state = NULL;