aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-07 23:20:42 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-07 23:20:42 +0200
commit5554484e4c1e9a7142eb1d983723103830443962 (patch)
tree409c12a193d1226f3670b43bcff60afd9ccaa63a
parenta52b51a95bda7498ee144b48e1e26b0f5ca3aeed (diff)
Closer
-rw-r--r--b64file/file.go19
1 files 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 {