summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmpp/encoder_decoder.go3
-rw-r--r--xmpp/session.go4
2 files changed, 6 insertions, 1 deletions
diff --git a/xmpp/encoder_decoder.go b/xmpp/encoder_decoder.go
index c8ccd89..7a917da 100644
--- a/xmpp/encoder_decoder.go
+++ b/xmpp/encoder_decoder.go
@@ -65,7 +65,8 @@ func (ed *encoderDecoder) run() {
if err != nil { log.Println("Could not encode to server stream log") }
err = ed.sl.Flush()
if err != nil { log.Println("Could not flush server stream log") }
- _ = xml.CopyToken(t) // TODO do something meaningful here
+ c := xml.CopyToken(t)
+ ed.session.rx <- c
}
if err != nil {
if errors.Is(err, io.EOF) { return }
diff --git a/xmpp/session.go b/xmpp/session.go
index 080fb21..2162d66 100644
--- a/xmpp/session.go
+++ b/xmpp/session.go
@@ -17,6 +17,7 @@ type session struct {
transport *tls.Conn
ed encoderDecoder
streams []stream
+ rx chan xml.Token
}
func StartSession(out chan any, jid string, pwd string) chan any {
@@ -26,6 +27,7 @@ func StartSession(out chan any, jid string, pwd string) chan any {
s.in = make(chan any)
s.out = out
s.streams = make([]stream, 0)
+ s.rx = make(chan xml.Token, 0)
go s.run()
@@ -55,6 +57,8 @@ func (s *session) run() {
case SessionShouldDisconnect: return
default: log.Printf("Unknown data '%d'!\n", data)
}
+ case _ = <-s.rx:
+ // TODO route received XML token here
}
}
}