grpc 0.13.1-universal-darwin → 0.14.1.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.

Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/src/ruby/ext/grpc/extconf.rb +14 -20
  3. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -3
  4. data/src/ruby/ext/grpc/rb_call.c +37 -4
  5. data/src/ruby/ext/grpc/rb_call_credentials.c +13 -3
  6. data/src/ruby/ext/grpc/rb_channel.c +2 -3
  7. data/src/ruby/ext/grpc/rb_channel_args.c +2 -3
  8. data/src/ruby/ext/grpc/rb_channel_credentials.c +31 -3
  9. data/src/ruby/ext/grpc/rb_completion_queue.c +2 -2
  10. data/src/ruby/ext/grpc/rb_event_thread.c +1 -1
  11. data/src/ruby/ext/grpc/rb_grpc.c +4 -2
  12. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -0
  13. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +14 -2
  14. data/src/ruby/ext/grpc/rb_server.c +2 -3
  15. data/src/ruby/ext/grpc/rb_server_credentials.c +16 -13
  16. data/src/ruby/ext/grpc/rb_signal.c +70 -0
  17. data/src/ruby/ext/grpc/rb_signal.h +39 -0
  18. data/src/ruby/lib/grpc.rb +21 -13
  19. data/src/ruby/lib/grpc/2.0/grpc_c.bundle +0 -0
  20. data/src/ruby/lib/grpc/2.1/grpc_c.bundle +0 -0
  21. data/src/ruby/lib/grpc/2.2/grpc_c.bundle +0 -0
  22. data/src/ruby/lib/grpc/2.3/grpc_c.bundle +0 -0
  23. data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
  24. data/src/ruby/lib/grpc/errors.rb +2 -2
  25. data/src/ruby/lib/grpc/generic/active_call.rb +10 -3
  26. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
  27. data/src/ruby/lib/grpc/generic/client_stub.rb +10 -7
  28. data/src/ruby/lib/grpc/generic/rpc_desc.rb +2 -2
  29. data/src/ruby/lib/grpc/generic/rpc_server.rb +21 -61
  30. data/src/ruby/lib/grpc/generic/service.rb +5 -15
  31. data/src/ruby/lib/grpc/grpc.rb +3 -3
  32. data/src/ruby/{bin/interop/interop_client.rb → lib/grpc/signals.rb} +39 -21
  33. data/src/ruby/lib/grpc/version.rb +2 -2
  34. data/src/ruby/pb/generate_proto_ruby.sh +9 -2
  35. data/src/ruby/pb/grpc/health/checker.rb +1 -1
  36. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb +28 -0
  37. data/src/ruby/pb/grpc/testing/metrics.rb +28 -0
  38. data/src/ruby/pb/grpc/testing/metrics_services.rb +27 -0
  39. data/src/ruby/pb/test/client.rb +12 -23
  40. data/src/ruby/pb/test/server.rb +1 -1
  41. data/src/ruby/spec/client_server_spec.rb +1 -1
  42. data/src/ruby/spec/generic/client_stub_spec.rb +18 -17
  43. data/src/ruby/spec/generic/rpc_server_spec.rb +23 -7
  44. data/src/ruby/spec/generic/service_spec.rb +0 -69
  45. data/src/ruby/{bin/interop/interop_server.rb → spec/pb/duplicate/codegen_spec.rb} +41 -20
  46. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  47. metadata +27 -15
  48. data/src/ruby/bin/grpc_ruby_interop_client +0 -33
  49. data/src/ruby/bin/grpc_ruby_interop_server +0 -33
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 35b01bfaa5d6fea073e85fcb75e47da6af9ef5da
4
- data.tar.gz: 74284dcf69f9fc5b96801d2a572b85ad89379f05
3
+ metadata.gz: f65cab5382f2dbff612a247f00a3c30dbe1b3caa
4
+ data.tar.gz: 03de253c889976e74f556e71338ee1ca24bb4287
5
5
  SHA512:
