diff options
Diffstat (limited to 'pkg/server/module')
| -rw-r--r-- | pkg/server/module/auth.go | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/pkg/server/module/auth.go b/pkg/server/module/auth.go index d4bc8b3..d269bf6 100644 --- a/pkg/server/module/auth.go +++ b/pkg/server/module/auth.go @@ -104,30 +104,29 @@ func (a *auth) Send(rq, wq queue.Q) error { return queue.Copy(rq, wq) } -func (a *auth) Recv(rq, wq queue.Q) error { - dec := netstring.NewDecoder(rq.Reader()) +func (a *auth) Recv(rq, wq queue.Q) (err error) { + r := rq.Reader() + d := netstring.NewDecoder(r) - if c, err := dec.Decode(); err != nil { + if a.challenge.peer, err = d.Decode(); err != nil { close(a.fail) - return err - } else { - a.challenge.peer = c - close(a.recvChallenge) + return } - if h, err := dec.Decode(); err != nil { + close(a.recvChallenge) + + if a.hash, err = d.Decode(); err != nil { close(a.fail) return err - } else { - a.hash = h - close(a.recvHash) } + close(a.recvHash) + if !a.wait(a.ok) { return nil } - return queue.Copy(rq, wq) + return queue.IoCopy(r, wq.Writer()) } func getAuthSecret(env env.Env) string { |
