net-http 0.2.1.pre1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 31dbc20c10c0e3ca2a3fc77be6612257bb34ad8cbe8cfded64622fccdea6cb08
4
- data.tar.gz: 2f043ee80140523a0d41f690dba72807f95cf8687cdac29de38bdc3bc9e6ccdb
3
+ metadata.gz: 83d503ad3cfa67ad617fbfe5f168b22759f54eba460aceedba49245dd09d36d0
4
+ data.tar.gz: 57ae006e8c77d3d1bac46a6693e6377ad38e0d690669b9f1a2a447926e2a626b
5
5
  SHA512:
6
- metadata.gz: '00890bbc5eb9a6c3930cfc69554e5d76de6395a31fdcb2c865ad77c6fac0c55cbef5206b6adf0c5b97ea1bb1d8ccc79d2302e377f77d95132c87b5327aeef229'
7
- data.tar.gz: a1856470ffbfe586204e9a3e97bfd01f86261bf51e9c2760f1b086be45ccafd7edcddb04854f4251b8a033246e7bc485b80a1374eb2a30c507a42d8d61526608
6
+ metadata.gz: 131cb53d9b3ae85db640cf78f1a43f660908cfd8f753cd41f5bea7179a92e5efd328e2f91fced1bc4e8cc69152ca9d95bc32544031cc79654c157f4573506a86
7
+ data.tar.gz: 3753128576e206b26a75f2828b5502cfc341854273f385a0771a988dfa69a6482351767f607d4bee211dbdac94937980b69c10c57e1cf69df41147a31621f2ce
@@ -1,33 +1,34 @@
1
1
  # frozen_string_literal: false
2
- # Net::HTTP exception class.
3
- # You cannot use Net::HTTPExceptions directly; instead, you must use
4
- # its subclasses.
5
- module Net::HTTPExceptions
6
- def initialize(msg, res) #:nodoc:
7
- super msg
8
- @response = res
2
+ module Net
3
+ # Net::HTTP exception class.
4
+ # You cannot use Net::HTTPExceptions directly; instead, you must use
5
+ # its subclasses.
6
+ module HTTPExceptions
7
+ def initialize(msg, res) #:nodoc:
8
+ super msg
9
+ @response = res
10
+ end
11
+ attr_reader :response
12
+ alias data response #:nodoc: obsolete
9
13
  end
10
- attr_reader :response
11
- alias data response #:nodoc: obsolete
12
- end
13
- class Net::HTTPError < Net::ProtocolError
14
- include Net::HTTPExceptions
15
- end
16
- class Net::HTTPRetriableError < Net::ProtoRetriableError
17
- include Net::HTTPExceptions
18
- end
19
- class Net::HTTPServerException < Net::ProtoServerError
20
- # We cannot use the name "HTTPServerError", it is the name of the response.
21
- include Net::HTTPExceptions
22
- end
23
14
 
24
- # for compatibility
25
- Net::HTTPClientException = Net::HTTPServerException
15
+ class HTTPError < ProtocolError
16
+ include HTTPExceptions
17
+ end
26
18
 
27
- class Net::HTTPFatalError < Net::ProtoFatalError
28
- include Net::HTTPExceptions
29
- end
19
+ class HTTPRetriableError < ProtoRetriableError
20
+ include HTTPExceptions
21
+ end
30
22
 
31
- module Net
23
+ class HTTPClientException < ProtoServerError
24
+ include HTTPExceptions
25
+ end
26
+
27
+ class HTTPFatalError < ProtoFatalError
28
+ include HTTPExceptions
29
+ end
30
+
31
+ # We cannot use the name "HTTPServerError", it is the name of the response.
32
+ HTTPServerException = HTTPClientException # :nodoc:
32
33
  deprecate_constant(:HTTPServerException)
33
34
  end
@@ -15,7 +15,8 @@ class Net::HTTPGenericRequest
15
15
 
16
16
  if URI === uri_or_path then
17
17
  raise ArgumentError, "not an HTTP URI" unless URI::HTTP === uri_or_path
18
- raise ArgumentError, "no host component for URI" unless uri_or_path.hostname
18
+ hostname = uri_or_path.hostname
19
+ raise ArgumentError, "no host component for URI" unless (hostname && hostname.length > 0)
19
20
  @uri = uri_or_path.dup
