diff --git a/client/client.go b/client/client.go index ad806b28..edf062f0 100644 --- a/client/client.go +++ b/client/client.go @@ -69,6 +69,7 @@ type QQClient struct { rollbackSig []byte timeDiff int64 sigInfo *loginSigInfo + highwaySession *highwaySessionInfo fileStorageInfo *jce.FileStoragePushFSSvcList pwdFlag bool diff --git a/client/decoders.go b/client/decoders.go index c39df5d8..f4dadd15 100644 --- a/client/decoders.go +++ b/client/decoders.go @@ -3,6 +3,7 @@ package client import ( "encoding/hex" "fmt" + "github.com/Mrs4s/MiraiGo/client/pb/cmd0x6ff" "net" "strconv" "strings" @@ -249,6 +250,14 @@ func decodePushReqPacket(c *QQClient, _ uint16, payload []byte) (interface{}, er list.ReadFrom(fmtPkt) c.Debug("got file storage svc push.") c.fileStorageInfo = list + rsp := cmd0x6ff.C501RspBody{} + if err := proto.Unmarshal(list.BigDataChannel.PbBuf, &rsp); err == nil && rsp.RspBody != nil { + c.highwaySession = &highwaySessionInfo{ + SigSession: rsp.RspBody.SigSession, + SessionKey: rsp.RspBody.SessionKey, + } + c.Debug("highway session updated.") + } } } diff --git a/client/entities.go b/client/entities.go index 66c82bd3..fe8845f2 100644 --- a/client/entities.go +++ b/client/entities.go @@ -209,6 +209,11 @@ type ( Seq int32 Msg *message.GroupMessage } + + highwaySessionInfo struct { + SigSession []byte + SessionKey []byte + } ) const ( diff --git a/client/pb/cmd0x6ff/subcmd0x501.pb.go b/client/pb/cmd0x6ff/subcmd0x501.pb.go new file mode 100644 index 00000000..051f8a6c --- /dev/null +++ b/client/pb/cmd0x6ff/subcmd0x501.pb.go @@ -0,0 +1,613 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.11.4 +// source: subcmd0x501.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 C501ReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReqBody *SubCmd0X501ReqBody `protobuf:"bytes,1281,opt,name=ReqBody" json:"ReqBody,omitempty"` +} + +func (x *C501ReqBody) Reset() { + *x = C501ReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_subcmd0x501_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C501ReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C501ReqBody) ProtoMessage() {} + +func (x *C501ReqBody) ProtoReflect() protoreflect.Message { + mi := &file_subcmd0x501_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 C501ReqBody.ProtoReflect.Descriptor instead. +func (*C501ReqBody) Descriptor() ([]byte, []int) { + return file_subcmd0x501_proto_rawDescGZIP(), []int{0} +} + +func (x *C501ReqBody) GetReqBody() *SubCmd0X501ReqBody { + if x != nil { + return x.ReqBody + } + return nil +} + +type C501RspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RspBody *SubCmd0X501RspBody `protobuf:"bytes,1281,opt,name=RspBody" json:"RspBody,omitempty"` +} + +func (x *C501RspBody) Reset() { + *x = C501RspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_subcmd0x501_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *C501RspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*C501RspBody) ProtoMessage() {} + +func (x *C501RspBody) ProtoReflect() protoreflect.Message { + mi := &file_subcmd0x501_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 C501RspBody.ProtoReflect.Descriptor instead. +func (*C501RspBody) Descriptor() ([]byte, []int) { + return file_subcmd0x501_proto_rawDescGZIP(), []int{1} +} + +func (x *C501RspBody) GetRspBody() *SubCmd0X501RspBody { + if x != nil { + return x.RspBody + } + return nil +} + +type SubCmd0X501ReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + IdcId *uint32 `protobuf:"varint,2,opt,name=idcId" json:"idcId,omitempty"` + Appid *uint32 `protobuf:"varint,3,opt,name=appid" json:"appid,omitempty"` + LoginSigType *uint32 `protobuf:"varint,4,opt,name=loginSigType" json:"loginSigType,omitempty"` + LoginSigTicket []byte `protobuf:"bytes,5,opt,name=loginSigTicket" json:"loginSigTicket,omitempty"` + RequestFlag *uint32 `protobuf:"varint,6,opt,name=requestFlag" json:"requestFlag,omitempty"` + ServiceTypes []uint32 `protobuf:"varint,7,rep,name=serviceTypes" json:"serviceTypes,omitempty"` + Bid *uint32 `protobuf:"varint,8,opt,name=bid" json:"bid,omitempty"` +} + +func (x *SubCmd0X501ReqBody) Reset() { + *x = SubCmd0X501ReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_subcmd0x501_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubCmd0X501ReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubCmd0X501ReqBody) ProtoMessage() {} + +func (x *SubCmd0X501ReqBody) ProtoReflect() protoreflect.Message { + mi := &file_subcmd0x501_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 SubCmd0X501ReqBody.ProtoReflect.Descriptor instead. +func (*SubCmd0X501ReqBody) Descriptor() ([]byte, []int) { + return file_subcmd0x501_proto_rawDescGZIP(), []int{2} +} + +func (x *SubCmd0X501ReqBody) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *SubCmd0X501ReqBody) GetIdcId() uint32 { + if x != nil && x.IdcId != nil { + return *x.IdcId + } + return 0 +} + +func (x *SubCmd0X501ReqBody) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *SubCmd0X501ReqBody) GetLoginSigType() uint32 { + if x != nil && x.LoginSigType != nil { + return *x.LoginSigType + } + return 0 +} + +func (x *SubCmd0X501ReqBody) GetLoginSigTicket() []byte { + if x != nil { + return x.LoginSigTicket + } + return nil +} + +func (x *SubCmd0X501ReqBody) GetRequestFlag() uint32 { + if x != nil && x.RequestFlag != nil { + return *x.RequestFlag + } + return 0 +} + +func (x *SubCmd0X501ReqBody) GetServiceTypes() []uint32 { + if x != nil { + return x.ServiceTypes + } + return nil +} + +func (x *SubCmd0X501ReqBody) GetBid() uint32 { + if x != nil && x.Bid != nil { + return *x.Bid + } + return 0 +} + +type SubCmd0X501RspBody struct { + state protoimpl.MessageState + 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"` +} + +func (x *SubCmd0X501RspBody) Reset() { + *x = SubCmd0X501RspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_subcmd0x501_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubCmd0X501RspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubCmd0X501RspBody) ProtoMessage() {} + +func (x *SubCmd0X501RspBody) ProtoReflect() protoreflect.Message { + mi := &file_subcmd0x501_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 SubCmd0X501RspBody.ProtoReflect.Descriptor instead. +func (*SubCmd0X501RspBody) Descriptor() ([]byte, []int) { + return file_subcmd0x501_proto_rawDescGZIP(), []int{3} +} + +func (x *SubCmd0X501RspBody) GetSigSession() []byte { + if x != nil { + return x.SigSession + } + return nil +} + +func (x *SubCmd0X501RspBody) GetSessionKey() []byte { + if x != nil { + return x.SessionKey + } + return nil +} + +func (x *SubCmd0X501RspBody) GetAddrs() []*SrvAddrs { + if x != nil { + return x.Addrs + } + return nil +} + +func (x *SubCmd0X501RspBody) GetShareType() uint32 { + if x != nil && x.ShareType != nil { + return *x.ShareType + } + return 0 +} + +func (x *SubCmd0X501RspBody) GetShareChannel() uint32 { + if x != nil && x.ShareChannel != nil { + return *x.ShareChannel + } + return 0 +} + +type IpAddr struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Ip *uint32 `protobuf:"fixed32,2,opt,name=ip" json:"ip,omitempty"` + Port *uint32 `protobuf:"varint,3,opt,name=port" json:"port,omitempty"` + Area *uint32 `protobuf:"varint,4,opt,name=area" json:"area,omitempty"` +} + +func (x *IpAddr) Reset() { + *x = IpAddr{} + if protoimpl.UnsafeEnabled { + mi := &file_subcmd0x501_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IpAddr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IpAddr) ProtoMessage() {} + +func (x *IpAddr) 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 IpAddr.ProtoReflect.Descriptor instead. +func (*IpAddr) Descriptor() ([]byte, []int) { + return file_subcmd0x501_proto_rawDescGZIP(), []int{4} +} + +func (x *IpAddr) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *IpAddr) GetIp() uint32 { + if x != nil && x.Ip != nil { + return *x.Ip + } + return 0 +} + +func (x *IpAddr) GetPort() uint32 { + if x != nil && x.Port != nil { + return *x.Port + } + return 0 +} + +func (x *IpAddr) GetArea() uint32 { + if x != nil && x.Area != nil { + return *x.Area + } + 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{ + 0x0a, 0x11, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x35, 0x30, 0x31, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x3d, 0x0a, 0x0b, 0x43, 0x35, 0x30, 0x31, 0x52, 0x65, 0x71, 0x42, 0x6f, + 0x64, 0x79, 0x12, 0x2e, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x81, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x30, 0x78, 0x35, + 0x30, 0x31, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x52, 0x65, 0x71, 0x42, 0x6f, + 0x64, 0x79, 0x22, 0x3d, 0x0a, 0x0b, 0x43, 0x35, 0x30, 0x31, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x2e, 0x0a, 0x07, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x81, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x30, 0x78, 0x35, 0x30, + 0x31, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, + 0x79, 0x22, 0xf6, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x30, 0x78, 0x35, 0x30, + 0x31, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x64, + 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x64, 0x63, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, + 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 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, +} + +var ( + file_subcmd0x501_proto_rawDescOnce sync.Once + file_subcmd0x501_proto_rawDescData = file_subcmd0x501_proto_rawDesc +) + +func file_subcmd0x501_proto_rawDescGZIP() []byte { + file_subcmd0x501_proto_rawDescOnce.Do(func() { + file_subcmd0x501_proto_rawDescData = protoimpl.X.CompressGZIP(file_subcmd0x501_proto_rawDescData) + }) + return file_subcmd0x501_proto_rawDescData +} + +var file_subcmd0x501_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_subcmd0x501_proto_goTypes = []interface{}{ + (*C501ReqBody)(nil), // 0: C501ReqBody + (*C501RspBody)(nil), // 1: C501RspBody + (*SubCmd0X501ReqBody)(nil), // 2: SubCmd0x501ReqBody + (*SubCmd0X501RspBody)(nil), // 3: SubCmd0x501RspBody + (*IpAddr)(nil), // 4: IpAddr + (*SrvAddrs)(nil), // 5: SrvAddrs +} +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, // [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 + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_subcmd0x501_proto_init() } +func file_subcmd0x501_proto_init() { + if File_subcmd0x501_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_subcmd0x501_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C501ReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subcmd0x501_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*C501RspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subcmd0x501_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubCmd0X501ReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subcmd0x501_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubCmd0X501RspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subcmd0x501_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpAddr); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subcmd0x501_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SrvAddrs); 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_subcmd0x501_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_subcmd0x501_proto_goTypes, + DependencyIndexes: file_subcmd0x501_proto_depIdxs, + MessageInfos: file_subcmd0x501_proto_msgTypes, + }.Build() + File_subcmd0x501_proto = out.File + file_subcmd0x501_proto_rawDesc = nil + file_subcmd0x501_proto_goTypes = nil + file_subcmd0x501_proto_depIdxs = nil +} diff --git a/client/pb/cmd0x6ff/subcmd0x501.proto b/client/pb/cmd0x6ff/subcmd0x501.proto new file mode 100644 index 00000000..adacb433 --- /dev/null +++ b/client/pb/cmd0x6ff/subcmd0x501.proto @@ -0,0 +1,37 @@ +syntax = "proto2"; +option go_package = ".;cmd0x6ff"; + +message C501ReqBody { + optional SubCmd0x501ReqBody ReqBody = 1281; +} +message C501RspBody { + optional SubCmd0x501RspBody RspBody = 1281; +} +message SubCmd0x501ReqBody { + optional uint64 uin = 1; + optional uint32 idcId = 2; + optional uint32 appid = 3; + optional uint32 loginSigType = 4; + optional bytes loginSigTicket = 5; + optional uint32 requestFlag = 6; + repeated uint32 serviceTypes = 7; + optional uint32 bid = 8; +} +message SubCmd0x501RspBody { + optional bytes sigSession = 1; + optional bytes sessionKey = 2; + repeated SrvAddrs addrs = 3; +} + +message SrvAddrs { + optional uint32 serviceType = 1; + repeated IpAddr addrs = 2; +} + +message IpAddr { + optional uint32 type = 1; + optional fixed32 ip = 2; + optional uint32 port = 3; + optional uint32 area = 4; +} +