Пример #1
0
 private static void onAutoAuthCompleted(object sender, PackEventArgs e)
 {
     if (!e.isSuccess())
     {
         Log.e("Network", "auto auth failed .");
     }
     else
     {
         SessionPack     pack            = sender as SessionPack;
         NewAuthResponse mResponseObject = (NewAuthResponse)pack.mResponseObject;
         NewAuthRequest  mRequestObject  = (NewAuthRequest)pack.mRequestObject;
         RetConst        ret             = (RetConst)mResponseObject.BaseResponse.Ret;
         if (ret == RetConst.MM_ERR_IDC_REDIRECT)
         {
             if (mIDCAutoAuthCount < 3)
             {
                 mIDCAutoAuthCount++;
                 SessionPackMgr.putToHead(makeAutoAuthPack(2));
                 return;
             }
             Log.e("Network", "Redirect IDC too much, auto auth failed!");
         }
         mIDCAutoAuthCount = 0;
         switch (ret)
         {
         case RetConst.MM_OK:
         case RetConst.MM_ERR_CRITICALUPDATE:
         case RetConst.MM_ERR_RECOMMENDEDUPDATE:
         {
             Log.i("Network", "auto auth success. ");
             Log.i("Network", "New AutoAuthTicket = " + SessionPackMgr.getAccount().AutoAuthKey);
             Util.WriteLog("New AutoAuthTicket = " + SessionPackMgr.getAccount().AutoAuthKey);
             // Account account = AccountMgr.getCurAccount();
             // account.bytesSessionkey = mResponseObject.SessionKey.ToByteArray();
             // account.nUin = mResponseObject.Uin;
             //  account.dbLastSessionKeyTimeStamp = Util.getNowSeconds();
             //  account.bytesA2Key = mResponseObject.A2Key.Buffer.ToByteArray();
             SessionPackMgr.getAccount().SessionKey = mResponseObject.SessionKey.ToByteArray();
             AccountMgr.updateAccount();
             EventCenter.postEvent(EventConst.ON_NETSCENE_AUTOAUTH_SUCCESS, mResponseObject, null);
             return;
         }
         }
         if (ret == RetConst.MM_ERR_NEED_VERIFY)
         {
             if ((mResponseObject.ImgBuf == null) || (mResponseObject.ImgSid == null))
             {
                 Log.e("Network", "NEED_VERIFY_USER, but ImgSid or ImgBuf is null");
                 EventCenter.postEvent(EventConst.ON_NETSCENE_AUTOAUTH_ERR, ret, null);
             }
             else
             {
                 //VerifyCodeArgs args = new VerifyCodeArgs {
                 //    mImageSid = mResponseObject.ImgSid.String,
                 //    mImageBuf = mResponseObject.ImgBuf.Buffer.ToByteArray()
                 //};
                 Log.e("Network", "auto auth failed, need verify,  sid = " + "args.mImageSid");
                 //EventCenter.postEvent(EventConst.ON_NETSCENE_AUTH_NEEDVERIFY, args, null);
             }
         }
         else if (ret == RetConst.MM_ERR_QQ_OK_NEED_MOBILE)
         {
             Log.i("Network", "autoAuth Need Mobile veryfy ret = " + ret.ToString());
             EventCenter.postEvent(EventConst.ON_NETSCENE_AUTOAUTH_ERR, ret, mResponseObject.BindMobile.String);
         }
         else
         {
             Log.e("Network", "auto auth failed, result = " + mResponseObject.BaseResponse.ErrMsg.String);
             EventCenter.postEvent(EventConst.ON_NETSCENE_AUTOAUTH_ERR, ret, null);
         }
     }
 }
Пример #2
0
        public static object onParserNewAuthPack(SessionPack sessionPack)
        {
            NewAuthResponse response = NewAuthResponse.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);

                HostService.updateAuthBuiltinIP(response.BuiltinIPList);
                SessionPackMgr.setSessionKey(response.SessionKey.ToByteArray());
                SessionPackMgr.getAccount().AutoAuthKey = response.AutoAuthTicket;
                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);
        }