Merge "Handle AsyncChannel disconnect in WifiService" into honeycomb-LTE

This commit is contained in:
Irfan Sheriff
2011-06-06 20:31:55 -07:00
committed by Android (Google) Code Review

View File

@@ -235,6 +235,15 @@ public class WifiService extends IWifiManager.Stub {
} }
break; break;
} }
case AsyncChannel.CMD_CHANNEL_DISCONNECTED: {
if (msg.arg1 == AsyncChannel.STATUS_SEND_UNSUCCESSFUL) {
Slog.d(TAG, "Send failed, client connection lost");
} else {
Slog.d(TAG, "Client connection lost with reason: " + msg.arg1);
}
mClients.remove((AsyncChannel) msg.obj);
break;
}
case AsyncChannel.CMD_CHANNEL_FULL_CONNECTION: { case AsyncChannel.CMD_CHANNEL_FULL_CONNECTION: {
AsyncChannel ac = new AsyncChannel(); AsyncChannel ac = new AsyncChannel();
ac.connect(mContext, this, msg.replyTo); ac.connect(mContext, this, msg.replyTo);
@@ -312,6 +321,13 @@ public class WifiService extends IWifiManager.Stub {
} }
break; break;
} }
case AsyncChannel.CMD_CHANNEL_DISCONNECTED: {
Slog.e(TAG, "WifiStateMachine channel lost, msg.arg1 =" + msg.arg1);
mWifiStateMachineChannel = null;
//Re-establish connection to state machine
mWsmChannel.connect(mContext, this, mWifiStateMachine.getHandler());
break;
}
default: { default: {
Slog.d(TAG, "WifiStateMachineHandler.handleMessage ignoring msg=" + msg); Slog.d(TAG, "WifiStateMachineHandler.handleMessage ignoring msg=" + msg);
break; break;
@@ -584,7 +600,12 @@ public class WifiService extends IWifiManager.Stub {
*/ */
public WifiConfiguration getWifiApConfiguration() { public WifiConfiguration getWifiApConfiguration() {
enforceAccessPermission(); enforceAccessPermission();
if (mWifiStateMachineChannel != null) {
return mWifiStateMachine.syncGetWifiApConfiguration(mWifiStateMachineChannel); return mWifiStateMachine.syncGetWifiApConfiguration(mWifiStateMachineChannel);
} else {
Slog.e(TAG, "mWifiStateMachineChannel is not initialized");
return null;
}
} }
/** /**