grpc 1.7.3 → 1.8.0

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 (616) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2106 -2116
  3. data/include/grpc/census.h +1 -432
  4. data/include/grpc/compression.h +9 -9
  5. data/include/grpc/grpc.h +115 -98
  6. data/include/grpc/grpc_cronet.h +3 -3
  7. data/include/grpc/grpc_posix.h +4 -4
  8. data/include/grpc/grpc_security.h +160 -88
  9. data/include/grpc/grpc_security_constants.h +7 -0
  10. data/include/grpc/impl/codegen/atm.h +9 -1
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
  13. data/include/grpc/impl/codegen/atm_windows.h +23 -22
  14. data/include/grpc/impl/codegen/byte_buffer.h +14 -14
  15. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
  16. data/include/grpc/impl/codegen/connectivity_state.h +0 -2
  17. data/include/grpc/impl/codegen/grpc_types.h +32 -28
  18. data/include/grpc/impl/codegen/port_platform.h +48 -0
  19. data/include/grpc/impl/codegen/slice.h +10 -10
  20. data/include/grpc/impl/codegen/sync_generic.h +9 -3
  21. data/include/grpc/slice.h +16 -17
  22. data/include/grpc/slice_buffer.h +22 -22
  23. data/include/grpc/support/alloc.h +11 -11
  24. data/include/grpc/support/avl.h +28 -20
  25. data/include/grpc/support/cmdline.h +13 -13
  26. data/include/grpc/support/histogram.h +17 -17
  27. data/include/grpc/support/host_port.h +2 -2
  28. data/include/grpc/support/log.h +9 -9
  29. data/include/grpc/support/log_windows.h +1 -1
  30. data/include/grpc/support/string_util.h +2 -2
  31. data/include/grpc/support/subprocess.h +5 -5
  32. data/include/grpc/support/sync.h +43 -27
  33. data/include/grpc/support/thd.h +6 -6
  34. data/include/grpc/support/tls_gcc.h +1 -1
  35. data/include/grpc/support/tls_pthread.h +1 -1
  36. data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
  37. data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
  38. data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
  39. data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
  40. data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
  41. data/src/core/ext/filters/client_channel/client_channel.h +16 -8
  42. data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
  43. data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
  44. data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
  45. data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
  46. data/src/core/ext/filters/client_channel/connector.h +29 -21
  47. data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
  48. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
  49. data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
  50. data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
  51. data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
  52. data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
  53. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
  54. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
  55. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
  56. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
  57. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
  58. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
  59. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
  60. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
  61. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
  62. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
  63. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
  64. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
  65. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
  66. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
  67. data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
  68. data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
  69. data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
  70. data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
  71. data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
  72. data/src/core/ext/filters/client_channel/parse_address.h +14 -6
  73. data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
  74. data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
  75. data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
  76. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
  77. data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
  78. data/src/core/ext/filters/client_channel/resolver.h +33 -27
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
  84. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
  85. data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
  86. data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
  87. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
  88. data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
  89. data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
  90. data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
  91. data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
  92. data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
  93. data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
  94. data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
  95. data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
  96. data/src/core/ext/filters/client_channel/subchannel.h +68 -60
  97. data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
  98. data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
  99. data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
  100. data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
  101. data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
  102. data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
  103. data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
  104. data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
  105. data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
  106. data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
  107. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
  108. data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
  109. data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
  110. data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
  111. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
  112. data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
  113. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
  114. data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
  115. data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
  116. data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
  117. data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
  118. data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
  119. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
  120. data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
  121. data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
  122. data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
  123. data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
  124. data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
  125. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
  126. data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
  127. data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
  128. data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
  129. data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
  130. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
  131. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
  132. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
  133. data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
  134. data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
  136. data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
  138. data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
  139. data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
  140. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
  141. data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
  142. data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
  143. data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
  144. data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
  145. data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
  146. data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
  147. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
  148. data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
  149. data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
  150. data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
  151. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
  152. data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
  153. data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
  154. data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
  155. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
  156. data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
  157. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
  158. data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
  159. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
  160. data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
  161. data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
  162. data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
  163. data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
  164. data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
  165. data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
  166. data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
  167. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
  168. data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
  169. data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
  170. data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
  171. data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
  172. data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
  173. data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
  174. data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
  175. data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
  176. data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
  177. data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
  178. data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
  179. data/src/core/lib/backoff/backoff.cc +80 -0
  180. data/src/core/lib/backoff/backoff.h +83 -0
  181. data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
  182. data/src/core/lib/channel/channel_args.h +45 -37
  183. data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
  184. data/src/core/lib/channel/channel_stack.h +76 -75
  185. data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
  186. data/src/core/lib/channel/channel_stack_builder.h +45 -45
  187. data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
  188. data/src/core/lib/channel/connected_channel.h +12 -4
  189. data/src/core/lib/channel/context.h +2 -2
  190. data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
  191. data/src/core/lib/channel/handshaker.h +9 -1
  192. data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
  193. data/src/core/lib/channel/handshaker_factory.h +18 -10
  194. data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
  195. data/src/core/lib/channel/handshaker_registry.h +8 -0
  196. data/src/core/lib/compression/algorithm_metadata.h +8 -0
  197. data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
  198. data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
  199. data/src/core/lib/compression/message_compress.h +8 -0
  200. data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
  201. data/src/core/lib/compression/stream_compression.h +27 -19
  202. data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
  203. data/src/core/lib/compression/stream_compression_gzip.h +8 -0
  204. data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
  205. data/src/core/lib/compression/stream_compression_identity.h +8 -0
  206. data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
  207. data/src/core/lib/debug/stats.h +17 -9
  208. data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
  209. data/src/core/lib/debug/stats_data.h +58 -19
  210. data/src/core/lib/debug/trace.cc +142 -0
  211. data/src/core/lib/debug/trace.h +74 -14
  212. data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
  213. data/src/core/lib/http/format_request.h +12 -4
  214. data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
  215. data/src/core/lib/http/httpcli.h +41 -33
  216. data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
  217. data/src/core/lib/http/{parser.c → parser.cc} +42 -42
  218. data/src/core/lib/http/parser.h +28 -20
  219. data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
  220. data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
  221. data/src/core/lib/iomgr/call_combiner.h +9 -1
  222. data/src/core/lib/iomgr/closure.h +220 -62
  223. data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
  224. data/src/core/lib/iomgr/combiner.h +16 -8
  225. data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
  226. data/src/core/lib/iomgr/endpoint.h +47 -32
  227. data/src/core/lib/iomgr/endpoint_pair.h +12 -4
  228. data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
  229. data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
  230. data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
  231. data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
  232. data/src/core/lib/iomgr/error.h +32 -27
  233. data/src/core/lib/iomgr/error_internal.h +11 -2
  234. data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
  235. data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
  236. data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
  237. data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
  238. data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
  239. data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
  240. data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
  241. data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
  242. data/src/core/lib/iomgr/ev_posix.cc +288 -0
  243. data/src/core/lib/iomgr/ev_posix.h +75 -67
  244. data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
  245. data/src/core/lib/iomgr/exec_ctx.cc +177 -0
  246. data/src/core/lib/iomgr/exec_ctx.h +35 -13
  247. data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
  248. data/src/core/lib/iomgr/executor.h +12 -4
  249. data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
  250. data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
  251. data/src/core/lib/iomgr/gethostname.h +9 -1
  252. data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
  253. data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
  254. data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
  255. data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
  256. data/src/core/lib/iomgr/iocp_windows.h +17 -3
  257. data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
  258. data/src/core/lib/iomgr/iomgr.h +11 -3
  259. data/src/core/lib/iomgr/iomgr_internal.h +13 -5
  260. data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
  261. data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
  262. data/src/core/lib/iomgr/iomgr_uv.h +8 -0
  263. data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
  264. data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
  265. data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
  266. data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
  267. data/src/core/lib/iomgr/load_file.h +2 -2
  268. data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
  269. data/src/core/lib/iomgr/lockfree_event.h +30 -11
  270. data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
  271. data/src/core/lib/iomgr/network_status_tracker.h +2 -2
  272. data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
  273. data/src/core/lib/iomgr/polling_entity.h +21 -13
  274. data/src/core/lib/iomgr/pollset.h +17 -11
  275. data/src/core/lib/iomgr/pollset_set.h +23 -15
  276. data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
  277. data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
  278. data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
  279. data/src/core/lib/iomgr/pollset_uv.h +8 -0
  280. data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
  281. data/src/core/lib/iomgr/pollset_windows.h +17 -4
  282. data/src/core/lib/iomgr/port.h +10 -0
  283. data/src/core/lib/iomgr/resolve_address.h +18 -10
  284. data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
  285. data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
  286. data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
  287. data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
  288. data/src/core/lib/iomgr/resource_quota.h +45 -37
  289. data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
  290. data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
  291. data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
  292. data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
  293. data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
  294. data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
  295. data/src/core/lib/iomgr/socket_mutator.h +11 -11
  296. data/src/core/lib/iomgr/socket_utils.h +9 -1
  297. data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
  298. data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
  299. data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
  300. data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
  301. data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
  302. data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
  303. data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
  304. data/src/core/lib/iomgr/socket_windows.h +26 -13
  305. data/src/core/lib/iomgr/tcp_client.h +14 -6
  306. data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
  307. data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
  308. data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
  309. data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
  310. data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
  311. data/src/core/lib/iomgr/tcp_posix.h +15 -7
  312. data/src/core/lib/iomgr/tcp_server.h +31 -23
  313. data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
  314. data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
  315. data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
  316. data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
  317. data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
  318. data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
  319. data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
  320. data/src/core/lib/iomgr/tcp_uv.cc +420 -0
  321. data/src/core/lib/iomgr/tcp_uv.h +18 -4
  322. data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
  323. data/src/core/lib/iomgr/tcp_windows.h +17 -4
  324. data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
  325. data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
  326. data/src/core/lib/iomgr/timer.h +16 -9
  327. data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
  328. data/src/core/lib/iomgr/timer_generic.h +4 -4
  329. data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
  330. data/src/core/lib/iomgr/timer_heap.h +16 -8
  331. data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
  332. data/src/core/lib/iomgr/timer_manager.h +8 -0
  333. data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
  334. data/src/core/lib/iomgr/timer_uv.h +2 -2
  335. data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
  336. data/src/core/lib/iomgr/udp_server.h +25 -17
  337. data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
  338. data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
  339. data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
  340. data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
  341. data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
  342. data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
  343. data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
  344. data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
  345. data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
  346. data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
  347. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
  348. data/src/core/lib/json/{json.c → json.cc} +0 -0
  349. data/src/core/lib/json/json.h +8 -0
  350. data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
  351. data/src/core/lib/json/json_reader.h +26 -18
  352. data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
  353. data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
  354. data/src/core/lib/json/json_writer.h +23 -15
  355. data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
  356. data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
  357. data/src/core/lib/profiling/timers.h +6 -6
  358. data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
  359. data/src/core/lib/security/context/security_context.h +27 -29
  360. data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
  361. data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
  362. data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
  363. data/src/core/lib/security/credentials/credentials.h +83 -75
  364. data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
  365. data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
  366. data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
  367. data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
  368. data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
  369. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
  370. data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
  371. data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
  372. data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
  373. data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
  374. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
  375. data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
  376. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
  377. data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
  378. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
  379. data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
  380. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
  381. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
  382. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
  383. data/src/core/lib/security/transport/auth_filters.h +16 -0
  384. data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
  385. data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
  386. data/src/core/lib/security/transport/lb_targets_info.h +11 -3
  387. data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
  388. data/src/core/lib/security/transport/secure_endpoint.h +13 -5
  389. data/src/core/lib/security/transport/security_connector.cc +1121 -0
  390. data/src/core/lib/security/transport/security_connector.h +97 -79
  391. data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
  392. data/src/core/lib/security/transport/security_handshaker.h +11 -3
  393. data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
  394. data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
  395. data/src/core/lib/security/transport/tsi_error.h +9 -1
  396. data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
  397. data/src/core/lib/security/util/json_util.h +12 -4
  398. data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
  399. data/src/core/lib/slice/b64.h +12 -4
  400. data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
  401. data/src/core/lib/slice/percent_encoding.h +11 -3
  402. data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
  403. data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
  404. data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
  405. data/src/core/lib/slice/slice_hash_table.h +19 -11
  406. data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
  407. data/src/core/lib/slice/slice_internal.h +17 -6
  408. data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
  409. data/src/core/lib/slice/slice_string_helpers.h +3 -3
  410. data/src/core/lib/support/abstract.h +29 -0
  411. data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
  412. data/src/core/lib/support/{arena.c → arena.cc} +12 -12
  413. data/src/core/lib/support/arena.h +11 -3
  414. data/src/core/lib/support/{atm.c → atm.cc} +1 -1
  415. data/src/core/lib/support/{avl.c → avl.cc} +71 -70
  416. data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
  417. data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
  418. data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
  419. data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
  420. data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
  421. data/src/core/lib/support/env.h +3 -3
  422. data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
  423. data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
  424. data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
  425. data/src/core/lib/support/{fork.c → fork.cc} +2 -2
  426. data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
  427. data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
  428. data/src/core/lib/support/{log.c → log.cc} +8 -8
  429. data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
  430. data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
  431. data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
  432. data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
  433. data/src/core/lib/support/manual_constructor.h +211 -0
  434. data/src/core/lib/support/memory.h +41 -0
  435. data/src/core/lib/support/mpscq.cc +114 -0
  436. data/src/core/lib/support/mpscq.h +45 -7
  437. data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
  438. data/src/core/lib/support/murmur_hash.h +9 -1
  439. data/src/core/lib/support/spinlock.h +8 -1
  440. data/src/core/lib/support/{string.c → string.cc} +56 -55
  441. data/src/core/lib/support/string.h +21 -21
  442. data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
  443. data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
  444. data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
  445. data/src/core/lib/support/string_windows.h +8 -0
  446. data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
  447. data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
  448. data/src/core/lib/support/{sync.c → sync.cc} +22 -22
  449. data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
  450. data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
  451. data/src/core/lib/support/{thd.c → thd.cc} +0 -0
  452. data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
  453. data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
  454. data/src/core/lib/support/{time.c → time.cc} +0 -0
  455. data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
  456. data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
  457. data/src/core/lib/support/time_precise.h +9 -1
  458. data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
  459. data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
  460. data/src/core/lib/support/tmpfile.h +1 -1
  461. data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
  462. data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
  463. data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
  464. data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
  465. data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
  466. data/src/core/lib/surface/alarm_internal.h +10 -2
  467. data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
  468. data/src/core/lib/surface/api_trace.h +2 -2
  469. data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
  470. data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
  471. data/src/core/lib/surface/{call.c → call.cc} +379 -372
  472. data/src/core/lib/surface/call.h +37 -38
  473. data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
  474. data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
  475. data/src/core/lib/surface/call_test_only.h +5 -5
  476. data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
  477. data/src/core/lib/surface/channel.h +29 -21
  478. data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
  479. data/src/core/lib/surface/channel_init.h +6 -6
  480. data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
  481. data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
  482. data/src/core/lib/surface/channel_stack_type.h +9 -1
  483. data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
  484. data/src/core/lib/surface/completion_queue.h +29 -29
  485. data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
  486. data/src/core/lib/surface/completion_queue_factory.h +8 -0
  487. data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
  488. data/src/core/lib/surface/event_string.h +9 -1
  489. data/src/core/lib/surface/{init.c → init.cc} +16 -39
  490. data/src/core/lib/surface/init.h +8 -0
  491. data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
  492. data/src/core/lib/surface/lame_client.cc +38 -40
  493. data/src/core/lib/surface/lame_client.h +8 -0
  494. data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
  495. data/src/core/lib/surface/{server.c → server.cc} +340 -404
  496. data/src/core/lib/surface/server.h +22 -14
  497. data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
  498. data/src/core/lib/surface/validate_metadata.h +10 -2
  499. data/src/core/lib/surface/{version.c → version.cc} +2 -2
  500. data/src/core/lib/transport/bdp_estimator.cc +84 -0
  501. data/src/core/lib/transport/bdp_estimator.h +67 -42
  502. data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
  503. data/src/core/lib/transport/byte_stream.h +41 -33
  504. data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
  505. data/src/core/lib/transport/connectivity_state.h +29 -21
  506. data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
  507. data/src/core/lib/transport/error_utils.h +18 -6
  508. data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
  509. data/src/core/lib/transport/metadata.h +22 -20
  510. data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
  511. data/src/core/lib/transport/metadata_batch.h +46 -45
  512. data/src/core/lib/transport/pid_controller.cc +48 -0
  513. data/src/core/lib/transport/pid_controller.h +84 -32
  514. data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
  515. data/src/core/lib/transport/service_config.h +11 -2
  516. data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
  517. data/src/core/lib/transport/static_metadata.h +30 -23
  518. data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
  519. data/src/core/lib/transport/status_conversion.h +12 -2
  520. data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
  521. data/src/core/lib/transport/timeout_encoding.h +11 -2
  522. data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
  523. data/src/core/lib/transport/transport.h +78 -80
  524. data/src/core/lib/transport/transport_impl.h +27 -19
  525. data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
  526. data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
  527. data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
  528. data/src/core/tsi/fake_transport_security.h +5 -5
  529. data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
  530. data/src/core/tsi/gts_transport_security.h +11 -3
  531. data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
  532. data/src/core/tsi/ssl_transport_security.h +25 -25
  533. data/src/core/tsi/ssl_types.h +8 -0
  534. data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
  535. data/src/core/tsi/transport_security.h +55 -55
  536. data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
  537. data/src/core/tsi/transport_security_adapter.h +2 -2
  538. data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
  539. data/src/core/tsi/transport_security_grpc.h +19 -19
  540. data/src/core/tsi/transport_security_interface.h +41 -41
  541. data/src/ruby/ext/grpc/extconf.rb +4 -2
  542. data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
  543. data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
  544. data/src/ruby/ext/grpc/rb_call.c +41 -42
  545. data/src/ruby/ext/grpc/rb_call.h +6 -6
  546. data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
  547. data/src/ruby/ext/grpc/rb_channel.c +87 -87
  548. data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
  549. data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
  550. data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
  551. data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
  552. data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
  553. data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
  554. data/src/ruby/ext/grpc/rb_grpc.c +8 -8
  555. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
  556. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
  557. data/src/ruby/ext/grpc/rb_server.c +23 -23
  558. data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
  559. data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
  560. data/src/ruby/lib/grpc/version.rb +1 -1
  561. data/src/ruby/pb/grpc/health/checker.rb +14 -0
  562. data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
  563. data/third_party/cares/config_freebsd/ares_config.h +502 -0
  564. data/third_party/cares/config_openbsd/ares_config.h +502 -0
  565. metadata +302 -328
  566. data/src/core/ext/census/aggregation.h +0 -51
  567. data/src/core/ext/census/base_resources.c +0 -56
  568. data/src/core/ext/census/base_resources.h +0 -24
  569. data/src/core/ext/census/census_interface.h +0 -61
  570. data/src/core/ext/census/census_rpc_stats.h +0 -86
  571. data/src/core/ext/census/context.c +0 -496
  572. data/src/core/ext/census/gen/census.pb.c +0 -161
  573. data/src/core/ext/census/gen/census.pb.h +0 -280
  574. data/src/core/ext/census/gen/trace_context.pb.c +0 -39
  575. data/src/core/ext/census/gen/trace_context.pb.h +0 -78
  576. data/src/core/ext/census/grpc_filter.c +0 -196
  577. data/src/core/ext/census/grpc_plugin.c +0 -70
  578. data/src/core/ext/census/initialize.c +0 -51
  579. data/src/core/ext/census/intrusive_hash_map.c +0 -305
  580. data/src/core/ext/census/intrusive_hash_map.h +0 -152
  581. data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
  582. data/src/core/ext/census/mlog.c +0 -586
  583. data/src/core/ext/census/mlog.h +0 -80
  584. data/src/core/ext/census/operation.c +0 -48
  585. data/src/core/ext/census/placeholders.c +0 -49
  586. data/src/core/ext/census/resource.c +0 -303
  587. data/src/core/ext/census/resource.h +0 -48
  588. data/src/core/ext/census/rpc_metric_id.h +0 -36
  589. data/src/core/ext/census/trace_context.c +0 -71
  590. data/src/core/ext/census/trace_context.h +0 -56
  591. data/src/core/ext/census/trace_label.h +0 -46
  592. data/src/core/ext/census/trace_propagation.h +0 -48
  593. data/src/core/ext/census/trace_status.h +0 -30
  594. data/src/core/ext/census/trace_string.h +0 -35
  595. data/src/core/ext/census/tracing.c +0 -55
  596. data/src/core/ext/census/tracing.h +0 -109
  597. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
  598. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
  599. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
  600. data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
  601. data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
  602. data/src/core/lib/debug/trace.c +0 -146
  603. data/src/core/lib/iomgr/closure.c +0 -219
  604. data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
  605. data/src/core/lib/iomgr/ev_posix.c +0 -266
  606. data/src/core/lib/iomgr/exec_ctx.c +0 -113
  607. data/src/core/lib/iomgr/tcp_uv.c +0 -381
  608. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
  609. data/src/core/lib/security/transport/security_connector.c +0 -914
  610. data/src/core/lib/support/backoff.c +0 -72
  611. data/src/core/lib/support/backoff.h +0 -56
  612. data/src/core/lib/support/mpscq.c +0 -79
  613. data/src/core/lib/support/stack_lockfree.c +0 -137
  614. data/src/core/lib/support/stack_lockfree.h +0 -38
  615. data/src/core/lib/transport/bdp_estimator.c +0 -110
  616. data/src/core/lib/transport/pid_controller.c +0 -63
