Skip to content

Commit

Permalink
fix: removing multiplex again
Browse files Browse the repository at this point in the history
  • Loading branch information
WendelHime committed Jul 4, 2024
1 parent 1a7c923 commit ee9bad7
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 24 deletions.
22 changes: 8 additions & 14 deletions http_proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -969,21 +969,15 @@ func (p *Proxy) listenAlgeneva(baseListen func(string) (net.Listener, error)) li

// listenWATER start a WATER listener and return it
// Currently water doesn't support customized TCP connections and we need to listen and receive requests directly from the WATER listener
func (p *Proxy) listenWATER(baseListen func(string) (net.Listener, error)) listenerBuilderFN {
return func(addr string) (net.Listener, error) {
ctx := context.Background()
base, err := baseListen(addr)
if err != nil {
return nil, err
}
waterListener, err := water.NewWATERListener(ctx, p.WaterTransport, base, p.WaterWASM)
if err != nil {
return nil, err
}

log.Debugf("Listening for water at %v", waterListener.Addr())
return waterListener, nil
func (p *Proxy) listenWATER(addr string) (net.Listener, error) {
ctx := context.Background()
waterListener, err := water.NewWATERListener(ctx, p.WaterTransport, addr, p.WaterWASM)
if err != nil {
return nil, err
}

log.Debugf("Listening for water at %v", waterListener.Addr())
return waterListener, nil
}

func (p *Proxy) setupPacketForward() error {
Expand Down
2 changes: 1 addition & 1 deletion protoListeners.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ func getProtoListenersArgs(p *Proxy) []protoListenerArgs {
p.ShadowsocksMultiplexAddr,
p.wrapMultiplexing(p.listenShadowsocks),
},
{"water", p.WaterAddr, p.wrapMultiplexing(p.listenWATER(p.listenTCP))},
{"water", p.WaterAddr, p.listenWATER},
}
}
8 changes: 4 additions & 4 deletions water/listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ var log = golog.LoggerFor("water")

// NewWATERListener creates a WATER listener
// Currently water doesn't support customized TCP connections and we need to listen and receive requests directly from the WATER listener
func NewWATERListener(ctx context.Context, transport string, baseListener net.Listener, wasm string) (net.Listener, error) {
func NewWATERListener(ctx context.Context, transport string, address, wasm string) (net.Listener, error) {
decodedWASM, err := base64.StdEncoding.DecodeString(wasm)
if err != nil {
log.Errorf("failed to decode WASM base64: %v", err)
Expand All @@ -24,11 +24,11 @@ func NewWATERListener(ctx context.Context, transport string, baseListener net.Li

cfg := &water.Config{
TransportModuleBin: decodedWASM,
NetworkListener: baseListener,
OverrideLogger: slog.New(newLogHandler(log, transport)),
//NetworkListener: baseListener,
OverrideLogger: slog.New(newLogHandler(log, transport)),
}

waterListener, err := water.NewListenerWithContext(ctx, cfg)
waterListener, err := cfg.ListenContext(ctx, "tcp", address)
if err != nil {
log.Errorf("error creating water listener: %v", err)
return nil, err
Expand Down
7 changes: 2 additions & 5 deletions water/listener_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,7 @@ func TestWATERListener(t *testing.T) {
OverrideLogger: slog.New(newLogHandler(log, transport)),
}

l0, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: 0})
require.Nil(t, err, "ListenTCP failed: %v", err)

ll, err := NewWATERListener(ctx, transport, l0, b64WASM)
ll, err := NewWATERListener(ctx, transport, "127.0.0.1:3000", b64WASM)
require.Nil(t, err)

messageRequest := "hello"
Expand Down Expand Up @@ -92,7 +89,7 @@ func TestWATERListener(t *testing.T) {
dialer, err := water.NewDialerWithContext(ctx, cfg)
require.Nil(t, err)

conn, err := dialer.DialContext(ctx, "tcp", l0.Addr().String())
conn, err := dialer.DialContext(ctx, "tcp", ll.Addr().String())
require.Nil(t, err)
defer conn.Close()

Expand Down

0 comments on commit ee9bad7

Please sign in to comment.