diff --git a/websocket_transport.go b/websocket_transport.go index bf43611..d7b62c4 100644 --- a/websocket_transport.go +++ b/websocket_transport.go @@ -1,6 +1,7 @@ package xmpp import ( + "bufio" "context" "encoding/xml" "errors" @@ -57,7 +58,7 @@ func (t *WebsocketTransport) Connect() (string, error) { t.wsConn = wsConn t.startReader() - t.decoder = xml.NewDecoder(t) + t.decoder = xml.NewDecoder(bufio.NewReaderSize(t, maxPacketSize)) t.decoder.CharsetReader = t.Config.CharsetReader return t.StartStream() diff --git a/xmpp_transport.go b/xmpp_transport.go index a1a11be..a67d5bc 100644 --- a/xmpp_transport.go +++ b/xmpp_transport.go @@ -1,6 +1,7 @@ package xmpp import ( + "bufio" "crypto/tls" "encoding/xml" "errors" @@ -37,7 +38,7 @@ func (t *XMPPTransport) Connect() (string, error) { } t.readWriter = newStreamLogger(t.conn, t.logFile) - t.decoder = xml.NewDecoder(t.readWriter) + t.decoder = xml.NewDecoder(bufio.NewReaderSize(t.readWriter, maxPacketSize)) t.decoder.CharsetReader = t.Config.CharsetReader return t.StartStream() } @@ -90,7 +91,7 @@ func (t *XMPPTransport) StartTLS() error { t.conn = tlsConn t.readWriter = newStreamLogger(tlsConn, t.logFile) - t.decoder = xml.NewDecoder(t.readWriter) + t.decoder = xml.NewDecoder(bufio.NewReaderSize(t.readWriter, maxPacketSize)) t.decoder.CharsetReader = t.Config.CharsetReader if !t.TLSConfig.InsecureSkipVerify {