From a6709a1f711e5058237005afa42bb19e8942a09b Mon Sep 17 00:00:00 2001 From: Wichert Akkerman Date: Mon, 21 Oct 2019 10:10:18 +0200 Subject: [PATCH] Do not try to create a stream logger before we have a net.Conn --- xmpp_transport.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/xmpp_transport.go b/xmpp_transport.go index 64f2b9a..6825df4 100644 --- a/xmpp_transport.go +++ b/xmpp_transport.go @@ -19,6 +19,7 @@ type XMPPTransport struct { decoder *xml.Decoder conn net.Conn readWriter io.ReadWriter + logFile io.Writer isSecure bool } @@ -32,20 +33,21 @@ func (t *XMPPTransport) Connect() (string, error) { return "", NewConnError(err, true) } - if _, err = fmt.Fprintf(t.conn, xmppStreamOpen, t.Config.Domain, stanza.NSClient, stanza.NSStream); err != nil { + t.readWriter = newStreamLogger(t.conn, t.logFile) + + if _, err = fmt.Fprintf(t.readWriter, xmppStreamOpen, t.Config.Domain, stanza.NSClient, stanza.NSStream); err != nil { t.conn.Close() return "", NewConnError(err, true) } t.decoder = xml.NewDecoder(t.readWriter) t.decoder.CharsetReader = t.Config.CharsetReader - sessionId, err := stanza.InitStream(t.decoder) + sessionID, err := stanza.InitStream(t.decoder) if err != nil { t.conn.Close() return "", NewConnError(err, false) } - t.readWriter = t.conn - return sessionId, nil + return sessionID, nil } func (t XMPPTransport) DoesStartTLS() bool { @@ -111,5 +113,5 @@ func (t XMPPTransport) Close() error { } func (t *XMPPTransport) LogTraffic(logFile io.Writer) { - t.readWriter = &streamLogger{t.conn, logFile} + t.logFile = logFile }