summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2012-11-04 03:36:39 +0000
committerkrw <krw@openbsd.org>2012-11-04 03:36:39 +0000
commit67447e84d5ee95d9aa3bcfa578503c58bd247ae8 (patch)
tree9cb6c6bfa110c25b8774ae0c30b75cfad8b78b50
parentNo need to pass interface name around when creating routes. (diff)
downloadwireguard-openbsd-67447e84d5ee95d9aa3bcfa578503c58bd247ae8.tar.xz
wireguard-openbsd-67447e84d5ee95d9aa3bcfa578503c58bd247ae8.zip
No need to pass interface name around when flushing routes.
-rw-r--r--sbin/dhclient/dhclient.c6
-rw-r--r--sbin/dhclient/dhcpd.h6
-rw-r--r--sbin/dhclient/kroute.c11
-rw-r--r--sbin/dhclient/privsep.c23
4 files changed, 11 insertions, 35 deletions
diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c
index 07f7b26eb27..5783d7fb809 100644
--- a/sbin/dhclient/dhclient.c
+++ b/sbin/dhclient/dhclient.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dhclient.c,v 1.165 2012/11/04 03:25:31 krw Exp $ */
+/* $OpenBSD: dhclient.c,v 1.166 2012/11/04 03:36:39 krw Exp $ */
/*
* Copyright 2004 Henning Brauer <henning@openbsd.org>
@@ -257,7 +257,7 @@ routehandler(void)
return;
die:
- flush_routes_and_arp_cache(ifi->name, ifi->rdomain);
+ flush_routes_and_arp_cache(ifi->rdomain);
error("routehandler: %s", errmsg);
}
@@ -662,7 +662,7 @@ bind_lease(void)
char *domainname, *nameservers;
delete_old_addresses(ifi->name, ifi->rdomain);
- flush_routes_and_arp_cache(ifi->name, ifi->rdomain);
+ flush_routes_and_arp_cache(ifi->rdomain);
lease = apply_defaults(client->new);
options = lease->options;
diff --git a/sbin/dhclient/dhcpd.h b/sbin/dhclient/dhcpd.h
index 4107cb0cce5..fd458280bf7 100644
--- a/sbin/dhclient/dhcpd.h
+++ b/sbin/dhclient/dhcpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dhcpd.h,v 1.86 2012/11/04 03:25:31 krw Exp $ */
+/* $OpenBSD: dhcpd.h,v 1.87 2012/11/04 03:36:39 krw Exp $ */
/*
* Copyright (c) 2004 Henning Brauer <henning@openbsd.org>
@@ -342,8 +342,8 @@ void priv_delete_old_address(char *, int, struct iaddr);
void add_new_address(char *, int, struct iaddr, in_addr_t *);
void priv_add_new_address(char *, int, struct iaddr, in_addr_t);
-void flush_routes_and_arp_cache(char *, int);
-void priv_flush_routes_and_arp_cache(char *, int);
+void flush_routes_and_arp_cache(int);
+void priv_flush_routes_and_arp_cache(int);
void add_default_route(int, struct iaddr, struct iaddr);
void priv_add_default_route(int, struct iaddr, struct iaddr);
diff --git a/sbin/dhclient/kroute.c b/sbin/dhclient/kroute.c
index 4f5a96978ef..ab43c76c776 100644
--- a/sbin/dhclient/kroute.c
+++ b/sbin/dhclient/kroute.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kroute.c,v 1.6 2012/11/04 03:25:31 krw Exp $ */
+/* $OpenBSD: kroute.c,v 1.7 2012/11/04 03:36:39 krw Exp $ */
/*
* Copyright 2012 Kenneth R Westerback <krw@openbsd.org>
@@ -38,7 +38,7 @@
* arp -dan
*/
void
-flush_routes_and_arp_cache(char *ifname, int rdomain)
+flush_routes_and_arp_cache(int rdomain)
{
size_t len;
struct imsg_hdr hdr;
@@ -46,16 +46,11 @@ flush_routes_and_arp_cache(char *ifname, int rdomain)
hdr.code = IMSG_FLUSH_ROUTES;
hdr.len = sizeof(hdr) +
- sizeof(len) + strlen(ifname) +
sizeof(len) + sizeof(rdomain);
buf = buf_open(hdr.len);
buf_add(buf, &hdr, sizeof(hdr));
- len = strlen(ifname);
- buf_add(buf, &len, sizeof(len));
- buf_add(buf, ifname, len);
-
len = sizeof(rdomain);
buf_add(buf, &len, sizeof(len));
buf_add(buf, &rdomain, len);
@@ -64,7 +59,7 @@ flush_routes_and_arp_cache(char *ifname, int rdomain)
}
void
-priv_flush_routes_and_arp_cache(char *ifname, int rdomain)
+priv_flush_routes_and_arp_cache(int rdomain)
{
struct sockaddr *rti_info[RTAX_MAX];
int mib[7];
diff --git a/sbin/dhclient/privsep.c b/sbin/dhclient/privsep.c
index b2d9e52b713..cb2978a7fe0 100644
--- a/sbin/dhclient/privsep.c
+++ b/sbin/dhclient/privsep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep.c,v 1.19 2012/11/04 03:25:31 krw Exp $ */
+/* $OpenBSD: privsep.c,v 1.20 2012/11/04 03:36:39 krw Exp $ */
/*
* Copyright (c) 2004 Henning Brauer <henning@openbsd.org>
@@ -231,24 +231,6 @@ dispatch_imsg(int fd)
case IMSG_FLUSH_ROUTES:
totlen = sizeof(hdr);
- ifname = NULL;
- addr = NULL;
- if (hdr.len < totlen + sizeof(len))
- error("IMSG_FLUSH_ROUTES missing ifname length");
- buf_read(fd, &len, sizeof(len));
- totlen += sizeof(len);
- if (len == SIZE_T_MAX) {
- error("IMSG_FLUSH_ROUTES invalid ifname length");
- } else if (len > 0) {
- if (hdr.len < totlen + len)
- error("IMSG_FLUSH_ROUTES short ifname");
- if ((ifname = calloc(1, len + 1)) == NULL)
- error("%m");
- buf_read(fd, ifname, len);
- totlen += len;
- } else
- error("IMSG_FLUSH_ROUTES ifname missing");
-
if (hdr.len < totlen + sizeof(len))
error("IMSG_FLUSH_ROUTES missing rdomain length");
buf_read(fd, &len, sizeof(len));
@@ -263,8 +245,7 @@ dispatch_imsg(int fd)
} else
error("IMSG_FLUSH_ROUTES rdomain missing");
- priv_flush_routes_and_arp_cache(ifname, rdomain);
- free(ifname);
+ priv_flush_routes_and_arp_cache(rdomain);
break;
case IMSG_ADD_DEFAULT_ROUTE: