summaryrefslogtreecommitdiffstats
path: root/if-bsd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-01-27 19:40:05 +0000
committerRoy Marples <roy@marples.name>2009-01-27 19:40:05 +0000
commit146d8134bdcbb0d21b51f0da2d1b5a7ce30dbf07 (patch)
tree68dbed70f3ce1ef4da43f36fea741b6699ae0f06 /if-bsd.c
parentfa344ba2b1dcf002f348b7fa69ef422585b4b438 (diff)
downloaddhcpcd-146d8134bdcbb0d21b51f0da2d1b5a7ce30dbf07.tar.xz
Fix compile on BSD.
Diffstat (limited to 'if-bsd.c')
-rw-r--r--if-bsd.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/if-bsd.c b/if-bsd.c
index 8648a1a1..1ac15a4d 100644
--- a/if-bsd.c
+++ b/if-bsd.c
@@ -78,7 +78,7 @@ init_socket(void)
set_cloexec(a_fd);
if ((r_fd = socket(PF_ROUTE, SOCK_RAW, 0)) == -1)
return -1;
- set_cloexec(a_fd);
+ set_cloexec(r_fd);
return 0;
}
@@ -315,7 +315,7 @@ manage_link(int fd,
struct rt_msghdr *rtm;
struct if_announcemsghdr *ifa;
struct if_msghdr *ifm;
- struct in_addr dst, net, gate;
+ struct rt rt;
struct sockaddr *sa;
struct sockaddr_in *sin;
@@ -359,20 +359,22 @@ manage_link(int fd,
sa = (struct sockaddr *)(rtm + 1);
if (sa->sa_family != AF_INET)
break;
+ rt.next = NULL;
+ rt.iface = NULL;
sin = (struct sockaddr_in *)sa;
- memcpy(&dst.s_addr, &sin->sin_addr.s_addr,
- sizeof(dst.s_addr));
+ memcpy(&rt.dest.s_addr, &sin->sin_addr.s_addr,
+ sizeof(rt.dest.s_addr));
sa = (struct sockaddr *)
(ROUNDUP(sa->sa_len) + (char *)sa);
sin = (struct sockaddr_in *)sa;
- memcpy(&gate.s_addr, &sin->sin_addr.s_addr,
- sizeof(gate.s_addr));
+ memcpy(&rt.gate.s_addr, &sin->sin_addr.s_addr,
+ sizeof(rt.gate.s_addr));
sa = (struct sockaddr *)
(ROUNDUP(sa->sa_len) + (char *)sa);
sin = (struct sockaddr_in *)sa;
- memcpy(&net.s_addr, &sin->sin_addr.s_addr,
- sizeof(net.s_addr));
- route_deleted(&dst, &net, &gate);
+ memcpy(&rt.net.s_addr, &sin->sin_addr.s_addr,
+ sizeof(rt.net.s_addr));
+ route_deleted(&rt);
break;
}
}