MCPcopy
hub / github.com/coder/websocket / read

Method read

netconn.go:156–189  ·  view source on GitHub ↗
(p []byte)

Source from the content-addressed store, hash-verified

154}
155
156func (nc *netConn) read(p []byte) (int, error) {
157 if nc.readExpired.Load() == 1 {
158 return 0, fmt.Errorf("failed to read: %w", context.DeadlineExceeded)
159 }
160
161 if nc.readEOFed {
162 return 0, io.EOF
163 }
164
165 if nc.reader == nil {
166 typ, r, err := nc.c.Reader(nc.readCtx)
167 if err != nil {
168 switch CloseStatus(err) {
169 case StatusNormalClosure, StatusGoingAway:
170 nc.readEOFed = true
171 return 0, io.EOF
172 }
173 return 0, err
174 }
175 if typ != nc.msgType {
176 err := fmt.Errorf("unexpected frame type read (expected %v): %v", nc.msgType, typ)
177 nc.c.Close(StatusUnsupportedData, err.Error())
178 return 0, err
179 }
180 nc.reader = r
181 }
182
183 n, err := nc.reader.Read(p)
184 if err == io.EOF {
185 nc.reader = nil
186 err = nil
187 }
188 return n, err
189}
190
191type websocketAddr struct{}
192

Callers 1

ReadMethod · 0.95

Calls 5

CloseStatusFunction · 0.70
ReaderMethod · 0.45
CloseMethod · 0.45
ErrorMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected