[erlang-questions] Re: ssl and {active, once} - bug?
Roberto Ostinelli
roberto@REDACTED
Mon Apr 19 12:46:51 CEST 2010
2010/4/12 Ingela Andin <ingela@REDACTED>:
> Hi!
>
> Tonys code will accomplish that you run the new ssl-implementation
> instead of the old one. I would not run the new ssl in older
> versions than R13 even though there is a primitive version in R12.
> The main reason for not making the new one default yet is that we
> want it to be as complete as possible before that, but that does not
> necessarily mean it is not complete enough for your need.
>
> Regards Ingela Erlang/OTP team, Ericsson AB
>
hello ingela,
still having issues i can't understand, even with new_ssl.
see the code here below:
%%%%%%%%%%%%%%%%%%%
-module(sslbug).
-compile(export_all).
start(Port) ->
application:start(ssl),
application:start(crypto),
Options = [
binary, {packet, http}, {reuseaddr, true}, {active, false},
{backlog, 128}, {ssl_imp, new},
{certfile, "/Users/roberto/Code/sslbug/server.pem"},
{keyfile, "/Users/roberto/Code/sslbug/privkey.pem"},
{password, "roberto"}
],
{ok, ListenSocket} = ssl:listen(Port, Options),
{ok, Sock} = ssl:transport_accept(ListenSocket),
ok = ssl:ssl_accept(Sock),
ControllerPid = spawn(fun() ->
receive
set -> ok
end,
controller_loop(Sock, 0)
end),
ok = ssl:controlling_process(Sock, ControllerPid),
ControllerPid ! set.
controller_loop(_Sock, 2) ->
ssl:close(Sock);
controller_loop(Sock, Num) ->
ssl:setopts(Sock, [{active, once}]),
receive
Any ->
io:format("ok, received ~p~n", [Any]),
controller_loop(Sock, Num + 1)
end.
%%%%%%%%%%%%%%%%%%%
when i run this code with sslbug:start(8080), open a browser and point
it to https://localhost:8080, this is what gets written:
ok, received {ssl,{sslsocket,new_ssl,<0.46.0>},
{http_request,'GET',{abs_path,"/"},{1,1}}}
ok, received {ssl,{sslsocket,new_ssl,<0.46.0>},
{http_error,"Host: localhost:8080\r\n"}}
as second message i would expect a {ssl,{sslsocket,new_ssl,<0.46.0>},
{http_header,"Host: localhost:8080\r\n"}} message, i.e. a 'header',
not a 'error' message.
something i'm missing here?
thank you,
r.
More information about the erlang-questions
mailing list