]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Fixed CID 1426986, 1426985, 1426984 and 1426983
authorFrancis Dupont <fdupont@isc.org>
Sat, 30 Dec 2017 13:15:12 +0000 (14:15 +0100)
committerFrancis Dupont <fdupont@isc.org>
Sat, 30 Dec 2017 13:15:12 +0000 (14:15 +0100)
server/dhcp.c
server/dhcpleasequery.c

index a0080e52340b66e9f596e5b6ee545f93f26c0287..f302d6e66ad82688396bdc0caac94dfb76180a3c 100644 (file)
@@ -1098,7 +1098,9 @@ void dhcpinform (packet, ms_nulltp)
        struct interface_info *interface;
        int result, h_m_client_ip = 0;
        struct host_decl  *host = NULL, *hp = NULL, *h;
+#if defined(RELAY_PORT)
        u_int16_t relay_port = 0;
+#endif
 #if defined (DEBUG_INFORM_HOST)
        int h_w_fixed_addr = 0;
 #endif
@@ -1715,7 +1717,11 @@ void dhcpinform (packet, ms_nulltp)
         */
        if (!raw.ciaddr.s_addr && gip.len) {
                memcpy(&to.sin_addr, gip.iabuf, 4);
+#if defined(RELAY_PORT)
                to.sin_port = relay_port ? relay_port : local_port;
+#else
+               to.sin_port = local_port;
+#endif
                raw.flags |= htons(BOOTP_BROADCAST);
        } else {
                gip.len = 0;
@@ -1772,7 +1778,9 @@ void nak_lease (packet, cip, network_group)
        unsigned char nak = DHCPNAK;
        struct packet outgoing;
        unsigned i;
+#if defined(RELAY_PORT)
        u_int16_t relay_port = 0;
+#endif
        struct option_state *options = (struct option_state *)0;
        struct option_cache *oc = (struct option_cache *)0;
        struct option_state *eval_options = NULL;
@@ -1953,7 +1961,11 @@ void nak_lease (packet, cip, network_group)
        if (raw.giaddr.s_addr) {
                to.sin_addr = raw.giaddr;
                if (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; /* for testing. */
 
@@ -3776,7 +3788,9 @@ void dhcp_reply (lease)
        int result;
        struct lease_state *state = lease -> state;
        int nulltp, bootpp, unicastp = 1;
+#if defined(RELAY_PORT)
        u_int16_t relay_port = 0;
+#endif
        struct data_string d1;
        const char *s;
 
@@ -3954,7 +3968,11 @@ void dhcp_reply (lease)
        if (raw.giaddr.s_addr) {
                to.sin_addr = raw.giaddr;
                if (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; /* For debugging. */
 
index 40de910d08688073c1dbf4ed82c8b9c308750ea8..7be07889e27dd50384f8796c4baac1bd7f60c7ab 100644 (file)
@@ -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. */
        }