diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2022-01-21 23:50:54 +0100 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2022-03-18 22:07:58 +0100 |
commit | 75ce7ab5b8d2657822f28812826ecccfa08e88a1 (patch) | |
tree | 219ec7566eb28f54ad585fb34c36515bd1169af9 /tunnel/tools/libwg-go | |
parent | 82d36935e0381b6f1e71066ae09cdccedf51758c (diff) |
WIP current changes
Diffstat (limited to 'tunnel/tools/libwg-go')
-rw-r--r-- | tunnel/tools/libwg-go/http-proxy.go | 3 | ||||
-rw-r--r-- | tunnel/tools/libwg-go/nat-tun.go | 26 | ||||
-rw-r--r-- | tunnel/tools/libwg-go/service.go | 5 |
3 files changed, 27 insertions, 7 deletions
diff --git a/tunnel/tools/libwg-go/http-proxy.go b/tunnel/tools/libwg-go/http-proxy.go index e9da32ab..3c0bef47 100644 --- a/tunnel/tools/libwg-go/http-proxy.go +++ b/tunnel/tools/libwg-go/http-proxy.go @@ -422,7 +422,8 @@ func (p *HttpProxy) Start() (listen_port uint16, err error) { defaultProxy := goproxy.NewProxyHttpServer() defaultProxy.Verbose = true - listener, err := net.Listen("tcp", "localhost:") +// listener, err := net.Listen("tcp", "localhost:") + listener, err := net.Listen("tcp", "169.254.0.2:") if err != nil { return } diff --git a/tunnel/tools/libwg-go/nat-tun.go b/tunnel/tools/libwg-go/nat-tun.go index e9a4537d..abb3f9a5 100644 --- a/tunnel/tools/libwg-go/nat-tun.go +++ b/tunnel/tools/libwg-go/nat-tun.go @@ -50,17 +50,35 @@ func NewNatTun(t tun.Device) (dev tun.Device, err error) { return } - proxyAddr, err := netip.ParseAddr("10.49.124.115") - if err != nil { - return + proxyPort := 0 + var proxyAddr netip.Addr + var srcAddr netip.Addr + if service != nil && service.http_proxy != nil { + srcAddr, err = netip.ParseAddr("169.254.0.1") + if err != nil { + return + } + + proxyPort = int(service.http_proxy.addrPort.Port()) + proxyAddr, err = netip.ParseAddr("169.254.0.2") + if err != nil { + return + } + } else { + proxyPort = 8888 + proxyAddr, err = netip.ParseAddr("10.49.124.115") + if err != nil { + return + } } dev = &natTun{ tun: t, intAddr: intAddr, extAddr: extAddr, + srcAddr: srcAddr, proxyAddr: proxyAddr, - proxyPort: 8888, + proxyPort: proxyPort, connections: make(map[connection]connection), } diff --git a/tunnel/tools/libwg-go/service.go b/tunnel/tools/libwg-go/service.go index 06b3c86a..c5303876 100644 --- a/tunnel/tools/libwg-go/service.go +++ b/tunnel/tools/libwg-go/service.go @@ -30,7 +30,7 @@ type LibwgServiceImpl struct { uidResponse chan string } -var _ gen.LibwgServer = (*LibwgServiceImpl)(nil) +var service *LibwgServiceImpl var server *grpc.Server func NewLibwgService(logger *device.Logger) gen.LibwgServer { @@ -60,7 +60,7 @@ func StartGrpc(sock_path string, logger *device.Logger) (int, string) { } server = grpc.NewServer() - service := NewLibwgService(logger) + service = NewLibwgService(logger).(*LibwgServiceImpl) gen.RegisterLibwgServer(server, service) @@ -86,6 +86,7 @@ func (e *LibwgServiceImpl) StopGrpc(ctx context.Context, req *emptypb.Empty) (*e if server != nil { server.Stop() server = nil + service = nil } r := &emptypb.Empty{ |