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
@@ -28,15 +28,15 @@
|
|
28
28
|
#include <sys/socket.h>
|
29
29
|
#include <sys/types.h>
|
30
30
|
|
31
|
-
int grpc_accept4(int sockfd, grpc_resolved_address
|
31
|
+
int grpc_accept4(int sockfd, grpc_resolved_address* resolved_addr, int nonblock,
|
32
32
|
int cloexec) {
|
33
33
|
int flags = 0;
|
34
34
|
GPR_ASSERT(sizeof(socklen_t) <= sizeof(size_t));
|
35
35
|
GPR_ASSERT(resolved_addr->len <= (socklen_t)-1);
|
36
36
|
flags |= nonblock ? SOCK_NONBLOCK : 0;
|
37
37
|
flags |= cloexec ? SOCK_CLOEXEC : 0;
|
38
|
-
return accept4(sockfd, (struct sockaddr
|
39
|
-
(socklen_t
|
38
|
+
return accept4(sockfd, (struct sockaddr*)resolved_addr->addr,
|
39
|
+
(socklen_t*)&resolved_addr->len, flags);
|
40
40
|
}
|
41
41
|
|
42
42
|
#endif
|
@@ -29,13 +29,13 @@
|
|
29
29
|
#include <grpc/support/log.h>
|
30
30
|
#include "src/core/lib/iomgr/sockaddr.h"
|
31
31
|
|
32
|
-
int grpc_accept4(int sockfd, grpc_resolved_address
|
32
|
+
int grpc_accept4(int sockfd, grpc_resolved_address* resolved_addr, int nonblock,
|
33
33
|
int cloexec) {
|
34
34
|
int fd, flags;
|
35
35
|
GPR_ASSERT(sizeof(socklen_t) <= sizeof(size_t));
|
36
36
|
GPR_ASSERT(resolved_addr->len <= (socklen_t)-1);
|
37
|
-
fd = accept(sockfd, (struct sockaddr
|
38
|
-
(socklen_t
|
37
|
+
fd = accept(sockfd, (struct sockaddr*)resolved_addr->addr,
|
38
|
+
(socklen_t*)&resolved_addr->len);
|
39
39
|
if (fd >= 0) {
|
40
40
|
if (nonblock) {
|
41
41
|
flags = fcntl(fd, F_GETFL, 0);
|
@@ -29,24 +29,28 @@
|
|
29
29
|
#include "src/core/lib/iomgr/socket_factory_posix.h"
|
30
30
|
#include "src/core/lib/iomgr/socket_mutator.h"
|
31
31
|
|
32
|
+
#ifdef __cplusplus
|
33
|
+
extern "C" {
|
34
|
+
#endif
|
35
|
+
|
32
36
|
/* a wrapper for accept or accept4 */
|
33
|
-
int grpc_accept4(int sockfd, grpc_resolved_address
|
37
|
+
int grpc_accept4(int sockfd, grpc_resolved_address* resolved_addr, int nonblock,
|
34
38
|
int cloexec);
|
35
39
|
|
36
40
|
/* set a socket to non blocking mode */
|
37
|
-
grpc_error
|
41
|
+
grpc_error* grpc_set_socket_nonblocking(int fd, int non_blocking);
|
38
42
|
|
39
43
|
/* set a socket to close on exec */
|
40
|
-
grpc_error
|
44
|
+
grpc_error* grpc_set_socket_cloexec(int fd, int close_on_exec);
|
41
45
|
|
42
46
|
/* set a socket to reuse old addresses */
|
43
|
-
grpc_error
|
47
|
+
grpc_error* grpc_set_socket_reuse_addr(int fd, int reuse);
|
44
48
|
|
45
49
|
/* disable nagle */
|
46
|
-
grpc_error
|
50
|
+
grpc_error* grpc_set_socket_low_latency(int fd, int low_latency);
|
47
51
|
|
48
52
|
/* set SO_REUSEPORT */
|
49
|
-
grpc_error
|
53
|
+
grpc_error* grpc_set_socket_reuse_port(int fd, int reuse);
|
50
54
|
|
51
55
|
/* Returns true if this system can create AF_INET6 sockets bound to ::1.
|
52
56
|
The value is probed once, and cached for the life of the process.
|
@@ -60,24 +64,24 @@ int grpc_ipv6_loopback_available(void);
|
|
60
64
|
|
61
65
|
/* Tries to set SO_NOSIGPIPE if available on this platform.
|
62
66
|
If SO_NO_SIGPIPE is not available, returns 1. */
|
63
|
-
grpc_error
|
67
|
+
grpc_error* grpc_set_socket_no_sigpipe_if_possible(int fd);
|
64
68
|
|
65
69
|
/* Tries to set IP_PKTINFO if available on this platform.
|
66
70
|
If IP_PKTINFO is not available, returns 1. */
|
67
|
-
grpc_error
|
71
|
+
grpc_error* grpc_set_socket_ip_pktinfo_if_possible(int fd);
|
68
72
|
|
69
73
|
/* Tries to set IPV6_RECVPKTINFO if available on this platform.
|
70
74
|
If IPV6_RECVPKTINFO is not available, returns 1. */
|
71
|
-
grpc_error
|
75
|
+
grpc_error* grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd);
|
72
76
|
|
73
77
|
/* Tries to set the socket's send buffer to given size. */
|
74
|
-
grpc_error
|
78
|
+
grpc_error* grpc_set_socket_sndbuf(int fd, int buffer_size_bytes);
|
75
79
|
|
76
80
|
/* Tries to set the socket's receive buffer to given size. */
|
77
|
-
grpc_error
|
81
|
+
grpc_error* grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes);
|
78
82
|
|
79
83
|
/* Tries to set the socket using a grpc_socket_mutator */
|
80
|
-
grpc_error
|
84
|
+
grpc_error* grpc_set_socket_with_mutator(int fd, grpc_socket_mutator* mutator);
|
81
85
|
|
82
86
|
/* An enum to keep track of IPv4/IPv6 socket modes.
|
83
87
|
|
@@ -118,15 +122,19 @@ extern int grpc_forbid_dualstack_sockets_for_testing;
|
|
118
122
|
IPv4, so that bind() or connect() see the correct family.
|
119
123
|
Also, it's important to distinguish between DUALSTACK and IPV6 when
|
120
124
|
listening on the [::] wildcard address. */
|
121
|
-
grpc_error
|
125
|
+
grpc_error* grpc_create_dualstack_socket(const grpc_resolved_address* addr,
|
122
126
|
int type, int protocol,
|
123
|
-
grpc_dualstack_mode
|
124
|
-
int
|
127
|
+
grpc_dualstack_mode* dsmode,
|
128
|
+
int* newfd);
|
125
129
|
|
126
130
|
/* Same as grpc_create_dualstack_socket(), but use the given socket factory (if
|
127
131
|
non-null) to create the socket, rather than calling socket() directly. */
|
128
|
-
grpc_error
|
129
|
-
grpc_socket_factory
|
130
|
-
int protocol, grpc_dualstack_mode
|
132
|
+
grpc_error* grpc_create_dualstack_socket_using_factory(
|
133
|
+
grpc_socket_factory* factory, const grpc_resolved_address* addr, int type,
|
134
|
+
int protocol, grpc_dualstack_mode* dsmode, int* newfd);
|
135
|
+
|
136
|
+
#ifdef __cplusplus
|
137
|
+
}
|
138
|
+
#endif
|
131
139
|
|
132
140
|
#endif /* GRPC_CORE_LIB_IOMGR_SOCKET_UTILS_POSIX_H */
|
@@ -25,9 +25,9 @@
|
|
25
25
|
|
26
26
|
#include <grpc/support/log.h>
|
27
27
|
|
28
|
-
const char
|
28
|
+
const char* grpc_inet_ntop(int af, const void* src, char* dst, size_t size) {
|
29
29
|
/* Windows InetNtopA wants a mutable ip pointer */
|
30
|
-
return InetNtopA(af, (void
|
30
|
+
return InetNtopA(af, (void*)src, dst, size);
|
31
31
|
}
|
32
32
|
|
33
33
|
#endif /* GRPC_WINDOWS_SOCKETUTILS */
|
@@ -36,9 +36,9 @@
|
|
36
36
|
#include "src/core/lib/iomgr/pollset_windows.h"
|
37
37
|
#include "src/core/lib/iomgr/socket_windows.h"
|
38
38
|
|
39
|
-
grpc_winsocket
|
40
|
-
char
|
41
|
-
grpc_winsocket
|
39
|
+
grpc_winsocket* grpc_winsocket_create(SOCKET socket, const char* name) {
|
40
|
+
char* final_name;
|
41
|
+
grpc_winsocket* r = (grpc_winsocket*)gpr_malloc(sizeof(grpc_winsocket));
|
42
42
|
memset(r, 0, sizeof(grpc_winsocket));
|
43
43
|
r->socket = socket;
|
44
44
|
gpr_mu_init(&r->state_mu);
|
@@ -53,7 +53,7 @@ grpc_winsocket *grpc_winsocket_create(SOCKET socket, const char *name) {
|
|
53
53
|
operations to abort them. We need to do that this way because of the
|
54
54
|
various callsites of that function, which happens to be in various
|
55
55
|
mutex hold states, and that'd be unsafe to call them directly. */
|
56
|
-
void grpc_winsocket_shutdown(grpc_winsocket
|
56
|
+
void grpc_winsocket_shutdown(grpc_winsocket* winsocket) {
|
57
57
|
/* Grab the function pointer for DisconnectEx for that specific socket.
|
58
58
|
It may change depending on the interface. */
|
59
59
|
int status;
|
@@ -76,7 +76,7 @@ void grpc_winsocket_shutdown(grpc_winsocket *winsocket) {
|
|
76
76
|
if (status == 0) {
|
77
77
|
DisconnectEx(winsocket->socket, NULL, 0, 0);
|
78
78
|
} else {
|
79
|
-
char
|
79
|
+
char* utf8_message = gpr_format_message(WSAGetLastError());
|
80
80
|
gpr_log(GPR_INFO, "Unable to retrieve DisconnectEx pointer : %s",
|
81
81
|
utf8_message);
|
82
82
|
gpr_free(utf8_message);
|
@@ -84,19 +84,19 @@ void grpc_winsocket_shutdown(grpc_winsocket *winsocket) {
|
|
84
84
|
closesocket(winsocket->socket);
|
85
85
|
}
|
86
86
|
|
87
|
-
static void destroy(grpc_winsocket
|
87
|
+
static void destroy(grpc_winsocket* winsocket) {
|
88
88
|
grpc_iomgr_unregister_object(&winsocket->iomgr_object);
|
89
89
|
gpr_mu_destroy(&winsocket->state_mu);
|
90
90
|
gpr_free(winsocket);
|
91
91
|
}
|
92
92
|
|
93
|
-
static bool check_destroyable(grpc_winsocket
|
93
|
+
static bool check_destroyable(grpc_winsocket* winsocket) {
|
94
94
|
return winsocket->destroy_called == true &&
|
95
95
|
winsocket->write_info.closure == NULL &&
|
96
96
|
winsocket->read_info.closure == NULL;
|
97
97
|
}
|
98
98
|
|
99
|
-
void grpc_winsocket_destroy(grpc_winsocket
|
99
|
+
void grpc_winsocket_destroy(grpc_winsocket* winsocket) {
|
100
100
|
gpr_mu_lock(&winsocket->state_mu);
|
101
101
|
GPR_ASSERT(!winsocket->destroy_called);
|
102
102
|
winsocket->destroy_called = true;
|
@@ -109,9 +109,9 @@ void grpc_winsocket_destroy(grpc_winsocket *winsocket) {
|
|
109
109
|
-) The IOCP already completed in the background, and we need to call
|
110
110
|
the callback now.
|
111
111
|
-) The IOCP hasn't completed yet, and we're queuing it for later. */
|
112
|
-
static void socket_notify_on_iocp(grpc_exec_ctx
|
113
|
-
grpc_winsocket
|
114
|
-
grpc_winsocket_callback_info
|
112
|
+
static void socket_notify_on_iocp(grpc_exec_ctx* exec_ctx,
|
113
|
+
grpc_winsocket* socket, grpc_closure* closure,
|
114
|
+
grpc_winsocket_callback_info* info) {
|
115
115
|
GPR_ASSERT(info->closure == NULL);
|
116
116
|
gpr_mu_lock(&socket->state_mu);
|
117
117
|
if (info->has_pending_iocp) {
|
@@ -123,19 +123,19 @@ static void socket_notify_on_iocp(grpc_exec_ctx *exec_ctx,
|
|
123
123
|
gpr_mu_unlock(&socket->state_mu);
|
124
124
|
}
|
125
125
|
|
126
|
-
void grpc_socket_notify_on_write(grpc_exec_ctx
|
127
|
-
grpc_winsocket
|
128
|
-
grpc_closure
|
126
|
+
void grpc_socket_notify_on_write(grpc_exec_ctx* exec_ctx,
|
127
|
+
grpc_winsocket* socket,
|
128
|
+
grpc_closure* closure) {
|
129
129
|
socket_notify_on_iocp(exec_ctx, socket, closure, &socket->write_info);
|
130
130
|
}
|
131
131
|
|
132
|
-
void grpc_socket_notify_on_read(grpc_exec_ctx
|
133
|
-
grpc_closure
|
132
|
+
void grpc_socket_notify_on_read(grpc_exec_ctx* exec_ctx, grpc_winsocket* socket,
|
133
|
+
grpc_closure* closure) {
|
134
134
|
socket_notify_on_iocp(exec_ctx, socket, closure, &socket->read_info);
|
135
135
|
}
|
136
136
|
|
137
|
-
void grpc_socket_become_ready(grpc_exec_ctx
|
138
|
-
grpc_winsocket_callback_info
|
137
|
+
void grpc_socket_become_ready(grpc_exec_ctx* exec_ctx, grpc_winsocket* socket,
|
138
|
+
grpc_winsocket_callback_info* info) {
|
139
139
|
GPR_ASSERT(!info->has_pending_iocp);
|
140
140
|
gpr_mu_lock(&socket->state_mu);
|
141
141
|
if (info->closure) {
|
@@ -20,6 +20,9 @@
|
|
20
20
|
#define GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
|
+
#include "src/core/lib/iomgr/port.h"
|
24
|
+
|
25
|
+
#ifdef GRPC_WINSOCK_SOCKET
|
23
26
|
#include <winsock2.h>
|
24
27
|
|
25
28
|
#include <grpc/support/atm.h>
|
@@ -28,6 +31,10 @@
|
|
28
31
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
29
32
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
30
33
|
|
34
|
+
#ifdef __cplusplus
|
35
|
+
extern "C" {
|
36
|
+
#endif
|
37
|
+
|
31
38
|
/* This holds the data for an outstanding read or write on a socket.
|
32
39
|
The mutex to protect the concurrent access to that data is the one
|
33
40
|
inside the winsocket wrapper. */
|
@@ -40,7 +47,7 @@ typedef struct grpc_winsocket_callback_info {
|
|
40
47
|
OVERLAPPED overlapped;
|
41
48
|
/* The callback information for the pending operation. May be empty if the
|
42
49
|
caller hasn't registered a callback yet. */
|
43
|
-
grpc_closure
|
50
|
+
grpc_closure* closure;
|
44
51
|
/* A boolean to describe if the IO Completion Port got a notification for
|
45
52
|
that operation. This will happen if the operation completed before the
|
46
53
|
called had time to register a callback. We could avoid that behavior
|
@@ -86,25 +93,31 @@ typedef struct grpc_winsocket {
|
|
86
93
|
|
87
94
|
/* Create a wrapped windows handle. This takes ownership of it, meaning that
|
88
95
|
it will be responsible for closing it. */
|
89
|
-
grpc_winsocket
|
96
|
+
grpc_winsocket* grpc_winsocket_create(SOCKET socket, const char* name);
|
90
97
|
|
91
98
|
/* Initiate an asynchronous shutdown of the socket. Will call off any pending
|
92
99
|
operation to cancel them. */
|
93
|
-
void grpc_winsocket_shutdown(grpc_winsocket
|
100
|
+
void grpc_winsocket_shutdown(grpc_winsocket* socket);
|
94
101
|
|
95
102
|
/* Destroy a socket. Should only be called if there's no pending operation. */
|
96
|
-
void grpc_winsocket_destroy(grpc_winsocket
|
103
|
+
void grpc_winsocket_destroy(grpc_winsocket* socket);
|
104
|
+
|
105
|
+
void grpc_socket_notify_on_write(grpc_exec_ctx* exec_ctx,
|
106
|
+
grpc_winsocket* winsocket,
|
107
|
+
grpc_closure* closure);
|
108
|
+
|
109
|
+
void grpc_socket_notify_on_read(grpc_exec_ctx* exec_ctx,
|
110
|
+
grpc_winsocket* winsocket,
|
111
|
+
grpc_closure* closure);
|
97
112
|
|
98
|
-
void
|
99
|
-
|
100
|
-
|
113
|
+
void grpc_socket_become_ready(grpc_exec_ctx* exec_ctx,
|
114
|
+
grpc_winsocket* winsocket,
|
115
|
+
grpc_winsocket_callback_info* ci);
|
101
116
|
|
102
|
-
|
103
|
-
|
104
|
-
|
117
|
+
#ifdef __cplusplus
|
118
|
+
}
|
119
|
+
#endif
|
105
120
|
|
106
|
-
|
107
|
-
grpc_winsocket *winsocket,
|
108
|
-
grpc_winsocket_callback_info *ci);
|
121
|
+
#endif
|
109
122
|
|
110
123
|
#endif /* GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H */
|
@@ -25,16 +25,24 @@
|
|
25
25
|
#include "src/core/lib/iomgr/pollset_set.h"
|
26
26
|
#include "src/core/lib/iomgr/resolve_address.h"
|
27
27
|
|
28
|
+
#ifdef __cplusplus
|
29
|
+
extern "C" {
|
30
|
+
#endif
|
31
|
+
|
28
32
|
/* Asynchronously connect to an address (specified as (addr, len)), and call
|
29
33
|
cb with arg and the completed connection when done (or call cb with arg and
|
30
34
|
NULL on failure).
|
31
35
|
interested_parties points to a set of pollsets that would be interested
|
32
36
|
in this connection being established (in order to continue their work) */
|
33
|
-
void grpc_tcp_client_connect(grpc_exec_ctx
|
34
|
-
grpc_endpoint
|
35
|
-
grpc_pollset_set
|
36
|
-
const grpc_channel_args
|
37
|
-
const grpc_resolved_address
|
38
|
-
|
37
|
+
void grpc_tcp_client_connect(grpc_exec_ctx* exec_ctx, grpc_closure* on_connect,
|
38
|
+
grpc_endpoint** endpoint,
|
39
|
+
grpc_pollset_set* interested_parties,
|
40
|
+
const grpc_channel_args* channel_args,
|
41
|
+
const grpc_resolved_address* addr,
|
42
|
+
grpc_millis deadline);
|
43
|
+
|
44
|
+
#ifdef __cplusplus
|
45
|
+
}
|
46
|
+
#endif
|
39
47
|
|
40
48
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_CLIENT_H */
|
@@ -43,26 +43,25 @@
|
|
43
43
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
44
44
|
#include "src/core/lib/support/string.h"
|
45
45
|
|
46
|
-
extern
|
46
|
+
extern grpc_core::TraceFlag grpc_tcp_trace;
|
47
47
|
|
48
48
|
typedef struct {
|
49
49
|
gpr_mu mu;
|
50
|
-
grpc_fd
|
51
|
-
gpr_timespec deadline;
|
50
|
+
grpc_fd* fd;
|
52
51
|
grpc_timer alarm;
|
53
52
|
grpc_closure on_alarm;
|
54
53
|
int refs;
|
55
54
|
grpc_closure write_closure;
|
56
|
-
grpc_pollset_set
|
57
|
-
char
|
58
|
-
grpc_endpoint
|
59
|
-
grpc_closure
|
60
|
-
grpc_channel_args
|
55
|
+
grpc_pollset_set* interested_parties;
|
56
|
+
char* addr_str;
|
57
|
+
grpc_endpoint** ep;
|
58
|
+
grpc_closure* closure;
|
59
|
+
grpc_channel_args* channel_args;
|
61
60
|
} async_connect;
|
62
61
|
|
63
|
-
static grpc_error
|
64
|
-
const grpc_channel_args
|
65
|
-
grpc_error
|
62
|
+
static grpc_error* prepare_socket(const grpc_resolved_address* addr, int fd,
|
63
|
+
const grpc_channel_args* channel_args) {
|
64
|
+
grpc_error* err = GRPC_ERROR_NONE;
|
66
65
|
|
67
66
|
GPR_ASSERT(fd >= 0);
|
68
67
|
|
@@ -80,8 +79,8 @@ static grpc_error *prepare_socket(const grpc_resolved_address *addr, int fd,
|
|
80
79
|
for (size_t i = 0; i < channel_args->num_args; i++) {
|
81
80
|
if (0 == strcmp(channel_args->args[i].key, GRPC_ARG_SOCKET_MUTATOR)) {
|
82
81
|
GPR_ASSERT(channel_args->args[i].type == GRPC_ARG_POINTER);
|
83
|
-
grpc_socket_mutator
|
84
|
-
(grpc_socket_mutator
|
82
|
+
grpc_socket_mutator* mutator =
|
83
|
+
(grpc_socket_mutator*)channel_args->args[i].value.pointer.p;
|
85
84
|
err = grpc_set_socket_with_mutator(fd, mutator);
|
86
85
|
if (err != GRPC_ERROR_NONE) goto error;
|
87
86
|
}
|
@@ -97,18 +96,19 @@ done:
|
|
97
96
|
return err;
|
98
97
|
}
|
99
98
|
|
100
|
-
static void tc_on_alarm(grpc_exec_ctx
|
99
|
+
static void tc_on_alarm(grpc_exec_ctx* exec_ctx, void* acp, grpc_error* error) {
|
101
100
|
int done;
|
102
|
-
async_connect
|
103
|
-
if (
|
104
|
-
const char
|
101
|
+
async_connect* ac = (async_connect*)acp;
|
102
|
+
if (grpc_tcp_trace.enabled()) {
|
103
|
+
const char* str = grpc_error_string(error);
|
105
104
|
gpr_log(GPR_DEBUG, "CLIENT_CONNECT: %s: on_alarm: error=%s", ac->addr_str,
|
106
105
|
str);
|
107
106
|
}
|
108
107
|
gpr_mu_lock(&ac->mu);
|
109
|
-
if (ac->fd !=
|
110
|
-
grpc_fd_shutdown(
|
111
|
-
|
108
|
+
if (ac->fd != nullptr) {
|
109
|
+
grpc_fd_shutdown(
|
110
|
+
exec_ctx, ac->fd,
|
111
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING("connect() timed out"));
|
112
112
|
}
|
113
113
|
done = (--ac->refs == 0);
|
114
114
|
gpr_mu_unlock(&ac->mu);
|
@@ -120,26 +120,26 @@ static void tc_on_alarm(grpc_exec_ctx *exec_ctx, void *acp, grpc_error *error) {
|
|
120
120
|
}
|
121
121
|
}
|
122
122
|
|
123
|
-
grpc_endpoint
|
124
|
-
grpc_exec_ctx
|
125
|
-
const char
|
123
|
+
grpc_endpoint* grpc_tcp_client_create_from_fd(
|
124
|
+
grpc_exec_ctx* exec_ctx, grpc_fd* fd, const grpc_channel_args* channel_args,
|
125
|
+
const char* addr_str) {
|
126
126
|
return grpc_tcp_create(exec_ctx, fd, channel_args, addr_str);
|
127
127
|
}
|
128
128
|
|
129
|
-
static void on_writable(grpc_exec_ctx
|
130
|
-
async_connect
|
129
|
+
static void on_writable(grpc_exec_ctx* exec_ctx, void* acp, grpc_error* error) {
|
130
|
+
async_connect* ac = (async_connect*)acp;
|
131
131
|
int so_error = 0;
|
132
132
|
socklen_t so_error_size;
|
133
133
|
int err;
|
134
134
|
int done;
|
135
|
-
grpc_endpoint
|
136
|
-
grpc_closure
|
137
|
-
grpc_fd
|
135
|
+
grpc_endpoint** ep = ac->ep;
|
136
|
+
grpc_closure* closure = ac->closure;
|
137
|
+
grpc_fd* fd;
|
138
138
|
|
139
139
|
GRPC_ERROR_REF(error);
|
140
140
|
|
141
|
-
if (
|
142
|
-
const char
|
141
|
+
if (grpc_tcp_trace.enabled()) {
|
142
|
+
const char* str = grpc_error_string(error);
|
143
143
|
gpr_log(GPR_DEBUG, "CLIENT_CONNECT: %s: on_writable: error=%s",
|
144
144
|
ac->addr_str, str);
|
145
145
|
}
|
@@ -147,7 +147,7 @@ static void on_writable(grpc_exec_ctx *exec_ctx, void *acp, grpc_error *error) {
|
|
147
147
|
gpr_mu_lock(&ac->mu);
|
148
148
|
GPR_ASSERT(ac->fd);
|
149
149
|
fd = ac->fd;
|
150
|
-
ac->fd =
|
150
|
+
ac->fd = nullptr;
|
151
151
|
gpr_mu_unlock(&ac->mu);
|
152
152
|
|
153
153
|
grpc_timer_cancel(exec_ctx, &ac->alarm);
|
@@ -175,7 +175,7 @@ static void on_writable(grpc_exec_ctx *exec_ctx, void *acp, grpc_error *error) {
|
|
175
175
|
grpc_pollset_set_del_fd(exec_ctx, ac->interested_parties, fd);
|
176
176
|
*ep = grpc_tcp_client_create_from_fd(exec_ctx, fd, ac->channel_args,
|
177
177
|
ac->addr_str);
|
178
|
-
fd =
|
178
|
+
fd = nullptr;
|
179
179
|
break;
|
180
180
|
case ENOBUFS:
|
181
181
|
/* We will get one of these errors if we have run out of
|
@@ -208,20 +208,20 @@ static void on_writable(grpc_exec_ctx *exec_ctx, void *acp, grpc_error *error) {
|
|
208
208
|
}
|
209
209
|
|
210
210
|
finish:
|
211
|
-
if (fd !=
|
211
|
+
if (fd != nullptr) {
|
212
212
|
grpc_pollset_set_del_fd(exec_ctx, ac->interested_parties, fd);
|
213
|
-
grpc_fd_orphan(exec_ctx, fd,
|
213
|
+
grpc_fd_orphan(exec_ctx, fd, nullptr, nullptr, false /* already_closed */,
|
214
214
|
"tcp_client_orphan");
|
215
|
-
fd =
|
215
|
+
fd = nullptr;
|
216
216
|
}
|
217
217
|
done = (--ac->refs == 0);
|
218
218
|
gpr_mu_unlock(&ac->mu);
|
219
219
|
if (error != GRPC_ERROR_NONE) {
|
220
|
-
char
|
220
|
+
char* error_descr;
|
221
221
|
grpc_slice str;
|
222
222
|
bool ret = grpc_error_get_str(error, GRPC_ERROR_STR_DESCRIPTION, &str);
|
223
223
|
GPR_ASSERT(ret);
|
224
|
-
char
|
224
|
+
char* desc = grpc_slice_to_c_string(str);
|
225
225
|
gpr_asprintf(&error_descr, "Failed to connect to remote host: %s", desc);
|
226
226
|
error = grpc_error_set_str(error, GRPC_ERROR_STR_DESCRIPTION,
|
227
227
|
grpc_slice_from_copied_string(error_descr));
|
@@ -239,24 +239,24 @@ finish:
|
|
239
239
|
GRPC_CLOSURE_SCHED(exec_ctx, closure, error);
|
240
240
|
}
|
241
241
|
|
242
|
-
static void tcp_client_connect_impl(grpc_exec_ctx
|
243
|
-
grpc_closure
|
244
|
-
grpc_pollset_set
|
245
|
-
const grpc_channel_args
|
246
|
-
const grpc_resolved_address
|
247
|
-
|
242
|
+
static void tcp_client_connect_impl(grpc_exec_ctx* exec_ctx,
|
243
|
+
grpc_closure* closure, grpc_endpoint** ep,
|
244
|
+
grpc_pollset_set* interested_parties,
|
245
|
+
const grpc_channel_args* channel_args,
|
246
|
+
const grpc_resolved_address* addr,
|
247
|
+
grpc_millis deadline) {
|
248
248
|
int fd;
|
249
249
|
grpc_dualstack_mode dsmode;
|
250
250
|
int err;
|
251
|
-
async_connect
|
251
|
+
async_connect* ac;
|
252
252
|
grpc_resolved_address addr6_v4mapped;
|
253
253
|
grpc_resolved_address addr4_copy;
|
254
|
-
grpc_fd
|
255
|
-
char
|
256
|
-
char
|
257
|
-
grpc_error
|
254
|
+
grpc_fd* fdobj;
|
255
|
+
char* name;
|
256
|
+
char* addr_str;
|
257
|
+
grpc_error* error;
|
258
258
|
|
259
|
-
*ep =
|
259
|
+
*ep = nullptr;
|
260
260
|
|
261
261
|
/* Use dualstack sockets where available. */
|
262
262
|
if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) {
|
@@ -280,8 +280,7 @@ static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx,
|
|
280
280
|
|
281
281
|
do {
|
282
282
|
GPR_ASSERT(addr->len < ~(socklen_t)0);
|
283
|
-
err =
|
284
|
-
connect(fd, (const struct sockaddr *)addr->addr, (socklen_t)addr->len);
|
283
|
+
err = connect(fd, (const struct sockaddr*)addr->addr, (socklen_t)addr->len);
|
285
284
|
} while (err < 0 && errno == EINTR);
|
286
285
|
|
287
286
|
addr_str = grpc_sockaddr_to_uri(addr);
|
@@ -297,37 +296,35 @@ static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx,
|
|
297
296
|
}
|
298
297
|
|
299
298
|
if (errno != EWOULDBLOCK && errno != EINPROGRESS) {
|
300
|
-
grpc_fd_orphan(exec_ctx, fdobj,
|
301
|
-
"tcp_client_connect_error");
|
299
|
+
grpc_fd_orphan(exec_ctx, fdobj, nullptr, nullptr,
|
300
|
+
false /* already_closed */, "tcp_client_connect_error");
|
302
301
|
GRPC_CLOSURE_SCHED(exec_ctx, closure, GRPC_OS_ERROR(errno, "connect"));
|
303
302
|
goto done;
|
304
303
|
}
|
305
304
|
|
306
305
|
grpc_pollset_set_add_fd(exec_ctx, interested_parties, fdobj);
|
307
306
|
|
308
|
-
ac = (async_connect
|
307
|
+
ac = (async_connect*)gpr_malloc(sizeof(async_connect));
|
309
308
|
ac->closure = closure;
|
310
309
|
ac->ep = ep;
|
311
310
|
ac->fd = fdobj;
|
312
311
|
ac->interested_parties = interested_parties;
|
313
312
|
ac->addr_str = addr_str;
|
314
|
-
addr_str =
|
313
|
+
addr_str = nullptr;
|
315
314
|
gpr_mu_init(&ac->mu);
|
316
315
|
ac->refs = 2;
|
317
316
|
GRPC_CLOSURE_INIT(&ac->write_closure, on_writable, ac,
|
318
317
|
grpc_schedule_on_exec_ctx);
|
319
318
|
ac->channel_args = grpc_channel_args_copy(channel_args);
|
320
319
|
|
321
|
-
if (
|
320
|
+
if (grpc_tcp_trace.enabled()) {
|
322
321
|
gpr_log(GPR_DEBUG, "CLIENT_CONNECT: %s: asynchronously connecting fd %p",
|
323
322
|
ac->addr_str, fdobj);
|
324
323
|
}
|
325
324
|
|
326
325
|
gpr_mu_lock(&ac->mu);
|
327
326
|
GRPC_CLOSURE_INIT(&ac->on_alarm, tc_on_alarm, ac, grpc_schedule_on_exec_ctx);
|
328
|
-
grpc_timer_init(exec_ctx, &ac->alarm,
|
329
|
-
gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC),
|
330
|
-
&ac->on_alarm, gpr_now(GPR_CLOCK_MONOTONIC));
|
327
|
+
grpc_timer_init(exec_ctx, &ac->alarm, deadline, &ac->on_alarm);
|
331
328
|
grpc_fd_notify_on_write(exec_ctx, ac->fd, &ac->write_closure);
|
332
329
|
gpr_mu_unlock(&ac->mu);
|
333
330
|
|
@@ -337,18 +334,20 @@ done:
|
|
337
334
|
}
|
338
335
|
|
339
336
|
// overridden by api_fuzzer.c
|
337
|
+
extern "C" {
|
340
338
|
void (*grpc_tcp_client_connect_impl)(
|
341
|
-
grpc_exec_ctx
|
342
|
-
grpc_pollset_set
|
343
|
-
const grpc_resolved_address
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
const
|
351
|
-
|
339
|
+
grpc_exec_ctx* exec_ctx, grpc_closure* closure, grpc_endpoint** ep,
|
340
|
+
grpc_pollset_set* interested_parties, const grpc_channel_args* channel_args,
|
341
|
+
const grpc_resolved_address* addr,
|
342
|
+
grpc_millis deadline) = tcp_client_connect_impl;
|
343
|
+
}
|
344
|
+
|
345
|
+
void grpc_tcp_client_connect(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
346
|
+
grpc_endpoint** ep,
|
347
|
+
grpc_pollset_set* interested_parties,
|
348
|
+
const grpc_channel_args* channel_args,
|
349
|
+
const grpc_resolved_address* addr,
|
350
|
+
grpc_millis deadline) {
|
352
351
|
grpc_tcp_client_connect_impl(exec_ctx, closure, ep, interested_parties,
|
353
352
|
channel_args, addr, deadline);
|
354
353
|
}
|