Merge "DO NOT MERGE Pick upstream intf with valid IP conf" into gingerbread
This commit is contained in:
committed by
Android (Google) Code Review
commit
05f14e2bcf
@@ -51,6 +51,24 @@ public class InterfaceConfiguration implements Parcelable {
|
||||
append(addr & 0xff);
|
||||
}
|
||||
|
||||
/**
|
||||
* This function determines if the interface is up and has a valid IP
|
||||
* configuration (IP address has a non zero octet).
|
||||
*
|
||||
* Note: It is supposed to be quick and hence should not initiate
|
||||
* any network activity
|
||||
*/
|
||||
public boolean isActive() {
|
||||
try {
|
||||
if(interfaceFlags.contains("up")) {
|
||||
if (ipAddr != 0) return true;
|
||||
}
|
||||
} catch (NullPointerException e) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Implement the Parcelable interface {@hide} */
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
|
||||
@@ -1173,18 +1173,18 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
|
||||
for (String iface : ifaces) {
|
||||
for (String regex : mUpstreamIfaceRegexs) {
|
||||
if (iface.matches(regex)) {
|
||||
// verify it is up!
|
||||
// verify it is active
|
||||
InterfaceConfiguration ifcg = null;
|
||||
try {
|
||||
ifcg = service.getInterfaceConfig(iface);
|
||||
if (ifcg.isActive()) {
|
||||
return iface;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error getting iface config :" + e);
|
||||
// ignore - try next
|
||||
continue;
|
||||
}
|
||||
if (ifcg.interfaceFlags.contains("up")) {
|
||||
return iface;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user