summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-04-27 14:00:39 +0000
committerRoy Marples <roy@marples.name>2009-04-27 14:00:39 +0000
commit3949692e4d9061acb8cebcd002e2829dd085eaf5 (patch)
tree9cd8395c940277b4543ca76b72f7953e9d08cd2b
parent075c98728215caccf4e408fbbf6bd95f66607f3b (diff)
downloaddhcpcd-3949692e4d9061acb8cebcd002e2829dd085eaf5.tar.xz
Fix existing address detection.
-rw-r--r--dhcpcd.c2
-rw-r--r--net.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/dhcpcd.c b/dhcpcd.c
index 11107daf..e4f0c511 100644
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -562,7 +562,7 @@ handle_dhcp(struct interface *iface, struct dhcp_message **dhcpp)
/* If the interface already has the address configured
* then we can't ARP for duplicate detection. */
addr.s_addr = state->offer->yiaddr;
- if (!has_address(iface->name, &addr, NULL)) {
+ if (has_address(iface->name, &addr, NULL) != 1) {
state->claims = 0;
state->probes = 0;
state->conflicts = 0;
diff --git a/net.c b/net.c
index 432398d1..bce10d19 100644
--- a/net.c
+++ b/net.c
@@ -375,8 +375,8 @@ do_address(const char *ifname,
if (ifa->ifa_addr->sa_family != AF_INET ||
strcmp(ifa->ifa_name, ifname) != 0)
continue;
- a = (const struct sockaddr_in *)(void *)&ifa->ifa_addr;
- n = (const struct sockaddr_in *)(void *)&ifa->ifa_netmask;
+ a = (const struct sockaddr_in *)(void *)ifa->ifa_addr;
+ n = (const struct sockaddr_in *)(void *)ifa->ifa_netmask;
if (ifa->ifa_flags & IFF_POINTOPOINT)
d = (const struct sockaddr_in *)(void *)
&ifa->ifa_dstaddr;