void filterIncomingMessage(Message<ID> m) {
    switch (m.getDSFID()) {
      case JOIN_RESPONSE:
        JoinResponseMessage<ID> jrsp = (JoinResponseMessage<ID>) m;

        if (jrsp.getRejectionMessage() == null
            && services.getConfig().isMulticastEnabled()) {
          byte[] serializedDigest = jrsp.getMessengerData();
          ByteArrayInputStream bis = new ByteArrayInputStream(serializedDigest);
          DataInputStream dis = new DataInputStream(bis);
          try {
            Digest digest = new Digest();
            digest.readFrom(dis);
            if (logger.isTraceEnabled()) {
              logger.trace("installing JGroups message digest {} from {}", digest, m);
            }
            myChannel.getProtocolStack().getTopProtocol()
                .down(new Event(Event.MERGE_DIGEST, digest));
            jrsp.setMessengerData(null);
          } catch (Exception e) {
            logger.fatal("Unable to read JGroups messaging digest", e);
          }
        }
        break;
      default:
        break;
    }
  }
look for certain messages that may need to be altered before being sent
geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java