Commit graph

344 commits

Author SHA1 Message Date
BurdetteLamar
2c7fe9c0a6 [ruby/net-http] Enhanced RDoc for Net::HTTP
e65a3d9f11
2023-02-07 16:01:04 +00:00
Burdette Lamar
a641f6422c [ruby/net-http] [DOC] Reorganize doc for proxy server
(https://github.com/ruby/net-http/pull/117)

f8b6b76cba
2023-02-07 14:53:38 +00:00
git
06195e7603 * remove trailing spaces. [ci skip] 2023-02-04 18:06:18 +00:00
Burdette Lamar
6db79aefec [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
(https://github.com/ruby/net-http/pull/116)

22c0d34002
2023-02-04 18:06:06 +00:00
Burdette Lamar
faa4c2279a [ruby/net-http] [DOC] Enhanced RDoc for write_timeout
(https://github.com/ruby/net-http/pull/115)

6da39b0461
2023-02-03 14:33:53 +00:00
BurdetteLamar
3ebc80314c [ruby/net-http] Redirection revision
9a4e2d3a2a
2023-01-31 21:01:04 +00:00
Burdette Lamar
d92289f633 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
(https://github.com/ruby/net-http/pull/110)

b098caa5e4
2023-01-31 14:18:50 +00:00
Hiroshi SHIBATA
fe7d4eed25
Manually merged https://github.com/ruby/net-http/pull/106
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
Co-authored-by: BurdetteLamar <burdettelamar@yahoo.com>
2023-01-31 13:14:05 +09:00
Hiroshi SHIBATA
08d21b4bd2
[ruby/net-http] Bump version to 0.3.2
b8bdb7248e
2022-12-19 10:50:21 +09:00
BurdetteLamar
d5eafaed81 [ruby/net-http] Enhanced RDoc for Net::HTTP
da626e4e42
2022-12-15 21:33:19 +00:00
Burdette Lamar
3e5f8b2af3 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
(https://github.com/ruby/net-http/pull/89)

86b84eb307
2022-12-14 13:55:06 +00:00
Burdette Lamar
f1cdc129d4 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
(https://github.com/ruby/net-http/pull/85)

9d9040fb79
2022-12-11 22:26:18 +00:00
Peter Zhu
9d4483f24d [ruby/net-http] [DOC] Fix call-seq for Net::HTTP.start
The lack of a newline between the call-seq and the documentation was
causing the documentation to be parsed as a call-seq.

1a212e2065
2022-12-06 14:27:15 +00:00
Hiroshi SHIBATA
9e114338b9 [ruby/net-http] Bump version to 0.3.1
09a9ea163a
2022-12-05 06:42:56 +00:00
BurdetteLamar
909ea6b60d [ruby/net-http] About the Examples moved to separate file
0512b5bfc9
2022-11-19 15:33:28 +00:00
BurdetteLamar
dbb902fc91 [ruby/net-http] Enhanced RDoc for Net::HTTP
4444e8cea4
2022-11-19 10:17:54 -05:00
BurdetteLamar
951eabdcf2 [ruby/net-http] Enhanced RDoc for Net::HTTP
6b30c5310b
2022-11-19 10:17:53 -05:00
Burdette Lamar
a48e01ccba [ruby/net-http] Update lib/net/http.rb
16d042fad6

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-11-11 17:05:29 +00:00
BurdetteLamar
4d9ada223b [ruby/net-http] Prettify class hierarchies in Net::HTTP
4a5732e210
2022-11-11 17:05:28 +00:00
Hiroshi SHIBATA
c5f5403f6e [ruby/net-http] Bump version to 0.3.0 2022-10-24 05:45:44 +00:00
Hiroshi SHIBATA
f88bff7705 [ruby/net-http] Revert "Replace Timeout.timeout in Net:HTTP#connect"
This reverts commit 753cae3bbc.

98caa38204
2022-10-21 12:39:52 +00:00
Jeremy Evans
cd77e71bba [ruby/net-http] Remove ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE
This list is out of date.  At least OpenBSD since 2013 does not
allow one user to read the environment variables of a process
run by another user.

While we could try to keep the list updated, I think it's a bad
idea to not use the user/password from the environment, even if
another user on the system could read it.  If http_proxy exists
in the environment, and other users can read it, it doesn't
make it more secure for Ruby to ignore it.  You could argue that
it encourages poor security practices, but net/http should provide
mechanism, not policy.

Fixes [Bug #18908]

1e4585153d
2022-09-28 17:26:03 +09:00
Hiroshi SHIBATA
ecf32dbfc0 [ruby/net-http] Bump version to 0.2.2
992d07cb41
2022-05-09 18:20:31 +09:00
Charles Oliver Nutter
cd2613b6a4 [ruby/net-http] Bump version to 0.2.1.pre1
0017cc64c0
2022-04-28 05:56:26 +09:00
Karol Bucek
cf73cf5981 [ruby/net-http] Feature detect to make net/http usable with JRuby
Handle missing session_new_cb= and do not call
session_cache_mode=, as JRuby SSL does not support
these methods.

3237ef4d8c
2022-04-20 13:01:08 +09:00
Jeremy Evans
90ccc5674a [ruby/net-http] Add ignore_eof access to HTTP and HTTPResponse
The ignore_eof setting on HTTPResponse makes it so an EOFError is
raised when reading bodies with a defined Content-Length, if the
body read was truncated due to the socket be closed.

The ignore_eof setting on HTTP sets the values used in responses
that are created by the object.

For backwards compatibility, the default is for both settings is
true.  However, unless you are specifically tested for and handling
truncated responses, it's a good idea to set ignore_eof to false so
that errors are raised for truncated responses, instead of those
errors silently being ignored.

Fixes [Bug #14972]

4d47e34995
2022-04-20 10:22:06 +09:00
Jeremy Evans
ebb4378237 [ruby/net-http] Add HTTP#response_body_encoding for setting response body encoding
This allows for the ability to opt-in to a method to set the
encoding of response bodies.  By setting the accessor to a String
or Encoding instance, it will use the specified encoding.
Setting the value of true will try to detect the encoding of the
response body, either using the Content-Type header (assuming it
specifies charset) or by scanning for a <meta> tag in the document
that specifies the encoding.  The default is false in which case
no forcing of encoding will be done (same as before the patch).

Implements [Feature #2567]
Implements [Feature #15517]

6233e6b7c1

Co-authored-by: Yui Naruse <naruse@ruby-lang.org>
2022-04-12 00:17:34 +09:00
Jeremy Evans
7529c53891 [ruby/net-http] Do not set SNI hostname if connecting to IP address
RFC 6066, section 3, explicitly disallows the use of an IP address
as an SNI server name.  So check if the connection is being made
to an IP address using the resolv regexps, and do not set an SNI
hostname in that case.

Recent changes to LibreSSL make it more strictly follow RFC 6066,
resulting an s.hostname= raising an error if passed an IP address.
When such verions of LibreSSL are used, this change not only fixes
the net/http tests, it also fixes tests for webrick and open-uri,
which both make SSL connections to 127.0.0.1 using net/http in
their tests.

Avoid warning in the openssl extension by unsetting
@ssl_context.verify_hostname if connecting to an IP address.
Make changes so that the post_connection_check still happens
when connecting to an IP address, which is necessary to keep
checking that the certificate returned includes the IP address,
which one of the tests depends on.

Revert the previous change that modified the regexp used for
checking the error message.

fa68e64bee
2022-02-03 05:10:21 +09:00
Brandon Weaver
ac1bb6b510 [ruby/net-http] Rename D to debug in Net::HTTP
Renames `D` to `debug` in `Net::HTTP` and introduces an alias for
backwards compatibility. This was done for readability reasons, in that
`D` did not clearly reflect what the method was doing and can cause some
confusion.

582d6e87d6
2022-01-17 10:17:23 +09:00
Kazuhiro NISHIYAMA
5757696e07
res.response_body_permitted? is not defined
`response_body_permitted?` is a method of request.
2022-01-05 16:20:11 +09:00
Kazuki Yamaguchi
5f2c4e344d [ruby/net-http] Reset keep_alive timer on new connection
The last_communicated timestamp is for HTTP persistent connection, to
decide whether the current TCP connection may be reused for the
subsequent requests or not. Naturally, the timer must be reset if the
connection is recreated since it is no longer relevant.

0a013de42d
2021-11-04 20:44:04 +09:00
180909
6c812c6f4e add missing http response code in doc 2021-10-30 10:16:17 +09:00
Hiroshi SHIBATA
cb4c98f949 [ruby/net-http] Bump up net-http version to 0.2.0
f3e65e2a31
2021-10-21 21:01:06 +09:00
Kazuki Yamaguchi
364044e090 [ruby/net-http] Do not require stringio
It is not used in net/http library code since commit 15ccd0118c13
(r36473 in ruby svn trunk, 2012).

require's in test suite are also cleaned up.

996d18a43f
2021-05-06 15:58:41 +09:00
Jeremy Evans
0296a64450 [ruby/net-http] Initialize OpenSSL early before creating TCPSocket
OpenSSL make take some time to initialize, and it would be best
to take that time before connecting instead of after.

From joshc on Redmine.

Fixes Ruby Bug #9459

14e09fba24
2021-04-28 11:03:12 +09:00
Lukas Eipert
842f00f452 [ruby/net-http] Decode user and password from env configured proxy
If someone sets an env variable defining a http_proxy, containing a
username / password with percent-encoded characters, then the resulting
base64 encoded auth header will be wrong.

For example, suppose a username is `Y\X` and the password is `R%S] ?X`.
Properly URL encoded the proxy url would be:

    http://Y%5CX:R%25S%5D%20%3FX@proxy.example:8000

The resulting proxy auth header should be: `WVxYOlIlU10gP1g=`, but the
getters defined by ruby StdLib `URI` return a username `Y%5CX` and
password `R%25S%5D%20%3FX`, resulting in `WSU1Q1g6UiUyNVMlNUQlMjAlM0ZY`.
As a result the proxy will deny the request.

Please note that this is my first contribution to the ruby ecosystem, to
standard lib especially and I am not a ruby developer.

References:

- https://gitlab.com/gitlab-org/gitlab/-/issues/289836
- https://bugs.ruby-lang.org/projects/ruby-master/repository/trunk/revisions/58461
- https://bugs.ruby-lang.org/issues/17542

e57d4f38aa
2021-04-28 11:01:23 +09:00
mohamed
8a2b7b79ee [ruby/net-http] Replace Timeout.timeout in Net:HTTP#connect
Use Socket.tcp's connect_timeout option instead

753cae3bbc
2021-04-28 10:58:13 +09:00
Gannon McGibbon
37258b64c7
[ruby/net-http] Replace "iff" with "if and only if"
iff means if and only if, but readers without that knowledge might
assume this to be a spelling mistake. To me, this seems like
exclusionary language that is unnecessary. Simply using "if and only if"
instead should suffice.

ffb87cad32
2021-01-23 10:20:28 +09:00
Igor Zubkov
ee1e690a2d
We don't need "require 'uri'" after "require 'net/http'". 2021-01-07 13:40:42 +09:00
Hiroshi SHIBATA
9b9cbbbc17
Update library versions of the default gems.
They are followed up with
  8fb02b7a97
2020-12-22 21:45:28 +09:00
Nobuyoshi Nakada
b2d96abb42 Extract version number from the source
"requiring version.rb" strategy has some issues.

- cannot work when cross-compiling
- often introduces wrong namespace
- must know the superclasses
- costs at each runtime than at build-time

etc.
2020-07-30 19:03:18 +09:00
Kir Shatrov
a16fcb4205 Update docs in net/http.rb
...to reflect that Net::HTTP.start accepts keep_alive_timeout as an option.
2020-06-05 08:46:06 +09:00
Kazuhiro NISHIYAMA
1d2fc91237
Add missing , 2020-05-12 13:25:22 +09:00
Stephen Touset
31af0dafba Expose SSLContext#extra_chain_cert in Net::HTTP
Currently, Net::HTTP can only send a single SSL certificate when it
establishes a connection. Some use-cases involve sending an entire
certificate chain to the destination; for this, SSLContext supports
assigning to #extra_chain_cert=.

This adds support in Net::HTTP for exposing this underlying SSLContext
property to end-users. [Feature #9758]
2020-05-12 12:55:04 +09:00
Takashi Kokubun
da6948753e
Fix an example committed to a wrong place [ci skip] 2020-03-10 22:36:48 -07:00
Takashi Kokubun
e0512b29aa
Let Net::HTTP.get take request headers (#2957)
* Let Net::HTTP.get take request headers

* Add more test cases for no header usages

* Add examples with request headers

* Add a NEWS entry [ci skip]

[Feature #16686]
2020-03-10 22:26:22 -07:00
Hiroshi SHIBATA
9cb1ffaa5c
Promote net-http to the default gems.
test/net/http/test_https.rb: rename fixture methods to read_fixture
  because it conflicts with test-unit gem.
2020-02-21 21:21:14 +09:00
Yuta Iwama
be6931f7f7 Add #verify_hostname= and #verify_hostname to skip hostname verification (#2858)
According to https://github.com/ruby/openssl/pull/60,

> Currently an user who wants to do the hostname verification needs to
call SSLSocket#post_connection_check explicitly after the TLS connection
is established.

if an user who wants to skip the hostname verification,
SSLSocket#post_connection_check doesn't need to be called

https://bugs.ruby-lang.org/issues/16555
2020-01-23 17:23:17 +09:00
NARUSE, Yui
af11efd377 fix ipaddr parameter of Net::HTTP.start to support proxy
54072e329c
2019-12-10 19:12:21 +09:00
Yusuke Endoh
3ca3c8d768 lib/net/http.rb: align the indentation 2019-12-10 14:15:35 +09:00