From f2530cc66b11cef85e337e3b8102bebe53499597 Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Mon, 3 May 2021 14:43:39 +0800 Subject: [PATCH] feat: qidian protocol support. --- client/builders.go | 26 +- client/client.go | 29 +- client/decoders.go | 2 +- client/entities.go | 3 +- client/global.go | 25 + client/group_file.go | 2 +- client/highway.go | 8 +- client/image.go | 2 +- client/pb/cmd0x3f6/cmd0x3f6.pb.go | 945 +++++++++++++++ client/pb/cmd0x3f6/cmd0x3f6.proto | 73 ++ client/pb/cmd0x6ff/smbcmd0x519.pb.go | 1577 ++++++++++++++++++++++++++ client/pb/cmd0x6ff/smbcmd0x519.proto | 119 ++ client/pb/cmd0x6ff/subcmd0x501.pb.go | 189 ++- client/pb/msg/head.pb.go | 1476 ++++++++++++++++++++++++ client/pb/msg/head.proto | 123 ++ client/pb/msg/msg.pb.go | 7 +- client/pb/msg/objmsg.pb.go | 7 +- client/pb/msg/report.pb.go | 7 +- client/ptt.go | 10 +- client/qidian.go | 191 ++++ protocol/packets/global.go | 4 +- utils/string.go | 7 + 22 files changed, 4684 insertions(+), 148 deletions(-) create mode 100644 client/pb/cmd0x3f6/cmd0x3f6.pb.go create mode 100644 client/pb/cmd0x3f6/cmd0x3f6.proto create mode 100644 client/pb/cmd0x6ff/smbcmd0x519.pb.go create mode 100644 client/pb/cmd0x6ff/smbcmd0x519.proto create mode 100644 client/pb/msg/head.pb.go create mode 100644 client/pb/msg/head.proto create mode 100644 client/qidian.go diff --git a/client/builders.go b/client/builders.go index dfb7dea5..baca321a 100644 --- a/client/builders.go +++ b/client/builders.go @@ -42,7 +42,7 @@ func (c *QQClient) buildLoginPacket() (uint16, []byte) { w.Write(tlv.T1(uint32(c.Uin), SystemDeviceInfo.IpAddress)) w.Write(tlv.T106(uint32(c.Uin), 0, c.version.AppId, c.version.SSOVersion, c.PasswordMd5, true, SystemDeviceInfo.Guid, SystemDeviceInfo.TgtgtKey, 0)) w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) - w.Write(tlv.T100(c.version.SSOVersion, c.version.AppId, c.version.MainSigMap)) + w.Write(tlv.T100(c.version.SSOVersion, c.version.SubAppId, c.version.MainSigMap)) w.Write(tlv.T107(0)) w.Write(tlv.T142(c.version.ApkId)) w.Write(tlv.T144( @@ -91,7 +91,7 @@ func (c *QQClient) buildLoginPacket() (uint16, []byte) { w.Write(tlv.T521(0)) w.Write(tlv.T525(tlv.T536([]byte{0x01, 0x00}))) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -107,7 +107,7 @@ func (c *QQClient) buildDeviceLockLoginPacket() (uint16, []byte) { w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) w.Write(tlv.T401(c.g)) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -134,7 +134,7 @@ func (c *QQClient) buildQRCodeFetchRequestPacket() (uint16, []byte) { w.Write(tlv.T35(8)) })) }) - sso := packets.BuildSsoPacket(seq, watch.AppId, "wtlogin.trans_emp", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, watch.AppId, c.version.SubAppId, "wtlogin.trans_emp", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(0, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -157,7 +157,7 @@ func (c *QQClient) buildQRCodeResultQueryRequestPacket(sig []byte) (uint16, []by w.WriteUInt16(0) // const })) }) - sso := packets.BuildSsoPacket(seq, watch.AppId, "wtlogin.trans_emp", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, watch.AppId, c.version.SubAppId, "wtlogin.trans_emp", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(0, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -176,7 +176,7 @@ func (c *QQClient) buildQRCodeLoginPacket(t106, t16a, t318 []byte) (uint16, []by })) // w.Write(tlv.T106(uint32(c.Uin), 0, c.version.AppId, c.version.SSOVersion, c.PasswordMd5, true, SystemDeviceInfo.Guid, SystemDeviceInfo.TgtgtKey, 0)) w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) - w.Write(tlv.T100(c.version.SSOVersion, c.version.AppId, c.version.MainSigMap)) + w.Write(tlv.T100(c.version.SSOVersion, c.version.SubAppId, c.version.MainSigMap)) w.Write(tlv.T107(0)) w.Write(tlv.T142(c.version.ApkId)) w.Write(tlv.T144( @@ -225,7 +225,7 @@ func (c *QQClient) buildQRCodeLoginPacket(t106, t16a, t318 []byte) (uint16, []by w.WriteBytesShort(t318) })) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -241,7 +241,7 @@ func (c *QQClient) buildCaptchaPacket(result string, sign []byte) (uint16, []byt w.Write(tlv.T104(c.t104)) w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -259,7 +259,7 @@ func (c *QQClient) buildSMSRequestPacket() (uint16, []byte) { w.Write(tlv.T17A(9)) w.Write(tlv.T197()) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -278,7 +278,7 @@ func (c *QQClient) buildSMSCodeSubmitPacket(code string) (uint16, []byte) { w.Write(tlv.T401(c.g)) w.Write(tlv.T198()) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -294,7 +294,7 @@ func (c *QQClient) buildTicketSubmitPacket(ticket string) (uint16, []byte) { w.Write(tlv.T104(c.t104)) w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -395,7 +395,7 @@ func (c *QQClient) buildRequestChangeSigPacket() (uint16, []byte) { })) // w.Write(tlv.T202(SystemDeviceInfo.WifiBSSID, SystemDeviceInfo.WifiSSID)) }) - sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.exchange_emp", SystemDeviceInfo.IMEI, c.sigInfo.tgt, c.OutGoingPacketSessionId, req, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "wtlogin.exchange_emp", SystemDeviceInfo.IMEI, c.sigInfo.tgt, c.OutGoingPacketSessionId, req, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{}) return seq, packet } @@ -443,7 +443,7 @@ func (c *QQClient) buildClientRegisterPacket() (uint16, []byte) { Context: make(map[string]string), Status: make(map[string]string), } - sso := packets.BuildSsoPacket(seq, c.version.AppId, "StatSvc.register", SystemDeviceInfo.IMEI, c.sigInfo.tgt, c.OutGoingPacketSessionId, pkt.ToBytes(), c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "StatSvc.register", SystemDeviceInfo.IMEI, c.sigInfo.tgt, c.OutGoingPacketSessionId, pkt.ToBytes(), c.ksid) packet := packets.BuildLoginPacket(c.Uin, 1, c.sigInfo.d2Key, sso, c.sigInfo.d2) return seq, packet } diff --git a/client/client.go b/client/client.go index 90c03ef7..3f1b2b46 100644 --- a/client/client.go +++ b/client/client.go @@ -43,6 +43,7 @@ type QQClient struct { GroupList []*GroupInfo OnlineClients []*OtherClientInfo Online bool + QiDian *QiDianAccountInfo // NetLooping bool SequenceId int32 @@ -75,7 +76,7 @@ type QQClient struct { randSeed []byte // t403 timeDiff int64 sigInfo *loginSigInfo - highwaySession *highwaySessionInfo + bigDataSession *bigDataSessionInfo srvSsoAddrs []string otherSrvAddrs []string fileStorageInfo *jce.FileStoragePushFSSvcList @@ -122,6 +123,15 @@ type loginSigInfo struct { pt4TokenMap map[string][]byte } +type QiDianAccountInfo struct { + MasterUin int64 + ExtName string + CreateTime int64 + + bigDataReqAddrs []string + bigDataReqSession *bigDataSessionInfo +} + type handlerInfo struct { fun func(i interface{}, err error) params requestParams @@ -410,6 +420,10 @@ func (c *QQClient) init(tokenLogin bool) error { go c.doHeartbeat() } _ = c.RefreshStatus() + if c.version.Protocol == QiDian { + _, _ = c.sendAndWait(c.buildLoginExtraPacket()) // 小登录 + _, _ = c.sendAndWait(c.buildConnKeyRequestPacket()) // big data key 如果等待 config push 的话时间来不及 + } seq, pkt := c.buildGetMessageRequestPacket(msg.SyncFlag_START, time.Now().Unix()) _, _ = c.sendAndWait(seq, pkt, requestParams{"used_reg_proxy": true, "init": true}) c.stat.once.Do(func() { @@ -536,8 +550,17 @@ func (c *QQClient) ReloadFriendList() error { return nil } -// GetFriendList request friend list +// GetFriendList +// 当使用普通QQ时: 请求好友列表 +// 当使用企点QQ时: 请求外部联系人列表 func (c *QQClient) GetFriendList() (*FriendListResponse, error) { + if c.version.Protocol == QiDian { + rsp, err := c.getQiDianAddressDetailList() + if err != nil { + return nil, err + } + return &FriendListResponse{TotalCount: int32(len(rsp)), List: rsp}, nil + } curFriendCount := 0 r := &FriendListResponse{} for { @@ -1110,7 +1133,7 @@ func (c *QQClient) doHeartbeat() { for c.Online { time.Sleep(time.Second * 30) seq := c.nextSeq() - sso := packets.BuildSsoPacket(seq, c.version.AppId, "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid) + sso := packets.BuildSsoPacket(seq, c.version.AppId, c.version.SubAppId, "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid) packet := packets.BuildLoginPacket(c.Uin, 0, []byte{}, sso, []byte{}) _, err := c.sendAndWait(seq, packet) if errors.Is(err, utils.ErrConnectionClosed) { diff --git a/client/decoders.go b/client/decoders.go index fecdef5d..e9f72f83 100644 --- a/client/decoders.go +++ b/client/decoders.go @@ -346,7 +346,7 @@ func decodePushReqPacket(c *QQClient, _ *incomingPacketInfo, payload []byte) (in c.fileStorageInfo = list rsp := cmd0x6ff.C501RspBody{} if err := proto.Unmarshal(list.BigDataChannel.PbBuf, &rsp); err == nil && rsp.RspBody != nil { - c.highwaySession = &highwaySessionInfo{ + c.bigDataSession = &bigDataSessionInfo{ SigSession: rsp.RspBody.SigSession, SessionKey: rsp.RspBody.SessionKey, } diff --git a/client/entities.go b/client/entities.go index 23b7217d..a71cd729 100644 --- a/client/entities.go +++ b/client/entities.go @@ -279,7 +279,7 @@ type ( Msg *message.GroupMessage } - highwaySessionInfo struct { + bigDataSessionInfo struct { SigSession []byte SessionKey []byte } @@ -335,6 +335,7 @@ const ( IPad ClientProtocol = 2 AndroidWatch ClientProtocol = 3 MacOS ClientProtocol = 4 + QiDian ClientProtocol = 5 ) func (r *UserJoinGroupRequest) Accept() { diff --git a/client/global.go b/client/global.go index 846c738b..d150e508 100644 --- a/client/global.go +++ b/client/global.go @@ -107,11 +107,13 @@ type ( SortVersionName string SdkVersion string AppId uint32 + SubAppId uint32 BuildTime uint32 SSOVersion uint32 MiscBitmap uint32 SubSigmap uint32 MainSigMap uint32 + Protocol ClientProtocol } incomingPacketInfo struct { @@ -194,6 +196,7 @@ func genVersionInfo(p ClientProtocol) *versionInfo { return &versionInfo{ ApkId: "com.tencent.mobileqq", AppId: 537066738, + SubAppId: 537066738, SortVersionName: "8.5.0", BuildTime: 1607689988, ApkSign: []byte{0xA6, 0xB7, 0x45, 0xBF, 0x24, 0xA2, 0xC2, 0x77, 0x52, 0x77, 0x16, 0xF6, 0xF3, 0x6E, 0xB6, 0x8D}, @@ -202,11 +205,13 @@ func genVersionInfo(p ClientProtocol) *versionInfo { MiscBitmap: 184024956, SubSigmap: 0x10400, MainSigMap: 34869472, + Protocol: p, } case AndroidWatch: return &versionInfo{ ApkId: "com.tencent.qqlite", AppId: 537064446, + SubAppId: 537064446, SortVersionName: "2.0.5", BuildTime: 1559564731, ApkSign: []byte{0xA6, 0xB7, 0x45, 0xBF, 0x24, 0xA2, 0xC2, 0x77, 0x52, 0x77, 0x16, 0xF6, 0xF3, 0x6E, 0xB6, 0x8D}, @@ -215,11 +220,13 @@ func genVersionInfo(p ClientProtocol) *versionInfo { MiscBitmap: 16252796, SubSigmap: 0x10400, MainSigMap: 34869472, + Protocol: p, } case IPad: return &versionInfo{ ApkId: "com.tencent.minihd.qq", AppId: 537065739, + SubAppId: 537065739, SortVersionName: "5.8.9", BuildTime: 1595836208, ApkSign: []byte{170, 57, 120, 244, 31, 217, 111, 249, 145, 74, 102, 158, 24, 100, 116, 199}, @@ -228,11 +235,13 @@ func genVersionInfo(p ClientProtocol) *versionInfo { MiscBitmap: 150470524, SubSigmap: 66560, MainSigMap: 1970400, + Protocol: p, } case MacOS: return &versionInfo{ ApkId: "com.tencent.minihd.qq", AppId: 537064315, + SubAppId: 537064315, SortVersionName: "5.8.9", BuildTime: 1595836208, ApkSign: []byte{170, 57, 120, 244, 31, 217, 111, 249, 145, 74, 102, 158, 24, 100, 116, 199}, @@ -241,6 +250,22 @@ func genVersionInfo(p ClientProtocol) *versionInfo { MiscBitmap: 150470524, SubSigmap: 66560, MainSigMap: 1970400, + Protocol: p, + } + case QiDian: + return &versionInfo{ + ApkId: "com.tencent.qidian", + AppId: 537061386, + SubAppId: 537036590, + SortVersionName: "3.8.6", + BuildTime: 1556628836, + ApkSign: []byte{160, 30, 236, 171, 133, 233, 227, 186, 43, 15, 106, 21, 140, 133, 92, 41}, + SdkVersion: "6.0.0.2365", + SSOVersion: 5, + MiscBitmap: 49807228, + SubSigmap: 66560, + MainSigMap: 34869472, + Protocol: p, } } return nil diff --git a/client/group_file.go b/client/group_file.go index 5f48407f..a5c8ca32 100644 --- a/client/group_file.go +++ b/client/group_file.go @@ -234,7 +234,7 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error { }, Unknown3: proto.Int32(0), }) - if _, err = fs.client.excitingUploadStream(file, 71, fs.client.highwaySession.SigSession, ext); err != nil { + if _, err = fs.client.excitingUploadStream(file, 71, fs.client.bigDataSession.SigSession, ext); err != nil { return errors.Wrap(err, "upload failed") } _, pkt := fs.client.buildGroupFileFeedsRequest(fs.GroupCode, rsp.FileId, rsp.BusId, rand.Int31()) diff --git a/client/highway.go b/client/highway.go index 45f2ad7c..c2d3413e 100644 --- a/client/highway.go +++ b/client/highway.go @@ -111,10 +111,10 @@ func (c *QQClient) highwayUploadByBDH(stream io.Reader, length int64, cmdId int3 return nil, errors.New("srv addrs not found. maybe miss some packet?") } if encrypt { - if c.highwaySession == nil || len(c.highwaySession.SessionKey) == 0 { + if c.bigDataSession == nil || len(c.bigDataSession.SessionKey) == 0 { return nil, errors.New("session key not found. maybe miss some packet?") } - ext = binary.NewTeaCipher(c.highwaySession.SessionKey).Encrypt(ext) + ext = binary.NewTeaCipher(c.bigDataSession.SessionKey).Encrypt(ext) } const chunkSize = 8192 * 16 conn, err := net.DialTimeout("tcp", c.srvSsoAddrs[0], time.Second*20) @@ -202,10 +202,10 @@ func (c *QQClient) highwayUploadFileMultiThreadingByBDH(path string, cmdId int32 return nil, errors.New("srv addrs not found. maybe miss some packet?") } if encrypt { - if c.highwaySession == nil || len(c.highwaySession.SessionKey) == 0 { + if c.bigDataSession == nil || len(c.bigDataSession.SessionKey) == 0 { return nil, errors.New("session key not found. maybe miss some packet?") } - ext = binary.NewTeaCipher(c.highwaySession.SessionKey).Encrypt(ext) + ext = binary.NewTeaCipher(c.bigDataSession.SessionKey).Encrypt(ext) } stat, err := os.Stat(path) if err != nil { diff --git a/client/image.go b/client/image.go index c86f3c62..2cacc849 100644 --- a/client/image.go +++ b/client/image.go @@ -243,7 +243,7 @@ func (c *QQClient) uploadOcrImage(img io.Reader, length int64, sum []byte) (stri ActionType: proto.Uint32(0), Uuid: binary.GenUUID(r), }) - rsp, err := c.highwayUploadByBDH(img, length, 76, c.highwaySession.SigSession, sum, ext, false) + rsp, err := c.highwayUploadByBDH(img, length, 76, c.bigDataSession.SigSession, sum, ext, false) if err != nil { return "", errors.Wrap(err, "upload ocr image error") } diff --git a/client/pb/cmd0x3f6/cmd0x3f6.pb.go b/client/pb/cmd0x3f6/cmd0x3f6.pb.go new file mode 100644 index 00000000..2b9d2082 --- /dev/null +++ b/client/pb/cmd0x3f6/cmd0x3f6.pb.go @@ -0,0 +1,945 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.14.0 +// source: cmd0x3f6.proto + +package cmd0x3f6 + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type C3F6ReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubCmd *uint32 `protobuf:"varint,1,opt,name=subCmd" json:"subCmd,omitempty"` + CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt,name=crmCommonHead" json:"crmCommonHead,omitempty"` + SubcmdLoginProcessCompleteReqBody *QDUserLoginProcessCompleteReqBody `protobuf:"bytes,42,opt,name=subcmdLoginProcessCompleteReqBody" json:"subcmdLoginProcessCompleteReqBody,omitempty"` +} + +func (x *C3F6ReqBody) Reset() { + *x = C3F6ReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x3f6_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C3F6ReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C3F6ReqBody) ProtoMessage() {} + +func (x *C3F6ReqBody) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x3f6_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C3F6ReqBody.ProtoReflect.Descriptor instead. +func (*C3F6ReqBody) Descriptor() ([]byte, []int) { + return file_cmd0x3f6_proto_rawDescGZIP(), []int{0} +} + +func (x *C3F6ReqBody) GetSubCmd() uint32 { + if x != nil && x.SubCmd != nil { + return *x.SubCmd + } + return 0 +} + +func (x *C3F6ReqBody) GetCrmCommonHead() *C3F6CRMMsgHead { + if x != nil { + return x.CrmCommonHead + } + return nil +} + +func (x *C3F6ReqBody) GetSubcmdLoginProcessCompleteReqBody() *QDUserLoginProcessCompleteReqBody { + if x != nil { + return x.SubcmdLoginProcessCompleteReqBody + } + return nil +} + +type C3F6RspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubCmd *uint32 `protobuf:"varint,1,opt,name=subCmd" json:"subCmd,omitempty"` + CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt,name=crmCommonHead" json:"crmCommonHead,omitempty"` + SubcmdLoginProcessCompleteRspBody *QDUserLoginProcessCompleteRspBody `protobuf:"bytes,42,opt,name=subcmdLoginProcessCompleteRspBody" json:"subcmdLoginProcessCompleteRspBody,omitempty"` +} + +func (x *C3F6RspBody) Reset() { + *x = C3F6RspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x3f6_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C3F6RspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C3F6RspBody) ProtoMessage() {} + +func (x *C3F6RspBody) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x3f6_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C3F6RspBody.ProtoReflect.Descriptor instead. +func (*C3F6RspBody) Descriptor() ([]byte, []int) { + return file_cmd0x3f6_proto_rawDescGZIP(), []int{1} +} + +func (x *C3F6RspBody) GetSubCmd() uint32 { + if x != nil && x.SubCmd != nil { + return *x.SubCmd + } + return 0 +} + +func (x *C3F6RspBody) GetCrmCommonHead() *C3F6CRMMsgHead { + if x != nil { + return x.CrmCommonHead + } + return nil +} + +func (x *C3F6RspBody) GetSubcmdLoginProcessCompleteRspBody() *QDUserLoginProcessCompleteRspBody { + if x != nil { + return x.SubcmdLoginProcessCompleteRspBody + } + return nil +} + +type QDUserLoginProcessCompleteReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kfext *uint64 `protobuf:"varint,1,opt,name=kfext" json:"kfext,omitempty"` + Pubno *uint32 `protobuf:"varint,2,opt,name=pubno" json:"pubno,omitempty"` + Buildno *uint32 `protobuf:"varint,3,opt,name=buildno" json:"buildno,omitempty"` + TerminalType *uint32 `protobuf:"varint,4,opt,name=terminalType" json:"terminalType,omitempty"` + Status *uint32 `protobuf:"varint,5,opt,name=status" json:"status,omitempty"` + LoginTime *uint32 `protobuf:"varint,6,opt,name=loginTime" json:"loginTime,omitempty"` + HardwareInfo *string `protobuf:"bytes,7,opt,name=hardwareInfo" json:"hardwareInfo,omitempty"` + SoftwareInfo *string `protobuf:"bytes,8,opt,name=softwareInfo" json:"softwareInfo,omitempty"` + Guid []byte `protobuf:"bytes,9,opt,name=guid" json:"guid,omitempty"` + AppName *string `protobuf:"bytes,10,opt,name=appName" json:"appName,omitempty"` + SubAppId *uint32 `protobuf:"varint,11,opt,name=subAppId" json:"subAppId,omitempty"` +} + +func (x *QDUserLoginProcessCompleteReqBody) Reset() { + *x = QDUserLoginProcessCompleteReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x3f6_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QDUserLoginProcessCompleteReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QDUserLoginProcessCompleteReqBody) ProtoMessage() {} + +func (x *QDUserLoginProcessCompleteReqBody) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x3f6_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QDUserLoginProcessCompleteReqBody.ProtoReflect.Descriptor instead. +func (*QDUserLoginProcessCompleteReqBody) Descriptor() ([]byte, []int) { + return file_cmd0x3f6_proto_rawDescGZIP(), []int{2} +} + +func (x *QDUserLoginProcessCompleteReqBody) GetKfext() uint64 { + if x != nil && x.Kfext != nil { + return *x.Kfext + } + return 0 +} + +func (x *QDUserLoginProcessCompleteReqBody) GetPubno() uint32 { + if x != nil && x.Pubno != nil { + return *x.Pubno + } + return 0 +} + +func (x *QDUserLoginProcessCompleteReqBody) GetBuildno() uint32 { + if x != nil && x.Buildno != nil { + return *x.Buildno + } + return 0 +} + +func (x *QDUserLoginProcessCompleteReqBody) GetTerminalType() uint32 { + if x != nil && x.TerminalType != nil { + return *x.TerminalType + } + return 0 +} + +func (x *QDUserLoginProcessCompleteReqBody) GetStatus() uint32 { + if x != nil && x.Status != nil { + return *x.Status + } + return 0 +} + +func (x *QDUserLoginProcessCompleteReqBody) GetLoginTime() uint32 { + if x != nil && x.LoginTime != nil { + return *x.LoginTime + } + return 0 +} + +func (x *QDUserLoginProcessCompleteReqBody) GetHardwareInfo() string { + if x != nil && x.HardwareInfo != nil { + return *x.HardwareInfo + } + return "" +} + +func (x *QDUserLoginProcessCompleteReqBody) GetSoftwareInfo() string { + if x != nil && x.SoftwareInfo != nil { + return *x.SoftwareInfo + } + return "" +} + +func (x *QDUserLoginProcessCompleteReqBody) GetGuid() []byte { + if x != nil { + return x.Guid + } + return nil +} + +func (x *QDUserLoginProcessCompleteReqBody) GetAppName() string { + if x != nil && x.AppName != nil { + return *x.AppName + } + return "" +} + +func (x *QDUserLoginProcessCompleteReqBody) GetSubAppId() uint32 { + if x != nil && x.SubAppId != nil { + return *x.SubAppId + } + return 0 +} + +type QDUserLoginProcessCompleteRspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ret *RetInfo `protobuf:"bytes,1,opt,name=ret" json:"ret,omitempty"` + Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` + Mobile *string `protobuf:"bytes,3,opt,name=mobile" json:"mobile,omitempty"` + ExternalMobile *string `protobuf:"bytes,4,opt,name=externalMobile" json:"externalMobile,omitempty"` + DataAnalysisPriv *bool `protobuf:"varint,5,opt,name=dataAnalysisPriv" json:"dataAnalysisPriv,omitempty"` + DeviceLock *bool `protobuf:"varint,6,opt,name=deviceLock" json:"deviceLock,omitempty"` + ModulePrivilege *uint64 `protobuf:"varint,7,opt,name=modulePrivilege" json:"modulePrivilege,omitempty"` + ModuleSubPrivilege []uint32 `protobuf:"varint,8,rep,name=moduleSubPrivilege" json:"moduleSubPrivilege,omitempty"` + MasterSet *uint32 `protobuf:"varint,9,opt,name=masterSet" json:"masterSet,omitempty"` + ExtSet *uint32 `protobuf:"varint,10,opt,name=extSet" json:"extSet,omitempty"` + CorpConfProperty *uint64 `protobuf:"varint,11,opt,name=corpConfProperty" json:"corpConfProperty,omitempty"` + Corpuin *uint64 `protobuf:"varint,12,opt,name=corpuin" json:"corpuin,omitempty"` + Kfaccount *uint64 `protobuf:"varint,13,opt,name=kfaccount" json:"kfaccount,omitempty"` + SecurityLevel *uint32 `protobuf:"varint,14,opt,name=securityLevel" json:"securityLevel,omitempty"` + MsgTitle *string `protobuf:"bytes,15,opt,name=msgTitle" json:"msgTitle,omitempty"` + SuccNoticeMsg *string `protobuf:"bytes,16,opt,name=succNoticeMsg" json:"succNoticeMsg,omitempty"` + NameAccount *uint64 `protobuf:"varint,17,opt,name=nameAccount" json:"nameAccount,omitempty"` + CrmMigrateFlag *uint32 `protobuf:"varint,18,opt,name=crmMigrateFlag" json:"crmMigrateFlag,omitempty"` + ExtuinName *string `protobuf:"bytes,19,opt,name=extuinName" json:"extuinName,omitempty"` + OpenAccountTime *uint32 `protobuf:"varint,20,opt,name=openAccountTime" json:"openAccountTime,omitempty"` +} + +func (x *QDUserLoginProcessCompleteRspBody) Reset() { + *x = QDUserLoginProcessCompleteRspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x3f6_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QDUserLoginProcessCompleteRspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QDUserLoginProcessCompleteRspBody) ProtoMessage() {} + +func (x *QDUserLoginProcessCompleteRspBody) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x3f6_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QDUserLoginProcessCompleteRspBody.ProtoReflect.Descriptor instead. +func (*QDUserLoginProcessCompleteRspBody) Descriptor() ([]byte, []int) { + return file_cmd0x3f6_proto_rawDescGZIP(), []int{3} +} + +func (x *QDUserLoginProcessCompleteRspBody) GetRet() *RetInfo { + if x != nil { + return x.Ret + } + return nil +} + +func (x *QDUserLoginProcessCompleteRspBody) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *QDUserLoginProcessCompleteRspBody) GetMobile() string { + if x != nil && x.Mobile != nil { + return *x.Mobile + } + return "" +} + +func (x *QDUserLoginProcessCompleteRspBody) GetExternalMobile() string { + if x != nil && x.ExternalMobile != nil { + return *x.ExternalMobile + } + return "" +} + +func (x *QDUserLoginProcessCompleteRspBody) GetDataAnalysisPriv() bool { + if x != nil && x.DataAnalysisPriv != nil { + return *x.DataAnalysisPriv + } + return false +} + +func (x *QDUserLoginProcessCompleteRspBody) GetDeviceLock() bool { + if x != nil && x.DeviceLock != nil { + return *x.DeviceLock + } + return false +} + +func (x *QDUserLoginProcessCompleteRspBody) GetModulePrivilege() uint64 { + if x != nil && x.ModulePrivilege != nil { + return *x.ModulePrivilege + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetModuleSubPrivilege() []uint32 { + if x != nil { + return x.ModuleSubPrivilege + } + return nil +} + +func (x *QDUserLoginProcessCompleteRspBody) GetMasterSet() uint32 { + if x != nil && x.MasterSet != nil { + return *x.MasterSet + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetExtSet() uint32 { + if x != nil && x.ExtSet != nil { + return *x.ExtSet + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetCorpConfProperty() uint64 { + if x != nil && x.CorpConfProperty != nil { + return *x.CorpConfProperty + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetCorpuin() uint64 { + if x != nil && x.Corpuin != nil { + return *x.Corpuin + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetKfaccount() uint64 { + if x != nil && x.Kfaccount != nil { + return *x.Kfaccount + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetSecurityLevel() uint32 { + if x != nil && x.SecurityLevel != nil { + return *x.SecurityLevel + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetMsgTitle() string { + if x != nil && x.MsgTitle != nil { + return *x.MsgTitle + } + return "" +} + +func (x *QDUserLoginProcessCompleteRspBody) GetSuccNoticeMsg() string { + if x != nil && x.SuccNoticeMsg != nil { + return *x.SuccNoticeMsg + } + return "" +} + +func (x *QDUserLoginProcessCompleteRspBody) GetNameAccount() uint64 { + if x != nil && x.NameAccount != nil { + return *x.NameAccount + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetCrmMigrateFlag() uint32 { + if x != nil && x.CrmMigrateFlag != nil { + return *x.CrmMigrateFlag + } + return 0 +} + +func (x *QDUserLoginProcessCompleteRspBody) GetExtuinName() string { + if x != nil && x.ExtuinName != nil { + return *x.ExtuinName + } + return "" +} + +func (x *QDUserLoginProcessCompleteRspBody) GetOpenAccountTime() uint32 { + if x != nil && x.OpenAccountTime != nil { + return *x.OpenAccountTime + } + return 0 +} + +type RetInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RetCode *uint32 `protobuf:"varint,1,opt,name=retCode" json:"retCode,omitempty"` + ErrorMsg *string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` +} + +func (x *RetInfo) Reset() { + *x = RetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x3f6_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RetInfo) ProtoMessage() {} + +func (x *RetInfo) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x3f6_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RetInfo.ProtoReflect.Descriptor instead. +func (*RetInfo) Descriptor() ([]byte, []int) { + return file_cmd0x3f6_proto_rawDescGZIP(), []int{4} +} + +func (x *RetInfo) GetRetCode() uint32 { + if x != nil && x.RetCode != nil { + return *x.RetCode + } + return 0 +} + +func (x *RetInfo) GetErrorMsg() string { + if x != nil && x.ErrorMsg != nil { + return *x.ErrorMsg + } + return "" +} + +type C3F6CRMMsgHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CrmSubCmd *uint32 `protobuf:"varint,1,opt,name=crmSubCmd" json:"crmSubCmd,omitempty"` + HeadLen *uint32 `protobuf:"varint,2,opt,name=headLen" json:"headLen,omitempty"` + VerNo *uint32 `protobuf:"varint,3,opt,name=verNo" json:"verNo,omitempty"` + KfUin *uint64 `protobuf:"varint,4,opt,name=kfUin" json:"kfUin,omitempty"` + Seq *uint32 `protobuf:"varint,5,opt,name=seq" json:"seq,omitempty"` + PackNum *uint32 `protobuf:"varint,6,opt,name=packNum" json:"packNum,omitempty"` + CurPack *uint32 `protobuf:"varint,7,opt,name=curPack" json:"curPack,omitempty"` + BufSig *string `protobuf:"bytes,8,opt,name=bufSig" json:"bufSig,omitempty"` + Clienttype *uint32 `protobuf:"varint,9,opt,name=clienttype" json:"clienttype,omitempty"` + LaborUin *uint64 `protobuf:"varint,10,opt,name=laborUin" json:"laborUin,omitempty"` + LaborName *string `protobuf:"bytes,11,opt,name=laborName" json:"laborName,omitempty"` + Kfaccount *uint64 `protobuf:"varint,12,opt,name=kfaccount" json:"kfaccount,omitempty"` + TraceId *string `protobuf:"bytes,13,opt,name=traceId" json:"traceId,omitempty"` + AppId *uint32 `protobuf:"varint,14,opt,name=appId" json:"appId,omitempty"` +} + +func (x *C3F6CRMMsgHead) Reset() { + *x = C3F6CRMMsgHead{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x3f6_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C3F6CRMMsgHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C3F6CRMMsgHead) ProtoMessage() {} + +func (x *C3F6CRMMsgHead) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x3f6_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C3F6CRMMsgHead.ProtoReflect.Descriptor instead. +func (*C3F6CRMMsgHead) Descriptor() ([]byte, []int) { + return file_cmd0x3f6_proto_rawDescGZIP(), []int{5} +} + +func (x *C3F6CRMMsgHead) GetCrmSubCmd() uint32 { + if x != nil && x.CrmSubCmd != nil { + return *x.CrmSubCmd + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetHeadLen() uint32 { + if x != nil && x.HeadLen != nil { + return *x.HeadLen + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetVerNo() uint32 { + if x != nil && x.VerNo != nil { + return *x.VerNo + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetKfUin() uint64 { + if x != nil && x.KfUin != nil { + return *x.KfUin + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetPackNum() uint32 { + if x != nil && x.PackNum != nil { + return *x.PackNum + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetCurPack() uint32 { + if x != nil && x.CurPack != nil { + return *x.CurPack + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetBufSig() string { + if x != nil && x.BufSig != nil { + return *x.BufSig + } + return "" +} + +func (x *C3F6CRMMsgHead) GetClienttype() uint32 { + if x != nil && x.Clienttype != nil { + return *x.Clienttype + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetLaborUin() uint64 { + if x != nil && x.LaborUin != nil { + return *x.LaborUin + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetLaborName() string { + if x != nil && x.LaborName != nil { + return *x.LaborName + } + return "" +} + +func (x *C3F6CRMMsgHead) GetKfaccount() uint64 { + if x != nil && x.Kfaccount != nil { + return *x.Kfaccount + } + return 0 +} + +func (x *C3F6CRMMsgHead) GetTraceId() string { + if x != nil && x.TraceId != nil { + return *x.TraceId + } + return "" +} + +func (x *C3F6CRMMsgHead) GetAppId() uint32 { + if x != nil && x.AppId != nil { + return *x.AppId + } + return 0 +} + +var File_cmd0x3f6_proto protoreflect.FileDescriptor + +var file_cmd0x3f6_proto_rawDesc = []byte{ + 0x0a, 0x0e, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x33, 0x66, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xce, 0x01, 0x0a, 0x0b, 0x43, 0x33, 0x46, 0x36, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x12, 0x35, 0x0a, 0x0d, 0x63, 0x72, 0x6d, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x43, 0x33, 0x46, 0x36, 0x43, 0x52, 0x4d, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, + 0x52, 0x0d, 0x63, 0x72, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x12, + 0x70, 0x0a, 0x21, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x42, 0x6f, 0x64, 0x79, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x51, 0x44, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x21, + 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, + 0x79, 0x22, 0xce, 0x01, 0x0a, 0x0b, 0x43, 0x33, 0x46, 0x36, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x12, 0x35, 0x0a, 0x0d, 0x63, 0x72, 0x6d, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x43, 0x33, 0x46, 0x36, 0x43, 0x52, 0x4d, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x52, 0x0d, 0x63, 0x72, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x12, 0x70, 0x0a, 0x21, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, + 0x70, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x51, 0x44, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, + 0x21, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x42, 0x6f, + 0x64, 0x79, 0x22, 0xd5, 0x02, 0x0a, 0x21, 0x51, 0x44, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x66, 0x65, 0x78, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6b, 0x66, 0x65, 0x78, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x75, 0x62, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, + 0x75, 0x62, 0x6e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x6e, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x6e, 0x6f, 0x12, 0x22, + 0x0a, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, + 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x75, 0x62, 0x41, 0x70, 0x70, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x73, 0x75, 0x62, 0x41, 0x70, 0x70, 0x49, 0x64, 0x22, 0xcd, 0x05, 0x0a, 0x21, 0x51, + 0x44, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x1a, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, + 0x52, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x2a, + 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x50, 0x72, + 0x69, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x75, + 0x62, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x12, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x62, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x74, 0x53, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x74, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, + 0x72, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, 0x6f, 0x72, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x69, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x69, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x66, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x6b, 0x66, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, + 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x4d, 0x73, + 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x4e, 0x6f, 0x74, + 0x69, 0x63, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6e, 0x61, 0x6d, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x6d, 0x4d, + 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x63, 0x72, 0x6d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x75, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x75, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3f, 0x0a, 0x07, 0x52, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xfa, 0x02, 0x0a, 0x0e, + 0x43, 0x33, 0x46, 0x36, 0x43, 0x52, 0x4d, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x6d, 0x53, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x63, 0x72, 0x6d, 0x53, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x68, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x68, + 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x14, 0x0a, 0x05, + 0x6b, 0x66, 0x55, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6b, 0x66, 0x55, + 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x73, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x75, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x63, 0x75, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x53, + 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x66, 0x53, 0x69, 0x67, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x66, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6b, + 0x66, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x3b, 0x63, 0x6d, + 0x64, 0x30, 0x78, 0x33, 0x66, 0x36, +} + +var ( + file_cmd0x3f6_proto_rawDescOnce sync.Once + file_cmd0x3f6_proto_rawDescData = file_cmd0x3f6_proto_rawDesc +) + +func file_cmd0x3f6_proto_rawDescGZIP() []byte { + file_cmd0x3f6_proto_rawDescOnce.Do(func() { + file_cmd0x3f6_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd0x3f6_proto_rawDescData) + }) + return file_cmd0x3f6_proto_rawDescData +} + +var file_cmd0x3f6_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_cmd0x3f6_proto_goTypes = []interface{}{ + (*C3F6ReqBody)(nil), // 0: C3F6ReqBody + (*C3F6RspBody)(nil), // 1: C3F6RspBody + (*QDUserLoginProcessCompleteReqBody)(nil), // 2: QDUserLoginProcessCompleteReqBody + (*QDUserLoginProcessCompleteRspBody)(nil), // 3: QDUserLoginProcessCompleteRspBody + (*RetInfo)(nil), // 4: RetInfo + (*C3F6CRMMsgHead)(nil), // 5: C3F6CRMMsgHead +} +var file_cmd0x3f6_proto_depIdxs = []int32{ + 5, // 0: C3F6ReqBody.crmCommonHead:type_name -> C3F6CRMMsgHead + 2, // 1: C3F6ReqBody.subcmdLoginProcessCompleteReqBody:type_name -> QDUserLoginProcessCompleteReqBody + 5, // 2: C3F6RspBody.crmCommonHead:type_name -> C3F6CRMMsgHead + 3, // 3: C3F6RspBody.subcmdLoginProcessCompleteRspBody:type_name -> QDUserLoginProcessCompleteRspBody + 4, // 4: QDUserLoginProcessCompleteRspBody.ret:type_name -> RetInfo + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_cmd0x3f6_proto_init() } +func file_cmd0x3f6_proto_init() { + if File_cmd0x3f6_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cmd0x3f6_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C3F6ReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x3f6_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C3F6RspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x3f6_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QDUserLoginProcessCompleteReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x3f6_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QDUserLoginProcessCompleteRspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x3f6_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x3f6_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C3F6CRMMsgHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cmd0x3f6_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cmd0x3f6_proto_goTypes, + DependencyIndexes: file_cmd0x3f6_proto_depIdxs, + MessageInfos: file_cmd0x3f6_proto_msgTypes, + }.Build() + File_cmd0x3f6_proto = out.File + file_cmd0x3f6_proto_rawDesc = nil + file_cmd0x3f6_proto_goTypes = nil + file_cmd0x3f6_proto_depIdxs = nil +} diff --git a/client/pb/cmd0x3f6/cmd0x3f6.proto b/client/pb/cmd0x3f6/cmd0x3f6.proto new file mode 100644 index 00000000..0024d7e3 --- /dev/null +++ b/client/pb/cmd0x3f6/cmd0x3f6.proto @@ -0,0 +1,73 @@ +syntax = "proto2"; +option go_package = ".;cmd0x3f6"; + +message C3F6ReqBody { + optional uint32 subCmd = 1; + optional C3F6CRMMsgHead crmCommonHead = 2; + optional QDUserLoginProcessCompleteReqBody subcmdLoginProcessCompleteReqBody = 42; +} + +message C3F6RspBody { + optional uint32 subCmd = 1; + optional C3F6CRMMsgHead crmCommonHead = 2; + optional QDUserLoginProcessCompleteRspBody subcmdLoginProcessCompleteRspBody = 42; +} + +message QDUserLoginProcessCompleteReqBody { + optional uint64 kfext = 1; + optional uint32 pubno = 2; + optional uint32 buildno = 3; + optional uint32 terminalType = 4; + optional uint32 status = 5; + optional uint32 loginTime = 6; + optional string hardwareInfo = 7; + optional string softwareInfo = 8; + optional bytes guid = 9; + optional string appName = 10; + optional uint32 subAppId = 11; +} + +message QDUserLoginProcessCompleteRspBody { + optional RetInfo ret = 1; + optional string url = 2; + optional string mobile = 3; + optional string externalMobile = 4; + optional bool dataAnalysisPriv = 5; + optional bool deviceLock = 6; + optional uint64 modulePrivilege = 7; + repeated uint32 moduleSubPrivilege = 8; + optional uint32 masterSet = 9; + optional uint32 extSet = 10; + optional uint64 corpConfProperty = 11; + optional uint64 corpuin = 12; + optional uint64 kfaccount = 13; + optional uint32 securityLevel = 14; + optional string msgTitle = 15; + optional string succNoticeMsg = 16; + optional uint64 nameAccount = 17; + optional uint32 crmMigrateFlag = 18; + optional string extuinName = 19; + optional uint32 openAccountTime = 20; +} + +message RetInfo { + optional uint32 retCode = 1; + optional string errorMsg = 2; +} + +message C3F6CRMMsgHead { + optional uint32 crmSubCmd = 1; + optional uint32 headLen = 2; + optional uint32 verNo = 3; + optional uint64 kfUin = 4; + optional uint32 seq = 5; + optional uint32 packNum = 6; + optional uint32 curPack = 7; + optional string bufSig = 8; + optional uint32 clienttype = 9; + optional uint64 laborUin = 10; + optional string laborName = 11; + optional uint64 kfaccount = 12; + optional string traceId = 13; + optional uint32 appId = 14; +} diff --git a/client/pb/cmd0x6ff/smbcmd0x519.pb.go b/client/pb/cmd0x6ff/smbcmd0x519.pb.go new file mode 100644 index 00000000..d9556cd0 --- /dev/null +++ b/client/pb/cmd0x6ff/smbcmd0x519.pb.go @@ -0,0 +1,1577 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.14.0 +// source: smbcmd0x519.proto + +package cmd0x6ff + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type C519CRMMsgHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CrmSubCmd *uint32 `protobuf:"varint,1,opt,name=crmSubCmd" json:"crmSubCmd,omitempty"` + HeadLen *uint32 `protobuf:"varint,2,opt,name=headLen" json:"headLen,omitempty"` + VerNo *uint32 `protobuf:"varint,3,opt,name=verNo" json:"verNo,omitempty"` + KfUin *uint64 `protobuf:"varint,4,opt,name=kfUin" json:"kfUin,omitempty"` + Seq *uint32 `protobuf:"varint,5,opt,name=seq" json:"seq,omitempty"` + PackNum *uint32 `protobuf:"varint,6,opt,name=packNum" json:"packNum,omitempty"` + CurPack *uint32 `protobuf:"varint,7,opt,name=curPack" json:"curPack,omitempty"` + BufSig *string `protobuf:"bytes,8,opt,name=bufSig" json:"bufSig,omitempty"` + PubQq *uint64 `protobuf:"varint,9,opt,name=pubQq" json:"pubQq,omitempty"` + Clienttype *uint32 `protobuf:"varint,10,opt,name=clienttype" json:"clienttype,omitempty"` + LaborUin *uint64 `protobuf:"varint,11,opt,name=laborUin" json:"laborUin,omitempty"` + LaborName *string `protobuf:"bytes,12,opt,name=laborName" json:"laborName,omitempty"` + Puin *uint64 `protobuf:"varint,13,opt,name=puin" json:"puin,omitempty"` +} + +func (x *C519CRMMsgHead) Reset() { + *x = C519CRMMsgHead{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C519CRMMsgHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C519CRMMsgHead) ProtoMessage() {} + +func (x *C519CRMMsgHead) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C519CRMMsgHead.ProtoReflect.Descriptor instead. +func (*C519CRMMsgHead) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{0} +} + +func (x *C519CRMMsgHead) GetCrmSubCmd() uint32 { + if x != nil && x.CrmSubCmd != nil { + return *x.CrmSubCmd + } + return 0 +} + +func (x *C519CRMMsgHead) GetHeadLen() uint32 { + if x != nil && x.HeadLen != nil { + return *x.HeadLen + } + return 0 +} + +func (x *C519CRMMsgHead) GetVerNo() uint32 { + if x != nil && x.VerNo != nil { + return *x.VerNo + } + return 0 +} + +func (x *C519CRMMsgHead) GetKfUin() uint64 { + if x != nil && x.KfUin != nil { + return *x.KfUin + } + return 0 +} + +func (x *C519CRMMsgHead) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *C519CRMMsgHead) GetPackNum() uint32 { + if x != nil && x.PackNum != nil { + return *x.PackNum + } + return 0 +} + +func (x *C519CRMMsgHead) GetCurPack() uint32 { + if x != nil && x.CurPack != nil { + return *x.CurPack + } + return 0 +} + +func (x *C519CRMMsgHead) GetBufSig() string { + if x != nil && x.BufSig != nil { + return *x.BufSig + } + return "" +} + +func (x *C519CRMMsgHead) GetPubQq() uint64 { + if x != nil && x.PubQq != nil { + return *x.PubQq + } + return 0 +} + +func (x *C519CRMMsgHead) GetClienttype() uint32 { + if x != nil && x.Clienttype != nil { + return *x.Clienttype + } + return 0 +} + +func (x *C519CRMMsgHead) GetLaborUin() uint64 { + if x != nil && x.LaborUin != nil { + return *x.LaborUin + } + return 0 +} + +func (x *C519CRMMsgHead) GetLaborName() string { + if x != nil && x.LaborName != nil { + return *x.LaborName + } + return "" +} + +func (x *C519CRMMsgHead) GetPuin() uint64 { + if x != nil && x.Puin != nil { + return *x.Puin + } + return 0 +} + +type GetNavigationMenuReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Puin *uint64 `protobuf:"varint,1,opt,name=puin" json:"puin,omitempty"` + Uin *uint64 `protobuf:"varint,2,opt,name=uin" json:"uin,omitempty"` + VerNo *uint32 `protobuf:"varint,3,opt,name=verNo" json:"verNo,omitempty"` +} + +func (x *GetNavigationMenuReqBody) Reset() { + *x = GetNavigationMenuReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetNavigationMenuReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNavigationMenuReqBody) ProtoMessage() {} + +func (x *GetNavigationMenuReqBody) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNavigationMenuReqBody.ProtoReflect.Descriptor instead. +func (*GetNavigationMenuReqBody) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{1} +} + +func (x *GetNavigationMenuReqBody) GetPuin() uint64 { + if x != nil && x.Puin != nil { + return *x.Puin + } + return 0 +} + +func (x *GetNavigationMenuReqBody) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *GetNavigationMenuReqBody) GetVerNo() uint32 { + if x != nil && x.VerNo != nil { + return *x.VerNo + } + return 0 +} + +type GetNavigationMenuRspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ret *C519RetInfo `protobuf:"bytes,1,opt,name=ret" json:"ret,omitempty"` + IsShow *int32 `protobuf:"varint,2,opt,name=isShow" json:"isShow,omitempty"` + UctMsg *string `protobuf:"bytes,3,opt,name=uctMsg" json:"uctMsg,omitempty"` + VerNo *uint32 `protobuf:"varint,4,opt,name=verNo" json:"verNo,omitempty"` +} + +func (x *GetNavigationMenuRspBody) Reset() { + *x = GetNavigationMenuRspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetNavigationMenuRspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNavigationMenuRspBody) ProtoMessage() {} + +func (x *GetNavigationMenuRspBody) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNavigationMenuRspBody.ProtoReflect.Descriptor instead. +func (*GetNavigationMenuRspBody) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{2} +} + +func (x *GetNavigationMenuRspBody) GetRet() *C519RetInfo { + if x != nil { + return x.Ret + } + return nil +} + +func (x *GetNavigationMenuRspBody) GetIsShow() int32 { + if x != nil && x.IsShow != nil { + return *x.IsShow + } + return 0 +} + +func (x *GetNavigationMenuRspBody) GetUctMsg() string { + if x != nil && x.UctMsg != nil { + return *x.UctMsg + } + return "" +} + +func (x *GetNavigationMenuRspBody) GetVerNo() uint32 { + if x != nil && x.VerNo != nil { + return *x.VerNo + } + return 0 +} + +type C519ReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubCmd *uint32 `protobuf:"varint,1,opt,name=subCmd" json:"subCmd,omitempty"` + CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt,name=crmCommonHead" json:"crmCommonHead,omitempty"` + GetAddressDetailListReqBody *GetAddressDetailListReqBody `protobuf:"bytes,33,opt,name=getAddressDetailListReqBody" json:"getAddressDetailListReqBody,omitempty"` + GetNavigationMenuReq *GetNavigationMenuReqBody `protobuf:"bytes,35,opt,name=getNavigationMenuReq" json:"getNavigationMenuReq,omitempty"` +} + +func (x *C519ReqBody) Reset() { + *x = C519ReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C519ReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C519ReqBody) ProtoMessage() {} + +func (x *C519ReqBody) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C519ReqBody.ProtoReflect.Descriptor instead. +func (*C519ReqBody) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{3} +} + +func (x *C519ReqBody) GetSubCmd() uint32 { + if x != nil && x.SubCmd != nil { + return *x.SubCmd + } + return 0 +} + +func (x *C519ReqBody) GetCrmCommonHead() *C519CRMMsgHead { + if x != nil { + return x.CrmCommonHead + } + return nil +} + +func (x *C519ReqBody) GetGetAddressDetailListReqBody() *GetAddressDetailListReqBody { + if x != nil { + return x.GetAddressDetailListReqBody + } + return nil +} + +func (x *C519ReqBody) GetGetNavigationMenuReq() *GetNavigationMenuReqBody { + if x != nil { + return x.GetNavigationMenuReq + } + return nil +} + +type C519RetInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RetCode *uint32 `protobuf:"varint,1,opt,name=retCode" json:"retCode,omitempty"` + ErrorMsg *string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` +} + +func (x *C519RetInfo) Reset() { + *x = C519RetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C519RetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C519RetInfo) ProtoMessage() {} + +func (x *C519RetInfo) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C519RetInfo.ProtoReflect.Descriptor instead. +func (*C519RetInfo) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{4} +} + +func (x *C519RetInfo) GetRetCode() uint32 { + if x != nil && x.RetCode != nil { + return *x.RetCode + } + return 0 +} + +func (x *C519RetInfo) GetErrorMsg() string { + if x != nil && x.ErrorMsg != nil { + return *x.ErrorMsg + } + return "" +} + +type C519RspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubCmd *uint32 `protobuf:"varint,1,opt,name=subCmd" json:"subCmd,omitempty"` + CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt,name=crmCommonHead" json:"crmCommonHead,omitempty"` + GetAddressDetailListRspBody *GetAddressDetailListRspBody `protobuf:"bytes,33,opt,name=getAddressDetailListRspBody" json:"getAddressDetailListRspBody,omitempty"` + GetNavigationMenuRsp *GetNavigationMenuRspBody `protobuf:"bytes,35,opt,name=getNavigationMenuRsp" json:"getNavigationMenuRsp,omitempty"` +} + +func (x *C519RspBody) Reset() { + *x = C519RspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C519RspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C519RspBody) ProtoMessage() {} + +func (x *C519RspBody) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C519RspBody.ProtoReflect.Descriptor instead. +func (*C519RspBody) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{5} +} + +func (x *C519RspBody) GetSubCmd() uint32 { + if x != nil && x.SubCmd != nil { + return *x.SubCmd + } + return 0 +} + +func (x *C519RspBody) GetCrmCommonHead() *C519CRMMsgHead { + if x != nil { + return x.CrmCommonHead + } + return nil +} + +func (x *C519RspBody) GetGetAddressDetailListRspBody() *GetAddressDetailListRspBody { + if x != nil { + return x.GetAddressDetailListRspBody + } + return nil +} + +func (x *C519RspBody) GetGetNavigationMenuRsp() *GetNavigationMenuRspBody { + if x != nil { + return x.GetNavigationMenuRsp + } + return nil +} + +type GetAddressDetailListReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp *uint32 `protobuf:"fixed32,1,opt,name=timestamp" json:"timestamp,omitempty"` + Timestamp2 *uint64 `protobuf:"fixed64,2,opt,name=timestamp2" json:"timestamp2,omitempty"` +} + +func (x *GetAddressDetailListReqBody) Reset() { + *x = GetAddressDetailListReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAddressDetailListReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAddressDetailListReqBody) ProtoMessage() {} + +func (x *GetAddressDetailListReqBody) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAddressDetailListReqBody.ProtoReflect.Descriptor instead. +func (*GetAddressDetailListReqBody) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{6} +} + +func (x *GetAddressDetailListReqBody) GetTimestamp() uint32 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *GetAddressDetailListReqBody) GetTimestamp2() uint64 { + if x != nil && x.Timestamp2 != nil { + return *x.Timestamp2 + } + return 0 +} + +type GetAddressDetailListRspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ret *C519RetInfo `protobuf:"bytes,1,opt,name=ret" json:"ret,omitempty"` + Timestamp *uint32 `protobuf:"fixed32,2,opt,name=timestamp" json:"timestamp,omitempty"` + Full *bool `protobuf:"varint,3,opt,name=full" json:"full,omitempty"` + AddressDetail []*AddressDetail `protobuf:"bytes,4,rep,name=addressDetail" json:"addressDetail,omitempty"` + Timestamp2 *uint64 `protobuf:"fixed64,5,opt,name=timestamp2" json:"timestamp2,omitempty"` +} + +func (x *GetAddressDetailListRspBody) Reset() { + *x = GetAddressDetailListRspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAddressDetailListRspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAddressDetailListRspBody) ProtoMessage() {} + +func (x *GetAddressDetailListRspBody) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAddressDetailListRspBody.ProtoReflect.Descriptor instead. +func (*GetAddressDetailListRspBody) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{7} +} + +func (x *GetAddressDetailListRspBody) GetRet() *C519RetInfo { + if x != nil { + return x.Ret + } + return nil +} + +func (x *GetAddressDetailListRspBody) GetTimestamp() uint32 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *GetAddressDetailListRspBody) GetFull() bool { + if x != nil && x.Full != nil { + return *x.Full + } + return false +} + +func (x *GetAddressDetailListRspBody) GetAddressDetail() []*AddressDetail { + if x != nil { + return x.AddressDetail + } + return nil +} + +func (x *GetAddressDetailListRspBody) GetTimestamp2() uint64 { + if x != nil && x.Timestamp2 != nil { + return *x.Timestamp2 + } + return 0 +} + +type AddressDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Aid *uint32 `protobuf:"varint,1,opt,name=aid" json:"aid,omitempty"` + ModifyTime *uint32 `protobuf:"fixed32,2,opt,name=modifyTime" json:"modifyTime,omitempty"` + CreateTime *uint32 `protobuf:"fixed32,3,opt,name=createTime" json:"createTime,omitempty"` + Status *uint32 `protobuf:"varint,4,opt,name=status" json:"status,omitempty"` + Groupid *uint32 `protobuf:"varint,5,opt,name=groupid" json:"groupid,omitempty"` + AddGroupName []byte `protobuf:"bytes,6,opt,name=addGroupName" json:"addGroupName,omitempty"` + Name []byte `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"` + Gender *uint32 `protobuf:"varint,8,opt,name=gender" json:"gender,omitempty"` + Birthday *uint32 `protobuf:"fixed32,9,opt,name=birthday" json:"birthday,omitempty"` + Company0 []byte `protobuf:"bytes,10,opt,name=company0" json:"company0,omitempty"` + CompanyPosition0 []byte `protobuf:"bytes,11,opt,name=companyPosition0" json:"companyPosition0,omitempty"` + Company1 []byte `protobuf:"bytes,12,opt,name=company1" json:"company1,omitempty"` + CompanyPosition1 []byte `protobuf:"bytes,13,opt,name=companyPosition1" json:"companyPosition1,omitempty"` + FixedPhone0 []byte `protobuf:"bytes,14,opt,name=fixedPhone0" json:"fixedPhone0,omitempty"` + FixedPhone1 []byte `protobuf:"bytes,15,opt,name=fixedPhone1" json:"fixedPhone1,omitempty"` + Email0 []byte `protobuf:"bytes,16,opt,name=email0" json:"email0,omitempty"` + Email1 []byte `protobuf:"bytes,17,opt,name=email1" json:"email1,omitempty"` + Fax0 []byte `protobuf:"bytes,18,opt,name=fax0" json:"fax0,omitempty"` + Fax1 []byte `protobuf:"bytes,19,opt,name=fax1" json:"fax1,omitempty"` + Comment []byte `protobuf:"bytes,20,opt,name=comment" json:"comment,omitempty"` + HeadUrl []byte `protobuf:"bytes,21,opt,name=headUrl" json:"headUrl,omitempty"` + MobilePhone []*AddressMobileInfo `protobuf:"bytes,22,rep,name=mobilePhone" json:"mobilePhone,omitempty"` + MobilePhoneUpdated *bool `protobuf:"varint,23,opt,name=mobilePhoneUpdated" json:"mobilePhoneUpdated,omitempty"` + Qq []*AddressQQinfo `protobuf:"bytes,24,rep,name=qq" json:"qq,omitempty"` + QqPhoneUpdated *bool `protobuf:"varint,25,opt,name=qqPhoneUpdated" json:"qqPhoneUpdated,omitempty"` + ModifyTime2 *uint64 `protobuf:"fixed64,26,opt,name=modifyTime2" json:"modifyTime2,omitempty"` + ClientRegion *NewBizClientRegion `protobuf:"bytes,27,opt,name=clientRegion" json:"clientRegion,omitempty"` + ClientRegionCode *NewBizClientRegionCode `protobuf:"bytes,28,opt,name=clientRegionCode" json:"clientRegionCode,omitempty"` +} + +func (x *AddressDetail) Reset() { + *x = AddressDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressDetail) ProtoMessage() {} + +func (x *AddressDetail) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressDetail.ProtoReflect.Descriptor instead. +func (*AddressDetail) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{8} +} + +func (x *AddressDetail) GetAid() uint32 { + if x != nil && x.Aid != nil { + return *x.Aid + } + return 0 +} + +func (x *AddressDetail) GetModifyTime() uint32 { + if x != nil && x.ModifyTime != nil { + return *x.ModifyTime + } + return 0 +} + +func (x *AddressDetail) GetCreateTime() uint32 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *AddressDetail) GetStatus() uint32 { + if x != nil && x.Status != nil { + return *x.Status + } + return 0 +} + +func (x *AddressDetail) GetGroupid() uint32 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *AddressDetail) GetAddGroupName() []byte { + if x != nil { + return x.AddGroupName + } + return nil +} + +func (x *AddressDetail) GetName() []byte { + if x != nil { + return x.Name + } + return nil +} + +func (x *AddressDetail) GetGender() uint32 { + if x != nil && x.Gender != nil { + return *x.Gender + } + return 0 +} + +func (x *AddressDetail) GetBirthday() uint32 { + if x != nil && x.Birthday != nil { + return *x.Birthday + } + return 0 +} + +func (x *AddressDetail) GetCompany0() []byte { + if x != nil { + return x.Company0 + } + return nil +} + +func (x *AddressDetail) GetCompanyPosition0() []byte { + if x != nil { + return x.CompanyPosition0 + } + return nil +} + +func (x *AddressDetail) GetCompany1() []byte { + if x != nil { + return x.Company1 + } + return nil +} + +func (x *AddressDetail) GetCompanyPosition1() []byte { + if x != nil { + return x.CompanyPosition1 + } + return nil +} + +func (x *AddressDetail) GetFixedPhone0() []byte { + if x != nil { + return x.FixedPhone0 + } + return nil +} + +func (x *AddressDetail) GetFixedPhone1() []byte { + if x != nil { + return x.FixedPhone1 + } + return nil +} + +func (x *AddressDetail) GetEmail0() []byte { + if x != nil { + return x.Email0 + } + return nil +} + +func (x *AddressDetail) GetEmail1() []byte { + if x != nil { + return x.Email1 + } + return nil +} + +func (x *AddressDetail) GetFax0() []byte { + if x != nil { + return x.Fax0 + } + return nil +} + +func (x *AddressDetail) GetFax1() []byte { + if x != nil { + return x.Fax1 + } + return nil +} + +func (x *AddressDetail) GetComment() []byte { + if x != nil { + return x.Comment + } + return nil +} + +func (x *AddressDetail) GetHeadUrl() []byte { + if x != nil { + return x.HeadUrl + } + return nil +} + +func (x *AddressDetail) GetMobilePhone() []*AddressMobileInfo { + if x != nil { + return x.MobilePhone + } + return nil +} + +func (x *AddressDetail) GetMobilePhoneUpdated() bool { + if x != nil && x.MobilePhoneUpdated != nil { + return *x.MobilePhoneUpdated + } + return false +} + +func (x *AddressDetail) GetQq() []*AddressQQinfo { + if x != nil { + return x.Qq + } + return nil +} + +func (x *AddressDetail) GetQqPhoneUpdated() bool { + if x != nil && x.QqPhoneUpdated != nil { + return *x.QqPhoneUpdated + } + return false +} + +func (x *AddressDetail) GetModifyTime2() uint64 { + if x != nil && x.ModifyTime2 != nil { + return *x.ModifyTime2 + } + return 0 +} + +func (x *AddressDetail) GetClientRegion() *NewBizClientRegion { + if x != nil { + return x.ClientRegion + } + return nil +} + +func (x *AddressDetail) GetClientRegionCode() *NewBizClientRegionCode { + if x != nil { + return x.ClientRegionCode + } + return nil +} + +type AddressMobileInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Account []byte `protobuf:"bytes,2,opt,name=account" json:"account,omitempty"` + FormattedAccount []byte `protobuf:"bytes,5,opt,name=formattedAccount" json:"formattedAccount,omitempty"` +} + +func (x *AddressMobileInfo) Reset() { + *x = AddressMobileInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressMobileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressMobileInfo) ProtoMessage() {} + +func (x *AddressMobileInfo) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressMobileInfo.ProtoReflect.Descriptor instead. +func (*AddressMobileInfo) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{9} +} + +func (x *AddressMobileInfo) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *AddressMobileInfo) GetAccount() []byte { + if x != nil { + return x.Account + } + return nil +} + +func (x *AddressMobileInfo) GetFormattedAccount() []byte { + if x != nil { + return x.FormattedAccount + } + return nil +} + +type AddressQQinfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Account *uint64 `protobuf:"varint,2,opt,name=account" json:"account,omitempty"` +} + +func (x *AddressQQinfo) Reset() { + *x = AddressQQinfo{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressQQinfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressQQinfo) ProtoMessage() {} + +func (x *AddressQQinfo) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressQQinfo.ProtoReflect.Descriptor instead. +func (*AddressQQinfo) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{10} +} + +func (x *AddressQQinfo) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *AddressQQinfo) GetAccount() uint64 { + if x != nil && x.Account != nil { + return *x.Account + } + return 0 +} + +type NewBizClientRegion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientNation *string `protobuf:"bytes,1,opt,name=clientNation" json:"clientNation,omitempty"` + ClientProvince *string `protobuf:"bytes,2,opt,name=clientProvince" json:"clientProvince,omitempty"` + ClientCity *string `protobuf:"bytes,3,opt,name=clientCity" json:"clientCity,omitempty"` + ClientRegion *string `protobuf:"bytes,4,opt,name=clientRegion" json:"clientRegion,omitempty"` +} + +func (x *NewBizClientRegion) Reset() { + *x = NewBizClientRegion{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewBizClientRegion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewBizClientRegion) ProtoMessage() {} + +func (x *NewBizClientRegion) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewBizClientRegion.ProtoReflect.Descriptor instead. +func (*NewBizClientRegion) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{11} +} + +func (x *NewBizClientRegion) GetClientNation() string { + if x != nil && x.ClientNation != nil { + return *x.ClientNation + } + return "" +} + +func (x *NewBizClientRegion) GetClientProvince() string { + if x != nil && x.ClientProvince != nil { + return *x.ClientProvince + } + return "" +} + +func (x *NewBizClientRegion) GetClientCity() string { + if x != nil && x.ClientCity != nil { + return *x.ClientCity + } + return "" +} + +func (x *NewBizClientRegion) GetClientRegion() string { + if x != nil && x.ClientRegion != nil { + return *x.ClientRegion + } + return "" +} + +type NewBizClientRegionCode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nationid *uint64 `protobuf:"varint,1,opt,name=nationid" json:"nationid,omitempty"` + Provinceid *uint64 `protobuf:"varint,2,opt,name=provinceid" json:"provinceid,omitempty"` + Cityid *uint64 `protobuf:"varint,3,opt,name=cityid" json:"cityid,omitempty"` + Regionid *uint64 `protobuf:"varint,4,opt,name=regionid" json:"regionid,omitempty"` +} + +func (x *NewBizClientRegionCode) Reset() { + *x = NewBizClientRegionCode{} + if protoimpl.UnsafeEnabled { + mi := &file_smbcmd0x519_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewBizClientRegionCode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewBizClientRegionCode) ProtoMessage() {} + +func (x *NewBizClientRegionCode) ProtoReflect() protoreflect.Message { + mi := &file_smbcmd0x519_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewBizClientRegionCode.ProtoReflect.Descriptor instead. +func (*NewBizClientRegionCode) Descriptor() ([]byte, []int) { + return file_smbcmd0x519_proto_rawDescGZIP(), []int{12} +} + +func (x *NewBizClientRegionCode) GetNationid() uint64 { + if x != nil && x.Nationid != nil { + return *x.Nationid + } + return 0 +} + +func (x *NewBizClientRegionCode) GetProvinceid() uint64 { + if x != nil && x.Provinceid != nil { + return *x.Provinceid + } + return 0 +} + +func (x *NewBizClientRegionCode) GetCityid() uint64 { + if x != nil && x.Cityid != nil { + return *x.Cityid + } + return 0 +} + +func (x *NewBizClientRegionCode) GetRegionid() uint64 { + if x != nil && x.Regionid != nil { + return *x.Regionid + } + return 0 +} + +var File_smbcmd0x519_proto protoreflect.FileDescriptor + +var file_smbcmd0x519_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x73, 0x6d, 0x62, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x35, 0x31, 0x39, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x02, 0x0a, 0x0e, 0x43, 0x35, 0x31, 0x39, 0x43, 0x52, 0x4d, 0x4d, + 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x6d, 0x53, 0x75, 0x62, + 0x43, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x6d, 0x53, 0x75, + 0x62, 0x43, 0x6d, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, + 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x66, 0x55, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x6b, 0x66, 0x55, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, + 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, + 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x50, 0x61, 0x63, + 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x50, 0x61, 0x63, 0x6b, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x53, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x62, 0x75, 0x66, 0x53, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x75, 0x62, 0x51, + 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, 0x75, 0x62, 0x51, 0x71, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, + 0x62, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, + 0x61, 0x62, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x75, 0x69, 0x6e, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x75, 0x69, 0x6e, 0x22, 0x56, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6e, + 0x75, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x75, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x75, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, + 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x76, 0x69, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x1e, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x43, 0x35, 0x31, 0x39, 0x52, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x72, 0x65, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x63, 0x74, + 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x63, 0x74, 0x4d, 0x73, + 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x8b, 0x02, 0x0a, 0x0b, 0x43, 0x35, 0x31, 0x39, + 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x12, + 0x35, 0x0a, 0x0d, 0x63, 0x72, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x43, 0x35, 0x31, 0x39, 0x43, 0x52, 0x4d, + 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0d, 0x63, 0x72, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x12, 0x5e, 0x0a, 0x1b, 0x67, 0x65, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x1b, 0x67, 0x65, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x4d, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x76, + 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x18, 0x23, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x52, + 0x14, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6e, 0x75, 0x52, 0x65, 0x71, 0x22, 0x43, 0x0a, 0x0b, 0x43, 0x35, 0x31, 0x39, 0x52, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x8b, 0x02, 0x0a, 0x0b, 0x43, + 0x35, 0x31, 0x39, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, + 0x62, 0x43, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, + 0x6d, 0x64, 0x12, 0x35, 0x0a, 0x0d, 0x63, 0x72, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x43, 0x35, 0x31, 0x39, + 0x43, 0x52, 0x4d, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0d, 0x63, 0x72, 0x6d, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x12, 0x5e, 0x0a, 0x1b, 0x67, 0x65, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x1b, 0x67, 0x65, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x4d, 0x0a, 0x14, 0x67, 0x65, 0x74, + 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x73, + 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x76, + 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x73, 0x70, 0x42, 0x6f, + 0x64, 0x79, 0x52, 0x14, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x73, 0x70, 0x22, 0x5b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x32, 0x22, 0xc5, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, + 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1e, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x35, 0x31, 0x39, 0x52, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x12, 0x34, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0d, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x22, 0xad, 0x07, + 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x30, 0x12, 0x2a, 0x0a, 0x10, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x30, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, + 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x30, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x30, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x31, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x30, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x30, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x78, 0x30, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x66, 0x61, 0x78, 0x30, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x78, 0x31, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x61, 0x78, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, + 0x34, 0x0a, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x16, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x6f, + 0x62, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x18, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x51, 0x51, 0x69, 0x6e, 0x66, + 0x6f, 0x52, 0x02, 0x71, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x71, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x71, + 0x71, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x32, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x32, 0x12, + 0x37, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x4e, 0x65, 0x77, 0x42, 0x69, 0x7a, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x4e, 0x65, 0x77, 0x42, 0x69, 0x7a, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x10, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x6f, 0x0a, + 0x11, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3f, + 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x51, 0x51, 0x69, 0x6e, 0x66, 0x6f, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xa4, 0x01, 0x0a, 0x12, 0x4e, 0x65, 0x77, 0x42, 0x69, 0x7a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, + 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x69, + 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x16, 0x4e, 0x65, 0x77, 0x42, 0x69, + 0x7a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x69, 0x74, 0x79, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, + 0x69, 0x74, 0x79, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x69, + 0x64, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x3b, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x36, 0x66, 0x66, +} + +var ( + file_smbcmd0x519_proto_rawDescOnce sync.Once + file_smbcmd0x519_proto_rawDescData = file_smbcmd0x519_proto_rawDesc +) + +func file_smbcmd0x519_proto_rawDescGZIP() []byte { + file_smbcmd0x519_proto_rawDescOnce.Do(func() { + file_smbcmd0x519_proto_rawDescData = protoimpl.X.CompressGZIP(file_smbcmd0x519_proto_rawDescData) + }) + return file_smbcmd0x519_proto_rawDescData +} + +var file_smbcmd0x519_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_smbcmd0x519_proto_goTypes = []interface{}{ + (*C519CRMMsgHead)(nil), // 0: C519CRMMsgHead + (*GetNavigationMenuReqBody)(nil), // 1: GetNavigationMenuReqBody + (*GetNavigationMenuRspBody)(nil), // 2: GetNavigationMenuRspBody + (*C519ReqBody)(nil), // 3: C519ReqBody + (*C519RetInfo)(nil), // 4: C519RetInfo + (*C519RspBody)(nil), // 5: C519RspBody + (*GetAddressDetailListReqBody)(nil), // 6: GetAddressDetailListReqBody + (*GetAddressDetailListRspBody)(nil), // 7: GetAddressDetailListRspBody + (*AddressDetail)(nil), // 8: AddressDetail + (*AddressMobileInfo)(nil), // 9: AddressMobileInfo + (*AddressQQinfo)(nil), // 10: AddressQQinfo + (*NewBizClientRegion)(nil), // 11: NewBizClientRegion + (*NewBizClientRegionCode)(nil), // 12: NewBizClientRegionCode +} +var file_smbcmd0x519_proto_depIdxs = []int32{ + 4, // 0: GetNavigationMenuRspBody.ret:type_name -> C519RetInfo + 0, // 1: C519ReqBody.crmCommonHead:type_name -> C519CRMMsgHead + 6, // 2: C519ReqBody.getAddressDetailListReqBody:type_name -> GetAddressDetailListReqBody + 1, // 3: C519ReqBody.getNavigationMenuReq:type_name -> GetNavigationMenuReqBody + 0, // 4: C519RspBody.crmCommonHead:type_name -> C519CRMMsgHead + 7, // 5: C519RspBody.getAddressDetailListRspBody:type_name -> GetAddressDetailListRspBody + 2, // 6: C519RspBody.getNavigationMenuRsp:type_name -> GetNavigationMenuRspBody + 4, // 7: GetAddressDetailListRspBody.ret:type_name -> C519RetInfo + 8, // 8: GetAddressDetailListRspBody.addressDetail:type_name -> AddressDetail + 9, // 9: AddressDetail.mobilePhone:type_name -> AddressMobileInfo + 10, // 10: AddressDetail.qq:type_name -> AddressQQinfo + 11, // 11: AddressDetail.clientRegion:type_name -> NewBizClientRegion + 12, // 12: AddressDetail.clientRegionCode:type_name -> NewBizClientRegionCode + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_smbcmd0x519_proto_init() } +func file_smbcmd0x519_proto_init() { + if File_smbcmd0x519_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_smbcmd0x519_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C519CRMMsgHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNavigationMenuReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNavigationMenuRspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C519ReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C519RetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C519RspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAddressDetailListReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAddressDetailListRspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddressDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddressMobileInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddressQQinfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewBizClientRegion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_smbcmd0x519_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewBizClientRegionCode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_smbcmd0x519_proto_rawDesc, + NumEnums: 0, + NumMessages: 13, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_smbcmd0x519_proto_goTypes, + DependencyIndexes: file_smbcmd0x519_proto_depIdxs, + MessageInfos: file_smbcmd0x519_proto_msgTypes, + }.Build() + File_smbcmd0x519_proto = out.File + file_smbcmd0x519_proto_rawDesc = nil + file_smbcmd0x519_proto_goTypes = nil + file_smbcmd0x519_proto_depIdxs = nil +} diff --git a/client/pb/cmd0x6ff/smbcmd0x519.proto b/client/pb/cmd0x6ff/smbcmd0x519.proto new file mode 100644 index 00000000..79c7703c --- /dev/null +++ b/client/pb/cmd0x6ff/smbcmd0x519.proto @@ -0,0 +1,119 @@ +syntax = "proto2"; +option go_package = ".;cmd0x6ff"; + +message C519CRMMsgHead { + optional uint32 crmSubCmd = 1; + optional uint32 headLen = 2; + optional uint32 verNo = 3; + optional uint64 kfUin = 4; + optional uint32 seq = 5; + optional uint32 packNum = 6; + optional uint32 curPack = 7; + optional string bufSig = 8; + optional uint64 pubQq = 9; + optional uint32 clienttype = 10; + optional uint64 laborUin = 11; + optional string laborName = 12; + optional uint64 puin = 13; +} + +message GetNavigationMenuReqBody { + optional uint64 puin = 1; + optional uint64 uin = 2; + optional uint32 verNo = 3; +} + +message GetNavigationMenuRspBody { + optional C519RetInfo ret = 1; + optional int32 isShow = 2; + optional string uctMsg = 3; + optional uint32 verNo = 4; +} + +message C519ReqBody { + optional uint32 subCmd = 1; + optional C519CRMMsgHead crmCommonHead = 2; + optional GetAddressDetailListReqBody getAddressDetailListReqBody = 33; + optional GetNavigationMenuReqBody getNavigationMenuReq = 35; +} + +message C519RetInfo { + optional uint32 retCode = 1; + optional string errorMsg = 2; +} + +message C519RspBody { + optional uint32 subCmd = 1; + optional C519CRMMsgHead crmCommonHead = 2; + optional GetAddressDetailListRspBody getAddressDetailListRspBody = 33; + optional GetNavigationMenuRspBody getNavigationMenuRsp = 35; +} + +message GetAddressDetailListReqBody { + optional fixed32 timestamp = 1; + optional fixed64 timestamp2 = 2; +} + +message GetAddressDetailListRspBody { + optional C519RetInfo ret = 1; + optional fixed32 timestamp = 2; + optional bool full = 3; + repeated AddressDetail addressDetail = 4; + optional fixed64 timestamp2 = 5; +} + +message AddressDetail { + optional uint32 aid = 1; + optional fixed32 modifyTime = 2; + optional fixed32 createTime = 3; + optional uint32 status = 4; + optional uint32 groupid = 5; + optional bytes addGroupName = 6; + optional bytes name = 7; + optional uint32 gender = 8; + optional fixed32 birthday = 9; + optional bytes company0 = 10; + optional bytes companyPosition0 = 11; + optional bytes company1 = 12; + optional bytes companyPosition1 = 13; + optional bytes fixedPhone0 = 14; + optional bytes fixedPhone1 = 15; + optional bytes email0 = 16; + optional bytes email1 = 17; + optional bytes fax0 = 18; + optional bytes fax1 = 19; + optional bytes comment = 20; + optional bytes headUrl = 21; + repeated AddressMobileInfo mobilePhone = 22; + optional bool mobilePhoneUpdated = 23; + repeated AddressQQinfo qq = 24; + optional bool qqPhoneUpdated = 25; + optional fixed64 modifyTime2 = 26; + optional NewBizClientRegion clientRegion = 27; + optional NewBizClientRegionCode clientRegionCode = 28; +} + +message AddressMobileInfo { + optional uint32 index = 1; + optional bytes account = 2; + optional bytes formattedAccount = 5; +} + +message AddressQQinfo { + optional uint32 index = 1; + optional uint64 account = 2; +} + +message NewBizClientRegion { + optional string clientNation = 1; + optional string clientProvince = 2; + optional string clientCity = 3; + optional string clientRegion = 4; +} + +message NewBizClientRegionCode { + optional uint64 nationid = 1; + optional uint64 provinceid = 2; + optional uint64 cityid = 3; + optional uint64 regionid = 4; +} diff --git a/client/pb/cmd0x6ff/subcmd0x501.pb.go b/client/pb/cmd0x6ff/subcmd0x501.pb.go index e1c19a6f..4281686b 100644 --- a/client/pb/cmd0x6ff/subcmd0x501.pb.go +++ b/client/pb/cmd0x6ff/subcmd0x501.pb.go @@ -1,18 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 -// protoc v3.11.4 -// source: busi.proto +// protoc v3.14.0 +// source: subcmd0x501.proto package cmd0x6ff import ( - reflect "reflect" - sync "sync" - proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( @@ -228,11 +227,9 @@ type SubCmd0X501RspBody struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SigSession []byte `protobuf:"bytes,1,opt,name=sigSession" json:"sigSession,omitempty"` - SessionKey []byte `protobuf:"bytes,2,opt,name=sessionKey" json:"sessionKey,omitempty"` - Addrs []*SrvAddrs `protobuf:"bytes,3,rep,name=addrs" json:"addrs,omitempty"` - ShareType *uint32 `protobuf:"varint,12,opt,name=shareType" json:"shareType,omitempty"` - ShareChannel *uint32 `protobuf:"varint,13,opt,name=shareChannel" json:"shareChannel,omitempty"` + SigSession []byte `protobuf:"bytes,1,opt,name=sigSession" json:"sigSession,omitempty"` + SessionKey []byte `protobuf:"bytes,2,opt,name=sessionKey" json:"sessionKey,omitempty"` + Addrs []*SrvAddrs `protobuf:"bytes,3,rep,name=addrs" json:"addrs,omitempty"` } func (x *SubCmd0X501RspBody) Reset() { @@ -288,18 +285,59 @@ func (x *SubCmd0X501RspBody) GetAddrs() []*SrvAddrs { return nil } -func (x *SubCmd0X501RspBody) GetShareType() uint32 { - if x != nil && x.ShareType != nil { - return *x.ShareType +type SrvAddrs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServiceType *uint32 `protobuf:"varint,1,opt,name=serviceType" json:"serviceType,omitempty"` + Addrs []*IpAddr `protobuf:"bytes,2,rep,name=addrs" json:"addrs,omitempty"` +} + +func (x *SrvAddrs) Reset() { + *x = SrvAddrs{} + if protoimpl.UnsafeEnabled { + mi := &file_subcmd0x501_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SrvAddrs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SrvAddrs) ProtoMessage() {} + +func (x *SrvAddrs) ProtoReflect() protoreflect.Message { + mi := &file_subcmd0x501_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SrvAddrs.ProtoReflect.Descriptor instead. +func (*SrvAddrs) Descriptor() ([]byte, []int) { + return file_subcmd0x501_proto_rawDescGZIP(), []int{4} +} + +func (x *SrvAddrs) GetServiceType() uint32 { + if x != nil && x.ServiceType != nil { + return *x.ServiceType } return 0 } -func (x *SubCmd0X501RspBody) GetShareChannel() uint32 { - if x != nil && x.ShareChannel != nil { - return *x.ShareChannel +func (x *SrvAddrs) GetAddrs() []*IpAddr { + if x != nil { + return x.Addrs } - return 0 + return nil } type IpAddr struct { @@ -316,7 +354,7 @@ type IpAddr struct { func (x *IpAddr) Reset() { *x = IpAddr{} if protoimpl.UnsafeEnabled { - mi := &file_subcmd0x501_proto_msgTypes[4] + mi := &file_subcmd0x501_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -329,7 +367,7 @@ func (x *IpAddr) String() string { func (*IpAddr) ProtoMessage() {} func (x *IpAddr) ProtoReflect() protoreflect.Message { - mi := &file_subcmd0x501_proto_msgTypes[4] + mi := &file_subcmd0x501_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -342,7 +380,7 @@ func (x *IpAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use IpAddr.ProtoReflect.Descriptor instead. func (*IpAddr) Descriptor() ([]byte, []int) { - return file_subcmd0x501_proto_rawDescGZIP(), []int{4} + return file_subcmd0x501_proto_rawDescGZIP(), []int{5} } func (x *IpAddr) GetType() uint32 { @@ -373,61 +411,6 @@ func (x *IpAddr) GetArea() uint32 { return 0 } -type SrvAddrs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ServiceType *uint32 `protobuf:"varint,1,opt,name=serviceType" json:"serviceType,omitempty"` - Addrs []*IpAddr `protobuf:"bytes,2,rep,name=addrs" json:"addrs,omitempty"` -} - -func (x *SrvAddrs) Reset() { - *x = SrvAddrs{} - if protoimpl.UnsafeEnabled { - mi := &file_subcmd0x501_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SrvAddrs) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SrvAddrs) ProtoMessage() {} - -func (x *SrvAddrs) ProtoReflect() protoreflect.Message { - mi := &file_subcmd0x501_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SrvAddrs.ProtoReflect.Descriptor instead. -func (*SrvAddrs) Descriptor() ([]byte, []int) { - return file_subcmd0x501_proto_rawDescGZIP(), []int{5} -} - -func (x *SrvAddrs) GetServiceType() uint32 { - if x != nil && x.ServiceType != nil { - return *x.ServiceType - } - return 0 -} - -func (x *SrvAddrs) GetAddrs() []*IpAddr { - if x != nil { - return x.Addrs - } - return nil -} - var File_subcmd0x501_proto protoreflect.FileDescriptor var file_subcmd0x501_proto_rawDesc = []byte{ @@ -455,30 +438,26 @@ var file_subcmd0x501_proto_rawDesc = []byte{ 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x53, - 0x75, 0x62, 0x43, 0x6d, 0x64, 0x30, 0x78, 0x35, 0x30, 0x31, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, - 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, - 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x09, 0x2e, 0x53, 0x72, 0x76, 0x41, 0x64, 0x64, 0x72, 0x73, 0x52, 0x05, 0x61, 0x64, 0x64, - 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x54, 0x0a, 0x06, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, - 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x22, 0x4b, 0x0a, 0x08, 0x53, 0x72, - 0x76, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x3b, 0x63, 0x6d, 0x64, - 0x30, 0x78, 0x36, 0x66, 0x66, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22, 0x75, 0x0a, 0x12, 0x53, 0x75, + 0x62, 0x43, 0x6d, 0x64, 0x30, 0x78, 0x35, 0x30, 0x31, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, + 0x12, 0x1f, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x09, 0x2e, 0x53, 0x72, 0x76, 0x41, 0x64, 0x64, 0x72, 0x73, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, + 0x73, 0x22, 0x4b, 0x0a, 0x08, 0x53, 0x72, 0x76, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, + 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x22, 0x54, + 0x0a, 0x06, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x61, 0x72, 0x65, 0x61, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x3b, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x36, + 0x66, 0x66, } var ( @@ -499,14 +478,14 @@ var file_subcmd0x501_proto_goTypes = []interface{}{ (*C501RspBody)(nil), // 1: C501RspBody (*SubCmd0X501ReqBody)(nil), // 2: SubCmd0x501ReqBody (*SubCmd0X501RspBody)(nil), // 3: SubCmd0x501RspBody - (*IpAddr)(nil), // 4: IpAddr - (*SrvAddrs)(nil), // 5: SrvAddrs + (*SrvAddrs)(nil), // 4: SrvAddrs + (*IpAddr)(nil), // 5: IpAddr } var file_subcmd0x501_proto_depIdxs = []int32{ 2, // 0: C501ReqBody.ReqBody:type_name -> SubCmd0x501ReqBody 3, // 1: C501RspBody.RspBody:type_name -> SubCmd0x501RspBody - 5, // 2: SubCmd0x501RspBody.addrs:type_name -> SrvAddrs - 4, // 3: SrvAddrs.addrs:type_name -> IpAddr + 4, // 2: SubCmd0x501RspBody.addrs:type_name -> SrvAddrs + 5, // 3: SrvAddrs.addrs:type_name -> IpAddr 4, // [4:4] is the sub-list for method output_type 4, // [4:4] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name @@ -569,7 +548,7 @@ func file_subcmd0x501_proto_init() { } } file_subcmd0x501_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpAddr); i { + switch v := v.(*SrvAddrs); i { case 0: return &v.state case 1: @@ -581,7 +560,7 @@ func file_subcmd0x501_proto_init() { } } file_subcmd0x501_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SrvAddrs); i { + switch v := v.(*IpAddr); i { case 0: return &v.state case 1: diff --git a/client/pb/msg/head.pb.go b/client/pb/msg/head.pb.go new file mode 100644 index 00000000..7550221f --- /dev/null +++ b/client/pb/msg/head.pb.go @@ -0,0 +1,1476 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.14.0 +// source: head.proto + +package msg + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type C2CHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ToUin *uint64 `protobuf:"varint,1,opt,name=toUin" json:"toUin,omitempty"` + FromUin *uint64 `protobuf:"varint,2,opt,name=fromUin" json:"fromUin,omitempty"` + CcType *uint32 `protobuf:"varint,3,opt,name=ccType" json:"ccType,omitempty"` + CcCmd *uint32 `protobuf:"varint,4,opt,name=ccCmd" json:"ccCmd,omitempty"` + AuthPicSig []byte `protobuf:"bytes,5,opt,name=authPicSig" json:"authPicSig,omitempty"` + AuthSig []byte `protobuf:"bytes,6,opt,name=authSig" json:"authSig,omitempty"` + AuthBuf []byte `protobuf:"bytes,7,opt,name=authBuf" json:"authBuf,omitempty"` + ServerTime *uint32 `protobuf:"varint,8,opt,name=serverTime" json:"serverTime,omitempty"` + ClientTime *uint32 `protobuf:"varint,9,opt,name=clientTime" json:"clientTime,omitempty"` + Rand *uint32 `protobuf:"varint,10,opt,name=rand" json:"rand,omitempty"` + PhoneNumber *string `protobuf:"bytes,11,opt,name=phoneNumber" json:"phoneNumber,omitempty"` +} + +func (x *C2CHead) Reset() { + *x = C2CHead{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C2CHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C2CHead) ProtoMessage() {} + +func (x *C2CHead) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use C2CHead.ProtoReflect.Descriptor instead. +func (*C2CHead) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{0} +} + +func (x *C2CHead) GetToUin() uint64 { + if x != nil && x.ToUin != nil { + return *x.ToUin + } + return 0 +} + +func (x *C2CHead) GetFromUin() uint64 { + if x != nil && x.FromUin != nil { + return *x.FromUin + } + return 0 +} + +func (x *C2CHead) GetCcType() uint32 { + if x != nil && x.CcType != nil { + return *x.CcType + } + return 0 +} + +func (x *C2CHead) GetCcCmd() uint32 { + if x != nil && x.CcCmd != nil { + return *x.CcCmd + } + return 0 +} + +func (x *C2CHead) GetAuthPicSig() []byte { + if x != nil { + return x.AuthPicSig + } + return nil +} + +func (x *C2CHead) GetAuthSig() []byte { + if x != nil { + return x.AuthSig + } + return nil +} + +func (x *C2CHead) GetAuthBuf() []byte { + if x != nil { + return x.AuthBuf + } + return nil +} + +func (x *C2CHead) GetServerTime() uint32 { + if x != nil && x.ServerTime != nil { + return *x.ServerTime + } + return 0 +} + +func (x *C2CHead) GetClientTime() uint32 { + if x != nil && x.ClientTime != nil { + return *x.ClientTime + } + return 0 +} + +func (x *C2CHead) GetRand() uint32 { + if x != nil && x.Rand != nil { + return *x.Rand + } + return 0 +} + +func (x *C2CHead) GetPhoneNumber() string { + if x != nil && x.PhoneNumber != nil { + return *x.PhoneNumber + } + return "" +} + +type CSHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + Command *uint32 `protobuf:"varint,2,opt,name=command" json:"command,omitempty"` + Seq *uint32 `protobuf:"varint,3,opt,name=seq" json:"seq,omitempty"` + Version *uint32 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"` + RetryTimes *uint32 `protobuf:"varint,5,opt,name=retryTimes" json:"retryTimes,omitempty"` + ClientType *uint32 `protobuf:"varint,6,opt,name=clientType" json:"clientType,omitempty"` + Pubno *uint32 `protobuf:"varint,7,opt,name=pubno" json:"pubno,omitempty"` + Localid *uint32 `protobuf:"varint,8,opt,name=localid" json:"localid,omitempty"` + Timezone *uint32 `protobuf:"varint,9,opt,name=timezone" json:"timezone,omitempty"` + ClientIp *uint32 `protobuf:"fixed32,10,opt,name=clientIp" json:"clientIp,omitempty"` + ClientPort *uint32 `protobuf:"varint,11,opt,name=clientPort" json:"clientPort,omitempty"` + ConnIp *uint32 `protobuf:"fixed32,12,opt,name=connIp" json:"connIp,omitempty"` + ConnPort *uint32 `protobuf:"varint,13,opt,name=connPort" json:"connPort,omitempty"` + InterfaceIp *uint32 `protobuf:"fixed32,14,opt,name=interfaceIp" json:"interfaceIp,omitempty"` + InterfacePort *uint32 `protobuf:"varint,15,opt,name=interfacePort" json:"interfacePort,omitempty"` + ActualIp *uint32 `protobuf:"fixed32,16,opt,name=actualIp" json:"actualIp,omitempty"` + Flag *uint32 `protobuf:"varint,17,opt,name=flag" json:"flag,omitempty"` + Timestamp *uint32 `protobuf:"fixed32,18,opt,name=timestamp" json:"timestamp,omitempty"` + Subcmd *uint32 `protobuf:"varint,19,opt,name=subcmd" json:"subcmd,omitempty"` + Result *uint32 `protobuf:"varint,20,opt,name=result" json:"result,omitempty"` + AppId *uint32 `protobuf:"varint,21,opt,name=appId" json:"appId,omitempty"` + InstanceId *uint32 `protobuf:"varint,22,opt,name=instanceId" json:"instanceId,omitempty"` + SessionId *uint64 `protobuf:"varint,23,opt,name=sessionId" json:"sessionId,omitempty"` + IdcId *uint32 `protobuf:"varint,24,opt,name=idcId" json:"idcId,omitempty"` +} + +func (x *CSHead) Reset() { + *x = CSHead{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSHead) ProtoMessage() {} + +func (x *CSHead) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSHead.ProtoReflect.Descriptor instead. +func (*CSHead) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{1} +} + +func (x *CSHead) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *CSHead) GetCommand() uint32 { + if x != nil && x.Command != nil { + return *x.Command + } + return 0 +} + +func (x *CSHead) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *CSHead) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CSHead) GetRetryTimes() uint32 { + if x != nil && x.RetryTimes != nil { + return *x.RetryTimes + } + return 0 +} + +func (x *CSHead) GetClientType() uint32 { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return 0 +} + +func (x *CSHead) GetPubno() uint32 { + if x != nil && x.Pubno != nil { + return *x.Pubno + } + return 0 +} + +func (x *CSHead) GetLocalid() uint32 { + if x != nil && x.Localid != nil { + return *x.Localid + } + return 0 +} + +func (x *CSHead) GetTimezone() uint32 { + if x != nil && x.Timezone != nil { + return *x.Timezone + } + return 0 +} + +func (x *CSHead) GetClientIp() uint32 { + if x != nil && x.ClientIp != nil { + return *x.ClientIp + } + return 0 +} + +func (x *CSHead) GetClientPort() uint32 { + if x != nil && x.ClientPort != nil { + return *x.ClientPort + } + return 0 +} + +func (x *CSHead) GetConnIp() uint32 { + if x != nil && x.ConnIp != nil { + return *x.ConnIp + } + return 0 +} + +func (x *CSHead) GetConnPort() uint32 { + if x != nil && x.ConnPort != nil { + return *x.ConnPort + } + return 0 +} + +func (x *CSHead) GetInterfaceIp() uint32 { + if x != nil && x.InterfaceIp != nil { + return *x.InterfaceIp + } + return 0 +} + +func (x *CSHead) GetInterfacePort() uint32 { + if x != nil && x.InterfacePort != nil { + return *x.InterfacePort + } + return 0 +} + +func (x *CSHead) GetActualIp() uint32 { + if x != nil && x.ActualIp != nil { + return *x.ActualIp + } + return 0 +} + +func (x *CSHead) GetFlag() uint32 { + if x != nil && x.Flag != nil { + return *x.Flag + } + return 0 +} + +func (x *CSHead) GetTimestamp() uint32 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *CSHead) GetSubcmd() uint32 { + if x != nil && x.Subcmd != nil { + return *x.Subcmd + } + return 0 +} + +func (x *CSHead) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *CSHead) GetAppId() uint32 { + if x != nil && x.AppId != nil { + return *x.AppId + } + return 0 +} + +func (x *CSHead) GetInstanceId() uint32 { + if x != nil && x.InstanceId != nil { + return *x.InstanceId + } + return 0 +} + +func (x *CSHead) GetSessionId() uint64 { + if x != nil && x.SessionId != nil { + return *x.SessionId + } + return 0 +} + +func (x *CSHead) GetIdcId() uint32 { + if x != nil && x.IdcId != nil { + return *x.IdcId + } + return 0 +} + +type DeltaHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalLen *uint64 `protobuf:"varint,1,opt,name=totalLen" json:"totalLen,omitempty"` + Offset *uint64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` + AckOffset *uint64 `protobuf:"varint,3,opt,name=ackOffset" json:"ackOffset,omitempty"` + Cookie []byte `protobuf:"bytes,4,opt,name=cookie" json:"cookie,omitempty"` + AckCookie []byte `protobuf:"bytes,5,opt,name=ackCookie" json:"ackCookie,omitempty"` + Result *uint32 `protobuf:"varint,6,opt,name=result" json:"result,omitempty"` + Flags *uint32 `protobuf:"varint,7,opt,name=flags" json:"flags,omitempty"` +} + +func (x *DeltaHead) Reset() { + *x = DeltaHead{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeltaHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeltaHead) ProtoMessage() {} + +func (x *DeltaHead) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeltaHead.ProtoReflect.Descriptor instead. +func (*DeltaHead) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{2} +} + +func (x *DeltaHead) GetTotalLen() uint64 { + if x != nil && x.TotalLen != nil { + return *x.TotalLen + } + return 0 +} + +func (x *DeltaHead) GetOffset() uint64 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *DeltaHead) GetAckOffset() uint64 { + if x != nil && x.AckOffset != nil { + return *x.AckOffset + } + return 0 +} + +func (x *DeltaHead) GetCookie() []byte { + if x != nil { + return x.Cookie + } + return nil +} + +func (x *DeltaHead) GetAckCookie() []byte { + if x != nil { + return x.AckCookie + } + return nil +} + +func (x *DeltaHead) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *DeltaHead) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +type IMHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeadType *uint32 `protobuf:"varint,1,opt,name=headType" json:"headType,omitempty"` + CsHead *CSHead `protobuf:"bytes,2,opt,name=csHead" json:"csHead,omitempty"` + S2CHead *S2CHead `protobuf:"bytes,3,opt,name=s2CHead" json:"s2CHead,omitempty"` + HttpconnHead *HttpConnHead `protobuf:"bytes,4,opt,name=httpconnHead" json:"httpconnHead,omitempty"` + PaintFlag *uint32 `protobuf:"varint,5,opt,name=paintFlag" json:"paintFlag,omitempty"` + LoginSig *LoginSig `protobuf:"bytes,6,opt,name=loginSig" json:"loginSig,omitempty"` + DeltaHead *DeltaHead `protobuf:"bytes,7,opt,name=deltaHead" json:"deltaHead,omitempty"` + C2CHead *C2CHead `protobuf:"bytes,8,opt,name=c2CHead" json:"c2CHead,omitempty"` +} + +func (x *IMHead) Reset() { + *x = IMHead{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IMHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IMHead) ProtoMessage() {} + +func (x *IMHead) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IMHead.ProtoReflect.Descriptor instead. +func (*IMHead) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{3} +} + +func (x *IMHead) GetHeadType() uint32 { + if x != nil && x.HeadType != nil { + return *x.HeadType + } + return 0 +} + +func (x *IMHead) GetCsHead() *CSHead { + if x != nil { + return x.CsHead + } + return nil +} + +func (x *IMHead) GetS2CHead() *S2CHead { + if x != nil { + return x.S2CHead + } + return nil +} + +func (x *IMHead) GetHttpconnHead() *HttpConnHead { + if x != nil { + return x.HttpconnHead + } + return nil +} + +func (x *IMHead) GetPaintFlag() uint32 { + if x != nil && x.PaintFlag != nil { + return *x.PaintFlag + } + return 0 +} + +func (x *IMHead) GetLoginSig() *LoginSig { + if x != nil { + return x.LoginSig + } + return nil +} + +func (x *IMHead) GetDeltaHead() *DeltaHead { + if x != nil { + return x.DeltaHead + } + return nil +} + +func (x *IMHead) GetC2CHead() *C2CHead { + if x != nil { + return x.C2CHead + } + return nil +} + +type HttpConnHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + Command *uint32 `protobuf:"varint,2,opt,name=command" json:"command,omitempty"` + SubCommand *uint32 `protobuf:"varint,3,opt,name=subCommand" json:"subCommand,omitempty"` + Seq *uint32 `protobuf:"varint,4,opt,name=seq" json:"seq,omitempty"` + Version *uint32 `protobuf:"varint,5,opt,name=version" json:"version,omitempty"` + RetryTimes *uint32 `protobuf:"varint,6,opt,name=retryTimes" json:"retryTimes,omitempty"` + ClientType *uint32 `protobuf:"varint,7,opt,name=clientType" json:"clientType,omitempty"` + PubNo *uint32 `protobuf:"varint,8,opt,name=pubNo" json:"pubNo,omitempty"` + LocalId *uint32 `protobuf:"varint,9,opt,name=localId" json:"localId,omitempty"` + TimeZone *uint32 `protobuf:"varint,10,opt,name=timeZone" json:"timeZone,omitempty"` + ClientIp *uint32 `protobuf:"fixed32,11,opt,name=clientIp" json:"clientIp,omitempty"` + ClientPort *uint32 `protobuf:"varint,12,opt,name=clientPort" json:"clientPort,omitempty"` + QzhttpIp *uint32 `protobuf:"fixed32,13,opt,name=qzhttpIp" json:"qzhttpIp,omitempty"` + QzhttpPort *uint32 `protobuf:"varint,14,opt,name=qzhttpPort" json:"qzhttpPort,omitempty"` + SppIp *uint32 `protobuf:"fixed32,15,opt,name=sppIp" json:"sppIp,omitempty"` + SppPort *uint32 `protobuf:"varint,16,opt,name=sppPort" json:"sppPort,omitempty"` + Flag *uint32 `protobuf:"varint,17,opt,name=flag" json:"flag,omitempty"` + Key []byte `protobuf:"bytes,18,opt,name=key" json:"key,omitempty"` + CompressType *uint32 `protobuf:"varint,19,opt,name=compressType" json:"compressType,omitempty"` + OriginSize *uint32 `protobuf:"varint,20,opt,name=originSize" json:"originSize,omitempty"` + ErrorCode *uint32 `protobuf:"varint,21,opt,name=errorCode" json:"errorCode,omitempty"` + Redirect *RedirectMsg `protobuf:"bytes,22,opt,name=redirect" json:"redirect,omitempty"` + CommandId *uint32 `protobuf:"varint,23,opt,name=commandId" json:"commandId,omitempty"` + ServiceCmdid *uint32 `protobuf:"varint,24,opt,name=serviceCmdid" json:"serviceCmdid,omitempty"` + Oidbhead *TransOidbHead `protobuf:"bytes,25,opt,name=oidbhead" json:"oidbhead,omitempty"` +} + +func (x *HttpConnHead) Reset() { + *x = HttpConnHead{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HttpConnHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HttpConnHead) ProtoMessage() {} + +func (x *HttpConnHead) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HttpConnHead.ProtoReflect.Descriptor instead. +func (*HttpConnHead) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{4} +} + +func (x *HttpConnHead) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *HttpConnHead) GetCommand() uint32 { + if x != nil && x.Command != nil { + return *x.Command + } + return 0 +} + +func (x *HttpConnHead) GetSubCommand() uint32 { + if x != nil && x.SubCommand != nil { + return *x.SubCommand + } + return 0 +} + +func (x *HttpConnHead) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *HttpConnHead) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *HttpConnHead) GetRetryTimes() uint32 { + if x != nil && x.RetryTimes != nil { + return *x.RetryTimes + } + return 0 +} + +func (x *HttpConnHead) GetClientType() uint32 { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return 0 +} + +func (x *HttpConnHead) GetPubNo() uint32 { + if x != nil && x.PubNo != nil { + return *x.PubNo + } + return 0 +} + +func (x *HttpConnHead) GetLocalId() uint32 { + if x != nil && x.LocalId != nil { + return *x.LocalId + } + return 0 +} + +func (x *HttpConnHead) GetTimeZone() uint32 { + if x != nil && x.TimeZone != nil { + return *x.TimeZone + } + return 0 +} + +func (x *HttpConnHead) GetClientIp() uint32 { + if x != nil && x.ClientIp != nil { + return *x.ClientIp + } + return 0 +} + +func (x *HttpConnHead) GetClientPort() uint32 { + if x != nil && x.ClientPort != nil { + return *x.ClientPort + } + return 0 +} + +func (x *HttpConnHead) GetQzhttpIp() uint32 { + if x != nil && x.QzhttpIp != nil { + return *x.QzhttpIp + } + return 0 +} + +func (x *HttpConnHead) GetQzhttpPort() uint32 { + if x != nil && x.QzhttpPort != nil { + return *x.QzhttpPort + } + return 0 +} + +func (x *HttpConnHead) GetSppIp() uint32 { + if x != nil && x.SppIp != nil { + return *x.SppIp + } + return 0 +} + +func (x *HttpConnHead) GetSppPort() uint32 { + if x != nil && x.SppPort != nil { + return *x.SppPort + } + return 0 +} + +func (x *HttpConnHead) GetFlag() uint32 { + if x != nil && x.Flag != nil { + return *x.Flag + } + return 0 +} + +func (x *HttpConnHead) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +func (x *HttpConnHead) GetCompressType() uint32 { + if x != nil && x.CompressType != nil { + return *x.CompressType + } + return 0 +} + +func (x *HttpConnHead) GetOriginSize() uint32 { + if x != nil && x.OriginSize != nil { + return *x.OriginSize + } + return 0 +} + +func (x *HttpConnHead) GetErrorCode() uint32 { + if x != nil && x.ErrorCode != nil { + return *x.ErrorCode + } + return 0 +} + +func (x *HttpConnHead) GetRedirect() *RedirectMsg { + if x != nil { + return x.Redirect + } + return nil +} + +func (x *HttpConnHead) GetCommandId() uint32 { + if x != nil && x.CommandId != nil { + return *x.CommandId + } + return 0 +} + +func (x *HttpConnHead) GetServiceCmdid() uint32 { + if x != nil && x.ServiceCmdid != nil { + return *x.ServiceCmdid + } + return 0 +} + +func (x *HttpConnHead) GetOidbhead() *TransOidbHead { + if x != nil { + return x.Oidbhead + } + return nil +} + +type LoginSig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Sig []byte `protobuf:"bytes,2,opt,name=sig" json:"sig,omitempty"` +} + +func (x *LoginSig) Reset() { + *x = LoginSig{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginSig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginSig) ProtoMessage() {} + +func (x *LoginSig) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginSig.ProtoReflect.Descriptor instead. +func (*LoginSig) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{5} +} + +func (x *LoginSig) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *LoginSig) GetSig() []byte { + if x != nil { + return x.Sig + } + return nil +} + +type RedirectMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LastRedirectIp *uint32 `protobuf:"fixed32,1,opt,name=lastRedirectIp" json:"lastRedirectIp,omitempty"` + LastRedirectPort *uint32 `protobuf:"varint,2,opt,name=lastRedirectPort" json:"lastRedirectPort,omitempty"` + RedirectIp *uint32 `protobuf:"fixed32,3,opt,name=redirectIp" json:"redirectIp,omitempty"` + RedirectPort *uint32 `protobuf:"varint,4,opt,name=redirectPort" json:"redirectPort,omitempty"` + RedirectCount *uint32 `protobuf:"varint,5,opt,name=redirectCount" json:"redirectCount,omitempty"` +} + +func (x *RedirectMsg) Reset() { + *x = RedirectMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedirectMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedirectMsg) ProtoMessage() {} + +func (x *RedirectMsg) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RedirectMsg.ProtoReflect.Descriptor instead. +func (*RedirectMsg) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{6} +} + +func (x *RedirectMsg) GetLastRedirectIp() uint32 { + if x != nil && x.LastRedirectIp != nil { + return *x.LastRedirectIp + } + return 0 +} + +func (x *RedirectMsg) GetLastRedirectPort() uint32 { + if x != nil && x.LastRedirectPort != nil { + return *x.LastRedirectPort + } + return 0 +} + +func (x *RedirectMsg) GetRedirectIp() uint32 { + if x != nil && x.RedirectIp != nil { + return *x.RedirectIp + } + return 0 +} + +func (x *RedirectMsg) GetRedirectPort() uint32 { + if x != nil && x.RedirectPort != nil { + return *x.RedirectPort + } + return 0 +} + +func (x *RedirectMsg) GetRedirectCount() uint32 { + if x != nil && x.RedirectCount != nil { + return *x.RedirectCount + } + return 0 +} + +type S2CHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubMsgtype *uint32 `protobuf:"varint,1,opt,name=subMsgtype" json:"subMsgtype,omitempty"` + MsgType *uint32 `protobuf:"varint,2,opt,name=msgType" json:"msgType,omitempty"` + FromUin *uint64 `protobuf:"varint,3,opt,name=fromUin" json:"fromUin,omitempty"` + MsgId *uint32 `protobuf:"varint,4,opt,name=msgId" json:"msgId,omitempty"` + RelayIp *uint32 `protobuf:"fixed32,5,opt,name=relayIp" json:"relayIp,omitempty"` + RelayPort *uint32 `protobuf:"varint,6,opt,name=relayPort" json:"relayPort,omitempty"` + ToUin *uint64 `protobuf:"varint,7,opt,name=toUin" json:"toUin,omitempty"` +} + +func (x *S2CHead) Reset() { + *x = S2CHead{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *S2CHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*S2CHead) ProtoMessage() {} + +func (x *S2CHead) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use S2CHead.ProtoReflect.Descriptor instead. +func (*S2CHead) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{7} +} + +func (x *S2CHead) GetSubMsgtype() uint32 { + if x != nil && x.SubMsgtype != nil { + return *x.SubMsgtype + } + return 0 +} + +func (x *S2CHead) GetMsgType() uint32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *S2CHead) GetFromUin() uint64 { + if x != nil && x.FromUin != nil { + return *x.FromUin + } + return 0 +} + +func (x *S2CHead) GetMsgId() uint32 { + if x != nil && x.MsgId != nil { + return *x.MsgId + } + return 0 +} + +func (x *S2CHead) GetRelayIp() uint32 { + if x != nil && x.RelayIp != nil { + return *x.RelayIp + } + return 0 +} + +func (x *S2CHead) GetRelayPort() uint32 { + if x != nil && x.RelayPort != nil { + return *x.RelayPort + } + return 0 +} + +func (x *S2CHead) GetToUin() uint64 { + if x != nil && x.ToUin != nil { + return *x.ToUin + } + return 0 +} + +type TransOidbHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Command *uint32 `protobuf:"varint,1,opt,name=command" json:"command,omitempty"` + ServiceType *uint32 `protobuf:"varint,2,opt,name=serviceType" json:"serviceType,omitempty"` + Result *uint32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` + ErrorMsg *string `protobuf:"bytes,4,opt,name=errorMsg" json:"errorMsg,omitempty"` +} + +func (x *TransOidbHead) Reset() { + *x = TransOidbHead{} + if protoimpl.UnsafeEnabled { + mi := &file_head_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransOidbHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransOidbHead) ProtoMessage() {} + +func (x *TransOidbHead) ProtoReflect() protoreflect.Message { + mi := &file_head_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransOidbHead.ProtoReflect.Descriptor instead. +func (*TransOidbHead) Descriptor() ([]byte, []int) { + return file_head_proto_rawDescGZIP(), []int{8} +} + +func (x *TransOidbHead) GetCommand() uint32 { + if x != nil && x.Command != nil { + return *x.Command + } + return 0 +} + +func (x *TransOidbHead) GetServiceType() uint32 { + if x != nil && x.ServiceType != nil { + return *x.ServiceType + } + return 0 +} + +func (x *TransOidbHead) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *TransOidbHead) GetErrorMsg() string { + if x != nil && x.ErrorMsg != nil { + return *x.ErrorMsg + } + return "" +} + +var File_head_proto protoreflect.FileDescriptor + +var file_head_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x02, 0x0a, + 0x07, 0x43, 0x32, 0x43, 0x48, 0x65, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x63, 0x43, 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x63, 0x63, 0x43, 0x6d, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x50, 0x69, + 0x63, 0x53, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, + 0x50, 0x69, 0x63, 0x53, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x69, + 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x42, 0x75, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x42, 0x75, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, + 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x8c, 0x05, 0x0a, 0x06, 0x43, 0x53, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x75, 0x62, 0x6e, 0x6f, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x70, 0x75, 0x62, 0x6e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x6f, 0x6e, 0x6e, 0x49, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x07, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x6e, 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x70, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, + 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x49, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x61, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x49, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x64, 0x63, + 0x49, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x64, 0x63, 0x49, 0x64, 0x22, + 0xc1, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x6b, 0x43, 0x6f, + 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x61, 0x63, 0x6b, 0x43, + 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x22, 0xaf, 0x02, 0x0a, 0x06, 0x49, 0x4d, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x68, 0x65, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x06, 0x63, 0x73, + 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x43, 0x53, 0x48, + 0x65, 0x61, 0x64, 0x52, 0x06, 0x63, 0x73, 0x48, 0x65, 0x61, 0x64, 0x12, 0x22, 0x0a, 0x07, 0x73, + 0x32, 0x43, 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, + 0x32, 0x43, 0x48, 0x65, 0x61, 0x64, 0x52, 0x07, 0x73, 0x32, 0x43, 0x48, 0x65, 0x61, 0x64, 0x12, + 0x31, 0x0a, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x63, 0x6f, 0x6e, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x43, 0x6f, 0x6e, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x52, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x63, 0x6f, 0x6e, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x25, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x52, 0x08, 0x6c, + 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x48, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x65, 0x6c, + 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x48, 0x65, 0x61, + 0x64, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x32, 0x43, 0x48, 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x43, 0x32, 0x43, 0x48, 0x65, 0x61, 0x64, 0x52, 0x07, 0x63, 0x32, + 0x43, 0x48, 0x65, 0x61, 0x64, 0x22, 0xda, 0x05, 0x0a, 0x0c, 0x48, 0x74, 0x74, 0x70, 0x43, 0x6f, + 0x6e, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x73, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x75, 0x62, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, + 0x75, 0x62, 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x7a, 0x68, 0x74, 0x74, 0x70, + 0x49, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x71, 0x7a, 0x68, 0x74, 0x74, 0x70, + 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x7a, 0x68, 0x74, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x71, 0x7a, 0x68, 0x74, 0x74, 0x70, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x70, 0x49, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x05, 0x73, 0x70, 0x70, 0x49, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x70, 0x70, 0x50, + 0x6f, 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x70, 0x70, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x08, 0x72, 0x65, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, + 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6d, 0x64, + 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x6d, 0x64, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x6f, 0x69, 0x64, 0x62, 0x68, 0x65, + 0x61, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x4f, 0x69, 0x64, 0x62, 0x48, 0x65, 0x61, 0x64, 0x52, 0x08, 0x6f, 0x69, 0x64, 0x62, 0x68, 0x65, + 0x61, 0x64, 0x22, 0x30, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x03, 0x73, 0x69, 0x67, 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x4d, 0x73, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0e, 0x6c, 0x61, + 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x49, 0x70, 0x12, 0x2a, 0x0a, 0x10, + 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x49, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x72, 0x65, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x49, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xc1, 0x01, 0x0a, 0x07, 0x53, 0x32, 0x43, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x4d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x4d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, + 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, + 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x61, + 0x79, 0x49, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, + 0x49, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x22, 0x7f, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x4f, + 0x69, 0x64, 0x62, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x3b, 0x6d, 0x73, 0x67, +} + +var ( + file_head_proto_rawDescOnce sync.Once + file_head_proto_rawDescData = file_head_proto_rawDesc +) + +func file_head_proto_rawDescGZIP() []byte { + file_head_proto_rawDescOnce.Do(func() { + file_head_proto_rawDescData = protoimpl.X.CompressGZIP(file_head_proto_rawDescData) + }) + return file_head_proto_rawDescData +} + +var file_head_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_head_proto_goTypes = []interface{}{ + (*C2CHead)(nil), // 0: C2CHead + (*CSHead)(nil), // 1: CSHead + (*DeltaHead)(nil), // 2: DeltaHead + (*IMHead)(nil), // 3: IMHead + (*HttpConnHead)(nil), // 4: HttpConnHead + (*LoginSig)(nil), // 5: LoginSig + (*RedirectMsg)(nil), // 6: RedirectMsg + (*S2CHead)(nil), // 7: S2CHead + (*TransOidbHead)(nil), // 8: TransOidbHead +} +var file_head_proto_depIdxs = []int32{ + 1, // 0: IMHead.csHead:type_name -> CSHead + 7, // 1: IMHead.s2CHead:type_name -> S2CHead + 4, // 2: IMHead.httpconnHead:type_name -> HttpConnHead + 5, // 3: IMHead.loginSig:type_name -> LoginSig + 2, // 4: IMHead.deltaHead:type_name -> DeltaHead + 0, // 5: IMHead.c2CHead:type_name -> C2CHead + 6, // 6: HttpConnHead.redirect:type_name -> RedirectMsg + 8, // 7: HttpConnHead.oidbhead:type_name -> TransOidbHead + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name +} + +func init() { file_head_proto_init() } +func file_head_proto_init() { + if File_head_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_head_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C2CHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeltaHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IMHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HttpConnHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginSig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedirectMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*S2CHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_head_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransOidbHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_head_proto_rawDesc, + NumEnums: 0, + NumMessages: 9, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_head_proto_goTypes, + DependencyIndexes: file_head_proto_depIdxs, + MessageInfos: file_head_proto_msgTypes, + }.Build() + File_head_proto = out.File + file_head_proto_rawDesc = nil + file_head_proto_goTypes = nil + file_head_proto_depIdxs = nil +} diff --git a/client/pb/msg/head.proto b/client/pb/msg/head.proto new file mode 100644 index 00000000..8f055128 --- /dev/null +++ b/client/pb/msg/head.proto @@ -0,0 +1,123 @@ +syntax = "proto2"; +option go_package = ".;msg"; + +message C2CHead { + optional uint64 toUin = 1; + optional uint64 fromUin = 2; + optional uint32 ccType = 3; + optional uint32 ccCmd = 4; + optional bytes authPicSig = 5; + optional bytes authSig = 6; + optional bytes authBuf = 7; + optional uint32 serverTime = 8; + optional uint32 clientTime = 9; + optional uint32 rand = 10; + optional string phoneNumber = 11; +} + +message CSHead { + optional uint64 uin = 1; + optional uint32 command = 2; + optional uint32 seq = 3; + optional uint32 version = 4; + optional uint32 retryTimes = 5; + optional uint32 clientType = 6; + optional uint32 pubno = 7; + optional uint32 localid = 8; + optional uint32 timezone = 9; + optional fixed32 clientIp = 10; + optional uint32 clientPort = 11; + optional fixed32 connIp = 12; + optional uint32 connPort = 13; + optional fixed32 interfaceIp = 14; + optional uint32 interfacePort = 15; + optional fixed32 actualIp = 16; + optional uint32 flag = 17; + optional fixed32 timestamp = 18; + optional uint32 subcmd = 19; + optional uint32 result = 20; + optional uint32 appId = 21; + optional uint32 instanceId = 22; + optional uint64 sessionId = 23; + optional uint32 idcId = 24; +} + +message DeltaHead { + optional uint64 totalLen = 1; + optional uint64 offset = 2; + optional uint64 ackOffset = 3; + optional bytes cookie = 4; + optional bytes ackCookie = 5; + optional uint32 result = 6; + optional uint32 flags = 7; +} + +message IMHead { + optional uint32 headType = 1; + optional CSHead csHead = 2; + optional S2CHead s2CHead = 3; + optional HttpConnHead httpconnHead = 4; + optional uint32 paintFlag = 5; + optional LoginSig loginSig = 6; + optional DeltaHead deltaHead = 7; + optional C2CHead c2CHead = 8; +} + +message HttpConnHead { + optional uint64 uin = 1; + optional uint32 command = 2; + optional uint32 subCommand = 3; + optional uint32 seq = 4; + optional uint32 version = 5; + optional uint32 retryTimes = 6; + optional uint32 clientType = 7; + optional uint32 pubNo = 8; + optional uint32 localId = 9; + optional uint32 timeZone = 10; + optional fixed32 clientIp = 11; + optional uint32 clientPort = 12; + optional fixed32 qzhttpIp = 13; + optional uint32 qzhttpPort = 14; + optional fixed32 sppIp = 15; + optional uint32 sppPort = 16; + optional uint32 flag = 17; + optional bytes key = 18; + optional uint32 compressType = 19; + optional uint32 originSize = 20; + optional uint32 errorCode = 21; + optional RedirectMsg redirect = 22; + optional uint32 commandId = 23; + optional uint32 serviceCmdid = 24; + optional TransOidbHead oidbhead = 25; +} + + +message LoginSig { + optional uint32 type = 1; + optional bytes sig = 2; +} + +message RedirectMsg { + optional fixed32 lastRedirectIp = 1; + optional uint32 lastRedirectPort = 2; + optional fixed32 redirectIp = 3; + optional uint32 redirectPort = 4; + optional uint32 redirectCount = 5; +} + +message S2CHead { + optional uint32 subMsgtype = 1; + optional uint32 msgType = 2; + optional uint64 fromUin = 3; + optional uint32 msgId = 4; + optional fixed32 relayIp = 5; + optional uint32 relayPort = 6; + optional uint64 toUin = 7; +} + +message TransOidbHead { + optional uint32 command = 1; + optional uint32 serviceType = 2; + optional uint32 result = 3; + optional string errorMsg = 4; +} \ No newline at end of file diff --git a/client/pb/msg/msg.pb.go b/client/pb/msg/msg.pb.go index 21c8d390..c2fcd037 100644 --- a/client/pb/msg/msg.pb.go +++ b/client/pb/msg/msg.pb.go @@ -1,18 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.23.0 +// protoc-gen-go v1.25.0 // protoc v3.14.0 // source: msg.proto package msg import ( - reflect "reflect" - sync "sync" - proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( diff --git a/client/pb/msg/objmsg.pb.go b/client/pb/msg/objmsg.pb.go index f7328e22..67b47ff4 100644 --- a/client/pb/msg/objmsg.pb.go +++ b/client/pb/msg/objmsg.pb.go @@ -1,18 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.23.0 +// protoc-gen-go v1.25.0 // protoc v3.14.0 // source: objmsg.proto package msg import ( - reflect "reflect" - sync "sync" - proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( diff --git a/client/pb/msg/report.pb.go b/client/pb/msg/report.pb.go index 462f0fa9..d08004c3 100644 --- a/client/pb/msg/report.pb.go +++ b/client/pb/msg/report.pb.go @@ -1,18 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.23.0 +// protoc-gen-go v1.25.0 // protoc v3.14.0 // source: report.proto package msg import ( - reflect "reflect" - sync "sync" - proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( diff --git a/client/ptt.go b/client/ptt.go index a7f64a60..ff9eacd2 100644 --- a/client/ptt.go +++ b/client/ptt.go @@ -31,7 +31,7 @@ func (c *QQClient) UploadGroupPtt(groupCode int64, voice io.ReadSeeker) (*messag fh := h.Sum(nil) _, _ = voice.Seek(0, io.SeekStart) ext := c.buildGroupPttStoreBDHExt(groupCode, fh[:], int32(length), 0, int32(length)) - rsp, err := c.highwayUploadByBDH(voice, length, 29, c.highwaySession.SigSession, fh, ext, false) + rsp, err := c.highwayUploadByBDH(voice, length, 29, c.bigDataSession.SigSession, fh, ext, false) if err != nil { return nil, err } @@ -66,7 +66,7 @@ func (c *QQClient) UploadPrivatePtt(target int64, voice io.ReadSeeker) (*message fh := h.Sum(nil) _, _ = voice.Seek(0, io.SeekStart) ext := c.buildC2CPttStoreBDHExt(target, fh[:], int32(length), int32(length)) - rsp, err := c.highwayUploadByBDH(voice, length, 26, c.highwaySession.SigSession, fh, ext, false) + rsp, err := c.highwayUploadByBDH(voice, length, 26, c.bigDataSession.SigSession, fh, ext, false) if err != nil { return nil, err } @@ -132,14 +132,14 @@ func (c *QQClient) UploadGroupShortVideo(groupCode int64, video, thumb io.ReadSe return err } if err != nil || cp() != nil { - hwRsp, err = c.highwayUploadByBDH(multi, length, 25, c.highwaySession.SigSession, fh, ext, true) + hwRsp, err = c.highwayUploadByBDH(multi, length, 25, c.bigDataSession.SigSession, fh, ext, true) } else { _ = file.Close() - hwRsp, err = c.highwayUploadFileMultiThreadingByBDH(cache, 25, 8, c.highwaySession.SigSession, ext, true) + hwRsp, err = c.highwayUploadFileMultiThreadingByBDH(cache, 25, 8, c.bigDataSession.SigSession, ext, true) _ = os.Remove(cache) } } else { - hwRsp, err = c.highwayUploadByBDH(multi, length, 25, c.highwaySession.SigSession, fh, ext, true) + hwRsp, err = c.highwayUploadByBDH(multi, length, 25, c.bigDataSession.SigSession, fh, ext, true) } if err != nil { return nil, errors.Wrap(err, "upload video file error") diff --git a/client/qidian.go b/client/qidian.go new file mode 100644 index 00000000..e62957b5 --- /dev/null +++ b/client/qidian.go @@ -0,0 +1,191 @@ +// 企点协议相关特殊逻辑 +package client + +import ( + "bytes" + "fmt" + "github.com/Mrs4s/MiraiGo/binary" + "github.com/Mrs4s/MiraiGo/client/pb/cmd0x3f6" + "github.com/Mrs4s/MiraiGo/client/pb/cmd0x6ff" + "github.com/Mrs4s/MiraiGo/client/pb/msg" + "github.com/Mrs4s/MiraiGo/protocol/packets" + "github.com/Mrs4s/MiraiGo/utils" + "github.com/golang/protobuf/proto" + "github.com/pkg/errors" + "io/ioutil" + "net/http" +) + +func init() { + decoders["qidianservice.69"] = decodeLoginExtraResponse + decoders["HttpConn.0x6ff_501"] = decodeConnKeyResponse +} + +// getQiDianAddressDetailList 外部联系人列表 +func (c *QQClient) getQiDianAddressDetailList() ([]*FriendInfo, error) { + req := &cmd0x6ff.C519ReqBody{ + SubCmd: proto.Uint32(33), + CrmCommonHead: &cmd0x6ff.C519CRMMsgHead{ + KfUin: proto.Uint64(uint64(c.QiDian.MasterUin)), + VerNo: proto.Uint32(uint32(utils.ConvertSubVersionToInt(c.version.SortVersionName))), + CrmSubCmd: proto.Uint32(33), + LaborUin: proto.Uint64(uint64(c.Uin)), + }, + GetAddressDetailListReqBody: &cmd0x6ff.GetAddressDetailListReqBody{ + Timestamp2: proto.Uint64(0), + }, + } + rspData, err := c.bigDataRequest(1305, req) + if err != nil { + return nil, errors.Wrap(err, "request error") + } + rsp := &cmd0x6ff.C519RspBody{} + if err = proto.Unmarshal(rspData, rsp); err != nil { + return nil, errors.Wrap(err, "unmarshal error") + } + if rsp.GetAddressDetailListRspBody == nil { + return nil, errors.New("rsp body is nil") + } + ret := []*FriendInfo{} + for _, detail := range rsp.GetAddressDetailListRspBody.AddressDetail { + if len(detail.Qq) == 0 { + c.Warning("address detail %v QQ is 0", string(detail.Name)) + continue + } + ret = append(ret, &FriendInfo{ + Uin: int64(detail.Qq[0].GetAccount()), + Nickname: string(detail.Name), + }) + } + return ret, nil +} + +func (c *QQClient) buildLoginExtraPacket() (uint16, []byte) { + seq := c.nextSeq() + req := &cmd0x3f6.C3F6ReqBody{ + SubCmd: proto.Uint32(69), + CrmCommonHead: &cmd0x3f6.C3F6CRMMsgHead{ + CrmSubCmd: proto.Uint32(69), + VerNo: proto.Uint32(uint32(utils.ConvertSubVersionToInt(c.version.SortVersionName))), + Clienttype: proto.Uint32(2), + }, + SubcmdLoginProcessCompleteReqBody: &cmd0x3f6.QDUserLoginProcessCompleteReqBody{ + Kfext: proto.Uint64(uint64(c.Uin)), + Pubno: &c.version.AppId, + Buildno: proto.Uint32(uint32(utils.ConvertSubVersionToInt(c.version.SortVersionName))), + TerminalType: proto.Uint32(2), + Status: proto.Uint32(10), + LoginTime: proto.Uint32(5), + HardwareInfo: proto.String(string(SystemDeviceInfo.Model)), + SoftwareInfo: proto.String(string(SystemDeviceInfo.Version.Release)), + Guid: SystemDeviceInfo.Guid, + AppName: &c.version.ApkId, + SubAppId: &c.version.AppId, + }, + } + payload, _ := proto.Marshal(req) + packet := packets.BuildUniPacket(c.Uin, seq, "qidianservice.69", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, payload) + return seq, packet +} + +func (c *QQClient) buildConnKeyRequestPacket() (uint16, []byte) { + seq := c.nextSeq() + req := &cmd0x6ff.C501ReqBody{ + ReqBody: &cmd0x6ff.SubCmd0X501ReqBody{ + Uin: proto.Uint64(uint64(c.Uin)), + IdcId: proto.Uint32(0), + Appid: proto.Uint32(16), + LoginSigType: proto.Uint32(1), + RequestFlag: proto.Uint32(3), + ServiceTypes: []uint32{1}, + }, + } + payload, _ := proto.Marshal(req) + packet := packets.BuildUniPacket(c.Uin, seq, "HttpConn.0x6ff_501", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, payload) + return seq, packet +} + +func (c *QQClient) bigDataRequest(subCmd uint32, req proto.Message) ([]byte, error) { + if c.QiDian.bigDataReqSession == nil { + return nil, errors.New("please call conn key request method before") + } + data, _ := proto.Marshal(req) + head, _ := proto.Marshal(&msg.IMHead{ + HeadType: proto.Uint32(4), + HttpconnHead: &msg.HttpConnHead{ + Uin: proto.Uint64(uint64(c.Uin)), + Command: proto.Uint32(1791), + SubCommand: &subCmd, + Seq: proto.Uint32(uint32(c.nextHighwayApplySeq())), + Version: proto.Uint32(386), // todo: short version convert + Flag: proto.Uint32(1), + CompressType: proto.Uint32(0), + ErrorCode: proto.Uint32(0), + }, + LoginSig: &msg.LoginSig{ + Type: proto.Uint32(22), + Sig: c.QiDian.bigDataReqSession.SigSession, + }, + }) + tea := binary.NewTeaCipher(c.QiDian.bigDataReqSession.SessionKey) + body := tea.Encrypt(data) + url := fmt.Sprintf("http://%v/cgi-bin/httpconn", c.QiDian.bigDataReqAddrs[0]) + httpReq, _ := http.NewRequest("POST", url, bytes.NewReader(binary.NewWriterF(func(w *binary.Writer) { + w.WriteByte(40) + w.WriteUInt32(uint32(len(head))) + w.WriteUInt32(uint32(len(body))) + w.Write(head) + w.Write(body) + w.WriteByte(41) + }))) + rsp, err := http.DefaultClient.Do(httpReq) + if err != nil { + return nil, errors.Wrap(err, "request error") + } + rspBody, _ := ioutil.ReadAll(rsp.Body) + r := binary.NewReader(rspBody) + r.ReadByte() + l1 := int(r.ReadInt32()) + l2 := int(r.ReadInt32()) + r.ReadBytes(l1) + payload := r.ReadBytes(l2) + return tea.Decrypt(payload), nil +} + +func decodeLoginExtraResponse(c *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { + rsp := cmd0x3f6.C3F6RspBody{} + if err := proto.Unmarshal(payload, &rsp); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } + if rsp.SubcmdLoginProcessCompleteRspBody == nil { + return nil, errors.New("login process resp is nil") + } + c.QiDian = &QiDianAccountInfo{ + MasterUin: int64(rsp.SubcmdLoginProcessCompleteRspBody.GetCorpuin()), + ExtName: rsp.SubcmdLoginProcessCompleteRspBody.GetExtuinName(), + CreateTime: int64(rsp.SubcmdLoginProcessCompleteRspBody.GetOpenAccountTime()), + } + return nil, nil +} + +func decodeConnKeyResponse(c *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { + rsp := cmd0x6ff.C501RspBody{} + if err := proto.Unmarshal(payload, &rsp); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } + if c.QiDian == nil { + return nil, errors.New("please call login extra before") + } + c.QiDian.bigDataReqSession = &bigDataSessionInfo{ + SigSession: rsp.RspBody.SigSession, + SessionKey: rsp.RspBody.SessionKey, + } + for _, srv := range rsp.RspBody.Addrs { + if srv.GetServiceType() == 1 { + for _, addr := range srv.Addrs { + c.QiDian.bigDataReqAddrs = append(c.QiDian.bigDataReqAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.GetIp()), addr.GetPort())) + } + } + } + return nil, nil +} diff --git a/protocol/packets/global.go b/protocol/packets/global.go index 861be889..9ba25a4b 100644 --- a/protocol/packets/global.go +++ b/protocol/packets/global.go @@ -72,12 +72,12 @@ func BuildCode2DRequestPacket(seq uint32, j uint64, cmd uint16, bodyFunc func(wr }) } -func BuildSsoPacket(seq uint16, appID uint32, commandName, imei string, extData, outPacketSessionId, body, ksid []byte) []byte { +func BuildSsoPacket(seq uint16, appID, subAppID uint32, commandName, imei string, extData, outPacketSessionId, body, ksid []byte) []byte { return binary.NewWriterF(func(p *binary.Writer) { p.WriteIntLvPacket(4, func(writer *binary.Writer) { writer.WriteUInt32(uint32(seq)) writer.WriteUInt32(appID) - writer.WriteUInt32(appID) + writer.WriteUInt32(subAppID) writer.Write([]byte{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00}) if len(extData) == 0 || len(extData) == 4 { writer.WriteUInt32(0x04) diff --git a/utils/string.go b/utils/string.go index bf3711d3..4a21c17d 100644 --- a/utils/string.go +++ b/utils/string.go @@ -5,6 +5,8 @@ import ( "crypto/rand" "math/big" "reflect" + "strconv" + "strings" "unsafe" ) @@ -62,6 +64,11 @@ func ChineseLength(str string, limit int) int { return sum } +func ConvertSubVersionToInt(str string) int32 { + i, _ := strconv.ParseInt(strings.Join(strings.Split(str, "."), ""), 10, 64) + return int32(i) * 10 +} + // B2S converts byte slice to a string without memory allocation. // See https://groups.google.com/forum/#!msg/Golang-Nuts/ENgbUzYvCuU/90yGx7GUAgAJ . // from github.com/savsgio/gotils/strconv