From a18edd22eb72549aefd35db0165111586ff21355 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Wed, 11 Mar 2020 13:15:30 +0300 Subject: auth with pack --- pkg/server/hook/auth.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'pkg/server/hook/auth.go') diff --git a/pkg/server/hook/auth.go b/pkg/server/hook/auth.go index f347b2a..b31855a 100644 --- a/pkg/server/hook/auth.go +++ b/pkg/server/hook/auth.go @@ -7,7 +7,7 @@ import ( "io" "sync" "time" - "tunnel/pkg/netstring" + "tunnel/pkg/pack" "tunnel/pkg/server/env" "tunnel/pkg/server/opts" "tunnel/pkg/server/queue" @@ -83,7 +83,7 @@ func (a *auth) wait(c chan struct{}) error { } func (a *auth) Send(rq, wq queue.Q) error { - e := netstring.NewEncoder(wq.Writer()) + e := pack.NewEncoder(wq.Writer()) if err := a.generateChallenge(); err != nil { return err @@ -91,7 +91,7 @@ func (a *auth) Send(rq, wq queue.Q) error { defer a.deleteChallenge() - e.Encode(a.challenge.self) + e.Lps([]byte(a.challenge.self)) if err := a.wait(a.recvChallenge); err != nil { return err @@ -101,7 +101,7 @@ func (a *auth) Send(rq, wq queue.Q) error { return errDupChallenge } - e.Encode(a.getHash(a.challenge.peer)) + e.Lps([]byte(a.getHash(a.challenge.peer))) if err := a.wait(a.recvHash); err != nil { return err @@ -117,26 +117,30 @@ func (a *auth) Send(rq, wq queue.Q) error { return queue.Copy(rq, wq) } -func (a *auth) Recv(rq, wq queue.Q) (err error) { +func (a *auth) Recv(rq, wq queue.Q) error { r := rq.Reader() - d := netstring.NewDecoder(r) + d := pack.NewDecoder(r) - if a.challenge.peer, err = d.Decode(); err != nil { + if b, err := d.Lps(); err != nil { close(a.fail) - return + return err + } else { + a.challenge.peer = string(b) } close(a.recvChallenge) - if a.hash, err = d.Decode(); err != nil { + if b, err := d.Lps(); err != nil { close(a.fail) return err + } else { + a.hash = string(b) } close(a.recvHash) - if err = a.wait(a.ok); err != nil { - return + if err := a.wait(a.ok); err != nil { + return err } a.tmr.Stop() -- cgit v1.2.3-70-g09d2