excon 0.64.0 → 0.71.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/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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
-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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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
-
PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
|
|
2632
|
-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
-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
-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
-
AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
|
|
2636
|
-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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
|