]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Small code optimisation.
authorRoy Marples <roy@marples.name>
Fri, 20 Nov 2009 14:35:36 +0000 (14:35 +0000)
committerRoy Marples <roy@marples.name>
Fri, 20 Nov 2009 14:35:36 +0000 (14:35 +0000)
dhcp.c
dhcpcd.c

diff --git a/dhcp.c b/dhcp.c
index 67f987243c4752efd1470b0b3b35162fc0fca67e..9f1ad7b61e9d87c186f24f280e8518f17696c42c 100644 (file)
--- a/dhcp.c
+++ b/dhcp.c
@@ -1393,4 +1393,6 @@ get_lease(struct dhcp_lease *lease, const struct dhcp_message *dhcp)
                lease->renewaltime = 0;
        if (get_option_uint32(&lease->rebindtime, dhcp, DHO_REBINDTIME) != 0)
                lease->rebindtime = 0;
+       if (get_option_addr(&lease->server, dhcp, DHO_SERVERID) != 0)
+               lease->server.s_addr = INADDR_ANY;
 }
index 7d0523999e1fa087df3268a5c6fc315ca5a9f24c..7b1f0921f2ed3bedeb4d19e7f2420cbec7a801e7 100644 (file)
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -518,10 +518,9 @@ handle_dhcp(struct interface *iface, struct dhcp_message **dhcpp)
        {
                lease->frominfo = 0;
                lease->addr.s_addr = dhcp->yiaddr;
-               lease->server.s_addr = INADDR_ANY;
-               if (type != 0)
-                       get_option_addr(&lease->server,
-                           dhcp, DHO_SERVERID);
+               if (type == 0 ||
+                   get_option_addr(&lease->server, dhcp, DHO_SERVERID) != 0)
+                       lease->server.s_addr = INADDR_ANY;
                log_dhcp(LOG_INFO, "offered", iface, dhcp);
                free(state->offer);
                state->offer = dhcp;
@@ -574,12 +573,8 @@ handle_dhcp(struct interface *iface, struct dhcp_message **dhcpp)
        }
 
        lease->frominfo = 0;
-       lease->addr.s_addr = dhcp->yiaddr;
-       lease->server.s_addr = INADDR_ANY;
-       if (type != 0)
-               get_option_addr(&lease->server, dhcp, DHO_SERVERID);
-
        delete_timeout(NULL, iface);
+
        /* We now have an offer, so close the DHCP sockets.
         * This allows us to safely ARP when broken DHCP servers send an ACK
         * follows by an invalid NAK. */