1
0
Fork 0

Remove element name match test from Stream.Next().

Only one place still used it, so it might as well go.
This commit is contained in:
Matt Goodall 2012-07-12 00:48:44 +01:00
parent 6dfd9e096b
commit f97ed9ea37
4 changed files with 10 additions and 12 deletions

View File

@ -150,7 +150,7 @@ func authenticatePlain(stream *Stream, user, password string) error {
} }
func authenticateResponse(stream *Stream) error { func authenticateResponse(stream *Stream) error {
if se, err := stream.Next(nil); err != nil { if se, err := stream.Next(); err != nil {
return err return err
} else { } else {
switch se.Name.Local { switch se.Name.Local {

View File

@ -70,8 +70,12 @@ func handshake(stream *Stream, streamId, secret string) error {
} }
// Get handshake response. // Get handshake response.
if _, err := stream.Next(&xml.Name{"jabber:component:accept", "handshake"}); err != nil { if start, err := stream.Next(); err != nil {
return err return err
} else {
if start.Name != (xml.Name{"jabber:component:accept", "handshake"}) {
return fmt.Errorf("Expected <handshake/>, for %s", start.Name)
}
} }
if err := stream.Skip(); err != nil { if err := stream.Skip(); err != nil {
return err return err

View File

@ -4,7 +4,6 @@ import (
"bytes" "bytes"
"crypto/tls" "crypto/tls"
"encoding/xml" "encoding/xml"
"fmt"
"io" "io"
"log" "log"
"net" "net"
@ -124,11 +123,10 @@ func (stream *Stream) send(b []byte) error {
return nil return nil
} }
// Find start of next stanza. If match is not nil the stanza's XML name // Find start of next stanza.
// is compared and must be equal.
// Bad things are very likely to happen if a call to Next() is successful but // Bad things are very likely to happen if a call to Next() is successful but
// you don't actually decode or skip the element. // you don't actually decode or skip the element.
func (stream *Stream) Next(match *xml.Name) (*xml.StartElement, error) { func (stream *Stream) Next() (*xml.StartElement, error) {
start, err := nextStartElement(stream.dec) start, err := nextStartElement(stream.dec)
if err != nil { if err != nil {
@ -144,10 +142,6 @@ func (stream *Stream) Next(match *xml.Name) (*xml.StartElement, error) {
log.Println("recv:", stream.stanzaBuf) log.Println("recv:", stream.stanzaBuf)
} }
if match != nil && start.Name != *match {
return nil, fmt.Errorf("Expected %s, got %s", *match, start.Name)
}
return start, nil return start, nil
} }
@ -194,7 +188,7 @@ func (stream *Stream) DecodeElement(v interface{}, start *xml.StartElement) erro
// Explicity lookup next start element to ensure stream is validated, // Explicity lookup next start element to ensure stream is validated,
// stanza is logged, etc. // stanza is logged, etc.
if start == nil { if start == nil {
if se, err := stream.Next(nil); err != nil { if se, err := stream.Next(); err != nil {
return err return err
} else { } else {
start = se start = se

View File

@ -151,7 +151,7 @@ func (x *XMPP) receiver() {
defer close(x.in) defer close(x.in)
for { for {
start, err := x.stream.Next(nil) start, err := x.stream.Next()
if err != nil { if err != nil {
x.in <- err x.in <- err
return return