grpc 1.1.2-x64-mingw32 → 1.2.0.pre1-x64-mingw32

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e760276f56f9f4bde72e8a8ead99d62b22434ab
4
- data.tar.gz: '082e83c336706a927de94bd35c7eb570aab059d5'
3
+ metadata.gz: a7c25ae0badec4360a190e2ff4e7ad813c9904a7
4
+ data.tar.gz: cc5fddc77e57c368d093f789e72af32be9793c9a
5
5
  SHA512:
6
- metadata.gz: 8780ee56a4f1954139267b4a0d140cdb3994afa9d61001d2a3434e11064aafb48a61a8193c39ff8dfa0d1992716ae3ee86ecbd8317010b4ce3dfbb712cd7ac2e
7
- data.tar.gz: c87e6794edbb6f75169ce1bc561034eeacd767e50af6f0a12f17b1c382eb91c5b02a345fabb45c0639a6b6939069b4df45931cd7e1b9b42f854a21aa51696c1c
6
+ metadata.gz: 9bf73b6d084a64d69ded3c3d37b0e87077ce03a2a5716c322c67f5e4ee9717493d990ffe1a55f757ba48be1672992d19cf5e3b261626af84ad3d80a9b90f63f1
7
+ data.tar.gz: 1cdf48c6db8a5c8ecf27debdcad34927304e3ffc0d16bba673c51a78d975a79973f261b7aed3bbed1aac2c004a4751169d69528d0e4f9680459c0ca74c14bac6
@@ -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-----
Binary file
Binary file
@@ -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
- system("make -j -C #{grpc_root} #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config}")
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_ */
@@ -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 += strlen(md->key);
125
- datasize += md->value_length;
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
- char *key_str;
390
- size_t key_len;
391
- char *value_str;
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
- key_str = (char *)rb_id2name(SYM2ID(key));
396
- key_len = strlen(key_str);
397
- } else { /* StringValueCStr does all other type exclusions for us */
398
- key_str = StringValueCStr(key);
399
- key_len = RSTRING_LEN(key);
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(key_str, key_len)) {
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
- key_str);
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
- value_str = RSTRING_PTR(rb_ary_entry(val, i));
418
- value_len = RSTRING_LEN(rb_ary_entry(val, i));
419
- if (!grpc_is_binary_header(key_str, key_len) &&
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", value_str);
423
+ "Header value '%s' has invalid characters", tmp_str);
424
424
  return ST_STOP;
425
425
  }
426
- md_ary->metadata[md_ary->count].key = key_str;
427
- md_ary->metadata[md_ary->count].value = value_str;
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
- value_str = RSTRING_PTR(val);
433
- value_len = RSTRING_LEN(val);
434
- if (!grpc_is_binary_header(key_str, key_len) &&
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", value_str);
437
+ "Header value '%s' has invalid characters", tmp_str);
439
438
  return ST_STOP;
440
439
  }
441
- md_ary->metadata[md_ary->count].key = key_str;
442
- md_ary->metadata[md_ary->count].value = value_str;
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 = rb_str_new2(md_ary->metadata[i].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 = rb_str_new(md_ary->metadata[i].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, rb_str_new(md_ary->metadata[i].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, rb_str_new(md_ary->metadata[i].value,
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 = StringValueCStr(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
- char *recv_status_details;
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->recv_status_details != NULL) {
635
- gpr_free(st->recv_status_details);
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
- : rb_str_new2(st->recv_status_details)),
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
- char *method_chars = StringValueCStr(method);
256
- char *host_chars = NULL;
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
- host_chars = StringValueCStr(host);
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
- call = grpc_channel_create_call(ch, parent_call, flags, cq, method_chars,
276
- host_chars, grpc_rb_time_timeval(
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
- method_chars);
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
- char *name_str = NULL;
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
- name_str = RSTRING_PTR(algorithm_name_as_string);
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 (!grpc_compression_algorithm_parse(name_str, name_len, algorithm_value)) {
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
- StringValueCStr(algorithm_name_as_string));
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
- gpr_empty_slice_type gpr_empty_slice_import;
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
- gpr_empty_slice_import = (gpr_empty_slice_type) GetProcAddress(library, "gpr_empty_slice");
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)(const char *name, size_t name_length, grpc_compression_algorithm *algorithm);
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, const char *method, const char *host, gpr_timespec deadline, void *reserved);
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)(const char *key, size_t length);
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)(const char *value, size_t length);
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)(const char *key, size_t length);
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(*gpr_empty_slice_type)(void);
513
- extern gpr_empty_slice_type gpr_empty_slice_import;
514
- #define gpr_empty_slice gpr_empty_slice_import
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, rb_str_new2(st.details.method),
225
- rb_str_new2(st.details.host),
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),
@@ -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
  #
Binary file
@@ -29,5 +29,5 @@
29
29
 
30
30
  # GRPC contains the General RPC module.
31
31
  module GRPC
32
- VERSION = '1.1.2'
32
+ VERSION = '1.2.0.pre1'
33
33
  end
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.1.2
4
+ version: 1.2.0.pre1
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: src/ruby/bin
10
10
  cert_chain: []
11
- date: 2017-02-10 00:00:00.000000000 Z
11
+ date: 2017-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -302,9 +302,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
302
302
  version: '2.5'
303
303
  required_rubygems_version: !ruby/object:Gem::Requirement
304
304
  requirements:
305
- - - ">="
305
+ - - ">"
306
306
  - !ruby/object:Gem::Version
307
- version: '0'
307
+ version: 1.3.1
308
308
  requirements: []
309
309
  rubyforge_project:
310
310
  rubygems_version: 2.6.10