summaryrefslogtreecommitdiff
path: root/server/dhcpleasequery.c
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2017-12-30 14:15:12 +0100
committerFrancis Dupont <fdupont@isc.org>2017-12-30 14:15:12 +0100
commit27058b3e3b722f89fd1f512c58dbc64b0d203991 (patch)
treedc7e788e7a5eb29f554126ac6b393977964c5257 /server/dhcpleasequery.c
parent563f0b8aef9558a900f215dfccc571eab99a0223 (diff)
downloadisc-dhcp-27058b3e3b722f89fd1f512c58dbc64b0d203991.tar.gz
Fixed CID 1426986, 1426985, 1426984 and 1426983
Diffstat (limited to 'server/dhcpleasequery.c')
-rw-r--r--server/dhcpleasequery.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/server/dhcpleasequery.c b/server/dhcpleasequery.c
index 40de910d..7be07889 100644
--- a/server/dhcpleasequery.c
+++ b/server/dhcpleasequery.c
@@ -152,7 +152,9 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) {
u_int32_t time_rebinding;
u_int32_t time_expiry;
u_int32_t client_last_transaction_time;
+#if defined(RELAY_PORT)
u_int16_t relay_port = 0;
+#endif
struct sockaddr_in to;
struct in_addr siaddr;
struct data_string prl;
@@ -670,7 +672,11 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) {
*/
to.sin_addr = packet->raw->giaddr;
if (packet->raw->giaddr.s_addr != htonl(INADDR_LOOPBACK)) {
+#if defined(RELAY_PORT)
to.sin_port = relay_port ? relay_port : local_port;
+#else
+ to.sin_port = local_port;
+#endif
} else {
to.sin_port = remote_port; /* XXXSK: For debugging. */
}