6
- metadata.gz: 9ecf081dabd714f145d311d3653b63f5b6f385000537a429590e226cca769103528aedcfac5f0cf9f4367e888726ba06b358d5bade0b1071b86ec3e948610691
7
- data.tar.gz: cfb96eef436e3c3d098cf8a9e17dd17ee6cfe704823b6bdc2da48ee289ba477cadd6bc5cab9fe6c7fdd5d911fc06ac248a72ff82502311532efe886a83240acc
6
+ metadata.gz: b47ad9c2860fab7e9ca7225be8c066d05a9cf3fb56b11f16f99553ddd54a61b0fc65036fb34ecf431e894e8812962b615527aad5ddccf6b9f7778192cc4daf81
7
+ data.tar.gz: 6e46fb81b863e3f5bbd6cc460f98b0394cb3e03ab92bc58d6e43ea951e5991f8586abb1fcaac9b6382c43d7ce0fa021963a27eaa94ff3bd92eedf20fa1491ed6
@@ -1,4 +1,4 @@
1
- # Copyright 2015-2016, Google Inc.
1
+ # Copyright 2015, Google Inc.
2
2
  # All rights reserved.
3
3
  #
4
4
  # Redistribution and use in source and binary forms, with or without
@@ -60,31 +60,25 @@ grpc_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..'))
60
60
 
61
61
  grpc_config = ENV['GRPC_CONFIG'] || 'opt'
62
62
 
63
- if ENV.key?('GRPC_LIB_DIR')
64
- grpc_lib_dir = File.join(grpc_root, ENV['GRPC_LIB_DIR'])
65
- else
66
- grpc_lib_dir = File.join(grpc_root, 'libs', grpc_config)
67
- end
68
-
69
63
  ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
70
64
 
71
- unless File.exist?(File.join(grpc_lib_dir, 'libgrpc.a')) or windows
72
- ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs'
73
- ENV['CC'] = RbConfig::CONFIG['CC']
74
- ENV['LD'] = ENV['CC']
65
+ ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs'
66
+ ENV['CC'] = RbConfig::CONFIG['CC']
67
+ ENV['LD'] = ENV['CC']
75
68
 
76
- ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/
69
+ ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/
77
70
 
78
- ENV['EMBED_OPENSSL'] = 'true'
79
- ENV['EMBED_ZLIB'] = 'true'
80
- ENV['ARCH_FLAGS'] = RbConfig::CONFIG['ARCH_FLAG']
81
- ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64' if RUBY_PLATFORM =~ /darwin/
82
- ENV['CFLAGS'] = '-DGPR_BACKWARDS_COMPATIBILITY_MODE'
71
+ ENV['EMBED_OPENSSL'] = 'true'
72
+ ENV['EMBED_ZLIB'] = 'true'
73
+ ENV['ARCH_FLAGS'] = RbConfig::CONFIG['ARCH_FLAG']
74
+ ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64' if RUBY_PLATFORM =~ /darwin/
75
+ ENV['CFLAGS'] = '-DGPR_BACKWARDS_COMPATIBILITY_MODE'
83
76
 
84
- output_dir = File.expand_path(RbConfig::CONFIG['topdir'])
85
- grpc_lib_dir = File.join(output_dir, 'libs', grpc_config)
86
- ENV['BUILDDIR'] = output_dir
77
+ output_dir = File.expand_path(RbConfig::CONFIG['topdir'])
78
+ grpc_lib_dir = File.join(output_dir, 'libs', grpc_config)
79
+ ENV['BUILDDIR'] = output_dir
87
80
 
81
+ unless windows
88
82
  puts 'Building internal gRPC into ' + grpc_lib_dir
89
83
  system("make -j -C #{grpc_root} #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config}")
90
84
  exit 1 unless $? == 0
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,11 +32,10 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_byte_buffer.h"
37
38
 
38
- #include <ruby/ruby.h>
39
-
40
39
  #include <grpc/grpc.h>
41
40
  #include <grpc/byte_buffer_reader.h>
42
41
  #include <grpc/support/slice.h>
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,11 +32,10 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_call.h"
37
38
 
38
- #include <ruby/ruby.h>
39
-
40
39
  #include <grpc/grpc.h>
41
40
  #include <grpc/support/alloc.h>
42
41
 