20
21
  host = @uri.hostname.dup
21
22
  host << ":".freeze << @uri.port.to_s if @uri.port != @uri.default_port
@@ -338,9 +338,10 @@ module Net::HTTPHeader
338
338
  # fits inside the full entity body, as range of byte offsets.
339
339
  def content_range
340
340
  return nil unless @header['content-range']
341
- m = %r<bytes\s+(\d+)-(\d+)/(\d+|\*)>i.match(self['Content-Range']) or
341
+ m = %r<\A\s*(\w+)\s+(\d+)-(\d+)/(\d+|\*)>.match(self['Content-Range']) or
342
342
  raise Net::HTTPHeaderSyntaxError, 'wrong Content-Range format'
343
- m[1].to_i .. m[2].to_i
343
+ return unless m[1] == 'bytes'
344
+ m[2].to_i .. m[3].to_i
344
345
  end
345
346
 
346
347
  # The length of the range represented in Content-Range: header.
@@ -1,231 +1,238 @@
1
1
  # frozen_string_literal: true
2
- # :stopdoc:
2
+ #--
3
3
  # https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
4
- class Net::HTTPUnknownResponse < Net::HTTPResponse
5
- HAS_BODY = true
6
- EXCEPTION_TYPE = Net::HTTPError
7
- end
8
- class Net::HTTPInformation < Net::HTTPResponse # 1xx
9
- HAS_BODY = false
10
- EXCEPTION_TYPE = Net::HTTPError
11
- end
12
- class Net::HTTPSuccess < Net::HTTPResponse # 2xx
13
- HAS_BODY = true
14
- EXCEPTION_TYPE = Net::HTTPError
15
- end
16
- class Net::HTTPRedirection < Net::HTTPResponse # 3xx
17
- HAS_BODY = true
18
- EXCEPTION_TYPE = Net::HTTPRetriableError
19
- end
20
- class Net::HTTPClientError < Net::HTTPResponse # 4xx
21
- HAS_BODY = true
22
- EXCEPTION_TYPE = Net::HTTPClientException # for backward compatibility
23
- end
24
- class Net::HTTPServerError < Net::HTTPResponse # 5xx
25
- HAS_BODY = true
26
- EXCEPTION_TYPE = Net::HTTPFatalError # for backward compatibility
27
- end
28
4
 
29
- class Net::HTTPContinue < Net::HTTPInformation # 100
30
- HAS_BODY = false
31
- end
32
- class Net::HTTPSwitchProtocol < Net::HTTPInformation # 101
33
- HAS_BODY = false
34
- end
35
- class Net::HTTPProcessing < Net::HTTPInformation # 102
36
- HAS_BODY = false
37
- end
38
- class Net::HTTPEarlyHints < Net::HTTPInformation # 103 - RFC 8297
39
- HAS_BODY = false
40
- end
5
+ module Net
6
+ # :stopdoc:
41
7
 
42
- class Net::HTTPOK < Net::HTTPSuccess # 200
43
- HAS_BODY = true
44
- end
45
- class Net::HTTPCreated < Net::HTTPSuccess # 201
46
- HAS_BODY = true
47
- end
48
- class Net::HTTPAccepted < Net::HTTPSuccess # 202
49
- HAS_BODY = true
50
- end
51
- class Net::HTTPNonAuthoritativeInformation < Net::HTTPSuccess # 203
52
- HAS_BODY = true
53
- end
54
- class Net::HTTPNoContent < Net::HTTPSuccess # 204
55
- HAS_BODY = false
56
- end
57
- class Net::HTTPResetContent < Net::HTTPSuccess # 205
58
- HAS_BODY = false
59
- end
60
- class Net::HTTPPartialContent < Net::HTTPSuccess # 206
61
- HAS_BODY = true
62
- end
63
- class Net::HTTPMultiStatus < Net::HTTPSuccess # 207 - RFC 4918
64
- HAS_BODY = true
65
- end
66
- class Net::HTTPAlreadyReported < Net::HTTPSuccess # 208 - RFC 5842
67
- HAS_BODY = true
68
- end
69
- class Net::HTTPIMUsed < Net::HTTPSuccess # 226 - RFC 3229
70
- HAS_BODY = true
71
- end
8
+ class HTTPUnknownResponse < HTTPResponse
9
+ HAS_BODY = true
10
+ EXCEPTION_TYPE = HTTPError #
11
+ end
12
+ class HTTPInformation < HTTPResponse # 1xx
13
+ HAS_BODY = false
14
+ EXCEPTION_TYPE = HTTPError #
15
+ end
16
+ class HTTPSuccess < HTTPResponse # 2xx
17
+ HAS_BODY = true
18
+ EXCEPTION_TYPE = HTTPError #
19
+ end
20
+ class HTTPRedirection < HTTPResponse # 3xx
21
+ HAS_BODY = true
22
+ EXCEPTION_TYPE = HTTPRetriableError #
23
+ end
24
+ class HTTPClientError < HTTPResponse # 4xx
25
+ HAS_BODY = true
26
+ EXCEPTION_TYPE = HTTPClientException #
27
+ end
28
+ class HTTPServerError < HTTPResponse # 5xx
29
+ HAS_BODY = true
30
+ EXCEPTION_TYPE = HTTPFatalError #
31
+ end
72
32
 
