Age | Commit message (Collapse) | Author |
|
|
|
Fixed handling of URL paths that contain space (%20) characters.
Change-Id: Ic09691e35c70ee005af7637a6ec3ae588097bec1
|
|
* peterdmv/inets/autoredirect/ERL-333/OTP-14729:
inets: Add support for URI-references in Location
|
|
* peterdmv/inets/http_content_injection/ERL-456/OTP-14726:
inets: Fix http content injection bug in httpc
|
|
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.
|
|
- uri_string module used for parsing URIs.
- Removed url_encode option as only valid URIs shall be handled
by the http client.
- The client rejects URIs that are not compliant with RFC 3986.
Change-Id: I0a5b9766f6463a9802e0b02b445a2c4c91f02236
|
|
RFC 2616 requires an absolute URI in 'Location' header field for
redirects. RFC 7231 obsoleted RFC 2616 and allows URI-references.
Updated httpc_response to support URI-references, based on the
URI resolution algorithm defined by RFC 3986 (5.2.2. Transform
References).
Change-Id: I42227d32f458b6e7a60d55b40407c4092e69b222
|
|
* 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
|
|
|
|
Add test in the correct place which was the reason the guard became missing
without being noticed.
|
|
[#ERL-407]: Fix httpc misbehaviour based on RFC7230, section 3.3.3
OTP-14727
|
|
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
|
|
|
|
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.
|
|
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.
|
|
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
|
|
Guard test for error case was not updated to handle httpc stream concept
properly.
|
|
* ingela/inets/not-chunked-esi/OTP-14656:
inets: httpd - Fix broken handling of POST requests
|
|
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
|
|
|
|
This is tested by new erts check that will cause badarg when trying to
execute scripts via mod_cgi
|
|
* 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
|
|
* peterdmv/prepare_inets_release:
inets: prepare for release
|
|
* peterdmv/inets/http_uri_backwards_compat/OTP-14573:
inets: Restore old behavior when parsing "+"
|
|
Add host_name to hold the resolved name incorrectly provided as server
name before.
|
|
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
|
|
Add host_name to hold the resolved name incorrectly provided as server
name before.
|
|
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
|
|
"+" is part of sub-delims according to RFC 3986 and shall not be
converted to space.
|
|
|
|
HTTP server truncates existing logs
OTP-14530
|
|
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.
|
|
The status code provided by other modules was being
ignored and 200 (OK) was logged for all responses.
|
|
|
|
|
|
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
|
|
Add unicode binary support to http_uri functions
OTP-14404
|
|
Conflicts:
OTP_VERSION
lib/inets/vsn.mk
lib/ssl/vsn.mk
|
|
Error when a non-DST time is passed to the httpd_util:rfc1123_date/1 function
OTP-14394
|
|
|
|
|
|
|
|
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"
|
|
Conflicts:
OTP_VERSION
erts/vsn.mk
lib/crypto/c_src/crypto.c
lib/crypto/src/crypto.erl
lib/ssh/src/ssh.erl
|
|
into maint-19
* voltone/inets/httpc_redirect_normalize_host/PR-1381/OTP-14301:
Omit port from Host header on redirect to well-known port
|
|
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.
|
|
|
|
|
|
|
|
|