anchor.diff:  %% Internal Function Definitions
   %% ------------------------------------------------------------------
   
  -read_message(HeaderFrame) ->
  -    ?debugVal(HeaderFrame),
  +read_body() ->
       receive
           {zmq, _StatusSock, BodyFrame, []} ->
  -            ?debugVal(BodyFrame),
  -            case catch do_authenticate_message(HeaderFrame, BodyFrame) of
  -                {ok} ->
  -                    send_heartbeat(BodyFrame);
  -                {no_authn, bad_sig} ->
  -                    error_logger:info_msg("Status message failed verification: ~s~n", [HeaderFrame])
  -            end
  +            BodyFrame
       end.
   
   do_authenticate_message(Header, Body) ->
  
positive.code:         = list_to_tuple(HeaderParts),
      SignedChecksum.
  
  send_heartbeat(BodyFrame) ->
      case catch jiffy:decode(BodyFrame) of
        {Hash} ->
          ?debugVal(Hash),
          NodeName = proplists:get_value(<<"node">>, Hash),
          pushy_node_state:heartbeat(NodeName),
          error_logger:info_msg("Heartbeat received from: ~s~n", [NodeName]);
        {'EXIT', _Error} ->
          %% Log error and move on
          error_logger:info_msg("Status message JSON parsing failed: ~s~n", [BodyFrame])
      end.
  
negative.code: 
  handle_info({zmq, _StatusSock, Header, [rcvmore]},
      #state{heartbeat_interval=HeartbeatInterval,dead_interval=DeadInterval}=State) ->
  
      Body = read_body(),
      case catch do_authenticate_message(Header, Body) of
          ok ->
              send_heartbeat(Body, HeartbeatInterval, DeadInterval);
          {no_authn, bad_sig} ->
              error_logger:error_msg("Status message failed verification: header=~s~n", [Header])
      end,
  
      {noreply, State};
  handle_info(_Info, State) ->
      {noreply, State}.
  