73
- class Net::HTTPMultipleChoices < Net::HTTPRedirection # 300
74
- HAS_BODY = true
75
- end
76
- Net::HTTPMultipleChoice = Net::HTTPMultipleChoices
77
- class Net::HTTPMovedPermanently < Net::HTTPRedirection # 301
78
- HAS_BODY = true
79
- end
80
- class Net::HTTPFound < Net::HTTPRedirection # 302
81
- HAS_BODY = true
82
- end
83
- Net::HTTPMovedTemporarily = Net::HTTPFound
84
- class Net::HTTPSeeOther < Net::HTTPRedirection # 303
85
- HAS_BODY = true
86
- end
87
- class Net::HTTPNotModified < Net::HTTPRedirection # 304
88
- HAS_BODY = false
89
- end
90
- class Net::HTTPUseProxy < Net::HTTPRedirection # 305
91
- HAS_BODY = false
92
- end
93
- # 306 Switch Proxy - no longer unused
94
- class Net::HTTPTemporaryRedirect < Net::HTTPRedirection # 307
95
- HAS_BODY = true
96
- end
97
- class Net::HTTPPermanentRedirect < Net::HTTPRedirection # 308
98
- HAS_BODY = true
99
- end
33
+ class HTTPContinue < HTTPInformation # 100
34
+ HAS_BODY = false
35
+ end
36
+ class HTTPSwitchProtocol < HTTPInformation # 101
37
+ HAS_BODY = false
38
+ end
39
+ class HTTPProcessing < HTTPInformation # 102
40
+ HAS_BODY = false
41
+ end
42
+ class HTTPEarlyHints < HTTPInformation # 103 - RFC 8297
43
+ HAS_BODY = false
44
+ end
100
45
 
