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
@@ -22,58 +22,60 @@
|
|
22
22
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
23
23
|
#include "src/core/lib/iomgr/iomgr.h"
|
24
24
|
|
25
|
+
#ifdef __cplusplus
|
26
|
+
extern "C" {
|
27
|
+
#endif
|
28
|
+
|
25
29
|
typedef struct grpc_resolver grpc_resolver;
|
26
30
|
typedef struct grpc_resolver_vtable grpc_resolver_vtable;
|
27
31
|
|
28
|
-
|
29
|
-
extern grpc_tracer_flag grpc_trace_resolver_refcount;
|
30
|
-
#endif
|
32
|
+
extern grpc_core::DebugOnlyTraceFlag grpc_trace_resolver_refcount;
|
31
33
|
|
32
34
|
/** \a grpc_resolver provides \a grpc_channel_args objects to its caller */
|
33
35
|
struct grpc_resolver {
|
34
|
-
const grpc_resolver_vtable
|
36
|
+
const grpc_resolver_vtable* vtable;
|
35
37
|
gpr_refcount refs;
|
36
|
-
grpc_combiner
|
38
|
+
grpc_combiner* combiner;
|
37
39
|
};
|
38
40
|
|
39
41
|
struct grpc_resolver_vtable {
|
40
|
-
void (*destroy)(grpc_exec_ctx
|
41
|
-
void (*shutdown_locked)(grpc_exec_ctx
|
42
|
-
void (*channel_saw_error_locked)(grpc_exec_ctx
|
43
|
-
grpc_resolver
|
44
|
-
void (*next_locked)(grpc_exec_ctx
|
45
|
-
grpc_channel_args
|
42
|
+
void (*destroy)(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver);
|
43
|
+
void (*shutdown_locked)(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver);
|
44
|
+
void (*channel_saw_error_locked)(grpc_exec_ctx* exec_ctx,
|
45
|
+
grpc_resolver* resolver);
|
46
|
+
void (*next_locked)(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
|
47
|
+
grpc_channel_args** result, grpc_closure* on_complete);
|
46
48
|
};
|
47
49
|
|
48
50
|
#ifndef NDEBUG
|
49
51
|
#define GRPC_RESOLVER_REF(p, r) grpc_resolver_ref((p), __FILE__, __LINE__, (r))
|
50
52
|
#define GRPC_RESOLVER_UNREF(e, p, r) \
|
51
53
|
grpc_resolver_unref((e), (p), __FILE__, __LINE__, (r))
|
52
|
-
void grpc_resolver_ref(grpc_resolver
|
53
|
-
const char
|
54
|
-
void grpc_resolver_unref(grpc_exec_ctx
|
55
|
-
const char
|
54
|
+
void grpc_resolver_ref(grpc_resolver* policy, const char* file, int line,
|
55
|
+
const char* reason);
|
56
|
+
void grpc_resolver_unref(grpc_exec_ctx* exec_ctx, grpc_resolver* policy,
|
57
|
+
const char* file, int line, const char* reason);
|
56
58
|
#else
|
57
59
|
#define GRPC_RESOLVER_REF(p, r) grpc_resolver_ref((p))
|
58
60
|
#define GRPC_RESOLVER_UNREF(e, p, r) grpc_resolver_unref((e), (p))
|
59
|
-
void grpc_resolver_ref(grpc_resolver
|
60
|
-
void grpc_resolver_unref(grpc_exec_ctx
|
61
|
+
void grpc_resolver_ref(grpc_resolver* policy);
|
62
|
+
void grpc_resolver_unref(grpc_exec_ctx* exec_ctx, grpc_resolver* policy);
|
61
63
|
#endif
|
62
64
|
|
63
|
-
void grpc_resolver_init(grpc_resolver
|
64
|
-
const grpc_resolver_vtable
|
65
|
-
grpc_combiner
|
65
|
+
void grpc_resolver_init(grpc_resolver* resolver,
|
66
|
+
const grpc_resolver_vtable* vtable,
|
67
|
+
grpc_combiner* combiner);
|
66
68
|
|
67
|
-
void grpc_resolver_shutdown_locked(grpc_exec_ctx
|
68
|
-
grpc_resolver
|
69
|
+
void grpc_resolver_shutdown_locked(grpc_exec_ctx* exec_ctx,
|
70
|
+
grpc_resolver* resolver);
|
69
71
|
|
70
72
|
/** Notification that the channel has seen an error on some address.
|
71
73
|
Can be used as a hint that re-resolution is desirable soon.
|
72
74
|
|
73
75
|
Must be called from the combiner passed as a resolver_arg at construction
|
74
76
|
time.*/
|
75
|
-
void grpc_resolver_channel_saw_error_locked(grpc_exec_ctx
|
76
|
-
grpc_resolver
|
77
|
+
void grpc_resolver_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
|
78
|
+
grpc_resolver* resolver);
|
77
79
|
|
78
80
|
/** Get the next result from the resolver. Expected to set \a *result with
|
79
81
|
new channel args and then schedule \a on_complete for execution.
|
@@ -83,8 +85,12 @@ void grpc_resolver_channel_saw_error_locked(grpc_exec_ctx *exec_ctx,
|
|
83
85
|
|
84
86
|
Must be called from the combiner passed as a resolver_arg at construction
|
85
87
|
time.*/
|
86
|
-
void grpc_resolver_next_locked(grpc_exec_ctx
|
87
|
-
grpc_channel_args
|
88
|
-
grpc_closure
|
88
|
+
void grpc_resolver_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
|
89
|
+
grpc_channel_args** result,
|
90
|
+
grpc_closure* on_complete);
|
91
|
+
|
92
|
+
#ifdef __cplusplus
|
93
|
+
}
|
94
|
+
#endif
|
89
95
|
|
90
96
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_H */
|
@@ -32,13 +32,13 @@
|
|
32
32
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
33
33
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
|
34
34
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
35
|
+
#include "src/core/lib/backoff/backoff.h"
|
35
36
|
#include "src/core/lib/channel/channel_args.h"
|
36
37
|
#include "src/core/lib/iomgr/combiner.h"
|
37
38
|
#include "src/core/lib/iomgr/gethostname.h"
|
38
39
|
#include "src/core/lib/iomgr/resolve_address.h"
|
39
40
|
#include "src/core/lib/iomgr/timer.h"
|
40
41
|
#include "src/core/lib/json/json.h"
|
41
|
-
#include "src/core/lib/support/backoff.h"
|
42
42
|
#include "src/core/lib/support/env.h"
|
43
43
|
#include "src/core/lib/support/string.h"
|
44
44
|
#include "src/core/lib/transport/service_config.h"
|
@@ -53,98 +53,98 @@ typedef struct {
|
|
53
53
|
/** base class: must be first */
|
54
54
|
grpc_resolver base;
|
55
55
|
/** DNS server to use (if not system default) */
|
56
|
-
char
|
56
|
+
char* dns_server;
|
57
57
|
/** name to resolve (usually the same as target_name) */
|
58
|
-
char
|
58
|
+
char* name_to_resolve;
|
59
59
|
/** default port to use */
|
60
|
-
char
|
60
|
+
char* default_port;
|
61
61
|
/** channel args. */
|
62
|
-
grpc_channel_args
|
62
|
+
grpc_channel_args* channel_args;
|
63
63
|
/** whether to request the service config */
|
64
64
|
bool request_service_config;
|
65
65
|
/** pollset_set to drive the name resolution process */
|
66
|
-
grpc_pollset_set
|
66
|
+
grpc_pollset_set* interested_parties;
|
67
67
|
|
68
68
|
/** Closures used by the combiner */
|
69
69
|
grpc_closure dns_ares_on_retry_timer_locked;
|
70
70
|
grpc_closure dns_ares_on_resolved_locked;
|
71
71
|
|
72
72
|
/** Combiner guarding the rest of the state */
|
73
|
-
grpc_combiner
|
73
|
+
grpc_combiner* combiner;
|
74
74
|
/** are we currently resolving? */
|
75
75
|
bool resolving;
|
76
76
|
/** the pending resolving request */
|
77
|
-
grpc_ares_request
|
77
|
+
grpc_ares_request* pending_request;
|
78
78
|
/** which version of the result have we published? */
|
79
79
|
int published_version;
|
80
80
|
/** which version of the result is current? */
|
81
81
|
int resolved_version;
|
82
82
|
/** pending next completion, or NULL */
|
83
|
-
grpc_closure
|
83
|
+
grpc_closure* next_completion;
|
84
84
|
/** target result address for next completion */
|
85
|
-
grpc_channel_args
|
85
|
+
grpc_channel_args** target_result;
|
86
86
|
/** current (fully resolved) result */
|
87
|
-
grpc_channel_args
|
87
|
+
grpc_channel_args* resolved_result;
|
88
88
|
/** retry timer */
|
89
89
|
bool have_retry_timer;
|
90
90
|
grpc_timer retry_timer;
|
91
91
|
/** retry backoff state */
|
92
|
-
|
92
|
+
grpc_backoff backoff_state;
|
93
93
|
|
94
94
|
/** currently resolving addresses */
|
95
|
-
grpc_lb_addresses
|
95
|
+
grpc_lb_addresses* lb_addresses;
|
96
96
|
/** currently resolving service config */
|
97
|
-
char
|
97
|
+
char* service_config_json;
|
98
98
|
} ares_dns_resolver;
|
99
99
|
|
100
|
-
static void dns_ares_destroy(grpc_exec_ctx
|
100
|
+
static void dns_ares_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
|
101
101
|
|
102
|
-
static void dns_ares_start_resolving_locked(grpc_exec_ctx
|
103
|
-
ares_dns_resolver
|
104
|
-
static void dns_ares_maybe_finish_next_locked(grpc_exec_ctx
|
105
|
-
ares_dns_resolver
|
102
|
+
static void dns_ares_start_resolving_locked(grpc_exec_ctx* exec_ctx,
|
103
|
+
ares_dns_resolver* r);
|
104
|
+
static void dns_ares_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
|
105
|
+
ares_dns_resolver* r);
|
106
106
|
|
107
|
-
static void dns_ares_shutdown_locked(grpc_exec_ctx
|
108
|
-
static void dns_ares_channel_saw_error_locked(grpc_exec_ctx
|
109
|
-
grpc_resolver
|
110
|
-
static void dns_ares_next_locked(grpc_exec_ctx
|
111
|
-
grpc_channel_args
|
112
|
-
grpc_closure
|
107
|
+
static void dns_ares_shutdown_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
|
108
|
+
static void dns_ares_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
|
109
|
+
grpc_resolver* r);
|
110
|
+
static void dns_ares_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r,
|
111
|
+
grpc_channel_args** target_result,
|
112
|
+
grpc_closure* on_complete);
|
113
113
|
|
114
114
|
static const grpc_resolver_vtable dns_ares_resolver_vtable = {
|
115
115
|
dns_ares_destroy, dns_ares_shutdown_locked,
|
116
116
|
dns_ares_channel_saw_error_locked, dns_ares_next_locked};
|
117
117
|
|
118
|
-
static void dns_ares_shutdown_locked(grpc_exec_ctx
|
119
|
-
grpc_resolver
|
120
|
-
ares_dns_resolver
|
118
|
+
static void dns_ares_shutdown_locked(grpc_exec_ctx* exec_ctx,
|
119
|
+
grpc_resolver* resolver) {
|
120
|
+
ares_dns_resolver* r = (ares_dns_resolver*)resolver;
|
121
121
|
if (r->have_retry_timer) {
|
122
122
|
grpc_timer_cancel(exec_ctx, &r->retry_timer);
|
123
123
|
}
|
124
|
-
if (r->pending_request !=
|
124
|
+
if (r->pending_request != nullptr) {
|
125
125
|
grpc_cancel_ares_request(exec_ctx, r->pending_request);
|
126
126
|
}
|
127
|
-
if (r->next_completion !=
|
128
|
-
*r->target_result =
|
127
|
+
if (r->next_completion != nullptr) {
|
128
|
+
*r->target_result = nullptr;
|
129
129
|
GRPC_CLOSURE_SCHED(
|
130
130
|
exec_ctx, r->next_completion,
|
131
131
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
|
132
|
-
r->next_completion =
|
132
|
+
r->next_completion = nullptr;
|
133
133
|
}
|
134
134
|
}
|
135
135
|
|
136
|
-
static void dns_ares_channel_saw_error_locked(grpc_exec_ctx
|
137
|
-
grpc_resolver
|
138
|
-
ares_dns_resolver
|
136
|
+
static void dns_ares_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
|
137
|
+
grpc_resolver* resolver) {
|
138
|
+
ares_dns_resolver* r = (ares_dns_resolver*)resolver;
|
139
139
|
if (!r->resolving) {
|
140
|
-
|
140
|
+
grpc_backoff_reset(&r->backoff_state);
|
141
141
|
dns_ares_start_resolving_locked(exec_ctx, r);
|
142
142
|
}
|
143
143
|
}
|
144
144
|
|
145
|
-
static void dns_ares_on_retry_timer_locked(grpc_exec_ctx
|
146
|
-
grpc_error
|
147
|
-
ares_dns_resolver
|
145
|
+
static void dns_ares_on_retry_timer_locked(grpc_exec_ctx* exec_ctx, void* arg,
|
146
|
+
grpc_error* error) {
|
147
|
+
ares_dns_resolver* r = (ares_dns_resolver*)arg;
|
148
148
|
r->have_retry_timer = false;
|
149
149
|
if (error == GRPC_ERROR_NONE) {
|
150
150
|
if (!r->resolving) {
|
@@ -154,8 +154,8 @@ static void dns_ares_on_retry_timer_locked(grpc_exec_ctx *exec_ctx, void *arg,
|
|
154
154
|
GRPC_RESOLVER_UNREF(exec_ctx, &r->base, "retry-timer");
|
155
155
|
}
|
156
156
|
|
157
|
-
static bool value_in_json_array(grpc_json
|
158
|
-
for (grpc_json
|
157
|
+
static bool value_in_json_array(grpc_json* array, const char* value) {
|
158
|
+
for (grpc_json* entry = array->child; entry != nullptr; entry = entry->next) {
|
159
159
|
if (entry->type == GRPC_JSON_STRING && strcmp(entry->value, value) == 0) {
|
160
160
|
return true;
|
161
161
|
}
|
@@ -163,49 +163,50 @@ static bool value_in_json_array(grpc_json *array, const char *value) {
|
|
163
163
|
return false;
|
164
164
|
}
|
165
165
|
|
166
|
-
static char
|
167
|
-
grpc_json
|
168
|
-
if (choices_json ==
|
166
|
+
static char* choose_service_config(char* service_config_choice_json) {
|
167
|
+
grpc_json* choices_json = grpc_json_parse_string(service_config_choice_json);
|
168
|
+
if (choices_json == nullptr || choices_json->type != GRPC_JSON_ARRAY) {
|
169
169
|
gpr_log(GPR_ERROR, "cannot parse service config JSON string");
|
170
|
-
return
|
170
|
+
return nullptr;
|
171
171
|
}
|
172
|
-
char
|
173
|
-
for (grpc_json
|
172
|
+
char* service_config = nullptr;
|
173
|
+
for (grpc_json* choice = choices_json->child; choice != nullptr;
|
174
174
|
choice = choice->next) {
|
175
175
|
if (choice->type != GRPC_JSON_OBJECT) {
|
176
176
|
gpr_log(GPR_ERROR, "cannot parse service config JSON string");
|
177
177
|
break;
|
178
178
|
}
|
179
|
-
grpc_json
|
180
|
-
for (grpc_json
|
179
|
+
grpc_json* service_config_json = nullptr;
|
180
|
+
for (grpc_json* field = choice->child; field != nullptr;
|
181
|
+
field = field->next) {
|
181
182
|
// Check client language, if specified.
|
182
183
|
if (strcmp(field->key, "clientLanguage") == 0) {
|
183
184
|
if (field->type != GRPC_JSON_ARRAY ||
|
184
185
|
!value_in_json_array(field, "c++")) {
|
185
|
-
service_config_json =
|
186
|
+
service_config_json = nullptr;
|
186
187
|
break;
|
187
188
|
}
|
188
189
|
}
|
189
190
|
// Check client hostname, if specified.
|
190
191
|
if (strcmp(field->key, "clientHostname") == 0) {
|
191
|
-
char
|
192
|
-
if (hostname ==
|
192
|
+
char* hostname = grpc_gethostname();
|
193
|
+
if (hostname == nullptr || field->type != GRPC_JSON_ARRAY ||
|
193
194
|
!value_in_json_array(field, hostname)) {
|
194
|
-
service_config_json =
|
195
|
+
service_config_json = nullptr;
|
195
196
|
break;
|
196
197
|
}
|
197
198
|
}
|
198
199
|
// Check percentage, if specified.
|
199
200
|
if (strcmp(field->key, "percentage") == 0) {
|
200
201
|
if (field->type != GRPC_JSON_NUMBER) {
|
201
|
-
service_config_json =
|
202
|
+
service_config_json = nullptr;
|
202
203
|
break;
|
203
204
|
}
|
204
205
|
int random_pct = rand() % 100;
|
205
206
|
int percentage;
|
206
207
|
if (sscanf(field->value, "%d", &percentage) != 1 ||
|
207
208
|
random_pct > percentage || percentage == 0) {
|
208
|
-
service_config_json =
|
209
|
+
service_config_json = nullptr;
|
209
210
|
break;
|
210
211
|
}
|
211
212
|
}
|
@@ -216,7 +217,7 @@ static char *choose_service_config(char *service_config_choice_json) {
|
|
216
217
|
}
|
217
218
|
}
|
218
219
|
}
|
219
|
-
if (service_config_json !=
|
220
|
+
if (service_config_json != nullptr) {
|
220
221
|
service_config = grpc_json_dump_to_string(service_config_json, 0);
|
221
222
|
break;
|
222
223
|
}
|
@@ -225,39 +226,39 @@ static char *choose_service_config(char *service_config_choice_json) {
|
|
225
226
|
return service_config;
|
226
227
|
}
|
227
228
|
|
228
|
-
static void dns_ares_on_resolved_locked(grpc_exec_ctx
|
229
|
-
grpc_error
|
230
|
-
ares_dns_resolver
|
231
|
-
grpc_channel_args
|
229
|
+
static void dns_ares_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
|
230
|
+
grpc_error* error) {
|
231
|
+
ares_dns_resolver* r = (ares_dns_resolver*)arg;
|
232
|
+
grpc_channel_args* result = nullptr;
|
232
233
|
GPR_ASSERT(r->resolving);
|
233
234
|
r->resolving = false;
|
234
|
-
r->pending_request =
|
235
|
-
if (r->lb_addresses !=
|
236
|
-
static const char
|
235
|
+
r->pending_request = nullptr;
|
236
|
+
if (r->lb_addresses != nullptr) {
|
237
|
+
static const char* args_to_remove[2];
|
237
238
|
size_t num_args_to_remove = 0;
|
238
239
|
grpc_arg new_args[3];
|
239
240
|
size_t num_args_to_add = 0;
|
240
241
|
new_args[num_args_to_add++] =
|
241
242
|
grpc_lb_addresses_create_channel_arg(r->lb_addresses);
|
242
|
-
grpc_service_config
|
243
|
-
char
|
244
|
-
if (r->service_config_json !=
|
243
|
+
grpc_service_config* service_config = nullptr;
|
244
|
+
char* service_config_string = nullptr;
|
245
|
+
if (r->service_config_json != nullptr) {
|
245
246
|
service_config_string = choose_service_config(r->service_config_json);
|
246
247
|
gpr_free(r->service_config_json);
|
247
|
-
if (service_config_string !=
|
248
|
+
if (service_config_string != nullptr) {
|
248
249
|
gpr_log(GPR_INFO, "selected service config choice: %s",
|
249
250
|
service_config_string);
|
250
251
|
args_to_remove[num_args_to_remove++] = GRPC_ARG_SERVICE_CONFIG;
|
251
252
|
new_args[num_args_to_add++] = grpc_channel_arg_string_create(
|
252
|
-
(char
|
253
|
+
(char*)GRPC_ARG_SERVICE_CONFIG, service_config_string);
|
253
254
|
service_config = grpc_service_config_create(service_config_string);
|
254
|
-
if (service_config !=
|
255
|
-
const char
|
255
|
+
if (service_config != nullptr) {
|
256
|
+
const char* lb_policy_name =
|
256
257
|
grpc_service_config_get_lb_policy_name(service_config);
|
257
|
-
if (lb_policy_name !=
|
258
|
+
if (lb_policy_name != nullptr) {
|
258
259
|
args_to_remove[num_args_to_remove++] = GRPC_ARG_LB_POLICY_NAME;
|
259
260
|
new_args[num_args_to_add++] = grpc_channel_arg_string_create(
|
260
|
-
(char
|
261
|
+
(char*)GRPC_ARG_LB_POLICY_NAME, (char*)lb_policy_name);
|
261
262
|
}
|
262
263
|
}
|
263
264
|
}
|
@@ -265,30 +266,29 @@ static void dns_ares_on_resolved_locked(grpc_exec_ctx *exec_ctx, void *arg,
|
|
265
266
|
result = grpc_channel_args_copy_and_add_and_remove(
|
266
267
|
r->channel_args, args_to_remove, num_args_to_remove, new_args,
|
267
268
|
num_args_to_add);
|
268
|
-
if (service_config !=
|
269
|
+
if (service_config != nullptr) grpc_service_config_destroy(service_config);
|
269
270
|
gpr_free(service_config_string);
|
270
271
|
grpc_lb_addresses_destroy(exec_ctx, r->lb_addresses);
|
271
272
|
} else {
|
272
|
-
const char
|
273
|
+
const char* msg = grpc_error_string(error);
|
273
274
|
gpr_log(GPR_DEBUG, "dns resolution failed: %s", msg);
|
274
|
-
|
275
|
-
|
276
|
-
|
275
|
+
grpc_millis next_try =
|
276
|
+
grpc_backoff_step(exec_ctx, &r->backoff_state).next_attempt_start_time;
|
277
|
+
grpc_millis timeout = next_try - grpc_exec_ctx_now(exec_ctx);
|
277
278
|
gpr_log(GPR_INFO, "dns resolution failed (will retry): %s",
|
278
279
|
grpc_error_string(error));
|
279
280
|
GPR_ASSERT(!r->have_retry_timer);
|
280
281
|
r->have_retry_timer = true;
|
281
282
|
GRPC_RESOLVER_REF(&r->base, "retry-timer");
|
282
|
-
if (
|
283
|
-
gpr_log(GPR_DEBUG, "retrying in %"
|
284
|
-
timeout.tv_nsec);
|
283
|
+
if (timeout > 0) {
|
284
|
+
gpr_log(GPR_DEBUG, "retrying in %" PRIdPTR " milliseconds", timeout);
|
285
285
|
} else {
|
286
286
|
gpr_log(GPR_DEBUG, "retrying immediately");
|
287
287
|
}
|
288
288
|
grpc_timer_init(exec_ctx, &r->retry_timer, next_try,
|
289
|
-
&r->dns_ares_on_retry_timer_locked
|
289
|
+
&r->dns_ares_on_retry_timer_locked);
|
290
290
|
}
|
291
|
-
if (r->resolved_result !=
|
291
|
+
if (r->resolved_result != nullptr) {
|
292
292
|
grpc_channel_args_destroy(exec_ctx, r->resolved_result);
|
293
293
|
}
|
294
294
|
r->resolved_result = result;
|
@@ -297,55 +297,55 @@ static void dns_ares_on_resolved_locked(grpc_exec_ctx *exec_ctx, void *arg,
|
|
297
297
|
GRPC_RESOLVER_UNREF(exec_ctx, &r->base, "dns-resolving");
|
298
298
|
}
|
299
299
|
|
300
|
-
static void dns_ares_next_locked(grpc_exec_ctx
|
301
|
-
grpc_resolver
|
302
|
-
grpc_channel_args
|
303
|
-
grpc_closure
|
300
|
+
static void dns_ares_next_locked(grpc_exec_ctx* exec_ctx,
|
301
|
+
grpc_resolver* resolver,
|
302
|
+
grpc_channel_args** target_result,
|
303
|
+
grpc_closure* on_complete) {
|
304
304
|
gpr_log(GPR_DEBUG, "dns_ares_next is called.");
|
305
|
-
ares_dns_resolver
|
305
|
+
ares_dns_resolver* r = (ares_dns_resolver*)resolver;
|
306
306
|
GPR_ASSERT(!r->next_completion);
|
307
307
|
r->next_completion = on_complete;
|
308
308
|
r->target_result = target_result;
|
309
309
|
if (r->resolved_version == 0 && !r->resolving) {
|
310
|
-
|
310
|
+
grpc_backoff_reset(&r->backoff_state);
|
311
311
|
dns_ares_start_resolving_locked(exec_ctx, r);
|
312
312
|
} else {
|
313
313
|
dns_ares_maybe_finish_next_locked(exec_ctx, r);
|
314
314
|
}
|
315
315
|
}
|
316
316
|
|
317
|
-
static void dns_ares_start_resolving_locked(grpc_exec_ctx
|
318
|
-
ares_dns_resolver
|
317
|
+
static void dns_ares_start_resolving_locked(grpc_exec_ctx* exec_ctx,
|
318
|
+
ares_dns_resolver* r) {
|
319
319
|
GRPC_RESOLVER_REF(&r->base, "dns-resolving");
|
320
320
|
GPR_ASSERT(!r->resolving);
|
321
321
|
r->resolving = true;
|
322
|
-
r->lb_addresses =
|
323
|
-
r->service_config_json =
|
322
|
+
r->lb_addresses = nullptr;
|
323
|
+
r->service_config_json = nullptr;
|
324
324
|
r->pending_request = grpc_dns_lookup_ares(
|
325
325
|
exec_ctx, r->dns_server, r->name_to_resolve, r->default_port,
|
326
326
|
r->interested_parties, &r->dns_ares_on_resolved_locked, &r->lb_addresses,
|
327
327
|
true /* check_grpclb */,
|
328
|
-
r->request_service_config ? &r->service_config_json :
|
328
|
+
r->request_service_config ? &r->service_config_json : nullptr);
|
329
329
|
}
|
330
330
|
|
331
|
-
static void dns_ares_maybe_finish_next_locked(grpc_exec_ctx
|
332
|
-
ares_dns_resolver
|
333
|
-
if (r->next_completion !=
|
331
|
+
static void dns_ares_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
|
332
|
+
ares_dns_resolver* r) {
|
333
|
+
if (r->next_completion != nullptr &&
|
334
334
|
r->resolved_version != r->published_version) {
|
335
|
-
*r->target_result = r->resolved_result ==
|
336
|
-
?
|
335
|
+
*r->target_result = r->resolved_result == nullptr
|
336
|
+
? nullptr
|
337
337
|
: grpc_channel_args_copy(r->resolved_result);
|
338
338
|
gpr_log(GPR_DEBUG, "dns_ares_maybe_finish_next_locked");
|
339
339
|
GRPC_CLOSURE_SCHED(exec_ctx, r->next_completion, GRPC_ERROR_NONE);
|
340
|
-
r->next_completion =
|
340
|
+
r->next_completion = nullptr;
|
341
341
|
r->published_version = r->resolved_version;
|
342
342
|
}
|
343
343
|
}
|
344
344
|
|
345
|
-
static void dns_ares_destroy(grpc_exec_ctx
|
345
|
+
static void dns_ares_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* gr) {
|
346
346
|
gpr_log(GPR_DEBUG, "dns_ares_destroy");
|
347
|
-
ares_dns_resolver
|
348
|
-
if (r->resolved_result !=
|
347
|
+
ares_dns_resolver* r = (ares_dns_resolver*)gr;
|
348
|
+
if (r->resolved_result != nullptr) {
|
349
349
|
grpc_channel_args_destroy(exec_ctx, r->resolved_result);
|
350
350
|
}
|
351
351
|
grpc_pollset_set_destroy(exec_ctx, r->interested_parties);
|
@@ -356,15 +356,15 @@ static void dns_ares_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) {
|
|
356
356
|
gpr_free(r);
|
357
357
|
}
|
358
358
|
|
359
|
-
static grpc_resolver
|
360
|
-
grpc_resolver_args
|
361
|
-
const char
|
359
|
+
static grpc_resolver* dns_ares_create(grpc_exec_ctx* exec_ctx,
|
360
|
+
grpc_resolver_args* args,
|
361
|
+
const char* default_port) {
|
362
362
|
/* Get name from args. */
|
363
|
-
const char
|
363
|
+
const char* path = args->uri->path;
|
364
364
|
if (path[0] == '/') ++path;
|
365
365
|
/* Create resolver. */
|
366
|
-
ares_dns_resolver
|
367
|
-
(ares_dns_resolver
|
366
|
+
ares_dns_resolver* r =
|
367
|
+
(ares_dns_resolver*)gpr_zalloc(sizeof(ares_dns_resolver));
|
368
368
|
grpc_resolver_init(&r->base, &dns_ares_resolver_vtable, args->combiner);
|
369
369
|
if (0 != strcmp(args->uri->authority, "")) {
|
370
370
|
r->dns_server = gpr_strdup(args->uri->authority);
|
@@ -372,20 +372,20 @@ static grpc_resolver *dns_ares_create(grpc_exec_ctx *exec_ctx,
|
|
372
372
|
r->name_to_resolve = gpr_strdup(path);
|
373
373
|
r->default_port = gpr_strdup(default_port);
|
374
374
|
r->channel_args = grpc_channel_args_copy(args->args);
|
375
|
-
const grpc_arg
|
375
|
+
const grpc_arg* arg = grpc_channel_args_find(
|
376
376
|
r->channel_args, GRPC_ARG_SERVICE_CONFIG_DISABLE_RESOLUTION);
|
377
377
|
r->request_service_config = !grpc_channel_arg_get_integer(
|
378
378
|
arg, (grpc_integer_options){false, false, true});
|
379
379
|
r->interested_parties = grpc_pollset_set_create();
|
380
|
-
if (args->pollset_set !=
|
380
|
+
if (args->pollset_set != nullptr) {
|
381
381
|
grpc_pollset_set_add_pollset_set(exec_ctx, r->interested_parties,
|
382
382
|
args->pollset_set);
|
383
383
|
}
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
384
|
+
grpc_backoff_init(
|
385
|
+
&r->backoff_state, GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS * 1000,
|
386
|
+
GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER, GRPC_DNS_RECONNECT_JITTER,
|
387
|
+
GRPC_DNS_MIN_CONNECT_TIMEOUT_SECONDS * 1000,
|
388
|
+
GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000);
|
389
389
|
GRPC_CLOSURE_INIT(&r->dns_ares_on_retry_timer_locked,
|
390
390
|
dns_ares_on_retry_timer_locked, r,
|
391
391
|
grpc_combiner_scheduler(r->base.combiner));
|
@@ -399,19 +399,19 @@ static grpc_resolver *dns_ares_create(grpc_exec_ctx *exec_ctx,
|
|
399
399
|
* FACTORY
|
400
400
|
*/
|
401
401
|
|
402
|
-
static void dns_ares_factory_ref(grpc_resolver_factory
|
402
|
+
static void dns_ares_factory_ref(grpc_resolver_factory* factory) {}
|
403
403
|
|
404
|
-
static void dns_ares_factory_unref(grpc_resolver_factory
|
404
|
+
static void dns_ares_factory_unref(grpc_resolver_factory* factory) {}
|
405
405
|
|
406
|
-
static grpc_resolver
|
407
|
-
grpc_exec_ctx
|
408
|
-
grpc_resolver_args
|
406
|
+
static grpc_resolver* dns_factory_create_resolver(
|
407
|
+
grpc_exec_ctx* exec_ctx, grpc_resolver_factory* factory,
|
408
|
+
grpc_resolver_args* args) {
|
409
409
|
return dns_ares_create(exec_ctx, args, "https");
|
410
410
|
}
|
411
411
|
|
412
|
-
static char
|
413
|
-
grpc_resolver_factory
|
414
|
-
const char
|
412
|
+
static char* dns_ares_factory_get_default_host_name(
|
413
|
+
grpc_resolver_factory* factory, grpc_uri* uri) {
|
414
|
+
const char* path = uri->path;
|
415
415
|
if (path[0] == '/') ++path;
|
416
416
|
return gpr_strdup(path);
|
417
417
|
}
|
@@ -421,16 +421,16 @@ static const grpc_resolver_factory_vtable dns_ares_factory_vtable = {
|
|
421
421
|
dns_ares_factory_get_default_host_name, "dns"};
|
422
422
|
static grpc_resolver_factory dns_resolver_factory = {&dns_ares_factory_vtable};
|
423
423
|
|
424
|
-
static grpc_resolver_factory
|
424
|
+
static grpc_resolver_factory* dns_ares_resolver_factory_create() {
|
425
425
|
return &dns_resolver_factory;
|
426
426
|
}
|
427
427
|
|
428
|
-
void grpc_resolver_dns_ares_init(void) {
|
429
|
-
char
|
428
|
+
extern "C" void grpc_resolver_dns_ares_init(void) {
|
429
|
+
char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
|
430
430
|
/* TODO(zyc): Turn on c-ares based resolver by default after the address
|
431
431
|
sorter and the CNAME support are added. */
|
432
|
-
if (resolver !=
|
433
|
-
grpc_error
|
432
|
+
if (resolver != nullptr && gpr_stricmp(resolver, "ares") == 0) {
|
433
|
+
grpc_error* error = grpc_ares_init();
|
434
434
|
if (error != GRPC_ERROR_NONE) {
|
435
435
|
GRPC_LOG_IF_ERROR("ares_library_init() failed", error);
|
436
436
|
return;
|
@@ -441,9 +441,9 @@ void grpc_resolver_dns_ares_init(void) {
|
|
441
441
|
gpr_free(resolver);
|
442
442
|
}
|
443
443
|
|
444
|
-
void grpc_resolver_dns_ares_shutdown(void) {
|
445
|
-
char
|
446
|
-
if (resolver !=
|
444
|
+
extern "C" void grpc_resolver_dns_ares_shutdown(void) {
|
445
|
+
char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
|
446
|
+
if (resolver != nullptr && gpr_stricmp(resolver, "ares") == 0) {
|
447
447
|
grpc_ares_cleanup();
|
448
448
|
}
|
449
449
|
gpr_free(resolver);
|
@@ -451,8 +451,8 @@ void grpc_resolver_dns_ares_shutdown(void) {
|
|
451
451
|
|
452
452
|
#else /* GRPC_ARES == 1 && !defined(GRPC_UV) */
|
453
453
|
|
454
|
-
void grpc_resolver_dns_ares_init(void) {}
|
454
|
+
extern "C" void grpc_resolver_dns_ares_init(void) {}
|
455
455
|
|
456
|
-
void grpc_resolver_dns_ares_shutdown(void) {}
|
456
|
+
extern "C" void grpc_resolver_dns_ares_shutdown(void) {}
|
457
457
|
|
458
458
|
#endif /* GRPC_ARES == 1 && !defined(GRPC_UV) */
|