anchor.diff:      "false" ->
           Req#httpd{user_ctx=#user_ctx{}}
       end;
  -authenticate_request(#httpd{} = Req, [AuthSrc|Rest]) ->
  -    AuthFun = make_arity_1_fun(AuthSrc),
  +authenticate_request(#httpd{} = Req, [{AuthFun, AuthSrc} | RestAuthHandlers]) ->
       R = case AuthFun(Req) of
           #httpd{user_ctx=#user_ctx{}=UserCtx}=Req2 ->
  -            Req2#httpd{user_ctx=UserCtx#user_ctx{handler=?l2b(AuthSrc)}};
  +            Req2#httpd{user_ctx=UserCtx#user_ctx{handler=AuthSrc}};
           Else -> Else
       end,
  -    authenticate_request(R, Rest);
  +    authenticate_request(R, RestAuthHandlers);
   authenticate_request(Response, _AuthSrcs) ->
       Response.
   
  
positive.code: handle_request_int(MochiReq, DefaultFun,
              UrlHandlers, DbUrlHandlers, DesignUrlHandlers) ->
      Begin = now(),
      AuthenticationSrcs = make_fun_spec_strs(
              couch_config:get("httpd", "authentication_handlers")),
      % for the path, use the raw path with the query string and fragment
      % removed, but URL quoting left intact
      RawUri = MochiReq:get(raw_path),
  
negative.code:     ?MODULE:stop();
  config_change("httpd", "socket_options") ->
      ?MODULE:stop();
  config_change("httpd", "authentication_handlers") ->
      set_auth_handlers();
  config_change("httpd_global_handlers", _) ->
      ?MODULE:stop();
  config_change("httpd_db_handlers", _) ->
      ?MODULE:stop();
  config_change("ssl", _) ->
      ?MODULE:stop().
  
  set_auth_handlers() ->
      AuthenticationSrcs = make_fun_spec_strs(
          couch_config:get("httpd", "authentication_handlers", "")),
      AuthHandlers = lists:map(
          fun(A) -> {make_arity_1_fun(A), ?l2b(A)} end, AuthenticationSrcs),
      ok = application:set_env(couch, auth_handlers, AuthHandlers).
  
  % SpecStr is a string like "{my_module, my_fun}"
  %  or "{my_module, my_fun, <<"my_arg">>}"
  