summaryrefslogtreecommitdiff
path: root/pkg/server/module/auth.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/module/auth.go')
-rw-r--r--pkg/server/module/auth.go23
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 {