@@ -214,6 +213,35 @@ static VALUE grpc_rb_call_get_peer(VALUE self) {
214
213
  return res;
215
214
  }
216
215
 
216
+ /* Called to obtain the x509 cert of an authenticated peer. */
217
+ static VALUE grpc_rb_call_get_peer_cert(VALUE self) {
218
+ grpc_call *call = NULL;
219
+ VALUE res = Qnil;
220
+ grpc_auth_context *ctx = NULL;
221
+ TypedData_Get_Struct(self, grpc_call, &grpc_call_data_type, call);
222
+
223
+ ctx = grpc_call_auth_context(call);
224
+
225
+ if (!ctx || !grpc_auth_context_peer_is_authenticated(ctx)) {
226
+ return Qnil;
227
+ }
228
+
229
+ {
230
+ grpc_auth_property_iterator it =
231
+ grpc_auth_context_find_properties_by_name(ctx, GRPC_X509_PEM_CERT_PROPERTY_NAME);
232
+ const grpc_auth_property *prop = grpc_auth_property_iterator_next(&it);
233
+ if (prop == NULL) {
234
+ return Qnil;
235
+ }
236
+
237
+ res = rb_str_new2(prop->value);
238
+ }
239
+
240
+ grpc_auth_context_release(ctx);
241
+
242
+ return res;
243
+ }
244
+
217
245
  /*
218
246
  call-seq:
219
247
  status = call.status
@@ -359,7 +387,7 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
359
387
  md_ary->metadata[md_ary->count].value_length = value_len;
360
388
  md_ary->count += 1;
361
389
  }
362
- } else {
390
+ } else if (TYPE(val) == T_STRING) {
363
391
  value_str = RSTRING_PTR(val);
364
392
  value_len = RSTRING_LEN(val);
365
393
  if (!grpc_is_binary_header(key_str, key_len) &&
@@ -373,6 +401,10 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
373
401
  md_ary->metadata[md_ary->count].value = value_str;
374
402
  md_ary->metadata[md_ary->count].value_length = value_len;
375
403
  md_ary->count += 1;
404
+ } else {
405
+ rb_raise(rb_eArgError,
406
+ "Header values must be of type string or array");
407
+ return ST_STOP;
376
408
  }
377
409
 
378
410
  return ST_CONTINUE;
@@ -857,6 +889,7 @@ void Init_grpc_call() {
857
889
  rb_define_method(grpc_rb_cCall, "run_batch", grpc_rb_call_run_batch, 4);
858
890
  rb_define_method(grpc_rb_cCall, "cancel", grpc_rb_call_cancel, 0);
859
891
  rb_define_method(grpc_rb_cCall, "peer", grpc_rb_call_get_peer, 0);
892
+ rb_define_method(grpc_rb_cCall, "peer_cert", grpc_rb_call_get_peer_cert, 0);
860
893
  rb_define_method(grpc_rb_cCall, "status", grpc_rb_call_get_status, 0);
861
894
  rb_define_method(grpc_rb_cCall, "status=", grpc_rb_call_set_status, 1);
862
895
  rb_define_method(grpc_rb_cCall, "metadata", grpc_rb_call_get_metadata, 0);
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,15 +32,16 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_call_credentials.h"
37
38
 
38
- #include <ruby/ruby.h>
39
39
  #include <ruby/thread.h>
40
40
 
41
41
  #include <grpc/grpc.h>
42
42
  #include <grpc/grpc_security.h>
43
43
  #include <grpc/support/alloc.h>
44
+ #include <grpc/support/log.h>
44
45
 
45
46
  #include "rb_call.h"
46
47
  #include "rb_event_thread.h"
@@ -81,14 +82,23 @@ static VALUE grpc_rb_call_credentials_callback(VALUE callback_args) {
81
82
  static VALUE grpc_rb_call_credentials_callback_rescue(VALUE args,
82
83
  VALUE exception_object) {
83
84
  VALUE result = rb_hash_new();
85
+ VALUE backtrace = rb_funcall(
86
+ rb_funcall(exception_object, rb_intern("backtrace"), 0),
87
+ rb_intern("join"),
88
+ 1, rb_str_new2("\n\tfrom "));
89
+ VALUE rb_exception_info = rb_funcall(exception_object, rb_intern("to_s"), 0);
90
+ const char *exception_classname = rb_obj_classname(exception_object);
84
91
  (void)args;
92
+ gpr_log(GPR_INFO, "Call credentials callback failed: %s: %s\n%s",
93
+ exception_classname, StringValueCStr(rb_exception_info),
94
+ StringValueCStr(backtrace));
85
95
  rb_hash_aset(result, rb_str_new2("metadata"), Qnil);
86
96
  /* Currently only gives the exception class name. It should be possible get
87
97
  more details */
