anchor.diff:                      fun chttpd_auth_request:authorize_request/1),
                   {AuthorizedReq, HandlerFun(AuthorizedReq)};
               Response ->
  -                Response
  +                {HttpReq, Response}
               end;
           Response ->
  -            Response
  +            {HttpReq, Response}
           end
       catch Tag:Error ->
  -        catch_error(HttpReq, Tag, Error)
  +        {HttpReq, catch_error(HttpReq, Tag, Error)}
       end.
   
   catch_error(_HttpReq, throw, {http_head_abort, Resp}) ->
  
positive.code:     % suppress duplicate log
      erlang:put(dont_log_request, true),
  
      Result0 = case before_request(HttpReq0) of
          {ok, HttpReq1} ->
              process_request(HttpReq1);
          {error, Response} ->
              {HttpReq0, Response}
      end,
  
      {HttpReq3, HttpResp0} = result(Result0, HttpReq0),
  
      case after_request(HttpReq3, HttpResp0) of
          #httpd_resp{status = ok, response = Resp} ->
              {ok, Resp};
          #httpd_resp{status = aborted, reason = Reason} ->
  
negative.code:             send_error(HttpReq, {Error, nil, Stack})
      end.
  
  split_response({ok, #delayed_resp{resp=Resp}}) ->
      {ok, Resp:get(code), undefined, Resp};
  split_response({ok, Resp}) ->
      {ok, Resp:get(code), undefined, Resp};
  split_response({aborted, Resp, AbortReason}) ->
      {aborted, Resp:get(code), AbortReason, Resp}.
  
  update_stats(HttpReq, #httpd_resp{end_ts = undefined} = Res) ->
      update_stats(HttpReq, Res#httpd_resp{end_ts = os:timestamp()});
  