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.
- checksums.yaml +4 -4
- data/Makefile +2106 -2116
- data/include/grpc/census.h +1 -432
- data/include/grpc/compression.h +9 -9
- data/include/grpc/grpc.h +115 -98
- data/include/grpc/grpc_cronet.h +3 -3
- data/include/grpc/grpc_posix.h +4 -4
- data/include/grpc/grpc_security.h +160 -88
- data/include/grpc/grpc_security_constants.h +7 -0
- data/include/grpc/impl/codegen/atm.h +9 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
- data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
- data/include/grpc/impl/codegen/atm_windows.h +23 -22
- data/include/grpc/impl/codegen/byte_buffer.h +14 -14
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +32 -28
- data/include/grpc/impl/codegen/port_platform.h +48 -0
- data/include/grpc/impl/codegen/slice.h +10 -10
- data/include/grpc/impl/codegen/sync_generic.h +9 -3
- data/include/grpc/slice.h +16 -17
- data/include/grpc/slice_buffer.h +22 -22
- data/include/grpc/support/alloc.h +11 -11
- data/include/grpc/support/avl.h +28 -20
- data/include/grpc/support/cmdline.h +13 -13
- data/include/grpc/support/histogram.h +17 -17
- data/include/grpc/support/host_port.h +2 -2
- data/include/grpc/support/log.h +9 -9
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/string_util.h +2 -2
- data/include/grpc/support/subprocess.h +5 -5
- data/include/grpc/support/sync.h +43 -27
- data/include/grpc/support/thd.h +6 -6
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_pthread.h +1 -1
- data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
- data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
- data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
- data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
- data/src/core/ext/filters/client_channel/client_channel.h +16 -8
- data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
- data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
- data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
- data/src/core/ext/filters/client_channel/connector.h +29 -21
- data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
- data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
- data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
- data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
- data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
- data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
- data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
- data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
- data/src/core/ext/filters/client_channel/parse_address.h +14 -6
- data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
- data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
- data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
- data/src/core/ext/filters/client_channel/resolver.h +33 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
- 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
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
- data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
- data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
- data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
- data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
- data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
- data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
- data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
- data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
- data/src/core/ext/filters/client_channel/subchannel.h +68 -60
- data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
- data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
- data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
- data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
- data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
- data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
- data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
- data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
- data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
- data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
- data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
- data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
- data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
- data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
- data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
- data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
- data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
- data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
- data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
- data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
- data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
- data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
- data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
- data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
- data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
- data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
- data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
- data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
- data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
- data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
- data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
- data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
- data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
- data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
- data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
- data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
- data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
- data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
- data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
- data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
- data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
- data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
- data/src/core/lib/backoff/backoff.cc +80 -0
- data/src/core/lib/backoff/backoff.h +83 -0
- data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
- data/src/core/lib/channel/channel_args.h +45 -37
- data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
- data/src/core/lib/channel/channel_stack.h +76 -75
- data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
- data/src/core/lib/channel/channel_stack_builder.h +45 -45
- data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
- data/src/core/lib/channel/connected_channel.h +12 -4
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
- data/src/core/lib/channel/handshaker.h +9 -1
- data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
- data/src/core/lib/channel/handshaker_factory.h +18 -10
- data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
- data/src/core/lib/channel/handshaker_registry.h +8 -0
- data/src/core/lib/compression/algorithm_metadata.h +8 -0
- data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
- data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
- data/src/core/lib/compression/message_compress.h +8 -0
- data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
- data/src/core/lib/compression/stream_compression.h +27 -19
- data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
- data/src/core/lib/compression/stream_compression_gzip.h +8 -0
- data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
- data/src/core/lib/compression/stream_compression_identity.h +8 -0
- data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
- data/src/core/lib/debug/stats.h +17 -9
- data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
- data/src/core/lib/debug/stats_data.h +58 -19
- data/src/core/lib/debug/trace.cc +142 -0
- data/src/core/lib/debug/trace.h +74 -14
- data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
- data/src/core/lib/http/format_request.h +12 -4
- data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
- data/src/core/lib/http/httpcli.h +41 -33
- data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
- data/src/core/lib/http/{parser.c → parser.cc} +42 -42
- data/src/core/lib/http/parser.h +28 -20
- data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
- data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
- data/src/core/lib/iomgr/call_combiner.h +9 -1
- data/src/core/lib/iomgr/closure.h +220 -62
- data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
- data/src/core/lib/iomgr/combiner.h +16 -8
- data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
- data/src/core/lib/iomgr/endpoint.h +47 -32
- data/src/core/lib/iomgr/endpoint_pair.h +12 -4
- data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
- data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
- data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
- data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
- data/src/core/lib/iomgr/error.h +32 -27
- data/src/core/lib/iomgr/error_internal.h +11 -2
- data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
- data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
- data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
- data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
- data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
- data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
- data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
- data/src/core/lib/iomgr/ev_posix.cc +288 -0
- data/src/core/lib/iomgr/ev_posix.h +75 -67
- data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +177 -0
- data/src/core/lib/iomgr/exec_ctx.h +35 -13
- data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
- data/src/core/lib/iomgr/executor.h +12 -4
- data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
- data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
- data/src/core/lib/iomgr/gethostname.h +9 -1
- data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
- data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
- data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
- data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
- data/src/core/lib/iomgr/iocp_windows.h +17 -3
- data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
- data/src/core/lib/iomgr/iomgr.h +11 -3
- data/src/core/lib/iomgr/iomgr_internal.h +13 -5
- data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
- data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
- data/src/core/lib/iomgr/iomgr_uv.h +8 -0
- data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
- data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
- data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
- data/src/core/lib/iomgr/lockfree_event.h +30 -11
- data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
- data/src/core/lib/iomgr/network_status_tracker.h +2 -2
- data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
- data/src/core/lib/iomgr/polling_entity.h +21 -13
- data/src/core/lib/iomgr/pollset.h +17 -11
- data/src/core/lib/iomgr/pollset_set.h +23 -15
- data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
- data/src/core/lib/iomgr/pollset_uv.h +8 -0
- data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
- data/src/core/lib/iomgr/pollset_windows.h +17 -4
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.h +18 -10
- data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
- data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
- data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
- data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
- data/src/core/lib/iomgr/resource_quota.h +45 -37
- data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
- data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
- data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
- data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
- data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
- data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
- data/src/core/lib/iomgr/socket_mutator.h +11 -11
- data/src/core/lib/iomgr/socket_utils.h +9 -1
- data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
- data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
- data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
- data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
- data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
- data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
- data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
- data/src/core/lib/iomgr/socket_windows.h +26 -13
- data/src/core/lib/iomgr/tcp_client.h +14 -6
- data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
- data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
- data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
- data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
- data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
- data/src/core/lib/iomgr/tcp_posix.h +15 -7
- data/src/core/lib/iomgr/tcp_server.h +31 -23
- data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
- data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
- data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
- data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
- data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
- data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
- data/src/core/lib/iomgr/tcp_uv.cc +420 -0
- data/src/core/lib/iomgr/tcp_uv.h +18 -4
- data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
- data/src/core/lib/iomgr/tcp_windows.h +17 -4
- data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
- data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
- data/src/core/lib/iomgr/timer.h +16 -9
- data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
- data/src/core/lib/iomgr/timer_generic.h +4 -4
- data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
- data/src/core/lib/iomgr/timer_heap.h +16 -8
- data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
- data/src/core/lib/iomgr/timer_manager.h +8 -0
- data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
- data/src/core/lib/iomgr/timer_uv.h +2 -2
- data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
- data/src/core/lib/iomgr/udp_server.h +25 -17
- data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
- data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
- data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
- data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
- data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
- data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
- data/src/core/lib/json/{json.c → json.cc} +0 -0
- data/src/core/lib/json/json.h +8 -0
- data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
- data/src/core/lib/json/json_reader.h +26 -18
- data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
- data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
- data/src/core/lib/json/json_writer.h +23 -15
- data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
- data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
- data/src/core/lib/profiling/timers.h +6 -6
- data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
- data/src/core/lib/security/context/security_context.h +27 -29
- data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
- data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
- data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
- data/src/core/lib/security/credentials/credentials.h +83 -75
- data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
- data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
- data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
- data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
- data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
- data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
- data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
- data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
- data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
- data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
- data/src/core/lib/security/transport/auth_filters.h +16 -0
- data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
- data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
- data/src/core/lib/security/transport/lb_targets_info.h +11 -3
- data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
- data/src/core/lib/security/transport/secure_endpoint.h +13 -5
- data/src/core/lib/security/transport/security_connector.cc +1121 -0
- data/src/core/lib/security/transport/security_connector.h +97 -79
- data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
- data/src/core/lib/security/transport/security_handshaker.h +11 -3
- data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
- data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
- data/src/core/lib/security/transport/tsi_error.h +9 -1
- data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
- data/src/core/lib/security/util/json_util.h +12 -4
- data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
- data/src/core/lib/slice/b64.h +12 -4
- data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
- data/src/core/lib/slice/percent_encoding.h +11 -3
- data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
- data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
- data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
- data/src/core/lib/slice/slice_hash_table.h +19 -11
- data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
- data/src/core/lib/slice/slice_internal.h +17 -6
- data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
- data/src/core/lib/slice/slice_string_helpers.h +3 -3
- data/src/core/lib/support/abstract.h +29 -0
- data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
- data/src/core/lib/support/{arena.c → arena.cc} +12 -12
- data/src/core/lib/support/arena.h +11 -3
- data/src/core/lib/support/{atm.c → atm.cc} +1 -1
- data/src/core/lib/support/{avl.c → avl.cc} +71 -70
- data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
- data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
- data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
- data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
- data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
- data/src/core/lib/support/env.h +3 -3
- data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
- data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
- data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
- data/src/core/lib/support/{fork.c → fork.cc} +2 -2
- data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
- data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
- data/src/core/lib/support/{log.c → log.cc} +8 -8
- data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
- data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
- data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
- data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
- data/src/core/lib/support/manual_constructor.h +211 -0
- data/src/core/lib/support/memory.h +41 -0
- data/src/core/lib/support/mpscq.cc +114 -0
- data/src/core/lib/support/mpscq.h +45 -7
- data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
- data/src/core/lib/support/murmur_hash.h +9 -1
- data/src/core/lib/support/spinlock.h +8 -1
- data/src/core/lib/support/{string.c → string.cc} +56 -55
- data/src/core/lib/support/string.h +21 -21
- data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
- data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
- data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
- data/src/core/lib/support/string_windows.h +8 -0
- data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
- data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
- data/src/core/lib/support/{sync.c → sync.cc} +22 -22
- data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
- data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
- data/src/core/lib/support/{thd.c → thd.cc} +0 -0
- data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
- data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
- data/src/core/lib/support/{time.c → time.cc} +0 -0
- data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
- data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
- data/src/core/lib/support/time_precise.h +9 -1
- data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
- data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
- data/src/core/lib/support/tmpfile.h +1 -1
- data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
- data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
- data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
- data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
- data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
- data/src/core/lib/surface/alarm_internal.h +10 -2
- data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
- data/src/core/lib/surface/api_trace.h +2 -2
- data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
- data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
- data/src/core/lib/surface/{call.c → call.cc} +379 -372
- data/src/core/lib/surface/call.h +37 -38
- data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
- data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
- data/src/core/lib/surface/call_test_only.h +5 -5
- data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
- data/src/core/lib/surface/channel.h +29 -21
- data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
- data/src/core/lib/surface/channel_init.h +6 -6
- data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
- data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
- data/src/core/lib/surface/channel_stack_type.h +9 -1
- data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
- data/src/core/lib/surface/completion_queue.h +29 -29
- data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
- data/src/core/lib/surface/completion_queue_factory.h +8 -0
- data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
- data/src/core/lib/surface/event_string.h +9 -1
- data/src/core/lib/surface/{init.c → init.cc} +16 -39
- data/src/core/lib/surface/init.h +8 -0
- data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
- data/src/core/lib/surface/lame_client.cc +38 -40
- data/src/core/lib/surface/lame_client.h +8 -0
- data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
- data/src/core/lib/surface/{server.c → server.cc} +340 -404
- data/src/core/lib/surface/server.h +22 -14
- data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
- data/src/core/lib/surface/validate_metadata.h +10 -2
- data/src/core/lib/surface/{version.c → version.cc} +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +84 -0
- data/src/core/lib/transport/bdp_estimator.h +67 -42
- data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
- data/src/core/lib/transport/byte_stream.h +41 -33
- data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
- data/src/core/lib/transport/connectivity_state.h +29 -21
- data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
- data/src/core/lib/transport/error_utils.h +18 -6
- data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
- data/src/core/lib/transport/metadata.h +22 -20
- data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
- data/src/core/lib/transport/metadata_batch.h +46 -45
- data/src/core/lib/transport/pid_controller.cc +48 -0
- data/src/core/lib/transport/pid_controller.h +84 -32
- data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
- data/src/core/lib/transport/service_config.h +11 -2
- data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
- data/src/core/lib/transport/static_metadata.h +30 -23
- data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
- data/src/core/lib/transport/status_conversion.h +12 -2
- data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
- data/src/core/lib/transport/timeout_encoding.h +11 -2
- data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
- data/src/core/lib/transport/transport.h +78 -80
- data/src/core/lib/transport/transport_impl.h +27 -19
- data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
- data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
- data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
- data/src/core/tsi/fake_transport_security.h +5 -5
- data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
- data/src/core/tsi/gts_transport_security.h +11 -3
- data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
- data/src/core/tsi/ssl_transport_security.h +25 -25
- data/src/core/tsi/ssl_types.h +8 -0
- data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
- data/src/core/tsi/transport_security.h +55 -55
- data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
- data/src/core/tsi/transport_security_adapter.h +2 -2
- data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
- data/src/core/tsi/transport_security_grpc.h +19 -19
- data/src/core/tsi/transport_security_interface.h +41 -41
- data/src/ruby/ext/grpc/extconf.rb +4 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
- data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
- data/src/ruby/ext/grpc/rb_call.c +41 -42
- data/src/ruby/ext/grpc/rb_call.h +6 -6
- data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
- data/src/ruby/ext/grpc/rb_channel.c +87 -87
- data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
- data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
- data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
- data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
- data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +8 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
- data/src/ruby/ext/grpc/rb_server.c +23 -23
- data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
- data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/checker.rb +14 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
- data/third_party/cares/config_freebsd/ares_config.h +502 -0
- data/third_party/cares/config_openbsd/ares_config.h +502 -0
- metadata +302 -328
- data/src/core/ext/census/aggregation.h +0 -51
- data/src/core/ext/census/base_resources.c +0 -56
- data/src/core/ext/census/base_resources.h +0 -24
- data/src/core/ext/census/census_interface.h +0 -61
- data/src/core/ext/census/census_rpc_stats.h +0 -86
- data/src/core/ext/census/context.c +0 -496
- data/src/core/ext/census/gen/census.pb.c +0 -161
- data/src/core/ext/census/gen/census.pb.h +0 -280
- data/src/core/ext/census/gen/trace_context.pb.c +0 -39
- data/src/core/ext/census/gen/trace_context.pb.h +0 -78
- data/src/core/ext/census/grpc_filter.c +0 -196
- data/src/core/ext/census/grpc_plugin.c +0 -70
- data/src/core/ext/census/initialize.c +0 -51
- data/src/core/ext/census/intrusive_hash_map.c +0 -305
- data/src/core/ext/census/intrusive_hash_map.h +0 -152
- data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
- data/src/core/ext/census/mlog.c +0 -586
- data/src/core/ext/census/mlog.h +0 -80
- data/src/core/ext/census/operation.c +0 -48
- data/src/core/ext/census/placeholders.c +0 -49
- data/src/core/ext/census/resource.c +0 -303
- data/src/core/ext/census/resource.h +0 -48
- data/src/core/ext/census/rpc_metric_id.h +0 -36
- data/src/core/ext/census/trace_context.c +0 -71
- data/src/core/ext/census/trace_context.h +0 -56
- data/src/core/ext/census/trace_label.h +0 -46
- data/src/core/ext/census/trace_propagation.h +0 -48
- data/src/core/ext/census/trace_status.h +0 -30
- data/src/core/ext/census/trace_string.h +0 -35
- data/src/core/ext/census/tracing.c +0 -55
- data/src/core/ext/census/tracing.h +0 -109
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
- data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
- data/src/core/lib/debug/trace.c +0 -146
- data/src/core/lib/iomgr/closure.c +0 -219
- data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
- data/src/core/lib/iomgr/ev_posix.c +0 -266
- data/src/core/lib/iomgr/exec_ctx.c +0 -113
- data/src/core/lib/iomgr/tcp_uv.c +0 -381
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
- data/src/core/lib/security/transport/security_connector.c +0 -914
- data/src/core/lib/support/backoff.c +0 -72
- data/src/core/lib/support/backoff.h +0 -56
- data/src/core/lib/support/mpscq.c +0 -79
- data/src/core/lib/support/stack_lockfree.c +0 -137
- data/src/core/lib/support/stack_lockfree.h +0 -38
- data/src/core/lib/transport/bdp_estimator.c +0 -110
- 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
|
31
|
-
grpc_tcp_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
|
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
|
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
|
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
|
74
|
-
grpc_tcp_listener
|
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
|
85
|
+
grpc_closure* shutdown_complete;
|
82
86
|
|
83
87
|
/* all pollsets interested in new connections */
|
84
|
-
grpc_pollset
|
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
|
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
|
98
|
-
const grpc_resolved_address
|
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
|
101
|
-
grpc_tcp_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
|
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
|
115
|
+
int* out_port);
|
112
116
|
|
113
117
|
/* Prepare a recently-created socket for listening. */
|
114
|
-
grpc_error
|
115
|
-
const grpc_resolved_address
|
116
|
-
bool so_reuseport, int
|
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 */
|
data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc}
RENAMED
@@ -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
|
50
|
-
if (fp ==
|
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
|
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
|
79
|
-
const grpc_resolved_address
|
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
|
82
|
-
grpc_tcp_listener
|
81
|
+
grpc_tcp_listener** listener) {
|
82
|
+
grpc_tcp_listener* sp = nullptr;
|
83
83
|
int port = -1;
|
84
|
-
char
|
85
|
-
char
|
84
|
+
char* addr_str;
|
85
|
+
char* name;
|
86
86
|
|
87
|
-
grpc_error
|
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
|
97
|
-
sp->next =
|
98
|
-
if (s->head ==
|
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 =
|
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
|
126
|
-
const grpc_resolved_address
|
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
|
129
|
-
grpc_tcp_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
|
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
|
146
|
-
const grpc_resolved_address
|
147
|
-
bool so_reuseport, int
|
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
|
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
|
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
|
185
|
-
(socklen_t
|
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
|
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);
|
data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc}
RENAMED
@@ -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
|
40
|
-
grpc_resolved_address
|
41
|
-
grpc_tcp_listener
|
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 !=
|
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
|
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
|
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
|
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
|
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
|
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
|
90
|
-
struct ifaddrs
|
91
|
-
struct ifaddrs
|
89
|
+
int* out_port) {
|
90
|
+
struct ifaddrs* ifa = nullptr;
|
91
|
+
struct ifaddrs* ifa_it;
|
92
92
|
unsigned fd_index = 0;
|
93
|
-
grpc_tcp_listener
|
94
|
-
grpc_error
|
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 ==
|
107
|
+
if (getifaddrs(&ifa) != 0 || ifa == nullptr) {
|
108
108
|
return GRPC_OS_ERROR(errno, "getifaddrs");
|
109
109
|
}
|
110
|
-
for (ifa_it = ifa; ifa_it !=
|
110
|
+
for (ifa_it = ifa; ifa_it != nullptr; ifa_it = ifa_it->ifa_next) {
|
111
111
|
grpc_resolved_address addr;
|
112
|
-
char
|
112
|
+
char* addr_str = nullptr;
|
113
113
|
grpc_dualstack_mode dsmode;
|
114
|
-
grpc_tcp_listener
|
115
|
-
const char
|
116
|
-
if (ifa_it->ifa_addr ==
|
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) !=
|
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
|
148
|
-
grpc_error
|
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 !=
|
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 ==
|
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;
|
data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc}
RENAMED
@@ -22,10 +22,10 @@
|
|
22
22
|
|
23
23
|
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
24
24
|
|
25
|
-
grpc_error
|
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
|
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
|
41
|
-
grpc_tcp_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
|
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
|
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
|
63
|
-
grpc_tcp_listener
|
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
|
69
|
+
grpc_closure* shutdown_complete;
|
70
70
|
|
71
71
|
bool shutdown;
|
72
72
|
|
73
|
-
grpc_resource_quota
|
73
|
+
grpc_resource_quota* resource_quota;
|
74
74
|
};
|
75
75
|
|
76
|
-
grpc_error
|
77
|
-
grpc_closure
|
78
|
-
const grpc_channel_args
|
79
|
-
grpc_tcp_server
|
80
|
-
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
|
-
|
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
|
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
|
117
|
-
grpc_closure
|
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
|
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
|
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
|
140
|
-
grpc_tcp_listener
|
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
|
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
|
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
|
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
|
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
|
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
|
193
|
-
grpc_tcp_server_acceptor
|
194
|
-
|
195
|
-
|
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
|
198
|
+
char* peer_name_string;
|
198
199
|
int err;
|
199
|
-
uv_tcp_t
|
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
|
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
|
209
|
-
(int
|
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 (
|
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
|
233
|
-
grpc_tcp_listener
|
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 (
|
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
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
grpc_tcp_listener
|
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
|
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
|
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
|
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
|
293
|
-
(int
|
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
|
328
|
-
|
329
|
-
|
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
|
332
|
-
uv_tcp_t *handle;
|
385
|
+
grpc_tcp_listener* sp = NULL;
|
333
386
|
grpc_resolved_address addr6_v4mapped;
|
334
|
-
grpc_resolved_address
|
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
|
-
|
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
|
355
|
-
(int
|
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 =
|
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
|
-
|
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
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
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 (
|
405
|
-
char
|
432
|
+
if (grpc_tcp_trace.enabled()) {
|
433
|
+
char* port_string;
|
406
434
|
grpc_sockaddr_to_string(&port_string, addr, 0);
|
407
|
-
const char
|
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
|
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
|
430
|
-
grpc_pollset
|
431
|
-
grpc_tcp_server_cb on_accept_cb, void
|
432
|
-
grpc_tcp_listener
|
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 (
|
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
|
452
|
-
grpc_tcp_server
|
479
|
+
void grpc_tcp_server_shutdown_listeners(grpc_exec_ctx* exec_ctx,
|
480
|
+
grpc_tcp_server* s) {}
|
453
481
|
|
454
482
|
#endif /* GRPC_UV */
|