1752b29df9
Implement UDP tunneling over HTTP/3 using HTTP Datagrams (RFC 9297): - Add masque handler for server-side CONNECT-UDP - Add masque connector and h3-masque dialer for client-side - Add enableDatagrams option to HTTP/3 listener - Add shared utilities for datagram connections and path parsing Resource management and connection caching: - Add deferred stream cleanup in connector on error paths - Add IsClosed() and Close() methods to Client for proper session management - Clean up stale cached clients in dialer before reuse - Close underlying stream when DatagramConn is closed - Move RequestStream opening from connector to dialer to enable dead connection detection and cache invalidation (follows QUIC dialer pattern)
18 lines
342 B
Go
18 lines
342 B
Go
package masque
|
|
|
|
import (
|
|
"time"
|
|
|
|
mdata "github.com/go-gost/core/metadata"
|
|
mdutil "github.com/go-gost/x/metadata/util"
|
|
)
|
|
|
|
type metadata struct {
|
|
connectTimeout time.Duration
|
|
}
|
|
|
|
func (c *masqueConnector) parseMetadata(md mdata.Metadata) (err error) {
|
|
c.md.connectTimeout = mdutil.GetDuration(md, "timeout", "connectTimeout")
|
|
return nil
|
|
}
|