grpc 1.1.2-universal-darwin → 1.2.0.pre1-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/etc/roots.pem +189 -102
- data/src/ruby/ext/grpc/extconf.rb +4 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +7 -0
- data/src/ruby/ext/grpc/rb_byte_buffer.h +3 -0
- data/src/ruby/ext/grpc/rb_call.c +47 -46
- data/src/ruby/ext/grpc/rb_channel.c +21 -6
- data/src/ruby/ext/grpc/rb_compression_options.c +9 -6
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -8
- data/src/ruby/ext/grpc/rb_server.c +6 -4
- data/src/ruby/lib/grpc/2.0/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.1/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.2/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.3/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.4/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d8424030f9ef5ff96e2154e7c10a9a8191b0d2a
|
4
|
+
data.tar.gz: a53f2b8ebe08113d84ac268df9f7cfb10f79a6b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cec84419dccc8ee6c4e9a69fd199f93271d12cd13301456b0e6cdad79bbfcb842ac54036ef7e14661e7049fb7679ed298e2311158ce5b4dc1a4c0bed96d340f
|
7
|
+
data.tar.gz: 6c4fe7868a02d0558de322357f9714b29d9e048dde8f7f386d19aeb61abdfaf78eedf4b38a8fbe57fabca2db64db65ff0822520b65c97bd859c518f99156b75f
|
data/etc/roots.pem
CHANGED
@@ -320,35 +320,6 @@ eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
|
|
320
320
|
0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
321
321
|
-----END CERTIFICATE-----
|
322
322
|
|
323
|
-
# Issuer: O=RSA Security Inc OU=RSA Security 2048 V3
|
324
|
-
# Subject: O=RSA Security Inc OU=RSA Security 2048 V3
|
325
|
-
# Label: "RSA Security 2048 v3"
|
326
|
-
# Serial: 13297492616345471454730593562152402946
|
327
|
-
# MD5 Fingerprint: 77:0d:19:b1:21:fd:00:42:9c:3e:0c:a5:dd:0b:02:8e
|
328
|
-
# SHA1 Fingerprint: 25:01:90:19:cf:fb:d9:99:1c:b7:68:25:74:8d:94:5f:30:93:95:42
|
329
|
-
# SHA256 Fingerprint: af:8b:67:62:a1:e5:28:22:81:61:a9:5d:5c:55:9e:e2:66:27:8f:75:d7:9e:83:01:89:a5:03:50:6a:bd:6b:4c
|
330
|
-
-----BEGIN CERTIFICATE-----
|
331
|
-
MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6
|
332
|
-
MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp
|
333
|
-
dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX
|
334
|
-
BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy
|
335
|
-
MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp
|
336
|
-
eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg
|
337
|
-
/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl
|
338
|
-
wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh
|
339
|
-
AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2
|
340
|
-
PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu
|
341
|
-
AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
|
342
|
-
BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR
|
343
|
-
MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc
|
344
|
-
HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/
|
345
|
-
Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
|
346
|
-
f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO
|
347
|
-
rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch
|
348
|
-
6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3
|
349
|
-
7CAFYd4=
|
350
|
-
-----END CERTIFICATE-----
|
351
|
-
|
352
323
|
# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc.
|
353
324
|
# Subject: CN=GeoTrust Global CA O=GeoTrust Inc.
|
354
325
|
# Label: "GeoTrust Global CA"
|
@@ -1987,34 +1958,6 @@ oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs
|
|
1987
1958
|
yZyQ2uypQjyttgI=
|
1988
1959
|
-----END CERTIFICATE-----
|
1989
1960
|
|
1990
|
-
# Issuer: CN=Buypass Class 2 CA 1 O=Buypass AS-983163327
|
1991
|
-
# Subject: CN=Buypass Class 2 CA 1 O=Buypass AS-983163327
|
1992
|
-
# Label: "Buypass Class 2 CA 1"
|
1993
|
-
# Serial: 1
|
1994
|
-
# MD5 Fingerprint: b8:08:9a:f0:03:cc:1b:0d:c8:6c:0b:76:a1:75:64:23
|
1995
|
-
# SHA1 Fingerprint: a0:a1:ab:90:c9:fc:84:7b:3b:12:61:e8:97:7d:5f:d3:22:61:d3:cc
|
1996
|
-
# SHA256 Fingerprint: 0f:4e:9c:dd:26:4b:02:55:50:d1:70:80:63:40:21:4f:e9:44:34:c9:b0:2f:69:7e:c7:10:fc:5f:ea:fb:5e:38
|
1997
|
-
-----BEGIN CERTIFICATE-----
|
1998
|
-
MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd
|
1999
|
-
MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg
|
2000
|
-
Q2xhc3MgMiBDQSAxMB4XDTA2MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzEL
|
2001
|
-
MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD
|
2002
|
-
VQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
2003
|
-
ADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7McXA0
|
2004
|
-
ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLX
|
2005
|
-
l18xoS830r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVB
|
2006
|
-
HfCuuCkslFJgNJQ72uA40Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B
|
2007
|
-
5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/RuFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3
|
2008
|
-
WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
|
2009
|
-
AwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0PAQH/BAQD
|
2010
|
-
AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLP
|
2011
|
-
gcIV1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+
|
2012
|
-
DKhQ7SLHrQVMdvvt7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKu
|
2013
|
-
BctN518fV4bVIJwo+28TOPX2EZL2fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHs
|
2014
|
-
h7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5wwDX3OaJdZtB7WZ+oRxKaJyOk
|
2015
|
-
LY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
2016
|
-
-----END CERTIFICATE-----
|
2017
|
-
|
2018
1961
|
# Issuer: O=certSIGN OU=certSIGN ROOT CA
|
2019
1962
|
# Subject: O=certSIGN OU=certSIGN ROOT CA
|
2020
1963
|
# Label: "certSIGN ROOT CA"
|
@@ -2976,51 +2919,6 @@ dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0
|
|
2976
2919
|
BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5
|
2977
2920
|
-----END CERTIFICATE-----
|
2978
2921
|
|
2979
|
-
# Issuer: CN=Root CA Generalitat Valenciana O=Generalitat Valenciana OU=PKIGVA
|
2980
|
-
# Subject: CN=Root CA Generalitat Valenciana O=Generalitat Valenciana OU=PKIGVA
|
2981
|
-
# Label: "Root CA Generalitat Valenciana"
|
2982
|
-
# Serial: 994436456
|
2983
|
-
# MD5 Fingerprint: 2c:8c:17:5e:b1:54:ab:93:17:b5:36:5a:db:d1:c6:f2
|
2984
|
-
# SHA1 Fingerprint: a0:73:e5:c5:bd:43:61:0d:86:4c:21:13:0a:85:58:57:cc:9c:ea:46
|
2985
|
-
# SHA256 Fingerprint: 8c:4e:df:d0:43:48:f3:22:96:9e:7e:29:a4:cd:4d:ca:00:46:55:06:1c:16:e1:b0:76:42:2e:f3:42:ad:63:0e
|
2986
|
-
-----BEGIN CERTIFICATE-----
|
2987
|
-
MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF
|
2988
|
-
UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ
|
2989
|
-
R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN
|
2990
|
-
MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G
|
2991
|
-
A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw
|
2992
|
-
JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG
|
2993
|
-
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+
|
2994
|
-
WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj
|
2995
|
-
SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl
|
2996
|
-
u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy
|
2997
|
-
A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk
|
2998
|
-
Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7
|
2999
|
-
MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr
|
3000
|
-
aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC
|
3001
|
-
IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A
|
3002
|
-
cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA
|
3003
|
-
YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA
|
3004
|
-
bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA
|
3005
|
-
bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
|
3006
|
-
aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA
|
3007
|
-
aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA
|
3008
|
-
ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA
|
3009
|
-
YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA
|
3010
|
-
ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA
|
3011
|
-
LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6
|
3012
|
-
Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y
|
3013
|
-
eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw
|
3014
|
-
CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G
|
3015
|
-
A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu
|
3016
|
-
Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn
|
3017
|
-
lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt
|
3018
|
-
b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg
|
3019
|
-
9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF
|
3020
|
-
ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC
|
3021
|
-
IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
3022
|
-
-----END CERTIFICATE-----
|
3023
|
-
|
3024
2922
|
# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
|
3025
2923
|
# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
|
3026
2924
|
# Label: "TWCA Root Certification Authority"
|
@@ -5315,3 +5213,192 @@ oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
|
|
5315
5213
|
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
|
5316
5214
|
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
|
5317
5215
|
-----END CERTIFICATE-----
|
5216
|
+
|
5217
|
+
# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM
|
5218
|
+
# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM
|
5219
|
+
# Label: "AC RAIZ FNMT-RCM"
|
5220
|
+
# Serial: 485876308206448804701554682760554759
|
5221
|
+
# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d
|
5222
|
+
# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20
|
5223
|
+
# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa
|
5224
|
+
-----BEGIN CERTIFICATE-----
|
5225
|
+
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
|
5254
|
+
uu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
|
5255
|
+
-----END CERTIFICATE-----
|
5256
|
+
|
5257
|
+
# Issuer: CN=Amazon Root CA 1 O=Amazon
|
5258
|
+
# Subject: CN=Amazon Root CA 1 O=Amazon
|
5259
|
+
# Label: "Amazon Root CA 1"
|
5260
|
+
# Serial: 143266978916655856878034712317230054538369994
|
5261
|
+
# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6
|
5262
|
+
# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16
|
5263
|
+
# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e
|
5264
|
+
-----BEGIN CERTIFICATE-----
|
5265
|
+
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
|
5266
|
+
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
|
5267
|
+
b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
|
5268
|
+
MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
|
5269
|
+
b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
|
5270
|
+
ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
|
5271
|
+
9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
|
5272
|
+
IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
|
5273
|
+
VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
|
5274
|
+
93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
|
5275
|
+
jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
5276
|
+
AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
|
5277
|
+
A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
|
5278
|
+
U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
|
5279
|
+
N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
|
5280
|
+
o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
|
5281
|
+
5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
|
5282
|
+
rqXRfboQnoZsG4q5WTP468SQvvG5
|
5283
|
+
-----END CERTIFICATE-----
|
5284
|
+
|
5285
|
+
# Issuer: CN=Amazon Root CA 2 O=Amazon
|
5286
|
+
# Subject: CN=Amazon Root CA 2 O=Amazon
|
5287
|
+
# Label: "Amazon Root CA 2"
|
5288
|
+
# Serial: 143266982885963551818349160658925006970653239
|
5289
|
+
# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66
|
5290
|
+
# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a
|
5291
|
+
# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4
|
5292
|
+
-----BEGIN CERTIFICATE-----
|
5293
|
+
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
|
5321
|
+
4PsJYGw=
|
5322
|
+
-----END CERTIFICATE-----
|
5323
|
+
|
5324
|
+
# Issuer: CN=Amazon Root CA 3 O=Amazon
|
5325
|
+
# Subject: CN=Amazon Root CA 3 O=Amazon
|
5326
|
+
# Label: "Amazon Root CA 3"
|
5327
|
+
# Serial: 143266986699090766294700635381230934788665930
|
5328
|
+
# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87
|
5329
|
+
# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e
|
5330
|
+
# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4
|
5331
|
+
-----BEGIN CERTIFICATE-----
|
5332
|
+
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5
|
5333
|
+
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
|
5334
|
+
Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
|
5335
|
+
A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
|
5336
|
+
Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl
|
5337
|
+
ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j
|
5338
|
+
QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr
|
5339
|
+
ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr
|
5340
|
+
BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM
|
5341
|
+
YyRIHN8wfdVoOw==
|
5342
|
+
-----END CERTIFICATE-----
|
5343
|
+
|
5344
|
+
# Issuer: CN=Amazon Root CA 4 O=Amazon
|
5345
|
+
# Subject: CN=Amazon Root CA 4 O=Amazon
|
5346
|
+
# Label: "Amazon Root CA 4"
|
5347
|
+
# Serial: 143266989758080763974105200630763877849284878
|
5348
|
+
# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd
|
5349
|
+
# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be
|
5350
|
+
# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92
|
5351
|
+
-----BEGIN CERTIFICATE-----
|
5352
|
+
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5
|
5353
|
+
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
|
5354
|
+
Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
|
5355
|
+
A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
|
5356
|
+
Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi
|
5357
|
+
9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk
|
5358
|
+
M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB
|
5359
|
+
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB
|
5360
|
+
MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw
|
5361
|
+
CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW
|
5362
|
+
1KyLa2tJElMzrdfkviT8tQp21KW8EA==
|
5363
|
+
-----END CERTIFICATE-----
|
5364
|
+
|
5365
|
+
# Issuer: CN=LuxTrust Global Root 2 O=LuxTrust S.A.
|
5366
|
+
# Subject: CN=LuxTrust Global Root 2 O=LuxTrust S.A.
|
5367
|
+
# Label: "LuxTrust Global Root 2"
|
5368
|
+
# Serial: 59914338225734147123941058376788110305822489521
|
5369
|
+
# MD5 Fingerprint: b2:e1:09:00:61:af:f7:f1:91:6f:c4:ad:8d:5e:3b:7c
|
5370
|
+
# SHA1 Fingerprint: 1e:0e:56:19:0a:d1:8b:25:98:b2:04:44:ff:66:8a:04:17:99:5f:3f
|
5371
|
+
# SHA256 Fingerprint: 54:45:5f:71:29:c2:0b:14:47:c4:18:f9:97:16:8f:24:c5:8f:c5:02:3b:f5:da:5b:e2:eb:6e:1d:d8:90:2e:d5
|
5372
|
+
-----BEGIN CERTIFICATE-----
|
5373
|
+
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
|
5404
|
+
-----END CERTIFICATE-----
|
@@ -27,6 +27,7 @@
|
|
27
27
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
28
28
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29
29
|
|
30
|
+
require 'etc'
|
30
31
|
require 'mkmf'
|
31
32
|
|
32
33
|
LIBDIR = RbConfig::CONFIG['libdir']
|
@@ -80,7 +81,9 @@ ENV['BUILDDIR'] = output_dir
|
|
80
81
|
|
81
82
|
unless windows
|
82
83
|
puts 'Building internal gRPC into ' + grpc_lib_dir
|
83
|
-
|
84
|
+
nproc = 4
|
85
|
+
nproc = Etc.nprocessors * 2 if Etc.respond_to? :nprocessors
|
86
|
+
system("make -j#{nproc} -C #{grpc_root} #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config}")
|
84
87
|
exit 1 unless $? == 0
|
85
88
|
end
|
86
89
|
|
@@ -68,3 +68,10 @@ VALUE grpc_rb_byte_buffer_to_s(grpc_byte_buffer *buffer) {
|
|
68
68
|
grpc_byte_buffer_reader_destroy(&reader);
|
69
69
|
return rb_string;
|
70
70
|
}
|
71
|
+
|
72
|
+
VALUE grpc_rb_slice_to_ruby_string(grpc_slice slice) {
|
73
|
+
if (GRPC_SLICE_START_PTR(slice) == NULL) {
|
74
|
+
rb_raise(rb_eRuntimeError, "attempt to convert uninitialized grpc_slice to ruby string");
|
75
|
+
}
|
76
|
+
return rb_str_new((char*)GRPC_SLICE_START_PTR(slice), GRPC_SLICE_LENGTH(slice));
|
77
|
+
}
|
@@ -44,4 +44,7 @@ grpc_byte_buffer *grpc_rb_s_to_byte_buffer(char *string, size_t length);
|
|
44
44
|
/* Converts a grpc_byte_buffer to a ruby string */
|
45
45
|
VALUE grpc_rb_byte_buffer_to_s(grpc_byte_buffer *buffer);
|
46
46
|
|
47
|
+
/* Converts a grpc_slice to a ruby string */
|
48
|
+
VALUE grpc_rb_slice_to_ruby_string(grpc_slice slice);
|
49
|
+
|
47
50
|
#endif /* GRPC_RB_BYTE_BUFFER_H_ */
|
data/src/ruby/ext/grpc/rb_call.c
CHANGED
@@ -121,8 +121,8 @@ static size_t md_ary_datasize(const void *p) {
|
|
121
121
|
size_t i, datasize = sizeof(grpc_metadata_array);
|
122
122
|
for (i = 0; i < ary->count; ++i) {
|
123
123
|
const grpc_metadata *const md = &ary->metadata[i];
|
124
|
-
datasize +=
|
125
|
-
datasize += md->
|
124
|
+
datasize += GRPC_SLICE_LENGTH(md->key);
|
125
|
+
datasize += GRPC_SLICE_LENGTH(md->value);
|
126
126
|
}
|
127
127
|
datasize += ary->capacity * sizeof(grpc_metadata);
|
128
128
|
return datasize;
|
@@ -386,23 +386,23 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
|
|
386
386
|
grpc_metadata_array *md_ary = NULL;
|
387
387
|
long array_length;
|
388
388
|
long i;
|
389
|
-
|
390
|
-
|
391
|
-
char
|
392
|
-
size_t value_len;
|
389
|
+
grpc_slice key_slice;
|
390
|
+
grpc_slice value_slice;
|
391
|
+
char* tmp_str;
|
393
392
|
|
394
393
|
if (TYPE(key) == T_SYMBOL) {
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
394
|
+
key_slice = grpc_slice_from_static_string(rb_id2name(SYM2ID(key)));
|
395
|
+
} else if (TYPE(key) == T_STRING) {
|
396
|
+
key_slice = grpc_slice_from_copied_buffer(RSTRING_PTR(key), RSTRING_LEN(key));
|
397
|
+
} else {
|
398
|
+
rb_raise(rb_eTypeError, "grpc_rb_md_ary_fill_hash_cb: bad type for key parameter");
|
400
399
|
}
|
401
400
|
|
402
|
-
if (!grpc_header_key_is_legal(
|
401
|
+
if (!grpc_header_key_is_legal(key_slice)) {
|
402
|
+
tmp_str = grpc_slice_to_c_string(key_slice);
|
403
403
|
rb_raise(rb_eArgError,
|
404
404
|
"'%s' is an invalid header key, must match [a-z0-9-_.]+",
|
405
|
-
|
405
|
+
tmp_str);
|
406
406
|
return ST_STOP;
|
407
407
|
}
|
408
408
|
|
@@ -414,33 +414,31 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
|
|
414
414
|
array_length = RARRAY_LEN(val);
|
415
415
|
/* If the value is an array, add capacity for each value in the array */
|
416
416
|
for (i = 0; i < array_length; i++) {
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
!grpc_header_nonbin_value_is_legal(value_str, value_len)) {
|
417
|
+
value_slice = grpc_slice_from_copied_buffer(RSTRING_PTR(rb_ary_entry(val, i)), RSTRING_LEN(rb_ary_entry(val, i)));
|
418
|
+
if (!grpc_is_binary_header(key_slice) &&
|
419
|
+
!grpc_header_nonbin_value_is_legal(value_slice)) {
|
421
420
|
// The value has invalid characters
|
421
|
+
tmp_str = grpc_slice_to_c_string(value_slice);
|
422
422
|
rb_raise(rb_eArgError,
|
423
|
-
"Header value '%s' has invalid characters",
|
423
|
+
"Header value '%s' has invalid characters", tmp_str);
|
424
424
|
return ST_STOP;
|
425
425
|
}
|
426
|
-
md_ary->metadata[md_ary->count].key =
|
427
|
-
md_ary->metadata[md_ary->count].value =
|
428
|
-
md_ary->metadata[md_ary->count].value_length = value_len;
|
426
|
+
md_ary->metadata[md_ary->count].key = key_slice;
|
427
|
+
md_ary->metadata[md_ary->count].value = value_slice;
|
429
428
|
md_ary->count += 1;
|
430
429
|
}
|
431
430
|
} else if (TYPE(val) == T_STRING) {
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
!grpc_header_nonbin_value_is_legal(value_str, value_len)) {
|
431
|
+
value_slice = grpc_slice_from_copied_buffer(RSTRING_PTR(val), RSTRING_LEN(val));
|
432
|
+
if (!grpc_is_binary_header(key_slice) &&
|
433
|
+
!grpc_header_nonbin_value_is_legal(value_slice)) {
|
436
434
|
// The value has invalid characters
|
435
|
+
tmp_str = grpc_slice_to_c_string(value_slice);
|
437
436
|
rb_raise(rb_eArgError,
|
438
|
-
"Header value '%s' has invalid characters",
|
437
|
+
"Header value '%s' has invalid characters", tmp_str);
|
439
438
|
return ST_STOP;
|
440
439
|
}
|
441
|
-
md_ary->metadata[md_ary->count].key =
|
442
|
-
md_ary->metadata[md_ary->count].value =
|
443
|
-
md_ary->metadata[md_ary->count].value_length = value_len;
|
440
|
+
md_ary->metadata[md_ary->count].key = key_slice;
|
441
|
+
md_ary->metadata[md_ary->count].value = value_slice;
|
444
442
|
md_ary->count += 1;
|
445
443
|
} else {
|
446
444
|
rb_raise(rb_eArgError,
|
@@ -506,22 +504,19 @@ VALUE grpc_rb_md_ary_to_h(grpc_metadata_array *md_ary) {
|
|
506
504
|
size_t i;
|
507
505
|
|
508
506
|
for (i = 0; i < md_ary->count; i++) {
|
509
|
-
key =
|
507
|
+
key = grpc_rb_slice_to_ruby_string(md_ary->metadata[i].key);
|
510
508
|
value = rb_hash_aref(result, key);
|
511
509
|
if (value == Qnil) {
|
512
|
-
value =
|
513
|
-
md_ary->metadata[i].value_length);
|
510
|
+
value = grpc_rb_slice_to_ruby_string(md_ary->metadata[i].value);
|
514
511
|
rb_hash_aset(result, key, value);
|
515
512
|
} else if (TYPE(value) == T_ARRAY) {
|
516
513
|
/* Add the string to the returned array */
|
517
|
-
rb_ary_push(value,
|
518
|
-
md_ary->metadata[i].value_length));
|
514
|
+
rb_ary_push(value, grpc_rb_slice_to_ruby_string(md_ary->metadata[i].value));
|
519
515
|
} else {
|
520
516
|
/* Add the current value with this key and the new one to an array */
|
521
517
|
new_ary = rb_ary_new();
|
522
518
|
rb_ary_push(new_ary, value);
|
523
|
-
rb_ary_push(new_ary,
|
524
|
-
md_ary->metadata[i].value_length));
|
519
|
+
rb_ary_push(new_ary, grpc_rb_slice_to_ruby_string(md_ary->metadata[i].value));
|
525
520
|
rb_hash_aset(result, key, new_ary);
|
526
521
|
}
|
527
522
|
}
|
@@ -563,6 +558,7 @@ static int grpc_rb_call_check_op_keys_hash_cb(VALUE key, VALUE val,
|
|
563
558
|
*/
|
564
559
|
static void grpc_rb_op_update_status_from_server(grpc_op *op,
|
565
560
|
grpc_metadata_array *md_ary,
|
561
|
+
grpc_slice *send_status_details,
|
566
562
|
VALUE status) {
|
567
563
|
VALUE code = rb_struct_aref(status, sym_code);
|
568
564
|
VALUE details = rb_struct_aref(status, sym_details);
|
@@ -579,8 +575,11 @@ static void grpc_rb_op_update_status_from_server(grpc_op *op,
|
|
579
575
|
rb_obj_classname(code));
|
580
576
|
return;
|
581
577
|
}
|
578
|
+
|
579
|
+
*send_status_details = grpc_slice_from_copied_buffer(RSTRING_PTR(details), RSTRING_LEN(details));
|
580
|
+
|
582
581
|
op->data.send_status_from_server.status = NUM2INT(code);
|
583
|
-
op->data.send_status_from_server.status_details =
|
582
|
+
op->data.send_status_from_server.status_details = send_status_details;
|
584
583
|
grpc_rb_md_ary_convert(metadata_hash, md_ary);
|
585
584
|
op->data.send_status_from_server.trailing_metadata_count = md_ary->count;
|
586
585
|
op->data.send_status_from_server.trailing_metadata = md_ary->metadata;
|
@@ -603,9 +602,9 @@ typedef struct run_batch_stack {
|
|
603
602
|
grpc_metadata_array recv_trailing_metadata;
|
604
603
|
int recv_cancelled;
|
605
604
|
grpc_status_code recv_status;
|
606
|
-
|
607
|
-
size_t recv_status_details_capacity;
|
605
|
+
grpc_slice recv_status_details;
|
608
606
|
unsigned write_flag;
|
607
|
+
grpc_slice send_status_details;
|
609
608
|
} run_batch_stack;
|
610
609
|
|
611
610
|
/* grpc_run_batch_stack_init ensures the run_batch_stack is properly
|
@@ -631,8 +630,12 @@ static void grpc_run_batch_stack_cleanup(run_batch_stack *st) {
|
|
631
630
|
grpc_metadata_array_destroy(&st->recv_metadata);
|
632
631
|
grpc_metadata_array_destroy(&st->recv_trailing_metadata);
|
633
632
|
|
634
|
-
if (st->
|
635
|
-
|
633
|
+
if (GRPC_SLICE_START_PTR(st->send_status_details) != NULL) {
|
634
|
+
grpc_slice_unref(st->send_status_details);
|
635
|
+
}
|
636
|
+
|
637
|
+
if (GRPC_SLICE_START_PTR(st->recv_status_details) != NULL) {
|
638
|
+
grpc_slice_unref(st->recv_status_details);
|
636
639
|
}
|
637
640
|
|
638
641
|
if (st->recv_message != NULL) {
|
@@ -684,7 +687,7 @@ static void grpc_run_batch_stack_fill_ops(run_batch_stack *st, VALUE ops_hash) {
|
|
684
687
|
/* N.B. later there is no need to explicitly delete the metadata keys
|
685
688
|
* and values, they are references to data in ruby objects. */
|
686
689
|
grpc_rb_op_update_status_from_server(
|
687
|
-
&st->ops[st->op_num], &st->send_trailing_metadata, this_value);
|
690
|
+
&st->ops[st->op_num], &st->send_trailing_metadata, &st->send_status_details, this_value);
|
688
691
|
break;
|
689
692
|
case GRPC_OP_RECV_INITIAL_METADATA:
|
690
693
|
st->ops[st->op_num].data.recv_initial_metadata.recv_initial_metadata =
|
@@ -700,8 +703,6 @@ static void grpc_run_batch_stack_fill_ops(run_batch_stack *st, VALUE ops_hash) {
|
|
700
703
|
&st->recv_status;
|
701
704
|
st->ops[st->op_num].data.recv_status_on_client.status_details =
|
702
705
|
&st->recv_status_details;
|
703
|
-
st->ops[st->op_num].data.recv_status_on_client.status_details_capacity =
|
704
|
-
&st->recv_status_details_capacity;
|
705
706
|
break;
|
706
707
|
case GRPC_OP_RECV_CLOSE_ON_SERVER:
|
707
708
|
st->ops[st->op_num].data.recv_close_on_server.cancelled =
|
@@ -749,9 +750,9 @@ static VALUE grpc_run_batch_stack_build_result(run_batch_stack *st) {
|
|
749
750
|
rb_struct_aset(
|
750
751
|
result, sym_status,
|
751
752
|
rb_struct_new(grpc_rb_sStatus, UINT2NUM(st->recv_status),
|
752
|
-
(st->recv_status_details == NULL
|
753
|
+
(GRPC_SLICE_START_PTR(st->recv_status_details) == NULL
|
753
754
|
? Qnil
|
754
|
-
:
|
755
|
+
: grpc_rb_slice_to_ruby_string(st->recv_status_details)),
|
755
756
|
grpc_rb_md_ary_to_h(&st->recv_trailing_metadata),
|
756
757
|
NULL));
|
757
758
|
break;
|
@@ -35,6 +35,7 @@
|
|
35
35
|
|
36
36
|
#include "rb_grpc_imports.generated.h"
|
37
37
|
#include "rb_channel.h"
|
38
|
+
#include "rb_byte_buffer.h"
|
38
39
|
|
39
40
|
#include <grpc/grpc.h>
|
40
41
|
#include <grpc/grpc_security.h>
|
@@ -252,10 +253,14 @@ static VALUE grpc_rb_channel_create_call(VALUE self, VALUE parent,
|
|
252
253
|
grpc_channel *ch = NULL;
|
253
254
|
grpc_completion_queue *cq = NULL;
|
254
255
|
int flags = GRPC_PROPAGATE_DEFAULTS;
|
255
|
-
|
256
|
-
|
256
|
+
grpc_slice method_slice;
|
257
|
+
grpc_slice host_slice;
|
258
|
+
grpc_slice *host_slice_ptr = NULL;
|
259
|
+
char* tmp_str = NULL;
|
260
|
+
|
257
261
|
if (host != Qnil) {
|
258
|
-
|
262
|
+
host_slice = grpc_slice_from_copied_buffer(RSTRING_PTR(host), RSTRING_LEN(host));
|
263
|
+
host_slice_ptr = &host_slice;
|
259
264
|
}
|
260
265
|
if (mask != Qnil) {
|
261
266
|
flags = NUM2UINT(mask);
|
@@ -272,15 +277,25 @@ static VALUE grpc_rb_channel_create_call(VALUE self, VALUE parent,
|
|
272
277
|
return Qnil;
|
273
278
|
}
|
274
279
|
|
275
|
-
|
276
|
-
|
280
|
+
method_slice = grpc_slice_from_copied_buffer(RSTRING_PTR(method), RSTRING_LEN(method));
|
281
|
+
|
282
|
+
call = grpc_channel_create_call(ch, parent_call, flags, cq, method_slice,
|
283
|
+
host_slice_ptr, grpc_rb_time_timeval(
|
277
284
|
deadline,
|
278
285
|
/* absolute time */ 0), NULL);
|
286
|
+
|
279
287
|
if (call == NULL) {
|
288
|
+
tmp_str = grpc_slice_to_c_string(method_slice);
|
280
289
|
rb_raise(rb_eRuntimeError, "cannot create call with method %s",
|
281
|
-
|
290
|
+
tmp_str);
|
282
291
|
return Qnil;
|
283
292
|
}
|
293
|
+
|
294
|
+
grpc_slice_unref(method_slice);
|
295
|
+
if (host_slice_ptr != NULL) {
|
296
|
+
grpc_slice_unref(host_slice);
|
297
|
+
}
|
298
|
+
|
284
299
|
res = grpc_rb_wrap_call(call, cq);
|
285
300
|
|
286
301
|
/* Make this channel an instance attribute of the call so that it is not GCed
|
@@ -34,6 +34,7 @@
|
|
34
34
|
#include <ruby/ruby.h>
|
35
35
|
|
36
36
|
#include "rb_compression_options.h"
|
37
|
+
#include "rb_byte_buffer.h"
|
37
38
|
#include "rb_grpc_imports.generated.h"
|
38
39
|
|
39
40
|
#include <grpc/compression.h>
|
@@ -168,9 +169,9 @@ void grpc_rb_compression_options_set_default_level(
|
|
168
169
|
* Raises an error if the name of the algorithm passed in is invalid. */
|
169
170
|
void grpc_rb_compression_options_algorithm_name_to_value_internal(
|
170
171
|
grpc_compression_algorithm *algorithm_value, VALUE algorithm_name) {
|
171
|
-
|
172
|
-
long name_len = 0;
|
172
|
+
grpc_slice name_slice;
|
173
173
|
VALUE algorithm_name_as_string = Qnil;
|
174
|
+
char *tmp_str = NULL;
|
174
175
|
|
175
176
|
Check_Type(algorithm_name, T_SYMBOL);
|
176
177
|
|
@@ -178,16 +179,18 @@ void grpc_rb_compression_options_algorithm_name_to_value_internal(
|
|
178
179
|
* correct C string out of it. */
|
179
180
|
algorithm_name_as_string = rb_funcall(algorithm_name, rb_intern("to_s"), 0);
|
180
181
|
|
181
|
-
|
182
|
-
name_len = RSTRING_LEN(algorithm_name_as_string);
|
182
|
+
name_slice = grpc_slice_from_copied_buffer(RSTRING_PTR(algorithm_name_as_string), RSTRING_LEN(algorithm_name_as_string));
|
183
183
|
|
184
184
|
/* Raise an error if the name isn't recognized as a compression algorithm by
|
185
185
|
* the algorithm parse function
|
186
186
|
* in GRPC core. */
|
187
|
-
if
|
187
|
+
if(!grpc_compression_algorithm_parse(name_slice, algorithm_value)) {
|
188
|
+
tmp_str = grpc_slice_to_c_string(name_slice);
|
188
189
|
rb_raise(rb_eNameError, "Invalid compression algorithm name: %s",
|
189
|
-
|
190
|
+
tmp_str);
|
190
191
|
}
|
192
|
+
|
193
|
+
grpc_slice_unref(name_slice);
|
191
194
|
}
|
192
195
|
|
193
196
|
/* Indicates whether a given algorithm is enabled on this instance, given the
|
@@ -107,6 +107,7 @@ grpc_channel_register_call_type grpc_channel_register_call_import;
|
|
107
107
|
grpc_channel_create_registered_call_type grpc_channel_create_registered_call_import;
|
108
108
|
grpc_call_start_batch_type grpc_call_start_batch_import;
|
109
109
|
grpc_call_get_peer_type grpc_call_get_peer_import;
|
110
|
+
grpc_call_set_load_reporting_cost_context_type grpc_call_set_load_reporting_cost_context_import;
|
110
111
|
grpc_census_call_set_context_type grpc_census_call_set_context_import;
|
111
112
|
grpc_census_call_get_context_type grpc_census_call_get_context_import;
|
112
113
|
grpc_channel_get_target_type grpc_channel_get_target_import;
|
@@ -179,17 +180,30 @@ grpc_slice_new_type grpc_slice_new_import;
|
|
179
180
|
grpc_slice_new_with_user_data_type grpc_slice_new_with_user_data_import;
|
180
181
|
grpc_slice_new_with_len_type grpc_slice_new_with_len_import;
|
181
182
|
grpc_slice_malloc_type grpc_slice_malloc_import;
|
183
|
+
grpc_slice_intern_type grpc_slice_intern_import;
|
182
184
|
grpc_slice_from_copied_string_type grpc_slice_from_copied_string_import;
|
183
185
|
grpc_slice_from_copied_buffer_type grpc_slice_from_copied_buffer_import;
|
184
186
|
grpc_slice_from_static_string_type grpc_slice_from_static_string_import;
|
187
|
+
grpc_slice_from_static_buffer_type grpc_slice_from_static_buffer_import;
|
185
188
|
grpc_slice_sub_type grpc_slice_sub_import;
|
186
189
|
grpc_slice_sub_no_ref_type grpc_slice_sub_no_ref_import;
|
187
190
|
grpc_slice_split_tail_type grpc_slice_split_tail_import;
|
188
191
|
grpc_slice_split_head_type grpc_slice_split_head_import;
|
189
|
-
|
192
|
+
grpc_empty_slice_type grpc_empty_slice_import;
|
193
|
+
grpc_slice_default_hash_impl_type grpc_slice_default_hash_impl_import;
|
194
|
+
grpc_slice_default_eq_impl_type grpc_slice_default_eq_impl_import;
|
195
|
+
grpc_slice_eq_type grpc_slice_eq_import;
|
190
196
|
grpc_slice_cmp_type grpc_slice_cmp_import;
|
191
197
|
grpc_slice_str_cmp_type grpc_slice_str_cmp_import;
|
198
|
+
grpc_slice_buf_cmp_type grpc_slice_buf_cmp_import;
|
199
|
+
grpc_slice_buf_start_eq_type grpc_slice_buf_start_eq_import;
|
200
|
+
grpc_slice_rchr_type grpc_slice_rchr_import;
|
201
|
+
grpc_slice_chr_type grpc_slice_chr_import;
|
202
|
+
grpc_slice_slice_type grpc_slice_slice_import;
|
203
|
+
grpc_slice_hash_type grpc_slice_hash_import;
|
192
204
|
grpc_slice_is_equivalent_type grpc_slice_is_equivalent_import;
|
205
|
+
grpc_slice_dup_type grpc_slice_dup_import;
|
206
|
+
grpc_slice_to_c_string_type grpc_slice_to_c_string_import;
|
193
207
|
grpc_slice_buffer_init_type grpc_slice_buffer_init_import;
|
194
208
|
grpc_slice_buffer_destroy_type grpc_slice_buffer_destroy_import;
|
195
209
|
grpc_slice_buffer_add_type grpc_slice_buffer_add_import;
|
@@ -202,8 +216,11 @@ grpc_slice_buffer_swap_type grpc_slice_buffer_swap_import;
|
|
202
216
|
grpc_slice_buffer_move_into_type grpc_slice_buffer_move_into_import;
|
203
217
|
grpc_slice_buffer_trim_end_type grpc_slice_buffer_trim_end_import;
|
204
218
|
grpc_slice_buffer_move_first_type grpc_slice_buffer_move_first_import;
|
219
|
+
grpc_slice_buffer_move_first_into_buffer_type grpc_slice_buffer_move_first_into_buffer_import;
|
205
220
|
grpc_slice_buffer_take_first_type grpc_slice_buffer_take_first_import;
|
221
|
+
grpc_slice_buffer_undo_take_first_type grpc_slice_buffer_undo_take_first_import;
|
206
222
|
gpr_malloc_type gpr_malloc_import;
|
223
|
+
gpr_zalloc_type gpr_zalloc_import;
|
207
224
|
gpr_free_type gpr_free_import;
|
208
225
|
gpr_realloc_type gpr_realloc_import;
|
209
226
|
gpr_malloc_aligned_type gpr_malloc_aligned_import;
|
@@ -383,6 +400,7 @@ void grpc_rb_load_imports(HMODULE library) {
|
|
383
400
|
grpc_channel_create_registered_call_import = (grpc_channel_create_registered_call_type) GetProcAddress(library, "grpc_channel_create_registered_call");
|
384
401
|
grpc_call_start_batch_import = (grpc_call_start_batch_type) GetProcAddress(library, "grpc_call_start_batch");
|
385
402
|
grpc_call_get_peer_import = (grpc_call_get_peer_type) GetProcAddress(library, "grpc_call_get_peer");
|
403
|
+
grpc_call_set_load_reporting_cost_context_import = (grpc_call_set_load_reporting_cost_context_type) GetProcAddress(library, "grpc_call_set_load_reporting_cost_context");
|
386
404
|
grpc_census_call_set_context_import = (grpc_census_call_set_context_type) GetProcAddress(library, "grpc_census_call_set_context");
|
387
405
|
grpc_census_call_get_context_import = (grpc_census_call_get_context_type) GetProcAddress(library, "grpc_census_call_get_context");
|
388
406
|
grpc_channel_get_target_import = (grpc_channel_get_target_type) GetProcAddress(library, "grpc_channel_get_target");
|
@@ -455,17 +473,30 @@ void grpc_rb_load_imports(HMODULE library) {
|
|
455
473
|
grpc_slice_new_with_user_data_import = (grpc_slice_new_with_user_data_type) GetProcAddress(library, "grpc_slice_new_with_user_data");
|
456
474
|
grpc_slice_new_with_len_import = (grpc_slice_new_with_len_type) GetProcAddress(library, "grpc_slice_new_with_len");
|
457
475
|
grpc_slice_malloc_import = (grpc_slice_malloc_type) GetProcAddress(library, "grpc_slice_malloc");
|
476
|
+
grpc_slice_intern_import = (grpc_slice_intern_type) GetProcAddress(library, "grpc_slice_intern");
|
458
477
|
grpc_slice_from_copied_string_import = (grpc_slice_from_copied_string_type) GetProcAddress(library, "grpc_slice_from_copied_string");
|
459
478
|
grpc_slice_from_copied_buffer_import = (grpc_slice_from_copied_buffer_type) GetProcAddress(library, "grpc_slice_from_copied_buffer");
|
460
479
|
grpc_slice_from_static_string_import = (grpc_slice_from_static_string_type) GetProcAddress(library, "grpc_slice_from_static_string");
|
480
|
+
grpc_slice_from_static_buffer_import = (grpc_slice_from_static_buffer_type) GetProcAddress(library, "grpc_slice_from_static_buffer");
|
461
481
|
grpc_slice_sub_import = (grpc_slice_sub_type) GetProcAddress(library, "grpc_slice_sub");
|
462
482
|
grpc_slice_sub_no_ref_import = (grpc_slice_sub_no_ref_type) GetProcAddress(library, "grpc_slice_sub_no_ref");
|
463
483
|
grpc_slice_split_tail_import = (grpc_slice_split_tail_type) GetProcAddress(library, "grpc_slice_split_tail");
|
464
484
|
grpc_slice_split_head_import = (grpc_slice_split_head_type) GetProcAddress(library, "grpc_slice_split_head");
|
465
|
-
|
485
|
+
grpc_empty_slice_import = (grpc_empty_slice_type) GetProcAddress(library, "grpc_empty_slice");
|
486
|
+
grpc_slice_default_hash_impl_import = (grpc_slice_default_hash_impl_type) GetProcAddress(library, "grpc_slice_default_hash_impl");
|
487
|
+
grpc_slice_default_eq_impl_import = (grpc_slice_default_eq_impl_type) GetProcAddress(library, "grpc_slice_default_eq_impl");
|
488
|
+
grpc_slice_eq_import = (grpc_slice_eq_type) GetProcAddress(library, "grpc_slice_eq");
|
466
489
|
grpc_slice_cmp_import = (grpc_slice_cmp_type) GetProcAddress(library, "grpc_slice_cmp");
|
467
490
|
grpc_slice_str_cmp_import = (grpc_slice_str_cmp_type) GetProcAddress(library, "grpc_slice_str_cmp");
|
491
|
+
grpc_slice_buf_cmp_import = (grpc_slice_buf_cmp_type) GetProcAddress(library, "grpc_slice_buf_cmp");
|
492
|
+
grpc_slice_buf_start_eq_import = (grpc_slice_buf_start_eq_type) GetProcAddress(library, "grpc_slice_buf_start_eq");
|
493
|
+
grpc_slice_rchr_import = (grpc_slice_rchr_type) GetProcAddress(library, "grpc_slice_rchr");
|
494
|
+
grpc_slice_chr_import = (grpc_slice_chr_type) GetProcAddress(library, "grpc_slice_chr");
|
495
|
+
grpc_slice_slice_import = (grpc_slice_slice_type) GetProcAddress(library, "grpc_slice_slice");
|
496
|
+
grpc_slice_hash_import = (grpc_slice_hash_type) GetProcAddress(library, "grpc_slice_hash");
|
468
497
|
grpc_slice_is_equivalent_import = (grpc_slice_is_equivalent_type) GetProcAddress(library, "grpc_slice_is_equivalent");
|
498
|
+
grpc_slice_dup_import = (grpc_slice_dup_type) GetProcAddress(library, "grpc_slice_dup");
|
499
|
+
grpc_slice_to_c_string_import = (grpc_slice_to_c_string_type) GetProcAddress(library, "grpc_slice_to_c_string");
|
469
500
|
grpc_slice_buffer_init_import = (grpc_slice_buffer_init_type) GetProcAddress(library, "grpc_slice_buffer_init");
|
470
501
|
grpc_slice_buffer_destroy_import = (grpc_slice_buffer_destroy_type) GetProcAddress(library, "grpc_slice_buffer_destroy");
|
471
502
|
grpc_slice_buffer_add_import = (grpc_slice_buffer_add_type) GetProcAddress(library, "grpc_slice_buffer_add");
|
@@ -478,8 +509,11 @@ void grpc_rb_load_imports(HMODULE library) {
|
|
478
509
|
grpc_slice_buffer_move_into_import = (grpc_slice_buffer_move_into_type) GetProcAddress(library, "grpc_slice_buffer_move_into");
|
479
510
|
grpc_slice_buffer_trim_end_import = (grpc_slice_buffer_trim_end_type) GetProcAddress(library, "grpc_slice_buffer_trim_end");
|
480
511
|
grpc_slice_buffer_move_first_import = (grpc_slice_buffer_move_first_type) GetProcAddress(library, "grpc_slice_buffer_move_first");
|
512
|
+
grpc_slice_buffer_move_first_into_buffer_import = (grpc_slice_buffer_move_first_into_buffer_type) GetProcAddress(library, "grpc_slice_buffer_move_first_into_buffer");
|
481
513
|
grpc_slice_buffer_take_first_import = (grpc_slice_buffer_take_first_type) GetProcAddress(library, "grpc_slice_buffer_take_first");
|
514
|
+
grpc_slice_buffer_undo_take_first_import = (grpc_slice_buffer_undo_take_first_type) GetProcAddress(library, "grpc_slice_buffer_undo_take_first");
|
482
515
|
gpr_malloc_import = (gpr_malloc_type) GetProcAddress(library, "gpr_malloc");
|
516
|
+
gpr_zalloc_import = (gpr_zalloc_type) GetProcAddress(library, "gpr_zalloc");
|
483
517
|
gpr_free_import = (gpr_free_type) GetProcAddress(library, "gpr_free");
|
484
518
|
gpr_realloc_import = (gpr_realloc_type) GetProcAddress(library, "gpr_realloc");
|
485
519
|
gpr_malloc_aligned_import = (gpr_malloc_aligned_type) GetProcAddress(library, "gpr_malloc_aligned");
|
@@ -176,7 +176,7 @@ extern census_resource_id_type census_resource_id_import;
|
|
176
176
|
typedef void(*census_record_values_type)(census_context *context, census_value *values, size_t nvalues);
|
177
177
|
extern census_record_values_type census_record_values_import;
|
178
178
|
#define census_record_values census_record_values_import
|
179
|
-
typedef int(*grpc_compression_algorithm_parse_type)(
|
179
|
+
typedef int(*grpc_compression_algorithm_parse_type)(grpc_slice value, grpc_compression_algorithm *algorithm);
|
180
180
|
extern grpc_compression_algorithm_parse_type grpc_compression_algorithm_parse_import;
|
181
181
|
#define grpc_compression_algorithm_parse grpc_compression_algorithm_parse_import
|
182
182
|
typedef int(*grpc_compression_algorithm_name_type)(grpc_compression_algorithm algorithm, char **name);
|
@@ -254,7 +254,7 @@ extern grpc_channel_check_connectivity_state_type grpc_channel_check_connectivit
|
|
254
254
|
typedef void(*grpc_channel_watch_connectivity_state_type)(grpc_channel *channel, grpc_connectivity_state last_observed_state, gpr_timespec deadline, grpc_completion_queue *cq, void *tag);
|
255
255
|
extern grpc_channel_watch_connectivity_state_type grpc_channel_watch_connectivity_state_import;
|
256
256
|
#define grpc_channel_watch_connectivity_state grpc_channel_watch_connectivity_state_import
|
257
|
-
typedef grpc_call *(*grpc_channel_create_call_type)(grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask, grpc_completion_queue *completion_queue,
|
257
|
+
typedef grpc_call *(*grpc_channel_create_call_type)(grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask, grpc_completion_queue *completion_queue, grpc_slice method, const grpc_slice *host, gpr_timespec deadline, void *reserved);
|
258
258
|
extern grpc_channel_create_call_type grpc_channel_create_call_import;
|
259
259
|
#define grpc_channel_create_call grpc_channel_create_call_import
|
260
260
|
typedef void(*grpc_channel_ping_type)(grpc_channel *channel, grpc_completion_queue *cq, void *tag, void *reserved);
|
@@ -272,6 +272,9 @@ extern grpc_call_start_batch_type grpc_call_start_batch_import;
|
|
272
272
|
typedef char *(*grpc_call_get_peer_type)(grpc_call *call);
|
273
273
|
extern grpc_call_get_peer_type grpc_call_get_peer_import;
|
274
274
|
#define grpc_call_get_peer grpc_call_get_peer_import
|
275
|
+
typedef void(*grpc_call_set_load_reporting_cost_context_type)(grpc_call *call, struct grpc_load_reporting_cost_context *context);
|
276
|
+
extern grpc_call_set_load_reporting_cost_context_type grpc_call_set_load_reporting_cost_context_import;
|
277
|
+
#define grpc_call_set_load_reporting_cost_context grpc_call_set_load_reporting_cost_context_import
|
275
278
|
typedef void(*grpc_census_call_set_context_type)(grpc_call *call, struct census_context *context);
|
276
279
|
extern grpc_census_call_set_context_type grpc_census_call_set_context_import;
|
277
280
|
#define grpc_census_call_set_context grpc_census_call_set_context_import
|
@@ -338,13 +341,13 @@ extern grpc_server_destroy_type grpc_server_destroy_import;
|
|
338
341
|
typedef int(*grpc_tracer_set_enabled_type)(const char *name, int enabled);
|
339
342
|
extern grpc_tracer_set_enabled_type grpc_tracer_set_enabled_import;
|
340
343
|
#define grpc_tracer_set_enabled grpc_tracer_set_enabled_import
|
341
|
-
typedef int(*grpc_header_key_is_legal_type)(
|
344
|
+
typedef int(*grpc_header_key_is_legal_type)(grpc_slice slice);
|
342
345
|
extern grpc_header_key_is_legal_type grpc_header_key_is_legal_import;
|
343
346
|
#define grpc_header_key_is_legal grpc_header_key_is_legal_import
|
344
|
-
typedef int(*grpc_header_nonbin_value_is_legal_type)(
|
347
|
+
typedef int(*grpc_header_nonbin_value_is_legal_type)(grpc_slice slice);
|
345
348
|
extern grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_import;
|
346
349
|
#define grpc_header_nonbin_value_is_legal grpc_header_nonbin_value_is_legal_import
|
347
|
-
typedef int(*grpc_is_binary_header_type)(
|
350
|
+
typedef int(*grpc_is_binary_header_type)(grpc_slice slice);
|
348
351
|
extern grpc_is_binary_header_type grpc_is_binary_header_import;
|
349
352
|
#define grpc_is_binary_header grpc_is_binary_header_import
|
350
353
|
typedef const char *(*grpc_call_error_to_string_type)(grpc_call_error error);
|
@@ -488,6 +491,9 @@ extern grpc_slice_new_with_len_type grpc_slice_new_with_len_import;
|
|
488
491
|
typedef grpc_slice(*grpc_slice_malloc_type)(size_t length);
|
489
492
|
extern grpc_slice_malloc_type grpc_slice_malloc_import;
|
490
493
|
#define grpc_slice_malloc grpc_slice_malloc_import
|
494
|
+
typedef grpc_slice(*grpc_slice_intern_type)(grpc_slice slice);
|
495
|
+
extern grpc_slice_intern_type grpc_slice_intern_import;
|
496
|
+
#define grpc_slice_intern grpc_slice_intern_import
|
491
497
|
typedef grpc_slice(*grpc_slice_from_copied_string_type)(const char *source);
|
492
498
|
extern grpc_slice_from_copied_string_type grpc_slice_from_copied_string_import;
|
493
499
|
#define grpc_slice_from_copied_string grpc_slice_from_copied_string_import
|
@@ -497,6 +503,9 @@ extern grpc_slice_from_copied_buffer_type grpc_slice_from_copied_buffer_import;
|
|
497
503
|
typedef grpc_slice(*grpc_slice_from_static_string_type)(const char *source);
|
498
504
|
extern grpc_slice_from_static_string_type grpc_slice_from_static_string_import;
|
499
505
|
#define grpc_slice_from_static_string grpc_slice_from_static_string_import
|
506
|
+
typedef grpc_slice(*grpc_slice_from_static_buffer_type)(const void *source, size_t len);
|
507
|
+
extern grpc_slice_from_static_buffer_type grpc_slice_from_static_buffer_import;
|
508
|
+
#define grpc_slice_from_static_buffer grpc_slice_from_static_buffer_import
|
500
509
|
typedef grpc_slice(*grpc_slice_sub_type)(grpc_slice s, size_t begin, size_t end);
|
501
510
|
extern grpc_slice_sub_type grpc_slice_sub_import;
|
502
511
|
#define grpc_slice_sub grpc_slice_sub_import
|
@@ -509,18 +518,51 @@ extern grpc_slice_split_tail_type grpc_slice_split_tail_import;
|
|
509
518
|
typedef grpc_slice(*grpc_slice_split_head_type)(grpc_slice *s, size_t split);
|
510
519
|
extern grpc_slice_split_head_type grpc_slice_split_head_import;
|
511
520
|
#define grpc_slice_split_head grpc_slice_split_head_import
|
512
|
-
typedef grpc_slice(*
|
513
|
-
extern
|
514
|
-
#define
|
521
|
+
typedef grpc_slice(*grpc_empty_slice_type)(void);
|
522
|
+
extern grpc_empty_slice_type grpc_empty_slice_import;
|
523
|
+
#define grpc_empty_slice grpc_empty_slice_import
|
524
|
+
typedef uint32_t(*grpc_slice_default_hash_impl_type)(grpc_slice s);
|
525
|
+
extern grpc_slice_default_hash_impl_type grpc_slice_default_hash_impl_import;
|
526
|
+
#define grpc_slice_default_hash_impl grpc_slice_default_hash_impl_import
|
527
|
+
typedef int(*grpc_slice_default_eq_impl_type)(grpc_slice a, grpc_slice b);
|
528
|
+
extern grpc_slice_default_eq_impl_type grpc_slice_default_eq_impl_import;
|
529
|
+
#define grpc_slice_default_eq_impl grpc_slice_default_eq_impl_import
|
530
|
+
typedef int(*grpc_slice_eq_type)(grpc_slice a, grpc_slice b);
|
531
|
+
extern grpc_slice_eq_type grpc_slice_eq_import;
|
532
|
+
#define grpc_slice_eq grpc_slice_eq_import
|
515
533
|
typedef int(*grpc_slice_cmp_type)(grpc_slice a, grpc_slice b);
|
516
534
|
extern grpc_slice_cmp_type grpc_slice_cmp_import;
|
517
535
|
#define grpc_slice_cmp grpc_slice_cmp_import
|
518
536
|
typedef int(*grpc_slice_str_cmp_type)(grpc_slice a, const char *b);
|
519
537
|
extern grpc_slice_str_cmp_type grpc_slice_str_cmp_import;
|
520
538
|
#define grpc_slice_str_cmp grpc_slice_str_cmp_import
|
539
|
+
typedef int(*grpc_slice_buf_cmp_type)(grpc_slice a, const void *b, size_t blen);
|
540
|
+
extern grpc_slice_buf_cmp_type grpc_slice_buf_cmp_import;
|
541
|
+
#define grpc_slice_buf_cmp grpc_slice_buf_cmp_import
|
542
|
+
typedef int(*grpc_slice_buf_start_eq_type)(grpc_slice a, const void *b, size_t blen);
|
543
|
+
extern grpc_slice_buf_start_eq_type grpc_slice_buf_start_eq_import;
|
544
|
+
#define grpc_slice_buf_start_eq grpc_slice_buf_start_eq_import
|
545
|
+
typedef int(*grpc_slice_rchr_type)(grpc_slice s, char c);
|
546
|
+
extern grpc_slice_rchr_type grpc_slice_rchr_import;
|
547
|
+
#define grpc_slice_rchr grpc_slice_rchr_import
|
548
|
+
typedef int(*grpc_slice_chr_type)(grpc_slice s, char c);
|
549
|
+
extern grpc_slice_chr_type grpc_slice_chr_import;
|
550
|
+
#define grpc_slice_chr grpc_slice_chr_import
|
551
|
+
typedef int(*grpc_slice_slice_type)(grpc_slice haystack, grpc_slice needle);
|
552
|
+
extern grpc_slice_slice_type grpc_slice_slice_import;
|
553
|
+
#define grpc_slice_slice grpc_slice_slice_import
|
554
|
+
typedef uint32_t(*grpc_slice_hash_type)(grpc_slice s);
|
555
|
+
extern grpc_slice_hash_type grpc_slice_hash_import;
|
556
|
+
#define grpc_slice_hash grpc_slice_hash_import
|
521
557
|
typedef int(*grpc_slice_is_equivalent_type)(grpc_slice a, grpc_slice b);
|
522
558
|
extern grpc_slice_is_equivalent_type grpc_slice_is_equivalent_import;
|
523
559
|
#define grpc_slice_is_equivalent grpc_slice_is_equivalent_import
|
560
|
+
typedef grpc_slice(*grpc_slice_dup_type)(grpc_slice a);
|
561
|
+
extern grpc_slice_dup_type grpc_slice_dup_import;
|
562
|
+
#define grpc_slice_dup grpc_slice_dup_import
|
563
|
+
typedef char *(*grpc_slice_to_c_string_type)(grpc_slice s);
|
564
|
+
extern grpc_slice_to_c_string_type grpc_slice_to_c_string_import;
|
565
|
+
#define grpc_slice_to_c_string grpc_slice_to_c_string_import
|
524
566
|
typedef void(*grpc_slice_buffer_init_type)(grpc_slice_buffer *sb);
|
525
567
|
extern grpc_slice_buffer_init_type grpc_slice_buffer_init_import;
|
526
568
|
#define grpc_slice_buffer_init grpc_slice_buffer_init_import
|
@@ -557,12 +599,21 @@ extern grpc_slice_buffer_trim_end_type grpc_slice_buffer_trim_end_import;
|
|
557
599
|
typedef void(*grpc_slice_buffer_move_first_type)(grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst);
|
558
600
|
extern grpc_slice_buffer_move_first_type grpc_slice_buffer_move_first_import;
|
559
601
|
#define grpc_slice_buffer_move_first grpc_slice_buffer_move_first_import
|
602
|
+
typedef void(*grpc_slice_buffer_move_first_into_buffer_type)(grpc_exec_ctx *exec_ctx, grpc_slice_buffer *src, size_t n, void *dst);
|
603
|
+
extern grpc_slice_buffer_move_first_into_buffer_type grpc_slice_buffer_move_first_into_buffer_import;
|
604
|
+
#define grpc_slice_buffer_move_first_into_buffer grpc_slice_buffer_move_first_into_buffer_import
|
560
605
|
typedef grpc_slice(*grpc_slice_buffer_take_first_type)(grpc_slice_buffer *src);
|
561
606
|
extern grpc_slice_buffer_take_first_type grpc_slice_buffer_take_first_import;
|
562
607
|
#define grpc_slice_buffer_take_first grpc_slice_buffer_take_first_import
|
608
|
+
typedef void(*grpc_slice_buffer_undo_take_first_type)(grpc_slice_buffer *src, grpc_slice slice);
|
609
|
+
extern grpc_slice_buffer_undo_take_first_type grpc_slice_buffer_undo_take_first_import;
|
610
|
+
#define grpc_slice_buffer_undo_take_first grpc_slice_buffer_undo_take_first_import
|
563
611
|
typedef void *(*gpr_malloc_type)(size_t size);
|
564
612
|
extern gpr_malloc_type gpr_malloc_import;
|
565
613
|
#define gpr_malloc gpr_malloc_import
|
614
|
+
typedef void *(*gpr_zalloc_type)(size_t size);
|
615
|
+
extern gpr_zalloc_type gpr_zalloc_import;
|
616
|
+
#define gpr_zalloc gpr_zalloc_import
|
566
617
|
typedef void(*gpr_free_type)(void *ptr);
|
567
618
|
extern gpr_free_type gpr_free_import;
|
568
619
|
#define gpr_free gpr_free_import
|
@@ -44,6 +44,7 @@
|
|
44
44
|
#include "rb_channel_args.h"
|
45
45
|
#include "rb_completion_queue.h"
|
46
46
|
#include "rb_server_credentials.h"
|
47
|
+
#include "rb_byte_buffer.h"
|
47
48
|
#include "rb_grpc.h"
|
48
49
|
|
49
50
|
/* grpc_rb_cServer is the ruby class that proxies grpc_server. */
|
@@ -166,8 +167,6 @@ static void grpc_request_call_stack_init(request_call_stack* st) {
|
|
166
167
|
MEMZERO(st, request_call_stack, 1);
|
167
168
|
grpc_metadata_array_init(&st->md_ary);
|
168
169
|
grpc_call_details_init(&st->details);
|
169
|
-
st->details.method = NULL;
|
170
|
-
st->details.host = NULL;
|
171
170
|
}
|
172
171
|
|
173
172
|
/* grpc_request_call_stack_cleanup ensures the request_call_stack is properly
|
@@ -191,6 +190,7 @@ static VALUE grpc_rb_server_request_call(VALUE self) {
|
|
191
190
|
void *tag = (void*)&st;
|
192
191
|
grpc_completion_queue *call_queue = grpc_completion_queue_create(NULL);
|
193
192
|
gpr_timespec deadline;
|
193
|
+
|
194
194
|
TypedData_Get_Struct(self, grpc_rb_server, &grpc_rb_server_data_type, s);
|
195
195
|
if (s->wrapped == NULL) {
|
196
196
|
rb_raise(rb_eRuntimeError, "destroyed!");
|
@@ -218,11 +218,13 @@ static VALUE grpc_rb_server_request_call(VALUE self) {
|
|
218
218
|
return Qnil;
|
219
219
|
}
|
220
220
|
|
221
|
+
|
222
|
+
|
221
223
|
/* build the NewServerRpc struct result */
|
222
224
|
deadline = gpr_convert_clock_type(st.details.deadline, GPR_CLOCK_REALTIME);
|
223
225
|
result = rb_struct_new(
|
224
|
-
grpc_rb_sNewServerRpc,
|
225
|
-
|
226
|
+
grpc_rb_sNewServerRpc, grpc_rb_slice_to_ruby_string(st.details.method),
|
227
|
+
grpc_rb_slice_to_ruby_string(st.details.host),
|
226
228
|
rb_funcall(rb_cTime, id_at, 2, INT2NUM(deadline.tv_sec),
|
227
229
|
INT2NUM(deadline.tv_nsec / 1000)),
|
228
230
|
grpc_rb_md_ary_to_h(&st.md_ary), grpc_rb_wrap_call(call, call_queue),
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -84,7 +84,7 @@ module GRPC
|
|
84
84
|
# channel:
|
85
85
|
#
|
86
86
|
# - :channel_override
|
87
|
-
# when present, this must be a pre-created GRPC::Channel. If it's
|
87
|
+
# when present, this must be a pre-created GRPC::Core::Channel. If it's
|
88
88
|
# present the host and arbitrary keyword arg areignored, and the RPC
|
89
89
|
# connection uses this channel.
|
90
90
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.pre1
|
5
5
|
platform: universal-darwin
|
6
6
|
authors:
|
7
7
|
- gRPC Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: src/ruby/bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|
@@ -301,9 +301,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
301
301
|
version: '2.5'
|
302
302
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
303
303
|
requirements:
|
304
|
-
- - "
|
304
|
+
- - ">"
|
305
305
|
- !ruby/object:Gem::Version
|
306
|
-
version:
|
306
|
+
version: 1.3.1
|
307
307
|
requirements: []
|
308
308
|
rubyforge_project:
|
309
309
|
rubygems_version: 2.6.10
|