@@ -37,8 +37,8 @@ extern "C" {
37
37
  /** Create a client channel to 'target' using file descriptor 'fd'. The 'target'
38
38
  argument will be used to indicate the name for this channel. See the comment
39
39
  for grpc_insecure_channel_create for description of 'args' argument. */
40
- GRPCAPI grpc_channel *grpc_insecure_channel_create_from_fd(
41
- const char *target, int fd, const grpc_channel_args *args);
40
+ GRPCAPI grpc_channel* grpc_insecure_channel_create_from_fd(
41
+ const char* target, int fd, const grpc_channel_args* args);
42
42
 
43
43
  /** Add the connected communication channel based on file descriptor 'fd' to the
44
44
  'server'. The 'fd' must be an open file descriptor corresponding to a
@@ -48,8 +48,8 @@ GRPCAPI grpc_channel *grpc_insecure_channel_create_from_fd(
48
48
 
49
49
  The 'reserved' pointer MUST be NULL.
50
50
  */
51
- GRPCAPI void grpc_server_add_insecure_channel_from_fd(grpc_server *server,
52
- void *reserved, int fd);
51
+ GRPCAPI void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
52
+ void* reserved, int fd);
53
53
 
54
54
  /** GRPC Core POSIX library may internally use signals to optimize some work.
55
55
  The library uses (SIGRTMIN + 6) signal by default. Use this API to instruct
@@ -32,51 +32,51 @@ extern "C" {
32
32
  typedef struct grpc_auth_context grpc_auth_context;
33
33
 
34
34
  typedef struct grpc_auth_property_iterator {
35
- const grpc_auth_context *ctx;
35
+ const grpc_auth_context* ctx;
36
36
  size_t index;
37
- const char *name;
37
+ const char* name;
38
38
  } grpc_auth_property_iterator;
39
39
 
40
40
  /** value, if not NULL, is guaranteed to be NULL terminated. */
