fix: fix forward route table

This commit is contained in:
邹颖玖
2021-11-21 13:21:24 +08:00
parent 38f5cc19c3
commit d4c48c8db7
4 changed files with 13 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
language: go language: go
go: go:
- 1.13 - 1.16
before_install: before_install:
install: install:
before_script: before_script:

View File

@@ -33,6 +33,7 @@ func (f *Forward) Serve() error {
break break
} }
logs.Debug("accept new connection: %v", conn.RemoteAddr())
go f.forward(conn) go f.forward(conn)
} }

View File

@@ -31,7 +31,11 @@ func Main() {
// initial next hop dialer // initial next hop dialer
dialerCfg := cfg.NexthopConfig dialerCfg := cfg.NexthopConfig
routeTable := NewRouteTable() 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) f := NewForward(listener, routeTable)

View File

@@ -2,6 +2,7 @@ package forward
import ( import (
"fmt" "fmt"
"github.com/ICKelin/gtun/internal/logs"
"github.com/ICKelin/gtun/transport" "github.com/ICKelin/gtun/transport"
"github.com/ICKelin/gtun/transport/transport_api" "github.com/ICKelin/gtun/transport/transport_api"
"math" "math"
@@ -53,6 +54,7 @@ func (r *RouteTable) Add(scheme, addr, cfg string) error {
r.tableMu.Lock() r.tableMu.Lock()
defer r.tableMu.Unlock() defer r.tableMu.Unlock()
r.table[entryKey] = entry r.table[entryKey] = entry
logs.Debug("add route table: %s %+v", entryKey, entry)
return nil return nil
} }
@@ -77,7 +79,10 @@ func (r *RouteTable) Route() (*RouteEntry, error) {
entry, ok := r.table[r.minRttKey] entry, ok := r.table[r.minRttKey]
if !ok { if !ok {
return nil, errNoRoute for _, e := range r.table {
entry = e
break
}
} }
return entry, nil return entry, nil