summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2012-05-24 15:44:01 -0700
committerWink Saville <wink@google.com>2012-05-24 15:44:01 -0700
commitf19540a2d7958f60f88428f964733e50d462c65b (patch)
tree5a98ad47ea42ab0de3e752d695d3b2a374daa951 /telephony
parenta587b890bb0c2f800fe4dfd3267f26366d00d32c (diff)
downloadframeworks_base-f19540a2d7958f60f88428f964733e50d462c65b.zip
frameworks_base-f19540a2d7958f60f88428f964733e50d462c65b.tar.gz
frameworks_base-f19540a2d7958f60f88428f964733e50d462c65b.tar.bz2
Add debug for tracking down connectivity issues.
bug: 6529189 Change-Id: I5dc4316ceacf48625f0839e0200b77a1e0984465
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/ApnContext.java46
-rw-r--r--telephony/java/com/android/internal/telephony/DataConnection.java9
-rw-r--r--telephony/java/com/android/internal/telephony/DataConnectionAc.java5
-rw-r--r--telephony/java/com/android/internal/telephony/DataConnectionTracker.java3
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnection.java7
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java49
6 files changed, 75 insertions, 44 deletions
diff --git a/telephony/java/com/android/internal/telephony/ApnContext.java b/telephony/java/com/android/internal/telephony/ApnContext.java
index e984a87..3a3044e 100644
--- a/telephony/java/com/android/internal/telephony/ApnContext.java
+++ b/telephony/java/com/android/internal/telephony/ApnContext.java
@@ -78,8 +78,11 @@ public class ApnContext {
return mDataConnection;
}
- public synchronized void setDataConnection(DataConnection dataConnection) {
- mDataConnection = dataConnection;
+ public synchronized void setDataConnection(DataConnection dc) {
+ if (DBG) {
+ log("setDataConnection: old dc=" + mDataConnection + " new dc=" + dc + " this=" + this);
+ }
+ mDataConnection = dc;
}
@@ -88,10 +91,15 @@ public class ApnContext {
}
public synchronized void setDataConnectionAc(DataConnectionAc dcac) {
+ if (DBG) {
+ log("setDataConnectionAc: old dcac=" + mDataConnectionAc + " new dcac=" + dcac);
+ }
if (dcac != null) {
dcac.addApnContextSync(this);
} else {
- if (mDataConnectionAc != null) mDataConnectionAc.removeApnContextSync(this);
+ if (mDataConnectionAc != null) {
+ mDataConnectionAc.removeApnContextSync(this);
+ }
}
mDataConnectionAc = dcac;
}
@@ -141,7 +149,7 @@ public class ApnContext {
public synchronized void setState(DataConnectionTracker.State s) {
if (DBG) {
- log("setState: " + s + " for type " + mApnType + ", previous state:" + mState);
+ log("setState: " + s + ", previous state:" + mState);
}
mState = s;
@@ -165,7 +173,7 @@ public class ApnContext {
public synchronized void setReason(String reason) {
if (DBG) {
- log("set reason as " + reason + ", for type " + mApnType + ",current state " + mState);
+ log("set reason as " + reason + ",current state " + mState);
}
mReason = reason;
}
@@ -180,8 +188,7 @@ public class ApnContext {
public void setEnabled(boolean enabled) {
if (DBG) {
- log("set enabled as " + enabled + ", for type " +
- mApnType + ", current state is " + mDataEnabled.get());
+ log("set enabled as " + enabled + ", current state is " + mDataEnabled.get());
}
mDataEnabled.set(enabled);
}
@@ -192,8 +199,7 @@ public class ApnContext {
public void setDependencyMet(boolean met) {
if (DBG) {
- log("set mDependencyMet as " + met + ", for type " + mApnType +
- ", current state is " + mDependencyMet.get());
+ log("set mDependencyMet as " + met + " current state is " + mDependencyMet.get());
}
mDependencyMet.set(met);
}
@@ -204,25 +210,19 @@ public class ApnContext {
@Override
public String toString() {
- return "state=" + getState() + " apnType=" + mApnType;
+ // We don't print mDataConnection because its recursive.
+ return "{mApnType=" + mApnType + " mState=" + getState() + " mWaitingApns=" + mWaitingApns +
+ " mWaitingApnsPermanentFailureCountDown=" + mWaitingApnsPermanentFailureCountDown +
+ " mApnSetting=" + mApnSetting + " mDataConnectionAc=" + mDataConnectionAc +
+ " mReason=" + mReason + " mDataEnabled=" + mDataEnabled +
+ " mDependencyMet=" + mDependencyMet + "}";
}
protected void log(String s) {
- Log.d(LOG_TAG, "[ApnContext] " + s);
+ Log.d(LOG_TAG, "[ApnContext:" + mApnType + "] " + s);
}
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- pw.println("ApnContext:");
- pw.println(" mApnType=" + mApnType);
- pw.println(" mState=" + mState);
- pw.println(" mWaitingApns=" + mWaitingApns);
- pw.println(" mWaitingApnsPermanentFailureCountDown=" +
- mWaitingApnsPermanentFailureCountDown);
- pw.println(" mApnSetting=" + mApnSetting);
- pw.println(" mDataConnection=" + mDataConnection);
- pw.println(" mDataConnectionAc=" + mDataConnectionAc);
- pw.println(" mReason=" + mReason);
- pw.println(" mDataEnabled=" + mDataEnabled);
- pw.println(" mDependencyMet=" + mDependencyMet);
+ pw.println("ApnContext: " + this.toString());
}
}
diff --git a/telephony/java/com/android/internal/telephony/DataConnection.java b/telephony/java/com/android/internal/telephony/DataConnection.java
index 0033ceb..cc4adfd 100644
--- a/telephony/java/com/android/internal/telephony/DataConnection.java
+++ b/telephony/java/com/android/internal/telephony/DataConnection.java
@@ -69,7 +69,7 @@ public abstract class DataConnection extends StateMachine {
protected static int mCount;
protected AsyncChannel mAc;
- private List<ApnContext> mApnList = null;
+ protected List<ApnContext> mApnList = null;
PendingIntent mReconnectIntent = null;
private DataConnectionTracker mDataConnectionTracker = null;
@@ -247,7 +247,7 @@ public abstract class DataConnection extends StateMachine {
protected FailCause lastFailCause;
protected int mRetryOverride = -1;
protected static final String NULL_IP = "0.0.0.0";
- private int mRefCount;
+ protected int mRefCount;
Object userData;
//***** Abstract methods
@@ -600,9 +600,8 @@ public abstract class DataConnection extends StateMachine {
result.newLp.setHttpProxy(mLinkProperties.getHttpProxy());
if (DBG && (! result.oldLp.equals(result.newLp))) {
- if (DBG) log("updateLinkProperty old != new");
- if (VDBG) log("updateLinkProperty old LP=" + result.oldLp);
- if (VDBG) log("updateLinkProperty new LP=" + result.newLp);
+ log("updateLinkProperty old LP=" + result.oldLp);
+ log("updateLinkProperty new LP=" + result.newLp);
}
mLinkProperties = result.newLp;
diff --git a/telephony/java/com/android/internal/telephony/DataConnectionAc.java b/telephony/java/com/android/internal/telephony/DataConnectionAc.java
index 96419ae..a24414f 100644
--- a/telephony/java/com/android/internal/telephony/DataConnectionAc.java
+++ b/telephony/java/com/android/internal/telephony/DataConnectionAc.java
@@ -580,6 +580,11 @@ public class DataConnectionAc extends AsyncChannel {
}
}
+ @Override
+ public String toString() {
+ return dataConnection.getName();
+ }
+
private void log(String s) {
android.util.Log.d(mLogTag, "DataConnectionAc " + s);
}
diff --git a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java
index 97a8755..588515b 100644
--- a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java
@@ -499,6 +499,7 @@ public abstract class DataConnectionTracker extends Handler {
*/
protected DataConnectionTracker(PhoneBase phone) {
super();
+ if (DBG) log("DCT.constructor");
mPhone = phone;
IntentFilter filter = new IntentFilter();
@@ -534,6 +535,7 @@ public abstract class DataConnectionTracker extends Handler {
}
public void dispose() {
+ if (DBG) log("DCT.dispose");
for (DataConnectionAc dcac : mDataConnectionAsyncChannels.values()) {
dcac.disconnect();
}
@@ -1256,7 +1258,6 @@ public abstract class DataConnectionTracker extends Handler {
Set<Entry<String, ApnContext>> mApnContextsSet = mApnContexts.entrySet();
pw.println(" mApnContexts size=" + mApnContextsSet.size());
for (Entry<String, ApnContext> entry : mApnContextsSet) {
- pw.printf(" *** mApnContexts[%s]:\n", entry.getKey());
entry.getValue().dump(fd, pw, args);
}
pw.println(" ***************************************");
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnection.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnection.java
index df3278b..9801721 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnection.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnection.java
@@ -120,9 +120,10 @@ public class GsmDataConnection extends DataConnection {
@Override
public String toString() {
- return "State=" + getCurrentState().getName() + " Apn=" + mApn +
- " create=" + createTime + " lastFail=" + lastFailTime +
- " lastFailCause=" + lastFailCause;
+ return "{" + getName() + ": State=" + getCurrentState().getName() +
+ " apnSetting=" + mApn + " apnList= " + mApnList + " RefCount=" + mRefCount +
+ " cid=" + cid + " create=" + createTime + " lastFail=" + lastFailTime +
+ " lastFailCause=" + lastFailCause + "}";
}
@Override
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index f8d09de..83fc9c1 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -175,7 +175,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
public GsmDataConnectionTracker(PhoneBase p) {
super(p);
-
+ if (DBG) log("GsmDCT.constructor");
p.mCM.registerForAvailable (this, EVENT_RADIO_AVAILABLE, null);
p.mCM.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
p.mIccRecords.registerForRecordsLoaded(this, EVENT_RECORDS_LOADED, null);
@@ -212,6 +212,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
@Override
public void dispose() {
+ if (DBG) log("GsmDCT.dispose");
cleanUpAllConnections(false, null);
super.dispose();
@@ -835,10 +836,11 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
return;
}
+ DataConnectionAc dcac = apnContext.getDataConnectionAc();
if (DBG) {
- log("cleanUpConnection: tearDown=" + tearDown + " reason=" + apnContext.getReason());
+ log("cleanUpConnection: E tearDown=" + tearDown + " reason=" + apnContext.getReason() +
+ " apnContext=" + apnContext);
}
- DataConnectionAc dcac = apnContext.getDataConnectionAc();
if (tearDown) {
if (apnContext.isDisconnected()) {
// The request is tearDown and but ApnContext is not connected.
@@ -901,6 +903,10 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
cancelReconnectAlarm(dcac);
}
}
+ if (DBG) {
+ log("cleanUpConnection: X tearDown=" + tearDown + " reason=" + apnContext.getReason() +
+ " apnContext=" + apnContext + " dc=" + apnContext.getDataConnection());
+ }
}
/**
@@ -986,8 +992,12 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
private GsmDataConnection findFreeDataConnection() {
for (DataConnectionAc dcac : mDataConnectionAsyncChannels.values()) {
if (dcac.isInactiveSync() && dataConnectionNotInUse(dcac)) {
- log("findFreeDataConnection: found free GsmDataConnection");
- return (GsmDataConnection) dcac.dataConnection;
+ DataConnection dc = dcac.dataConnection;
+ if (DBG) {
+ log("findFreeDataConnection: found free GsmDataConnection=" +
+ " dcac=" + dcac + " dc=" + dc);
+ }
+ return (GsmDataConnection) dc;
}
}
log("findFreeDataConnection: NO free GsmDataConnection");
@@ -995,12 +1005,13 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
}
protected GsmDataConnection findReadyDataConnection(ApnSetting apn) {
- if (DBG)
- log("findReadyDataConnection: apn string <" +
- (apn!=null?(apn.toString()):"null") +">");
if (apn == null) {
return null;
}
+ if (DBG) {
+ log("findReadyDataConnection: apn string <" + apn + ">" +
+ " dcacs.size=" + mDataConnectionAsyncChannels.size());
+ }
for (DataConnectionAc dcac : mDataConnectionAsyncChannels.values()) {
ApnSetting apnSetting = dcac.getApnSettingSync();
if (DBG) {
@@ -1008,7 +1019,12 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
(apnSetting != null ? (apnSetting.toString()) : "null") + ">");
}
if ((apnSetting != null) && TextUtils.equals(apnSetting.toString(), apn.toString())) {
- return (GsmDataConnection) dcac.dataConnection;
+ DataConnection dc = dcac.dataConnection;
+ if (DBG) {
+ log("findReadyDataConnection: found ready GsmDataConnection=" +
+ " dcac=" + dcac + " dc=" + dc);
+ }
+ return (GsmDataConnection) dc;
}
}
return null;
@@ -1129,6 +1145,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
private List<ApnContext> findApnContextToClean(Collection<DataConnectionAc> dcacs) {
if (dcacs == null) return null;
+ if (DBG) log("findApnContextToClean(ar): E dcacs=" + dcacs);
+
ArrayList<ApnContext> list = new ArrayList<ApnContext>();
for (ApnContext apnContext : mApnContexts.values()) {
if (apnContext.getState() == State.CONNECTED) {
@@ -1144,7 +1162,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
// ApnContext does not have dcac reported in data call list.
// Fetch all the ApnContexts that map to this dcac which are in
// INITING state too.
- if (DBG) log("onDataStateChanged(ar): Connected apn not found in the list (" +
+ if (DBG) log("findApnContextToClean(ar): Connected apn not found in the list (" +
apnContext.toString() + ")");
if (apnContext.getDataConnectionAc() != null) {
list.addAll(apnContext.getDataConnectionAc().getApnListSync());
@@ -1154,6 +1172,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
}
}
}
+ if (DBG) log("findApnContextToClean(ar): X list=" + list);
return list;
}
@@ -1236,6 +1255,10 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
// If the same address type was removed and added we need to cleanup
CompareResult<LinkAddress> car =
result.oldLp.compareAddresses(result.newLp);
+ if (DBG) {
+ log("onDataStateChanged: oldLp=" + result.oldLp +
+ " newLp=" + result.newLp + " car=" + car);
+ }
boolean needToClean = false;
for (LinkAddress added : car.added) {
for (LinkAddress removed : car.removed) {
@@ -1249,7 +1272,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
if (needToClean) {
if (DBG) {
log("onDataStateChanged(ar): addr change, cleanup apns=" +
- connectedApns);
+ connectedApns + " oldLp=" + result.oldLp +
+ " newLp=" + result.newLp);
}
apnsToCleanup.addAll(connectedApns);
} else {
@@ -1285,6 +1309,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
}
// Cleanup those dropped connections
+ if (DBG) log("onDataStateChange(ar): apnsToCleanup=" + apnsToCleanup);
for (ApnContext apnContext : apnsToCleanup) {
cleanUpConnection(true, apnContext);
}
@@ -2256,7 +2281,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
filter.addAction(INTENT_RECONNECT_ALARM + '.' + id);
mPhone.getContext().registerReceiver(mIntentReceiver, filter, null, mPhone);
- if (DBG) log("createDataConnection() X id=" + id);
+ if (DBG) log("createDataConnection() X id=" + id + " dc=" + conn);
return conn;
}