go-xmpp/stream.go

67 lines
1.7 KiB
Go
Raw Normal View History

package xmpp // import "gosrc.io/xmpp"
2018-01-13 17:50:17 +00:00
import (
"encoding/xml"
)
// ============================================================================
// StreamFeatures Packet
type StreamFeatures struct {
XMLName xml.Name `xml:"http://etherx.jabber.org/streams features"`
StartTLS tlsStartTLS
Caps Caps
Mechanisms saslMechanisms
2018-01-16 21:33:21 +00:00
Bind BindBind
Session sessionSession
Any []xml.Name `xml:",any"`
}
func (StreamFeatures) Name() string {
return "stream:features"
}
type streamFeatureDecoder struct{}
var streamFeatures streamFeatureDecoder
func (streamFeatureDecoder) decode(p *xml.Decoder, se xml.StartElement) (StreamFeatures, error) {
var packet StreamFeatures
err := p.DecodeElement(&packet, &se)
return packet, err
}
2018-01-13 17:50:17 +00:00
// ============================================================================
// StreamError Packet
2018-01-11 22:00:59 +00:00
type StreamError struct {
XMLName xml.Name `xml:"http://etherx.jabber.org/streams error"`
Error xml.Name `xml:",any"`
Text string `xml:"urn:ietf:params:xml:ns:xmpp-streams text"`
2018-01-11 22:00:59 +00:00
}
2018-01-13 17:50:17 +00:00
func (StreamError) Name() string {
return "stream:error"
}
type streamErrorDecoder struct{}
var streamError streamErrorDecoder
func (streamErrorDecoder) decode(p *xml.Decoder, se xml.StartElement) (StreamError, error) {
var packet StreamError
err := p.DecodeElement(&packet, &se)
return packet, err
}
// ============================================================================
// Caps subElement
type Caps struct {
XMLName xml.Name `xml:"http://jabber.org/protocol/caps c"`
Hash string `xml:"hash,attr"`
Node string `xml:"node,attr"`
Ver string `xml:"ver,attr"`
Ext string `xml:"ext,attr,omitempty"`
}