anchor.diff:      case maps:get(gen_tcp, State, undefined) of
           TSock when is_port(TSock) -> gen_tcp:close(TSock);
           _                         -> ok
  -    end.
  +    end,
  +    Reqs = maps:to_list(maps:get(requests, State, #{})),
  +    [ gen_server:reply(From, {error, disconnected})
  +      || {_Request, From} <- Reqs ].
   
   connect_fail(S) ->
       case aec_peers:connect_fail(peer_id(S), self()) of
  
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:         Ref when NonRegAccept ->
              lager:info("Connecting peer never sent ping, stopping"),
              %% Consider blocking this peer
              cleanup_connection(S),
              {stop, normal, S};
          _ ->
              lager:debug("Got stale first_ping_timeout", []),
  