Commit graph

162 commits

Author SHA1 Message Date
kazu
c4e5930f9d Specify frozen_string_literal: true
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-06 04:55:05 +00:00
naruse
0078e40115 raise error if value contains CR/LF in iniheader of initialize_http_header
like r59693, initialize_http_header also should raise error. [Bug #14208]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-20 12:06:59 +00:00
shyouhei
f2a91397fd Add uplevel keyword to Kernel#warn and use it
If uplevel keyword is given, the warning message is prepended
with caller file and line information and the string "warning: ".
The use of the uplevel keyword makes Kernel#warn format output
similar to how rb_warn formats output.

This patch modifies net/ftp and net/imap to use Kernel#warn
instead of $stderr.puts or $stderr.printf, since they are used
for printing warnings.

This makes lib/cgi/core and tempfile use $stderr.puts instead of
warn for debug logging, since they are used for debug printing
and not for warning.

This does not modify bundler, rubygems, or rdoc, as those are
maintained outside of ruby and probably wish to remain backwards
compatible with older ruby versions.

rb_warn_m code is originally from nobu, but I've changed it
so that it only includes the path and lineno from uplevel
(not the method), and also prepends the string "warning: ",
to make it more similar to rb_warn.

From: Jeremy Evans code@jeremyevans.net
Signed-off-by: Urabe Shyouhei shyouhei@ruby-lang.org


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-12 11:56:25 +00:00
hsbt
6693e3e723 Fixed misspelling words.
These are detected by https://github.com/client9/misspell

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-22 11:27:06 +00:00
kazu
dabdec31e4 Use caller with length to reduce unused strings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-21 14:40:03 +00:00
naruse
56f91c6ec5 HTTPHeader#add_field should allow binary [Bug #13926]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-25 14:28:53 +00:00
ko1
7e8cdaa6c3 to_str -> to_s
* lib/net/http/header.rb (set_field): `val` can not have `to_str`.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-30 22:23:45 +00:00
naruse
427f5b5713 A HTTP Header value must not contain CR or LF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-30 17:24:05 +00:00
kazu
92c52f0832 Fix NameError: uninitialized constant Net
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-04 12:00:00 +00:00
naruse
79d9955180 Define classes for r58800
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-19 16:19:46 +00:00
naruse
bd73d37471 Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]
Note that 418 I'm a teapot doesn't exist because RFC 2324 and
RFC 7168 are not registered in IANA repository.
https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-19 16:06:25 +00:00
naruse
cca77ee9ca Add more HTTP status classes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-19 16:06:18 +00:00
a_matsuda
39edad0380 Fix undefined method 'dump' for nil:NilClass (NoMethodError)
Patch by: Dmitry Vorotilin <d.vorotilin@gmail.com> (@route)
Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1475

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-08 20:25:44 +00:00
hsbt
5c200b9ab5 * lib/net/http/response.rb: Improve document readability.
[fix GH-1411][ci skip] Patch by @stz-seongheon

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-05 09:02:50 +00:00
hsbt
6f6ed7fbba * lib/net/http/header.rb: Fix typo. [ci skip][fix GH-1407]
* transcode.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-16 02:18:51 +00:00
shugo
554c879f1f * lib/net/http/generic_rquest.rb (write_header): A Request-Line must
not contain CR or LF.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-06 00:01:20 +00:00
ktsj
02377a3a79 * lib/net/http/header.rb: [DOC] add documentation that
Net::HTTPHeader#{each_header,each_name,each_capitalized_name,
  each_value,each_capitalized} without block returns an enumerator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-04 09:46:48 +00:00
ktsj
6da2214119 * lib/net/http/header.rb (Net::HTTPHeader#{each_header,each_name,
each_capitalized_name,each_value,each_capitalized}): Return
  sized enumerators.

* test/net/http/test_httpheader.rb: add test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-04 09:46:46 +00:00
nobu
e83922a3ce net/http/header.rb: refactor
* lib/net/http/header.rb (connection_close?): match headers
  without making intermediate arrays.

* lib/net/http/header.rb (connection_keep_alive?): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-25 07:56:07 +00:00
hsbt
809d3770e6 * lib/net/http/header.rb: Warn nil variable on HTTP Header.
It caused to NoMethodError. [fix GH-952][fix GH-641] Patch by @teosz
* test/net/http/test_httpheader.rb: Added test for nil HTTP Header.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 01:46:02 +00:00
normal
778bbac8ac stdlib: avoid extra calls to eliminate "\n" from Base64
We may use the '0' (zero) to avoid adding the line feed.
Furthermore, the '*' (asterisk) modifier is not needed for
a single-element arrays.

