aboutsummaryrefslogtreecommitdiffstats
path: root/lib/inets
AgeCommit message (Collapse)Author
2018-10-08Merge branch 'peterdmv/inets/httpc-content-type/ERL-736/OTP-15339' into maintPéter Dimitrov
* peterdmv/inets/httpc-content-type/ERL-736/OTP-15339: inets: Fix handling of 'Content-Type' (httpc) Change-Id: I8c9f48d8474dba7a83e4ecba6b8146faffb559fc
2018-10-02inets: Fix handling of 'Content-Type' (httpc)Péter Dimitrov
'Content-Type' is sent when it is explicitly set as a header or there is a non-empty body in the request. Former implementation dropped the explicit 'Content-Type' when the request had an empty body. Change-Id: I00a9e4a5011f9d28c04c0dfc5fe1561b1ab7eb09
2018-10-02inets: Fix handling of 'Content-Length' (httpc)Péter Dimitrov
RFC7230 3.3.2 A sender MUST NOT send a 'Content-Length' header field in any message that contains a 'Transfer-Encoding' header field. Change-Id: I568fc65cafe3ab30baad56c002459ff74e4dbb28
2018-09-25Merge branch 'maint'Henrik Nord
2018-09-24Prepare releaseErlang/OTP
2018-09-21Merge branch 'maint'Henrik Nord
2018-09-21Update copyright yearHenrik Nord
2018-08-28Merge branch 'maint'Péter Dimitrov
* maint: Updated OTP version Update release notes stdlib: Let dets:open_file() crash when given raw file name Fix kernel_app doc logger_level default from info to notice Change-Id: I581946ac5cec6574ed79017e2987039c1fdcf80a
2018-08-28Merge branch 'maint-20' into maintPéter Dimitrov
* maint-20: Updated OTP version Update release notes Change-Id: I78586395e5784dc76b8a803a25f8054a251e1fd8
2018-08-28Merge pull request #1894 from CrowdHailer/patch-1Ingela Andin
Update httpc_manager.erl to fix typo
2018-08-28Update release notesErlang/OTP
2018-08-27Merge branch 'maint'Péter Dimitrov
* maint: inets: Prepare for release inets: Robust handling of 204, 304, 1xx responses inets: Do not use chunked encoding with 1xx, 204, 304 Change-Id: Ia739a7b1a7f1482194def99d039b5a7c8133a6ca
2018-08-27Merge branch 'maint-20' into maintPéter Dimitrov
* maint-20: inets: Prepare for release inets: Robust handling of 204, 304, 1xx responses inets: Do not use chunked encoding with 1xx, 204, 304 Change-Id: Ia88eb1d217b46fb01b1d7544d9ef34788c87abbd
2018-08-27Merge branch 'peterdmv/inets/fix_http_client/OTP-15242' into maint-20Péter Dimitrov
* peterdmv/inets/fix_http_client/OTP-15242: inets: Prepare for release inets: Robust handling of 204, 304, 1xx responses Change-Id: I12dced982907c3462fefb8a4ffaae8b365821f97
2018-08-27inets: Prepare for releasePéter Dimitrov
Change-Id: I891cc997475780f22a60119778984739d560f203
2018-08-24inets: Robust handling of 204, 304, 1xx responsesPéter Dimitrov
All 1xx (informational), 204 (no content), and 304 (not modified) responses MUST NOT include a message-body, and thus are always terminated by the first empty line after the header fields. This implies that chunked encoding MUST NOT be used for these status codes. This commit updates the client to gracefully handle responses from faulty server implementations that can send chunked encoded 204, 304 or 1xx responses. Change-Id: I2dd502e28b3c6e121640083118fa5c3e479f5194
2018-08-24Merge branch 'maint'Lars Thorsen
* maint: Updated OTP version Prepare release Updated the engine load functionality inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected ssl: Make sure that a correct cipher suite is selected
2018-08-24Merge branch 'maint-21' into maintLars Thorsen
* maint-21: Updated OTP version Prepare release Updated the engine load functionality inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected ssl: Make sure that a correct cipher suite is selected
2018-08-23Prepare releaseErlang/OTP
2018-08-22inets: Do not use chunked encoding with 1xx, 204, 304Péter Dimitrov
All 1xx (informational), 204 (no content), and 304 (not modified) responses MUST NOT include a message-body, and thus are always terminated by the first empty line after the header fields. This implies that chunked encoding MUST NOT be used for these status codes. Change-Id: If6778165c947e64bc20d1ecab7a669e0b096f1a9
2018-08-16Merge branch 'maint'Lukas Larsson
2018-08-15fix double parenthesis and badly formatter <v> tagsMariano Guerra
(cherry picked from commit 1b36c8ff81e896f9aa172603962f838d980668a0)
2018-08-15inets: Prepare for releaseIngela Anderton Andin
2018-08-15inets: Use status code 501 when no mod_* handles the requestIngela Anderton Andin
Conflicts: lib/inets/test/httpd_SUITE.erl
2018-08-15Merge branch 'maint'Ingela Anderton Andin
2018-08-15Merge branch 'maint-20' into maintIngela Anderton Andin
* maint-20: inets: Remove 21 test case Updated OTP version Update release notes Conflicts: OTP_VERSION lib/inets/doc/src/notes.xml lib/inets/test/httpd_SUITE.erl lib/inets/vsn.mk otp_versions.table
2018-08-15inets: Remove 21 test caseIngela Anderton Andin
A test case unrelated to the patch was accidentally added when backporting the solution.
2018-08-15Merge branch 'maint'Ingela Anderton Andin
2018-08-14Update release notesErlang/OTP
2018-08-14Merge branch 'ingela/inets/maint-20/status-501/ERIERL-218/OTP-15215' into ↵Erlang/OTP
maint-20 * ingela/inets/maint-20/status-501/ERIERL-218/OTP-15215: inets: Prepare for release inets: Use status code 501 when no mod_* handles the request # Conflicts: # lib/inets/test/httpd_SUITE.erl # lib/inets/vsn.mk
2018-08-14inets: Prepare for releaseIngela Anderton Andin
2018-08-14inets: Use status code 501 when no mod_* handles the requestIngela Anderton Andin
Conflicts: lib/inets/test/httpd_SUITE.erl
2018-08-14inets: Use status code 501 when no mod_* handles the requestIngela Anderton Andin
2018-07-27Change "can not" into "cannot"Raimo Niskanen
I did not find any legitimate use of "can not", however skipped changing e.g RFCs archived in the source tree.
2018-07-27Remove newline between can and notRaimo Niskanen
After this whitespace modification there should be no "can not"s separated by a newline in the entire OTP repository, so to find them all a simple git grep will do just fine.
2018-07-26Update httpc_manager.erlPeter Saxton
2018-07-24Merge branch 'maint'John Högberg
* maint: Fix typo in xmerl_scan:string/1 Updated OTP version Prepare release ssl: Engine key trumps certfile option inets: Prepare for release inets: Improve error handling
2018-07-24Merge branch 'maint-20' into maintJohn Högberg
* maint-20: Updated OTP version Prepare release ssl: Engine key trumps certfile option inets: Prepare for release inets: Improve error handling
2018-07-20Prepare releaseErlang/OTP
2018-07-17inets: Prepare for releaseIngela Anderton Andin
2018-07-17inets: Improve error handlingIngela Anderton Andin
2018-07-16Merge branch 'maint'Lukas Larsson
2018-07-13docs: make clean all XMLDIRLukas Larsson
2018-07-09Merge branch 'maint'Péter Dimitrov
* maint: Don't modify URI, explicitly pass scheme to get_port Update scheme on redirect URI and accumulator Fix accidental Port assertion in resolve_authority Add test case on relative redirects with ports Do not assert that new URI port is same as old port Add mixed test group, http -> https redirect test Change-Id: I23b976dbc64e19787d6eca5757df50a1b7098857
2018-07-06Don't modify URI, explicitly pass scheme to get_portRoss Schlaikjer
2018-07-06Update scheme on redirect URI and accumulatorRoss Schlaikjer
This is necessary to prevent an error when calling get_port inside resolve_authority
2018-07-06Fix accidental Port assertion in resolve_authorityRoss Schlaikjer
2018-07-06Add test case on relative redirects with portsRoss Schlaikjer
2018-07-06Do not assert that new URI port is same as old portRoss Schlaikjer
When handling 301 redirects from http -> https on Erlang 21.0.1, the following error is encountered: ``` 8> Options = []. 9> httpc:request(head, {"http://rhye.org", []}, Options, []). {error,{shutdown,{{error,{badmatch,443}}, [{httpc_response,resolve_uri,7, [{file,"/usr/local/lib/erlang/lib/inets-7.0/src/http_client/httpc_response.erl"}, {line,431}]}, {httpc_response,redirect,2, [{file,"/usr/local/lib/erlang/lib/inets-7.0/src/http_client/httpc_response.erl"}, {line,396}]}, {httpc_handler,handle_response,1, [{file,"httpc_handler.erl"},{line,1052}]}, {httpc_handler,handle_info,2, [{file,"httpc_handler.erl"},{line,283}]}, {gen_server,try_dispatch,4, [{file,"gen_server.erl"},{line,637}]}, {gen_server,handle_msg,6, [{file,"gen_server.erl"},{line,711}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,249}]}]}}} ``` This seems to be caused by the following code in `resolve_uri`: ``` resolve_uri(Scheme, Host, Port, Path, Query, URI, Map0) -> case maps:is_key(scheme, URI) of true -> Port = get_port(URI) ``` The value of `Port` passed in to `resolve_uri` here is 80, since the original URL is http. However, since the redirected URL is https, the `get_port` call returns 443, which is not equal to 80, and crashes. Assigning to a new variable seems to fix redirects.
2018-07-06Add mixed test group, http -> https redirect testRoss Schlaikjer