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
@@ -24,25 +24,29 @@
24
24
  #include "src/core/lib/iomgr/socket_utils_posix.h"
25
25
  #include "src/core/lib/iomgr/tcp_server.h"
26
26
 
27
+ #ifdef __cplusplus
28
+ extern "C" {
29
+ #endif
30
+
27
31
  /* one listening port */
28
32
  typedef struct grpc_tcp_listener {
29
33
  int fd;
30
- grpc_fd *emfd;
31
- grpc_tcp_server *server;
34
+ grpc_fd* emfd;
35
+ grpc_tcp_server* server;
32
36
  grpc_resolved_address addr;
33
37
  int port;
34
38
  unsigned port_index;
35
39
  unsigned fd_index;
36
40
  grpc_closure read_closure;
37
41
  grpc_closure destroyed_closure;
38
- struct grpc_tcp_listener *next;
42
+ struct grpc_tcp_listener* next;
39
43
  /* sibling is a linked list of all listeners for a given port. add_port and
40
44
  clone_port place all new listeners in the same sibling list. A member of
41
45
  the 'sibling' list is also a member of the 'next' list. The head of each
42
46
  sibling list has is_sibling==0, and subsequent members of sibling lists
43
47
  have is_sibling==1. is_sibling allows separate sibling lists to be
44
48
  identified while iterating through 'next'. */
45
- struct grpc_tcp_listener *sibling;
49
+ struct grpc_tcp_listener* sibling;
46
50
  int is_sibling;
47
51
  } grpc_tcp_listener;
48
52
 
@@ -51,7 +55,7 @@ struct grpc_tcp_server {
51
55
  gpr_refcount refs;
52
56
  /* Called whenever accept() succeeds on a server port. */
53
57
  grpc_tcp_server_cb on_accept_cb;
54
- void *on_accept_cb_arg;
58
+ void* on_accept_cb_arg;
55
59
 
56
60
  gpr_mu mu;
57
61
 
@@ -70,18 +74,18 @@ struct grpc_tcp_server {
70
74
  bool expand_wildcard_addrs;
71
75
 
72
76
  /* linked list of server ports */
73
- grpc_tcp_listener *head;
74
- grpc_tcp_listener *tail;
77
+ grpc_tcp_listener* head;
78
+ grpc_tcp_listener* tail;
75
79
  unsigned nports;
76
80
 
77
81
  /* List of closures passed to shutdown_starting_add(). */
78
82
  grpc_closure_list shutdown_starting;
79
83
 
80
84
  /* shutdown callback */
81
- grpc_closure *shutdown_complete;
85
+ grpc_closure* shutdown_complete;
82
86
 
83
87
  /* all pollsets interested in new connections */
84
- grpc_pollset **pollsets;
88
+ grpc_pollset** pollsets;
85
89
  /* number of pollsets in the pollsets array */
86
90
  size_t pollset_count;
87
91
 
@@ -89,32 +93,36 @@ struct grpc_tcp_server {
89
93
  gpr_atm next_pollset_to_assign;
90
94
 
91
95
  /* channel args for this server */
92
- grpc_channel_args *channel_args;
96
+ grpc_channel_args* channel_args;
93
97
  };
94
98
 
95
99
  /* If successful, add a listener to \a s for \a addr, set \a dsmode for the
96
100
  socket, and return the \a listener. */
97
- grpc_error *grpc_tcp_server_add_addr(grpc_tcp_server *s,
98
- const grpc_resolved_address *addr,
101
+ grpc_error* grpc_tcp_server_add_addr(grpc_tcp_server* s,
102
+ const grpc_resolved_address* addr,
99
103
  unsigned port_index, unsigned fd_index,
100
- grpc_dualstack_mode *dsmode,
101
- grpc_tcp_listener **listener);
104
+ grpc_dualstack_mode* dsmode,
105
+ grpc_tcp_listener** listener);
102
106
 
103
107
  /* Get all addresses assigned to network interfaces on the machine and create a
104
108
  listener for each. requested_port is the port to use for every listener, or 0
105
109
  to select one random port that will be used for every listener. Set *out_port
106
110
  to the port selected. Return GRPC_ERROR_NONE only if all listeners were
107
111
  added. */
108
- grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
112
+ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
109
113
  unsigned port_index,
110
114
  int requested_port,
111
- int *out_port);
115
+ int* out_port);
112
116
 
113
117
  /* Prepare a recently-created socket for listening. */
114
- grpc_error *grpc_tcp_server_prepare_socket(int fd,
115
- const grpc_resolved_address *addr,
116
- bool so_reuseport, int *port);
118
+ grpc_error* grpc_tcp_server_prepare_socket(int fd,
119
+ const grpc_resolved_address* addr,
120
+ bool so_reuseport, int* port);
117
121
  /* Ruturn true if the platform supports ifaddrs */
118
122
  bool grpc_tcp_server_have_ifaddrs(void);
119
123
 
124
+ #ifdef __cplusplus
125
+ }
126
+ #endif
127
+
120
128
  #endif /* GRPC_CORE_LIB_IOMGR_TCP_SERVER_UTILS_POSIX_H */
