MCPcopy Create free account
hub / github.com/XTLS/REALITY / Read

Method Read

record_detect.go:117–135  ·  view source on GitHub ↗
(b []byte)

Source from the content-addressed store, hash-verified

115}
116
117func (c *PostHandshakeRecordDetectConn) Read(b []byte) (n int, err error) {
118 if !c.CcsSent {
119 return c.Conn.Read(b)
120 }
121 c.Conn.SetReadDeadline(time.Now().Add(5 * time.Second))
122 data, _ := io.ReadAll(c.Conn)
123 var postHandshakeRecordsLens []int
124 for {
125 if len(data) >= 5 && bytes.Equal(data[:3], []byte{23, 3, 3}) {
126 length := int(binary.BigEndian.Uint16(data[3:5])) + 5
127 postHandshakeRecordsLens = append(postHandshakeRecordsLens, length)
128 data = data[length:]
129 } else {
130 break
131 }
132 }
133 GlobalPostHandshakeRecordsLens.Store(c.Key, postHandshakeRecordsLens)
134 return 0, io.EOF
135}
136
137var CCSMsg = []byte{0x14, 0x3, 0x3, 0x0, 0x1, 0x1}
138

Callers 1

WriteMethod · 0.45

Calls 1

SetReadDeadlineMethod · 0.45

Tested by

no test coverage detected