summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2023-09-04 22:47:31 +0200
committerxengineering <me@xengineering.eu>2023-09-04 22:47:31 +0200
commitdc8ff3e7d214c6a390f2aa5c794891b17c418640 (patch)
treea364e58464c4a2a4e829e7f087da52b9170f8bbe
parent93668403433cbfc22fe9c38ebbd6ef67af625ad2 (diff)
downloadlimox-dc8ff3e7d214c6a390f2aa5c794891b17c418640.tar
limox-dc8ff3e7d214c6a390f2aa5c794891b17c418640.tar.zst
limox-dc8ff3e7d214c6a390f2aa5c794891b17c418640.zip
Add xmpp.SessionFrontend.Disconnect()session-struct
This is the first convenience function implemented inside the xmpp module but for the goroutine of the using application.
-rw-r--r--limox.go10
-rw-r--r--xmpp/session.go4
2 files changed, 9 insertions, 5 deletions
diff --git a/limox.go b/limox.go
index 6c83e45..61614e0 100644
--- a/limox.go
+++ b/limox.go
@@ -25,7 +25,7 @@ type Limox struct {
JidEditor widget.Editor
PwdEditor widget.Editor
MainButton widget.Clickable
- frontend xmpp.SessionFrontend
+ sf xmpp.SessionFrontend
State LimoxState
Window *app.Window
Operations op.Ops
@@ -62,7 +62,7 @@ func (l *Limox) run() error {
}
l.draw(e)
}
- case data := <-l.frontend.In:
+ case data := <-l.sf.In:
switch data.(type) {
case xmpp.SessionDisconnect:
l.State = Disconnected
@@ -83,13 +83,13 @@ func (l *Limox) buttonCallback() {
pwd := l.PwdEditor.Text()
setLastJid(jid)
setLastPwd(pwd)
- l.frontend = xmpp.StartSession(jid, pwd)
+ l.sf = xmpp.StartSession(jid, pwd)
l.State = Connecting
case Connecting:
- go func() { l.frontend.Out <- xmpp.SessionShouldDisconnect{} }()
+ l.sf.Disconnect()
l.State = Disconnected
case Connected:
- go func() { l.frontend.Out <- xmpp.SessionShouldDisconnect{} }()
+ l.sf.Disconnect()
l.State = Disconnected
}
}
diff --git a/xmpp/session.go b/xmpp/session.go
index ad90c5e..2c9fbb3 100644
--- a/xmpp/session.go
+++ b/xmpp/session.go
@@ -18,6 +18,10 @@ type SessionFrontend struct {
Out chan any
}
+func (sf *SessionFrontend) Disconnect() {
+ go func() { sf.Out <- SessionShouldDisconnect{} }()
+}
+
type session struct {
jid string
pwd string