MCPcopy
hub / github.com/MetaCubeX/mihomo / writeHeaderContext

Method writeHeaderContext

adapter/outbound/snell.go:63–80  ·  view source on GitHub ↗
(ctx context.Context, c net.Conn, metadata *C.Metadata)

Source from the content-addressed store, hash-verified

61}
62
63func (s *Snell) writeHeaderContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (err error) {
64 if ctx.Done() != nil {
65 done := N.SetupContextForConn(ctx, c)
66 defer done(&err)
67 }
68
69 if metadata.NetWork == C.UDP {
70 err = snell.WriteUDPHeader(c, s.version)
71 if err == nil && s.version >= snell.Version4 {
72 if sc, ok := c.(*snell.Snell); ok {
73 err = sc.ReadReply()
74 }
75 }
76 return
77 }
78 err = snell.WriteHeaderWithReuse(c, metadata.String(), uint(metadata.DstPort), s.version, s.reuse)
79 return
80}
81
82// DialContext implements C.ProxyAdapter
83func (s *Snell) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error) {

Callers 2

StreamConnContextMethod · 0.95
DialContextMethod · 0.95

Calls 5

WriteUDPHeaderFunction · 0.92
WriteHeaderWithReuseFunction · 0.92
DoneMethod · 0.80
ReadReplyMethod · 0.80
StringMethod · 0.65

Tested by

no test coverage detected