88
98
  rb_hash_aset(result, rb_str_new2("status"),
89
99
  INT2NUM(GRPC_STATUS_PERMISSION_DENIED));
90
100
  rb_hash_aset(result, rb_str_new2("details"),
91
- rb_str_new2(rb_obj_classname(exception_object)));
101
+ rb_str_new2(exception_classname));
92
102
  return result;
93
103
  }
94
104
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,11 +32,10 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_channel.h"
37
38
 
38
- #include <ruby/ruby.h>
39
-
40
39
  #include <grpc/grpc.h>
41
40
  #include <grpc/grpc_security.h>
42
41
  #include <grpc/support/alloc.h>
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,11 +32,10 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_channel_args.h"
37
38
 
38
- #include <ruby/ruby.h>
39
-
40
39
  #include <grpc/grpc.h>
41
40
 
42
41
  #include "rb_grpc.h"
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,13 +32,15 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
36
+ #include <string.h>
37
+
35
38
  #include "rb_grpc_imports.generated.h"
36
39
  #include "rb_channel_credentials.h"
37
40
 
38
- #include <ruby/ruby.h>
39
-
40
41
  #include <grpc/grpc.h>
41
42
  #include <grpc/grpc_security.h>
43
+ #include <grpc/support/alloc.h>
42
44
  #include <grpc/support/log.h>
43
45
 
44
46
  #include "rb_call_credentials.h"
@@ -48,6 +50,8 @@
48
50
  grpc_channel_credentials. */
49
51
  static VALUE grpc_rb_cChannelCredentials = Qnil;
50
52
 
53
+ static char *pem_root_certs = NULL;
54
+
51
55
  /* grpc_rb_channel_credentials wraps a grpc_channel_credentials. It provides a
52
56
  * mark object that is used to hold references to any objects used to create
53
57
  * the credentials. */
@@ -236,6 +240,25 @@ static VALUE grpc_rb_channel_credentials_compose(int argc, VALUE *argv,
236
240
  return grpc_rb_wrap_channel_credentials(creds, mark);
237
241
  }
238
242
 
