mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-25 09:48:32 +02:00
Cherry-Pick 25ceb512b4
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"strings"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/rs/zerolog/log"
|
||||
@@ -30,7 +31,7 @@ func NewStreamRoute(base *Route) (types.Route, gperr.Error) {
|
||||
return &StreamRoute{
|
||||
Route: base,
|
||||
l: log.With().
|
||||
Stringer("type", base.Scheme).
|
||||
Str("type", base.LisURL.Scheme).
|
||||
Str("name", base.Name()).
|
||||
Logger(),
|
||||
}, nil
|
||||
@@ -99,7 +100,9 @@ func (r *StreamRoute) LocalAddr() net.Addr {
|
||||
|
||||
func (r *StreamRoute) initStream() (nettypes.Stream, error) {
|
||||
lurl, rurl := r.LisURL, r.ProxyURL
|
||||
if lurl != nil && lurl.Scheme != rurl.Scheme {
|
||||
// lurl scheme is either tcp4/tcp6 -> tcp, udp4/udp6 -> udp
|
||||
// rurl scheme does not have the trailing 4/6
|
||||
if strings.TrimRight(lurl.Scheme, "46") != rurl.Scheme {
|
||||
return nil, fmt.Errorf("incoherent scheme is not yet supported: %s != %s", lurl.Scheme, rurl.Scheme)
|
||||
}
|
||||
|
||||
@@ -110,9 +113,9 @@ func (r *StreamRoute) initStream() (nettypes.Stream, error) {
|
||||
|
||||
switch rurl.Scheme {
|
||||
case "tcp":
|
||||
return stream.NewTCPTCPStream(laddr, rurl.Host, r.GetAgent())
|
||||
return stream.NewTCPTCPStream(r.LisURL.Scheme, laddr, rurl.Host, r.GetAgent())
|
||||
case "udp":
|
||||
return stream.NewUDPUDPStream(laddr, rurl.Host, r.GetAgent())
|
||||
return stream.NewUDPUDPStream(r.LisURL.Scheme, laddr, rurl.Host, r.GetAgent())
|
||||
}
|
||||
return nil, fmt.Errorf("unknown scheme: %s", rurl.Scheme)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user