101
- class Net::HTTPBadRequest < Net::HTTPClientError # 400
102
- HAS_BODY = true
103
- end
104
- class Net::HTTPUnauthorized < Net::HTTPClientError # 401
105
- HAS_BODY = true
106
- end
107
- class Net::HTTPPaymentRequired < Net::HTTPClientError # 402
108
- HAS_BODY = true
109
- end
110
- class Net::HTTPForbidden < Net::HTTPClientError # 403
111
- HAS_BODY = true
112
- end
113
- class Net::HTTPNotFound < Net::HTTPClientError # 404
114
- HAS_BODY = true
115
- end
116
- class Net::HTTPMethodNotAllowed < Net::HTTPClientError # 405
117
- HAS_BODY = true
118
- end
119
- class Net::HTTPNotAcceptable < Net::HTTPClientError # 406
120
- HAS_BODY = true
121
- end
122
- class Net::HTTPProxyAuthenticationRequired < Net::HTTPClientError # 407
123
- HAS_BODY = true
124
- end
125
- class Net::HTTPRequestTimeout < Net::HTTPClientError # 408
126
- HAS_BODY = true
127
- end
128
- Net::HTTPRequestTimeOut = Net::HTTPRequestTimeout
129
- class Net::HTTPConflict < Net::HTTPClientError # 409
130
- HAS_BODY = true
131
- end
132
- class Net::HTTPGone < Net::HTTPClientError # 410
133
- HAS_BODY = true
134
- end
135
- class Net::HTTPLengthRequired < Net::HTTPClientError # 411
136
- HAS_BODY = true
137
- end
138
- class Net::HTTPPreconditionFailed < Net::HTTPClientError # 412
139
- HAS_BODY = true
140
- end
141
- class Net::HTTPPayloadTooLarge < Net::HTTPClientError # 413
142
- HAS_BODY = true
143
- end
144
- Net::HTTPRequestEntityTooLarge = Net::HTTPPayloadTooLarge
145
- class Net::HTTPURITooLong < Net::HTTPClientError # 414
146
- HAS_BODY = true
147
- end
148
- Net::HTTPRequestURITooLong = Net::HTTPURITooLong
149
- Net::HTTPRequestURITooLarge = Net::HTTPRequestURITooLong
150
- class Net::HTTPUnsupportedMediaType < Net::HTTPClientError # 415
151
- HAS_BODY = true
152
- end
153
- class Net::HTTPRangeNotSatisfiable < Net::HTTPClientError # 416
154
- HAS_BODY = true
155
- end
156
- Net::HTTPRequestedRangeNotSatisfiable = Net::HTTPRangeNotSatisfiable
157
- class Net::HTTPExpectationFailed < Net::HTTPClientError # 417
158
- HAS_BODY = true
159
- end
160
- # 418 I'm a teapot - RFC 2324; a joke RFC
161
- # 420 Enhance Your Calm - Twitter
162
- class Net::HTTPMisdirectedRequest < Net::HTTPClientError # 421 - RFC 7540
163
- HAS_BODY = true
164
- end
165
- class Net::HTTPUnprocessableEntity < Net::HTTPClientError # 422 - RFC 4918
166
- HAS_BODY = true
167
- end
168
- class Net::HTTPLocked < Net::HTTPClientError # 423 - RFC 4918
169
- HAS_BODY = true
170
- end
171
- class Net::HTTPFailedDependency < Net::HTTPClientError # 424 - RFC 4918
172
- HAS_BODY = true
173
- end
174
- # 425 Unordered Collection - existed only in draft
175
- class Net::HTTPUpgradeRequired < Net::HTTPClientError # 426 - RFC 2817
176
- HAS_BODY = true
177
- end
178
- class Net::HTTPPreconditionRequired < Net::HTTPClientError # 428 - RFC 6585
179
- HAS_BODY = true
180
- end
181
- class Net::HTTPTooManyRequests < Net::HTTPClientError # 429 - RFC 6585
182
- HAS_BODY = true
183
- end
184
- class Net::HTTPRequestHeaderFieldsTooLarge < Net::HTTPClientError # 431 - RFC 6585
185
- HAS_BODY = true
186
- end
187
- class Net::HTTPUnavailableForLegalReasons < Net::HTTPClientError # 451 - RFC 7725
188
- HAS_BODY = true
189
- end
190
- # 444 No Response - Nginx
191
- # 449 Retry With - Microsoft
192
- # 450 Blocked by Windows Parental Controls - Microsoft
193
- # 499 Client Closed Request - Nginx
46
+ class HTTPOK < HTTPSuccess # 200
47
+ HAS_BODY = true
48
+ end
49
+ class HTTPCreated < HTTPSuccess # 201
50
+ HAS_BODY = true
51
+ end
52
+ class HTTPAccepted < HTTPSuccess # 202
53
+ HAS_BODY = true
54
+ end
55
+ class HTTPNonAuthoritativeInformation < HTTPSuccess # 203
56
+ HAS_BODY = true
57
+ end
58
+ class HTTPNoContent < HTTPSuccess # 204
59
+ HAS_BODY = false
60
+ end
61
+ class HTTPResetContent < HTTPSuccess # 205
62
+ HAS_BODY = false
63
+ end
64
+ class HTTPPartialContent < HTTPSuccess # 206
65
+ HAS_BODY = true
66
+ end
67
+ class HTTPMultiStatus < HTTPSuccess # 207 - RFC 4918
68
+ HAS_BODY = true
69
+ end
70
+ class HTTPAlreadyReported < HTTPSuccess # 208 - RFC 5842
71
+ HAS_BODY = true
72
+ end
73
+ class HTTPIMUsed < HTTPSuccess # 226 - RFC 3229
74
+ HAS_BODY = true
75
+ end
194
76
 
