MCPcopy Create free account
hub / github.com/LagrangeDev/LagrangeGo / parseHighwayPacket

Function parseHighwayPacket

client/highway.go:121–138  ·  view source on GitHub ↗
(data io.Reader)

Source from the content-addressed store, hash-verified

119}
120
121func parseHighwayPacket(data io.Reader) (head *highway.RespDataHighwayHead, body *binary.Reader, err error) {
122 reader := binary.ParseReader(data)
123 if reader.ReadBytesNoCopy(1)[0] != 0x28 {
124 return nil, nil, errors.New("invalid highway packet")
125 }
126 headlength := reader.ReadU32()
127 _ = reader.ReadU32() // body len
128 head = &highway.RespDataHighwayHead{}
129 headraw := reader.ReadBytesNoCopy(int(int64(headlength)))
130 err = proto.Unmarshal(headraw, head)
131 if err != nil {
132 return nil, nil, err
133 }
134 if reader.ReadBytesNoCopy(1)[0] != 0x29 {
135 return nil, nil, errors.New("invalid highway head")
136 }
137 return head, reader, nil
138}
139
140func sendHighwayPacket(packet *highway.ReqDataHighwayHead, block []byte, serverURL string, end bool) (io.ReadCloser, error) {
141 marshal, err := proto.Marshal(packet)

Callers 1

highwayUploadBlockMethod · 0.85

Calls 4

ParseReaderFunction · 0.92
ReadBytesNoCopyMethod · 0.80
ReadU32Method · 0.80
UnmarshalMethod · 0.80

Tested by

no test coverage detected