mirror of
https://github.com/ICKelin/gtun.git
synced 2025-09-26 19:11:15 +08:00
fix: fix forward route table
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
language: go
|
||||
go:
|
||||
- 1.13
|
||||
- 1.16
|
||||
before_install:
|
||||
install:
|
||||
before_script:
|
||||
|
@@ -33,6 +33,7 @@ func (f *Forward) Serve() error {
|
||||
break
|
||||
}
|
||||
|
||||
logs.Debug("accept new connection: %v", conn.RemoteAddr())
|
||||
go f.forward(conn)
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user