public static object onParserAuthPack(SessionPack sessionPack) { AuthResponse response = AuthResponse.ParseFrom(sessionPack.mResponseBuffer); if (response == null) { Log.e("Network", "auth parse failed. "); return(null); } int uin = (int)response.Uin; RetConst ret = (RetConst)response.BaseResponse.Ret; Log.d("Network", "auth parsed success. "); if ((uin != 0) && (((ret == RetConst.MM_OK) || (ret == RetConst.MM_ERR_CRITICALUPDATE)) || (ret == RetConst.MM_ERR_RECOMMENDEDUPDATE))) { Log.i("Network", "auth PASS, uin= " + uin); AuthRequest mRequestObject = sessionPack.mRequestObject as AuthRequest; if ((mRequestObject != null) && (mRequestObject.UserName.String == "facebook@wechat_auth")) { SessionPackMgr.getAccount().setAuthInfo(response.UserName.String, response.Password, response.Password); } HostService.updateAuthBuiltinIP(response.BuiltinIPList); SessionPackMgr.setSessionKey(response.SessionKey.ToByteArray()); SessionPackMgr.getAccount().setUin(uin); SessionPackMgr.getAccount().Nickname = response.NickName.String; //SessionPackMgr.getAccount().Headimg=response.WTLoginRspBuff SessionPackMgr.setAuthStatus(2); return(response); } Log.e("Network", "auth Failed,ret = " + ret); switch (ret) { case RetConst.MM_ERR_NEEDREG: Log.i("Network", "auth result: need register"); SessionPackMgr.mAuthTicket1 = response.Ticket; Connector.close(); return(response); case RetConst.MM_ERR_IDC_REDIRECT: Log.i("Network", "Need to redirect IDC for auth ..."); HostService.updateAuthIDCHost(response.NewHostList); HostService.updateAuthBuiltinIP(response.BuiltinIPList); Connector.close(); return(response); case RetConst.MM_ERR_QQ_OK_NEED_MOBILE: SessionPackMgr.setSessionKey(null); return(response); default: SessionPackMgr.setSessionKey(null); SessionPackMgr.getAccount().reset(); switch (ret) { case RetConst.MM_ERR_RECOMMENDEDUPDATE: Log.e("Network", "Auth Failed: MM_ERR_RECOMMENDEDUPDATE "); goto Label_022B; case RetConst.MM_ERR_CRITICALUPDATE: Log.e("Network", "Auth Failed: MM_ERR_CRITICALUPDATE "); goto Label_022B; case RetConst.MM_ERR_AUTH_ANOTHERPLACE: Log.e("Network", "Auth Failed: MM_ERR_AUTH_ANOTHERPLACE "); mKickMessage = response.KickResponse; Sender.getInstance().closeSender(); goto Label_022B; case RetConst.MM_ERR_NEED_VERIFY: Log.e("Network", "Auth Failed: MM_ERR_NEED_VERIFY "); goto Label_022B; case RetConst.MM_ERR_NOUSER: Log.e("Network", "Auth Failed: MM_ERR_NOUSER "); goto Label_022B; case RetConst.MM_ERR_PASSWORD: Log.e("Network", "Auth Failed: MM_ERR_PASSWORD "); goto Label_022B; } break; } Label_022B: Connector.close(); return(response); }