changeset 198:c20e86a3c073

Made serialisation of sessions symmetrical.
author Sascha L. Teichmann <teichmann@intevation.de>
date Fri, 20 Jul 2018 22:57:38 +0200
parents e85413e5befa
children ddc7ef95c247
files auth/connection.go
diffstat 1 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/auth/connection.go	Fri Jul 20 22:50:59 2018 +0200
+++ b/auth/connection.go	Fri Jul 20 22:57:38 2018 +0200
@@ -1,7 +1,6 @@
 package auth
 
 import (
-	"bytes"
 	"database/sql"
 	"encoding/binary"
 	"errors"
@@ -50,12 +49,15 @@
 	mu sync.Mutex
 }
 
-func (c *Connection) serialize() []byte {
-	var buf bytes.Buffer
-	c.session.serialize(&buf)
-	access, _ := c.last().MarshalText()
-	binary.Write(&buf, binary.BigEndian, string(access))
-	return buf.Bytes()
+func (c *Connection) serialize(w io.Writer) error {
+	if err := c.session.serialize(w); err != nil {
+		return err
+	}
+	access, err := c.last().MarshalText()
+	if err == nil {
+		err = binary.Write(w, binary.BigEndian, string(access))
+	}
+	return err
 }
 
 func (c *Connection) deserialize(r io.Reader) error {