summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clatd.c3
-rw-r--r--setroute.c44
-rw-r--r--setroute.h1
3 files changed, 0 insertions, 48 deletions
diff --git a/clatd.c b/clatd.c
index 203714c..f826d46 100644
--- a/clatd.c
+++ b/clatd.c
@@ -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.
diff --git a/setroute.c b/setroute.c
index 3edfe39..f264387 100644
--- a/setroute.c
+++ b/setroute.c
@@ -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);
- }
- }
-}
diff --git a/setroute.h b/setroute.h
index d0e7d79..58f61cf 100644
--- a/setroute.h
+++ b/setroute.h
@@ -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