[erlang-questions] erlang http tcp_closed problem
Zandra Hird
zandra@REDACTED
Wed Feb 18 15:57:56 CET 2015
Hi,
It might have to do with some internal buffer limitation (see doc
http://www.erlang.org/doc/man/inet.html), so you can try to set
packet_size to big enough to handle the large cookie header and see if
it helps.
/ Zandra
On 2015-02-12 10:36, Przemysław Wycisk wrote:
> The reason of that behaviour was option packet_size on socket. Default
> set of this option ({packet_size, 0}) should mean no size (line size
> in http) limit shouldn't it?, but packets were dropped because of
> large cookie header.
> I consider it as a bug, and also i think that if line size limit in
> http socket occurs i should get http_error instead of tcp_closed, it's
> quite confusing.
>
> On Sun, Feb 8, 2015 at 7:25 PM, Przemysław Wycisk
> <p.wycisk@REDACTED <mailto:p.wycisk@REDACTED>> wrote:
>
> I've got problem with using erlang active http socket.
>
> I receive msgs like that:
>
> ok = inet:setopts(Sock,[{active, true}]),
> receive
> {http, Sock, {http_request, HttpMethod, {abs_path, Path},
> _HttpVersion}} ->
> Headers = getHeaders(Sock),
> %more code
>
> and then headers like that:
>
> getHeaders(Sock, Headers) ->
> receive
> {http, Sock, {http_header, _Num, 'Content-Length', _, Value}} ->
> NewHeaders = Headers#'headers'{contentLength = Value},
> getHeaders(Sock, NewHeaders);
> {http, Sock, {http_header, _Num, 'Host', _, Value}} ->
> NewHeaders = Headers#'headers'{host = Value},
> getHeaders(Sock, NewHeaders);
> {http, Sock, {http_header, _Num, 'User-Agent', _, Value}} ->
> NewHeaders = Headers#'headers'{userAgent = Value},
> getHeaders(Sock, NewHeaders);
> %more headers here
> %
>
> {http, Sock, {http_error, Error}} ->
> ?LOG_INFO("protocol", "http returned error with reason:~p~n",
> [Error]),
> exit(normal);
> {http, Sock, http_eoh} ->
> Headers;
> {tcp_closed, Sock} -> %<a mark>
> ?LOG_INFO("connection", "Socket ~w closed by client", [Sock]),
> exit(normal);
> _Else ->
> getHeaders(Sock, Headers)
> end.
>
>
> Normally it works fine, packets and headers are received from
> browser and everyone is happy, but there is a case, when a browser
> sends a request, and then i get "tcp_closed" in place where <a
> mark> is placed, in the middle of receiving headers.
>
> This behaviour is strange for me, because it never happens in
> incognito mode. That could mean that bowsers cache is involved in
> the problem, but how?
>
> Anyone had the same problem? Anyone could help? I would be grateful.
>
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150218/f6d29ee1/attachment.htm>
More information about the erlang-questions
mailing list