@@ -46,14 +46,14 @@ static int s_max_accept_queue_size;
46
46
  static void init_max_accept_queue_size(void) {
47
47
  int n = SOMAXCONN;
48
48
  char buf[64];
49
- FILE *fp = fopen("/proc/sys/net/core/somaxconn", "r");
50
- if (fp == NULL) {
49
+ FILE* fp = fopen("/proc/sys/net/core/somaxconn", "r");
50
+ if (fp == nullptr) {
51
51
  /* 2.4 kernel. */
52
52
  s_max_accept_queue_size = SOMAXCONN;
53
53
  return;
54
54
  }
55
55
  if (fgets(buf, sizeof buf, fp)) {
56
- char *end;
56
+ char* end;
57
57
  long i = strtol(buf, &end, 10);
58
58
  if (i > 0 && i <= INT_MAX && end && *end == 0) {
59
59
  n = (int)i;
@@ -75,16 +75,16 @@ static int get_max_accept_queue_size(void) {
75
75
  return s_max_accept_queue_size;
76
76
  }
77
77
 
78
- static grpc_error *add_socket_to_server(grpc_tcp_server *s, int fd,
79
- const grpc_resolved_address *addr,
78
+ static grpc_error* add_socket_to_server(grpc_tcp_server* s, int fd,
79
+ const grpc_resolved_address* addr,
80
80
  unsigned port_index, unsigned fd_index,
81
- grpc_tcp_listener **listener) {
82
- grpc_tcp_listener *sp = NULL;
81
+ grpc_tcp_listener** listener) {
82
+ grpc_tcp_listener* sp = nullptr;
83
83
  int port = -1;
84
- char *addr_str;
85
- char *name;
84
+ char* addr_str;
85
+ char* name;
86
86
 
87
- grpc_error *err =
87
+ grpc_error* err =
88
88
  grpc_tcp_server_prepare_socket(fd, addr, s->so_reuseport, &port);
89
89
  if (err == GRPC_ERROR_NONE) {
90
90
  GPR_ASSERT(port > 0);
@@ -93,9 +93,9 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, int fd,
93
93
  gpr_mu_lock(&s->mu);
94
94
  s->nports++;
95
95
  GPR_ASSERT(!s->on_accept_cb && "must add ports before starting server");
96
- sp = (grpc_tcp_listener *)gpr_malloc(sizeof(grpc_tcp_listener));
97
- sp->next = NULL;
98
- if (s->head == NULL) {
96
+ sp = (grpc_tcp_listener*)gpr_malloc(sizeof(grpc_tcp_listener));
97
+ sp->next = nullptr;
98
+ if (s->head == nullptr) {
99
99
  s->head = sp;
100
100
  } else {
101
101
  s->tail->next = sp;
@@ -109,7 +109,7 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, int fd,
109
109
  sp->port_index = port_index;
110
110
  sp->fd_index = fd_index;
111
111
  sp->is_sibling = 0;
112
- sp->sibling = NULL;
112
+ sp->sibling = nullptr;
113
113
  GPR_ASSERT(sp->emfd);
114
114
  gpr_mu_unlock(&s->mu);
115
115
  gpr_free(addr_str);
@@ -122,14 +122,14 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, int fd,
122
122
 
123
123
  /* If successful, add a listener to s for addr, set *dsmode for the socket, and
124
124
  return the *listener. */
125
- grpc_error *grpc_tcp_server_add_addr(grpc_tcp_server *s,
126
- const grpc_resolved_address *addr,
125
+ grpc_error* grpc_tcp_server_add_addr(grpc_tcp_server* s,
126
+ const grpc_resolved_address* addr,
127
127
  unsigned port_index, unsigned fd_index,
128
- grpc_dualstack_mode *dsmode,
129
- grpc_tcp_listener **listener) {
128
+ grpc_dualstack_mode* dsmode,
129
+ grpc_tcp_listener** listener) {
130
130
  grpc_resolved_address addr4_copy;
131
131
  int fd;
132
- grpc_error *err =
132
+ grpc_error* err =
133
133
  grpc_create_dualstack_socket(addr, SOCK_STREAM, 0, dsmode, &fd);
134
134
  if (err != GRPC_ERROR_NONE) {
135
135
  return err;
@@ -142,11 +142,11 @@ grpc_error *grpc_tcp_server_add_addr(grpc_tcp_server *s,
142
142
  }
143
143
 
144
144
  /* Prepare a recently-created socket for listening. */
145
- grpc_error *grpc_tcp_server_prepare_socket(int fd,
146
- const grpc_resolved_address *addr,
147
- bool so_reuseport, int *port) {
145
+ grpc_error* grpc_tcp_server_prepare_socket(int fd,
146
+ const grpc_resolved_address* addr,
147
+ bool so_reuseport, int* port) {
148
148
  grpc_resolved_address sockname_temp;
149
- grpc_error *err = GRPC_ERROR_NONE;
149
+ grpc_error* err = GRPC_ERROR_NONE;
150
150
 
151
151
  GPR_ASSERT(fd >= 0);
152
152
 
@@ -169,7 +169,7 @@ grpc_error *grpc_tcp_server_prepare_socket(int fd,
169
169
  if (err != GRPC_ERROR_NONE) goto error;
170
170
 
171
171
  GPR_ASSERT(addr->len < ~(socklen_t)0);
172
- if (bind(fd, (struct sockaddr *)addr->addr, (socklen_t)addr->len) < 0) {
172
+ if (bind(fd, (struct sockaddr*)addr->addr, (socklen_t)addr->len) < 0) {
173
173
  err = GRPC_OS_ERROR(errno, "bind");
174
174
  goto error;
175
175
  }
@@ -181,8 +181,8 @@ grpc_error *grpc_tcp_server_prepare_socket(int fd,
181
181
 
182
182
  sockname_temp.len = sizeof(struct sockaddr_storage);
183
183
 
184
- if (getsockname(fd, (struct sockaddr *)sockname_temp.addr,
185
- (socklen_t *)&sockname_temp.len) < 0) {
184
+ if (getsockname(fd, (struct sockaddr*)sockname_temp.addr,
185
+ (socklen_t*)&sockname_temp.len) < 0) {
186
186
  err = GRPC_OS_ERROR(errno, "getsockname");
187
187
  goto error;
188
188
  }
@@ -195,7 +195,7 @@ error:
195
195
  if (fd >= 0) {
196
196
  close(fd);
197
197
  }
198
- grpc_error *ret =
198
+ grpc_error* ret =
199
199
  grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
200
200
  "Unable to configure socket", &err, 1),
201
201
  GRPC_ERROR_INT_FD, fd);
@@ -36,11 +36,11 @@
36
36
  #include "src/core/lib/iomgr/sockaddr_utils.h"
37
37
 
38
38
  /* Return the listener in s with address addr or NULL. */
39
- static grpc_tcp_listener *find_listener_with_addr(grpc_tcp_server *s,
40
- grpc_resolved_address *addr) {
41
- grpc_tcp_listener *l;
39
+ static grpc_tcp_listener* find_listener_with_addr(grpc_tcp_server* s,
40
+ grpc_resolved_address* addr) {
41
+ grpc_tcp_listener* l;
42
42
  gpr_mu_lock(&s->mu);
43
- for (l = s->head; l != NULL; l = l->next) {
43
+ for (l = s->head; l != nullptr; l = l->next) {
44
44
  if (l->addr.len != addr->len) {
45
45
  continue;
46
46
  }
@@ -53,12 +53,12 @@ static grpc_tcp_listener *find_listener_with_addr(grpc_tcp_server *s,
53
53
  }
54
54
 
55
55
  /* Bind to "::" to get a port number not used by any address. */
56
- static grpc_error *get_unused_port(int *port) {
56
+ static grpc_error* get_unused_port(int* port) {
57
57
  grpc_resolved_address wild;
58
58
  grpc_sockaddr_make_wildcard6(0, &wild);
59
59
  grpc_dualstack_mode dsmode;
60
60
  int fd;
61
- grpc_error *err =
61
+ grpc_error* err =
62
62
  grpc_create_dualstack_socket(&wild, SOCK_STREAM, 0, &dsmode, &fd);
63
63
  if (err != GRPC_ERROR_NONE) {
64
64
  return err;
@@ -66,12 +66,12 @@ static grpc_error *get_unused_port(int *port) {
66
66
  if (dsmode == GRPC_DSMODE_IPV4) {
67
67
  grpc_sockaddr_make_wildcard4(0, &wild);
68
68
  }
69
- if (bind(fd, (const struct sockaddr *)wild.addr, (socklen_t)wild.len) != 0) {
69
+ if (bind(fd, (const struct sockaddr*)wild.addr, (socklen_t)wild.len) != 0) {
70
70
  err = GRPC_OS_ERROR(errno, "bind");
71
71
  close(fd);
72
72
  return err;
73
73
  }
74
- if (getsockname(fd, (struct sockaddr *)wild.addr, (socklen_t *)&wild.len) !=
74
+ if (getsockname(fd, (struct sockaddr*)wild.addr, (socklen_t*)&wild.len) !=
75
75
  0) {
76
76
  err = GRPC_OS_ERROR(errno, "getsockname");
77
77
  close(fd);
@@ -83,15 +83,15 @@ static grpc_error *get_unused_port(int *port) {
83
83
  : GRPC_ERROR_NONE;
84
84
  }
85
85
 
86
- grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
86
+ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
87
87
  unsigned port_index,
88
88
  int requested_port,
89
- int *out_port) {
90
- struct ifaddrs *ifa = NULL;
91
- struct ifaddrs *ifa_it;
89
+ int* out_port) {
90
+ struct ifaddrs* ifa = nullptr;
91
+ struct ifaddrs* ifa_it;
92
92
  unsigned fd_index = 0;
93
- grpc_tcp_listener *sp = NULL;
94
- grpc_error *err = GRPC_ERROR_NONE;
93
+ grpc_tcp_listener* sp = nullptr;
94
+ grpc_error* err = GRPC_ERROR_NONE;
95
95
  if (requested_port == 0) {
96
96
  /* Note: There could be a race where some local addrs can listen on the
97
97
  selected port and some can't. The sane way to handle this would be to
@@ -104,16 +104,16 @@ grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
104
104
  }
105
105
  gpr_log(GPR_DEBUG, "Picked unused port %d", requested_port);
106
106
  }
107
- if (getifaddrs(&ifa) != 0 || ifa == NULL) {
107
+ if (getifaddrs(&ifa) != 0 || ifa == nullptr) {
108
108
  return GRPC_OS_ERROR(errno, "getifaddrs");
109
109
  }
110
- for (ifa_it = ifa; ifa_it != NULL; ifa_it = ifa_it->ifa_next) {
110
+ for (ifa_it = ifa; ifa_it != nullptr; ifa_it = ifa_it->ifa_next) {
111
111
  grpc_resolved_address addr;
112
- char *addr_str = NULL;
112
+ char* addr_str = nullptr;
113
113
  grpc_dualstack_mode dsmode;
114
- grpc_tcp_listener *new_sp = NULL;
115
- const char *ifa_name = (ifa_it->ifa_name ? ifa_it->ifa_name : "<unknown>");
116
- if (ifa_it->ifa_addr == NULL) {
114
+ grpc_tcp_listener* new_sp = nullptr;
115
+ const char* ifa_name = (ifa_it->ifa_name ? ifa_it->ifa_name : "<unknown>");
116
+ if (ifa_it->ifa_addr == nullptr) {
117
117
  continue;
118
118
  } else if (ifa_it->ifa_addr->sa_family == AF_INET) {
119
119
  addr.len = sizeof(struct sockaddr_in);
@@ -136,7 +136,7 @@ grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
136
136
  ifa_name, ifa_it->ifa_flags, addr_str);
137
137
  /* We could have multiple interfaces with the same address (e.g., bonding),
138
138
  so look for duplicates. */
139
- if (find_listener_with_addr(s, &addr) != NULL) {
139
+ if (find_listener_with_addr(s, &addr) != nullptr) {
140
140
  gpr_log(GPR_DEBUG, "Skipping duplicate addr %s on interface %s", addr_str,
141
141
  ifa_name);
142
142
  gpr_free(addr_str);
@@ -144,8 +144,8 @@ grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
144
144
  }
145
145
  if ((err = grpc_tcp_server_add_addr(s, &addr, port_index, fd_index, &dsmode,
146
146
  &new_sp)) != GRPC_ERROR_NONE) {
147
- char *err_str = NULL;
148
- grpc_error *root_err;
147
+ char* err_str = nullptr;
148
+ grpc_error* root_err;
149
149
  if (gpr_asprintf(&err_str, "Failed to add listener: %s", addr_str) < 0) {
150
150
  err_str = gpr_strdup("Failed to add listener");
151
151
  }
@@ -157,7 +157,7 @@ grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
157
157
  } else {
158
158
  GPR_ASSERT(requested_port == new_sp->port);
159
159
  ++fd_index;
160
- if (sp != NULL) {
160
+ if (sp != nullptr) {
161
161
  new_sp->is_sibling = 1;
162
162
  sp->sibling = new_sp;
163
163
  }
@@ -168,7 +168,7 @@ grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
168
168
  freeifaddrs(ifa);
169
169
  if (err != GRPC_ERROR_NONE) {
170
170
  return err;
171
- } else if (sp == NULL) {
171
+ } else if (sp == nullptr) {
172
172
  return GRPC_ERROR_CREATE_FROM_STATIC_STRING("No local addresses");
173
173
  } else {
174
174
  *out_port = sp->port;
@@ -22,10 +22,10 @@
22
22
 
23
23
  #include "src/core/lib/iomgr/tcp_server_utils_posix.h"
24
24
 
25
- grpc_error *grpc_tcp_server_add_all_local_addrs(grpc_tcp_server *s,
25
+ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
26
26
  unsigned port_index,
27
27
  int requested_port,
28
- int *out_port) {
28
+ int* out_port) {
29
29
  return GRPC_ERROR_CREATE_FROM_STATIC_STRING("no ifaddrs available");
30
30
  }
31
31
 
@@ -37,12 +37,12 @@
37
37
  /* one listening port */
38
38
  typedef struct grpc_tcp_listener grpc_tcp_listener;
39
39
  struct grpc_tcp_listener {
40
- uv_tcp_t *handle;
41
- grpc_tcp_server *server;
40
+ uv_tcp_t* handle;
41
+ grpc_tcp_server* server;
42
42
  unsigned port_index;
43
43
  int port;
44
44
  /* linked list */
45
- struct grpc_tcp_listener *next;
45
+ struct grpc_tcp_listener* next;
46
46
 
47
47
  bool closed;
48
48
 
@@ -54,37 +54,37 @@ struct grpc_tcp_server {
54
54
 
55
55
  /* Called whenever accept() succeeds on a server port. */
56
56
  grpc_tcp_server_cb on_accept_cb;
57
- void *on_accept_cb_arg;
57
+ void* on_accept_cb_arg;
58
58
 
59
59
  int open_ports;
60
60
 
61
61
  /* linked list of server ports */
62
- grpc_tcp_listener *head;
63
- grpc_tcp_listener *tail;
62
+ grpc_tcp_listener* head;
63
+ grpc_tcp_listener* tail;
64
64
 
65
65
  /* List of closures passed to shutdown_starting_add(). */
66
66
  grpc_closure_list shutdown_starting;
67
67
 
68
68
  /* shutdown callback */
69
- grpc_closure *shutdown_complete;
69
+ grpc_closure* shutdown_complete;
70
70
 
71
71
  bool shutdown;
72
72
 
73
- grpc_resource_quota *resource_quota;
73
+ grpc_resource_quota* resource_quota;
74
74
  };
75
75
 
76
- grpc_error *grpc_tcp_server_create(grpc_exec_ctx *exec_ctx,
77
- grpc_closure *shutdown_complete,
78
- const grpc_channel_args *args,
79
- grpc_tcp_server **server) {
80
- grpc_tcp_server *s = gpr_malloc(sizeof(grpc_tcp_server));
76
+ grpc_error* grpc_tcp_server_create(grpc_exec_ctx* exec_ctx,
77
+ grpc_closure* shutdown_complete,
78
+ const grpc_channel_args* args,
79
+ grpc_tcp_server** server) {
80
+ grpc_tcp_server* s = (grpc_tcp_server*)gpr_malloc(sizeof(grpc_tcp_server));
81
81
  s->resource_quota = grpc_resource_quota_create(NULL);
82
82
  for (size_t i = 0; i < (args == NULL ? 0 : args->num_args); i++) {
83
83
  if (0 == strcmp(GRPC_ARG_RESOURCE_QUOTA, args->args[i].key)) {
84
84
  if (args->args[i].type == GRPC_ARG_POINTER) {
85
85
  grpc_resource_quota_unref_internal(exec_ctx, s->resource_quota);
86
- s->resource_quota =
87
- grpc_resource_quota_ref_internal(args->args[i].value.pointer.p);
86
+ s->resource_quota = grpc_resource_quota_ref_internal(
87
+ (grpc_resource_quota*)args->args[i].value.pointer.p);
88
88
  } else {
89
89
  grpc_resource_quota_unref_internal(exec_ctx, s->resource_quota);
90
90
  gpr_free(s);
@@ -107,26 +107,26 @@ grpc_error *grpc_tcp_server_create(grpc_exec_ctx *exec_ctx,
107
107
  return GRPC_ERROR_NONE;
108
108
  }
109
109
 
110
- grpc_tcp_server *grpc_tcp_server_ref(grpc_tcp_server *s) {
110
+ grpc_tcp_server* grpc_tcp_server_ref(grpc_tcp_server* s) {
111
111
  GRPC_UV_ASSERT_SAME_THREAD();
112
112
  gpr_ref(&s->refs);
113
113
  return s;
114
114
  }
115
115
 
116
- void grpc_tcp_server_shutdown_starting_add(grpc_tcp_server *s,
117
- grpc_closure *shutdown_starting) {
116
+ void grpc_tcp_server_shutdown_starting_add(grpc_tcp_server* s,
117
+ grpc_closure* shutdown_starting) {
118
118
  grpc_closure_list_append(&s->shutdown_starting, shutdown_starting,
119
119
  GRPC_ERROR_NONE);
120
120
  }
121
121
 
122
- static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) {
122
+ static void finish_shutdown(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
123
123
  GPR_ASSERT(s->shutdown);
124
124
  if (s->shutdown_complete != NULL) {
125
125
  GRPC_CLOSURE_SCHED(exec_ctx, s->shutdown_complete, GRPC_ERROR_NONE);
126
126
  }
127
127
 
128
128
  while (s->head) {
129
- grpc_tcp_listener *sp = s->head;
129
+ grpc_tcp_listener* sp = s->head;
130
130
  s->head = sp->next;
131
131
  sp->next = NULL;
132
132
  gpr_free(sp->handle);
@@ -136,8 +136,8 @@ static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) {
136
136
  gpr_free(s);
137
137
  }
138
138
 
139
- static void handle_close_callback(uv_handle_t *handle) {
140
- grpc_tcp_listener *sp = (grpc_tcp_listener *)handle->data;
139
+ static void handle_close_callback(uv_handle_t* handle) {
140
+ grpc_tcp_listener* sp = (grpc_tcp_listener*)handle->data;
141
141
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
142
142
  sp->server->open_ports--;
143
143
  if (sp->server->open_ports == 0 && sp->server->shutdown) {
@@ -146,16 +146,16 @@ static void handle_close_callback(uv_handle_t *handle) {
146
146
  grpc_exec_ctx_finish(&exec_ctx);
147
147
  }
148
148
 
149
- static void close_listener(grpc_tcp_listener *sp) {
149
+ static void close_listener(grpc_tcp_listener* sp) {
150
150
  if (!sp->closed) {
151
151
  sp->closed = true;
152
- uv_close((uv_handle_t *)sp->handle, handle_close_callback);
152
+ uv_close((uv_handle_t*)sp->handle, handle_close_callback);
153
153
  }
154
154
  }
155
155
 
156
- static void tcp_server_destroy(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) {
156
+ static void tcp_server_destroy(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
157
157
  int immediately_done = 0;
158
- grpc_tcp_listener *sp;
158
+ grpc_tcp_listener* sp;
159
159
 
160
160
  GPR_ASSERT(!s->shutdown);
161
161
  s->shutdown = true;
@@ -172,7 +172,7 @@ static void tcp_server_destroy(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) {
172
172
  }
173
173
  }
174
174
 
175
- void grpc_tcp_server_unref(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) {
175
+ void grpc_tcp_server_unref(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
176
176
  GRPC_UV_ASSERT_SAME_THREAD();
177
177
  if (gpr_unref(&s->refs)) {
178
178
  /* Complete shutdown_starting work before destroying. */
@@ -189,30 +189,31 @@ void grpc_tcp_server_unref(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) {
189
189
  }
190
190
  }
191
191
 
192
- static void finish_accept(grpc_exec_ctx *exec_ctx, grpc_tcp_listener *sp) {
193
- grpc_tcp_server_acceptor *acceptor = gpr_malloc(sizeof(*acceptor));
194
- uv_tcp_t *client;
195
- grpc_endpoint *ep = NULL;
192
+ static void finish_accept(grpc_exec_ctx* exec_ctx, grpc_tcp_listener* sp) {
193
+ grpc_tcp_server_acceptor* acceptor =
194
+ (grpc_tcp_server_acceptor*)gpr_malloc(sizeof(*acceptor));
195
+ uv_tcp_t* client = NULL;
196
+ grpc_endpoint* ep = NULL;
196
197
  grpc_resolved_address peer_name;
197
- char *peer_name_string;
198
+ char* peer_name_string;
198
199
  int err;
199
- uv_tcp_t *server = sp->handle;
200
+ uv_tcp_t* server = sp->handle;
200
201
 
201
- client = gpr_malloc(sizeof(uv_tcp_t));
202
+ client = (uv_tcp_t*)gpr_malloc(sizeof(uv_tcp_t));
202
203
  uv_tcp_init(uv_default_loop(), client);
203
204
  // UV documentation says this is guaranteed to succeed
204
- uv_accept((uv_stream_t *)server, (uv_stream_t *)client);
205
+ uv_accept((uv_stream_t*)server, (uv_stream_t*)client);
205
206
  peer_name_string = NULL;
206
207
  memset(&peer_name, 0, sizeof(grpc_resolved_address));
207
208
  peer_name.len = sizeof(struct sockaddr_storage);
208
- err = uv_tcp_getpeername(client, (struct sockaddr *)&peer_name.addr,
209
- (int *)&peer_name.len);
209
+ err = uv_tcp_getpeername(client, (struct sockaddr*)&peer_name.addr,
210
+ (int*)&peer_name.len);
210
211
  if (err == 0) {
211
212
  peer_name_string = grpc_sockaddr_to_uri(&peer_name);
212
213
  } else {
213
214
  gpr_log(GPR_INFO, "uv_tcp_getpeername error: %s", uv_strerror(err));
214
215
  }
215
- if (GRPC_TRACER_ON(grpc_tcp_trace)) {
216
+ if (grpc_tcp_trace.enabled()) {
216
217
  if (peer_name_string) {
217
218
  gpr_log(GPR_DEBUG, "SERVER_CONNECT: %p accepted connection: %s",
218
219
  sp->server, peer_name_string);
@@ -229,8 +230,8 @@ static void finish_accept(grpc_exec_ctx *exec_ctx, grpc_tcp_listener *sp) {
229
230
  gpr_free(peer_name_string);
230
231
  }
231
232
 
232
- static void on_connect(uv_stream_t *server, int status) {
233
- grpc_tcp_listener *sp = (grpc_tcp_listener *)server->data;
233
+ static void on_connect(uv_stream_t* server, int status) {
234
+ grpc_tcp_listener* sp = (grpc_tcp_listener*)server->data;
234
235
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
235
236
 
236
237
  if (status < 0) {
@@ -246,7 +247,7 @@ static void on_connect(uv_stream_t *server, int status) {
246
247
 
247
248
  GPR_ASSERT(!sp->has_pending_connection);
248
249
 
249
- if (GRPC_TRACER_ON(grpc_tcp_trace)) {
250
+ if (grpc_tcp_trace.enabled()) {
250
251
  gpr_log(GPR_DEBUG, "SERVER_CONNECT: %p incoming connection", sp->server);
251
252
  }
252
253
 
@@ -259,18 +260,39 @@ static void on_connect(uv_stream_t *server, int status) {
259
260
  grpc_exec_ctx_finish(&exec_ctx);
260
261
  }
261
262
 
262
- static grpc_error *add_socket_to_server(grpc_tcp_server *s, uv_tcp_t *handle,
263
- const grpc_resolved_address *addr,
264
- unsigned port_index,
265
- grpc_tcp_listener **listener) {
266
- grpc_tcp_listener *sp = NULL;
263
+ static grpc_error* add_addr_to_server(grpc_tcp_server* s,
264
+ const grpc_resolved_address* addr,
265
+ unsigned port_index,
266
+ grpc_tcp_listener** listener) {
267
+ grpc_tcp_listener* sp = NULL;
267
268
  int port = -1;
268
269
  int status;
269
- grpc_error *error;
270
+ grpc_error* error;
270
271
  grpc_resolved_address sockname_temp;
272
+ uv_tcp_t* handle = (uv_tcp_t*)gpr_malloc(sizeof(uv_tcp_t));
273
+ int family = grpc_sockaddr_get_family(addr);
274
+
275
+ status = uv_tcp_init_ex(uv_default_loop(), handle, (unsigned int)family);
276
+ #if defined(GPR_LINUX) && defined(SO_REUSEPORT)
277
+ if (family == AF_INET || family == AF_INET6) {
278
+ int fd;
279
+ uv_fileno((uv_handle_t*)handle, &fd);
280
+ int enable = 1;
281
+ setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &enable, sizeof(enable));
282
+ }
283
+ #endif /* GPR_LINUX && SO_REUSEPORT */
284
+
285
+ if (status != 0) {
286
+ error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
287
+ "Failed to initialize UV tcp handle");
288
+ error =
289
+ grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR,
290
+ grpc_slice_from_static_string(uv_strerror(status)));
291
+ return error;
292
+ }
271
293
 
272
294
  // The last argument to uv_tcp_bind is flags
273
- status = uv_tcp_bind(handle, (struct sockaddr *)addr->addr, 0);
295
+ status = uv_tcp_bind(handle, (struct sockaddr*)addr->addr, 0);
274
296
  if (status != 0) {
275
297
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Failed to bind to port");
276
298
  error =
@@ -279,7 +301,7 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, uv_tcp_t *handle,
279
301
  return error;
280
302
  }
281
303
 
282
- status = uv_listen((uv_stream_t *)handle, SOMAXCONN, on_connect);
304
+ status = uv_listen((uv_stream_t*)handle, SOMAXCONN, on_connect);
283
305
  if (status != 0) {
284
306
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Failed to listen to port");
285
307
  error =
@@ -289,8 +311,8 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, uv_tcp_t *handle,
289
311
  }
290
312
 
291
313
  sockname_temp.len = (int)sizeof(struct sockaddr_storage);
292
- status = uv_tcp_getsockname(handle, (struct sockaddr *)&sockname_temp.addr,
293
- (int *)&sockname_temp.len);
314
+ status = uv_tcp_getsockname(handle, (struct sockaddr*)&sockname_temp.addr,
315
+ (int*)&sockname_temp.len);
294
316
  if (status != 0) {
295
317
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("getsockname failed");
296
318
  error =
@@ -303,7 +325,7 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, uv_tcp_t *handle,
303
325
 
304
326
  GPR_ASSERT(port >= 0);
305
327
  GPR_ASSERT(!s->on_accept_cb && "must add ports before starting server");
306
- sp = gpr_zalloc(sizeof(grpc_tcp_listener));
328
+ sp = (grpc_tcp_listener*)gpr_zalloc(sizeof(grpc_tcp_listener));
307
329
  sp->next = NULL;
308
330
  if (s->head == NULL) {
309
331
  s->head = sp;
@@ -324,20 +346,48 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, uv_tcp_t *handle,
324
346
  return GRPC_ERROR_NONE;
325
347
  }
326
348
 
327
- grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s,
328
- const grpc_resolved_address *addr,
329
- int *port) {
349
+ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
350
+ unsigned port_index,
351
+ int requested_port,
352
+ grpc_tcp_listener** listener) {
353
+ grpc_resolved_address wild4;
354
+ grpc_resolved_address wild6;
355
+ grpc_tcp_listener* sp = nullptr;
356
+ grpc_tcp_listener* sp2 = nullptr;
357
+ grpc_error* v6_err = GRPC_ERROR_NONE;
358
+ grpc_error* v4_err = GRPC_ERROR_NONE;
359
+
360
+ grpc_sockaddr_make_wildcards(requested_port, &wild4, &wild6);
361
+ /* Try listening on IPv6 first. */
362
+ if ((v6_err = add_addr_to_server(s, &wild6, port_index, &sp)) ==
363
+ GRPC_ERROR_NONE) {
364
+ *listener = sp;
365
+ return GRPC_ERROR_NONE;
366
+ }
367
+
368
+ if ((v4_err = add_addr_to_server(s, &wild4, port_index, &sp2)) ==
369
+ GRPC_ERROR_NONE) {
370
+ *listener = sp2;
371
+ return GRPC_ERROR_NONE;
372
+ }
373
+
374
+ grpc_error* root_err = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
375
+ "Failed to add any wildcard listeners");
376
+ root_err = grpc_error_add_child(root_err, v6_err);
377
+ root_err = grpc_error_add_child(root_err, v4_err);
378
+ return root_err;
379
+ }
380
+
381
+ grpc_error* grpc_tcp_server_add_port(grpc_tcp_server* s,
382
+ const grpc_resolved_address* addr,
383
+ int* port) {
330
384
  // This function is mostly copied from tcp_server_windows.c
331
- grpc_tcp_listener *sp = NULL;
332
- uv_tcp_t *handle;
385
+ grpc_tcp_listener* sp = NULL;
333
386
  grpc_resolved_address addr6_v4mapped;
334
- grpc_resolved_address wildcard;
335
- grpc_resolved_address *allocated_addr = NULL;
387
+ grpc_resolved_address* allocated_addr = NULL;
336
388
  grpc_resolved_address sockname_temp;
337
389
  unsigned port_index = 0;
338
- int status;
339
- grpc_error *error = GRPC_ERROR_NONE;
340
- int family;
390
+ grpc_error* error = GRPC_ERROR_NONE;
341
391
 
342
392
  GRPC_UV_ASSERT_SAME_THREAD();
343
393
 
@@ -351,11 +401,12 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s,
351
401
  for (sp = s->head; sp; sp = sp->next) {
352
402
  sockname_temp.len = sizeof(struct sockaddr_storage);
353
403
  if (0 == uv_tcp_getsockname(sp->handle,
354
- (struct sockaddr *)&sockname_temp.addr,
355
- (int *)&sockname_temp.len)) {
404
+ (struct sockaddr*)&sockname_temp.addr,
405
+ (int*)&sockname_temp.len)) {
356
406
  *port = grpc_sockaddr_get_port(&sockname_temp);
357
407
  if (*port > 0) {
358
- allocated_addr = gpr_malloc(sizeof(grpc_resolved_address));
408
+ allocated_addr =
409
+ (grpc_resolved_address*)gpr_malloc(sizeof(grpc_resolved_address));
359
410
  memcpy(allocated_addr, addr, sizeof(grpc_resolved_address));
360
411
  grpc_sockaddr_set_port(allocated_addr, *port);
361
412
  addr = allocated_addr;
@@ -365,46 +416,23 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s,
365
416
  }
366
417
  }
367
418
 
368
- if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) {
369
- addr = &addr6_v4mapped;
370
- }
371
-
372
419
  /* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */
373
420
  if (grpc_sockaddr_is_wildcard(addr, port)) {
374
- grpc_sockaddr_make_wildcard6(*port, &wildcard);
375
-
376
- addr = &wildcard;
377
- }
378
-
379
- handle = gpr_malloc(sizeof(uv_tcp_t));
380
-
381
- family = grpc_sockaddr_get_family(addr);
382
- status = uv_tcp_init_ex(uv_default_loop(), handle, (unsigned int)family);
383
- #if defined(GPR_LINUX) && defined(SO_REUSEPORT)
384
- if (family == AF_INET || family == AF_INET6) {
385
- int fd;
386
- uv_fileno((uv_handle_t *)handle, &fd);
387
- int enable = 1;
388
- setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &enable, sizeof(enable));
389
- }
390
- #endif /* GPR_LINUX && SO_REUSEPORT */
391
-
392
- if (status == 0) {
393
- error = add_socket_to_server(s, handle, addr, port_index, &sp);
421
+ error = add_wildcard_addrs_to_server(s, port_index, *port, &sp);
394
422
  } else {
395
- error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
396
- "Failed to initialize UV tcp handle");
397
- error =
398
- grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR,
399
- grpc_slice_from_static_string(uv_strerror(status)));
423
+ if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) {
424
+ addr = &addr6_v4mapped;
425
+ }
426
+
427
+ error = add_addr_to_server(s, addr, port_index, &sp);
400
428
  }
401
429
 
402
430
  gpr_free(allocated_addr);
403
431
 
404
- if (GRPC_TRACER_ON(grpc_tcp_trace)) {
405
- char *port_string;
432
+ if (grpc_tcp_trace.enabled()) {
433
+ char* port_string;
406
434
  grpc_sockaddr_to_string(&port_string, addr, 0);
407
- const char *str = grpc_error_string(error);
435
+ const char* str = grpc_error_string(error);
408
436
  if (port_string) {
409
437
  gpr_log(GPR_DEBUG, "SERVER %p add_port %s error=%s", s, port_string, str);
410
438
  gpr_free(port_string);
@@ -414,7 +442,7 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s,
414
442
  }
415
443
 
416
444
  if (error != GRPC_ERROR_NONE) {
417
- grpc_error *error_out = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
445
+ grpc_error* error_out = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
418
446
  "Failed to add port to server", &error, 1);
419
447
  GRPC_ERROR_UNREF(error);
420
448
  error = error_out;
@@ -426,14 +454,14 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s,
426
454
  return error;
427
455
  }
428
456
 
429
- void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *server,
430
- grpc_pollset **pollsets, size_t pollset_count,
431
- grpc_tcp_server_cb on_accept_cb, void *cb_arg) {
432
- grpc_tcp_listener *sp;
457
+ void grpc_tcp_server_start(grpc_exec_ctx* exec_ctx, grpc_tcp_server* server,
458
+ grpc_pollset** pollsets, size_t pollset_count,
459
+ grpc_tcp_server_cb on_accept_cb, void* cb_arg) {
460
+ grpc_tcp_listener* sp;
433
461
  (void)pollsets;
434
462
  (void)pollset_count;
435
463
  GRPC_UV_ASSERT_SAME_THREAD();
436
- if (GRPC_TRACER_ON(grpc_tcp_trace)) {
464
+ if (grpc_tcp_trace.enabled()) {
437
465
  gpr_log(GPR_DEBUG, "SERVER_START %p", server);
438
466
  }
439
467
  GPR_ASSERT(on_accept_cb);
@@ -448,7 +476,7 @@ void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *server,
448
476
  }
449
477
  }
450
478
 
451
- void grpc_tcp_server_shutdown_listeners(grpc_exec_ctx *exec_ctx,
452
- grpc_tcp_server *s) {}
479
+ void grpc_tcp_server_shutdown_listeners(grpc_exec_ctx* exec_ctx,
480
+ grpc_tcp_server* s) {}
453
481
 
454
482
  #endif /* GRPC_UV */