41
41
  typedef struct grpc_auth_property {
42
- char *name;
43
- char *value;
42
+ char* name;
43
+ char* value;
44
44
  size_t value_length;
45
45
  } grpc_auth_property;
46
46
 
47
47
  /** Returns NULL when the iterator is at the end. */
48
- GRPCAPI const grpc_auth_property *grpc_auth_property_iterator_next(
49
- grpc_auth_property_iterator *it);
48
+ GRPCAPI const grpc_auth_property* grpc_auth_property_iterator_next(
49
+ grpc_auth_property_iterator* it);
50
50
 
51
51
  /** Iterates over the auth context. */
52
52
  GRPCAPI grpc_auth_property_iterator
53
- grpc_auth_context_property_iterator(const grpc_auth_context *ctx);
53
+ grpc_auth_context_property_iterator(const grpc_auth_context* ctx);
54
54
 
55
55
  /** Gets the peer identity. Returns an empty iterator (first _next will return
56
56
  NULL) if the peer is not authenticated. */
57
57
  GRPCAPI grpc_auth_property_iterator
58
- grpc_auth_context_peer_identity(const grpc_auth_context *ctx);
58
+ grpc_auth_context_peer_identity(const grpc_auth_context* ctx);
59
59
 
60
60
  /** Finds a property in the context. May return an empty iterator (first _next
61
61
  will return NULL) if no property with this name was found in the context. */
