MCPcopy Create free account
hub / github.com/facebook/time / monitorIcmp

Method monitorIcmp

cmd/ziffy/node/sender_linux.go:289–312  ·  view source on GitHub ↗
(conn net.PacketConn)

Source from the content-addressed store, hash-verified

287}
288
289func (s *Sender) monitorIcmp(conn net.PacketConn) {
290 buf := make([]byte, 128)
291 for {
292 select {
293 case <-s.icmpDone:
294 return
295 default:
296 if err := conn.SetReadDeadline(time.Now().Add(100 * time.Millisecond)); err != nil {
297 log.Debugf("icmp set deadline error: %v", err)
298 return
299 }
300 n, rAddr, err := conn.ReadFrom(buf)
301 if err != nil {
302 var netErr net.Error
303 if errors.As(err, &netErr) && netErr.Timeout() {
304 continue
305 }
306 log.Debugf("icmp listener error: %v", err)
307 continue
308 }
309 s.handleIcmpPacket(buf, n, rAddr)
310 }
311 }
312}
313
314// handleIcmpPacket is a handler which gets called every time icmp packets arrive
315func (s *Sender) handleIcmpPacket(rawPacket []byte, l int, rAddr net.Addr) {

Callers 1

StartMethod · 0.95

Calls 1

handleIcmpPacketMethod · 0.95

Tested by

no test coverage detected