From 191acba6587b766770cc2bf1d3ff2bc699cb668d Mon Sep 17 00:00:00 2001 From: xengineering Date: Mon, 22 May 2023 22:00:22 +0200 Subject: Rename xmpp/xmpp.go -> xmpp/conn.go --- xmpp/conn.go | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ xmpp/xmpp.go | 96 ------------------------------------------------------------ 2 files changed, 96 insertions(+), 96 deletions(-) create mode 100644 xmpp/conn.go delete mode 100644 xmpp/xmpp.go diff --git a/xmpp/conn.go b/xmpp/conn.go new file mode 100644 index 0000000..f017889 --- /dev/null +++ b/xmpp/conn.go @@ -0,0 +1,96 @@ +package xmpp + +import ( + "crypto/tls" + "crypto/x509" + "log" +) + +type Event uint8 + +const ( + DisconnectEvent Event = iota + ConnectEvent + ShouldDisconnectEvent +) + +type Conn struct { + ch chan Event + jid, pwd string + tcp *tls.Conn + enc encoder +} + +func NewConn(ch chan Event, jid string, pwd string) *Conn { + c := Conn{ + ch: ch, + jid: jid, + pwd: pwd} + + return &c +} + +func (c *Conn) Connect() error { + var err error + + domain := domainpart(c.jid) + + roots, err := x509.SystemCertPool() + if err != nil { + log.Println(err) + return err + } + + c.tcp, err = tls.Dial("tcp", domain+":"+"5223", &tls.Config{RootCAs: roots}) + if err != nil { + log.Println(err) + return err + } + + return nil +} + +func (c *Conn) Disconnect() { + c.tcp.Close() +} + +func (c *Conn) Run() { + err := c.Connect() + if err != nil { + return + } + defer c.Disconnect() + + decoder := newDecoder(c.tcp) + go decoder.run() + defer decoder.stop() + + c.enc = newEncoder(c.tcp) + defer c.enc.Close() + + tr := newTokenRouter() + + end := sendStreamStart(&c.enc, c.jid) + defer sendStreamEnd(&c.enc, end) + + c.ch <- ConnectEvent + defer func() { c.ch <- DisconnectEvent }() + + for { + select { + case ev := <-c.ch: + switch ev { + case ShouldDisconnectEvent: + return + default: + log.Printf("Unknown Event '%d'!\n", ev) + } + case token := <-decoder.data: + err = tr.route(token, c) + if err != nil { + log.Println(err) + return + } + } + } +} diff --git a/xmpp/xmpp.go b/xmpp/xmpp.go deleted file mode 100644 index f017889..0000000 --- a/xmpp/xmpp.go +++ /dev/null @@ -1,96 +0,0 @@ -package xmpp - -import ( - "crypto/tls" - "crypto/x509" - "log" -) - -type Event uint8 - -const ( - DisconnectEvent Event = iota - ConnectEvent - ShouldDisconnectEvent -) - -type Conn struct { - ch chan Event - jid, pwd string - tcp *tls.Conn - enc encoder -} - -func NewConn(ch chan Event, jid string, pwd string) *Conn { - c := Conn{ - ch: ch, - jid: jid, - pwd: pwd} - - return &c -} - -func (c *Conn) Connect() error { - var err error - - domain := domainpart(c.jid) - - roots, err := x509.SystemCertPool() - if err != nil { - log.Println(err) - return err - } - - c.tcp, err = tls.Dial("tcp", domain+":"+"5223", &tls.Config{RootCAs: roots}) - if err != nil { - log.Println(err) - return err - } - - return nil -} - -func (c *Conn) Disconnect() { - c.tcp.Close() -} - -func (c *Conn) Run() { - err := c.Connect() - if err != nil { - return - } - defer c.Disconnect() - - decoder := newDecoder(c.tcp) - go decoder.run() - defer decoder.stop() - - c.enc = newEncoder(c.tcp) - defer c.enc.Close() - - tr := newTokenRouter() - - end := sendStreamStart(&c.enc, c.jid) - defer sendStreamEnd(&c.enc, end) - - c.ch <- ConnectEvent - defer func() { c.ch <- DisconnectEvent }() - - for { - select { - case ev := <-c.ch: - switch ev { - case ShouldDisconnectEvent: - return - default: - log.Printf("Unknown Event '%d'!\n", ev) - } - case token := <-decoder.data: - err = tr.route(token, c) - if err != nil { - log.Println(err) - return - } - } - } -} -- cgit v1.2.3-70-g09d2