diff options
| author | Lorenzo Colitti <lorenzo@google.com> | 2013-03-05 12:01:12 +0900 |
|---|---|---|
| committer | Lorenzo Colitti <lorenzo@google.com> | 2013-03-07 08:09:03 +0900 |
| commit | 678a9b4bcf78d062675c9543323ad89f0342136c (patch) | |
| tree | fb72a2f0479df48e8e8768ba5caf3f6ee4163066 | |
| parent | 1373eac3f8305f6ad834ba8e3fc4f1a75cd8ac5a (diff) | |
| download | android_external_android-clat-678a9b4bcf78d062675c9543323ad89f0342136c.tar.gz android_external_android-clat-678a9b4bcf78d062675c9543323ad89f0342136c.tar.bz2 android_external_android-clat-678a9b4bcf78d062675c9543323ad89f0342136c.zip | |
Remove code to copy the default route.
This is no longer necessary now that the kernel removes it for us
when accept_ra = 2.
Bug: 8276725
Change-Id: If16d9fbc63af2829f1ee4c87031f895f15a3b3d7
| -rw-r--r-- | clatd.c | 3 | ||||
| -rw-r--r-- | setroute.c | 44 | ||||
| -rw-r--r-- | setroute.h | 1 |
3 files changed, 0 insertions, 48 deletions
@@ -475,9 +475,6 @@ int main(int argc, char **argv) { configure_interface(uplink_interface, plat_prefix, &tunnel); - // turning on forwarding in linux has a side effect of calling rt6_purge_dflt_routers - // workaround: turn the RA-learned default route into a static route - set_default_ipv6_route(uplink_interface); set_forwarding(forwarding_fd,"1\n"); // Loop until someone sends us a signal or brings down the tun interface. @@ -140,47 +140,3 @@ cleanup: return retval; } - -/* function: set_default_ipv6_route - * copies the default route on an interface (turns an RA route into a static - * route), which is needed to keep the route when forwarding is turned on - * device - interface to be the default route - */ -void set_default_ipv6_route(const char *device) { - struct in6_addr default_6 = IN6ADDR_ANY_INIT; - struct default_route_data default_route; - int status; - void *gateway = NULL; - - memset(&default_route, '\0', sizeof(default_route)); - default_route.request_family = AF_INET6; - default_route.request_interface_id = if_nametoindex(device); - if(default_route.request_interface_id == 0) { - logmsg(ANDROID_LOG_FATAL, "set_default_ipv6_route failed: no interface %s found", device); - exit(1); - } - - status = get_default_route(&default_route); - if(status < 0) { - logmsg(ANDROID_LOG_FATAL, "set_default_ipv6_route/get_default_route failed: returned %d", status); - exit(1); - } - - if(!default_route.reply_found_route) { - logmsg(ANDROID_LOG_FATAL, "set_default_ipv6_route/get_default_route failed: no default route found for %s", device); - exit(1); - } - - if(default_route.reply_has_gateway) { - gateway = &default_route.reply_gateway.ip6; - } - - if((status = if_route(device, AF_INET6, &default_6, 0, gateway, 1, 0, ROUTE_REPLACE)) < 0) { - if(status == -EEXIST) { - logmsg(ANDROID_LOG_WARN,"set_default_ipv6_route/if_route failed due to the route already existing"); - } else { - logmsg(ANDROID_LOG_FATAL,"set_default_ipv6_route/if_route failed: %s",strerror(-status)); - exit(1); - } - } -} @@ -23,6 +23,5 @@ #define ROUTE_REPLACE 1 #define ROUTE_CREATE 2 int if_route(const char *ifname, int family, const void *destination, int cidr, const void *gateway, int metric, int mtu, int change_type); -void set_default_ipv6_route(const char *device); #endif |
