diff --git a/.travis.yml b/.travis.yml index 3224132..353fd95 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: go go: - - 1.13 + - 1.16 before_install: install: before_script: diff --git a/forward/forward.go b/forward/forward.go index 5ad825d..bc8e2fc 100644 --- a/forward/forward.go +++ b/forward/forward.go @@ -33,6 +33,7 @@ func (f *Forward) Serve() error { break } + logs.Debug("accept new connection: %v", conn.RemoteAddr()) go f.forward(conn) } diff --git a/forward/main.go b/forward/main.go index 93f3c06..684592c 100644 --- a/forward/main.go +++ b/forward/main.go @@ -31,7 +31,11 @@ func Main() { // initial next hop dialer dialerCfg := cfg.NexthopConfig routeTable := NewRouteTable() - routeTable.Add(dialerCfg.Scheme, dialerCfg.NexthopAddr, dialerCfg.RawConfig) + err = routeTable.Add(dialerCfg.Scheme, dialerCfg.NexthopAddr, dialerCfg.RawConfig) + if err != nil { + logs.Error("add route table fail: %v", err) + return + } f := NewForward(listener, routeTable) diff --git a/forward/route.go b/forward/route.go index 9f167f4..4570304 100644 --- a/forward/route.go +++ b/forward/route.go @@ -2,6 +2,7 @@ package forward import ( "fmt" + "github.com/ICKelin/gtun/internal/logs" "github.com/ICKelin/gtun/transport" "github.com/ICKelin/gtun/transport/transport_api" "math" @@ -53,6 +54,7 @@ func (r *RouteTable) Add(scheme, addr, cfg string) error { r.tableMu.Lock() defer r.tableMu.Unlock() r.table[entryKey] = entry + logs.Debug("add route table: %s %+v", entryKey, entry) return nil } @@ -77,7 +79,10 @@ func (r *RouteTable) Route() (*RouteEntry, error) { entry, ok := r.table[r.minRttKey] if !ok { - return nil, errNoRoute + for _, e := range r.table { + entry = e + break + } } return entry, nil