62
62
  GRPCAPI grpc_auth_property_iterator grpc_auth_context_find_properties_by_name(
63
- const grpc_auth_context *ctx, const char *name);
63
+ const grpc_auth_context* ctx, const char* name);
64
64
 
65
65
  /** Gets the name of the property that indicates the peer identity. Will return
66
66
  NULL if the peer is not authenticated. */
67
- GRPCAPI const char *grpc_auth_context_peer_identity_property_name(
68
- const grpc_auth_context *ctx);
67
+ GRPCAPI const char* grpc_auth_context_peer_identity_property_name(
68
+ const grpc_auth_context* ctx);
69
69
 
70
70
  /** Returns 1 if the peer is authenticated, 0 otherwise. */
71
71
  GRPCAPI int grpc_auth_context_peer_is_authenticated(
72
- const grpc_auth_context *ctx);
72
+ const grpc_auth_context* ctx);
73
73
 
74
74
  /** Gets the auth context from the call. Caller needs to call
75
75
  grpc_auth_context_release on the returned context. */
76
- GRPCAPI grpc_auth_context *grpc_call_auth_context(grpc_call *call);
76
+ GRPCAPI grpc_auth_context* grpc_call_auth_context(grpc_call* call);
77
77
 
78
78
  /** Releases the auth context returned from grpc_call_auth_context. */
