Refactoring: merge handleGetDiscoInfo/handleGetDiscoItems back into one function
This commit is contained in:
parent
6abb7ff9c2
commit
63f12202d0
|
@ -24,6 +24,12 @@ const (
|
|||
)
|
||||
const NodeVCard4 string = "urn:xmpp:vcard4"
|
||||
|
||||
type discoType int
|
||||
const (
|
||||
discoTypeInfo discoType = iota
|
||||
discoTypeItems
|
||||
)
|
||||
|
||||
func logPacketType(p stanza.Packet) {
|
||||
log.Warnf("Ignoring packet: %T\n", p)
|
||||
}
|
||||
|
@ -52,12 +58,12 @@ func HandleIq(s xmpp.Sender, p stanza.Packet) {
|
|||
}
|
||||
_, ok = iq.Payload.(*stanza.DiscoInfo)
|
||||
if ok {
|
||||
go handleGetDiscoInfo(s, iq)
|
||||
go handleGetDisco(discoTypeInfo, s, iq)
|
||||
return
|
||||
}
|
||||
_, ok = iq.Payload.(*stanza.DiscoItems)
|
||||
if ok {
|
||||
go handleGetDiscoItems(s, iq)
|
||||
go handleGetDisco(discoTypeItems, s, iq)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
@ -318,7 +324,7 @@ func handleGetVcardIq(s xmpp.Sender, iq *stanza.IQ, typ byte) {
|
|||
_ = gateway.ResumableSend(component, &answer)
|
||||
}
|
||||
|
||||
func handleGetDiscoInfo(s xmpp.Sender, iq *stanza.IQ) {
|
||||
func handleGetDisco(dt discoType, s xmpp.Sender, iq *stanza.IQ) {
|
||||
answer, err := stanza.NewIQ(stanza.Attrs{
|
||||
Type: stanza.IQTypeResult,
|
||||
From: iq.To,
|
||||
|
@ -331,6 +337,7 @@ func handleGetDiscoInfo(s xmpp.Sender, iq *stanza.IQ) {
|
|||
return
|
||||
}
|
||||
|
||||
if dt == discoTypeInfo {
|
||||
disco := answer.DiscoInfo()
|
||||
_, ok := toToID(iq.To)
|
||||
if ok {
|
||||
|
@ -347,31 +354,7 @@ func handleGetDiscoInfo(s xmpp.Sender, iq *stanza.IQ) {
|
|||
}
|
||||
}
|
||||
answer.Payload = disco
|
||||
|
||||
log.Debugf("%#v", answer)
|
||||
|
||||
component, ok := s.(*xmpp.Component)
|
||||
if !ok {
|
||||
log.Error("Not a component")
|
||||
return
|
||||
}
|
||||
|
||||
_ = gateway.ResumableSend(component, answer)
|
||||
}
|
||||
|
||||
func handleGetDiscoItems(s xmpp.Sender, iq *stanza.IQ) {
|
||||
answer, err := stanza.NewIQ(stanza.Attrs{
|
||||
Type: stanza.IQTypeResult,
|
||||
From: iq.To,
|
||||
To: iq.From,
|
||||
Id: iq.Id,
|
||||
Lang: "en",
|
||||
})
|
||||
if err != nil {
|
||||
log.Errorf("Failed to create answer IQ: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
} else if dt == discoTypeItems {
|
||||
disco := answer.DiscoItems()
|
||||
|
||||
_, ok := toToID(iq.To)
|
||||
|
@ -392,6 +375,7 @@ func handleGetDiscoItems(s xmpp.Sender, iq *stanza.IQ) {
|
|||
}
|
||||
|
||||
answer.Payload = disco
|
||||
}
|
||||
|
||||
log.Debugf("%#v", answer)
|
||||
|
||||
|
|
Loading…
Reference in a new issue