From 506142fd0b72994814c7e05396b7ece6d392a5f5 Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Tue, 15 Mar 2022 15:57:37 +0800 Subject: [PATCH] fix http2 & tun/tap conn --- dialer/http2/conn.go | 14 ++++---------- dialer/http2/dialer.go | 4 +--- listener/tap/conn.go | 5 +++++ listener/tun/conn.go | 5 +++++ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/dialer/http2/conn.go b/dialer/http2/conn.go index 12a6f45..5399b27 100644 --- a/dialer/http2/conn.go +++ b/dialer/http2/conn.go @@ -13,6 +13,7 @@ type conn struct { localAddr net.Addr remoteAddr net.Addr onClose func() + md mdata.Metadata } func (c *conn) Close() error { @@ -50,14 +51,7 @@ func (c *conn) SetWriteDeadline(t time.Time) error { return &net.OpError{Op: "set", Net: "nop", Source: nil, Addr: nil, Err: errors.New("deadline not supported")} } -type metadataConn struct { - net.Conn - md mdata.Metadata -} - -func withMetadata(md mdata.Metadata, c net.Conn) net.Conn { - return &metadataConn{ - Conn: c, - md: md, - } +// GetMetadata implements metadata.Metadatable interface. +func (c *conn) GetMetadata() mdata.Metadata { + return c.md } diff --git a/dialer/http2/dialer.go b/dialer/http2/dialer.go index 46bc0ec..c682584 100644 --- a/dialer/http2/dialer.go +++ b/dialer/http2/dialer.go @@ -98,10 +98,8 @@ func (d *http2Dialer) Dial(ctx context.Context, address string, opts ...dialer.D defer d.clientMutex.Unlock() delete(d.clients, address) }, + md: md.MapMetadata{"client": client}, } - c = withMetadata(md.MapMetadata{ - "client": client, - }, c) return c, nil } diff --git a/listener/tap/conn.go b/listener/tap/conn.go index ec9a28a..7eb78ab 100644 --- a/listener/tap/conn.go +++ b/listener/tap/conn.go @@ -52,6 +52,11 @@ type metadataConn struct { md mdata.Metadata } +// GetMetadata implements metadata.Metadatable interface. +func (c *metadataConn) GetMetadata() mdata.Metadata { + return c.md +} + func withMetadata(md mdata.Metadata, c net.Conn) net.Conn { return &metadataConn{ Conn: c, diff --git a/listener/tun/conn.go b/listener/tun/conn.go index 0292dc8..756e63a 100644 --- a/listener/tun/conn.go +++ b/listener/tun/conn.go @@ -52,6 +52,11 @@ type metadataConn struct { md mdata.Metadata } +// GetMetadata implements metadata.Metadatable interface. +func (c *metadataConn) GetMetadata() mdata.Metadata { + return c.md +} + func withMetadata(md mdata.Metadata, c net.Conn) net.Conn { return &metadataConn{ Conn: c,