1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-05 03:23:50 +08:00

feature: sso addr control.

This commit is contained in:
Mrs4s 2020-11-12 23:01:30 +08:00
parent c41a3dbb0f
commit 58e7c82fd2
2 changed files with 13 additions and 5 deletions

View File

@ -165,7 +165,7 @@ func decodeLoginResponse(c *QQClient, _ uint16, payload []byte) (interface{}, er
} }
// StatSvc.register // StatSvc.register
func decodeClientRegisterResponse(_ *QQClient, _ uint16, payload []byte) (interface{}, error) { func decodeClientRegisterResponse(c *QQClient, _ uint16, payload []byte) (interface{}, error) {
request := &jce.RequestPacket{} request := &jce.RequestPacket{}
request.ReadFrom(jce.NewJceReader(payload)) request.ReadFrom(jce.NewJceReader(payload))
data := &jce.RequestDataVersion2{} data := &jce.RequestDataVersion2{}
@ -173,6 +173,9 @@ func decodeClientRegisterResponse(_ *QQClient, _ uint16, payload []byte) (interf
svcRsp := &jce.SvcRespRegister{} svcRsp := &jce.SvcRespRegister{}
svcRsp.ReadFrom(jce.NewJceReader(data.Map["SvcRespRegister"]["QQService.SvcRespRegister"][1:])) svcRsp.ReadFrom(jce.NewJceReader(data.Map["SvcRespRegister"]["QQService.SvcRespRegister"][1:]))
if svcRsp.Result != "" || svcRsp.Status != 11 { if svcRsp.Result != "" || svcRsp.Status != 11 {
if svcRsp.Result != "" {
c.Error("reg error: %v", svcRsp.Result)
}
return nil, errors.New("reg failed") return nil, errors.New("reg failed")
} }
return nil, nil return nil, nil
@ -221,12 +224,17 @@ func decodePushReqPacket(c *QQClient, _ uint16, payload []byte) (interface{}, er
Port: int(s.Port), Port: int(s.Port),
}) })
} }
c.SetCustomServer(adds) f := true
for _, e := range c.eventHandlers.serverUpdatedHandlers { for _, e := range c.eventHandlers.serverUpdatedHandlers {
cover(func() { cover(func() {
e(c, &ServerUpdatedEvent{Servers: servers}) if !e(c, &ServerUpdatedEvent{Servers: servers}) {
f = false
}
}) })
} }
if !f {
c.SetCustomServer(adds)
}
return nil, nil return nil, nil
} }
} }

View File

@ -25,7 +25,7 @@ type eventHandlers struct {
newFriendHandlers []func(*QQClient, *NewFriendEvent) newFriendHandlers []func(*QQClient, *NewFriendEvent)
disconnectHandlers []func(*QQClient, *ClientDisconnectedEvent) disconnectHandlers []func(*QQClient, *ClientDisconnectedEvent)
logHandlers []func(*QQClient, *LogEvent) logHandlers []func(*QQClient, *LogEvent)
serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent) serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent) bool
notifyHandlers []func(*QQClient, IGroupNotifyEvent) notifyHandlers []func(*QQClient, IGroupNotifyEvent)
offlineFileHandlers []func(*QQClient, *OfflineFileEvent) offlineFileHandlers []func(*QQClient, *OfflineFileEvent)
groupMessageReceiptHandlers sync.Map groupMessageReceiptHandlers sync.Map
@ -107,7 +107,7 @@ func (c *QQClient) OnDisconnected(f func(*QQClient, *ClientDisconnectedEvent)) {
c.eventHandlers.disconnectHandlers = append(c.eventHandlers.disconnectHandlers, f) c.eventHandlers.disconnectHandlers = append(c.eventHandlers.disconnectHandlers, f)
} }
func (c *QQClient) OnServerUpdated(f func(*QQClient, *ServerUpdatedEvent)) { func (c *QQClient) OnServerUpdated(f func(*QQClient, *ServerUpdatedEvent) bool) {
c.eventHandlers.serverUpdatedHandlers = append(c.eventHandlers.serverUpdatedHandlers, f) c.eventHandlers.serverUpdatedHandlers = append(c.eventHandlers.serverUpdatedHandlers, f)
} }