package xmpp import ( "encoding/xml" "log" "os" ) type encoderDecoder struct{ session *session ct *xml.Encoder // client transport encoder cl *xml.Encoder // client log encoder } func newEncoderDecoder(s *session) encoderDecoder { ed := encoderDecoder{} ed.session = s ed.ct = xml.NewEncoder(s.transport) ed.ct.Indent("", " ") ed.cl = xml.NewEncoder(os.Stdout) ed.cl.Indent("C: ", " ") return ed } func (ed *encoderDecoder) encodeToken(t xml.Token) error { var err error defer func() { if err != nil { log.Println(err) } }() err = ed.ct.EncodeToken(t) if err != nil { return err } err = ed.ct.Flush() if err != nil { return err } err = ed.cl.EncodeToken(t) if err != nil { return err } err = ed.cl.Flush() if err != nil { return err } return nil }