grpc 1.9.1 → 1.10.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +2654 -953
- data/etc/roots.pem +282 -683
- data/include/grpc/compression.h +9 -26
- data/include/grpc/grpc.h +10 -24
- data/include/grpc/grpc_security.h +7 -1
- data/include/grpc/impl/codegen/compression_types.h +5 -62
- data/include/grpc/impl/codegen/grpc_types.h +10 -6
- data/include/grpc/module.modulemap +1 -10
- data/include/grpc/support/alloc.h +3 -2
- data/include/grpc/support/log.h +1 -2
- data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
- data/src/boringssl/err_data.c +550 -496
- data/src/core/ext/census/grpc_context.cc +2 -1
- data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
- data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
- data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
- data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
- data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver.cc +6 -52
- data/src/core/ext/filters/client_channel/resolver.h +98 -55
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
- data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
- data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
- data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
- data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
- data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
- data/src/core/ext/filters/client_channel/subchannel.h +38 -45
- data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
- data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
- data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
- data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
- data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
- data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
- data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
- data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
- data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
- data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
- data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
- data/src/core/lib/{gpr → avl}/avl.cc +61 -57
- data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
- data/src/core/lib/backoff/backoff.cc +6 -5
- data/src/core/lib/channel/channel_args.cc +23 -109
- data/src/core/lib/channel/channel_args.h +5 -31
- data/src/core/lib/channel/channel_stack.cc +11 -8
- data/src/core/lib/channel/channel_stack_builder.cc +10 -7
- data/src/core/lib/channel/connected_channel.cc +18 -17
- data/src/core/lib/channel/handshaker.cc +8 -8
- data/src/core/lib/channel/handshaker_registry.cc +3 -2
- data/src/core/lib/compression/algorithm_metadata.h +13 -6
- data/src/core/lib/compression/compression.cc +72 -183
- data/src/core/lib/compression/compression_internal.cc +274 -0
- data/src/core/lib/compression/compression_internal.h +86 -0
- data/src/core/lib/compression/message_compress.cc +15 -15
- data/src/core/lib/compression/message_compress.h +4 -3
- data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
- data/src/core/lib/compression/stream_compression_identity.cc +1 -1
- data/src/core/lib/debug/stats.cc +10 -8
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/trace.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +7 -11
- data/src/core/lib/gpr/arena.cc +34 -12
- data/src/core/lib/gpr/atm.cc +2 -1
- data/src/core/lib/gpr/cpu_linux.cc +3 -3
- data/src/core/lib/gpr/cpu_posix.cc +2 -1
- data/src/core/lib/gpr/env.h +1 -1
- data/src/core/lib/gpr/env_linux.cc +1 -1
- data/src/core/lib/gpr/env_windows.cc +4 -4
- data/src/core/lib/gpr/fork.cc +16 -2
- data/src/core/lib/gpr/host_port.cc +5 -4
- data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
- data/src/core/lib/gpr/log.cc +5 -4
- data/src/core/lib/gpr/log_linux.cc +1 -1
- data/src/core/lib/gpr/mpscq.cc +1 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -4
- data/src/core/lib/gpr/string.cc +19 -16
- data/src/core/lib/gpr/string_posix.cc +3 -3
- data/src/core/lib/gpr/sync_posix.cc +5 -9
- data/src/core/lib/gpr/thd.cc +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
- data/src/core/lib/gpr/thd_posix.cc +6 -4
- data/src/core/lib/gpr/thd_windows.cc +3 -1
- data/src/core/lib/gpr/time.cc +6 -4
- data/src/core/lib/gpr/time_posix.cc +2 -2
- data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
- data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
- data/src/core/lib/gpr/tls_pthread.cc +1 -1
- data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
- data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
- data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
- data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
- data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
- data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
- data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
- data/src/core/lib/http/format_request.cc +3 -3
- data/src/core/lib/http/httpcli.cc +6 -7
- data/src/core/lib/http/httpcli_security_connector.cc +10 -10
- data/src/core/lib/http/parser.cc +16 -12
- data/src/core/lib/iomgr/call_combiner.cc +12 -13
- data/src/core/lib/iomgr/closure.h +4 -6
- data/src/core/lib/iomgr/combiner.cc +10 -21
- data/src/core/lib/iomgr/error.cc +50 -55
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
- data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
- data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
- data/src/core/lib/iomgr/ev_posix.cc +47 -6
- data/src/core/lib/iomgr/exec_ctx.cc +10 -10
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +16 -13
- data/src/core/lib/iomgr/fork_posix.cc +1 -3
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +1 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
- data/src/core/lib/iomgr/iomgr_uv.h +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
- data/src/core/lib/iomgr/load_file.cc +3 -3
- data/src/core/lib/iomgr/pollset_windows.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
- data/src/core/lib/iomgr/resource_quota.cc +36 -34
- data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
- data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
- data/src/core/lib/iomgr/socket_mutator.cc +7 -7
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
- data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_posix.cc +47 -55
- data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
- data/src/core/lib/iomgr/tcp_windows.cc +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +16 -14
- data/src/core/lib/iomgr/timer_heap.cc +8 -7
- data/src/core/lib/iomgr/timer_manager.cc +4 -3
- data/src/core/lib/iomgr/udp_server.cc +24 -16
- data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
- data/src/core/lib/json/json.cc +1 -1
- data/src/core/lib/json/json_reader.cc +8 -6
- data/src/core/lib/json/json_string.cc +19 -18
- data/src/core/lib/json/json_writer.cc +10 -8
- data/src/core/lib/profiling/basic_timers.cc +1 -1
- data/src/core/lib/profiling/timers.h +3 -20
- data/src/core/lib/security/context/security_context.cc +16 -14
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
- data/src/core/lib/security/credentials/credentials.cc +9 -8
- data/src/core/lib/security/credentials/credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
- data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
- data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
- data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
- data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
- data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
- data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
- data/src/core/lib/security/transport/security_handshaker.cc +19 -18
- data/src/core/lib/security/transport/security_handshaker.h +1 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
- data/src/core/lib/slice/b64.cc +19 -16
- data/src/core/lib/slice/percent_encoding.cc +5 -5
- data/src/core/lib/slice/slice.cc +35 -33
- data/src/core/lib/slice/slice_buffer.cc +16 -14
- data/src/core/lib/slice/slice_hash_table.cc +3 -2
- data/src/core/lib/slice/slice_intern.cc +21 -25
- data/src/core/lib/slice/slice_string_helpers.cc +45 -9
- data/src/core/lib/slice/slice_string_helpers.h +6 -0
- data/src/core/lib/surface/byte_buffer.cc +2 -2
- data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
- data/src/core/lib/surface/call.cc +171 -260
- data/src/core/lib/surface/call_test_only.h +1 -13
- data/src/core/lib/surface/channel.cc +20 -43
- data/src/core/lib/surface/channel_init.cc +7 -7
- data/src/core/lib/surface/channel_ping.cc +2 -2
- data/src/core/lib/surface/completion_queue.cc +69 -75
- data/src/core/lib/surface/init.cc +4 -5
- data/src/core/lib/surface/init_secure.cc +1 -1
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/server.cc +64 -59
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +6 -5
- data/src/core/lib/transport/byte_stream.cc +23 -14
- data/src/core/lib/transport/byte_stream.h +1 -1
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/error_utils.cc +10 -7
- data/src/core/lib/transport/metadata.cc +27 -26
- data/src/core/lib/transport/metadata.h +1 -1
- data/src/core/lib/transport/pid_controller.cc +2 -1
- data/src/core/lib/transport/service_config.cc +5 -5
- data/src/core/lib/transport/static_metadata.cc +225 -222
- data/src/core/lib/transport/static_metadata.h +77 -76
- data/src/core/lib/transport/timeout_encoding.cc +3 -2
- data/src/core/lib/transport/transport.cc +6 -5
- data/src/core/lib/transport/transport_op_string.cc +0 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
- data/src/core/tsi/alts_transport_security.cc +61 -0
- data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
- data/src/core/tsi/fake_transport_security.cc +59 -43
- data/src/core/tsi/ssl_transport_security.cc +122 -107
- data/src/core/tsi/transport_security.cc +3 -3
- data/src/core/tsi/transport_security_adapter.cc +16 -10
- data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +3 -4
- data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
- data/src/ruby/ext/grpc/rb_server.c +52 -28
- data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/test/client.rb +1 -1
- data/src/ruby/pb/test/server.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +4 -2
- data/src/ruby/spec/generic/active_call_spec.rb +2 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
- data/src/ruby/spec/server_spec.rb +26 -7
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
- data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
- data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
- data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
- data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
- data/third_party/boringssl/crypto/base64/base64.c +65 -43
- data/third_party/boringssl/crypto/bio/bio.c +134 -110
- data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
- data/third_party/boringssl/crypto/bio/connect.c +17 -17
- data/third_party/boringssl/crypto/bio/fd.c +2 -1
- data/third_party/boringssl/crypto/bio/file.c +14 -14
- data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
- data/third_party/boringssl/crypto/bio/internal.h +14 -14
- data/third_party/boringssl/crypto/bio/pair.c +45 -45
- data/third_party/boringssl/crypto/bio/printf.c +6 -10
- data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
- data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
- data/third_party/boringssl/crypto/buf/buf.c +20 -44
- data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
- data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
- data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
- data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
- data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
- data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
- data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
- data/third_party/boringssl/crypto/conf/conf.c +32 -20
- data/third_party/boringssl/crypto/conf/internal.h +3 -3
- data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
- data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
- data/third_party/boringssl/crypto/cpu-intel.c +68 -43
- data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
- data/third_party/boringssl/crypto/crypto.c +54 -32
- data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
- data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
- data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
- data/third_party/boringssl/crypto/dh/check.c +33 -34
- data/third_party/boringssl/crypto/dh/dh.c +72 -36
- data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
- data/third_party/boringssl/crypto/dh/params.c +1 -161
- data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
- data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
- data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
- data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
- data/third_party/boringssl/crypto/engine/engine.c +6 -6
- data/third_party/boringssl/crypto/err/err.c +197 -106
- data/third_party/boringssl/crypto/err/internal.h +58 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
- data/third_party/boringssl/crypto/evp/evp.c +6 -11
- data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
- data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
- data/third_party/boringssl/crypto/evp/internal.h +66 -51
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
- data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
- data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
- data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
- data/third_party/boringssl/crypto/evp/print.c +5 -36
- data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
- data/third_party/boringssl/crypto/ex_data.c +15 -45
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
- data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
- data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
- data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
- data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
- data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
- data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
- data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
- data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
- data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
- data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
- data/third_party/boringssl/crypto/internal.h +301 -233
- data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
- data/third_party/boringssl/crypto/mem.c +76 -33
- data/third_party/boringssl/crypto/obj/obj.c +44 -28
- data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
- data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
- data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
- data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
- data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
- data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
- data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
- data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
- data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
- data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
- data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
- data/third_party/boringssl/crypto/pool/internal.h +2 -2
- data/third_party/boringssl/crypto/pool/pool.c +15 -15
- data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
- data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
- data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
- data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
- data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
- data/third_party/boringssl/crypto/refcount_c11.c +2 -2
- data/third_party/boringssl/crypto/refcount_lock.c +1 -1
- data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
- data/third_party/boringssl/crypto/stack/stack.c +13 -13
- data/third_party/boringssl/crypto/thread_none.c +1 -1
- data/third_party/boringssl/crypto/thread_pthread.c +1 -1
- data/third_party/boringssl/crypto/thread_win.c +40 -40
- data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
- data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
- data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
- data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
- data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
- data/third_party/boringssl/crypto/x509/by_file.c +2 -2
- data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
- data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
- data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
- data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
- data/third_party/boringssl/crypto/x509/x_name.c +13 -16
- data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
- data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
- data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
- data/third_party/boringssl/include/openssl/aead.h +280 -191
- data/third_party/boringssl/include/openssl/aes.h +50 -50
- data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
- data/third_party/boringssl/include/openssl/asn1.h +14 -77
- data/third_party/boringssl/include/openssl/asn1t.h +11 -15
- data/third_party/boringssl/include/openssl/base.h +78 -51
- data/third_party/boringssl/include/openssl/base64.h +68 -68
- data/third_party/boringssl/include/openssl/bio.h +472 -406
- data/third_party/boringssl/include/openssl/blowfish.h +1 -1
- data/third_party/boringssl/include/openssl/bn.h +454 -435
- data/third_party/boringssl/include/openssl/buf.h +27 -27
- data/third_party/boringssl/include/openssl/bytestring.h +282 -267
- data/third_party/boringssl/include/openssl/cast.h +2 -2
- data/third_party/boringssl/include/openssl/chacha.h +5 -5
- data/third_party/boringssl/include/openssl/cipher.h +209 -200
- data/third_party/boringssl/include/openssl/cmac.h +27 -27
- data/third_party/boringssl/include/openssl/conf.h +49 -46
- data/third_party/boringssl/include/openssl/cpu.h +60 -45
- data/third_party/boringssl/include/openssl/crypto.h +59 -35
- data/third_party/boringssl/include/openssl/curve25519.h +97 -92
- data/third_party/boringssl/include/openssl/des.h +25 -25
- data/third_party/boringssl/include/openssl/dh.h +98 -97
- data/third_party/boringssl/include/openssl/digest.h +143 -114
- data/third_party/boringssl/include/openssl/dsa.h +217 -202
- data/third_party/boringssl/include/openssl/ec.h +132 -131
- data/third_party/boringssl/include/openssl/ec_key.h +132 -128
- data/third_party/boringssl/include/openssl/ecdh.h +9 -9
- data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
- data/third_party/boringssl/include/openssl/engine.h +38 -38
- data/third_party/boringssl/include/openssl/err.h +189 -219
- data/third_party/boringssl/include/openssl/evp.h +473 -397
- data/third_party/boringssl/include/openssl/ex_data.h +46 -56
- data/third_party/boringssl/include/openssl/hkdf.h +17 -17
- data/third_party/boringssl/include/openssl/hmac.h +55 -43
- data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
- data/third_party/boringssl/include/openssl/lhash.h +67 -67
- data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
- data/third_party/boringssl/include/openssl/md4.h +14 -14
- data/third_party/boringssl/include/openssl/md5.h +14 -14
- data/third_party/boringssl/include/openssl/mem.h +39 -33
- data/third_party/boringssl/include/openssl/nid.h +43 -0
- data/third_party/boringssl/include/openssl/obj.h +93 -87
- data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
- data/third_party/boringssl/include/openssl/pem.h +2 -122
- data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
- data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
- data/third_party/boringssl/include/openssl/poly1305.h +11 -11
- data/third_party/boringssl/include/openssl/pool.h +29 -25
- data/third_party/boringssl/include/openssl/rand.h +48 -45
- data/third_party/boringssl/include/openssl/rc4.h +9 -9
- data/third_party/boringssl/include/openssl/ripemd.h +13 -13
- data/third_party/boringssl/include/openssl/rsa.h +371 -340
- data/third_party/boringssl/include/openssl/sha.h +71 -71
- data/third_party/boringssl/include/openssl/span.h +191 -0
- data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
- data/third_party/boringssl/include/openssl/ssl3.h +39 -122
- data/third_party/boringssl/include/openssl/stack.h +355 -164
- data/third_party/boringssl/include/openssl/thread.h +43 -43
- data/third_party/boringssl/include/openssl/tls1.h +60 -63
- data/third_party/boringssl/include/openssl/type_check.h +10 -14
- data/third_party/boringssl/include/openssl/x509.h +41 -116
- data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
- data/third_party/boringssl/include/openssl/x509v3.h +27 -21
- data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
- data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
- data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
- data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
- data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
- data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
- data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
- data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
- data/third_party/boringssl/ssl/handshake.cc +547 -0
- data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
- data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
- data/third_party/boringssl/ssl/internal.h +2027 -1280
- data/third_party/boringssl/ssl/s3_both.cc +603 -0
- data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
- data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
- data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
- data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
- data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
- data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
- data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
- data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
- data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
- data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
- data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
- data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
- data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
- data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
- data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
- data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
- data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
- data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
- data/third_party/boringssl/ssl/tls13_client.cc +842 -0
- data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
- data/third_party/boringssl/ssl/tls13_server.cc +967 -0
- data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
- data/third_party/boringssl/ssl/tls_record.cc +675 -0
- metadata +117 -168
- data/include/grpc/support/cmdline.h +0 -88
- data/include/grpc/support/subprocess.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
- data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
- data/src/core/lib/gpr/cmdline.cc +0 -330
- data/src/core/lib/gpr/subprocess_posix.cc +0 -99
- data/src/core/lib/gpr/subprocess_windows.cc +0 -126
- data/src/core/lib/surface/alarm.cc +0 -137
- data/src/core/lib/surface/alarm_internal.h +0 -40
- data/src/core/tsi/gts_transport_security.cc +0 -40
- data/third_party/boringssl/crypto/aes/aes.c +0 -1142
- data/third_party/boringssl/crypto/aes/internal.h +0 -87
- data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
- data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
- data/third_party/boringssl/crypto/bn/add.c +0 -377
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
- data/third_party/boringssl/crypto/bn/bn.c +0 -365
- data/third_party/boringssl/crypto/bn/cmp.c +0 -239
- data/third_party/boringssl/crypto/bn/ctx.c +0 -313
- data/third_party/boringssl/crypto/bn/div.c +0 -728
- data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
- data/third_party/boringssl/crypto/bn/gcd.c +0 -635
- data/third_party/boringssl/crypto/bn/generic.c +0 -707
- data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
- data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
- data/third_party/boringssl/crypto/bn/mul.c +0 -871
- data/third_party/boringssl/crypto/bn/prime.c +0 -861
- data/third_party/boringssl/crypto/bn/random.c +0 -343
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
- data/third_party/boringssl/crypto/bn/shift.c +0 -307
- data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
- data/third_party/boringssl/crypto/cipher/aead.c +0 -156
- data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
- data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
- data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
- data/third_party/boringssl/crypto/des/des.c +0 -771
- data/third_party/boringssl/crypto/digest/digest.c +0 -251
- data/third_party/boringssl/crypto/digest/digests.c +0 -358
- data/third_party/boringssl/crypto/ec/ec.c +0 -847
- data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
- data/third_party/boringssl/crypto/ec/oct.c +0 -416
- data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
- data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
- data/third_party/boringssl/crypto/ec/simple.c +0 -1118
- data/third_party/boringssl/crypto/ec/util-64.c +0 -109
- data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
- data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
- data/third_party/boringssl/crypto/md4/md4.c +0 -236
- data/third_party/boringssl/crypto/md5/md5.c +0 -285
- data/third_party/boringssl/crypto/modes/cbc.c +0 -212
- data/third_party/boringssl/crypto/modes/cfb.c +0 -230
- data/third_party/boringssl/crypto/modes/ctr.c +0 -219
- data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
- data/third_party/boringssl/crypto/modes/ofb.c +0 -95
- data/third_party/boringssl/crypto/modes/polyval.c +0 -94
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
- data/third_party/boringssl/crypto/rand/rand.c +0 -244
- data/third_party/boringssl/crypto/rand/urandom.c +0 -335
- data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
- data/third_party/boringssl/crypto/rsa/padding.c +0 -708
- data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
- data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
- data/third_party/boringssl/crypto/sha/sha1.c +0 -355
- data/third_party/boringssl/crypto/sha/sha256.c +0 -329
- data/third_party/boringssl/crypto/sha/sha512.c +0 -609
- data/third_party/boringssl/crypto/x509/x509type.c +0 -126
- data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
- data/third_party/boringssl/ssl/handshake_client.c +0 -1883
- data/third_party/boringssl/ssl/handshake_server.c +0 -1950
- data/third_party/boringssl/ssl/s3_both.c +0 -895
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
- data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
- data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
- data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
- data/third_party/boringssl/ssl/tls13_client.c +0 -712
- data/third_party/boringssl/ssl/tls13_server.c +0 -680
- data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -21,9 +21,9 @@
|
|
21
21
|
|
22
22
|
#include "src/core/ext/filters/client_channel/connector.h"
|
23
23
|
#include "src/core/lib/channel/channel_stack.h"
|
24
|
-
#include "src/core/lib/gpr++/ref_counted.h"
|
25
|
-
#include "src/core/lib/gpr++/ref_counted_ptr.h"
|
26
24
|
#include "src/core/lib/gpr/arena.h"
|
25
|
+
#include "src/core/lib/gprpp/ref_counted.h"
|
26
|
+
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
27
27
|
#include "src/core/lib/iomgr/polling_entity.h"
|
28
28
|
#include "src/core/lib/transport/connectivity_state.h"
|
29
29
|
#include "src/core/lib/transport/metadata.h"
|
@@ -34,7 +34,6 @@
|
|
34
34
|
/** A (sub-)channel that knows how to connect to exactly one target
|
35
35
|
address. Provides a target for load balancing. */
|
36
36
|
typedef struct grpc_subchannel grpc_subchannel;
|
37
|
-
typedef struct grpc_connected_subchannel grpc_connected_subchannel;
|
38
37
|
typedef struct grpc_subchannel_call grpc_subchannel_call;
|
39
38
|
typedef struct grpc_subchannel_args grpc_subchannel_args;
|
40
39
|
typedef struct grpc_subchannel_key grpc_subchannel_key;
|
@@ -50,10 +49,6 @@ typedef struct grpc_subchannel_key grpc_subchannel_key;
|
|
50
49
|
grpc_subchannel_weak_ref((p), __FILE__, __LINE__, (r))
|
51
50
|
#define GRPC_SUBCHANNEL_WEAK_UNREF(p, r) \
|
52
51
|
grpc_subchannel_weak_unref((p), __FILE__, __LINE__, (r))
|
53
|
-
#define GRPC_CONNECTED_SUBCHANNEL_REF(p, r) \
|
54
|
-
grpc_connected_subchannel_ref((p), __FILE__, __LINE__, (r))
|
55
|
-
#define GRPC_CONNECTED_SUBCHANNEL_UNREF(p, r) \
|
56
|
-
grpc_connected_subchannel_unref((p), __FILE__, __LINE__, (r))
|
57
52
|
#define GRPC_SUBCHANNEL_CALL_REF(p, r) \
|
58
53
|
grpc_subchannel_call_ref((p), __FILE__, __LINE__, (r))
|
59
54
|
#define GRPC_SUBCHANNEL_CALL_UNREF(p, r) \
|
@@ -67,14 +62,41 @@ typedef struct grpc_subchannel_key grpc_subchannel_key;
|
|
67
62
|
#define GRPC_SUBCHANNEL_UNREF(p, r) grpc_subchannel_unref((p))
|
68
63
|
#define GRPC_SUBCHANNEL_WEAK_REF(p, r) grpc_subchannel_weak_ref((p))
|
69
64
|
#define GRPC_SUBCHANNEL_WEAK_UNREF(p, r) grpc_subchannel_weak_unref((p))
|
70
|
-
#define GRPC_CONNECTED_SUBCHANNEL_REF(p, r) grpc_connected_subchannel_ref((p))
|
71
|
-
#define GRPC_CONNECTED_SUBCHANNEL_UNREF(p, r) \
|
72
|
-
grpc_connected_subchannel_unref((p))
|
73
65
|
#define GRPC_SUBCHANNEL_CALL_REF(p, r) grpc_subchannel_call_ref((p))
|
74
66
|
#define GRPC_SUBCHANNEL_CALL_UNREF(p, r) grpc_subchannel_call_unref((p))
|
75
67
|
#define GRPC_SUBCHANNEL_REF_EXTRA_ARGS
|
76
68
|
#endif
|
77
69
|
|
70
|
+
namespace grpc_core {
|
71
|
+
|
72
|
+
class ConnectedSubchannel : public RefCountedWithTracing<ConnectedSubchannel> {
|
73
|
+
public:
|
74
|
+
struct CallArgs {
|
75
|
+
grpc_polling_entity* pollent;
|
76
|
+
grpc_slice path;
|
77
|
+
gpr_timespec start_time;
|
78
|
+
grpc_millis deadline;
|
79
|
+
gpr_arena* arena;
|
80
|
+
grpc_call_context_element* context;
|
81
|
+
grpc_call_combiner* call_combiner;
|
82
|
+
};
|
83
|
+
|
84
|
+
explicit ConnectedSubchannel(grpc_channel_stack* channel_stack);
|
85
|
+
~ConnectedSubchannel();
|
86
|
+
|
87
|
+
grpc_channel_stack* channel_stack() { return channel_stack_; }
|
88
|
+
void NotifyOnStateChange(grpc_pollset_set* interested_parties,
|
89
|
+
grpc_connectivity_state* state,
|
90
|
+
grpc_closure* closure);
|
91
|
+
void Ping(grpc_closure* on_initiate, grpc_closure* on_ack);
|
92
|
+
grpc_error* CreateCall(const CallArgs& args, grpc_subchannel_call** call);
|
93
|
+
|
94
|
+
private:
|
95
|
+
grpc_channel_stack* channel_stack_;
|
96
|
+
};
|
97
|
+
|
98
|
+
} // namespace grpc_core
|
99
|
+
|
78
100
|
grpc_subchannel* grpc_subchannel_ref(
|
79
101
|
grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
80
102
|
grpc_subchannel* grpc_subchannel_ref_from_weak_ref(
|
@@ -85,35 +107,11 @@ grpc_subchannel* grpc_subchannel_weak_ref(
|
|
85
107
|
grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
86
108
|
void grpc_subchannel_weak_unref(
|
87
109
|
grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
88
|
-
grpc_connected_subchannel* grpc_connected_subchannel_ref(
|
89
|
-
grpc_connected_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
90
|
-
void grpc_connected_subchannel_unref(
|
91
|
-
grpc_connected_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
92
110
|
void grpc_subchannel_call_ref(
|
93
111
|
grpc_subchannel_call* call GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
94
112
|
void grpc_subchannel_call_unref(
|
95
113
|
grpc_subchannel_call* call GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
96
114
|
|
97
|
-
/** construct a subchannel call */
|
98
|
-
typedef struct {
|
99
|
-
grpc_polling_entity* pollent;
|
100
|
-
grpc_slice path;
|
101
|
-
gpr_timespec start_time;
|
102
|
-
grpc_millis deadline;
|
103
|
-
gpr_arena* arena;
|
104
|
-
grpc_call_context_element* context;
|
105
|
-
grpc_call_combiner* call_combiner;
|
106
|
-
} grpc_connected_subchannel_call_args;
|
107
|
-
|
108
|
-
grpc_error* grpc_connected_subchannel_create_call(
|
109
|
-
grpc_connected_subchannel* connected_subchannel,
|
110
|
-
const grpc_connected_subchannel_call_args* args,
|
111
|
-
grpc_subchannel_call** subchannel_call);
|
112
|
-
|
113
|
-
/** process a transport level op */
|
114
|
-
void grpc_connected_subchannel_process_transport_op(
|
115
|
-
grpc_connected_subchannel* subchannel, grpc_transport_op* op);
|
116
|
-
|
117
115
|
/** poll the current connectivity state of a channel */
|
118
116
|
grpc_connectivity_state grpc_subchannel_check_connectivity(
|
119
117
|
grpc_subchannel* channel, grpc_error** error);
|
@@ -123,17 +121,12 @@ grpc_connectivity_state grpc_subchannel_check_connectivity(
|
|
123
121
|
void grpc_subchannel_notify_on_state_change(
|
124
122
|
grpc_subchannel* channel, grpc_pollset_set* interested_parties,
|
125
123
|
grpc_connectivity_state* state, grpc_closure* notify);
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
/** retrieve the grpc_connected_subchannel - or NULL if called before
|
134
|
-
the subchannel becomes connected */
|
135
|
-
grpc_connected_subchannel* grpc_subchannel_get_connected_subchannel(
|
136
|
-
grpc_subchannel* subchannel);
|
124
|
+
|
125
|
+
/** retrieve the grpc_core::ConnectedSubchannel - or nullptr if not connected
|
126
|
+
* (which may happen before it initially connects or during transient failures)
|
127
|
+
* */
|
128
|
+
grpc_core::RefCountedPtr<grpc_core::ConnectedSubchannel>
|
129
|
+
grpc_subchannel_get_connected_subchannel(grpc_subchannel* c);
|
137
130
|
|
138
131
|
/** return the subchannel index key for \a subchannel */
|
139
132
|
const grpc_subchannel_key* grpc_subchannel_get_key(
|
@@ -22,15 +22,15 @@
|
|
22
22
|
#include <string.h>
|
23
23
|
|
24
24
|
#include <grpc/support/alloc.h>
|
25
|
-
#include <grpc/support/avl.h>
|
26
25
|
#include <grpc/support/string_util.h>
|
27
|
-
#include <grpc/support/tls.h>
|
28
26
|
|
27
|
+
#include "src/core/lib/avl/avl.h"
|
29
28
|
#include "src/core/lib/channel/channel_args.h"
|
29
|
+
#include "src/core/lib/gpr/tls.h"
|
30
30
|
|
31
31
|
// a map of subchannel_key --> subchannel, used for detecting connections
|
32
32
|
// to the same destination in order to share them
|
33
|
-
static
|
33
|
+
static grpc_avl g_subchannel_index;
|
34
34
|
|
35
35
|
static gpr_mu g_mu;
|
36
36
|
|
@@ -45,13 +45,14 @@ static bool g_force_creation = false;
|
|
45
45
|
static grpc_subchannel_key* create_key(
|
46
46
|
const grpc_subchannel_args* args,
|
47
47
|
grpc_channel_args* (*copy_channel_args)(const grpc_channel_args* args)) {
|
48
|
-
grpc_subchannel_key* k =
|
48
|
+
grpc_subchannel_key* k =
|
49
|
+
static_cast<grpc_subchannel_key*>(gpr_malloc(sizeof(*k)));
|
49
50
|
k->args.filter_count = args->filter_count;
|
50
51
|
if (k->args.filter_count > 0) {
|
51
|
-
k->args.filters =
|
52
|
-
sizeof(*k->args.filters) * k->args.filter_count);
|
53
|
-
memcpy((
|
54
|
-
sizeof(*k->args.filters) * k->args.filter_count);
|
52
|
+
k->args.filters = static_cast<const grpc_channel_filter**>(
|
53
|
+
gpr_malloc(sizeof(*k->args.filters) * k->args.filter_count));
|
54
|
+
memcpy(reinterpret_cast<grpc_channel_filter*>(k->args.filters),
|
55
|
+
args->filters, sizeof(*k->args.filters) * k->args.filter_count);
|
55
56
|
} else {
|
56
57
|
k->args.filters = nullptr;
|
57
58
|
}
|
@@ -82,22 +83,22 @@ int grpc_subchannel_key_compare(const grpc_subchannel_key* a,
|
|
82
83
|
}
|
83
84
|
|
84
85
|
void grpc_subchannel_key_destroy(grpc_subchannel_key* k) {
|
85
|
-
gpr_free((
|
86
|
-
grpc_channel_args_destroy((
|
86
|
+
gpr_free(reinterpret_cast<grpc_channel_args*>(k->args.filters));
|
87
|
+
grpc_channel_args_destroy(const_cast<grpc_channel_args*>(k->args.args));
|
87
88
|
gpr_free(k);
|
88
89
|
}
|
89
90
|
|
90
91
|
static void sck_avl_destroy(void* p, void* user_data) {
|
91
|
-
grpc_subchannel_key_destroy((
|
92
|
+
grpc_subchannel_key_destroy(static_cast<grpc_subchannel_key*>(p));
|
92
93
|
}
|
93
94
|
|
94
95
|
static void* sck_avl_copy(void* p, void* unused) {
|
95
|
-
return subchannel_key_copy((
|
96
|
+
return subchannel_key_copy(static_cast<grpc_subchannel_key*>(p));
|
96
97
|
}
|
97
98
|
|
98
99
|
static long sck_avl_compare(void* a, void* b, void* unused) {
|
99
|
-
return grpc_subchannel_key_compare((
|
100
|
-
(
|
100
|
+
return grpc_subchannel_key_compare(static_cast<grpc_subchannel_key*>(a),
|
101
|
+
static_cast<grpc_subchannel_key*>(b));
|
101
102
|
}
|
102
103
|
|
103
104
|
static void scv_avl_destroy(void* p, void* user_data) {
|
@@ -109,7 +110,7 @@ static void* scv_avl_copy(void* p, void* unused) {
|
|
109
110
|
return p;
|
110
111
|
}
|
111
112
|
|
112
|
-
static const
|
113
|
+
static const grpc_avl_vtable subchannel_avl_vtable = {
|
113
114
|
sck_avl_destroy, // destroy_key
|
114
115
|
sck_avl_copy, // copy_key
|
115
116
|
sck_avl_compare, // compare_keys
|
@@ -118,7 +119,7 @@ static const gpr_avl_vtable subchannel_avl_vtable = {
|
|
118
119
|
};
|
119
120
|
|
120
121
|
void grpc_subchannel_index_init(void) {
|
121
|
-
g_subchannel_index =
|
122
|
+
g_subchannel_index = grpc_avl_create(&subchannel_avl_vtable);
|
122
123
|
gpr_mu_init(&g_mu);
|
123
124
|
gpr_ref_init(&g_refcount, 1);
|
124
125
|
}
|
@@ -133,7 +134,7 @@ void grpc_subchannel_index_shutdown(void) {
|
|
133
134
|
void grpc_subchannel_index_unref(void) {
|
134
135
|
if (gpr_unref(&g_refcount)) {
|
135
136
|
gpr_mu_destroy(&g_mu);
|
136
|
-
|
137
|
+
grpc_avl_unref(g_subchannel_index, grpc_core::ExecCtx::Get());
|
137
138
|
}
|
138
139
|
}
|
139
140
|
|
@@ -143,13 +144,13 @@ grpc_subchannel* grpc_subchannel_index_find(grpc_subchannel_key* key) {
|
|
143
144
|
// Lock, and take a reference to the subchannel index.
|
144
145
|
// We don't need to do the search under a lock as avl's are immutable.
|
145
146
|
gpr_mu_lock(&g_mu);
|
146
|
-
|
147
|
+
grpc_avl index = grpc_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get());
|
147
148
|
gpr_mu_unlock(&g_mu);
|
148
149
|
|
149
150
|
grpc_subchannel* c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(
|
150
|
-
(grpc_subchannel*)
|
151
|
+
(grpc_subchannel*)grpc_avl_get(index, key, grpc_core::ExecCtx::Get()),
|
151
152
|
"index_find");
|
152
|
-
|
153
|
+
grpc_avl_unref(index, grpc_core::ExecCtx::Get());
|
153
154
|
|
154
155
|
return c;
|
155
156
|
}
|
@@ -165,11 +166,13 @@ grpc_subchannel* grpc_subchannel_index_register(grpc_subchannel_key* key,
|
|
165
166
|
// Compare and swap loop:
|
166
167
|
// - take a reference to the current index
|
167
168
|
gpr_mu_lock(&g_mu);
|
168
|
-
|
169
|
+
grpc_avl index =
|
170
|
+
grpc_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get());
|
169
171
|
gpr_mu_unlock(&g_mu);
|
170
172
|
|
171
173
|
// - Check to see if a subchannel already exists
|
172
|
-
c =
|
174
|
+
c = static_cast<grpc_subchannel*>(
|
175
|
+
grpc_avl_get(index, key, grpc_core::ExecCtx::Get()));
|
173
176
|
if (c != nullptr) {
|
174
177
|
c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(c, "index_register");
|
175
178
|
}
|
@@ -178,25 +181,25 @@ grpc_subchannel* grpc_subchannel_index_register(grpc_subchannel_key* key,
|
|
178
181
|
need_to_unref_constructed = true;
|
179
182
|
} else {
|
180
183
|
// no -> update the avl and compare/swap
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
184
|
+
grpc_avl updated =
|
185
|
+
grpc_avl_add(grpc_avl_ref(index, grpc_core::ExecCtx::Get()),
|
186
|
+
subchannel_key_copy(key),
|
187
|
+
GRPC_SUBCHANNEL_WEAK_REF(constructed, "index_register"),
|
188
|
+
grpc_core::ExecCtx::Get());
|
186
189
|
|
187
190
|
// it may happen (but it's expected to be unlikely)
|
188
191
|
// that some other thread has changed the index:
|
189
192
|
// compare/swap here to check that, and retry as necessary
|
190
193
|
gpr_mu_lock(&g_mu);
|
191
194
|
if (index.root == g_subchannel_index.root) {
|
192
|
-
GPR_SWAP(
|
195
|
+
GPR_SWAP(grpc_avl, updated, g_subchannel_index);
|
193
196
|
c = constructed;
|
194
197
|
}
|
195
198
|
gpr_mu_unlock(&g_mu);
|
196
199
|
|
197
|
-
|
200
|
+
grpc_avl_unref(updated, grpc_core::ExecCtx::Get());
|
198
201
|
}
|
199
|
-
|
202
|
+
grpc_avl_unref(index, grpc_core::ExecCtx::Get());
|
200
203
|
}
|
201
204
|
|
202
205
|
if (need_to_unref_constructed) {
|
@@ -213,33 +216,34 @@ void grpc_subchannel_index_unregister(grpc_subchannel_key* key,
|
|
213
216
|
// Compare and swap loop:
|
214
217
|
// - take a reference to the current index
|
215
218
|
gpr_mu_lock(&g_mu);
|
216
|
-
|
219
|
+
grpc_avl index =
|
220
|
+
grpc_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get());
|
217
221
|
gpr_mu_unlock(&g_mu);
|
218
222
|
|
219
223
|
// Check to see if this key still refers to the previously
|
220
224
|
// registered subchannel
|
221
|
-
grpc_subchannel* c =
|
222
|
-
(
|
225
|
+
grpc_subchannel* c = static_cast<grpc_subchannel*>(
|
226
|
+
grpc_avl_get(index, key, grpc_core::ExecCtx::Get()));
|
223
227
|
if (c != constructed) {
|
224
|
-
|
228
|
+
grpc_avl_unref(index, grpc_core::ExecCtx::Get());
|
225
229
|
break;
|
226
230
|
}
|
227
231
|
|
228
232
|
// compare and swap the update (some other thread may have
|
229
233
|
// mutated the index behind us)
|
230
|
-
|
231
|
-
|
232
|
-
|
234
|
+
grpc_avl updated =
|
235
|
+
grpc_avl_remove(grpc_avl_ref(index, grpc_core::ExecCtx::Get()), key,
|
236
|
+
grpc_core::ExecCtx::Get());
|
233
237
|
|
234
238
|
gpr_mu_lock(&g_mu);
|
235
239
|
if (index.root == g_subchannel_index.root) {
|
236
|
-
GPR_SWAP(
|
240
|
+
GPR_SWAP(grpc_avl, updated, g_subchannel_index);
|
237
241
|
done = true;
|
238
242
|
}
|
239
243
|
gpr_mu_unlock(&g_mu);
|
240
244
|
|
241
|
-
|
242
|
-
|
245
|
+
grpc_avl_unref(updated, grpc_core::ExecCtx::Get());
|
246
|
+
grpc_avl_unref(index, grpc_core::ExecCtx::Get());
|
243
247
|
}
|
244
248
|
}
|
245
249
|
|
@@ -45,7 +45,7 @@ static grpc_uri* bad_uri(const char* uri_text, size_t pos, const char* section,
|
|
45
45
|
gpr_log(GPR_ERROR, "%s%s'", line_prefix, uri_text);
|
46
46
|
gpr_free(line_prefix);
|
47
47
|
|
48
|
-
line_prefix = (
|
48
|
+
line_prefix = static_cast<char*>(gpr_malloc(pfx_len + 1));
|
49
49
|
memset(line_prefix, ' ', pfx_len);
|
50
50
|
line_prefix[pfx_len] = 0;
|
51
51
|
gpr_log(GPR_ERROR, "%s^ here", line_prefix);
|
@@ -159,7 +159,7 @@ static void parse_query_parts(grpc_uri* uri) {
|
|
159
159
|
gpr_string_split(uri->query, QUERY_PARTS_SEPARATOR, &uri->query_parts,
|
160
160
|
&uri->num_query_parts);
|
161
161
|
uri->query_parts_values =
|
162
|
-
(
|
162
|
+
static_cast<char**>(gpr_malloc(uri->num_query_parts * sizeof(char**)));
|
163
163
|
for (size_t i = 0; i < uri->num_query_parts; i++) {
|
164
164
|
char** query_param_parts;
|
165
165
|
size_t num_query_param_parts;
|
@@ -271,7 +271,7 @@ grpc_uri* grpc_uri_parse(const char* uri_text, bool suppress_errors) {
|
|
271
271
|
fragment_end = i;
|
272
272
|
}
|
273
273
|
|
274
|
-
uri = (
|
274
|
+
uri = static_cast<grpc_uri*>(gpr_zalloc(sizeof(*uri)));
|
275
275
|
uri->scheme = decode_and_copy_component(uri_text, scheme_begin, scheme_end);
|
276
276
|
uri->authority =
|
277
277
|
decode_and_copy_component(uri_text, authority_begin, authority_end);
|
@@ -37,7 +37,7 @@
|
|
37
37
|
// The on_complete callback used when sending a cancel_error batch down the
|
38
38
|
// filter stack. Yields the call combiner when the batch returns.
|
39
39
|
static void yield_call_combiner(void* arg, grpc_error* ignored) {
|
40
|
-
grpc_deadline_state* deadline_state = (
|
40
|
+
grpc_deadline_state* deadline_state = static_cast<grpc_deadline_state*>(arg);
|
41
41
|
GRPC_CALL_COMBINER_STOP(deadline_state->call_combiner,
|
42
42
|
"got on_complete from cancel_stream batch");
|
43
43
|
GRPC_CALL_STACK_UNREF(deadline_state->call_stack, "deadline_timer");
|
@@ -46,8 +46,9 @@ static void yield_call_combiner(void* arg, grpc_error* ignored) {
|
|
46
46
|
// This is called via the call combiner, so access to deadline_state is
|
47
47
|
// synchronized.
|
48
48
|
static void send_cancel_op_in_call_combiner(void* arg, grpc_error* error) {
|
49
|
-
grpc_call_element* elem = (
|
50
|
-
grpc_deadline_state* deadline_state =
|
49
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
50
|
+
grpc_deadline_state* deadline_state =
|
51
|
+
static_cast<grpc_deadline_state*>(elem->call_data);
|
51
52
|
grpc_transport_stream_op_batch* batch = grpc_make_transport_stream_op(
|
52
53
|
GRPC_CLOSURE_INIT(&deadline_state->timer_callback, yield_call_combiner,
|
53
54
|
deadline_state, grpc_schedule_on_exec_ctx));
|
@@ -58,8 +59,9 @@ static void send_cancel_op_in_call_combiner(void* arg, grpc_error* error) {
|
|
58
59
|
|
59
60
|
// Timer callback.
|
60
61
|
static void timer_callback(void* arg, grpc_error* error) {
|
61
|
-
grpc_call_element* elem = (
|
62
|
-
grpc_deadline_state* deadline_state =
|
62
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
63
|
+
grpc_deadline_state* deadline_state =
|
64
|
+
static_cast<grpc_deadline_state*>(elem->call_data);
|
63
65
|
if (error != GRPC_ERROR_CANCELLED) {
|
64
66
|
error = grpc_error_set_int(
|
65
67
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Deadline Exceeded"),
|
@@ -85,7 +87,8 @@ static void start_timer_if_needed(grpc_call_element* elem,
|
|
85
87
|
if (deadline == GRPC_MILLIS_INF_FUTURE) {
|
86
88
|
return;
|
87
89
|
}
|
88
|
-
grpc_deadline_state* deadline_state =
|
90
|
+
grpc_deadline_state* deadline_state =
|
91
|
+
static_cast<grpc_deadline_state*>(elem->call_data);
|
89
92
|
grpc_closure* closure = nullptr;
|
90
93
|
switch (deadline_state->timer_state) {
|
91
94
|
case GRPC_DEADLINE_STATE_PENDING:
|
@@ -126,7 +129,7 @@ static void cancel_timer_if_needed(grpc_deadline_state* deadline_state) {
|
|
126
129
|
|
127
130
|
// Callback run when the call is complete.
|
128
131
|
static void on_complete(void* arg, grpc_error* error) {
|
129
|
-
grpc_deadline_state* deadline_state = (
|
132
|
+
grpc_deadline_state* deadline_state = static_cast<grpc_deadline_state*>(arg);
|
130
133
|
cancel_timer_if_needed(deadline_state);
|
131
134
|
// Invoke the next callback.
|
132
135
|
GRPC_CLOSURE_RUN(deadline_state->next_on_complete, GRPC_ERROR_REF(error));
|
@@ -151,9 +154,9 @@ struct start_timer_after_init_state {
|
|
151
154
|
};
|
152
155
|
static void start_timer_after_init(void* arg, grpc_error* error) {
|
153
156
|
struct start_timer_after_init_state* state =
|
154
|
-
|
157
|
+
static_cast<struct start_timer_after_init_state*>(arg);
|
155
158
|
grpc_deadline_state* deadline_state =
|
156
|
-
(
|
159
|
+
static_cast<grpc_deadline_state*>(state->elem->call_data);
|
157
160
|
if (!state->in_call_combiner) {
|
158
161
|
// We are initially called without holding the call combiner, so we
|
159
162
|
// need to bounce ourselves into it.
|
@@ -173,7 +176,8 @@ void grpc_deadline_state_init(grpc_call_element* elem,
|
|
173
176
|
grpc_call_stack* call_stack,
|
174
177
|
grpc_call_combiner* call_combiner,
|
175
178
|
grpc_millis deadline) {
|
176
|
-
grpc_deadline_state* deadline_state =
|
179
|
+
grpc_deadline_state* deadline_state =
|
180
|
+
static_cast<grpc_deadline_state*>(elem->call_data);
|
177
181
|
deadline_state->call_stack = call_stack;
|
178
182
|
deadline_state->call_combiner = call_combiner;
|
179
183
|
// Deadline will always be infinite on servers, so the timer will only be
|
@@ -187,7 +191,8 @@ void grpc_deadline_state_init(grpc_call_element* elem,
|
|
187
191
|
// create a closure to start the timer, and we schedule that closure
|
188
192
|
// to be run after call stack initialization is done.
|
189
193
|
struct start_timer_after_init_state* state =
|
190
|
-
|
194
|
+
static_cast<struct start_timer_after_init_state*>(
|
195
|
+
gpr_zalloc(sizeof(*state)));
|
191
196
|
state->elem = elem;
|
192
197
|
state->deadline = deadline;
|
193
198
|
GRPC_CLOSURE_INIT(&state->closure, start_timer_after_init, state,
|
@@ -197,20 +202,23 @@ void grpc_deadline_state_init(grpc_call_element* elem,
|
|
197
202
|
}
|
198
203
|
|
199
204
|
void grpc_deadline_state_destroy(grpc_call_element* elem) {
|
200
|
-
grpc_deadline_state* deadline_state =
|
205
|
+
grpc_deadline_state* deadline_state =
|
206
|
+
static_cast<grpc_deadline_state*>(elem->call_data);
|
201
207
|
cancel_timer_if_needed(deadline_state);
|
202
208
|
}
|
203
209
|
|
204
210
|
void grpc_deadline_state_reset(grpc_call_element* elem,
|
205
211
|
grpc_millis new_deadline) {
|
206
|
-
grpc_deadline_state* deadline_state =
|
212
|
+
grpc_deadline_state* deadline_state =
|
213
|
+
static_cast<grpc_deadline_state*>(elem->call_data);
|
207
214
|
cancel_timer_if_needed(deadline_state);
|
208
215
|
start_timer_if_needed(elem, new_deadline);
|
209
216
|
}
|
210
217
|
|
211
218
|
void grpc_deadline_state_client_start_transport_stream_op_batch(
|
212
219
|
grpc_call_element* elem, grpc_transport_stream_op_batch* op) {
|
213
|
-
grpc_deadline_state* deadline_state =
|
220
|
+
grpc_deadline_state* deadline_state =
|
221
|
+
static_cast<grpc_deadline_state*>(elem->call_data);
|
214
222
|
if (op->cancel_stream) {
|
215
223
|
cancel_timer_if_needed(deadline_state);
|
216
224
|
} else {
|
@@ -278,8 +286,8 @@ static void client_start_transport_stream_op_batch(
|
|
278
286
|
|
279
287
|
// Callback for receiving initial metadata on the server.
|
280
288
|
static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
|
281
|
-
grpc_call_element* elem = (
|
282
|
-
server_call_data* calld = (
|
289
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
290
|
+
server_call_data* calld = static_cast<server_call_data*>(elem->call_data);
|
283
291
|
// Get deadline from metadata and start the timer if needed.
|
284
292
|
start_timer_if_needed(elem, calld->recv_initial_metadata->deadline);
|
285
293
|
// Invoke the next callback.
|
@@ -290,7 +298,7 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
|
|
290
298
|
// Method for starting a call op for server filter.
|
291
299
|
static void server_start_transport_stream_op_batch(
|
292
300
|
grpc_call_element* elem, grpc_transport_stream_op_batch* op) {
|
293
|
-
server_call_data* calld = (
|
301
|
+
server_call_data* calld = static_cast<server_call_data*>(elem->call_data);
|
294
302
|
if (op->cancel_stream) {
|
295
303
|
cancel_timer_if_needed(&calld->base.deadline_state);
|
296
304
|
} else {
|
@@ -360,7 +368,8 @@ static bool maybe_add_deadline_filter(grpc_channel_stack_builder* builder,
|
|
360
368
|
return grpc_deadline_checking_enabled(
|
361
369
|
grpc_channel_stack_builder_get_channel_arguments(builder))
|
362
370
|
? grpc_channel_stack_builder_prepend_filter(
|
363
|
-
builder,
|
371
|
+
builder, static_cast<const grpc_channel_filter*>(arg),
|
372
|
+
nullptr, nullptr)
|
364
373
|
: true;
|
365
374
|
}
|
366
375
|
|