MCPcopy Create free account
hub / github.com/DNAProject/DNA / HeadersReqHandle

Function HeadersReqHandle

p2pserver/message/utils/msg_handler.go:102–126  ·  view source on GitHub ↗

HeaderReqHandle handles the header sync req from peer

(data *msgTypes.MsgPayload, p2p p2p.P2P, pid *evtActor.PID, args ...interface{})

Source from the content-addressed store, hash-verified

100
101// HeaderReqHandle handles the header sync req from peer
102func HeadersReqHandle(data *msgTypes.MsgPayload, p2p p2p.P2P, pid *evtActor.PID, args ...interface{}) {
103 log.Trace("[p2p]receive headers request message", data.Addr, data.Id)
104
105 headersReq := data.Payload.(*msgTypes.HeadersReq)
106
107 startHash := headersReq.HashStart
108 stopHash := headersReq.HashEnd
109
110 headers, err := GetHeadersFromHash(startHash, stopHash)
111 if err != nil {
112 log.Warnf("get headers in HeadersReqHandle error: %s,startHash:%s,stopHash:%s", err.Error(), startHash.ToHexString(), stopHash.ToHexString())
113 return
114 }
115 remotePeer := p2p.GetPeer(data.Id)
116 if remotePeer == nil {
117 log.Debugf("[p2p]remotePeer invalid in HeadersReqHandle, peer id: %d", data.Id)
118 return
119 }
120 msg := msgpack.NewHeaders(headers)
121 err = p2p.Send(remotePeer, msg)
122 if err != nil {
123 log.Warn(err)
124 return
125 }
126}
127
128//PingHandle handle ping msg from peer
129func PingHandle(data *msgTypes.MsgPayload, p2p p2p.P2P, pid *evtActor.PID, args ...interface{}) {

Callers 1

TestHeadersReqHandleFunction · 0.85

Calls 9

TraceFunction · 0.92
WarnfFunction · 0.92
DebugfFunction · 0.92
WarnFunction · 0.92
GetHeadersFromHashFunction · 0.85
ErrorMethod · 0.65
GetPeerMethod · 0.65
SendMethod · 0.65
ToHexStringMethod · 0.45

Tested by 1

TestHeadersReqHandleFunction · 0.68