79
- GRPCAPI void grpc_auth_context_release(grpc_auth_context *context);
79
+ GRPCAPI void grpc_auth_context_release(grpc_auth_context* context);
80
80
 
81
81
  /** --
82
82
  The following auth context methods should only be called by a server metadata
@@ -84,19 +84,19 @@ GRPCAPI void grpc_auth_context_release(grpc_auth_context *context);
84
84
  -- */
85
85
 
86
86
  /** Add a property. */
87
- GRPCAPI void grpc_auth_context_add_property(grpc_auth_context *ctx,
88
- const char *name, const char *value,
87
+ GRPCAPI void grpc_auth_context_add_property(grpc_auth_context* ctx,
88
+ const char* name, const char* value,
89
89
  size_t value_length);
90
90
 
91
91
  /** Add a C string property. */
92
- GRPCAPI void grpc_auth_context_add_cstring_property(grpc_auth_context *ctx,
93
- const char *name,
94
- const char *value);
92
+ GRPCAPI void grpc_auth_context_add_cstring_property(grpc_auth_context* ctx,
93
+ const char* name,
94
+ const char* value);
95
95
 
96
96
  /** Sets the property name. Returns 1 if successful or 0 in case of failure
97
97
  (which means that no property with this name exists). */
98
98
  GRPCAPI int grpc_auth_context_set_peer_identity_property_name(
99
- grpc_auth_context *ctx, const char *name);
99
+ grpc_auth_context* ctx, const char* name);
100
100
 
101
101
  /** --- grpc_channel_credentials object. ---
102
102
 
@@ -107,12 +107,12 @@ typedef struct grpc_channel_credentials grpc_channel_credentials;
107
107
 
108
108
  /** Releases a channel credentials object.
109
109
  The creator of the credentials object is responsible for its release. */
110
- GRPCAPI void grpc_channel_credentials_release(grpc_channel_credentials *creds);
110
+ GRPCAPI void grpc_channel_credentials_release(grpc_channel_credentials* creds);
111
111
 
112
112
  /** Creates default credentials to connect to a google gRPC service.
113
113
  WARNING: Do NOT use this credentials to connect to a non-google service as
114
114
  this could result in an oauth2 token leak. */
115
- GRPCAPI grpc_channel_credentials *grpc_google_default_credentials_create(void);
115
+ GRPCAPI grpc_channel_credentials* grpc_google_default_credentials_create(void);
116
116
 
117
117
  /** Callback for getting the SSL roots override from the application.
118
118
  In case of success, *pem_roots_certs must be set to a NULL terminated string
@@ -121,7 +121,7 @@ GRPCAPI grpc_channel_credentials *grpc_google_default_credentials_create(void);
121
121
  If this function fails and GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment is
122
122
  set to a valid path, it will override the roots specified this func */
123
123
  typedef grpc_ssl_roots_override_result (*grpc_ssl_roots_override_callback)(
124
- char **pem_root_certs);
124
+ char** pem_root_certs);
125
125
 
126
126
  /** Setup a callback to override the default TLS/SSL roots.
127
127
  This function is not thread-safe and must be called at initialization time
@@ -135,11 +135,11 @@ GRPCAPI void grpc_set_ssl_roots_override_callback(
135
135
  typedef struct {
136
136
  /** private_key is the NULL-terminated string containing the PEM encoding of
137
137
  the client's private key. */
138
- const char *private_key;
138
+ const char* private_key;
139
139
 
140
140
  /** cert_chain is the NULL-terminated string containing the PEM encoding of
141
141
  the client's certificate chain. */
