diff options
author | xengineering <me@xengineering.eu> | 2023-05-22 21:22:32 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2023-05-22 21:22:32 +0200 |
commit | c39b4f6bf147aca788dc02832a985700b6e4eba9 (patch) | |
tree | f39fd6d520802ef971fcb51ba841022b760e4ecb | |
parent | efd5c81ca00136d3a673d99e699f16d050fcfaa6 (diff) | |
download | limox-c39b4f6bf147aca788dc02832a985700b6e4eba9.tar limox-c39b4f6bf147aca788dc02832a985700b6e4eba9.tar.zst limox-c39b4f6bf147aca788dc02832a985700b6e4eba9.zip |
Act on SASL server response
-rw-r--r-- | xmpp/routing.go | 2 | ||||
-rw-r--r-- | xmpp/sasl.go | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/xmpp/routing.go b/xmpp/routing.go index 48c9763..9199874 100644 --- a/xmpp/routing.go +++ b/xmpp/routing.go @@ -65,6 +65,8 @@ func (r *tokenRouter) route(t xml.Token, c *Conn) error { func routeElement(b []xml.Token, c *Conn) error { tab := elementRoutingTable{ {xml.Name{"http://etherx.jabber.org/streams", "features"}, streamFeatures}, + {xml.Name{"urn:ietf:params:xml:ns:xmpp-sasl", "success"}, onSaslSuccess}, + {xml.Name{"urn:ietf:params:xml:ns:xmpp-sasl", "failure"}, onSaslFailure}, } switch unwrapped := b[0].(type) { diff --git a/xmpp/sasl.go b/xmpp/sasl.go index cbc1f11..91cbf6b 100644 --- a/xmpp/sasl.go +++ b/xmpp/sasl.go @@ -48,3 +48,12 @@ func sendSaslAuth(b []xml.Token, c *Conn) error { return errors.New("No compatible SASL mechanism given") } + +func onSaslSuccess(b []xml.Token, c *Conn) error { + sendStreamStart(&c.enc, c.jid) + return nil +} + +func onSaslFailure(b []xml.Token, c *Conn) error { + return errors.New("Authentication failed") +} |