OSDN Git Service

Small fix to 5008973 fix.
authorRobert Greenwalt <rgreenwalt@google.com>
Fri, 15 Jul 2011 16:45:08 +0000 (09:45 -0700)
committerRobert Greenwalt <rgreenwalt@google.com>
Fri, 15 Jul 2011 16:45:08 +0000 (09:45 -0700)
Removed redundent log.
Cleaned some logic.
Will try to modify route even if recursive operation had an error.

bug: 5008973
Change-Id: Ie2ca51cc39cfac027a8a2e2eaddcb7d6c378c4da

services/java/com/android/server/ConnectivityService.java

index edf1907..cba2354 100644 (file)
@@ -966,12 +966,15 @@ public class ConnectivityService extends IConnectivityManager.Stub {
         if (r.isHostRoute() == false) {
             RouteInfo bestRoute = RouteInfo.selectBestRoute(lp.getRoutes(), r.getGateway());
             if (bestRoute != null) {
-                if (bestRoute.getGateway().equals(r.getGateway()) == false) {
-                    bestRoute = RouteInfo.makeHostRoute(r.getGateway(), bestRoute.getGateway());
-                } else {
+                if (bestRoute.getGateway().equals(r.getGateway())) {
+                    // if there is no better route, add the implied hostroute for our gateway
                     bestRoute = RouteInfo.makeHostRoute(r.getGateway());
+                } else {
+                    // if we will connect to our gateway through another route, add a direct
+                    // route to it's gateway
+                    bestRoute = RouteInfo.makeHostRoute(r.getGateway(), bestRoute.getGateway());
                 }
-                if (!modifyRoute(ifaceName, lp, bestRoute, cycleCount+1, doAdd)) return false;
+                modifyRoute(ifaceName, lp, bestRoute, cycleCount+1, doAdd);
             }
         }
         if (doAdd) {
@@ -1050,9 +1053,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
     public void setDataDependency(int networkType, boolean met) {
         enforceConnectivityInternalPermission();
 
-        if (DBG) {
-            log("setDataDependency(" + networkType + ", " + met + ")");
-        }
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_SET_DEPENDENCY_MET,
                 (met ? ENABLED : DISABLED), networkType));
     }