anchor.diff:      Connections = case dict:find(Name, Connections0) of
           %% Found in dict, and disconnected.
           {ok, undefined} ->
  -            lager:info("Not connected; ~p", [Node]),
               case connect(Node) of
                   {ok, Pid} ->
  -                    lager:info("Connected!; ~p", [Pid]),
                       dict:store(Name, Pid, Connections0);
  -                Other ->
  -                    lager:info("Failed; ~p ~p", [Node, Other]),
  +                _ ->
                       dict:store(Name, undefined, Connections0)
               end;
           %% Found in dict and connected.
  
positive.code:     schedule_gossip(),
      {noreply, State#state{connections=Connections}};
  
  handle_info({'EXIT', From, Reason}, #state{connections=Connections0}=State) ->
      lager:info("Process ~p exited: ~p", [From, Reason]),
      FoldFun = fun(K, V, AccIn) ->
                        case V =:= From of
                            true ->
  
negative.code:     case dict:find(Name, Connections) of
          {ok, undefined} ->
              %% Node was connected but is now disconnected.
              {error, disconnected};
          {ok, Pid} ->
              %% Message client connection with message; this could race
              %% with the TCP connetion closing and the process shuttng
              %% down, so catch any noproc exceptions.
              %%
              %% Ignore, because it will get retried eventually.
              %%
              try
                  gen_server:call(Pid, {send_message, Message}, infinity)
              catch
                  _:_ ->
                      ok
              end;
          error ->
              %% Node has not been connected yet.
              {error, not_yet_connected}
      end.
  
  