summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Lemon <source@isc.org>1996-06-12 23:49:58 +0000
committerTed Lemon <source@isc.org>1996-06-12 23:49:58 +0000
commite2cb6d536a79cb728886b7c1aaaf4f6f3e35f58f (patch)
tree002fe6108336f1154df2a95d62c4bfd3f0eacab5
parentde8d6db15d7d3a85af6f1972140ffb8ba22af4ce (diff)
downloadisc-dhcp-e2cb6d536a79cb728886b7c1aaaf4f6f3e35f58f.tar.gz
Use standard IP stack to send responses to clients with known IP addresses
-rw-r--r--dhcp.c9
-rw-r--r--server/dhcp.c9
2 files changed, 18 insertions, 0 deletions
diff --git a/dhcp.c b/dhcp.c
index eaa14f61..3b8cc52d 100644
--- a/dhcp.c
+++ b/dhcp.c
@@ -786,6 +786,15 @@ void ack_lease (packet, lease, offer, when)
to.sin_addr = packet -> raw -> ciaddr;
to.sin_port = htons (ntohs (server_port) + 1); /* XXX */
+#ifdef USE_FALLBACK
+ result = send_fallback (&fallback_interface,
+ packet, &raw, outgoing.packet_length,
+ raw.siaddr, &to, &hto);
+ if (result < 0)
+ warn ("send_fallback: %m");
+ return;
+#endif
+
/* Otherwise, broadcast it on the local network. */
} else {
to.sin_addr.s_addr = htonl (INADDR_BROADCAST);
diff --git a/server/dhcp.c b/server/dhcp.c
index eaa14f61..3b8cc52d 100644
--- a/server/dhcp.c
+++ b/server/dhcp.c
@@ -786,6 +786,15 @@ void ack_lease (packet, lease, offer, when)
to.sin_addr = packet -> raw -> ciaddr;
to.sin_port = htons (ntohs (server_port) + 1); /* XXX */
+#ifdef USE_FALLBACK
+ result = send_fallback (&fallback_interface,
+ packet, &raw, outgoing.packet_length,
+ raw.siaddr, &to, &hto);
+ if (result < 0)
+ warn ("send_fallback: %m");
+ return;
+#endif
+
/* Otherwise, broadcast it on the local network. */
} else {
to.sin_addr.s_addr = htonl (INADDR_BROADCAST);