anchor.diff:      send_send_block(State, Hash),
       {noreply, State};
   handle_cast(stop, State) ->
  -    close_connection(State),
  +    cleanup_connection(State),
       {stop, normal, State};
   handle_cast(_Msg, State) ->
       {noreply, State}.
  
positive.code:     {noreply, S#{ fragments := [Fragment | Fragments] }};
  handle_fragment(S = #{ fragments := Fragments }, N, M, _Fragment) ->
      lager:error("Got fragment ~p, expected ~p (out of ~p)", [N, length(Fragments) + 1, M]),
      close_connection(S),
      connect_fail(maps:remove(fragments, S)).
  
  handle_msg(S, MsgType, IsResponse, Result) ->
  
negative.code:     ok;
  terminate(NonNormal, State) ->
      lager:info("Non-normal terminate, reason: ~p", [NonNormal]),
      cleanup_connection(State),
      ok.
  
  code_change(_OldVsn, State, _Extra) ->
  