243
+ static grpc_ssl_roots_override_result get_ssl_roots_override(
244
+ char **pem_root_certs_ptr) {
245
+ *pem_root_certs_ptr = pem_root_certs;
246
+ if (pem_root_certs == NULL) {
247
+ return GRPC_SSL_ROOTS_OVERRIDE_FAIL;
248
+ } else {
249
+ return GRPC_SSL_ROOTS_OVERRIDE_OK;
250
+ }
251
+ }
252
+
253
+ static VALUE grpc_rb_set_default_roots_pem(VALUE self, VALUE roots) {
254
+ char *roots_ptr = StringValueCStr(roots);
255
+ size_t length = strlen(roots_ptr);
256
+ (void)self;
257
+ pem_root_certs = gpr_malloc((length + 1) * sizeof(char));
258
+ memcpy(pem_root_certs, roots_ptr, length + 1);
259
+ return Qnil;
260
+ }
261
+
239
262
  void Init_grpc_channel_credentials() {
240
263
  grpc_rb_cChannelCredentials =
241
264
  rb_define_class_under(grpc_rb_mGrpcCore, "ChannelCredentials", rb_cObject);
@@ -251,6 +274,11 @@ void Init_grpc_channel_credentials() {
251
274
  grpc_rb_channel_credentials_init_copy, 1);
252
275
  rb_define_method(grpc_rb_cChannelCredentials, "compose",
253
276
  grpc_rb_channel_credentials_compose, -1);
277
+ rb_define_module_function(grpc_rb_cChannelCredentials,
278
+ "set_default_roots_pem",
279
+ grpc_rb_set_default_roots_pem, 1);
280
+
281
+ grpc_set_ssl_roots_override_callback(get_ssl_roots_override);
254
282
 
255
283
  id_pem_cert_chain = rb_intern("__pem_cert_chain");
256
284
  id_pem_private_key = rb_intern("__pem_private_key");
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,10 +32,10 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_completion_queue.h"
37
38
 
38
- #include <ruby/ruby.h>
39
39
  #include <ruby/thread.h>
40
40
 
41
41
  #include <grpc/grpc.h>
@@ -32,12 +32,12 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_event_thread.h"
37
38
 
38
39
  #include <stdbool.h>
39
40
 
40
- #include <ruby/ruby.h>
41
41
  #include <ruby/thread.h>
42
42
  #include <grpc/support/alloc.h>
43
43
  #include <grpc/support/sync.h>
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015-2016, Google Inc.
3
+ * Copyright 2015, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -32,11 +32,11 @@
32
32
  */
33
33
 
34
34
  #include <ruby/ruby.h>
35
+
35
36
  #include "rb_grpc_imports.generated.h"
36
37
  #include "rb_grpc.h"
37
38
 
38
39
  #include <math.h>
39
- #include <ruby/ruby.h>
40
40
  #include <ruby/vm.h>
41
41
  #include <sys/time.h>
42
42
 
@@ -50,6 +50,7 @@
50
50
  #include "rb_loader.h"
51
51
  #include "rb_server.h"
52
52
  #include "rb_server_credentials.h"
53
+ #include "rb_signal.h"
53
54
 
54
55
  static VALUE grpc_rb_cTimeVal = Qnil;
55
56
 
@@ -332,6 +333,7 @@ void Init_grpc_c() {
332
333
  Init_grpc_channel_credentials();
333
334
  Init_grpc_server();
334
335
  Init_grpc_server_credentials();
336
+ Init_grpc_signals();
335
337
  Init_grpc_status_codes();
336
338
  Init_grpc_time_consts();
337
339
  }
@@ -124,6 +124,7 @@ grpc_tracer_set_enabled_type grpc_tracer_set_enabled_import;
124
124
  grpc_header_key_is_legal_type grpc_header_key_is_legal_import;
125
125
  grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_import;
126
126
  grpc_is_binary_header_type grpc_is_binary_header_import;
127
+ grpc_call_error_to_string_type grpc_call_error_to_string_import;
127
128
  grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
128
129
  grpc_auth_context_property_iterator_type grpc_auth_context_property_iterator_import;
129
130
  grpc_auth_context_peer_identity_type grpc_auth_context_peer_identity_import;
@@ -152,6 +153,7 @@ grpc_metadata_credentials_create_from_plugin_type grpc_metadata_credentials_crea
152
153
  grpc_secure_channel_create_type grpc_secure_channel_create_import;
153
154
  grpc_server_credentials_release_type grpc_server_credentials_release_import;
154
155
  grpc_ssl_server_credentials_create_type grpc_ssl_server_credentials_create_import;
156
+ grpc_ssl_server_credentials_create_ex_type grpc_ssl_server_credentials_create_ex_import;
155
157
  grpc_server_add_secure_http2_port_type grpc_server_add_secure_http2_port_import;
156
158
  grpc_call_set_credentials_type grpc_call_set_credentials_import;
157
159
  grpc_server_credentials_set_auth_metadata_processor_type grpc_server_credentials_set_auth_metadata_processor_import;
@@ -174,6 +176,8 @@ grpc_byte_buffer_reader_readall_type grpc_byte_buffer_reader_readall_import;
174
176
  grpc_raw_byte_buffer_from_reader_type grpc_raw_byte_buffer_from_reader_import;
175
177
  gpr_log_type gpr_log_import;
176
178
  gpr_log_message_type gpr_log_message_import;
179
+ gpr_set_log_verbosity_type gpr_set_log_verbosity_import;
180
+ gpr_log_verbosity_init_type gpr_log_verbosity_init_import;
177
181
  gpr_set_log_function_type gpr_set_log_function_import;
178
182
  gpr_slice_ref_type gpr_slice_ref_import;
179
183
  gpr_slice_unref_type gpr_slice_unref_import;
@@ -386,6 +390,7 @@ void grpc_rb_load_imports(HMODULE library) {
386
390
  grpc_header_key_is_legal_import = (grpc_header_key_is_legal_type) GetProcAddress(library, "grpc_header_key_is_legal");
387
391
  grpc_header_nonbin_value_is_legal_import = (grpc_header_nonbin_value_is_legal_type) GetProcAddress(library, "grpc_header_nonbin_value_is_legal");
388
392
  grpc_is_binary_header_import = (grpc_is_binary_header_type) GetProcAddress(library, "grpc_is_binary_header");
393
+ grpc_call_error_to_string_import = (grpc_call_error_to_string_type) GetProcAddress(library, "grpc_call_error_to_string");
389
394
  grpc_auth_property_iterator_next_import = (grpc_auth_property_iterator_next_type) GetProcAddress(library, "grpc_auth_property_iterator_next");
390
395
  grpc_auth_context_property_iterator_import = (grpc_auth_context_property_iterator_type) GetProcAddress(library, "grpc_auth_context_property_iterator");
391
396
  grpc_auth_context_peer_identity_import = (grpc_auth_context_peer_identity_type) GetProcAddress(library, "grpc_auth_context_peer_identity");
@@ -414,6 +419,7 @@ void grpc_rb_load_imports(HMODULE library) {
414
419
  grpc_secure_channel_create_import = (grpc_secure_channel_create_type) GetProcAddress(library, "grpc_secure_channel_create");
415
420
  grpc_server_credentials_release_import = (grpc_server_credentials_release_type) GetProcAddress(library, "grpc_server_credentials_release");
416
421
  grpc_ssl_server_credentials_create_import = (grpc_ssl_server_credentials_create_type) GetProcAddress(library, "grpc_ssl_server_credentials_create");
422
+ grpc_ssl_server_credentials_create_ex_import = (grpc_ssl_server_credentials_create_ex_type) GetProcAddress(library, "grpc_ssl_server_credentials_create_ex");
417
423
  grpc_server_add_secure_http2_port_import = (grpc_server_add_secure_http2_port_type) GetProcAddress(library, "grpc_server_add_secure_http2_port");
418
424
  grpc_call_set_credentials_import = (grpc_call_set_credentials_type) GetProcAddress(library, "grpc_call_set_credentials");
419
425
  grpc_server_credentials_set_auth_metadata_processor_import = (grpc_server_credentials_set_auth_metadata_processor_type) GetProcAddress(library, "grpc_server_credentials_set_auth_metadata_processor");
@@ -436,6 +442,8 @@ void grpc_rb_load_imports(HMODULE library) {
436
442
  grpc_raw_byte_buffer_from_reader_import = (grpc_raw_byte_buffer_from_reader_type) GetProcAddress(library, "grpc_raw_byte_buffer_from_reader");
437
443
  gpr_log_import = (gpr_log_type) GetProcAddress(library, "gpr_log");
438
444
  gpr_log_message_import = (gpr_log_message_type) GetProcAddress(library, "gpr_log_message");
445
+ gpr_set_log_verbosity_import = (gpr_set_log_verbosity_type) GetProcAddress(library, "gpr_set_log_verbosity");
446
+ gpr_log_verbosity_init_import = (gpr_log_verbosity_init_type) GetProcAddress(library, "gpr_log_verbosity_init");
439
447
  gpr_set_log_function_import = (gpr_set_log_function_type) GetProcAddress(library, "gpr_set_log_function");
440
448
  gpr_slice_ref_import = (gpr_slice_ref_type) GetProcAddress(library, "gpr_slice_ref");
441
449
  gpr_slice_unref_import = (gpr_slice_unref_type) GetProcAddress(library, "gpr_slice_unref");