From 5554484e4c1e9a7142eb1d983723103830443962 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 7 Aug 2017 23:20:42 +0200 Subject: Closer --- b64file/file.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/b64file/file.go b/b64file/file.go index 5cefea7..fd1e001 100644 --- a/b64file/file.go +++ b/b64file/file.go @@ -70,6 +70,10 @@ func (r *Reader) Read(p []byte) (n int, err error) { return r.r.Read(p) } +func (r *Reader) Close() error { + return nil +} + func Decode(r io.Reader, u encoding.BinaryUnmarshaler) (string, []byte, error) { buf := bufio.NewReader(r) @@ -106,18 +110,29 @@ func NewWriter(w io.Writer) (*Writer, error) { return &Writer{w: w}, nil } -func (w *Writer) Write(p []byte) (n int, err error) { +func (w *Writer) writeHeader() error { if !w.wroteHeader { if w.Comment == "" || w.Bytes == nil { - return 0, ErrMissingHeader + return ErrMissingHeader } fmt.Fprintf(w.w, "%s%s\n", untrusted, w.Comment) fmt.Fprintf(w.w, "%s\n", base64.StdEncoding.EncodeToString(w.Bytes)) w.wroteHeader = true } + return nil +} + +func (w *Writer) Write(p []byte) (n int, err error) { + if err := w.writeHeader(); err != nil { + return 0, err + } return w.w.Write(p) } +func (w *Writer) Close() error { + return w.writeHeader() +} + func Encode(w io.Writer, u encoding.BinaryMarshaler, comment string, msg []byte) error { raw, err := u.MarshalBinary() if err != nil { -- cgit v1.2.3