Add Server-To-Client handler

https://xmpp.org/extensions/xep-0199.html#s2c
This commit is contained in:
vduduh 2020-02-27 23:18:50 +03:00
parent 22ba8d1f4e
commit 7745e1f718

View File

@ -309,6 +309,19 @@ func (c *Client) recv(state SMState, keepaliveQuit chan<- struct{}) {
// Handle stream errors // Handle stream errors
switch packet := val.(type) { switch packet := val.(type) {
case *stanza.IQ:
if val.(*stanza.IQ).Any != nil && val.(*stanza.IQ).Any.XMLName.Local == "ping" {
err = c.Send(&stanza.IQ{Attrs: stanza.Attrs{
Id: val.(*stanza.IQ).Id,
Type: stanza.IQTypeResult,
From: val.(*stanza.IQ).To,
To: val.(*stanza.IQ).From,
}})
if err != nil {
c.ErrorHandler(err)
}
continue
}
case stanza.StreamError: case stanza.StreamError:
c.router.route(c, val) c.router.route(c, val)
close(keepaliveQuit) close(keepaliveQuit)