aboutsummaryrefslogtreecommitdiffstats
path: root/lib/inets/src
AgeCommit message (Collapse)Author
2018-05-22inets: Gracefully handle bad headersIngela Anderton Andin
max_headers operated on the individual header length instead of the total length of all headers. Also headers with empty keys are now discarded.
2018-04-19inets: Fix broken httpc options handlingPéter Dimitrov
- Add support for setting socket options per request. - Add http_ipv6 test group. Change-Id: Ia2aca37c0b5fe64a41995c79ae3399434b17ab8a
2018-03-07Merge pull request #1724 from lucafavatella/http_uri-typesPéter Dimitrov
Export types documented for http_uri module
2018-03-06inets: work around http_uri:parse Dialyzer warning in uri_SUITE.erl:274Luca Favatella
Addresses https://github.com/erlang/otp/pull/1724#discussion_r172442753 Current `http_uri:parse/2` implementation intends that ["non-fun scheme_validation_fun works as no option passed"](https://github.com/erlang/otp/blob/OTP-20.2.4/lib/inets/test/uri_SUITE.erl#L271-L274).
2018-03-06inets: Prepare for releasePéter Dimitrov
Change-Id: I3021abef9530d42fa6eb04fbcbd46ab23392cd0d
2018-03-05inets: refine types and doc of http_uri:parse optionsLuca Favatella
2018-03-05inets: export types documented for http_uri moduleLuca Favatella
Also: * Reuse type `inet:port_number()` in `http_uri` code and doc; * Do not imply that http_uri module can properly handle UTF-8 encoded binaries, while it can't. * Enrich function specifications in http_uri module; * Fix http_uri doc re missing type definition for `Scheme`.
2018-02-26inets: Add unix domain socket support to httpcPéter Dimitrov
Change-Id: I44fe2670e36884e09600d17dd71b1e86b9ee75fa
2018-02-09inets: Prepare for releasePéter Dimitrov
Change-Id: I8a0b8c3c589baab7c2fe3bf0fc9b56749658d30f
2018-02-09inets: Fix httpc crash on keep-alive connectionsPéter Dimitrov
- Set gen_server call timeout to infinity in httpc_handler. - Add new testcase 'slow_connection'. Change-Id: Id11b54c588e1d66b9ebba4da5dbfe5e9bee1f1ee
2017-11-17inets: Eliminate race conditionIngela Anderton Andin
Only run test case for http as the socket manipulation done by the test case requires much more manipulation to work for https. However, that this test case started failing constantly instead of sporadically is proof that this change is a good thing.
2017-11-10Merge branch 'maint-20' into maintIngela Anderton Andin
* maint-20: Updated OTP version Update release notes Update version numbers inets: Prepare for release inets: Add missing guard Avoid WindowBits=8 as per the manual Fix deflateParams on zlib 1.2.11 Ignore empty binaries in enif_inspect_iovec Emasculate writable binaries on entering an iovec Only apply EOS behaviors if there's pending data Stop assuming that all schedulers are managed when updating msacc
2017-11-09inets: Prepare for releaseIngela Anderton Andin
2017-11-09inets: Add missing guardIngela Anderton Andin
Add test in the correct place which was the reason the guard became missing without being noticed.
2017-11-01Merge pull request #1613 from hamidreza-s/fix-httpc-misbehaviourIngela Andin
[#ERL-407]: Fix httpc misbehaviour based on RFC7230, section 3.3.3 OTP-14727
2017-11-01inets: httpd - Fix broken handling of POST requestsIngela Anderton Andin
New chunk mechanism of body data in POST requests added in 5d01c70ca399edf28e99dc760506329689fab6ba broke handling of POST body data not using the new mechanism. Added better regression test
2017-11-01inets: Make sure httpd:stop_service is synchronousIngela Anderton Andin
2017-11-01inets: httpd - do not hardcode 302 status for locationIngela Anderton Andin
If a status code is provide by the ESI script that status code should have precedence over internal defaults. Also remove RFC 2616 requirement that URI must be absolute, that requirement is relaxed by RFC 7231.
2017-10-31inets: httpd - do not hardcode 302 status for locationIngela Anderton Andin
If a status code is provide by the ESI script that status code should have precedence over internal defaults. Also remove RFC 2616 requirement that URI must be absolute, that requirement is relaxed by RFC 7231.
2017-10-29[#ERL-407]: Fix httpc misbehaviour based on RFC7230, section 3.3.3Hamidreza Soleimani
If a message is received with both a Transfer-Encoding and a Content-Length header field, it might indicate an attempt to perform request smuggling or response splitting and must be handled as an error in default mode (not relaxed mode). Bug report: https://bugs.erlang.org/browse/ERL-407
2017-10-26inets: Correct guard testIngela Anderton Andin
Guard test for error case was not updated to handle httpc stream concept properly.
2017-10-26Merge branch 'ingela/inets/not-chunked-esi/OTP-14656' into maintIngela Anderton Andin
* ingela/inets/not-chunked-esi/OTP-14656: inets: httpd - Fix broken handling of POST requests
2017-10-25inets: httpd - Fix broken handling of POST requestsIngela Anderton Andin
New chunk mechanism of body data in POST requests added in 5d01c70ca399edf28e99dc760506329689fab6ba broke handling of POST body data not using the new mechanism. Added better regression test
2017-10-24inets: Make sure httpd:stop_service is synchronousIngela Anderton Andin
2017-10-12inets: ENV should be a stringIngela Anderton Andin
This is tested by new erts check that will cause badarg when trying to execute scripts via mod_cgi
2017-09-14Merge branch 'maint-20' into maintPéter Dimitrov
* maint-20: Updated OTP version Update release notes Update version numbers inets: httpd correct server_name environment value inets: httpd - Add chunk handling of client data inets: Restore old behavior when parsing "+" inets: prepare for release
2017-09-13Merge branch 'peterdmv/prepare_inets_release' into maint-20Erlang/OTP
* peterdmv/prepare_inets_release: inets: prepare for release
2017-09-13Merge branch 'peterdmv/inets/http_uri_backwards_compat/OTP-14573' into maint-20Erlang/OTP
* peterdmv/inets/http_uri_backwards_compat/OTP-14573: inets: Restore old behavior when parsing "+"
2017-09-13inets: httpd correct server_name environment valueIngela Anderton Andin
Add host_name to hold the resolved name incorrectly provided as server name before.
2017-09-13inets: httpd - Add chunk handling of client dataIngela Anderton Andin
If the client uses PUT or POST to send a HTTP body the server currently will gather the whole body in memory before passing it on to the mod-callback. For legacy reasons it also converts the binary body to a list, this is really bad for memory usage! Add new option max_client_body_chunk to enable chunked handling of content-length requests. Also make it possible for chunked-encoded data to be propagated in portions to the mod-callback. Conflicts: lib/inets/test/httpd_SUITE.erl
2017-09-12inets: httpd correct server_name environment valueIngela Anderton Andin
Add host_name to hold the resolved name incorrectly provided as server name before.
2017-09-12inets: httpd - Add chunk handling of client dataIngela Anderton Andin
If the client uses PUT or POST to send a HTTP body the server currently will gather the whole body in memory before passing it on to the mod-callback. For legacy reasons it also converts the binary body to a list, this is really bad for memory usage! Add new option max_client_body_chunk to enable chunked handling of content-length requests. Also make it possible for chunked-encoded data to be propagated in portions to the mod-callback. Conflicts: lib/inets/test/httpd_SUITE.erl
2017-09-06inets: Restore old behavior when parsing "+"Péter Dimitrov
"+" is part of sub-delims according to RFC 3986 and shall not be converted to space.
2017-09-05inets: prepare for releasePéter Dimitrov
2017-08-11Merge pull request #1509 from vances/issue-erl-398Ingela Andin
HTTP server truncates existing logs OTP-14530
2017-07-10Don't truncate existing disk_logs.Vance Shipley
An existing internal format disk_log will be repaired if possible. If not possible a new log will be created. This is the behaviour described in the documentation and code comments.
2017-07-07Log actual http status code of response.Vance Shipley
The status code provided by other modules was being ignored and 200 (OK) was logged for all responses.
2017-06-14Update copyright yearHans Nilsson
2017-05-30inets: httpc - Gracefull normal shutdownIngela Anderton Andin
2017-05-23Fix httpc timeout for redirectsJohannes Weißl
Probably since 6153ba7 (OTP R13B04) the httpc timeout setting does not work for redirects (when autoredirect is true). With this patch a new timer is started for the new (redirected) requests. This means that a simple redirected request could return after 2*timeout milliseconds. This is the first part to fix https://bugs.erlang.org/browse/ERL-420
2017-05-15Merge pull request #1322 from tsloughter/binary_uri_encodeIngela Andin
Add unicode binary support to http_uri functions OTP-14404
2017-05-12Merge branch 'maint'Hans Nilsson
Conflicts: OTP_VERSION lib/inets/vsn.mk lib/ssl/vsn.mk
2017-05-08Merge pull request #1428 from martincox/masterIngela Andin
Error when a non-DST time is passed to the httpd_util:rfc1123_date/1 function OTP-14394
2017-05-05add binary string support to http_uri functionsTristan Sloughter
2017-05-04inets: Try fix ftp recv_chunk timing issueHans Nilsson
2017-05-04Update copyright yearRaimo Niskanen
2017-04-05When a non-DST time is passed to the httpd_util:rfc1123_date/1 function, itMartin Cox
causes a case-clause error, as the calender:local_time_to_universal_time_dst/1 can return an empty list, which is not currently handled. When called with an invalid DST time: 1> httpd_util:rfc1123_date({{2017, 03, 26},{1, 0, 0}}). ** exception error: no case clause matching [] in function httpd_util:rfc1123_date/1 (httpd_util.erl, line 334) To alleviate this, simply add a clause to handle the empty list and return the original time in the expected rfc1123 format. This is the approach of other modules which make use of the calender:local_time_to_universal_time_dst/1 function. The formatted date is then returned without error: 2> httpd_util:rfc1123_date({{2017, 03, 26},{1, 0, 0}}). "Sun, 26 Mar 2017 01:00:00 GMT"
2017-04-04Merge branch 'maint'Ingela Anderton Andin
Conflicts: OTP_VERSION erts/vsn.mk lib/crypto/c_src/crypto.c lib/crypto/src/crypto.erl lib/ssh/src/ssh.erl
2017-03-31Merge branch 'voltone/inets/httpc_redirect_normalize_host/PR-1381/OTP-14301' ↵Erlang/OTP
into maint-19 * voltone/inets/httpc_redirect_normalize_host/PR-1381/OTP-14301: Omit port from Host header on redirect to well-known port
2017-03-17Omit port from Host header on redirect to well-known portBram Verburg
ERL-316, as part of 19.3, adds the port number to the Host header upon automatic redirection. The port number is included even if it is a well-known port (80, 443). This is different from the behaviour of most HTTP clients, as well as httpc's own for new requests. The added port number can lead to problems such as this one, where the request signature assumes the client will not send the :443 suffix on redirection to an https URL: https://github.com/nerves-project/nerves/issues/96 I was unable to add a test case, since that would require a server on a well-known port, but I manually verified that the GitHub/S3 signing issue was indeed resolved with this patch.