diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-25 18:56:21 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-25 18:56:21 +0300 |
| commit | bbcb4314917cc00b1931deeb73b1728f8817a6b2 (patch) | |
| tree | 9b100a2c56d26a4af31a6976c79abc219e837e01 /pkg/server/queue/queue.go | |
| parent | 35cb8cf039e3bab81d15d586ea8bb6f571d841fd (diff) | |
fix auth module data losing
Diffstat (limited to 'pkg/server/queue/queue.go')
| -rw-r--r-- | pkg/server/queue/queue.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/pkg/server/queue/queue.go b/pkg/server/queue/queue.go index 979fa33..4b69e3a 100644 --- a/pkg/server/queue/queue.go +++ b/pkg/server/queue/queue.go @@ -37,6 +37,30 @@ func (r *reader) Read(p []byte) (int, error) { return n, nil } +func (r *reader) WriteTo(w io.Writer) (int64, error) { + if writer, ok := w.(*writer); ok { + if len(r.b) > 0 { + writer.q <- r.b + } + + return 0, Copy(r.q, writer.q) + } + + if len(r.b) > 0 { + if _, err := w.Write(r.b); err != nil { + return 0, err + } + } + + for b := range r.q { + if _, err := w.Write(b); err != nil { + return 0, err + } + } + + return 0, nil +} + func (q Q) Writer() io.Writer { return &writer{q: q} } |
