patron 0.13.3 → 0.14.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 +4 -4
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/ci.yml +79 -0
- data/.travis.yml +10 -7
- data/CHANGELOG.md +32 -1
- data/Gemfile +15 -1
- data/README.md +80 -30
- data/ext/patron/extconf.rb +7 -4
- data/ext/patron/session_ext.c +360 -155
- data/lib/patron/error.rb +4 -0
- data/lib/patron/request.rb +8 -6
- data/lib/patron/response.rb +5 -0
- data/lib/patron/session.rb +19 -4
- data/lib/patron/version.rb +1 -1
- data/patron.gemspec +8 -15
- data/script/generate_client_certs +65 -0
- data/spec/request_spec.rb +12 -0
- data/spec/session_spec.rb +287 -67
- data/spec/session_ssl_spec.rb +163 -27
- data/spec/spec_helper.rb +16 -7
- data/spec/support/certs/client.p12 +0 -0
- data/spec/support/certs/client_ca.pem +20 -0
- data/spec/support/certs/client_cert.pem +20 -0
- data/spec/support/certs/client_key.pem +30 -0
- data/spec/support/certs/rogue_client.p12 +0 -0
- data/spec/support/config.ru +18 -3
- data/spec/support/fork.rb +70 -0
- data/spec/support/raw_request_capture.rb +93 -0
- data/spec/support/test_server.rb +6 -3
- data/spec/support/valgrind.supp +2 -0
- metadata +22 -125
data/spec/support/test_server.rb
CHANGED
|
@@ -5,7 +5,7 @@ require 'rack/handler/puma'
|
|
|
5
5
|
class PatronTestServer
|
|
6
6
|
APP = Rack::Builder.new { eval(File.read(File.join(__dir__, 'config.ru'))) }
|
|
7
7
|
|
|
8
|
-
def self.start(ssl = false, port = 9001 )
|
|
8
|
+
def self.start(ssl = false, port = 9001, client_ca: nil)
|
|
9
9
|
# Reset the RSpec's SIGINT handler that does not really terminate after
|
|
10
10
|
# the first Ctrl+C pressed.
|
|
11
11
|
# Useful to terminate the forked process before Puma is actually started:
|
|
@@ -16,11 +16,14 @@ class PatronTestServer
|
|
|
16
16
|
keypath = File.join(__dir__, 'certs', 'privkey.pem')
|
|
17
17
|
certpath = File.join(__dir__, 'certs', 'cacert.pem')
|
|
18
18
|
|
|
19
|
-
host = if ssl
|
|
19
|
+
host = if ssl && client_ca
|
|
20
|
+
# force_peer makes Puma drop the handshake when no valid client certificate is presented
|
|
21
|
+
'ssl://0.0.0.0:%d?key=%s&cert=%s&ca=%s&verify_mode=force_peer' % [port, keypath, certpath, client_ca]
|
|
22
|
+
elsif ssl
|
|
20
23
|
'ssl://0.0.0.0:%d?key=%s&cert=%s' % [port, keypath, certpath]
|
|
21
24
|
else
|
|
22
25
|
'0.0.0.0'
|
|
23
26
|
end
|
|
24
|
-
Rack::Handler::Puma.run(APP,
|
|
27
|
+
Rack::Handler::Puma.run(APP, :Port => port.to_i, :Verbose => true, :Host => host)
|
|
25
28
|
end
|
|
26
29
|
end
|
metadata
CHANGED
|
@@ -1,136 +1,25 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: patron
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.14.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
autorequire:
|
|
7
|
+
- Aeryn Riley Dowling-Toland
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: rake
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '10'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '10'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: bundler
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - ">="
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: rspec
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: 2.3.0
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: 2.3.0
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: simplecov
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0.10'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0.10'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: yard
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: 0.9.11
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0.9.11
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: rack
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '1'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '1'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: puma
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - "~>"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '3.11'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '3.11'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rake-compiler
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - ">="
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - ">="
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
10
|
+
date: 2026-10-27 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
125
12
|
description: Ruby HTTP client library based on libcurl
|
|
126
13
|
email:
|
|
127
|
-
-
|
|
14
|
+
- aeryn.toland@gmail.com
|
|
128
15
|
executables: []
|
|
129
16
|
extensions:
|
|
130
17
|
- ext/patron/extconf.rb
|
|
131
18
|
extra_rdoc_files: []
|
|
132
19
|
files:
|
|
133
20
|
- ".autotest"
|
|
21
|
+
- ".github/dependabot.yml"
|
|
22
|
+
- ".github/workflows/ci.yml"
|
|
134
23
|
- ".gitignore"
|
|
135
24
|
- ".rspec"
|
|
136
25
|
- ".travis.yml"
|
|
@@ -159,6 +48,7 @@ files:
|
|
|
159
48
|
- patron.gemspec
|
|
160
49
|
- pic.png
|
|
161
50
|
- script/console
|
|
51
|
+
- script/generate_client_certs
|
|
162
52
|
- script/test_server
|
|
163
53
|
- spec/header_parser_spec.rb
|
|
164
54
|
- spec/patron_spec.rb
|
|
@@ -174,18 +64,27 @@ files:
|
|
|
174
64
|
- spec/session_ssl_spec.rb
|
|
175
65
|
- spec/spec_helper.rb
|
|
176
66
|
- spec/support/certs/cacert.pem
|
|
67
|
+
- spec/support/certs/client.p12
|
|
68
|
+
- spec/support/certs/client_ca.pem
|
|
69
|
+
- spec/support/certs/client_cert.pem
|
|
70
|
+
- spec/support/certs/client_key.pem
|
|
177
71
|
- spec/support/certs/privkey.pem
|
|
72
|
+
- spec/support/certs/rogue_client.p12
|
|
178
73
|
- spec/support/config.ru
|
|
74
|
+
- spec/support/fork.rb
|
|
75
|
+
- spec/support/raw_request_capture.rb
|
|
179
76
|
- spec/support/test_server.rb
|
|
77
|
+
- spec/support/valgrind.supp
|
|
180
78
|
- spec/util_spec.rb
|
|
181
79
|
homepage: https://github.com/toland/patron
|
|
182
|
-
licenses:
|
|
80
|
+
licenses:
|
|
81
|
+
- MIT
|
|
183
82
|
metadata:
|
|
184
83
|
allowed_push_host: https://rubygems.org
|
|
185
84
|
post_install_message: |2
|
|
186
85
|
|
|
187
86
|
Thank you for installing Patron. On OSX, make sure you are using libCURL with OpenSSL.
|
|
188
|
-
SecureTransport-based builds might cause crashes in forking
|
|
87
|
+
SecureTransport-based builds might cause crashes in forking environments.
|
|
189
88
|
|
|
190
89
|
For more info see https://github.com/curl/curl/issues/788
|
|
191
90
|
rdoc_options: []
|
|
@@ -196,16 +95,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
196
95
|
requirements:
|
|
197
96
|
- - ">="
|
|
198
97
|
- !ruby/object:Gem::Version
|
|
199
|
-
version: '
|
|
98
|
+
version: '2.3'
|
|
200
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
201
100
|
requirements:
|
|
202
101
|
- - ">="
|
|
203
102
|
- !ruby/object:Gem::Version
|
|
204
|
-
version:
|
|
103
|
+
version: 2.5.0
|
|
205
104
|
requirements: []
|
|
206
|
-
|
|
207
|
-
rubygems_version: 2.7.6
|
|
208
|
-
signing_key:
|
|
105
|
+
rubygems_version: 3.6.2
|
|
209
106
|
specification_version: 4
|
|
210
107
|
summary: Patron HTTP Client
|
|
211
108
|
test_files: []
|