fix http2 & tun/tap conn

This commit is contained in:
ginuerzh 2022-03-15 15:57:37 +08:00
parent 073ad80ce4
commit 506142fd0b
4 changed files with 15 additions and 13 deletions

View File

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

View File

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

View File

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

View File

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