summaryrefslogtreecommitdiff
path: root/xmpp/session.go
diff options
context:
space:
mode:
Diffstat (limited to 'xmpp/session.go')
-rw-r--r--xmpp/session.go9
1 files changed, 5 insertions, 4 deletions
diff --git a/xmpp/session.go b/xmpp/session.go
index b4a8fab..6a5e646 100644
--- a/xmpp/session.go
+++ b/xmpp/session.go
@@ -1,6 +1,7 @@
package xmpp
import (
+ "context"
"crypto/tls"
"crypto/x509"
"encoding/xml"
@@ -18,7 +19,6 @@ type session struct {
in chan any
out chan<- any
transport *tls.Conn
- ed encoderDecoder
tx *xml.Encoder
rx chan xml.Token
resourceReq string
@@ -47,9 +47,10 @@ func (s *session) run() {
}
defer s.transport.Close()
- s.ed = newEncoderDecoder(s)
- go s.ed.run()
- defer func() { s.ed.terminator <- true }()
+ ctx, cancel := context.WithCancel(context.Background())
+ cpy := s.rx
+ go runRx(ctx, cpy, s.transport)
+ defer cancel()
lw := logger{"[TX] "}
w := io.MultiWriter(s.transport, lw)