195
- class Net::HTTPInternalServerError < Net::HTTPServerError # 500
196
- HAS_BODY = true
197
- end
198
- class Net::HTTPNotImplemented < Net::HTTPServerError # 501
199
- HAS_BODY = true
200
- end
201
- class Net::HTTPBadGateway < Net::HTTPServerError # 502
202
- HAS_BODY = true
203
- end
204
- class Net::HTTPServiceUnavailable < Net::HTTPServerError # 503
205
- HAS_BODY = true
206
- end
207
- class Net::HTTPGatewayTimeout < Net::HTTPServerError # 504
208
- HAS_BODY = true
209
- end
210
- Net::HTTPGatewayTimeOut = Net::HTTPGatewayTimeout
211
- class Net::HTTPVersionNotSupported < Net::HTTPServerError # 505
212
- HAS_BODY = true
213
- end
214
- class Net::HTTPVariantAlsoNegotiates < Net::HTTPServerError # 506
215
- HAS_BODY = true
216
- end
217
- class Net::HTTPInsufficientStorage < Net::HTTPServerError # 507 - RFC 4918
218
- HAS_BODY = true
219
- end
220
- class Net::HTTPLoopDetected < Net::HTTPServerError # 508 - RFC 5842
221
- HAS_BODY = true
222
- end
223
- # 509 Bandwidth Limit Exceeded - Apache bw/limited extension
224
- class Net::HTTPNotExtended < Net::HTTPServerError # 510 - RFC 2774
225
- HAS_BODY = true
226
- end
227
- class Net::HTTPNetworkAuthenticationRequired < Net::HTTPServerError # 511 - RFC 6585
228
- HAS_BODY = true
77
+ class HTTPMultipleChoices < HTTPRedirection # 300
78
+ HAS_BODY = true
79
+ end
80
+ HTTPMultipleChoice = HTTPMultipleChoices
81
+ class HTTPMovedPermanently < HTTPRedirection # 301
82
+ HAS_BODY = true
83
+ end
84
+ class HTTPFound < HTTPRedirection # 302
85
+ HAS_BODY = true
86
+ end
87
+ HTTPMovedTemporarily = HTTPFound
88
+ class HTTPSeeOther < HTTPRedirection # 303
89
+ HAS_BODY = true
90
+ end
91
+ class HTTPNotModified < HTTPRedirection # 304
92
+ HAS_BODY = false
93
+ end
94
+ class HTTPUseProxy < HTTPRedirection # 305
95
+ HAS_BODY = false
96
+ end
97
+ # 306 Switch Proxy - no longer unused
98
+ class HTTPTemporaryRedirect < HTTPRedirection # 307
99
+ HAS_BODY = true
100
+ end
101
+ class HTTPPermanentRedirect < HTTPRedirection # 308
102
+ HAS_BODY = true
103
+ end
104
+
105
+ class HTTPBadRequest < HTTPClientError # 400
106
+ HAS_BODY = true
107
+ end
108
+ class HTTPUnauthorized < HTTPClientError # 401
109
+ HAS_BODY = true
110
+ end
111
+ class HTTPPaymentRequired < HTTPClientError # 402
112
+ HAS_BODY = true
113
+ end
114
+ class HTTPForbidden < HTTPClientError # 403
115
+ HAS_BODY = true
116
+ end
117
+ class HTTPNotFound < HTTPClientError # 404
118
+ HAS_BODY = true
119
+ end
120
+ class HTTPMethodNotAllowed < HTTPClientError # 405
121
+ HAS_BODY = true
122
+ end
123
+ class HTTPNotAcceptable < HTTPClientError # 406
124
+ HAS_BODY = true
125
+ end
126
+ class HTTPProxyAuthenticationRequired < HTTPClientError # 407
127
+ HAS_BODY = true
128
+ end
129
+ class HTTPRequestTimeout < HTTPClientError # 408
130
+ HAS_BODY = true
131
+ end
132
+ HTTPRequestTimeOut = HTTPRequestTimeout
133
+ class HTTPConflict < HTTPClientError # 409
134
+ HAS_BODY = true
135
+ end
136
+ class HTTPGone < HTTPClientError # 410
137
+ HAS_BODY = true
138
+ end
139
+ class HTTPLengthRequired < HTTPClientError # 411
140
+ HAS_BODY = true
141
+ end
142
+ class HTTPPreconditionFailed < HTTPClientError # 412
143
+ HAS_BODY = true
144
+ end
145
+ class HTTPPayloadTooLarge < HTTPClientError # 413
146
+ HAS_BODY = true
147
+ end
148
+ HTTPRequestEntityTooLarge = HTTPPayloadTooLarge
149
+ class HTTPURITooLong < HTTPClientError # 414
150
+ HAS_BODY = true
151
+ end
152
+ HTTPRequestURITooLong = HTTPURITooLong
153
+ HTTPRequestURITooLarge = HTTPRequestURITooLong
154
+ class HTTPUnsupportedMediaType < HTTPClientError # 415
155
+ HAS_BODY = true
156
+ end
157
+ class HTTPRangeNotSatisfiable < HTTPClientError # 416
158
+ HAS_BODY = true
159
+ end
160
+ HTTPRequestedRangeNotSatisfiable = HTTPRangeNotSatisfiable
161
+ class HTTPExpectationFailed < HTTPClientError # 417
162
+ HAS_BODY = true
163
+ end
164
+ # 418 I'm a teapot - RFC 2324; a joke RFC
165
+ # 420 Enhance Your Calm - Twitter
166
+ class HTTPMisdirectedRequest < HTTPClientError # 421 - RFC 7540
167
+ HAS_BODY = true
168
+ end
169
+ class HTTPUnprocessableEntity < HTTPClientError # 422 - RFC 4918
170
+ HAS_BODY = true
171
+ end
172
+ class HTTPLocked < HTTPClientError # 423 - RFC 4918
173
+ HAS_BODY = true
174
+ end
175
+ class HTTPFailedDependency < HTTPClientError # 424 - RFC 4918
176
+ HAS_BODY = true
177
+ end
178
+ # 425 Unordered Collection - existed only in draft
179
+ class HTTPUpgradeRequired < HTTPClientError # 426 - RFC 2817
180
+ HAS_BODY = true
181
+ end
182
+ class HTTPPreconditionRequired < HTTPClientError # 428 - RFC 6585
183
+ HAS_BODY = true
184
+ end
185
+ class HTTPTooManyRequests < HTTPClientError # 429 - RFC 6585
186
+ HAS_BODY = true
187
+ end
188
+ class HTTPRequestHeaderFieldsTooLarge < HTTPClientError # 431 - RFC 6585
189
+ HAS_BODY = true
190
+ end
191
+ class HTTPUnavailableForLegalReasons < HTTPClientError # 451 - RFC 7725
192
+ HAS_BODY = true
193
+ end
194
+ # 444 No Response - Nginx
195
+ # 449 Retry With - Microsoft
196
+ # 450 Blocked by Windows Parental Controls - Microsoft
197
+ # 499 Client Closed Request - Nginx
198
+
199
+ class HTTPInternalServerError < HTTPServerError # 500
200
+ HAS_BODY = true
201
+ end
202
+ class HTTPNotImplemented < HTTPServerError # 501
203
+ HAS_BODY = true
204
+ end
205
+ class HTTPBadGateway < HTTPServerError # 502
206
+ HAS_BODY = true
207
+ end
208
+ class HTTPServiceUnavailable < HTTPServerError # 503
209
+ HAS_BODY = true
210
+ end
211
+ class HTTPGatewayTimeout < HTTPServerError # 504
212
+ HAS_BODY = true
213
+ end
214
+ HTTPGatewayTimeOut = HTTPGatewayTimeout
215
+ class HTTPVersionNotSupported < HTTPServerError # 505
216
+ HAS_BODY = true
217
+ end
218
+ class HTTPVariantAlsoNegotiates < HTTPServerError # 506
219
+ HAS_BODY = true
220
+ end
221
+ class HTTPInsufficientStorage < HTTPServerError # 507 - RFC 4918
222
+ HAS_BODY = true
223
+ end
224
+ class HTTPLoopDetected < HTTPServerError # 508 - RFC 5842
225
+ HAS_BODY = true
226
+ end
227
+ # 509 Bandwidth Limit Exceeded - Apache bw/limited extension
228
+ class HTTPNotExtended < HTTPServerError # 510 - RFC 2774
229
+ HAS_BODY = true
230
+ end
231
+ class HTTPNetworkAuthenticationRequired < HTTPServerError # 511 - RFC 6585
232
+ HAS_BODY = true
233
+ end
234
+
235
+ # :startdoc:
229
236
  end
