Age | Commit message (Collapse) | Author |
|
This is a quick fix to make this option work.
We will revisit this and clean up httpc option handling later.
Also adding regression tests.
|
|
|
|
httpc should fill SNI extenstion for HTTPS requests sent through
CONNECT tunnel to provide proper access to websites using SNI
|
|
Without this fix, httpc:request/1 crashes the httpc_handler when an
invalid chunked length header is encountered (since 77acb47):
=ERROR REPORT==== 14-Nov-2015::17:19:30 ===
** Generic server <0.651.0> terminating
** Last message in was {tcp,#Port<0.5714>,
<<"HTTP/1.1 200 ok\r\nTransfer-Encoding:chunked\r\n\r\nåäö\r\n">>}
** When Server state == {state,
[...]
** Reason for termination ==
** {bad_return_value,{error,{chunk_size,"åäö"}}}
|
|
httpc should work properly if streaming option {self, once} is
chosen and the corresponding response does not get streamed.
|
|
httpc_handler should respond with correct and complete
responses seeing non-streamed status codes i.e. codes
other than 200 or 206.
|
|
* ia/pr/800/OTP-12984:
inets: Forward connection errors with https proxy
|
|
|
|
httpc should return meaningful error reason disregarding whether
it is being used with http proxy or not
|
|
httpc_handler should react properly to cancel requests even
when the request to be cancelled was already finished
but httpc_manager did not get notified about that yet
|
|
|
|
If the socket is closed by the peer do not try to close it again.
Solves OTP-11845
|
|
httpc_handler should set correct address of the connected host
and not ignore proxy option of the profile while
sending requests taken out of keep-alive queue
|
|
httpc_handler should respond with proper {stop, Reason, State}
message when sending request from keep-alive queue fails
|
|
* erlang/pr/741:
Minor misprints
|
|
|
|
The new module is backwards compatible.
|
|
|
|
|
|
|
|
httpc_cookie should parse cookies with empty values
and no attributes set in the 'Set-Cookie' headers.
|
|
|
|
Parsing invalid 'Set-Cookie' header would make httpc crash.
This commit filters invalid 'Set-Cookie' headers so that httpc wouldn't try to parse them.
|
|
httpc_handler should be stopped when sending requests returns error
because of a closed connection and `tcp_closed` message could not be
catched (see http://erlang.org/pipermail/erlang-bugs/2007-May/000346.html )
otherwise it will lead to process leak.
|
|
* scrapinghub/update_session_original_stacktrace:
inets: Return correct stacktrace on session updating failure
|
|
Debug output in httpc_handler:update_session/4 error
handling code should not pollute stack trace returned in process exit.
|
|
|
|
|
|
* scrapinghub/stream_body_with_no_content_length:
inets: Fix HTTP 1.0 body end on closed connection
|
|
* scrapinghub/stream_for_chunked_single_message:
inets: Fix streaming with single chunk body
|
|
Receiving HTTP response with no Content-length header and
with body ending on closed connection should give the complete
response body contents up to the last byte received.
|
|
Receiving HTTP response with chunked transfer encoding in a single
TCP message should produce stream messages for response body when
streaming mode is used for httpc.
|
|
* scrapinghub/empty_set_cookie:
Added a condition to ignore empty Set-Cookie header and tests for it
OTP-11803
|
|
* nox/httpc-transfer-encoding-identity:
Support identity transfer-encoding in httpc
OTP-11802
|
|
* ia/inets/revert/OTP-11756:
inets: Continue CTify test suite
inets: Enable https tests
inets: Make test suites independent of each other
inets: Reverted commmit f97cd6965ac35d1cbe510de23592956857d144c8
|
|
* scrapinghub/update_session_error_logging_fix:
inets: Fix incorrect argument order
OTP-11794
|
|
The reverted commit took a too optimistic approch to pipeling. When added
we thought it would be an improvment, but it proved to be a
misconception.
|
|
> The default (identity) encoding; the use of no transformation whatsoever.
> The Internet Assigned Numbers Authority (IANA) acts as a registry for
> transfer-coding value tokens. Initially, the registry contains the
> following tokens: "chunked" (section 3.6.1), "identity" (section 3.6.2),
> "gzip" (section 3.5), "compress" (section 3.5), and "deflate" (section 3.5).
Reported-by: Andrew Houghton
|
|
Wrong order of arguments in httpc_handler:update_session/4 error
handling code should not result in bad_argument error making
stack trace unusable.
|
|
|
|
The types array(), dict(), digraph(), gb_set(), gb_tree(), queue(),
set(), and tid() have been deprecated. They will be removed in OTP 18.0.
Instead the types array:array(), dict:dict(), digraph:graph(),
gb_set:set(), gb_tree:tree(), queue:queue(), sets:set(), and ets:tid()
can be used. (Note: it has always been necessary to use ets:tid().)
It is allowed in OTP 17.0 to locally re-define the types array(), dict(),
and so on.
New types array:array/1, dict:dict/2, gb_sets:set/1, gb_trees:tree/2,
queue:queue/1, and sets:set/1 have been added.
|
|
Some error handling is only relevant for functions that
end up in gen_server:call and not in gen_server:cast.
|
|
|
|
|
|
|
|
* jwh/httpc_delete_body/OTP-11190:
httpc: Allow content body in DELETE requests
|
|
|
|
|
|
http_chunk:decode/4, the side-effecting chunk decoder, was only used
by httpc_handler:handle_http_body/2 but now it's completely unused.
|
|
Previously the only difference between {stream, self} and {stream,
{self, once}} was an extra Pid in the stream_start message due to a
bug in httpc_handler. It was immediately sending a bunch of messages
till the end instead of waiting for httpc:stream_next/1 being called.
|