summaryrefslogtreecommitdiffhomepage
path: root/tunnel/tools/libwg-go
diff options
context:
space:
mode:
authorMikael Magnusson <mikma@users.sourceforge.net>2022-01-21 23:50:54 +0100
committerMikael Magnusson <mikma@users.sourceforge.net>2022-03-18 22:07:58 +0100
commit75ce7ab5b8d2657822f28812826ecccfa08e88a1 (patch)
tree219ec7566eb28f54ad585fb34c36515bd1169af9 /tunnel/tools/libwg-go
parent82d36935e0381b6f1e71066ae09cdccedf51758c (diff)
WIP current changes
Diffstat (limited to 'tunnel/tools/libwg-go')
-rw-r--r--tunnel/tools/libwg-go/http-proxy.go3
-rw-r--r--tunnel/tools/libwg-go/nat-tun.go26
-rw-r--r--tunnel/tools/libwg-go/service.go5
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{