anchor.diff:  -include("../include/elli.hrl").
   
   -export([start_link/3, accept/3, handle_request/2, chunk_loop/1,
  -         split_args/1, parse_path/1]).
  +         split_args/1, parse_path/1, keepalive_loop/3]).
   
   -export([mk_req/7]). %% useful when testing.
   
  
positive.code:             ok;
          {error, Other} ->
              exit({error, Other})
      end.
  
  -spec handle_request(port(), callback()) -> ok.
  
negative.code: %% request, then loops if we're using keep alive or chunked
  %% transfer. If accept doesn't give us a socket within 10 seconds, we
  %% loop to allow code upgrades.
  accept(Server, ListenSocket, {Mod, Args} = Callback) ->
      case catch gen_tcp:accept(ListenSocket, 10000) of
          {ok, Socket} ->
              t(accepted),
              gen_server:cast(Server, accepted),
              ?MODULE:keepalive_loop(Socket, 0, Callback);
          {error, timeout} ->
              ?MODULE:accept(Server, ListenSocket, Callback);
          {error, econnaborted} ->
  