code: func (s *Server) lanEventHandler() {
  	for {
  		select {
  		case e := <-s.eventChLAN:
  			switch e.EventType() {
  			case serf.EventMemberJoin:
  				s.lanNodeJoin(e.(serf.MemberEvent))
  				s.localMemberEvent(e.(serf.MemberEvent))
  
  			case serf.EventMemberLeave, serf.EventMemberFailed, serf.EventMemberReap:
  				s.lanNodeFailed(e.(serf.MemberEvent))
  				s.localMemberEvent(e.(serf.MemberEvent))
  
  			case serf.EventUser:
  				s.localEvent(e.(serf.UserEvent))
  			case serf.EventMemberUpdate:
  				s.localMemberEvent(e.(serf.MemberEvent))
  			case serf.EventQuery: // Ignore
  			default:
  				s.logger.Printf("[WARN] consul: Unhandled LAN Serf Event: %#v", e)
  			}
  
  		case <-s.shutdownCh:
  			return
  		}
  	}
  }
docs: // lanEventHandler is used to handle events from the lan Serf cluster