230
237
 
231
238
  class Net::HTTPResponse
@@ -303,5 +310,3 @@ class Net::HTTPResponse
303
310
  '511' => Net::HTTPNetworkAuthenticationRequired,
304
311
  }
305
312
  end
306
-
307
- # :startdoc:
data/lib/net/http.rb CHANGED
@@ -133,7 +133,7 @@ module Net #:nodoc:
133
133
  # puts res.class.name # => 'HTTPOK'
134
134
  #
135
135
  # # Body
136
- # puts res.body if res.response_body_permitted?
136
+ # puts res.body
137
137
  #
138
138
  # === Following Redirection
139
139
  #
@@ -397,7 +397,7 @@ module Net #:nodoc:
397
397
  class HTTP < Protocol
398
398
 
399
399
  # :stopdoc:
400
- VERSION = "0.2.1.pre1"
400
+ VERSION = "0.3.0"
401
401
  Revision = %q$Revision$.split[1]
402
402
  HTTPVersion = '1.1'
403
403
  begin
@@ -1013,13 +1013,14 @@ module Net #:nodoc:
1013
1013
  end
1014
1014
 
1015
1015
  debug "opening connection to #{conn_addr}:#{conn_port}..."
1016
- begin
1017
- s = Socket.tcp conn_addr, conn_port, @local_host, @local_port, connect_timeout: @open_timeout
1018
- rescue => e
1019
- e = Net::OpenTimeout.new(e) if e.is_a?(Errno::ETIMEDOUT) #for compatibility with previous versions
1020
- raise e, "Failed to open TCP connection to " +
1021
- "#{conn_addr}:#{conn_port} (#{e.message})"
1022
- end
1016
+ s = Timeout.timeout(@open_timeout, Net::OpenTimeout) {
1017
+ begin
1018
+ TCPSocket.open(conn_addr, conn_port, @local_host, @local_port)
1019
+ rescue => e
1020
+ raise e, "Failed to open TCP connection to " +
1021
+ "#{conn_addr}:#{conn_port} (#{e.message})"
1022
+ end
1023
+ }
1023
1024
  s.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