142
- const char *cert_chain;
142
+ const char* cert_chain;
143
143
  } grpc_ssl_pem_key_cert_pair;
144
144
 
145
145
  /** Creates an SSL credentials object.
@@ -153,9 +153,9 @@ typedef struct {
153
153
  - pem_key_cert_pair is a pointer on the object containing client's private
154
154
  key and certificate chain. This parameter can be NULL if the client does
155
155
  not have such a key/cert pair. */
156
- GRPCAPI grpc_channel_credentials *grpc_ssl_credentials_create(
157
- const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair,
158
- void *reserved);
156
+ GRPCAPI grpc_channel_credentials* grpc_ssl_credentials_create(
157
+ const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
158
+ void* reserved);
159
159
 
160
160
  /** --- grpc_call_credentials object.
161
161
 
@@ -167,35 +167,35 @@ typedef struct grpc_call_credentials grpc_call_credentials;
167
167
 
168
168
  /** Releases a call credentials object.
169
169
  The creator of the credentials object is responsible for its release. */
170
- GRPCAPI void grpc_call_credentials_release(grpc_call_credentials *creds);
170
+ GRPCAPI void grpc_call_credentials_release(grpc_call_credentials* creds);
171
171
 
172
172
  /** Creates a composite channel credentials object. */
173
- GRPCAPI grpc_channel_credentials *grpc_composite_channel_credentials_create(
174
- grpc_channel_credentials *channel_creds, grpc_call_credentials *call_creds,
175
- void *reserved);
173
+ GRPCAPI grpc_channel_credentials* grpc_composite_channel_credentials_create(
174
+ grpc_channel_credentials* channel_creds, grpc_call_credentials* call_creds,
175
+ void* reserved);
176
176
 
177
177
  /** Creates a composite call credentials object. */
178
- GRPCAPI grpc_call_credentials *grpc_composite_call_credentials_create(
179
- grpc_call_credentials *creds1, grpc_call_credentials *creds2,
180
- void *reserved);
178
+ GRPCAPI grpc_call_credentials* grpc_composite_call_credentials_create(
179
+ grpc_call_credentials* creds1, grpc_call_credentials* creds2,
180
+ void* reserved);
181
181
 
182
182
  /** Creates a compute engine credentials object for connecting to Google.
183
183
  WARNING: Do NOT use this credentials to connect to a non-google service as
184
184
  this could result in an oauth2 token leak. */
185
- GRPCAPI grpc_call_credentials *grpc_google_compute_engine_credentials_create(
186
- void *reserved);
185
+ GRPCAPI grpc_call_credentials* grpc_google_compute_engine_credentials_create(
186
+ void* reserved);
187
187
 
188
- GRPCAPI gpr_timespec grpc_max_auth_token_lifetime();
188
+ GRPCAPI gpr_timespec grpc_max_auth_token_lifetime(void);
189
189
 
190
190
  /** Creates a JWT credentials object. May return NULL if the input is invalid.
191
191
  - json_key is the JSON key string containing the client's private key.
192
192
  - token_lifetime is the lifetime of each Json Web Token (JWT) created with
193
193
  this credentials. It should not exceed grpc_max_auth_token_lifetime or
194
194
  will be cropped to this value. */
195
- GRPCAPI grpc_call_credentials *
196
- grpc_service_account_jwt_access_credentials_create(const char *json_key,
195
+ GRPCAPI grpc_call_credentials*
196
+ grpc_service_account_jwt_access_credentials_create(const char* json_key,
197
197
  gpr_timespec token_lifetime,
198
- void *reserved);
198
+ void* reserved);
199
199
 
200
200
  /** Creates an Oauth2 Refresh Token credentials object for connecting to Google.
201
201
  May return NULL if the input is invalid.
@@ -203,18 +203,18 @@ grpc_service_account_jwt_access_credentials_create(const char *json_key,
203
203
  this could result in an oauth2 token leak.
204
204
  - json_refresh_token is the JSON string containing the refresh token itself
205
205
  along with a client_id and client_secret. */
206
- GRPCAPI grpc_call_credentials *grpc_google_refresh_token_credentials_create(
207
- const char *json_refresh_token, void *reserved);
206
+ GRPCAPI grpc_call_credentials* grpc_google_refresh_token_credentials_create(
207
+ const char* json_refresh_token, void* reserved);
208
208
 
209
209
  /** Creates an Oauth2 Access Token credentials with an access token that was
210
210
  aquired by an out of band mechanism. */
211
- GRPCAPI grpc_call_credentials *grpc_access_token_credentials_create(
212
- const char *access_token, void *reserved);
211
+ GRPCAPI grpc_call_credentials* grpc_access_token_credentials_create(
212
+ const char* access_token, void* reserved);
213
213
 
214
214
  /** Creates an IAM credentials object for connecting to Google. */
215
- GRPCAPI grpc_call_credentials *grpc_google_iam_credentials_create(
216
- const char *authorization_token, const char *authority_selector,
217
- void *reserved);
215
+ GRPCAPI grpc_call_credentials* grpc_google_iam_credentials_create(
216
+ const char* authorization_token, const char* authority_selector,
217
+ void* reserved);
218
218
 
219
219
  /** Callback function to be called by the metadata credentials plugin
220
220
  implementation when the metadata is ready.
@@ -228,25 +228,25 @@ GRPCAPI grpc_call_credentials *grpc_google_iam_credentials_create(
228
228
  - error_details contains details about the error if any. In case of success
229
229
  it should be NULL and will be otherwise ignored. */
230
230
  typedef void (*grpc_credentials_plugin_metadata_cb)(
231
- void *user_data, const grpc_metadata *creds_md, size_t num_creds_md,
232
- grpc_status_code status, const char *error_details);
231
+ void* user_data, const grpc_metadata* creds_md, size_t num_creds_md,
232
+ grpc_status_code status, const char* error_details);
233
233
 
234
234
  /** Context that can be used by metadata credentials plugin in order to create
235
235
  auth related metadata. */
