private static BaseMessage GetPublicMsg(byte[] buf, int index, XorPacketParameter xpp) { BaseMessage bm = null; int cmd = xpp.Src_2; Utility.GetXorSec(buf, index + GobalDef.BASE_MSG_FTTYPE_INDEX, SecurityFactory.XorSec, xpp); int _ftType = xpp.Src_1; _ftType = _ftType & 0x3; switch (cmd) { case GobalDef.COMMAND_STYPE_PUBLIC_LOGIN: if (_ftType == GobalDef.BASE_MSG_FT_REQ) { bm = new LoginReq(); bm.SetupBuf(buf, index); } else if (_ftType == GobalDef.BASE_MSG_FT_RCV) { bm = new LoginRcv(); bm.SetupBuf(buf, index); } break; case GobalDef.COMMAND_STYPE_PUBLIC_CHECK_TIME: if (_ftType == GobalDef.BASE_MSG_FT_REQ) { bm = new CheckTimeReq(); bm.SetupBuf(buf, index); } else if (_ftType == GobalDef.BASE_MSG_FT_RCV) { bm = new CheckTimeRcv(); bm.SetupBuf(buf, index); } break; case GobalDef.COMMAND_STYPE_PUBLIC_GETSERVER: if (_ftType == GobalDef.BASE_MSG_FT_REQ) { bm = new GetServerReq(); bm.SetupBuf(buf, index); } else if (_ftType == GobalDef.BASE_MSG_FT_RCV) { bm = new GetServerRcv(); bm.SetupBuf(buf, index); } break; } return(bm); }
public BaseMessage ParsePublicMsgReq(BaseMessage bm) { switch (bm.SCommand) { case GobalDef.COMMAND_STYPE_PUBLIC_GETSERVER: GetServerRcv gsr = new GetServerRcv(); gsr.FromDevID = bm.FromDevID; gsr.ToDevID = bm.ToDevID; gsr.FromType = GobalDef.BASE_MSG_FT_SERVER; gsr.ToType = bm.FromType; gsr.ServerList = GobalConfigInfo.Instance.ServerList; return(gsr); } return(null); }