excon 0.64.0 → 0.71.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/cacert.pem +108 -77
- data/excon.gemspec +7 -2
- data/lib/excon.rb +11 -11
- data/lib/excon/connection.rb +34 -26
- data/lib/excon/constants.rb +2 -0
- data/lib/excon/error.rb +2 -0
- data/lib/excon/middlewares/mock.rb +2 -1
- data/lib/excon/middlewares/redirect_follower.rb +24 -2
- data/lib/excon/response.rb +1 -1
- data/lib/excon/socket.rb +1 -0
- data/lib/excon/ssl_socket.rb +4 -1
- data/lib/excon/utils.rb +14 -3
- data/lib/excon/version.rb +1 -1
- metadata +3 -101
- data/.document +0 -5
- data/.github/stale.yml +0 -17
- data/.gitignore +0 -13
- data/.rspec +0 -3
- data/.travis.yml +0 -17
- data/Gemfile +0 -19
- data/Rakefile +0 -41
- data/benchmarks/class_vs_lambda.rb +0 -50
- data/benchmarks/concat_vs_insert.rb +0 -21
- data/benchmarks/concat_vs_interpolate.rb +0 -22
- data/benchmarks/cr_lf.rb +0 -21
- data/benchmarks/downcase-eq-eq_vs_casecmp.rb +0 -169
- data/benchmarks/excon.rb +0 -69
- data/benchmarks/excon_vs.rb +0 -165
- data/benchmarks/for_vs_array_each.rb +0 -27
- data/benchmarks/for_vs_hash_each.rb +0 -27
- data/benchmarks/has_key-vs-lookup.rb +0 -177
- data/benchmarks/headers_case_sensitivity.rb +0 -83
- data/benchmarks/headers_split_vs_match.rb +0 -34
- data/benchmarks/implicit_block-vs-explicit_block.rb +0 -98
- data/benchmarks/merging.rb +0 -21
- data/benchmarks/single_vs_double_quotes.rb +0 -21
- data/benchmarks/string_ranged_index.rb +0 -87
- data/benchmarks/strip_newline.rb +0 -115
- data/benchmarks/vs_stdlib.rb +0 -82
- data/changelog.txt +0 -1113
- data/spec/excon/error_spec.rb +0 -139
- data/spec/excon/test/server_spec.rb +0 -28
- data/spec/excon_spec.rb +0 -7
- data/spec/helpers/file_path_helpers.rb +0 -22
- data/spec/helpers/warning_helpers.rb +0 -9
- data/spec/requests/basic_spec.rb +0 -40
- data/spec/requests/eof_requests_spec.rb +0 -36
- data/spec/requests/unix_socket_spec.rb +0 -38
- data/spec/requests/validation_spec.rb +0 -80
- data/spec/spec_helper.rb +0 -26
- data/spec/support/shared_contexts/test_server_context.rb +0 -83
- data/spec/support/shared_contexts/test_stub_context.rb +0 -11
- data/spec/support/shared_examples/shared_example_for_clients.rb +0 -220
- data/spec/support/shared_examples/shared_example_for_streaming_clients.rb +0 -20
- data/spec/support/shared_examples/shared_example_for_test_servers.rb +0 -16
- data/tests/authorization_header_tests.rb +0 -27
- data/tests/bad_tests.rb +0 -69
- data/tests/basic_tests.rb +0 -351
- data/tests/batch_requests.rb +0 -133
- data/tests/complete_responses.rb +0 -31
- data/tests/data/127.0.0.1.cert.crt +0 -17
- data/tests/data/127.0.0.1.cert.key +0 -28
- data/tests/data/excon.cert.crt +0 -17
- data/tests/data/excon.cert.key +0 -28
- data/tests/data/xs +0 -1
- data/tests/error_tests.rb +0 -145
- data/tests/header_tests.rb +0 -119
- data/tests/instrumentors/logging_instrumentor_tests.rb +0 -28
- data/tests/middleware_tests.rb +0 -27
- data/tests/middlewares/canned_response_tests.rb +0 -34
- data/tests/middlewares/capture_cookies_tests.rb +0 -34
- data/tests/middlewares/decompress_tests.rb +0 -157
- data/tests/middlewares/escape_path_tests.rb +0 -36
- data/tests/middlewares/idempotent_tests.rb +0 -245
- data/tests/middlewares/instrumentation_tests.rb +0 -315
- data/tests/middlewares/mock_tests.rb +0 -304
- data/tests/middlewares/redirect_follower_tests.rb +0 -112
- data/tests/pipeline_tests.rb +0 -40
- data/tests/proxy_tests.rb +0 -306
- data/tests/query_string_tests.rb +0 -87
- data/tests/rackups/basic.rb +0 -41
- data/tests/rackups/basic.ru +0 -3
- data/tests/rackups/basic_auth.ru +0 -14
- data/tests/rackups/deflater.ru +0 -4
- data/tests/rackups/proxy.ru +0 -18
- data/tests/rackups/query_string.ru +0 -13
- data/tests/rackups/redirecting.ru +0 -23
- data/tests/rackups/redirecting_with_cookie.ru +0 -40
- data/tests/rackups/request_headers.ru +0 -15
- data/tests/rackups/request_methods.ru +0 -21
- data/tests/rackups/response_header.ru +0 -18
- data/tests/rackups/ssl.ru +0 -16
- data/tests/rackups/ssl_mismatched_cn.ru +0 -15
- data/tests/rackups/ssl_verify_peer.ru +0 -16
- data/tests/rackups/streaming.ru +0 -30
- data/tests/rackups/thread_safety.ru +0 -17
- data/tests/rackups/timeout.ru +0 -14
- data/tests/rackups/webrick_patch.rb +0 -34
- data/tests/request_headers_tests.rb +0 -21
- data/tests/request_method_tests.rb +0 -47
- data/tests/request_tests.rb +0 -58
- data/tests/response_tests.rb +0 -197
- data/tests/servers/bad.rb +0 -25
- data/tests/servers/eof.rb +0 -17
- data/tests/servers/error.rb +0 -20
- data/tests/servers/good.rb +0 -342
- data/tests/servers/good_ipv4.rb +0 -8
- data/tests/servers/good_ipv6.rb +0 -8
- data/tests/test_helper.rb +0 -297
- data/tests/thread_safety_tests.rb +0 -39
- data/tests/timeout_tests.rb +0 -12
- data/tests/utils_tests.rb +0 -81
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6db50174258d3704a3bdb5cbf58cc57846d8e56f8ed55adf7e8c3f5f66f3d15
|
4
|
+
data.tar.gz: 25d3d6d365d53f0197fc45e0ea698ff2b9015d58666b25a76731fe0ebc1a9918
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cae59c2aee4eee7db9363176b63edb3e05ba9c10da29c0ce22edeb7fe623e088173f87e998cc683e2a72c2545e513461deffccb4aace8f4f5a97fd6193519e42
|
7
|
+
data.tar.gz: 111b4548cd53a299b6518c2227e4db03ba939c03f8d934cf2452c35d0a25caeb6ee0f5855481663c0ff886cf37695304769730e67cebfad9b4800a4b5098593a
|
data/data/cacert.pem
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
##
|
2
2
|
## Bundle of CA Root Certificates
|
3
3
|
##
|
4
|
-
## Certificate data from Mozilla as of: Wed
|
4
|
+
## Certificate data from Mozilla as of: Wed Nov 27 04:12:10 2019 GMT
|
5
5
|
##
|
6
6
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7
7
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
@@ -14,7 +14,7 @@
|
|
14
14
|
## Just configure this file as the SSLCACertificateFile.
|
15
15
|
##
|
16
16
|
## Conversion done with mk-ca-bundle.pl version 1.27.
|
17
|
-
## SHA256:
|
17
|
+
## SHA256: 607309057d0ec70f8e4e97b03906bafb2fcebb24cd37b5e8293e681ae26ceae0
|
18
18
|
##
|
19
19
|
|
20
20
|
|
@@ -592,28 +592,6 @@ mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
|
592
592
|
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
593
593
|
-----END CERTIFICATE-----
|
594
594
|
|
595
|
-
Certplus Class 2 Primary CA
|
596
|
-
===========================
|
597
|
-
-----BEGIN CERTIFICATE-----
|
598
|
-
MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
|
599
|
-
BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
|
600
|
-
OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
|
601
|
-
dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
602
|
-
ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
|
603
|
-
5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
|
604
|
-
Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
|
605
|
-
YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
|
606
|
-
e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
|
607
|
-
CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
|
608
|
-
YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
|
609
|
-
L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
|
610
|
-
P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
|
611
|
-
TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
|
612
|
-
7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
|
613
|
-
//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
|
614
|
-
l7+ijrRU
|
615
|
-
-----END CERTIFICATE-----
|
616
|
-
|
617
595
|
DST Root CA X3
|
618
596
|
==============
|
619
597
|
-----BEGIN CERTIFICATE-----
|
@@ -921,28 +899,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
|
921
899
|
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
922
900
|
-----END CERTIFICATE-----
|
923
901
|
|
924
|
-
Deutsche Telekom Root CA 2
|
925
|
-
==========================
|
926
|
-
-----BEGIN CERTIFICATE-----
|
927
|
-
MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
|
928
|
-
RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
|
929
|
-
A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
|
930
|
-
MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
|
931
|
-
A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
|
932
|
-
b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
|
933
|
-
bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
|
934
|
-
KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
|
935
|
-
AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
|
936
|
-
Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
|
937
|
-
jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
|
938
|
-
HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
|
939
|
-
E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
|
940
|
-
zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
|
941
|
-
rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
|
942
|
-
dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
943
|
-
Cm26OWMohpLzGITY+9HPBVZkVw==
|
944
|
-
-----END CERTIFICATE-----
|
945
|
-
|
946
902
|
Cybertrust Global Root
|
947
903
|
======================
|
948
904
|
-----BEGIN CERTIFICATE-----
|
@@ -2613,37 +2569,6 @@ kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
|
|
2613
2569
|
ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
2614
2570
|
-----END CERTIFICATE-----
|
2615
2571
|
|
2616
|
-
Certinomis - Root CA
|
2617
|
-
====================
|
2618
|
-
-----BEGIN CERTIFICATE-----
|
2619
|
-
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
-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
-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
-
EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
|
2623
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
2644
|
-
hkIGuUE=
|
2645
|
-
-----END CERTIFICATE-----
|
2646
|
-
|
2647
2572
|
OISTE WISeKey Global Root GB CA
|
2648
2573
|
===============================
|
2649
2574
|
-----BEGIN CERTIFICATE-----
|
@@ -3399,3 +3324,109 @@ tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS
|
|
3399
3324
|
aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde
|
3400
3325
|
E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=
|
3401
3326
|
-----END CERTIFICATE-----
|
3327
|
+
|
3328
|
+
emSign Root CA - G1
|
3329
|
+
===================
|
3330
|
+
-----BEGIN CERTIFICATE-----
|
3331
|
+
MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET
|
3332
|
+
MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl
|
3333
|
+
ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx
|
3334
|
+
ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk
|
3335
|
+
aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB
|
3336
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN
|
3337
|
+
LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1
|
3338
|
+
cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW
|
3339
|
+
DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ
|
3340
|
+
6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH
|
3341
|
+
hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG
|
3342
|
+
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2
|
3343
|
+
vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q
|
3344
|
+
NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q
|
3345
|
+
+Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih
|
3346
|
+
U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx
|
3347
|
+
iN66zB+Afko=
|
3348
|
+
-----END CERTIFICATE-----
|
3349
|
+
|
3350
|
+
emSign ECC Root CA - G3
|
3351
|
+
=======================
|
3352
|
+
-----BEGIN CERTIFICATE-----
|
3353
|
+
MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG
|
3354
|
+
A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg
|
3355
|
+
MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4
|
3356
|
+
MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11
|
3357
|
+
ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g
|
3358
|
+
RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc
|
3359
|
+
58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr
|
3360
|
+
MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC
|
3361
|
+
AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D
|
3362
|
+
CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7
|
3363
|
+
jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj
|
3364
|
+
-----END CERTIFICATE-----
|
3365
|
+
|
3366
|
+
emSign Root CA - C1
|
3367
|
+
===================
|
3368
|
+
-----BEGIN CERTIFICATE-----
|
3369
|
+
MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx
|
3370
|
+
EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp
|
3371
|
+
Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE
|
3372
|
+
BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD
|
3373
|
+
ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up
|
3374
|
+
ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/
|
3375
|
+
Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX
|
3376
|
+
OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V
|
3377
|
+
I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms
|
3378
|
+
lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+
|
3379
|
+
XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD
|
3380
|
+
ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp
|
3381
|
+
/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1
|
3382
|
+
NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9
|
3383
|
+
wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ
|
3384
|
+
BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI=
|
3385
|
+
-----END CERTIFICATE-----
|
3386
|
+
|
3387
|
+
emSign ECC Root CA - C3
|
3388
|
+
=======================
|
3389
|
+
-----BEGIN CERTIFICATE-----
|
3390
|
+
MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG
|
3391
|
+
A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF
|
3392
|
+
Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE
|
3393
|
+
BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD
|
3394
|
+
ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd
|
3395
|
+
6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9
|
3396
|
+
SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA
|
3397
|
+
B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA
|
3398
|
+
MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU
|
3399
|
+
ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==
|
3400
|
+
-----END CERTIFICATE-----
|
3401
|
+
|
3402
|
+
Hongkong Post Root CA 3
|
3403
|
+
=======================
|
3404
|
+
-----BEGIN CERTIFICATE-----
|
3405
|
+
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
|
3431
|
+
dBb9HxEGmpv0
|
3432
|
+
-----END CERTIFICATE-----
|
data/excon.gemspec
CHANGED
@@ -11,8 +11,13 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.license = 'MIT'
|
12
12
|
s.rdoc_options = ["--charset=UTF-8"]
|
13
13
|
s.extra_rdoc_files = %w[README.md CONTRIBUTORS.md CONTRIBUTING.md]
|
14
|
-
s.files = `git ls-files
|
15
|
-
|
14
|
+
s.files = `git ls-files -- {data,lib}/*`.split("\n") + [
|
15
|
+
"CONTRIBUTING.md",
|
16
|
+
"CONTRIBUTORS.md",
|
17
|
+
"LICENSE.md",
|
18
|
+
"README.md",
|
19
|
+
"excon.gemspec"
|
20
|
+
]
|
16
21
|
|
17
22
|
s.add_development_dependency('rspec', '>= 3.5.0')
|
18
23
|
s.add_development_dependency('activesupport')
|
data/lib/excon.rb
CHANGED
@@ -113,9 +113,9 @@ module Excon
|
|
113
113
|
|
114
114
|
# @see Connection#initialize
|
115
115
|
# Initializes a new keep-alive session for a given remote host
|
116
|
-
#
|
117
|
-
#
|
118
|
-
#
|
116
|
+
# @param [String] url The destination URL
|
117
|
+
# @param [Hash<Symbol, >] params One or more option params to set on the Connection instance
|
118
|
+
# @return [Connection] A new Excon::Connection instance
|
119
119
|
def new(url, params = {})
|
120
120
|
uri_parser = params[:uri_parser] || defaults[:uri_parser]
|
121
121
|
uri = uri_parser.parse(url)
|
@@ -143,9 +143,9 @@ module Excon
|
|
143
143
|
end
|
144
144
|
|
145
145
|
# push an additional stub onto the list to check for mock requests
|
146
|
-
#
|
147
|
-
#
|
148
|
-
def stub(request_params = {}, response_params = nil)
|
146
|
+
# @param request_params [Hash<Symbol, >] request params to match against, omitted params match all
|
147
|
+
# @param response_params [Hash<Symbol, >] response params to return from matched request or block to call with params
|
148
|
+
def stub(request_params = {}, response_params = nil, &block)
|
149
149
|
if method = request_params.delete(:method)
|
150
150
|
request_params[:method] = method.to_s.downcase.to_sym
|
151
151
|
end
|
@@ -175,7 +175,7 @@ module Excon
|
|
175
175
|
if response_params
|
176
176
|
raise(ArgumentError.new("stub requires either response_params OR a block"))
|
177
177
|
else
|
178
|
-
stub = [request_params,
|
178
|
+
stub = [request_params, block]
|
179
179
|
end
|
180
180
|
elsif response_params
|
181
181
|
stub = [request_params, response_params]
|
@@ -187,8 +187,8 @@ module Excon
|
|
187
187
|
end
|
188
188
|
|
189
189
|
# get a stub matching params or nil
|
190
|
-
#
|
191
|
-
#
|
190
|
+
# @param request_params [Hash<Symbol, >] request params to match against, omitted params match all
|
191
|
+
# @return [Hash<Symbol, >] response params to return from matched request or block to call with params
|
192
192
|
def stub_for(request_params={})
|
193
193
|
if method = request_params.delete(:method)
|
194
194
|
request_params[:method] = method.to_s.downcase.to_sym
|
@@ -236,8 +236,8 @@ module Excon
|
|
236
236
|
end
|
237
237
|
|
238
238
|
# remove first/oldest stub matching request_params
|
239
|
-
#
|
240
|
-
#
|
239
|
+
# @param request_params [Hash<Symbol, >] request params to match against, omitted params match all
|
240
|
+
# @return [Hash<Symbol, >] response params from deleted stub
|
241
241
|
def unstub(request_params = {})
|
242
242
|
stub = stub_for(request_params)
|
243
243
|
Excon.stubs.delete_at(Excon.stubs.index(stub))
|
data/lib/excon/connection.rb
CHANGED
@@ -43,22 +43,22 @@ module Excon
|
|
43
43
|
end
|
44
44
|
|
45
45
|
# Initializes a new Connection instance
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
#
|
46
|
+
# @param [Hash<Symbol, >] params One or more optional params
|
47
|
+
# @option params [String] :body Default text to be sent over a socket. Only used if :body absent in Connection#request params
|
48
|
+
# @option params [Hash<Symbol, String>] :headers The default headers to supply in a request. Only used if params[:headers] is not supplied to Connection#request
|
49
|
+
# @option params [String] :host The destination host's reachable DNS name or IP, in the form of a String. IPv6 addresses must be wrapped (e.g. [::1]). See URI#host.
|
50
|
+
# @option params [String] :hostname Same as host, but usable for socket connections. IPv6 addresses must not be wrapped (e.g. ::1). See URI#hostname.
|
51
|
+
# @option params [String] :path Default path; appears after 'scheme://host:port/'. Only used if params[:path] is not supplied to Connection#request
|
52
|
+
# @option params [Fixnum] :port The port on which to connect, to the destination host
|
53
|
+
# @option params [Hash] :query Default query; appended to the 'scheme://host:port/path/' in the form of '?key=value'. Will only be used if params[:query] is not supplied to Connection#request
|
54
|
+
# @option params [String] :scheme The protocol; 'https' causes OpenSSL to be used
|
55
|
+
# @option params [String] :socket The path to the unix socket (required for 'unix://' connections)
|
56
|
+
# @option params [String] :ciphers Only use the specified SSL/TLS cipher suites; use OpenSSL cipher spec format e.g. 'HIGH:!aNULL:!3DES' or 'AES256-SHA:DES-CBC3-SHA'
|
57
|
+
# @option params [String] :proxy Proxy server; e.g. 'http://myproxy.com:8888'
|
58
|
+
# @option params [Fixnum] :retry_limit Set how many times we'll retry a failed request. (Default 4)
|
59
|
+
# @option params [Fixnum] :retry_interval Set how long to wait between retries. (Default 0)
|
60
|
+
# @option params [Class] :instrumentor Responds to #instrument as in ActiveSupport::Notifications
|
61
|
+
# @option params [String] :instrumentor_name Name prefix for #instrument events. Defaults to 'excon'
|
62
62
|
def initialize(params = {})
|
63
63
|
@data = Excon.defaults.dup
|
64
64
|
# merge does not deep-dup, so make sure headers is not the original
|
@@ -221,12 +221,12 @@ module Excon
|
|
221
221
|
end
|
222
222
|
|
223
223
|
# Sends the supplied request to the destination host.
|
224
|
-
#
|
225
|
-
#
|
226
|
-
#
|
227
|
-
#
|
228
|
-
#
|
229
|
-
#
|
224
|
+
# @yield [chunk] @see Response#self.parse
|
225
|
+
# @param [Hash<Symbol, >] params One or more optional params, override defaults set in Connection.new
|
226
|
+
# @option params [String] :body text to be sent over a socket
|
227
|
+
# @option params [Hash<Symbol, String>] :headers The default headers to supply in a request
|
228
|
+
# @option params [String] :path appears after 'scheme://host:port/'
|
229
|
+
# @option params [Hash] :query appended to the 'scheme://host:port/path/' in the form of '?key=value'
|
230
230
|
def request(params={}, &block)
|
231
231
|
# @data has defaults, merge in new params to override
|
232
232
|
datum = @data.merge(params)
|
@@ -257,11 +257,16 @@ module Excon
|
|
257
257
|
|
258
258
|
if block_given?
|
259
259
|
Excon.display_warning('Excon requests with a block are deprecated, pass :response_block instead.')
|
260
|
-
datum[:response_block] =
|
260
|
+
datum[:response_block] = block
|
261
261
|
end
|
262
262
|
|
263
263
|
datum[:connection] = self
|
264
264
|
|
265
|
+
# cleanup data left behind on persistent connection after interrupt
|
266
|
+
if datum[:persistent] && !@persistent_socket_reusable
|
267
|
+
reset
|
268
|
+
end
|
269
|
+
|
265
270
|
datum[:stack] = datum[:middlewares].map do |middleware|
|
266
271
|
lambda {|stack| middleware.new(stack)}
|
267
272
|
end.reverse.inject(self) do |middlewares, middleware|
|
@@ -270,7 +275,9 @@ module Excon
|
|
270
275
|
datum = datum[:stack].request_call(datum)
|
271
276
|
|
272
277
|
unless datum[:pipeline]
|
278
|
+
@persistent_socket_reusable = false
|
273
279
|
datum = response(datum)
|
280
|
+
@persistent_socket_reusable = true
|
274
281
|
|
275
282
|
if datum[:persistent]
|
276
283
|
if key = datum[:response][:headers].keys.detect {|k| k.casecmp('Connection') == 0 }
|
@@ -301,7 +308,7 @@ module Excon
|
|
301
308
|
end
|
302
309
|
|
303
310
|
# Sends the supplied requests to the destination host using pipelining.
|
304
|
-
#
|
311
|
+
# @param pipeline_params [Array<Hash>] An array of one or more optional params, override defaults set in Connection.new, see #request for details
|
305
312
|
def requests(pipeline_params)
|
306
313
|
pipeline_params.each {|params| params.merge!(:pipeline => true, :persistent => true) }
|
307
314
|
pipeline_params.last.merge!(:persistent => @data[:persistent])
|
@@ -328,7 +335,7 @@ module Excon
|
|
328
335
|
# Sends the supplied requests to the destination host using pipelining in
|
329
336
|
# batches of @limit [Numeric] requests. This is your soft file descriptor
|
330
337
|
# limit by default, typically 256.
|
331
|
-
#
|
338
|
+
# @param pipeline_params [Array<Hash>] An array of one or more optional params, override defaults set in Connection.new, see #request for details
|
332
339
|
def batch_requests(pipeline_params, limit = nil)
|
333
340
|
limit ||= Process.respond_to?(:getrlimit) ? Process.getrlimit(:NOFILE).first : 256
|
334
341
|
responses = []
|
@@ -344,6 +351,7 @@ module Excon
|
|
344
351
|
if old_socket = sockets.delete(@socket_key)
|
345
352
|
old_socket.close rescue nil
|
346
353
|
end
|
354
|
+
@persistent_socket_reusable = true
|
347
355
|
end
|
348
356
|
|
349
357
|
# Generate HTTP request verb methods
|
@@ -440,7 +448,7 @@ module Excon
|
|
440
448
|
datum[:stack].response_call(datum)
|
441
449
|
rescue => error
|
442
450
|
case error
|
443
|
-
when Excon::Errors::HTTPStatusError, Excon::Errors::Timeout
|
451
|
+
when Excon::Errors::HTTPStatusError, Excon::Errors::Timeout, Excon::Errors::TooManyRedirects
|
444
452
|
raise(error)
|
445
453
|
else
|
446
454
|
raise_socket_error(error)
|
data/lib/excon/constants.rb
CHANGED
data/lib/excon/error.rb
CHANGED
@@ -50,7 +50,9 @@ or:
|
|
50
50
|
class InvalidHeaderValue < Error; end
|
51
51
|
class Timeout < Error; end
|
52
52
|
class ResponseParse < Error; end
|
53
|
+
class ProxyConnectionError < Error; end
|
53
54
|
class ProxyParse < Error; end
|
55
|
+
class TooManyRedirects < Error; end
|
54
56
|
|
55
57
|
# Base class for HTTP Error classes
|
56
58
|
class HTTPStatus < Error
|
@@ -26,11 +26,12 @@ module Excon
|
|
26
26
|
end
|
27
27
|
|
28
28
|
if stub = Excon.stub_for(datum)
|
29
|
+
datum[:remote_ip] ||= '127.0.0.1'
|
29
30
|
datum[:response] = {
|
30
31
|
:body => '',
|
31
32
|
:headers => {},
|
32
33
|
:status => 200,
|
33
|
-
:remote_ip =>
|
34
|
+
:remote_ip => datum[:remote_ip]
|
34
35
|
}
|
35
36
|
|
36
37
|
stub_datum = case stub.last
|