summaryrefslogtreecommitdiff
path: root/xmpp/encoder_decoder.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2023-07-03 21:10:51 +0200
committerxengineering <me@xengineering.eu>2023-07-03 21:10:51 +0200
commitcf520b079743ec95d085a439d00b841c253c564a (patch)
tree9f1da7d920bca3177763f30f8716be69a677f716 /xmpp/encoder_decoder.go
parent3cac662ef99366dea7bec383ba6704b3a5292d93 (diff)
downloadlimox-cf520b079743ec95d085a439d00b841c253c564a.tar
limox-cf520b079743ec95d085a439d00b841c253c564a.tar.zst
limox-cf520b079743ec95d085a439d00b841c253c564a.zip
Rename encoder_decoder.go to xml.go
This is way shorter and serves the same purpose: It reflects the responsibility of encoding and decoding XML. The encoderDecoder struct should be removed soon.
Diffstat (limited to 'xmpp/encoder_decoder.go')
-rw-r--r--xmpp/encoder_decoder.go80
1 files changed, 0 insertions, 80 deletions
diff --git a/xmpp/encoder_decoder.go b/xmpp/encoder_decoder.go
deleted file mode 100644
index b0ea77b..0000000
--- a/xmpp/encoder_decoder.go
+++ /dev/null
@@ -1,80 +0,0 @@
-package xmpp
-
-import (
- "encoding/xml"
- "errors"
- "io"
- "log"
-)
-
-type encoderDecoder struct {
- session *session
- tx *xml.Encoder
- rx *xml.Decoder
- terminator chan bool
-}
-
-func newEncoderDecoder(s *session) encoderDecoder {
- ed := encoderDecoder{}
-
- ed.session = s
-
- lw := logger{"[TX] "}
- w := io.MultiWriter(s.transport, lw)
- ed.tx = xml.NewEncoder(w)
- ed.tx.Indent("", "")
-
- lr := logger{"[RX] "}
- r := io.TeeReader(s.transport, lr)
- ed.rx = xml.NewDecoder(r)
-
- return ed
-}
-
-func (ed *encoderDecoder) encodeToken(t xml.Token) error {
- var err error
- defer func() {
- if err != nil {
- log.Println(err)
- }
- }()
-
- err = ed.tx.EncodeToken(t)
- if err != nil {
- return err
- }
- err = ed.tx.Flush()
- if err != nil {
- return err
- }
-
- return nil
-}
-
-func (ed *encoderDecoder) run() {
- for {
- select {
- case <-ed.terminator:
- return
- default:
- t, err := ed.rx.Token()
- if t != nil && err == nil {
- switch t.(type) {
- case xml.ProcInst:
- case xml.Directive:
- case xml.Comment:
- default:
- c := xml.CopyToken(t)
- ed.session.rx <- c
- }
- }
- if err != nil {
- if errors.Is(err, io.EOF) {
- return
- }
- log.Println(err) // FIXME terminate session on error
- return
- }
- }
- }
-}