Commit graph

251 commits

Author SHA1 Message Date
naruse
8e9bbfd513 * lib/webrick/ssl.rb (WEBrick::Config::SSL): add new key
SSLTmpDhCallback to set SSLContext#tmp_dh_calback.

* lib/webrick/ssl.rb (WEBrick::GenericServer#setup_ssl_context):
  follow above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-01 20:46:31 +00:00
nobu
d059d718b5 remove trainling spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-21 04:50:18 +00:00
knu
3703619ed9 * lib/net/http/responses.rb, lib/webrick/httpstatus.rb: Add HTTP
response codes added in RFCs 2817 and 4918.  [ruby-core:45547]
  [Feature #6569]

* lib/net/http/responses.rb: Rename Net::HTTPMultipleChoice to
  Net::HTTPMultipleChoices, leaving the former as alias to the
  latter for backward compatibitily.  [ruby-core:45547]
  [Feature #6569]

* lib/net/http/responses.rb: Add comments about unused,
  still-in-draft and private extension response codes.
  [ruby-core:45547] [Feature #6569]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 15:20:27 +00:00
drbrain
0d7a94e31d * lib/net/http/responses.rb: Add RFC 6586 response codes. Patch by
Sangil Jung.  [ruby-trunk - Feature #6480]
* lib/net/http/response.rb:  ditto
* lib/net/http.rb:  ditto
* lib/webrick/httpstatus.rb:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08 22:40:14 +00:00
naruse
c26ea74ad6 * lib/webrick/server.rb (WEBrick::GenericServer#start):
partially revert r35315.

* test/webrick/test_server.rb (test_start_exception):
  received signal is delivered to the main thread, so it is needed to
  emulate it. patched by Eric Hodel. [ruby-core:44348] [Feature #6236]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-14 02:30:43 +00:00
naruse
deb0519aec * lib/webrick/server.rb (WEBrick::GenericServer#stop): fix r35303;
this method is to deny new connections, not shutdown yet.

* lib/webrick/server.rb (WEBrick::GenericServer#start):
  re-raise exception only when the exception is Interrupt (^C).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-13 06:21:50 +00:00
drbrain
8c5c5a221f * lib/webrick/server.rb (module WEBrick::GenericServer): A server
will now continue only when a StandardError subclass is raised.  For
  other exception types the error will be logged at the fatal level and
  the server will safely stop.  Based on a patch by Alex Young.
  [ruby-trunk - Feature #6236]
* test/webrick/test_server.rb:  Test for new exception handling
  behavior.  Join the server thread instead of busy-waiting for it to
  shut down to remove race conditions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-11 20:28:11 +00:00
naruse
7b18633804 * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): get keys
and fetch values from it to prevent @timeout_info's error
  "can't add a new key into hash during iteration".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-07 23:41:30 +00:00
naruse
56206ab8cd * lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#send_body_io):
use readpartial to get data even if the response is streaming data and
  each data is smaller than @buffer_size.
  patched by yu nobuoka. [ruby-dev:45471] [Bug #6230]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-07 21:50:34 +00:00
naruse
f898efd8a8 * lib/webrick/server.rb (WEBrick::GenericServer): close socket only if
the socket is not closed yet.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-01 18:36:46 +00:00
naruse
3c491a92f6 * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): dup to prevent
@timeout_info's "can't add a new key into hash during iteration".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-31 13:30:10 +00:00
drbrain
42ffb2ed15 * lib/webrick.rb: Moved proxy rewriting to WEBrick::HTTPProxy.
* lib/webrick/httpproxy.rb:  Add examples of creating a proxy server
  and response rewriting using HTTPProxy.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-02 23:17:24 +00:00
tenderlove
0cbec6027c * lib/webrick/httpresponse.rb (setup_header): 1xx responses
are allowed to have Keep-Alive connections.

* test/webrick/test_httpresponse.rb: corresponding test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-12 22:33:56 +00:00
tenderlove
6ef323d6f8 * lib/webrick/httpresponse.rb (setup_header): 204 and 304 responses
are allowed to have a Keep-Alive connection. [ruby-core:41581]

* test/webrick/test_httpresponse.rb: corresponding test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-12 22:15:31 +00:00
akr
c852d76f46 * lib/webrick/utils.rb: fix fcntl call.
* lib/drb/unix.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 23:17:53 +00:00
naruse
7b6677f1e6 * lib/webrick/httputils.rb: Add MIME Type definition of .js and .svg.
patched by Hal Brodigan. [ruby-core:39704] [Bug #5365]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-26 02:28:54 +00:00
naruse
2dfc9e1626 * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#each):
Allow HTTP/0.9 request which doesn't has any header or body.
  patched by Felix Jodoin. [ruby-core:38040] [Bug #5022]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-21 08:27:08 +00:00
naruse
8fb2058d82 * lib/webrick/httpauth/digestauth.rb (_authenticate):
Literal texts in HTTP ABNF is case-insensitive (RFC2616 2.1),
  and a ample implementation in RFC2617 also ignores the case
  of algorithms. So now this ignores those cases.
  [ruby-dev:43965] [Feature #4936]

* lib/webrick/httpauth/digestauth.rb (initialize):
  Because of above, opera_hack is useless and removed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-05 05:06:05 +00:00
nahi
635d13a8b7 * lib/webrick/httprequest.rb (setup_forwarded_info): Parsing request
header failed when the request is from 2 or more Apache reverse 
  proxies. It's said that all X-Forwarded-* headers will contain more
  than one (comma-separated) value if the original request already
  contained one of these headers.  Since we could use these values as
  Host header, we choose the initial(first) value. See #4922.

* test/webrick/test_httprequest.rb (test_forwarded): Test it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-24 11:05:59 +00:00
nahi
45f164eaeb * lib/webrick/accesslog.rb: Cosmetic fix of mismatched indentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-23 07:22:37 +00:00
nahi
4ce1581475 * lib/webrick/httpresponse.rb (HTTPResponse#setup_header): Close
HTTP/1.1 connection when returning an IO object as response body 
  without setting HTTPResponse#chunked to true. See #855 no.1.

* test/webrick/test_httpserver.rb: Test it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-21 12:58:37 +00:00
nahi
15e7e472e6 * lib/webrick/cookie.rb (WEBrick::Cookie.parse): Revert r31228.
r31228 was for allowing the 'Cookie:' header which did not have no 
  SP after ';' for separating cookie-pairs but RFC6265 requires single 
  SP after ';' there.  We allow multiple SPs here for compatibility 
  with older WEBrick version.

* test/webrick/test_cookie.rb: Test it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-20 06:48:40 +00:00
drbrain
be39117330 * lib/webrick/log.rb: Improve documentation of BasicLog and Log.
Patch by Olivier Brisse.  [Ruby 1.9 - Bug #4833]
	* lib/webrick/httpstatus.rb:  Improve documentation of
	  WEBrick::HTTPStatus.  Patch by Olivier Brisse.
	  [Ruby 1.9 - Bug #4833]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-16 21:12:00 +00:00
drbrain
09b830c4b2 * lib/webrick/utils.rb: Document WEBrick::Utils. Patch by Olivier
Brisse.  [Ruby 1.9 - Bug #4819]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-16 05:55:31 +00:00
drbrain
35bb53430c * lib/webrick/httpservlet/erbhandler.rb: Allow the ERB document to
alter the content-type of the response.  [Ruby 1.9 - Bug #4685]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-16 05:37:31 +00:00
naruse
d5a775f527 * lib/webrick/https.rb (WEBrick::HTTPRequest#parse_uri):
keep parse_uri as private. patched by okkez. [Bug #4773]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-29 14:14:38 +00:00
drbrain
1ebfbd7c63 * lib/webrick/compat.rb: Improve documentation. Patch by Sandor
Szücs.  [Ruby 1.9 - Bug #4725]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-17 20:29:58 +00:00
nobu
3a47cf3395 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-15 11:55:52 +00:00
drbrain
d6e3bc4ce4 * lib/webrick/httpservlet/erbhandler.rb: Add documentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-12 22:37:01 +00:00
nagachika
1111afbe5a * lib/csv.rb: fix a typo.
* lib/logger.rb: ditto
  * lib/rss.rb: ditto
  * lib/webrick/httpauth/authenticator.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-11 10:22:16 +00:00
drbrain
8c2a52937f * lib/webrick: Add documentation for WEBrick::HTTPAuth
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-10 23:37:43 +00:00
drbrain
071a678a15 * lib/webrick: Add Documentation
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-10 00:13:58 +00:00
drbrain
38b4876bb0 * lib/webrick/log.rb: Hide copyright info from ri
* lib/webrick/httpstatus.rb: ditto
	* lib/webrick/htmlutils.rb: ditto
	* lib/webrick/httpversion.rb: ditto
	* lib/webrick/version.rb: ditto
	* lib/webrick/httpauth/userdb.rb: ditto
	* lib/webrick/httpauth/authenticator.rb: ditto
	* lib/webrick/accesslog.rb: ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-09 19:22:41 +00:00
nahi
cc8bc6b7b6 Fri Apr 1 18:53:06 2011 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
* lib/webrick/cookie.rb (WEBrick::Cookie.parse): 'white space is
          permitted between tokens' according to RFC2965. Though 'Netscape 
          spec' does not define the syntax clearly, make it tolerant as a 
          server. As a real-world example, rest-client gem sends
          'Cookie: foo=1;bar=2'

        * test/webrick/test_cookie.rb (test_parse_non_whitespace): test it. 


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-01 10:02:03 +00:00
akr
d99801bbc8 * lib/webrick/accesslog.rb (WEBrick::AccessLog#format): support
%{remote}p for logging remote (client) port number.
  [ruby-dev:42670]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-09 10:16:50 +00:00
marcandre
f3e3547407 * lib/*.rb: Remove unused variable warnings.
Patch by Run Paint [ruby-core:30991]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-08 20:59:01 +00:00
naruse
a671a06d25 * lib/webrick/httprequest.rb (read_request_line): extend max
length to 2083. This is from Internet Explorer's max uri
  length. http://support.microsoft.com/kb/208427 [ruby-core:32924]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-28 04:53:57 +00:00
naruse
f3fb1954eb * lib/webrick/httpauth/digestauth.rb
(WEBrick::HTTPAuth::ProxyDigestAuth#check_uri): privated.
  [ruby-dev:42344]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-21 06:56:17 +00:00
drbrain
073e6ccc7b Add documentation for WEBrick's DigestAuth
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-11 06:21:51 +00:00
nahi
a4fa58f9ab * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#continue): add
method for generating HTTP/1.1 100 continue response if the client
          expects it, otherwise does nothing.  Patch by Brian Candler.
          ref #855.

        * test/webrick/test_httprequest.rb: test added.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-10 10:20:35 +00:00
shyouhei
29b30b66f3 merge revision(s) 28997:
* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#set_error):
	  Fix for possible cross-site scripting (CVE-2010-0541). 
	  Found by Apple, reported by Hideki Yamane.
	  Patch by Hirokazu Nishio <nishio.hirokazu AT gmail.com>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-16 03:41:12 +00:00
naruse
6434e1e690 * lib/webrick/httprequest.rb (WEBrick::HTTPRequest::parse_uri):
rollup leading slashes. [ruby-core:31657]
  patched by Jamison Wilde
  NOTE: //authority/path is valid relative URI both RFC2396 and
  RFC3986. So when give a relative URI-like string to URI lib,
  users must care leading slashes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-10 05:59:11 +00:00
nahi
d61f475bb1 * lib/webrick/ssl.rb (WEBrick::Utils.create_self_signed_cert):
merged r28784 from ruby_1_8: wrongly created dummy SSL certificate 
          with version == 3 (no such version) and serial == 0 (must be >0). 


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-30 23:26:53 +00:00
mame
ab408009fc * lib/webrick/httpservlet/filehandler.rb
(prevent_directory_traversal): apply filesystem encoding to path
  only during calling File.expand_path.  [ruby-dev:41423]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-17 16:26:00 +00:00
naruse
d7cc39658c * lib/webrick/httpservlet/cgihandler.rb
(WEBrick::HTTPServlet::CGIHandler#do_GET):
  set binary mode for tempfile.
  1265467681/286

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-12 08:48:10 +00:00
nobu
f00951bb25 * lib/webrick/httpservlet/filehandler.rb (make_partial_content):
add bytes-unit.  [ruby-dev:40030]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-18 08:16:07 +00:00
nobu
12278f0b70 * lib/webrick/https.rb (parse_uri, meta_vars): suppress warnings.
* lib/webrick/ssl.rb (listen): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-17 05:31:52 +00:00
nobu
6dcd551a4b * lib/webrick/accesslog.rb (WEBrick::AccessLog#format): fixed typo.
* lib/webrick/httpstatus.rb (WEBrick::HTTPStatus::Status#initialize):
  accept 0 or more arguments.  [ruby-dev:40021]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-11 04:30:37 +00:00
shyouhei
73cd7b6697 * lib/webrick/accesslog.rb : Escape needed.
* lib/webrick/httpstatus.rb : ditto.

	* lib/webrick/httprequest.rb : ditto.

	* lib/webrick/httputils.rb : ditto.

	* test/webrick/test_cgi.rb (TestWEBrickCGI::test_bad_): Test for it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-10 09:33:47 +00:00
akr
c0b4e90f08 * tool/mkconfig.rb: generate RbConfig.ruby in rbconfig.rb.
* lib/webrick/httpservlet/cgihandler.rb: use RbConfig.ruby.

* test/ruby/envutil.rb: ditto.

* benchmark/report.rb: ditto.

* benchmark/runc.rb: ditto.

* tool/eval.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-31 15:00:04 +00:00