236
236
  typedef struct {
237
237
  /** The fully qualifed service url. */
238
- const char *service_url;
238
+ const char* service_url;
239
239
 
240
240
  /** The method name of the RPC being called (not fully qualified).
241
241
  The fully qualified method name can be built from the service_url:
242
242
  full_qualified_method_name = ctx->service_url + '/' + ctx->method_name. */
243
- const char *method_name;
243
+ const char* method_name;
244
244
 
245
245
  /** The auth_context of the channel which gives the server's identity. */
246
- const grpc_auth_context *channel_auth_context;
246
+ const grpc_auth_context* channel_auth_context;
247
247
 
248
248
  /** Reserved for future use. */
249
- void *reserved;
249
+ void* reserved;
250
250
  } grpc_auth_metadata_context;
251
251
 
252
252
  /** Maximum number of metadata entries returnable by a credentials plugin via
@@ -278,32 +278,32 @@ typedef struct {
278
278
  \a context is the information that can be used by the plugin to create
279
279
  auth metadata. */
280
280
  int (*get_metadata)(
281
- void *state, grpc_auth_metadata_context context,
282
- grpc_credentials_plugin_metadata_cb cb, void *user_data,
281
+ void* state, grpc_auth_metadata_context context,
282
+ grpc_credentials_plugin_metadata_cb cb, void* user_data,
283
283
  grpc_metadata creds_md[GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX],
284
- size_t *num_creds_md, grpc_status_code *status,
285
- const char **error_details);
284
+ size_t* num_creds_md, grpc_status_code* status,
285
+ const char** error_details);
286
286
 
287
287
  /** Destroys the plugin state. */
288
- void (*destroy)(void *state);
288
+ void (*destroy)(void* state);
289
289
 
290
290
  /** State that will be set as the first parameter of the methods above. */
291
- void *state;
291
+ void* state;
292
292
 
293
293
  /** Type of credentials that this plugin is implementing. */
294
- const char *type;
294
+ const char* type;
295
295
  } grpc_metadata_credentials_plugin;
296
296
 
297
297
  /** Creates a credentials object from a plugin. */
298
- GRPCAPI grpc_call_credentials *grpc_metadata_credentials_create_from_plugin(
299
- grpc_metadata_credentials_plugin plugin, void *reserved);
298
+ GRPCAPI grpc_call_credentials* grpc_metadata_credentials_create_from_plugin(
299
+ grpc_metadata_credentials_plugin plugin, void* reserved);
300
300
 
301
301
  /** --- Secure channel creation. --- */
302
302
 
303
303
  /** Creates a secure channel using the passed-in credentials. */
304
- GRPCAPI grpc_channel *grpc_secure_channel_create(
305
- grpc_channel_credentials *creds, const char *target,
306
- const grpc_channel_args *args, void *reserved);
304
+ GRPCAPI grpc_channel* grpc_secure_channel_create(
305
+ grpc_channel_credentials* creds, const char* target,
306
+ const grpc_channel_args* args, void* reserved);
307
307
 
308
308
  /** --- grpc_server_credentials object. ---
309
309
 
@@ -314,7 +314,44 @@ typedef struct grpc_server_credentials grpc_server_credentials;
314
314
  /** Releases a server_credentials object.
315
315
  The creator of the server_credentials object is responsible for its release.
316
316
  */
317
- GRPCAPI void grpc_server_credentials_release(grpc_server_credentials *creds);
317
+ GRPCAPI void grpc_server_credentials_release(grpc_server_credentials* creds);
318
+
319
+ /** Server certificate config object holds the server's public certificates and
320
+ associated private keys, as well as any CA certificates needed for client
321
+ certificate validation (if applicable). Create using
322
+ grpc_ssl_server_certificate_config_create(). */
323
+ typedef struct grpc_ssl_server_certificate_config
324
+ grpc_ssl_server_certificate_config;
325
+
326
+ /** Creates a grpc_ssl_server_certificate_config object.
327
+ - pem_roots_cert is the NULL-terminated string containing the PEM encoding of
328
+ the client root certificates. This parameter may be NULL if the server does
329
+ not want the client to be authenticated with SSL.
330
+ - pem_key_cert_pairs is an array private key / certificate chains of the
331
+ server. This parameter cannot be NULL.
332
+ - num_key_cert_pairs indicates the number of items in the private_key_files
333
+ and cert_chain_files parameters. It must be at least 1.
334
+ - It is the caller's responsibility to free this object via
335
+ grpc_ssl_server_certificate_config_destroy(). */
336
+ GRPCAPI grpc_ssl_server_certificate_config*
337
+ grpc_ssl_server_certificate_config_create(
338
+ const char* pem_root_certs,
339
+ const grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
340
+ size_t num_key_cert_pairs);
341
+
342
+ /** Destroys a grpc_ssl_server_certificate_config object. */
343
+ GRPCAPI void grpc_ssl_server_certificate_config_destroy(
344
+ grpc_ssl_server_certificate_config* config);
345
+
346
+ /** Callback to retrieve updated SSL server certificates, private keys, and
347
+ trusted CAs (for client authentication).
348
+ - user_data parameter, if not NULL, contains opaque data to be used by the
349
+ callback.
350
+ - Use grpc_ssl_server_certificate_config_create to create the config.
351
+ - The caller assumes ownership of the config. */
352
+ typedef grpc_ssl_certificate_config_reload_status (
353
+ *grpc_ssl_server_certificate_config_callback)(
354
+ void* user_data, grpc_ssl_server_certificate_config** config);
318
355
 
319
356
  /** Deprecated in favor of grpc_ssl_server_credentials_create_ex.
320
357
  Creates an SSL server_credentials object.
@@ -328,34 +365,69 @@ GRPCAPI void grpc_server_credentials_release(grpc_server_credentials *creds);
328
365
  - force_client_auth, if set to non-zero will force the client to authenticate
329
366
  with an SSL cert. Note that this option is ignored if pem_root_certs is
330
367
  NULL. */
