From de868930e2301b68a50bde088dd83dc575b72c54 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Sun, 23 Feb 2020 05:20:04 +0300 Subject: prepare to auth --- pkg/server/server.go | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) (limited to 'pkg/server/server.go') diff --git a/pkg/server/server.go b/pkg/server/server.go index ce910f3..d380fb4 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -3,6 +3,7 @@ package server import ( "tunnel/pkg/config" "tunnel/pkg/netstring" + "tunnel/pkg/server/env" "strings" "errors" "bytes" @@ -25,7 +26,7 @@ type Server struct { done chan struct{} tunnels automap - env env + env env.Env nextCid int } @@ -58,11 +59,11 @@ type requestError string var errNotImplemented = errors.New("not implemented") func (c *client) String() string { - return fmt.Sprintf("client(%d)", c.id) + return fmt.Sprintf("client:%d", c.id) } func (r *request) String() string { - return fmt.Sprintf("request(%d)", r.id) + return fmt.Sprintf("request:%d", r.id) } func (r *request) Print(v ...interface{}) { @@ -132,6 +133,7 @@ func New() (*Server, error) { } s := &Server{ + env: env.New(), listen: listen, since: time.Now(), done: make(chan struct{}), @@ -248,33 +250,11 @@ func (r *request) decode(query string) []string { } func (r *request) eval(args []string) []string { - repl := func (v string) string { - if v, ok := r.c.s.env.get(v[1:]); ok { - return v - } - - r.Fatal("unbound variable ", v) - - return v - } - - eval := func (s string) string { - var t string - - for ;; s = t { - t = varTokenRe.ReplaceAllStringFunc(s, repl) - - if s == t { - return s - } - } - } - for n, s := range args { if strings.HasPrefix(s, "^") { args[n] = s[1:] } else { - args[n] = eval(s) + args[n] = r.c.s.env.Eval(s) } } -- cgit v1.2.3-70-g09d2