add kcp dialer
This commit is contained in:
@ -32,8 +32,10 @@ func (c *Chain) GetRouteFor(network, address string) (r *Route) {
|
||||
}
|
||||
|
||||
if node.transport.IsMultiplex() {
|
||||
tr := node.transport.Copy().WithRoute(r)
|
||||
node = node.Copy().WithTransport(tr)
|
||||
tr := node.transport.Copy().
|
||||
WithRoute(r)
|
||||
node = node.Copy().
|
||||
WithTransport(tr)
|
||||
r = &Route{}
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@ import (
|
||||
)
|
||||
|
||||
type Transport struct {
|
||||
addr string
|
||||
route *Route
|
||||
dialer dialer.Dialer
|
||||
connector connector.Connector
|
||||
@ -51,7 +52,8 @@ func (tr *Transport) dialOptions() []dialer.DialOption {
|
||||
func (tr *Transport) Handshake(ctx context.Context, conn net.Conn) (net.Conn, error) {
|
||||
var err error
|
||||
if hs, ok := tr.dialer.(dialer.Handshaker); ok {
|
||||
conn, err = hs.Handshake(ctx, conn)
|
||||
conn, err = hs.Handshake(ctx, conn,
|
||||
dialer.AddrHandshakeOption(tr.addr))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -84,3 +86,8 @@ func (tr *Transport) WithRoute(r *Route) *Transport {
|
||||
tr.route = r
|
||||
return tr
|
||||
}
|
||||
|
||||
func (tr *Transport) WithAddr(addr string) *Transport {
|
||||
tr.addr = addr
|
||||
return tr
|
||||
}
|
||||
|
Reference in New Issue
Block a user