331
- GRPCAPI grpc_server_credentials *grpc_ssl_server_credentials_create(
332
- const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs,
333
- size_t num_key_cert_pairs, int force_client_auth, void *reserved);
368
+ GRPCAPI grpc_server_credentials* grpc_ssl_server_credentials_create(
369
+ const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
370
+ size_t num_key_cert_pairs, int force_client_auth, void* reserved);
334
371
 
335
- /** Same as grpc_ssl_server_credentials_create method except uses
372
+ /** Deprecated in favor of grpc_ssl_server_credentials_create_with_options.
373
+ Same as grpc_ssl_server_credentials_create method except uses
336
374
  grpc_ssl_client_certificate_request_type enum to support more ways to
337
375
  authenticate client cerificates.*/
338
- GRPCAPI grpc_server_credentials *grpc_ssl_server_credentials_create_ex(
339
- const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs,
376
+ GRPCAPI grpc_server_credentials* grpc_ssl_server_credentials_create_ex(
377
+ const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
340
378
  size_t num_key_cert_pairs,
341
379
  grpc_ssl_client_certificate_request_type client_certificate_request,
342
- void *reserved);
380
+ void* reserved);
381
+
382
+ typedef struct grpc_ssl_server_credentials_options
383
+ grpc_ssl_server_credentials_options;
384
+
385
+ /** Creates an options object using a certificate config. Use this method when
386
+ the certificates and keys of the SSL server will not change during the
387
+ server's lifetime.
388
+ - Takes ownership of the certificate_config parameter. */
389
+ GRPCAPI grpc_ssl_server_credentials_options*
390
+ grpc_ssl_server_credentials_create_options_using_config(
391
+ grpc_ssl_client_certificate_request_type client_certificate_request,
392
+ grpc_ssl_server_certificate_config* certificate_config);
393
+
394
+ /** Creates an options object using a certificate config fetcher. Use this
395
+ method to reload the certificates and keys of the SSL server without
396
+ interrupting the operation of the server. Initial certificate config will be
397
+ fetched during server initialization.
398
+ - user_data parameter, if not NULL, contains opaque data which will be passed
399
+ to the fetcher (see definition of
400
+ grpc_ssl_server_certificate_config_callback). */
401
+ GRPCAPI grpc_ssl_server_credentials_options*
402
+ grpc_ssl_server_credentials_create_options_using_config_fetcher(
403
+ grpc_ssl_client_certificate_request_type client_certificate_request,
404
+ grpc_ssl_server_certificate_config_callback cb, void* user_data);
405
+
406
+ /** Destroys a grpc_ssl_server_credentials_options object. */
407
+ GRPCAPI void grpc_ssl_server_credentials_options_destroy(
408
+ grpc_ssl_server_credentials_options* options);
409
+
410
+ /** Creates an SSL server_credentials object using the provided options struct.
411
+ - Takes ownership of the options parameter. */
412
+ GRPCAPI grpc_server_credentials*
413
+ grpc_ssl_server_credentials_create_with_options(
414
+ grpc_ssl_server_credentials_options* options);
343
415
 
344
416
  /** --- Server-side secure ports. --- */
345
417
 
346
418
  /** Add a HTTP2 over an encrypted link over tcp listener.
347
419
  Returns bound port number on success, 0 on failure.
348
420
  REQUIRES: server not started */
349
- GRPCAPI int grpc_server_add_secure_http2_port(grpc_server *server,
350
- const char *addr,
351
- grpc_server_credentials *creds);
421
+ GRPCAPI int grpc_server_add_secure_http2_port(grpc_server* server,
422
+ const char* addr,
423
+ grpc_server_credentials* creds);
352
424
 
353
425
  /** --- Call specific credentials. --- */
354
426
 
355
427
  /** Sets a credentials to a call. Can only be called on the client side before
356
428
  grpc_call_start_batch. */
357
- GRPCAPI grpc_call_error grpc_call_set_credentials(grpc_call *call,
358
- grpc_call_credentials *creds);
429
+ GRPCAPI grpc_call_error grpc_call_set_credentials(grpc_call* call,
430
+ grpc_call_credentials* creds);
359
431
 
360
432
  /** --- Auth Metadata Processing --- */
361
433
 
@@ -369,9 +441,9 @@ GRPCAPI grpc_call_error grpc_call_set_credentials(grpc_call *call,
369
441
  GRPC_STATUS PERMISSION_DENIED in case of an authorization failure.
370
442
  - error_details gives details about the error. May be NULL. */
371
443
  typedef void (*grpc_process_auth_metadata_done_cb)(
372
- void *user_data, const grpc_metadata *consumed_md, size_t num_consumed_md,
373
- const grpc_metadata *response_md, size_t num_response_md,
374
- grpc_status_code status, const char *error_details);
444
+ void* user_data, const grpc_metadata* consumed_md, size_t num_consumed_md,
445
+ const grpc_metadata* response_md, size_t num_response_md,
446
+ grpc_status_code status, const char* error_details);
375
447
 
376
448
  /** Pluggable server-side metadata processor object. */
377
449
  typedef struct {
@@ -379,15 +451,15 @@ typedef struct {
379
451
  channel peer and it is the job of the process function to augment it with
380
452
  properties derived from the passed-in metadata.
381
453
  The lifetime of these objects is guaranteed until cb is invoked. */
382
- void (*process)(void *state, grpc_auth_context *context,
383
- const grpc_metadata *md, size_t num_md,
384
- grpc_process_auth_metadata_done_cb cb, void *user_data);
385
- void (*destroy)(void *state);
386
- void *state;
454
+ void (*process)(void* state, grpc_auth_context* context,
455
+ const grpc_metadata* md, size_t num_md,
456
+ grpc_process_auth_metadata_done_cb cb, void* user_data);
457
+ void (*destroy)(void* state);
458
+ void* state;
387
459
  } grpc_auth_metadata_processor;
388
460
 
389
461
  GRPCAPI void grpc_server_credentials_set_auth_metadata_processor(
390
- grpc_server_credentials *creds, grpc_auth_metadata_processor processor);
462
+ grpc_server_credentials* creds, grpc_auth_metadata_processor processor);
391
463
 
392
464
  #ifdef __cplusplus
393
465
  }