excon 0.79.0 → 0.81.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/data/cacert.pem +63 -77
- data/lib/excon/connection.rb +19 -26
- data/lib/excon/constants.rb +1 -0
- data/lib/excon/instrumentors/logging_instrumentor.rb +1 -1
- data/lib/excon/socket.rb +14 -13
- data/lib/excon/ssl_socket.rb +4 -0
- data/lib/excon/utils.rb +18 -1
- data/lib/excon/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: faa033f8191dff08e7476d47c1771112a841d7c4e762462afd069dedfdfc0a48
|
4
|
+
data.tar.gz: ade28a41a3ea482d33620df5902c17b6c8909d3e8348d60241e8e43925136015
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52ec74ebab2ab0057eaaa30255f73771088b70046df1478d0383f50e3067c73f5a3f33dbc9b6c8029df8f69d2e1104404bd032be113ca089b997ee5da63132fc
|
7
|
+
data.tar.gz: 9ec35940b326afae1467d00a29c17cc4ab003bc92701400251a44ec91f8961a1156152fab4219e5f1556eb3b5f06fc32613f5d553ceab04172f185c024f6dac3
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ Usable, fast, simple Ruby HTTP 1.1
|
|
4
4
|
|
5
5
|
Excon was designed to be simple, fast and performant. It works great as a general HTTP(s) client and is particularly well suited to usage in API clients.
|
6
6
|
|
7
|
-
[![Build Status](https://
|
7
|
+
[![Build Status](https://github.com/excon/excon/actions/workflows/ruby.yml/badge.svg)](https://github.com/excon/excon/actions/workflows/ruby.yml)
|
8
8
|
[![Gem Version](https://badge.fury.io/rb/excon.svg)](https://badge.fury.io/rb/excon)
|
9
9
|
|
10
10
|
* [Getting Started](#getting-started)
|
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: Tue
|
4
|
+
## Certificate data from Mozilla as of: Tue Apr 13 03:12:04 2021 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.28.
|
17
|
-
## SHA256:
|
17
|
+
## SHA256: f377673fa3c22ba2188a4cea041c7b8c99a4817ffde6821e98325ce89324e5aa
|
18
18
|
##
|
19
19
|
|
20
20
|
|
@@ -718,51 +718,6 @@ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
|
718
718
|
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
719
719
|
-----END CERTIFICATE-----
|
720
720
|
|
721
|
-
GeoTrust Primary Certification Authority - G2
|
722
|
-
=============================================
|
723
|
-
-----BEGIN CERTIFICATE-----
|
724
|
-
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
|
725
|
-
VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
|
726
|
-
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
|
727
|
-
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
|
728
|
-
OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
729
|
-
MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
|
730
|
-
b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
|
731
|
-
BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
|
732
|
-
KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
|
733
|
-
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
|
734
|
-
EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
|
735
|
-
ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
|
736
|
-
npaqBA+K
|
737
|
-
-----END CERTIFICATE-----
|
738
|
-
|
739
|
-
VeriSign Universal Root Certification Authority
|
740
|
-
===============================================
|
741
|
-
-----BEGIN CERTIFICATE-----
|
742
|
-
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
743
|
-
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
744
|
-
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
745
|
-
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
746
|
-
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
747
|
-
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
748
|
-
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
749
|
-
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
750
|
-
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
751
|
-
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
752
|
-
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
753
|
-
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
754
|
-
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
755
|
-
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
756
|
-
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
757
|
-
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
758
|
-
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
759
|
-
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
760
|
-
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
761
|
-
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
762
|
-
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
763
|
-
mJO37M2CYfE45k+XmCpajQ==
|
764
|
-
-----END CERTIFICATE-----
|
765
|
-
|
766
721
|
NetLock Arany (Class Gold) Főtanúsítvány
|
767
722
|
========================================
|
768
723
|
-----BEGIN CERTIFICATE-----
|
@@ -1980,36 +1935,6 @@ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
|
|
1980
1935
|
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
1981
1936
|
-----END CERTIFICATE-----
|
1982
1937
|
|
1983
|
-
Staat der Nederlanden Root CA - G3
|
1984
|
-
==================================
|
1985
|
-
-----BEGIN CERTIFICATE-----
|
1986
|
-
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
-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
-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
-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
-
ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
|
1991
|
-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
-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
-
EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
|
1994
|
-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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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
-
U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
|
2003
|
-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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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
|
2011
|
-
-----END CERTIFICATE-----
|
2012
|
-
|
2013
1938
|
Staat der Nederlanden EV Root CA
|
2014
1939
|
================================
|
2015
1940
|
-----BEGIN CERTIFICATE-----
|
@@ -3226,3 +3151,64 @@ qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG
|
|
3226
3151
|
I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg
|
3227
3152
|
kpzNNIaRkPpkUZ3+/uul9XXeifdy
|
3228
3153
|
-----END CERTIFICATE-----
|
3154
|
+
|
3155
|
+
AC RAIZ FNMT-RCM SERVIDORES SEGUROS
|
3156
|
+
===================================
|
3157
|
+
-----BEGIN CERTIFICATE-----
|
3158
|
+
MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF
|
3159
|
+
UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy
|
3160
|
+
NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4
|
3161
|
+
MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt
|
3162
|
+
UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB
|
3163
|
+
QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA
|
3164
|
+
BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2
|
3165
|
+
LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw
|
3166
|
+
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG
|
3167
|
+
SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD
|
3168
|
+
zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c=
|
3169
|
+
-----END CERTIFICATE-----
|
3170
|
+
|
3171
|
+
GlobalSign Root R46
|
3172
|
+
===================
|
3173
|
+
-----BEGIN CERTIFICATE-----
|
3174
|
+
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
|
3198
|
+
QEUxeCp6
|
3199
|
+
-----END CERTIFICATE-----
|
3200
|
+
|
3201
|
+
GlobalSign Root E46
|
3202
|
+
===================
|
3203
|
+
-----BEGIN CERTIFICATE-----
|
3204
|
+
MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT
|
3205
|
+
AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg
|
3206
|
+
RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV
|
3207
|
+
BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq
|
3208
|
+
hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB
|
3209
|
+
jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj
|
3210
|
+
QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL
|
3211
|
+
gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk
|
3212
|
+
vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+
|
3213
|
+
CAezNIm8BZ/3Hobui3A=
|
3214
|
+
-----END CERTIFICATE-----
|
data/lib/excon/connection.rb
CHANGED
@@ -115,7 +115,7 @@ module Excon
|
|
115
115
|
# we already have data from a middleware, so bail
|
116
116
|
return datum
|
117
117
|
else
|
118
|
-
socket
|
118
|
+
socket(datum)
|
119
119
|
# start with "METHOD /path"
|
120
120
|
request = datum[:method].to_s.upcase + ' '
|
121
121
|
if datum[:proxy] && datum[:scheme] != HTTPS
|
@@ -144,35 +144,25 @@ module Excon
|
|
144
144
|
end
|
145
145
|
|
146
146
|
# add headers to request
|
147
|
-
datum[:headers]
|
148
|
-
if key.to_s.match(/[\r\n]/)
|
149
|
-
raise Excon::Errors::InvalidHeaderKey.new(key.to_s.inspect + ' contains forbidden "\r" or "\n"')
|
150
|
-
end
|
151
|
-
[values].flatten.each do |value|
|
152
|
-
if value.to_s.match(/[\r\n]/)
|
153
|
-
raise Excon::Errors::InvalidHeaderValue.new(value.to_s.inspect + ' contains forbidden "\r" or "\n"')
|
154
|
-
end
|
155
|
-
request << key.to_s << ': ' << value.to_s << CR_NL
|
156
|
-
end
|
157
|
-
end
|
147
|
+
request << Utils.headers_hash_to_s(datum[:headers])
|
158
148
|
|
159
149
|
# add additional "\r\n" to indicate end of headers
|
160
150
|
request << CR_NL
|
161
151
|
|
162
152
|
if datum.has_key?(:request_block)
|
163
|
-
socket.write(request) # write out request + headers
|
153
|
+
socket(datum).write(request) # write out request + headers
|
164
154
|
while true # write out body with chunked encoding
|
165
155
|
chunk = datum[:request_block].call
|
166
156
|
chunk = binary_encode(chunk)
|
167
157
|
if chunk.length > 0
|
168
|
-
socket.write(chunk.length.to_s(16) << CR_NL << chunk << CR_NL)
|
158
|
+
socket(datum).write(chunk.length.to_s(16) << CR_NL << chunk << CR_NL)
|
169
159
|
else
|
170
|
-
socket.write(String.new("0#{CR_NL}#{CR_NL}"))
|
160
|
+
socket(datum).write(String.new("0#{CR_NL}#{CR_NL}"))
|
171
161
|
break
|
172
162
|
end
|
173
163
|
end
|
174
164
|
elsif body.nil?
|
175
|
-
socket.write(request) # write out request + headers
|
165
|
+
socket(datum).write(request) # write out request + headers
|
176
166
|
else # write out body
|
177
167
|
if body.respond_to?(:binmode) && !body.is_a?(StringIO)
|
178
168
|
body.binmode
|
@@ -186,13 +176,13 @@ module Excon
|
|
186
176
|
chunk = body.read([datum[:chunk_size] - request.length, 0].max)
|
187
177
|
if chunk
|
188
178
|
chunk = binary_encode(chunk)
|
189
|
-
socket.write(request << chunk)
|
179
|
+
socket(datum).write(request << chunk)
|
190
180
|
else
|
191
|
-
socket.write(request) # write out request + headers
|
181
|
+
socket(datum).write(request) # write out request + headers
|
192
182
|
end
|
193
183
|
|
194
184
|
while (chunk = body.read(datum[:chunk_size]))
|
195
|
-
socket.write(chunk)
|
185
|
+
socket(datum).write(chunk)
|
196
186
|
end
|
197
187
|
end
|
198
188
|
end
|
@@ -463,14 +453,14 @@ module Excon
|
|
463
453
|
end
|
464
454
|
end
|
465
455
|
|
466
|
-
def socket
|
467
|
-
unix_proxy =
|
468
|
-
sockets[@socket_key] ||= if
|
469
|
-
Excon::UnixSocket.new(
|
470
|
-
elsif
|
471
|
-
Excon::SSLSocket.new(
|
456
|
+
def socket(datum = @data)
|
457
|
+
unix_proxy = datum[:proxy] ? datum[:proxy][:scheme] == UNIX : false
|
458
|
+
sockets[@socket_key] ||= if datum[:scheme] == UNIX || unix_proxy
|
459
|
+
Excon::UnixSocket.new(datum)
|
460
|
+
elsif datum[:ssl_uri_schemes].include?(datum[:scheme])
|
461
|
+
Excon::SSLSocket.new(datum)
|
472
462
|
else
|
473
|
-
Excon::Socket.new(
|
463
|
+
Excon::Socket.new(datum)
|
474
464
|
end
|
475
465
|
end
|
476
466
|
|
@@ -573,6 +563,9 @@ module Excon
|
|
573
563
|
if uri.user
|
574
564
|
@data[:proxy][:user] = uri.user
|
575
565
|
end
|
566
|
+
if @data[:ssl_proxy_headers] && !@data[:ssl_uri_schemes].include?(@data[:scheme])
|
567
|
+
raise ArgumentError, "The `:ssl_proxy_headers` parameter should only be used with HTTPS requests."
|
568
|
+
end
|
576
569
|
if @data[:proxy][:scheme] == UNIX
|
577
570
|
if @data[:proxy][:host]
|
578
571
|
raise ArgumentError, "The `:host` parameter should not be set for `unix://` proxies.\n" +
|
data/lib/excon/constants.rb
CHANGED
data/lib/excon/socket.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'resolv'
|
3
|
+
|
2
4
|
module Excon
|
3
5
|
class Socket
|
4
6
|
include Utils
|
@@ -60,7 +62,7 @@ module Excon
|
|
60
62
|
def readline
|
61
63
|
return legacy_readline if RUBY_VERSION.to_f <= 1.8_7
|
62
64
|
buffer = String.new
|
63
|
-
buffer << read_nonblock(1) while buffer[-1] != "\n"
|
65
|
+
buffer << (read_nonblock(1) || raise(EOFError)) while buffer[-1] != "\n"
|
64
66
|
buffer
|
65
67
|
end
|
66
68
|
|
@@ -95,20 +97,17 @@ module Excon
|
|
95
97
|
def connect
|
96
98
|
@socket = nil
|
97
99
|
exception = nil
|
100
|
+
hostname = @data[:hostname]
|
101
|
+
port = @port
|
102
|
+
family = @data[:family]
|
98
103
|
|
99
104
|
if @data[:proxy]
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
family = @data[:family] || ::Socket::Constants::AF_UNSPEC
|
104
|
-
args = [@data[:hostname], @port, family, ::Socket::Constants::SOCK_STREAM]
|
105
|
-
end
|
106
|
-
if RUBY_VERSION >= '1.9.2' && defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby'
|
107
|
-
args << nil << nil << false # no reverse lookup
|
105
|
+
hostname = @data[:proxy][:hostname]
|
106
|
+
port = @data[:proxy][:port]
|
107
|
+
family = @data[:proxy][:family]
|
108
108
|
end
|
109
|
-
addrinfo = ::Socket.getaddrinfo(*args)
|
110
109
|
|
111
|
-
|
110
|
+
Resolv.each_address(hostname) do |ip|
|
112
111
|
# already succeeded on previous addrinfo
|
113
112
|
if @socket
|
114
113
|
break
|
@@ -120,8 +119,8 @@ module Excon
|
|
120
119
|
# nonblocking connect
|
121
120
|
begin
|
122
121
|
sockaddr = ::Socket.sockaddr_in(port, ip)
|
123
|
-
|
124
|
-
socket = ::Socket.new(
|
122
|
+
addrinfo = Addrinfo.getaddrinfo(ip, port, family, :STREAM).first
|
123
|
+
socket = ::Socket.new(addrinfo.pfamily, addrinfo.socktype, addrinfo.protocol)
|
125
124
|
|
126
125
|
if @data[:reuseaddr]
|
127
126
|
socket.setsockopt(::Socket::Constants::SOL_SOCKET, ::Socket::Constants::SO_REUSEADDR, true)
|
@@ -151,6 +150,8 @@ module Excon
|
|
151
150
|
end
|
152
151
|
end
|
153
152
|
|
153
|
+
exception ||= Resolv::ResolvError.new("no address for #{hostname}")
|
154
|
+
|
154
155
|
# this will be our last encountered exception
|
155
156
|
fail exception unless @socket
|
156
157
|
|
data/lib/excon/ssl_socket.rb
CHANGED
@@ -104,6 +104,10 @@ module Excon
|
|
104
104
|
|
105
105
|
request += "Proxy-Connection: Keep-Alive#{Excon::CR_NL}"
|
106
106
|
|
107
|
+
if @data[:ssl_proxy_headers]
|
108
|
+
request << Utils.headers_hash_to_s(@data[:ssl_proxy_headers])
|
109
|
+
end
|
110
|
+
|
107
111
|
request += Excon::CR_NL
|
108
112
|
|
109
113
|
# write out the proxy setup request
|
data/lib/excon/utils.rb
CHANGED
@@ -50,7 +50,7 @@ module Excon
|
|
50
50
|
if datum.has_key?(:password)
|
51
51
|
datum[:password] = REDACTED
|
52
52
|
end
|
53
|
-
if datum.has_key?(:proxy) && datum[:proxy].has_key?(:password)
|
53
|
+
if datum.has_key?(:proxy) && datum[:proxy] && datum[:proxy].has_key?(:password)
|
54
54
|
datum[:proxy] = datum[:proxy].dup
|
55
55
|
datum[:proxy][:password] = REDACTED
|
56
56
|
end
|
@@ -121,5 +121,22 @@ module Excon
|
|
121
121
|
str.gsub!(/\+/, ' ')
|
122
122
|
str.gsub(ESCAPED) { $1.hex.chr }
|
123
123
|
end
|
124
|
+
|
125
|
+
# Performs validation on the passed header hash and returns a string representation of the headers
|
126
|
+
def headers_hash_to_s(headers)
|
127
|
+
headers_str = String.new
|
128
|
+
headers.each do |key, values|
|
129
|
+
if key.to_s.match(/[\r\n]/)
|
130
|
+
raise Excon::Errors::InvalidHeaderKey.new(key.to_s.inspect + ' contains forbidden "\r" or "\n"')
|
131
|
+
end
|
132
|
+
[values].flatten.each do |value|
|
133
|
+
if value.to_s.match(/[\r\n]/)
|
134
|
+
raise Excon::Errors::InvalidHeaderValue.new(value.to_s.inspect + ' contains forbidden "\r" or "\n"')
|
135
|
+
end
|
136
|
+
headers_str << key.to_s << ': ' << value.to_s << CR_NL
|
137
|
+
end
|
138
|
+
end
|
139
|
+
headers_str
|
140
|
+
end
|
124
141
|
end
|
125
142
|
end
|
data/lib/excon/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: excon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.81.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dpiddy (Dan Peterson)
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-04-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -265,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
265
265
|
- !ruby/object:Gem::Version
|
266
266
|
version: '0'
|
267
267
|
requirements: []
|
268
|
-
rubygems_version: 3.
|
268
|
+
rubygems_version: 3.2.15
|
269
269
|
signing_key:
|
270
270
|
specification_version: 4
|
271
271
|
summary: speed, persistence, http(s)
|