forked from jshiffer/go-xmpp
Correctly open new streams after StartTLS and auth
This commit is contained in:
committed by
Mickaël Rémond
parent
33446ad0ba
commit
6da1962962
@@ -6,6 +6,7 @@ const (
|
||||
NSSASL = "urn:ietf:params:xml:ns:xmpp-sasl"
|
||||
NSBind = "urn:ietf:params:xml:ns:xmpp-bind"
|
||||
NSSession = "urn:ietf:params:xml:ns:xmpp-session"
|
||||
NSFraming = "urn:ietf:params:xml:ns:xmpp-framing"
|
||||
NSClient = "jabber:client"
|
||||
NSComponent = "jabber:component:accept"
|
||||
)
|
||||
|
||||
@@ -24,8 +24,10 @@ func InitStream(p *xml.Decoder) (sessionID string, err error) {
|
||||
|
||||
switch elem := t.(type) {
|
||||
case xml.StartElement:
|
||||
if elem.Name.Space != NSStream || elem.Name.Local != "stream" {
|
||||
err = errors.New("xmpp: expected <stream> but got <" + elem.Name.Local + "> in " + elem.Name.Space)
|
||||
isStreamOpen := elem.Name.Space == NSStream && elem.Name.Local == "stream"
|
||||
isFrameOpen := elem.Name.Space == NSFraming && elem.Name.Local == "open"
|
||||
if !isStreamOpen && !isFrameOpen {
|
||||
err = errors.New("xmpp: expected <stream> or <open> but got <" + elem.Name.Local + "> in " + elem.Name.Space)
|
||||
return sessionID, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user