]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Pointless looping in bpf.packet, as pointed out by D. Young.
authorRoy Marples <roy@marples.name>
Sun, 30 Mar 2008 08:26:34 +0000 (08:26 +0000)
committerRoy Marples <roy@marples.name>
Sun, 30 Mar 2008 08:26:34 +0000 (08:26 +0000)
bpf.c
configure.c
if-bsd.c

diff --git a/bpf.c b/bpf.c
index 293f023cc7970defe6214447753d7ebfd0b10b84..5e978ecd1020d3b500a0a9aa7b5e9bad1f2b6dd6 100644 (file)
--- a/bpf.c
+++ b/bpf.c
@@ -172,7 +172,7 @@ get_packet(const struct interface *iface, unsigned char *data,
        } else
                bpf.buffer += *buffer_pos;
 
-       while (bpf.packet) {
+       do {
                len = 0;
                have_data = false;
 
@@ -211,10 +211,7 @@ get_packet(const struct interface *iface, unsigned char *data,
 
                if (have_data)
                        return len;
-
-               if (*buffer_pos == 0)
-                       break;
-       }
+       } while (*buffer_pos);
 
        /* No valid packets left, so return */
        *buffer_pos = 0;
index ad9f8b848357c7668eb302adf17741c4b9b9a5ca..47273744a59fa49f08b791ec64c190909615f992 100644 (file)
@@ -691,9 +691,9 @@ configure(const struct options *options, struct interface *iface,
                /* Only reset things if we had set them before */
                if (iface->previous_address.s_addr != 0) {
                        if (!(options->options & DHCPCD_KEEPADDRESS)) {
-                               del_address(iface->name,
-                                           &iface->previous_address,
-                                           &iface->previous_netmask);
+                               d_address(iface->name,
+                                         &iface->previous_address,
+                                         &iface->previous_netmask);
                                memset(&iface->previous_address,
                                       0, sizeof (iface->previous_address));
                                memset(&iface->previous_netmask,
index 9c7cc6e42ce5a1592f07e39cd631f1e53a5329f2..c6c64681e785e68408e8babbecd011d410ba1108 100644 (file)
--- a/if-bsd.c
+++ b/if-bsd.c
@@ -81,18 +81,19 @@ if_address(const char *ifname, const struct in_addr *address,
        _s.sa = &_var; \
        _s.sin->sin_family = AF_INET; \
        _s.sin->sin_len = sizeof(*_s.sin); \
-       memcpy(&_s.sin->sin_addr, &_addr, sizeof(_s.sin->sin_addr));
+       memcpy(&_s.sin->sin_addr, _addr, sizeof(_s.sin->sin_addr));
 
-       ADDADDR(ifa.ifra_addr, *address);
-       ADDADDR(ifa.ifra_mask, *netmask);
-       if (action >= 0)
-               ADDADDR(ifa.ifra_broadaddr, *broadcast);
+       ADDADDR(ifa.ifra_addr, address);
+       ADDADDR(ifa.ifra_mask, netmask);
+       if (action >= 0) {
+               ADDADDR(ifa.ifra_broadaddr, broadcast);
+       }
 #undef ADDADDR
 
        if (action < 0)
                retval = ioctl(s, SIOCDIFADDR, &ifa);
        else
-               retval = ioctl(s, SIOCDIFADDR, &ifa);
+               retval = ioctl(s, SIOCAIFADDR, &ifa);
        close(s);
        return retval;
 }
@@ -145,12 +146,12 @@ if_route(const char *ifname, const struct in_addr *destination,
        memset (&su, 0, sizeof(su)); \
        su.sin.sin_family = AF_INET; \
        su.sin.sin_len = sizeof(su.sin); \
-       memcpy (&su.sin.sin_addr, &_addr, sizeof(su.sin.sin_addr)); \
+       memcpy (&su.sin.sin_addr, _addr, sizeof(su.sin.sin_addr)); \
        l = SA_SIZE (&(su.sa)); \
        memcpy (bp, &(su), l); \
        bp += l;
 
-       ADDADDR(*destination);
+       ADDADDR(destination);
 
        if (netmask->s_addr == INADDR_BROADCAST ||
            gateway->s_addr == INADDR_ANY)
@@ -176,10 +177,10 @@ if_route(const char *ifname, const struct in_addr *destination,
                free(hwaddr);
        } else {
                rtm.hdr.rtm_flags |= RTF_GATEWAY;
-               ADDADDR(*gateway);
+               ADDADDR(gateway);
        }
 
-       ADDADDR(*netmask);
+       ADDADDR(netmask);
 #undef ADDADDR
 
        rtm.hdr.rtm_msglen = l = bp - (char *)&rtm;