* ext/psych/lib/psych/visitors/yaml_tree.rb (visit_String):
  eliminate chomp
* lib/net/http.rb (connect): eliminate delete
* lib/net/http/header.rb (basic_encode): ditto
* lib/net/imap.rb (authenticate): eliminate gsub
  (self.encode_utf7): shorten delete arg
* lib/net/smtp.rb (base64_encode): eliminate gsub
* lib/open-uri.rb (OpenURI.open_http): eliminate delete
* lib/rss/rss.rb: ditto
* lib/securerandom.rb (base64): ditto
  (urlsafe_base64): eliminate delete!
* lib/webrick/httpauth/digestauth.rb (split_param_value):
  eliminate chop
* lib/webrick/httpproxy.rb (do_CONNECT): eliminate delete
  (setup_upstream_proxy_authentication): ditto
  [ruby-core:72666] [Feature #11938]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-10 00:35:43 +00:00
hsbt
95aadb1426 * lib/net/http/responses.rb: Added new response class for 451 status code.
* lib/net/http.rb: documentation for HTTPUnavailableForLegalReasons

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 11:53:15 +00:00
a_matsuda
3a05da1321 [DOC] Fix typos
* benchmark.rb
* getoptlong.rb
* irb.rb
* net/http.rb
* net/http/header.rb
* net/imap.rb
* optparse.rb
* pstore.rb
* webrick.rb
* xmlrpc.rb

[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 03:43:23 +00:00
naruse
3e92b635fb Add frozen_string_literal: false for all files
When you change this to true, you may need to add more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
hsbt
059c9c1cf3 * ext/socket/lib/socket.rb: use safe navigation operator.
[fix GH-1142] Patch by @mlarraz
* lib/drb/extservm.rb: ditto.
* lib/net/http.rb: ditto.
* lib/net/http/response.rb: ditto.
* lib/scanf.rb: ditto.
* lib/uri/generic.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 08:05:35 +00:00
ktsj
9cf11b70ca * lib/net/http/response.rb (Net::HTTPResponse::Inflater#finish):
fix a bug that empty gzipped response body causes Zlib::BufError.
  [ruby-core:68846] [Bug #11058]

* test/net/http/test_httpresponse.rb: tests for the above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-01 08:23:32 +00:00
ktsj
d7bb66df26 * lib/net/http/response.rb (Net::HTTPResponse#inflater):
fix TypeError. An exception object might be nil.
  [ruby-core:68846] [Bug #11058]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-01 08:22:50 +00:00
hsbt
ea67287ac1 * lib/net/http/responses.rb: Added 308 status to CODE_TO_OBJ list.
[fix GH-961] Patch by @billinghamj

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-09 01:19:01 +00:00
naruse
7604ca41ff fix previous commit for nil case
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 10:04:33 +00:00
naruse
84de36c748 * lib/net/http/response.rb (inflater): CONTENT_ENCODING can be upper
case. [ruby-core:69670] [Bug #11285] patched by Andy Chu

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 07:14:31 +00:00
normal
b90ad8a2f6 lib/net/*: use io/wait methods instead of IO.select
io/wait is expected to work on any platform where sockets are
supported.  io/wait methods uses fewer allocations and uses
ppoll internally under Linux for better performance on
high-numbered FDs.

[ruby-core:35572] describes the performance advantage of ppoll
on high-numbered FDs.

* lib/net/protocol.rb (rbuf_fill): use IO#wait_*able
* lib/net/http/generic_request.rb (wait_for_continue): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-15 20:11:23 +00:00
hsbt
1a98f56ae1 * lib/net/http/header.rb: pass header names as symbols.
Patch by @DamirSvrtan [fix GH-805]
* test/net/http/test_httpheader.rb: added test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-08 11:09:44 +00:00
naruse
0f7e301fe1 * lib/net/http/response.rb (Net::HTTPResponse): require one or more
spaces [Bug #10591].
  by leriksen <leif.eriksen.au@gmail.com>
  https://github.com/ruby/ruby/pull/782 fix GH-782
  NOTE: graph.facebook.com returns without SP Reason-Phrase.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-23 18:10:19 +00:00
naruse
90a16cb228 * lib/net/http/requests.rb (Net::HTTP::Options::RESPONSE_HAS_BODY):
OPTIONS requests may have response bodies. [Feature #8429]
  http://tools.ietf.org/html/rfc7231#section-4.3.7

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-05 19:20:28 +00:00
naruse
70a2eb6399 * lib/net/http/generic_request.rb (Net::HTTP::GenericRequest#exec):
handle req['host'] in update_uri.

* lib/net/http/generic_request.rb
  (Net::HTTP::GenericRequest#update_uri):
  use req['host'] if it is explicitly set. Even if URI is given,
  it is already used for the initial value of req['host'].
  Therefore overwritten value should be respected. [Bug #10054]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-05 19:10:23 +00:00
naruse
c165203564 * lib/net/http/generic_request.rb
(Net::HTTP::GenericRequest#update_uri):
  handle scheme, host, and port to reflect connection to @uri.

* lib/net/http.rb (Net::HTTP#begin_transport): move trivial handling
  to Net::HTTP::GenericRequest#update_uri.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-05 19:10:05 +00:00
naruse
159fa373f8 * lib/net/http/generic_request.rb
(Net::HTTP::GenericRequest#initialize):
  optimize object allocation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-05 19:09:43 +00:00
hsbt
448c87008e * lib/cgi/core.rb: remove unused variables.
* lib/erb.rb: ditto.
* lib/mkmf.rb: ditto.
* lib/net/http/response.rb: ditto.
* lib/optparse/version.rb: ditto.
* lib/prime.rb: ditto.
* lib/racc/parser.rb: ditto.
* lib/rexml/document.rb: ditto.
* lib/rexml/dtd/dtd.rb: ditto.
* lib/rexml/element.rb: ditto.
* lib/rexml/functions.rb: ditto.
* lib/rexml/parsers/xpathparser.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-27 11:04:28 +00:00
naruse
d8a2c3c03f * lib/net/htp/response.rb (Net::Inflater#inflate_adapter):
prevent automatic encoding conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-03 19:46:44 +00:00
naruse
6811973d13 * lib/net/http/response.rb (Net::HTTP.each_response_header):
raise first exception even if inflate_body_io.finish raises error.
  when begin block raises error, finish usually raises error too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-03 19:46:34 +00:00
hsbt
595782b924 * lib/net/http/responses.rb: added Net::HTTPPermanentRedirect(308)
Contributed by @yorkie [fix GH-638]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-12 09:32:36 +00:00
naruse
91539d71d8 * lib/net/http/responses.rb:
Add `HTTPIMUsed`, as it is also supported by rack/rails.
  RFC - http://tools.ietf.org/html/rfc3229
  by Vipul A M <vipulnsward@gmail.com>
  https://github.com/ruby/ruby/pull/447 fix GH-447

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 17:11:46 +00:00
hsbt
5728783a04 * lib/net/http/header.rb: [DOC] Net::HTTP#to_hash returns pair of key and array values. Thanks @bjhaid [fix GH-467]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-07 10:33:16 +00:00
nobu
0be97c7015 range.c: revert r42400
* range.c (range_last): revert r42400.  [Bug #8739]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-08 01:27:19 +00:00
nobu
e667aaf4ca net/http/header.rb: remove a hack
* lib/net/http/header.rb (Net::HTTPHeader#set_range): remove a hack
  for the bug fixed at [Bug #8739].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06 12:38:51 +00:00
hsbt
4edd787b14 cleanup by @vipulnsward [GH fixes #262]
lib/net/http/generic_request.rb: Removes unnecessary assignment
lib/net/ftp.rb: Fixes dead code


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39876 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-22 11:57:51 +00:00
drbrain
f58d398075 * lib/net/http: Do not handle Content-Encoding when the user sets
Accept-Encoding.  This allows users to handle Content-Encoding for
  themselves.  This restores backwards-compatibility with Ruby 1.x.
* lib/net/http/generic_request.rb:  ditto.
* lib/net/http/response.rb:  ditto
* test/net/http/test_http.rb:  Test for the above.
* test/net/http/test_http_request.rb:  ditto.
* test/net/http/test_httpresponse.rb:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-14 01:08:19 +00:00
akr
64dbc10b5f * lib/net/http/generic_request.rb (encode_multipart_form_data): remove
tempfile explicitly.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 12:41:56 +00:00
naruse
a1de1fa575 * lib/net/http/generic_request.rb:
Amazon ECA API and GTE/1.3 disallow requests whose host has port
  number if its port number equlas to default port number of the
  scheme. [Bug #7650]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-05 15:04:48 +00:00
naruse
02253a7961 * lib/net/http/generic_request.rb (Net::HTTPGenericRequest):
set content-length to zero on empty post requests
  by Gregory Ostermayr <gregory.ostermayr@gmail.com>
  https://github.com/ruby/ruby/pull/201 fix GH-201

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-23 19:58:44 +00:00