add kcp dialer

This commit is contained in:
ginuerzh
2021-12-16 19:03:56 +08:00
parent 5bd3c25c65
commit a52cd9a4c2
19 changed files with 395 additions and 78 deletions

View File

@ -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
}