anchor.diff:          "OAuth " ++ oauth:header_params_encode(OAuthParams)}].
   
   
  -do_redirect(Worker, Code, Headers, #httpdb{url = Url} = HttpDb, Params, Cb) ->
  -    release_worker(Worker, HttpDb),
  +do_redirect(_Worker, Code, Headers, #httpdb{url = Url} = HttpDb, Params, _Cb) ->
       RedirectUrl = redirect_url(Headers, Url),
       {HttpDb2, Params2} = after_redirect(RedirectUrl, Code, HttpDb, Params),
  -    send_req(HttpDb2, Params2, Cb).
  +    throw({retry, HttpDb2, Params2}).
   
   
   redirect_url(RespHeaders, OrigUrl) ->
  
positive.code:         [{K, ?b2l(iolist_to_binary(V))} || {K, V} <- get_value(qs, Params1, [])]),
      Params = ?replace(Params2, ibrowse_options,
          lists:keysort(1, get_value(ibrowse_options, Params2, []))),
      {Worker, Response} = send_ibrowse_req(HttpDb, Params),
      process_response(Response, Worker, HttpDb, Params, Callback).
  
  
  send_ibrowse_req(#httpdb{headers = BaseHeaders} = HttpDb, Params) ->
  
negative.code:     R when R =:= 301 ; R =:= 302 ; R =:= 303 ->
          do_redirect(Worker, R, Headers, HttpDb, Params, Callback);
      Error ->
          maybe_retry({code, Error}, Worker, HttpDb, Params)
      end;
  
  process_response(Error, Worker, HttpDb, Params, _Callback) ->
      maybe_retry(Error, Worker, HttpDb, Params).
  
  
  process_stream_response(ReqId, Worker, HttpDb, Params, Callback) ->
  