code: func (s *serfQueries) sendKeyResponse(q *Query, resp *nodeKeyResponse) {
  	switch q.Name {
  	case internalQueryName(listKeysQuery):
  		raw, qresp, err := s.keyListResponseWithCorrectSize(q, resp)
  		if err != nil {
  			s.logger.Printf("[ERR] serf: %v", err)
  			return
  		}
  		if err := q.respondWithMessageAndResponse(raw, qresp); err != nil {
  			s.logger.Printf("[ERR] serf: Failed to respond to key query: %v", err)
  			return
  		}
  	default:
  		buf, err := encodeMessage(messageKeyResponseType, resp)
  		if err != nil {
  			s.logger.Printf("[ERR] serf: Failed to encode key response: %v", err)
  			return
  		}
  		if err := q.Respond(buf); err != nil {
  			s.logger.Printf("[ERR] serf: Failed to respond to key query: %v", err)
  			return
  		}
  	}
  }
docs: // sendKeyResponse handles responding to key-related queries.