MCPcopy
hub / github.com/hashicorp/memberlist / packetHandler

Method packetHandler

net.go:509–540  ·  view source on GitHub ↗

packetHandler is a long running goroutine that processes messages received over the packet interface, but is decoupled from the listener to avoid blocking the listener which may cause ping/ack messages to be delayed.

()

Source from the content-addressed store, hash-verified

507// over the packet interface, but is decoupled from the listener to avoid
508// blocking the listener which may cause ping/ack messages to be delayed.
509func (m *Memberlist) packetHandler() {
510 for {
511 select {
512 case <-m.handoffCh:
513 for {
514 msg, ok := m.getNextMessage()
515 if !ok {
516 break
517 }
518 msgType := msg.msgType
519 buf := msg.buf
520 from := msg.from
521
522 switch msgType {
523 case suspectMsg:
524 m.handleSuspect(buf, from)
525 case aliveMsg:
526 m.handleAlive(buf, from)
527 case deadMsg:
528 m.handleDead(buf, from)
529 case userMsg:
530 m.handleUser(buf, from)
531 default:
532 m.logger.Printf("[ERR] memberlist: Message type (%d) not supported %s (packet handler)", msgType, LogAddress(from))
533 }
534 }
535
536 case <-m.shutdownCh:
537 return
538 }
539 }
540}
541
542func (m *Memberlist) handleCompound(buf []byte, from net.Addr, timestamp time.Time) {
543 // Decode the parts

Callers 1

newMemberlistFunction · 0.95

Calls 6

getNextMessageMethod · 0.95
handleSuspectMethod · 0.95
handleAliveMethod · 0.95
handleDeadMethod · 0.95
handleUserMethod · 0.95
LogAddressFunction · 0.85

Tested by

no test coverage detected