nethttputils 0.4.0.0 → 0.4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90e1643f0b99d5ca39f20bdb3d86aec3c85a8803
4
- data.tar.gz: 5cfd760c36f4d0d53ed89daaf00ff39006b3422b
3
+ metadata.gz: ff2b86fcc4b55f5f9ea7818eb61b47458da62fa0
4
+ data.tar.gz: 610d74457c21418c24b092a65ba47abfd5571b37
5
5
  SHA512:
6
- metadata.gz: 1a7d31e15dfe0611039ec9649e2a58bef131e79c69facda64a087ba39343c52f07c985c68109430263033119f461ae21bc1049ea78b30a93c9c5f710859552db
7
- data.tar.gz: 3b299dadd98178e52ac2ce0f3763c03f1619f368296e7991c16f86f8e794023590c05afce2e76f8f75be3767fb15315a3cb85cc87071a605902a7a45b920b7ce
6
+ metadata.gz: 819dc2799c568c4b4aa4d199d14e3f5a0b70253bc0eb6831205482274abb2bbe90f7fb8504d15f6e4561dfa2d1e7d464a4534943a2d6ebd188d7e345752cfc39
7
+ data.tar.gz: cde0231d2c7779642ecf68d052cc117178b9905ba8a1bf3427d7c901050f05b75d290624fda7c5a2e2a2f4ed5fc7114390aad00bcdcbc45bab8783d2ee844ff0
@@ -18,9 +18,12 @@ module NetHTTPUtils
18
18
  attr_reader :code
19
19
  def initialize body, code = nil
20
20
  @code = code
21
+ body = body[0...997] + "..." if body.size > 1000
21
22
  super "HTTP error ##{code.inspect} #{body}"
22
23
  end
23
24
  end
25
+ class EOFError_from_rbuf_fill < StandardError
26
+ end
24
27
 
25
28
  class << self
26
29
 
@@ -54,7 +57,7 @@ module NetHTTPUtils
54
57
  def << msg
55
58
  @@buffer ||= "[Net::HTTP debug] "
56
59
  @@buffer.concat msg
57
- @@buffer = @@buffer[0...997] + "..." if @@buffer.size > 500
60
+ @@buffer = @@buffer[0...997] + "..." if @@buffer.size > 1000
58
61
  return unless @@buffer.end_with? ?\n
59
62
  NetHTTPUtils.logger.debug @@buffer.sub ?\n, " "
60
63
  @@buffer = nil
@@ -155,7 +158,7 @@ module NetHTTPUtils
155
158
  request.each_header.map{ |k, v| "-H \"#{k}: #{v}\" " unless k == "host" }.join
156
159
  }#{curl_form}'#{uri.scheme}://#{uri.host}#{uri.path}#{"?#{uri.query}" if uri.query && !uri.query.empty?}'"
157
160
  logger.debug "> header: #{request.each_header.to_a}"
158
- logger.debug "> body: #{request.body.inspect.tap{ |body| body[997..-1] = "..." if body.size > 500 }}"
161
+ logger.debug "> body: #{request.body.inspect.tap{ |body| body.replace body[0...997] + "..." if body.size > 1000 }}"
159
162
  # TODO this is buggy -- mixes lines from different files into one line
160
163
  stack = caller.reverse.map do |level|
161
164
  /((?:[^\/:]+\/)?[^\/:]+):([^:]+)/.match(level).captures
@@ -169,11 +172,16 @@ module NetHTTPUtils
169
172
  delay = 5
170
173
  response = begin
171
174
  http.request request, &block
172
- rescue Errno::ECONNREFUSED, Net::ReadTimeout, Net::OpenTimeout, Zlib::BufError, Errno::ECONNRESET, OpenSSL::SSL::SSLError => e
175
+ rescue Errno::ECONNREFUSED, Net::ReadTimeout, Net::OpenTimeout, Zlib::BufError, Errno::ECONNRESET, OpenSSL::SSL::SSLError, Errno::ETIMEDOUT => e
173
176
  raise if max_read_retry_delay < delay *= 2
174
177
  logger.error "retrying in #{delay} seconds because of #{e.class} '#{e.message}' at: #{request.uri}"
175
178
  sleep delay
176
179
  retry
180
+ rescue EOFError => e
181
+ raise unless e.backtrace.empty?
182
+ # https://bugs.ruby-lang.org/issues/13018
183
+ # https://blog.kalina.tech/2019/04/exception-without-backtrace-in-ruby.html?spref=reddit
184
+ raise EOFError_from_rbuf_fill.new "probably the old Ruby empty backtrace EOFError exception from net/protocol.rb"
177
185
  end
178
186
  # response.instance_variable_set "@nethttputils_close", http.method(:finish)
179
187
  # response.singleton_class.instance_eval{ attr_accessor :nethttputils_socket_to_close }
@@ -468,7 +476,7 @@ if $0 == __FILE__
468
476
  fail unless NetHTTPUtils.method(:read).call(NetHTTPUtils.start_http("http://httpstat.us/400")) == "400 Bad Request"
469
477
  fail unless NetHTTPUtils.method(:read).call(NetHTTPUtils.start_http("http://httpstat.us/404")) == "404 Not Found"
470
478
  fail unless NetHTTPUtils.method(:read).call(NetHTTPUtils.start_http("http://httpstat.us/500")) == "500 Internal Server Error"
471
- fail unless NetHTTPUtils.method(:read).call(NetHTTPUtils.start_http("http://httpstat.us/502")) == "502 Bad Gateway"
479
+ fail unless NetHTTPUtils.method(:read).call(NetHTTPUtils.start_http("http://httpstat.us/502")).start_with? "httpstat.us | 502: Bad gateway\nError\n502\n"
472
480
  fail unless NetHTTPUtils.method(:read).call(NetHTTPUtils.start_http("http://httpstat.us/503")) == "503 Service Unavailable"
473
481
  [
474
482
  ["https://imgur.com/a/cccccc"],
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "nethttputils"
3
- spec.version = "0.4.0.0"
3
+ spec.version = "0.4.1.0"
4
4
  spec.summary = "this tool is like a pet that I adopted young and now I depend on, sorry"
5
5
  spec.description = <<-EOF
6
6
  Back in 2015 I was a guy automating things at my job and two scripts had a common need --
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nethttputils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.0
4
+ version: 0.4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Maslov aka Nakilon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-04 00:00:00.000000000 Z
11
+ date: 2020-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable