anchor.diff:    % digestUnsubscribe coming from outside of 127.0.0.1, ignoring
     {noreply, {messaging, Config}};
   
  +%%% DIGEST_FORWARDED_ACK
  +
   %% @doc Process incoming digestForwardedAck.
   handle_info({ message, digestForwardedAck, DecodedPayload, _Client }, { messaging, Config }) ->
     case gen_server:call( ?MEMBERSHIP(Config), { is_member_secret_valid, DecodedPayload#digestForwardedAck.name, DecodedPayload#digestForwardedAck.secret } ) of
  
positive.code: 
  %% SENDING
  
  %% @doc Sends the digest to a member.
  handle_info({ send_digest, Member = #digestMember{}, DigestType, Digest }, {messaging, Config}) when is_atom(DigestType) ->
    { ok, SerializedDigest, _ } = gen_server:call( gossiperl_serialization, { serialize, DigestType, Digest }, 5000 ),
    { ok, MaybeEncrypted }      = gen_server:call( ?ENCRYPTION( Config ), { encrypt, SerializedDigest } ),
    gen_server:cast( gossiperl_statistics, { record,
                                             list_to_binary(atom_to_list(Config#overlayConfig.name)),
                                             { data, DigestType, out },
                                             byte_size(MaybeEncrypted) } ),
    gen_udp:send(
      Config#overlayConfig.internal#internalConfig.socket,
      gossiperl_common:parse_binary_ip( Member#digestMember.member_ip ),
      Member#digestMember.member_port,
      MaybeEncrypted ),
    {noreply, {messaging, Config}};
  
  %% @doc Sends the digest over a multicast address.
  handle_info({ send_multicast_digest, DigestType, Digest }, {messaging, Config}) when is_atom(DigestType) ->
    { ok, SerializedDigest, _ } = gen_server:call( gossiperl_serialization, { serialize, DigestType, Digest }, 5000 ),
    { ok, MaybeEncrypted }      = gen_server:call( ?ENCRYPTION( Config ), { encrypt, SerializedDigest } ),
    gen_server:cast( gossiperl_statistics, { record,
                                             list_to_binary(atom_to_list(Config#overlayConfig.name)),
                                             { data, DigestType, out },
                                             byte_size(MaybeEncrypted) } ),
    gen_udp:send(
      Config#overlayConfig.internal#internalConfig.socket,
      Config#overlayConfig.multicast#multicastConfig.ip,
      Config#overlayConfig.port,
      MaybeEncrypted ),
    {noreply, {messaging, Config}};
  
  %% RECEIVING
  
  %% @doc gen_udp callback, initializes receiving process by passing the message for decryption.
  handle_info({udp, _ClientSocket, ClientIp, ClientPort, Msg}, {messaging, Config}) ->
  
negative.code: handle_info({ message, digest, #digest{ name = FromMemberName }, _ }, { messaging, Config = #overlayConfig{ member_name = CurrentMemberName } })
    when CurrentMemberName =:= FromMemberName -> % message from self, ignore
    {noreply, {messaging, Config}};
  
  %%% DIGEST_ACK
  
  %% @doc Process incoming digestAck.
  handle_info({ message, digestAck, DecodedPayload = #digestAck{ name = FromMemberName }, { ClientIp, _ClientPort } }, { messaging, Config = #overlayConfig{ member_name = CurrentMemberName } })
  