nethttputils 0.4.0.0 → 0.4.1.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
  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