Index: if-linux.c |
diff --git a/if-linux.c b/if-linux.c |
index d24b956e33be01ef6f3a43c59526926a0fa05f00..47bbd4aa6dec76db199d8104139e3786bd214ce6 100644 |
--- a/if-linux.c |
+++ b/if-linux.c |
@@ -151,67 +151,6 @@ err_netlink(struct nlmsghdr *nlm) |
} |
static int |
-link_route(struct nlmsghdr *nlm) |
-{ |
- int len, idx, metric; |
- struct rtattr *rta; |
- struct rtmsg *rtm; |
- struct rt rt; |
- char ifn[IF_NAMESIZE + 1]; |
- |
- if (nlm->nlmsg_type != RTM_DELROUTE) |
- return 0; |
- |
- len = nlm->nlmsg_len - sizeof(*nlm); |
- if ((size_t)len < sizeof(*rtm)) { |
- errno = EBADMSG; |
- return -1; |
- } |
- rtm = NLMSG_DATA(nlm); |
- if (rtm->rtm_type != RTN_UNICAST || |
- rtm->rtm_table != RT_TABLE_MAIN || |
- rtm->rtm_family != AF_INET || |
- nlm->nlmsg_pid == (uint32_t)getpid()) |
- return 1; |
- rta = (struct rtattr *) ((char *)rtm + NLMSG_ALIGN(sizeof(*rtm))); |
- len = NLMSG_PAYLOAD(nlm, sizeof(*rtm)); |
- rt.iface = NULL; |
- rt.dest.s_addr = INADDR_ANY; |
- rt.net.s_addr = INADDR_ANY; |
- rt.gate.s_addr = INADDR_ANY; |
- rt.next = NULL; |
- metric = 0; |
- while (RTA_OK(rta, len)) { |
- switch (rta->rta_type) { |
- case RTA_DST: |
- memcpy(&rt.dest.s_addr, RTA_DATA(rta), |
- sizeof(rt.dest.s_addr)); |
- break; |
- case RTA_GATEWAY: |
- memcpy(&rt.gate.s_addr, RTA_DATA(rta), |
- sizeof(rt.gate.s_addr)); |
- break; |
- case RTA_OIF: |
- idx = *(int *)RTA_DATA(rta); |
- if (if_indextoname(idx, ifn)) |
- rt.iface = find_interface(ifn); |
- break; |
- case RTA_PRIORITY: |
- metric = *(int *)RTA_DATA(rta); |
- break; |
- } |
- rta = RTA_NEXT(rta, len); |
- } |
- if (rt.iface != NULL) { |
- if (metric == rt.iface->metric) { |
- inet_cidrtoaddr(rtm->rtm_dst_len, &rt.net); |
- route_deleted(&rt); |
- } |
- } |
- return 1; |
-} |
- |
-static int |
link_addr(struct nlmsghdr *nlm) |
{ |
int len; |
@@ -269,9 +208,6 @@ link_netlink(struct nlmsghdr *nlm) |
struct ifinfomsg *ifi; |
char ifn[IF_NAMESIZE + 1]; |
- len = link_route(nlm); |
- if (len != 0) |
- return len; |
len = link_addr(nlm); |
if (len != 0) |
return len; |