forked from jshiffer/go-xmpp
Merge pull request #81 from froodian/auth-failure-text
more robust error messages for authentication failures
This commit is contained in:
commit
0fe2a76e77
11
xmpp.go
11
xmpp.go
@ -404,9 +404,13 @@ func (c *Client) init(o *Options) error {
|
|||||||
switch v := val.(type) {
|
switch v := val.(type) {
|
||||||
case *saslSuccess:
|
case *saslSuccess:
|
||||||
case *saslFailure:
|
case *saslFailure:
|
||||||
// v.Any is type of sub-element in failure,
|
errorMessage := v.Text
|
||||||
// which gives a description of what failed.
|
if errorMessage == "" {
|
||||||
return errors.New("auth failure: " + v.Any.Local)
|
// v.Any is type of sub-element in failure,
|
||||||
|
// which gives a description of what failed if there was no text element
|
||||||
|
errorMessage = v.Any.Local
|
||||||
|
}
|
||||||
|
return errors.New("auth failure: " + errorMessage)
|
||||||
default:
|
default:
|
||||||
return errors.New("expected <success> or <failure>, got <" + name.Local + "> in " + name.Space)
|
return errors.New("expected <success> or <failure>, got <" + name.Local + "> in " + name.Space)
|
||||||
}
|
}
|
||||||
@ -699,6 +703,7 @@ type saslSuccess struct {
|
|||||||
type saslFailure struct {
|
type saslFailure struct {
|
||||||
XMLName xml.Name `xml:"urn:ietf:params:xml:ns:xmpp-sasl failure"`
|
XMLName xml.Name `xml:"urn:ietf:params:xml:ns:xmpp-sasl failure"`
|
||||||
Any xml.Name `xml:",any"`
|
Any xml.Name `xml:",any"`
|
||||||
|
Text string `xml:"text"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// RFC 3920 C.5 Resource binding name space
|
// RFC 3920 C.5 Resource binding name space
|
||||||
|
Loading…
Reference in New Issue
Block a user