summaryrefslogtreecommitdiff
path: root/xmpp/session.go
diff options
context:
space:
mode:
Diffstat (limited to 'xmpp/session.go')
-rw-r--r--xmpp/session.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/xmpp/session.go b/xmpp/session.go
index 4dfd76f..ad90c5e 100644
--- a/xmpp/session.go
+++ b/xmpp/session.go
@@ -13,29 +13,34 @@ type SessionConnect struct{}
type SessionDisconnect struct{}
type SessionShouldDisconnect struct{}
+type SessionFrontend struct {
+ In chan any
+ Out chan any
+}
+
type session struct {
jid string
pwd string
in chan any
- out chan<- any
+ out chan any
transport *tls.Conn
tx *xml.Encoder
rx chan any
resourceReq string
}
-func StartSession(out chan<- any, jid string, pwd string) (in chan<- any) {
+func StartSession(jid string, pwd string) (SessionFrontend) {
s := session{}
s.jid = jid
s.pwd = pwd
s.in = make(chan any)
- s.out = out
+ s.out = make(chan any)
s.rx = make(chan any, 0)
go s.run()
- return s.in
+ return SessionFrontend{s.out, s.in}
}
func (s *session) run() {