diff options
| author | xengineering <me@xengineering.eu> | 2023-07-04 21:24:04 +0200 | 
|---|---|---|
| committer | xengineering <me@xengineering.eu> | 2023-07-04 21:24:04 +0200 | 
| commit | 2c71877e392da6c2691827160142e95142f7bea6 (patch) | |
| tree | f7b3a0b9d8d98e422a5ca579fd8fbceb654ad0a6 /xmpp/streams.go | |
| parent | e529bab2e5df93ff8e9fd415b9d65e9bb6d17695 (diff) | |
| download | limox-2c71877e392da6c2691827160142e95142f7bea6.tar limox-2c71877e392da6c2691827160142e95142f7bea6.tar.zst limox-2c71877e392da6c2691827160142e95142f7bea6.zip  | |
Re-implement SASL
Was broken because of switch to new RX concept.
Diffstat (limited to 'xmpp/streams.go')
| -rw-r--r-- | xmpp/streams.go | 21 | 
1 files changed, 17 insertions, 4 deletions
diff --git a/xmpp/streams.go b/xmpp/streams.go index 3aca8a2..8f6fd03 100644 --- a/xmpp/streams.go +++ b/xmpp/streams.go @@ -5,6 +5,23 @@ import (  	"log"  ) +type streamFeatures struct { +	SaslMechanisms []string `xml:"mechanisms>mechanism"` +} + +func handleStreamFeatures(s *session, f streamFeatures) { +	if len(f.SaslMechanisms) > 0 { +		for _, v := range f.SaslMechanisms { +			if v == "PLAIN" { +				s.sasl() +				return +			} +		} +		log.Println("No compatible SASL mechanism found!") +		return +	} +} +  func openStream(e *xml.Encoder, jid string) {  	start := xml.StartElement{  		xml.Name{"jabber:client", "stream:stream"}, @@ -63,7 +80,3 @@ func iqHandler(s *session, e []xml.Token) {  		}  	}  } - -type streamFeatures struct { -	SaslMechanisms []string `xml:"mechanisms>mechanism"` -}  | 