1024
1025
  debug "opened"
1025
1026
  if use_ssl?
@@ -1221,16 +1222,9 @@ module Net #:nodoc:
1221
1222
  end
1222
1223
  end
1223
1224
 
1224
- # [Bug #12921]
1225
- if /linux|freebsd|darwin/ =~ RUBY_PLATFORM
1226
- ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE = true
1227
- else
1228
- ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE = false
1229
- end
1230
-
1231
1225
  # The username of the proxy server, if one is configured.
1232
1226
  def proxy_user
1233
- if ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE && @proxy_from_env
1227
+ if @proxy_from_env
1234
1228
  user = proxy_uri&.user
1235
1229
  unescape(user) if user
1236
1230
  else
@@ -1240,7 +1234,7 @@ module Net #:nodoc:
1240
1234
 
1241
1235
  # The password of the proxy server, if one is configured.
1242
1236
  def proxy_pass
1243
- if ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE && @proxy_from_env
1237
+ if @proxy_from_env
1244
1238
  pass = proxy_uri&.password
1245
1239
  unescape(pass) if pass
1246
1240
  else
metadata CHANGED
@@ -1,24 +1,24 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1.pre1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - NARUSE, Yui
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-27 00:00:00.000000000 Z
11
+ date: 2022-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: uri
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - ">="
17
18
  - !ruby/object:Gem::Version
18
19
  version: '0'
19
- name: uri
20
- prerelease: false
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
@@ -71,11 +71,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
71
  version: 2.6.0
72
72
  required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">"
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: 1.3.1
76
+ version: '0'
77
77
  requirements: []
78
- rubygems_version: 3.3.3
78
+ rubygems_version: 3.4.0.dev
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: HTTP client api for Ruby.