[erlang-bugs] Possible regression in httpc's cookie handling

Anton Yabchinskiy <>
Fri Mar 15 15:19:56 CET 2013


Hello,

I've encountered a difference in behaviour of HTTP client in
R15B01 (Debian build) and in R16B (Erlang Solutions build).
Consider the following code:

#!/usr/bin/env escript

main(_Args) ->
    Profile = some_profile,
    ok = application:start(inets),
    {ok, _Pid} = inets:start(httpc, [{profile, Profile}]),
    ok = httpc:set_option(cookies, enabled, Profile),
    _Ans = httpc:request("http://www.google.ru/", Profile),
    io:format("~p~n", [httpc:which_cookies(Profile)]).

When run with R15B01 it outputs the following:

[{session_cookies,[{http_cookie,".google.ru",false,"PREF",
                                 
"ID=542c81909139855f:FF=0:NW=1:TM=1363356181:LM=1363356181:S=JNFNZBI_nhJC-IIO",
                                undefined,session,"/",false,false,"0"},
                   {http_cookie,".google.ru",false,"NID",
                                 
"67=CkprmSvcQFKD7P0pt1FkRHkXZXTe_geBYXy2gk65yJTJyxvIjqm0Mrc7xErtR4xL5qaKsfUMC4oTWsvJze910qRx79VBf66rivfjmN88bVhg9aDd6YS2M3UohXLXT68t",
                                undefined,session,"/",false,false,"0"}]}]

The output for R16B is:

[{session_cookies,[]}]

There is no difference in behaviour if profile isn't used.

I'm not sure, but probably it's related to commit
9c85ee8b61c24587a228b3644c37b1b4fdfb7dcb, which includes
the following change in lib/inets/src/http_client/httpc_handler.erl
file:

- handle_cookies(Headers, Request, Options, ProfileName), + 
handle_cookies(Headers, Request, Options, httpc_manager), %% FOO 
profile_name



More information about the erlang-bugs mailing list