grpc 1.8.7 → 1.9.0.pre1
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 +549 -325
- data/include/grpc/impl/codegen/grpc_types.h +1 -2
- data/include/grpc/impl/codegen/port_platform.h +46 -5
- data/include/grpc/impl/codegen/slice.h +1 -2
- data/include/grpc/module.modulemap +0 -2
- data/include/grpc/slice_buffer.h +1 -2
- data/include/grpc/support/log.h +4 -2
- data/include/grpc/support/thd.h +4 -1
- data/include/grpc/support/tls.h +6 -0
- data/include/grpc/support/tls_gcc.h +5 -40
- data/include/grpc/support/tls_msvc.h +9 -0
- data/include/grpc/support/tls_pthread.h +9 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
- data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
- data/src/core/ext/filters/client_channel/client_channel.h +4 -12
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
- data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
- data/src/core/ext/filters/client_channel/connector.cc +6 -7
- data/src/core/ext/filters/client_channel/connector.h +6 -16
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
- data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
- data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
- data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
- data/src/core/ext/filters/client_channel/parse_address.h +0 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
- data/src/core/ext/filters/client_channel/resolver.cc +11 -13
- data/src/core/ext/filters/client_channel/resolver.h +14 -25
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
- data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
- data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
- data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
- data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
- data/src/core/ext/filters/client_channel/subchannel.h +57 -84
- data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
- data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
- data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
- data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
- data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
- data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
- data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
- data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
- data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
- data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
- data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
- data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
- data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
- data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
- data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
- data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
- data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
- data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
- data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
- data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
- data/src/core/lib/backoff/backoff.cc +39 -44
- data/src/core/lib/backoff/backoff.h +61 -57
- data/src/core/lib/channel/channel_args.cc +8 -10
- data/src/core/lib/channel/channel_args.h +4 -13
- data/src/core/lib/channel/channel_stack.cc +19 -27
- data/src/core/lib/channel/channel_stack.h +27 -47
- data/src/core/lib/channel/channel_stack_builder.cc +11 -14
- data/src/core/lib/channel/channel_stack_builder.h +4 -15
- data/src/core/lib/channel/connected_channel.cc +23 -36
- data/src/core/lib/channel/connected_channel.h +1 -10
- data/src/core/lib/channel/handshaker.cc +31 -40
- data/src/core/lib/channel/handshaker.h +14 -25
- data/src/core/lib/channel/handshaker_factory.cc +6 -6
- data/src/core/lib/channel/handshaker_factory.h +5 -15
- data/src/core/lib/channel/handshaker_registry.cc +9 -13
- data/src/core/lib/channel/handshaker_registry.h +2 -11
- data/src/core/lib/compression/algorithm_metadata.h +0 -8
- data/src/core/lib/compression/message_compress.cc +19 -23
- data/src/core/lib/compression/message_compress.h +2 -12
- data/src/core/lib/compression/stream_compression.cc +1 -1
- data/src/core/lib/compression/stream_compression.h +0 -8
- data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
- data/src/core/lib/compression/stream_compression_gzip.h +0 -8
- data/src/core/lib/compression/stream_compression_identity.h +0 -8
- data/src/core/lib/debug/stats.cc +4 -4
- data/src/core/lib/debug/stats.h +9 -19
- data/src/core/lib/debug/stats_data.cc +85 -116
- data/src/core/lib/debug/stats_data.h +236 -312
- data/src/core/lib/debug/trace.cc +1 -1
- data/src/core/lib/debug/trace.h +0 -12
- data/src/core/lib/{support → gpr++}/abstract.h +8 -3
- data/src/core/lib/{support → gpr++}/atomic.h +5 -5
- data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
- data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
- data/src/core/lib/gpr++/debug_location.h +52 -0
- data/src/core/lib/gpr++/inlined_vector.h +112 -0
- data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
- data/src/core/lib/{support → gpr++}/memory.h +3 -3
- data/src/core/lib/gpr++/orphanable.h +171 -0
- data/src/core/lib/gpr++/ref_counted.h +133 -0
- data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
- data/src/core/lib/{support → gpr}/alloc.cc +0 -0
- data/src/core/lib/{support → gpr}/arena.cc +1 -1
- data/src/core/lib/{support → gpr}/arena.h +3 -11
- data/src/core/lib/{support → gpr}/atm.cc +0 -0
- data/src/core/lib/{support → gpr}/avl.cc +0 -0
- data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
- data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/env.h +3 -11
- data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
- data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
- data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.h +3 -3
- data/src/core/lib/{support → gpr}/host_port.cc +1 -1
- data/src/core/lib/{support → gpr}/log.cc +3 -3
- data/src/core/lib/{support → gpr}/log_android.cc +3 -3
- data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
- data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
- data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
- data/src/core/lib/{support → gpr}/mpscq.h +3 -10
- data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
- data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
- data/src/core/lib/{support → gpr}/spinlock.h +3 -3
- data/src/core/lib/{support → gpr}/string.cc +1 -1
- data/src/core/lib/{support → gpr}/string.h +3 -10
- data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
- data/src/core/lib/{support → gpr}/string_windows.h +3 -11
- data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/sync.cc +0 -0
- data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
- data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/thd.cc +0 -0
- data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
- data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
- data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
- data/src/core/lib/{support → gpr}/time.cc +0 -0
- data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
- data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
- data/src/core/lib/{support → gpr}/time_precise.h +3 -11
- data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
- data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
- data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
- data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
- data/src/core/lib/http/format_request.cc +1 -1
- data/src/core/lib/http/format_request.h +0 -8
- data/src/core/lib/http/httpcli.cc +55 -74
- data/src/core/lib/http/httpcli.h +13 -22
- data/src/core/lib/http/httpcli_security_connector.cc +27 -33
- data/src/core/lib/http/parser.h +0 -8
- data/src/core/lib/iomgr/block_annotate.h +10 -17
- data/src/core/lib/iomgr/call_combiner.cc +14 -17
- data/src/core/lib/iomgr/call_combiner.h +16 -34
- data/src/core/lib/iomgr/closure.h +24 -37
- data/src/core/lib/iomgr/combiner.cc +62 -66
- data/src/core/lib/iomgr/combiner.h +6 -16
- data/src/core/lib/iomgr/endpoint.cc +15 -21
- data/src/core/lib/iomgr/endpoint.h +16 -33
- data/src/core/lib/iomgr/endpoint_pair.h +0 -8
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
- data/src/core/lib/iomgr/error.cc +2 -6
- data/src/core/lib/iomgr/error.h +4 -9
- data/src/core/lib/iomgr/error_internal.h +0 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
- data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
- data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
- data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
- data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
- data/src/core/lib/iomgr/ev_posix.cc +35 -50
- data/src/core/lib/iomgr/ev_posix.h +27 -53
- data/src/core/lib/iomgr/exec_ctx.cc +46 -78
- data/src/core/lib/iomgr/exec_ctx.h +127 -60
- data/src/core/lib/iomgr/executor.cc +34 -38
- data/src/core/lib/iomgr/executor.h +3 -11
- data/src/core/lib/iomgr/fork_posix.cc +13 -12
- data/src/core/lib/iomgr/gethostname.h +0 -8
- data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +14 -16
- data/src/core/lib/iomgr/iocp_windows.h +1 -10
- data/src/core/lib/iomgr/iomgr.cc +60 -59
- data/src/core/lib/iomgr/iomgr.h +3 -12
- data/src/core/lib/iomgr/iomgr_internal.h +0 -8
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
- data/src/core/lib/iomgr/iomgr_uv.h +0 -8
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/load_file.h +0 -8
- data/src/core/lib/iomgr/lockfree_event.cc +7 -8
- data/src/core/lib/iomgr/lockfree_event.h +3 -3
- data/src/core/lib/iomgr/polling_entity.cc +6 -10
- data/src/core/lib/iomgr/polling_entity.h +2 -11
- data/src/core/lib/iomgr/pollset.h +4 -13
- data/src/core/lib/iomgr/pollset_set.h +5 -18
- data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
- data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
- data/src/core/lib/iomgr/pollset_uv.cc +8 -9
- data/src/core/lib/iomgr/pollset_uv.h +0 -8
- data/src/core/lib/iomgr/pollset_windows.cc +14 -15
- data/src/core/lib/iomgr/pollset_windows.h +0 -8
- data/src/core/lib/iomgr/port.h +6 -1
- data/src/core/lib/iomgr/resolve_address.h +1 -10
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
- data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
- data/src/core/lib/iomgr/resource_quota.cc +77 -107
- data/src/core/lib/iomgr/resource_quota.h +8 -25
- data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.h +1 -9
- data/src/core/lib/iomgr/socket_utils.h +0 -8
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
- data/src/core/lib/iomgr/socket_windows.cc +8 -11
- data/src/core/lib/iomgr/socket_windows.h +3 -14
- data/src/core/lib/iomgr/tcp_client.h +1 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
- data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
- data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
- data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
- data/src/core/lib/iomgr/tcp_posix.cc +131 -153
- data/src/core/lib/iomgr/tcp_posix.h +3 -12
- data/src/core/lib/iomgr/tcp_server.h +6 -17
- data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
- data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
- data/src/core/lib/iomgr/tcp_uv.cc +42 -56
- data/src/core/lib/iomgr/tcp_uv.h +0 -8
- data/src/core/lib/iomgr/tcp_windows.cc +43 -50
- data/src/core/lib/iomgr/tcp_windows.h +1 -9
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
- data/src/core/lib/iomgr/timer.h +6 -15
- data/src/core/lib/iomgr/timer_generic.cc +22 -27
- data/src/core/lib/iomgr/timer_heap.h +0 -8
- data/src/core/lib/iomgr/timer_manager.cc +17 -19
- data/src/core/lib/iomgr/timer_manager.h +0 -8
- data/src/core/lib/iomgr/timer_uv.cc +12 -14
- data/src/core/lib/iomgr/udp_server.cc +148 -54
- data/src/core/lib/iomgr/udp_server.h +16 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
- data/src/core/lib/json/json.h +0 -8
- data/src/core/lib/json/json_reader.h +0 -8
- data/src/core/lib/json/json_writer.h +0 -8
- data/src/core/lib/profiling/basic_timers.cc +3 -2
- data/src/core/lib/profiling/timers.h +0 -8
- data/src/core/lib/security/context/security_context.cc +9 -10
- data/src/core/lib/security/context/security_context.h +0 -8
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
- data/src/core/lib/security/credentials/credentials.cc +33 -42
- data/src/core/lib/security/credentials/credentials.h +24 -43
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
- data/src/core/lib/security/transport/auth_filters.h +0 -8
- data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
- data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
- data/src/core/lib/security/transport/lb_targets_info.h +0 -8
- data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
- data/src/core/lib/security/transport/secure_endpoint.h +0 -8
- data/src/core/lib/security/transport/security_connector.cc +62 -86
- data/src/core/lib/security/transport/security_connector.h +22 -39
- data/src/core/lib/security/transport/security_handshaker.cc +83 -106
- data/src/core/lib/security/transport/security_handshaker.h +1 -10
- data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
- data/src/core/lib/security/transport/tsi_error.h +0 -8
- data/src/core/lib/security/util/json_util.h +0 -8
- data/src/core/lib/slice/b64.cc +5 -6
- data/src/core/lib/slice/b64.h +3 -12
- data/src/core/lib/slice/percent_encoding.h +0 -8
- data/src/core/lib/slice/slice.cc +8 -9
- data/src/core/lib/slice/slice_buffer.cc +11 -16
- data/src/core/lib/slice/slice_hash_table.cc +5 -7
- data/src/core/lib/slice/slice_hash_table.h +2 -12
- data/src/core/lib/slice/slice_intern.cc +4 -5
- data/src/core/lib/slice/slice_internal.h +4 -15
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/slice/slice_string_helpers.h +1 -9
- data/src/core/lib/surface/alarm.cc +11 -14
- data/src/core/lib/surface/alarm_internal.h +0 -8
- data/src/core/lib/surface/byte_buffer.cc +2 -3
- data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
- data/src/core/lib/surface/call.cc +198 -241
- data/src/core/lib/surface/call.h +9 -23
- data/src/core/lib/surface/call_details.cc +3 -4
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_test_only.h +0 -8
- data/src/core/lib/surface/channel.cc +53 -64
- data/src/core/lib/surface/channel.h +12 -23
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +2 -12
- data/src/core/lib/surface/channel_ping.cc +7 -9
- data/src/core/lib/surface/channel_stack_type.h +0 -8
- data/src/core/lib/surface/completion_queue.cc +158 -176
- data/src/core/lib/surface/completion_queue.h +9 -20
- data/src/core/lib/surface/completion_queue_factory.h +0 -8
- data/src/core/lib/surface/event_string.cc +1 -1
- data/src/core/lib/surface/event_string.h +0 -8
- data/src/core/lib/surface/init.cc +27 -25
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/init_secure.cc +2 -2
- data/src/core/lib/surface/lame_client.cc +30 -33
- data/src/core/lib/surface/lame_client.h +0 -8
- data/src/core/lib/surface/server.cc +151 -203
- data/src/core/lib/surface/server.h +7 -16
- data/src/core/lib/surface/validate_metadata.h +0 -8
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +1 -1
- data/src/core/lib/transport/byte_stream.cc +24 -38
- data/src/core/lib/transport/byte_stream.h +10 -25
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/connectivity_state.h +4 -14
- data/src/core/lib/transport/error_utils.cc +6 -6
- data/src/core/lib/transport/error_utils.h +2 -11
- data/src/core/lib/transport/metadata.cc +21 -23
- data/src/core/lib/transport/metadata.h +8 -20
- data/src/core/lib/transport/metadata_batch.cc +34 -45
- data/src/core/lib/transport/metadata_batch.h +18 -32
- data/src/core/lib/transport/service_config.cc +11 -15
- data/src/core/lib/transport/service_config.h +3 -13
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/static_metadata.h +1 -7
- data/src/core/lib/transport/status_conversion.cc +2 -3
- data/src/core/lib/transport/status_conversion.h +1 -10
- data/src/core/lib/transport/timeout_encoding.cc +1 -1
- data/src/core/lib/transport/timeout_encoding.h +1 -9
- data/src/core/lib/transport/transport.cc +36 -50
- data/src/core/lib/transport/transport.h +28 -30
- data/src/core/lib/transport/transport_impl.h +12 -23
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
- data/src/core/tsi/fake_transport_security.cc +7 -10
- data/src/core/tsi/fake_transport_security.h +0 -8
- data/src/core/tsi/gts_transport_security.cc +2 -2
- data/src/core/tsi/gts_transport_security.h +0 -8
- data/src/core/tsi/ssl_transport_security.cc +3 -0
- data/src/core/tsi/ssl_transport_security.h +0 -8
- data/src/core/tsi/ssl_types.h +0 -8
- data/src/core/tsi/transport_security.h +1 -9
- data/src/core/tsi/transport_security_adapter.h +0 -8
- data/src/core/tsi/transport_security_grpc.cc +11 -18
- data/src/core/tsi/transport_security_grpc.h +9 -21
- data/src/core/tsi/transport_security_interface.h +0 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_connection_spec.rb +2 -1
- data/src/ruby/spec/client_auth_spec.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +2 -2
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/src/ruby/spec/server_spec.rb +9 -9
- data/src/ruby/spec/support/helpers.rb +35 -1
- metadata +68 -66
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
- data/include/grpc/support/histogram.h +0 -64
- data/src/core/lib/support/histogram.cc +0 -227
@@ -29,13 +29,13 @@
|
|
29
29
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
30
30
|
#include "src/core/lib/backoff/backoff.h"
|
31
31
|
#include "src/core/lib/channel/channel_args.h"
|
32
|
+
#include "src/core/lib/gpr++/manual_constructor.h"
|
33
|
+
#include "src/core/lib/gpr/env.h"
|
34
|
+
#include "src/core/lib/gpr/string.h"
|
32
35
|
#include "src/core/lib/iomgr/combiner.h"
|
33
36
|
#include "src/core/lib/iomgr/resolve_address.h"
|
34
37
|
#include "src/core/lib/iomgr/timer.h"
|
35
|
-
#include "src/core/lib/support/env.h"
|
36
|
-
#include "src/core/lib/support/string.h"
|
37
38
|
|
38
|
-
#define GRPC_DNS_MIN_CONNECT_TIMEOUT_SECONDS 1
|
39
39
|
#define GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS 1
|
40
40
|
#define GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER 1.6
|
41
41
|
#define GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS 120
|
@@ -70,55 +70,48 @@ typedef struct {
|
|
70
70
|
grpc_timer retry_timer;
|
71
71
|
grpc_closure on_retry;
|
72
72
|
/** retry backoff state */
|
73
|
-
|
73
|
+
grpc_core::ManualConstructor<grpc_core::BackOff> backoff;
|
74
74
|
|
75
75
|
/** currently resolving addresses */
|
76
76
|
grpc_resolved_addresses* addresses;
|
77
77
|
} dns_resolver;
|
78
78
|
|
79
|
-
static void dns_destroy(
|
79
|
+
static void dns_destroy(grpc_resolver* r);
|
80
80
|
|
81
|
-
static void dns_start_resolving_locked(
|
82
|
-
|
83
|
-
static void dns_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
|
84
|
-
dns_resolver* r);
|
81
|
+
static void dns_start_resolving_locked(dns_resolver* r);
|
82
|
+
static void dns_maybe_finish_next_locked(dns_resolver* r);
|
85
83
|
|
86
|
-
static void dns_shutdown_locked(
|
87
|
-
static void dns_channel_saw_error_locked(
|
88
|
-
|
89
|
-
static void dns_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r,
|
90
|
-
grpc_channel_args** target_result,
|
84
|
+
static void dns_shutdown_locked(grpc_resolver* r);
|
85
|
+
static void dns_channel_saw_error_locked(grpc_resolver* r);
|
86
|
+
static void dns_next_locked(grpc_resolver* r, grpc_channel_args** target_result,
|
91
87
|
grpc_closure* on_complete);
|
92
88
|
|
93
89
|
static const grpc_resolver_vtable dns_resolver_vtable = {
|
94
90
|
dns_destroy, dns_shutdown_locked, dns_channel_saw_error_locked,
|
95
91
|
dns_next_locked};
|
96
92
|
|
97
|
-
static void dns_shutdown_locked(
|
98
|
-
grpc_resolver* resolver) {
|
93
|
+
static void dns_shutdown_locked(grpc_resolver* resolver) {
|
99
94
|
dns_resolver* r = (dns_resolver*)resolver;
|
100
95
|
if (r->have_retry_timer) {
|
101
|
-
grpc_timer_cancel(
|
96
|
+
grpc_timer_cancel(&r->retry_timer);
|
102
97
|
}
|
103
98
|
if (r->next_completion != nullptr) {
|
104
99
|
*r->target_result = nullptr;
|
105
|
-
GRPC_CLOSURE_SCHED(
|
106
|
-
|
107
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
|
100
|
+
GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
101
|
+
"Resolver Shutdown"));
|
108
102
|
r->next_completion = nullptr;
|
109
103
|
}
|
110
104
|
}
|
111
105
|
|
112
|
-
static void dns_channel_saw_error_locked(
|
113
|
-
grpc_resolver* resolver) {
|
106
|
+
static void dns_channel_saw_error_locked(grpc_resolver* resolver) {
|
114
107
|
dns_resolver* r = (dns_resolver*)resolver;
|
115
108
|
if (!r->resolving) {
|
116
|
-
|
117
|
-
dns_start_resolving_locked(
|
109
|
+
r->backoff->Reset();
|
110
|
+
dns_start_resolving_locked(r);
|
118
111
|
}
|
119
112
|
}
|
120
113
|
|
121
|
-
static void dns_next_locked(
|
114
|
+
static void dns_next_locked(grpc_resolver* resolver,
|
122
115
|
grpc_channel_args** target_result,
|
123
116
|
grpc_closure* on_complete) {
|
124
117
|
dns_resolver* r = (dns_resolver*)resolver;
|
@@ -126,29 +119,27 @@ static void dns_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
|
|
126
119
|
r->next_completion = on_complete;
|
127
120
|
r->target_result = target_result;
|
128
121
|
if (r->resolved_version == 0 && !r->resolving) {
|
129
|
-
|
130
|
-
dns_start_resolving_locked(
|
122
|
+
r->backoff->Reset();
|
123
|
+
dns_start_resolving_locked(r);
|
131
124
|
} else {
|
132
|
-
dns_maybe_finish_next_locked(
|
125
|
+
dns_maybe_finish_next_locked(r);
|
133
126
|
}
|
134
127
|
}
|
135
128
|
|
136
|
-
static void dns_on_retry_timer_locked(
|
137
|
-
grpc_error* error) {
|
129
|
+
static void dns_on_retry_timer_locked(void* arg, grpc_error* error) {
|
138
130
|
dns_resolver* r = (dns_resolver*)arg;
|
139
131
|
|
140
132
|
r->have_retry_timer = false;
|
141
133
|
if (error == GRPC_ERROR_NONE) {
|
142
134
|
if (!r->resolving) {
|
143
|
-
dns_start_resolving_locked(
|
135
|
+
dns_start_resolving_locked(r);
|
144
136
|
}
|
145
137
|
}
|
146
138
|
|
147
|
-
GRPC_RESOLVER_UNREF(
|
139
|
+
GRPC_RESOLVER_UNREF(&r->base, "retry-timer");
|
148
140
|
}
|
149
141
|
|
150
|
-
static void dns_on_resolved_locked(
|
151
|
-
grpc_error* error) {
|
142
|
+
static void dns_on_resolved_locked(void* arg, grpc_error* error) {
|
152
143
|
dns_resolver* r = (dns_resolver*)arg;
|
153
144
|
grpc_channel_args* result = nullptr;
|
154
145
|
GPR_ASSERT(r->resolving);
|
@@ -168,11 +159,10 @@ static void dns_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
|
|
168
159
|
grpc_arg new_arg = grpc_lb_addresses_create_channel_arg(addresses);
|
169
160
|
result = grpc_channel_args_copy_and_add(r->channel_args, &new_arg, 1);
|
170
161
|
grpc_resolved_addresses_destroy(r->addresses);
|
171
|
-
grpc_lb_addresses_destroy(
|
162
|
+
grpc_lb_addresses_destroy(addresses);
|
172
163
|
} else {
|
173
|
-
grpc_millis next_try =
|
174
|
-
|
175
|
-
grpc_millis timeout = next_try - grpc_exec_ctx_now(exec_ctx);
|
164
|
+
grpc_millis next_try = r->backoff->NextAttemptTime();
|
165
|
+
grpc_millis timeout = next_try - grpc_core::ExecCtx::Get()->Now();
|
176
166
|
gpr_log(GPR_INFO, "dns resolution failed (will retry): %s",
|
177
167
|
grpc_error_string(error));
|
178
168
|
GPR_ASSERT(!r->have_retry_timer);
|
@@ -185,59 +175,56 @@ static void dns_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
|
|
185
175
|
}
|
186
176
|
GRPC_CLOSURE_INIT(&r->on_retry, dns_on_retry_timer_locked, r,
|
187
177
|
grpc_combiner_scheduler(r->base.combiner));
|
188
|
-
grpc_timer_init(
|
178
|
+
grpc_timer_init(&r->retry_timer, next_try, &r->on_retry);
|
189
179
|
}
|
190
180
|
if (r->resolved_result != nullptr) {
|
191
|
-
grpc_channel_args_destroy(
|
181
|
+
grpc_channel_args_destroy(r->resolved_result);
|
192
182
|
}
|
193
183
|
r->resolved_result = result;
|
194
184
|
r->resolved_version++;
|
195
|
-
dns_maybe_finish_next_locked(
|
185
|
+
dns_maybe_finish_next_locked(r);
|
196
186
|
GRPC_ERROR_UNREF(error);
|
197
187
|
|
198
|
-
GRPC_RESOLVER_UNREF(
|
188
|
+
GRPC_RESOLVER_UNREF(&r->base, "dns-resolving");
|
199
189
|
}
|
200
190
|
|
201
|
-
static void dns_start_resolving_locked(
|
202
|
-
dns_resolver* r) {
|
191
|
+
static void dns_start_resolving_locked(dns_resolver* r) {
|
203
192
|
GRPC_RESOLVER_REF(&r->base, "dns-resolving");
|
204
193
|
GPR_ASSERT(!r->resolving);
|
205
194
|
r->resolving = true;
|
206
195
|
r->addresses = nullptr;
|
207
196
|
grpc_resolve_address(
|
208
|
-
|
197
|
+
r->name_to_resolve, r->default_port, r->interested_parties,
|
209
198
|
GRPC_CLOSURE_CREATE(dns_on_resolved_locked, r,
|
210
199
|
grpc_combiner_scheduler(r->base.combiner)),
|
211
200
|
&r->addresses);
|
212
201
|
}
|
213
202
|
|
214
|
-
static void dns_maybe_finish_next_locked(
|
215
|
-
dns_resolver* r) {
|
203
|
+
static void dns_maybe_finish_next_locked(dns_resolver* r) {
|
216
204
|
if (r->next_completion != nullptr &&
|
217
205
|
r->resolved_version != r->published_version) {
|
218
206
|
*r->target_result = r->resolved_result == nullptr
|
219
207
|
? nullptr
|
220
208
|
: grpc_channel_args_copy(r->resolved_result);
|
221
|
-
GRPC_CLOSURE_SCHED(
|
209
|
+
GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_NONE);
|
222
210
|
r->next_completion = nullptr;
|
223
211
|
r->published_version = r->resolved_version;
|
224
212
|
}
|
225
213
|
}
|
226
214
|
|
227
|
-
static void dns_destroy(
|
215
|
+
static void dns_destroy(grpc_resolver* gr) {
|
228
216
|
dns_resolver* r = (dns_resolver*)gr;
|
229
217
|
if (r->resolved_result != nullptr) {
|
230
|
-
grpc_channel_args_destroy(
|
218
|
+
grpc_channel_args_destroy(r->resolved_result);
|
231
219
|
}
|
232
|
-
grpc_pollset_set_destroy(
|
220
|
+
grpc_pollset_set_destroy(r->interested_parties);
|
233
221
|
gpr_free(r->name_to_resolve);
|
234
222
|
gpr_free(r->default_port);
|
235
|
-
grpc_channel_args_destroy(
|
223
|
+
grpc_channel_args_destroy(r->channel_args);
|
236
224
|
gpr_free(r);
|
237
225
|
}
|
238
226
|
|
239
|
-
static grpc_resolver* dns_create(
|
240
|
-
grpc_resolver_args* args,
|
227
|
+
static grpc_resolver* dns_create(grpc_resolver_args* args,
|
241
228
|
const char* default_port) {
|
242
229
|
if (0 != strcmp(args->uri->authority, "")) {
|
243
230
|
gpr_log(GPR_ERROR, "authority based dns uri's not supported");
|
@@ -254,14 +241,15 @@ static grpc_resolver* dns_create(grpc_exec_ctx* exec_ctx,
|
|
254
241
|
r->channel_args = grpc_channel_args_copy(args->args);
|
255
242
|
r->interested_parties = grpc_pollset_set_create();
|
256
243
|
if (args->pollset_set != nullptr) {
|
257
|
-
grpc_pollset_set_add_pollset_set(
|
258
|
-
args->pollset_set);
|
244
|
+
grpc_pollset_set_add_pollset_set(r->interested_parties, args->pollset_set);
|
259
245
|
}
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
246
|
+
grpc_core::BackOff::Options backoff_options;
|
247
|
+
backoff_options
|
248
|
+
.set_initial_backoff(GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS * 1000)
|
249
|
+
.set_multiplier(GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER)
|
250
|
+
.set_jitter(GRPC_DNS_RECONNECT_JITTER)
|
251
|
+
.set_max_backoff(GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000);
|
252
|
+
r->backoff.Init(grpc_core::BackOff(backoff_options));
|
265
253
|
return &r->base;
|
266
254
|
}
|
267
255
|
|
@@ -274,9 +262,8 @@ static void dns_factory_ref(grpc_resolver_factory* factory) {}
|
|
274
262
|
static void dns_factory_unref(grpc_resolver_factory* factory) {}
|
275
263
|
|
276
264
|
static grpc_resolver* dns_factory_create_resolver(
|
277
|
-
|
278
|
-
|
279
|
-
return dns_create(exec_ctx, args, "https");
|
265
|
+
grpc_resolver_factory* factory, grpc_resolver_args* args) {
|
266
|
+
return dns_create(args, "https");
|
280
267
|
}
|
281
268
|
|
282
269
|
static char* dns_factory_get_default_host_name(grpc_resolver_factory* factory,
|
@@ -295,7 +282,7 @@ static grpc_resolver_factory* dns_resolver_factory_create() {
|
|
295
282
|
return &dns_resolver_factory;
|
296
283
|
}
|
297
284
|
|
298
|
-
|
285
|
+
void grpc_resolver_dns_native_init(void) {
|
299
286
|
char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
|
300
287
|
if (resolver != nullptr && gpr_stricmp(resolver, "native") == 0) {
|
301
288
|
gpr_log(GPR_DEBUG, "Using native dns resolver");
|
@@ -313,4 +300,4 @@ extern "C" void grpc_resolver_dns_native_init(void) {
|
|
313
300
|
gpr_free(resolver);
|
314
301
|
}
|
315
302
|
|
316
|
-
|
303
|
+
void grpc_resolver_dns_native_shutdown(void) {}
|
@@ -32,13 +32,13 @@
|
|
32
32
|
#include "src/core/ext/filters/client_channel/parse_address.h"
|
33
33
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
34
34
|
#include "src/core/lib/channel/channel_args.h"
|
35
|
+
#include "src/core/lib/gpr/string.h"
|
35
36
|
#include "src/core/lib/iomgr/closure.h"
|
36
37
|
#include "src/core/lib/iomgr/combiner.h"
|
37
38
|
#include "src/core/lib/iomgr/resolve_address.h"
|
38
39
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
39
40
|
#include "src/core/lib/slice/slice_internal.h"
|
40
41
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
41
|
-
#include "src/core/lib/support/string.h"
|
42
42
|
|
43
43
|
#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
|
44
44
|
|
@@ -67,57 +67,52 @@ typedef struct {
|
|
67
67
|
grpc_channel_args** target_result;
|
68
68
|
} fake_resolver;
|
69
69
|
|
70
|
-
static void fake_resolver_destroy(
|
70
|
+
static void fake_resolver_destroy(grpc_resolver* gr) {
|
71
71
|
fake_resolver* r = (fake_resolver*)gr;
|
72
|
-
grpc_channel_args_destroy(
|
73
|
-
grpc_channel_args_destroy(
|
74
|
-
grpc_channel_args_destroy(
|
72
|
+
grpc_channel_args_destroy(r->next_results);
|
73
|
+
grpc_channel_args_destroy(r->results_upon_error);
|
74
|
+
grpc_channel_args_destroy(r->channel_args);
|
75
75
|
gpr_free(r);
|
76
76
|
}
|
77
77
|
|
78
|
-
static void fake_resolver_shutdown_locked(
|
79
|
-
grpc_resolver* resolver) {
|
78
|
+
static void fake_resolver_shutdown_locked(grpc_resolver* resolver) {
|
80
79
|
fake_resolver* r = (fake_resolver*)resolver;
|
81
80
|
if (r->next_completion != nullptr) {
|
82
81
|
*r->target_result = nullptr;
|
83
|
-
GRPC_CLOSURE_SCHED(
|
84
|
-
|
85
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
|
82
|
+
GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
83
|
+
"Resolver Shutdown"));
|
86
84
|
r->next_completion = nullptr;
|
87
85
|
}
|
88
86
|
}
|
89
87
|
|
90
|
-
static void fake_resolver_maybe_finish_next_locked(
|
91
|
-
fake_resolver* r) {
|
88
|
+
static void fake_resolver_maybe_finish_next_locked(fake_resolver* r) {
|
92
89
|
if (r->next_completion != nullptr && r->next_results != nullptr) {
|
93
90
|
*r->target_result =
|
94
91
|
grpc_channel_args_union(r->next_results, r->channel_args);
|
95
|
-
grpc_channel_args_destroy(
|
92
|
+
grpc_channel_args_destroy(r->next_results);
|
96
93
|
r->next_results = nullptr;
|
97
|
-
GRPC_CLOSURE_SCHED(
|
94
|
+
GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_NONE);
|
98
95
|
r->next_completion = nullptr;
|
99
96
|
}
|
100
97
|
}
|
101
98
|
|
102
|
-
static void fake_resolver_channel_saw_error_locked(
|
103
|
-
grpc_resolver* resolver) {
|
99
|
+
static void fake_resolver_channel_saw_error_locked(grpc_resolver* resolver) {
|
104
100
|
fake_resolver* r = (fake_resolver*)resolver;
|
105
101
|
if (r->next_results == nullptr && r->results_upon_error != nullptr) {
|
106
102
|
// Pretend we re-resolved.
|
107
103
|
r->next_results = grpc_channel_args_copy(r->results_upon_error);
|
108
104
|
}
|
109
|
-
fake_resolver_maybe_finish_next_locked(
|
105
|
+
fake_resolver_maybe_finish_next_locked(r);
|
110
106
|
}
|
111
107
|
|
112
|
-
static void fake_resolver_next_locked(
|
113
|
-
grpc_resolver* resolver,
|
108
|
+
static void fake_resolver_next_locked(grpc_resolver* resolver,
|
114
109
|
grpc_channel_args** target_result,
|
115
110
|
grpc_closure* on_complete) {
|
116
111
|
fake_resolver* r = (fake_resolver*)resolver;
|
117
112
|
GPR_ASSERT(!r->next_completion);
|
118
113
|
r->next_completion = on_complete;
|
119
114
|
r->target_result = target_result;
|
120
|
-
fake_resolver_maybe_finish_next_locked(
|
115
|
+
fake_resolver_maybe_finish_next_locked(r);
|
121
116
|
}
|
122
117
|
|
123
118
|
static const grpc_resolver_vtable fake_resolver_vtable = {
|
@@ -157,33 +152,31 @@ typedef struct set_response_closure_arg {
|
|
157
152
|
grpc_channel_args* next_response;
|
158
153
|
} set_response_closure_arg;
|
159
154
|
|
160
|
-
static void set_response_closure_fn(
|
161
|
-
grpc_error* error) {
|
155
|
+
static void set_response_closure_fn(void* arg, grpc_error* error) {
|
162
156
|
set_response_closure_arg* closure_arg = (set_response_closure_arg*)arg;
|
163
157
|
grpc_fake_resolver_response_generator* generator = closure_arg->generator;
|
164
158
|
fake_resolver* r = generator->resolver;
|
165
159
|
if (r->next_results != nullptr) {
|
166
|
-
grpc_channel_args_destroy(
|
160
|
+
grpc_channel_args_destroy(r->next_results);
|
167
161
|
}
|
168
162
|
r->next_results = closure_arg->next_response;
|
169
163
|
if (r->results_upon_error != nullptr) {
|
170
|
-
grpc_channel_args_destroy(
|
164
|
+
grpc_channel_args_destroy(r->results_upon_error);
|
171
165
|
}
|
172
166
|
r->results_upon_error = grpc_channel_args_copy(closure_arg->next_response);
|
173
167
|
gpr_free(closure_arg);
|
174
|
-
fake_resolver_maybe_finish_next_locked(
|
168
|
+
fake_resolver_maybe_finish_next_locked(r);
|
175
169
|
}
|
176
170
|
|
177
171
|
void grpc_fake_resolver_response_generator_set_response(
|
178
|
-
|
172
|
+
grpc_fake_resolver_response_generator* generator,
|
179
173
|
grpc_channel_args* next_response) {
|
180
174
|
GPR_ASSERT(generator->resolver != nullptr);
|
181
175
|
set_response_closure_arg* closure_arg =
|
182
176
|
(set_response_closure_arg*)gpr_zalloc(sizeof(*closure_arg));
|
183
177
|
closure_arg->generator = generator;
|
184
178
|
closure_arg->next_response = grpc_channel_args_copy(next_response);
|
185
|
-
GRPC_CLOSURE_SCHED(
|
186
|
-
GRPC_CLOSURE_INIT(&closure_arg->set_response_closure,
|
179
|
+
GRPC_CLOSURE_SCHED(GRPC_CLOSURE_INIT(&closure_arg->set_response_closure,
|
187
180
|
set_response_closure_fn, closure_arg,
|
188
181
|
grpc_combiner_scheduler(
|
189
182
|
generator->resolver->base.combiner)),
|
@@ -195,7 +188,7 @@ static void* response_generator_arg_copy(void* p) {
|
|
195
188
|
(grpc_fake_resolver_response_generator*)p);
|
196
189
|
}
|
197
190
|
|
198
|
-
static void response_generator_arg_destroy(
|
191
|
+
static void response_generator_arg_destroy(void* p) {
|
199
192
|
grpc_fake_resolver_response_generator_unref(
|
200
193
|
(grpc_fake_resolver_response_generator*)p);
|
201
194
|
}
|
@@ -232,8 +225,7 @@ static void fake_resolver_factory_ref(grpc_resolver_factory* factory) {}
|
|
232
225
|
|
233
226
|
static void fake_resolver_factory_unref(grpc_resolver_factory* factory) {}
|
234
227
|
|
235
|
-
static grpc_resolver* fake_resolver_create(
|
236
|
-
grpc_resolver_factory* factory,
|
228
|
+
static grpc_resolver* fake_resolver_create(grpc_resolver_factory* factory,
|
237
229
|
grpc_resolver_args* args) {
|
238
230
|
fake_resolver* r = (fake_resolver*)gpr_zalloc(sizeof(*r));
|
239
231
|
r->channel_args = grpc_channel_args_copy(args->args);
|
@@ -258,8 +250,8 @@ static const grpc_resolver_factory_vtable fake_resolver_factory_vtable = {
|
|
258
250
|
static grpc_resolver_factory fake_resolver_factory = {
|
259
251
|
&fake_resolver_factory_vtable};
|
260
252
|
|
261
|
-
|
253
|
+
void grpc_resolver_fake_init(void) {
|
262
254
|
grpc_register_resolver_type(&fake_resolver_factory);
|
263
255
|
}
|
264
256
|
|
265
|
-
|
257
|
+
void grpc_resolver_fake_shutdown(void) {}
|
@@ -21,10 +21,6 @@
|
|
21
21
|
#include "src/core/ext/filters/client_channel/uri_parser.h"
|
22
22
|
#include "src/core/lib/channel/channel_args.h"
|
23
23
|
|
24
|
-
#ifdef __cplusplus
|
25
|
-
extern "C" {
|
26
|
-
#endif
|
27
|
-
|
28
24
|
#define GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR \
|
29
25
|
"grpc.fake_resolver.response_generator"
|
30
26
|
|
@@ -43,7 +39,7 @@ grpc_fake_resolver_response_generator_create();
|
|
43
39
|
// Instruct the fake resolver associated with the \a response_generator instance
|
44
40
|
// to trigger a new resolution for \a uri and \a args.
|
45
41
|
void grpc_fake_resolver_response_generator_set_response(
|
46
|
-
|
42
|
+
grpc_fake_resolver_response_generator* generator,
|
47
43
|
grpc_channel_args* next_response);
|
48
44
|
|
49
45
|
// Return a \a grpc_arg for a \a grpc_fake_resolver_response_generator instance.
|
@@ -60,9 +56,5 @@ grpc_fake_resolver_response_generator_ref(
|
|
60
56
|
void grpc_fake_resolver_response_generator_unref(
|
61
57
|
grpc_fake_resolver_response_generator* generator);
|
62
58
|
|
63
|
-
#ifdef __cplusplus
|
64
|
-
}
|
65
|
-
#endif
|
66
|
-
|
67
59
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_FAKE_FAKE_RESOLVER_H \
|
68
60
|
*/
|
@@ -30,12 +30,12 @@
|
|
30
30
|
#include "src/core/ext/filters/client_channel/parse_address.h"
|
31
31
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
32
32
|
#include "src/core/lib/channel/channel_args.h"
|
33
|
+
#include "src/core/lib/gpr/string.h"
|
33
34
|
#include "src/core/lib/iomgr/combiner.h"
|
34
35
|
#include "src/core/lib/iomgr/resolve_address.h"
|
35
36
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
36
37
|
#include "src/core/lib/slice/slice_internal.h"
|
37
38
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
38
|
-
#include "src/core/lib/support/string.h"
|
39
39
|
|
40
40
|
typedef struct {
|
41
41
|
/** base class: must be first */
|
@@ -52,15 +52,13 @@ typedef struct {
|
|
52
52
|
grpc_channel_args** target_result;
|
53
53
|
} sockaddr_resolver;
|
54
54
|
|
55
|
-
static void sockaddr_destroy(
|
55
|
+
static void sockaddr_destroy(grpc_resolver* r);
|
56
56
|
|
57
|
-
static void sockaddr_maybe_finish_next_locked(
|
58
|
-
sockaddr_resolver* r);
|
57
|
+
static void sockaddr_maybe_finish_next_locked(sockaddr_resolver* r);
|
59
58
|
|
60
|
-
static void sockaddr_shutdown_locked(
|
61
|
-
static void sockaddr_channel_saw_error_locked(
|
62
|
-
|
63
|
-
static void sockaddr_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r,
|
59
|
+
static void sockaddr_shutdown_locked(grpc_resolver* r);
|
60
|
+
static void sockaddr_channel_saw_error_locked(grpc_resolver* r);
|
61
|
+
static void sockaddr_next_locked(grpc_resolver* r,
|
64
62
|
grpc_channel_args** target_result,
|
65
63
|
grpc_closure* on_complete);
|
66
64
|
|
@@ -68,52 +66,47 @@ static const grpc_resolver_vtable sockaddr_resolver_vtable = {
|
|
68
66
|
sockaddr_destroy, sockaddr_shutdown_locked,
|
69
67
|
sockaddr_channel_saw_error_locked, sockaddr_next_locked};
|
70
68
|
|
71
|
-
static void sockaddr_shutdown_locked(
|
72
|
-
grpc_resolver* resolver) {
|
69
|
+
static void sockaddr_shutdown_locked(grpc_resolver* resolver) {
|
73
70
|
sockaddr_resolver* r = (sockaddr_resolver*)resolver;
|
74
71
|
if (r->next_completion != nullptr) {
|
75
72
|
*r->target_result = nullptr;
|
76
|
-
GRPC_CLOSURE_SCHED(
|
77
|
-
|
78
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
|
73
|
+
GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
74
|
+
"Resolver Shutdown"));
|
79
75
|
r->next_completion = nullptr;
|
80
76
|
}
|
81
77
|
}
|
82
78
|
|
83
|
-
static void sockaddr_channel_saw_error_locked(
|
84
|
-
grpc_resolver* resolver) {
|
79
|
+
static void sockaddr_channel_saw_error_locked(grpc_resolver* resolver) {
|
85
80
|
sockaddr_resolver* r = (sockaddr_resolver*)resolver;
|
86
81
|
r->published = false;
|
87
|
-
sockaddr_maybe_finish_next_locked(
|
82
|
+
sockaddr_maybe_finish_next_locked(r);
|
88
83
|
}
|
89
84
|
|
90
|
-
static void sockaddr_next_locked(
|
91
|
-
grpc_resolver* resolver,
|
85
|
+
static void sockaddr_next_locked(grpc_resolver* resolver,
|
92
86
|
grpc_channel_args** target_result,
|
93
87
|
grpc_closure* on_complete) {
|
94
88
|
sockaddr_resolver* r = (sockaddr_resolver*)resolver;
|
95
89
|
GPR_ASSERT(!r->next_completion);
|
96
90
|
r->next_completion = on_complete;
|
97
91
|
r->target_result = target_result;
|
98
|
-
sockaddr_maybe_finish_next_locked(
|
92
|
+
sockaddr_maybe_finish_next_locked(r);
|
99
93
|
}
|
100
94
|
|
101
|
-
static void sockaddr_maybe_finish_next_locked(
|
102
|
-
sockaddr_resolver* r) {
|
95
|
+
static void sockaddr_maybe_finish_next_locked(sockaddr_resolver* r) {
|
103
96
|
if (r->next_completion != nullptr && !r->published) {
|
104
97
|
r->published = true;
|
105
98
|
grpc_arg arg = grpc_lb_addresses_create_channel_arg(r->addresses);
|
106
99
|
*r->target_result =
|
107
100
|
grpc_channel_args_copy_and_add(r->channel_args, &arg, 1);
|
108
|
-
GRPC_CLOSURE_SCHED(
|
101
|
+
GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_NONE);
|
109
102
|
r->next_completion = nullptr;
|
110
103
|
}
|
111
104
|
}
|
112
105
|
|
113
|
-
static void sockaddr_destroy(
|
106
|
+
static void sockaddr_destroy(grpc_resolver* gr) {
|
114
107
|
sockaddr_resolver* r = (sockaddr_resolver*)gr;
|
115
|
-
grpc_lb_addresses_destroy(
|
116
|
-
grpc_channel_args_destroy(
|
108
|
+
grpc_lb_addresses_destroy(r->addresses);
|
109
|
+
grpc_channel_args_destroy(r->channel_args);
|
117
110
|
gpr_free(r);
|
118
111
|
}
|
119
112
|
|
@@ -142,8 +135,7 @@ char* unix_get_default_authority(grpc_resolver_factory* factory,
|
|
142
135
|
|
143
136
|
static void do_nothing(void* ignored) {}
|
144
137
|
|
145
|
-
static grpc_resolver* sockaddr_create(
|
146
|
-
grpc_resolver_args* args,
|
138
|
+
static grpc_resolver* sockaddr_create(grpc_resolver_args* args,
|
147
139
|
bool parse(const grpc_uri* uri,
|
148
140
|
grpc_resolved_address* dst)) {
|
149
141
|
if (0 != strcmp(args->uri->authority, "")) {
|
@@ -170,10 +162,10 @@ static grpc_resolver* sockaddr_create(grpc_exec_ctx* exec_ctx,
|
|
170
162
|
gpr_free(part_str);
|
171
163
|
if (errors_found) break;
|
172
164
|
}
|
173
|
-
grpc_slice_buffer_destroy_internal(
|
174
|
-
grpc_slice_unref_internal(
|
165
|
+
grpc_slice_buffer_destroy_internal(&path_parts);
|
166
|
+
grpc_slice_unref_internal(path_slice);
|
175
167
|
if (errors_found) {
|
176
|
-
grpc_lb_addresses_destroy(
|
168
|
+
grpc_lb_addresses_destroy(addresses);
|
177
169
|
return nullptr;
|
178
170
|
}
|
179
171
|
/* Instantiate resolver. */
|
@@ -195,9 +187,8 @@ static void sockaddr_factory_unref(grpc_resolver_factory* factory) {}
|
|
195
187
|
|
196
188
|
#define DECL_FACTORY(name) \
|
197
189
|
static grpc_resolver* name##_factory_create_resolver( \
|
198
|
-
|
199
|
-
|
200
|
-
return sockaddr_create(exec_ctx, args, grpc_parse_##name); \
|
190
|
+
grpc_resolver_factory* factory, grpc_resolver_args* args) { \
|
191
|
+
return sockaddr_create(args, grpc_parse_##name); \
|
201
192
|
} \
|
202
193
|
static const grpc_resolver_factory_vtable name##_factory_vtable = { \
|
203
194
|
sockaddr_factory_ref, sockaddr_factory_unref, \
|
@@ -211,7 +202,7 @@ DECL_FACTORY(unix);
|
|
211
202
|
DECL_FACTORY(ipv4);
|
212
203
|
DECL_FACTORY(ipv6);
|
213
204
|
|
214
|
-
|
205
|
+
void grpc_resolver_sockaddr_init(void) {
|
215
206
|
grpc_register_resolver_type(&ipv4_resolver_factory);
|
216
207
|
grpc_register_resolver_type(&ipv6_resolver_factory);
|
217
208
|
#ifdef GRPC_HAVE_UNIX_SOCKET
|
@@ -219,4 +210,4 @@ extern "C" void grpc_resolver_sockaddr_init(void) {
|
|
219
210
|
#endif
|
220
211
|
}
|
221
212
|
|
222
|
-
|
213
|
+
void grpc_resolver_sockaddr_shutdown(void) {}
|