grpc 1.9.1 → 1.10.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +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
@@ -16,31 +16,27 @@
|
|
16
16
|
*
|
17
17
|
*/
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_CORE_LIB_AVL_AVL_H
|
20
|
+
#define GRPC_CORE_LIB_AVL_AVL_H
|
21
21
|
|
22
22
|
#include <grpc/support/sync.h>
|
23
23
|
|
24
|
-
#ifdef __cplusplus
|
25
|
-
extern "C" {
|
26
|
-
#endif
|
27
|
-
|
28
24
|
/** internal node of an AVL tree */
|
29
|
-
typedef struct
|
25
|
+
typedef struct grpc_avl_node {
|
30
26
|
gpr_refcount refs;
|
31
27
|
void* key;
|
32
28
|
void* value;
|
33
|
-
struct
|
34
|
-
struct
|
29
|
+
struct grpc_avl_node* left;
|
30
|
+
struct grpc_avl_node* right;
|
35
31
|
long height;
|
36
|
-
}
|
32
|
+
} grpc_avl_node;
|
37
33
|
|
38
34
|
/** vtable for the AVL tree
|
39
|
-
* The optional user_data is propagated from the top level
|
35
|
+
* The optional user_data is propagated from the top level grpc_avl_XXX API.
|
40
36
|
* From the same API call, multiple vtable functions may be called multiple
|
41
37
|
* times.
|
42
38
|
*/
|
43
|
-
typedef struct
|
39
|
+
typedef struct grpc_avl_vtable {
|
44
40
|
/** destroy a key */
|
45
41
|
void (*destroy_key)(void* key, void* user_data);
|
46
42
|
/** copy a key, returning new value */
|
@@ -52,51 +48,45 @@ typedef struct gpr_avl_vtable {
|
|
52
48
|
void (*destroy_value)(void* value, void* user_data);
|
53
49
|
/** copy a value */
|
54
50
|
void* (*copy_value)(void* value, void* user_data);
|
55
|
-
}
|
51
|
+
} grpc_avl_vtable;
|
56
52
|
|
57
53
|
/** "pointer" to an AVL tree - this is a reference
|
58
|
-
counted object - use
|
59
|
-
|
60
|
-
typedef struct
|
61
|
-
const
|
62
|
-
|
63
|
-
}
|
54
|
+
counted object - use grpc_avl_ref to add a reference,
|
55
|
+
grpc_avl_unref when done with a reference */
|
56
|
+
typedef struct grpc_avl {
|
57
|
+
const grpc_avl_vtable* vtable;
|
58
|
+
grpc_avl_node* root;
|
59
|
+
} grpc_avl;
|
64
60
|
|
65
61
|
/** Create an immutable AVL tree. */
|
66
|
-
|
62
|
+
grpc_avl grpc_avl_create(const grpc_avl_vtable* vtable);
|
67
63
|
/** Add a reference to an existing tree - returns
|
68
64
|
the tree as a convenience. The optional user_data will be passed to vtable
|
69
65
|
functions. */
|
70
|
-
|
66
|
+
grpc_avl grpc_avl_ref(grpc_avl avl, void* user_data);
|
71
67
|
/** Remove a reference to a tree - destroying it if there
|
72
68
|
are no references left. The optional user_data will be passed to vtable
|
73
69
|
functions. */
|
74
|
-
|
70
|
+
void grpc_avl_unref(grpc_avl avl, void* user_data);
|
75
71
|
/** Return a new tree with (key, value) added to avl.
|
76
72
|
implicitly unrefs avl to allow easy chaining.
|
77
73
|
if key exists in avl, the new tree's key entry updated
|
78
74
|
(i.e. a duplicate is not created). The optional user_data will be passed to
|
79
75
|
vtable functions. */
|
80
|
-
|
81
|
-
void* user_data);
|
76
|
+
grpc_avl grpc_avl_add(grpc_avl avl, void* key, void* value, void* user_data);
|
82
77
|
/** Return a new tree with key deleted
|
83
78
|
implicitly unrefs avl to allow easy chaining. The optional user_data will be
|
84
79
|
passed to vtable functions. */
|
85
|
-
|
80
|
+
grpc_avl grpc_avl_remove(grpc_avl avl, void* key, void* user_data);
|
86
81
|
/** Lookup key, and return the associated value.
|
87
82
|
Does not mutate avl.
|
88
83
|
Returns NULL if key is not found. The optional user_data will be passed to
|
89
84
|
vtable functions.*/
|
90
|
-
|
85
|
+
void* grpc_avl_get(grpc_avl avl, void* key, void* user_data);
|
91
86
|
/** Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to
|
92
|
-
its value.
|
93
|
-
|
94
|
-
void* user_data);
|
87
|
+
its value. The optional user_data will be passed to vtable functions. */
|
88
|
+
int grpc_avl_maybe_get(grpc_avl avl, void* key, void** value, void* user_data);
|
95
89
|
/** Return 1 if avl is empty, 0 otherwise */
|
96
|
-
|
97
|
-
|
98
|
-
#ifdef __cplusplus
|
99
|
-
}
|
100
|
-
#endif
|
90
|
+
int grpc_avl_is_empty(grpc_avl avl);
|
101
91
|
|
102
|
-
#endif /*
|
92
|
+
#endif /* GRPC_CORE_LIB_AVL_AVL_H */
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
#include <algorithm>
|
22
22
|
|
23
|
-
#include
|
23
|
+
#include "src/core/lib/gpr/useful.h"
|
24
24
|
|
25
25
|
namespace grpc_core {
|
26
26
|
|
@@ -55,13 +55,14 @@ grpc_millis BackOff::NextAttemptTime() {
|
|
55
55
|
initial_ = false;
|
56
56
|
return current_backoff_ + grpc_core::ExecCtx::Get()->Now();
|
57
57
|
}
|
58
|
-
current_backoff_ =
|
59
|
-
|
60
|
-
|
58
|
+
current_backoff_ = static_cast<grpc_millis>(
|
59
|
+
std::min(current_backoff_ * options_.multiplier(),
|
60
|
+
static_cast<double>(options_.max_backoff())));
|
61
61
|
const double jitter = generate_uniform_random_number_between(
|
62
62
|
&rng_state_, -options_.jitter() * current_backoff_,
|
63
63
|
options_.jitter() * current_backoff_);
|
64
|
-
const grpc_millis next_timeout =
|
64
|
+
const grpc_millis next_timeout =
|
65
|
+
static_cast<grpc_millis>(current_backoff_ + jitter);
|
65
66
|
return next_timeout + grpc_core::ExecCtx::Get()->Now();
|
66
67
|
}
|
67
68
|
|
@@ -26,10 +26,10 @@
|
|
26
26
|
#include <grpc/support/alloc.h>
|
27
27
|
#include <grpc/support/log.h>
|
28
28
|
#include <grpc/support/string_util.h>
|
29
|
-
#include <grpc/support/useful.h>
|
30
29
|
|
31
30
|
#include "src/core/lib/channel/channel_args.h"
|
32
31
|
#include "src/core/lib/gpr/string.h"
|
32
|
+
#include "src/core/lib/gpr/useful.h"
|
33
33
|
|
34
34
|
static grpc_arg copy_arg(const grpc_arg* src) {
|
35
35
|
grpc_arg dst;
|
@@ -87,13 +87,14 @@ grpc_channel_args* grpc_channel_args_copy_and_add_and_remove(
|
|
87
87
|
}
|
88
88
|
// Create result.
|
89
89
|
grpc_channel_args* dst =
|
90
|
-
(
|
90
|
+
static_cast<grpc_channel_args*>(gpr_malloc(sizeof(grpc_channel_args)));
|
91
91
|
dst->num_args = num_args_to_copy + num_to_add;
|
92
92
|
if (dst->num_args == 0) {
|
93
93
|
dst->args = nullptr;
|
94
94
|
return dst;
|
95
95
|
}
|
96
|
-
dst->args =
|
96
|
+
dst->args =
|
97
|
+
static_cast<grpc_arg*>(gpr_malloc(sizeof(grpc_arg) * dst->num_args));
|
97
98
|
// Copy args from src that are not being removed.
|
98
99
|
size_t dst_idx = 0;
|
99
100
|
if (src != nullptr) {
|
@@ -118,7 +119,8 @@ grpc_channel_args* grpc_channel_args_copy(const grpc_channel_args* src) {
|
|
118
119
|
grpc_channel_args* grpc_channel_args_union(const grpc_channel_args* a,
|
119
120
|
const grpc_channel_args* b) {
|
120
121
|
const size_t max_out = (a->num_args + b->num_args);
|
121
|
-
grpc_arg* uniques =
|
122
|
+
grpc_arg* uniques =
|
123
|
+
static_cast<grpc_arg*>(gpr_malloc(sizeof(*uniques) * max_out));
|
122
124
|
for (size_t i = 0; i < a->num_args; ++i) uniques[i] = a->args[i];
|
123
125
|
|
124
126
|
size_t uniques_idx = a->num_args;
|
@@ -161,15 +163,16 @@ static int cmp_arg(const grpc_arg* a, const grpc_arg* b) {
|
|
161
163
|
/* stabilizing comparison function: since channel_args ordering matters for
|
162
164
|
* keys with the same name, we need to preserve that ordering */
|
163
165
|
static int cmp_key_stable(const void* ap, const void* bp) {
|
164
|
-
const grpc_arg* const* a =
|
165
|
-
const grpc_arg* const* b =
|
166
|
+
const grpc_arg* const* a = static_cast<const grpc_arg* const*>(ap);
|
167
|
+
const grpc_arg* const* b = static_cast<const grpc_arg* const*>(bp);
|
166
168
|
int c = strcmp((*a)->key, (*b)->key);
|
167
169
|
if (c == 0) c = GPR_ICMP(*a, *b);
|
168
170
|
return c;
|
169
171
|
}
|
170
172
|
|
171
173
|
grpc_channel_args* grpc_channel_args_normalize(const grpc_channel_args* a) {
|
172
|
-
grpc_arg** args =
|
174
|
+
grpc_arg** args =
|
175
|
+
static_cast<grpc_arg**>(gpr_malloc(sizeof(grpc_arg*) * a->num_args));
|
173
176
|
for (size_t i = 0; i < a->num_args; i++) {
|
174
177
|
args[i] = &a->args[i];
|
175
178
|
}
|
@@ -177,9 +180,9 @@ grpc_channel_args* grpc_channel_args_normalize(const grpc_channel_args* a) {
|
|
177
180
|
qsort(args, a->num_args, sizeof(grpc_arg*), cmp_key_stable);
|
178
181
|
|
179
182
|
grpc_channel_args* b =
|
180
|
-
(
|
183
|
+
static_cast<grpc_channel_args*>(gpr_malloc(sizeof(grpc_channel_args)));
|
181
184
|
b->num_args = a->num_args;
|
182
|
-
b->args = (
|
185
|
+
b->args = static_cast<grpc_arg*>(gpr_malloc(sizeof(grpc_arg) * b->num_args));
|
183
186
|
for (size_t i = 0; i < a->num_args; i++) {
|
184
187
|
b->args[i] = copy_arg(args[i]);
|
185
188
|
}
|
@@ -215,28 +218,13 @@ grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
|
|
215
218
|
for (i = 0; i < a->num_args; ++i) {
|
216
219
|
if (a->args[i].type == GRPC_ARG_INTEGER &&
|
217
220
|
!strcmp(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM, a->args[i].key)) {
|
218
|
-
return (
|
221
|
+
return static_cast<grpc_compression_algorithm>(a->args[i].value.integer);
|
219
222
|
break;
|
220
223
|
}
|
221
224
|
}
|
222
225
|
return GRPC_COMPRESS_NONE;
|
223
226
|
}
|
224
227
|
|
225
|
-
grpc_stream_compression_algorithm
|
226
|
-
grpc_channel_args_get_stream_compression_algorithm(const grpc_channel_args* a) {
|
227
|
-
size_t i;
|
228
|
-
if (a == nullptr) return GRPC_STREAM_COMPRESS_NONE;
|
229
|
-
for (i = 0; i < a->num_args; ++i) {
|
230
|
-
if (a->args[i].type == GRPC_ARG_INTEGER &&
|
231
|
-
!strcmp(GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM,
|
232
|
-
a->args[i].key)) {
|
233
|
-
return (grpc_stream_compression_algorithm)a->args[i].value.integer;
|
234
|
-
break;
|
235
|
-
}
|
236
|
-
}
|
237
|
-
return GRPC_STREAM_COMPRESS_NONE;
|
238
|
-
}
|
239
|
-
|
240
228
|
grpc_channel_args* grpc_channel_args_set_compression_algorithm(
|
241
229
|
grpc_channel_args* a, grpc_compression_algorithm algorithm) {
|
242
230
|
GPR_ASSERT(algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT);
|
@@ -247,16 +235,6 @@ grpc_channel_args* grpc_channel_args_set_compression_algorithm(
|
|
247
235
|
return grpc_channel_args_copy_and_add(a, &tmp, 1);
|
248
236
|
}
|
249
237
|
|
250
|
-
grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
|
251
|
-
grpc_channel_args* a, grpc_stream_compression_algorithm algorithm) {
|
252
|
-
GPR_ASSERT(algorithm < GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT);
|
253
|
-
grpc_arg tmp;
|
254
|
-
tmp.type = GRPC_ARG_INTEGER;
|
255
|
-
tmp.key = (char*)GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM;
|
256
|
-
tmp.value.integer = algorithm;
|
257
|
-
return grpc_channel_args_copy_and_add(a, &tmp, 1);
|
258
|
-
}
|
259
|
-
|
260
238
|
/** Returns 1 if the argument for compression algorithm's enabled states bitset
|
261
239
|
* was found in \a a, returning the arg's value in \a states. Otherwise, returns
|
262
240
|
* 0. */
|
@@ -277,26 +255,6 @@ static int find_compression_algorithm_states_bitset(const grpc_channel_args* a,
|
|
277
255
|
return 0; /* GPR_FALSE */
|
278
256
|
}
|
279
257
|
|
280
|
-
/** Returns 1 if the argument for compression algorithm's enabled states bitset
|
281
|
-
* was found in \a a, returning the arg's value in \a states. Otherwise, returns
|
282
|
-
* 0. */
|
283
|
-
static int find_stream_compression_algorithm_states_bitset(
|
284
|
-
const grpc_channel_args* a, int** states_arg) {
|
285
|
-
if (a != nullptr) {
|
286
|
-
size_t i;
|
287
|
-
for (i = 0; i < a->num_args; ++i) {
|
288
|
-
if (a->args[i].type == GRPC_ARG_INTEGER &&
|
289
|
-
!strcmp(GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
|
290
|
-
a->args[i].key)) {
|
291
|
-
*states_arg = &a->args[i].value.integer;
|
292
|
-
**states_arg |= 0x1; /* forcefully enable support for no compression */
|
293
|
-
return 1;
|
294
|
-
}
|
295
|
-
}
|
296
|
-
}
|
297
|
-
return 0; /* GPR_FALSE */
|
298
|
-
}
|
299
|
-
|
300
258
|
grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
301
259
|
grpc_channel_args** a, grpc_compression_algorithm algorithm, int state) {
|
302
260
|
int* states_arg = nullptr;
|
@@ -337,69 +295,16 @@ grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
|
337
295
|
return result;
|
338
296
|
}
|
339
297
|
|
340
|
-
grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
341
|
-
grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
|
342
|
-
int state) {
|
343
|
-
int* states_arg = nullptr;
|
344
|
-
grpc_channel_args* result = *a;
|
345
|
-
const int states_arg_found =
|
346
|
-
find_stream_compression_algorithm_states_bitset(*a, &states_arg);
|
347
|
-
|
348
|
-
if (grpc_channel_args_get_stream_compression_algorithm(*a) == algorithm &&
|
349
|
-
state == 0) {
|
350
|
-
const char* algo_name = nullptr;
|
351
|
-
GPR_ASSERT(grpc_stream_compression_algorithm_name(algorithm, &algo_name) !=
|
352
|
-
0);
|
353
|
-
gpr_log(GPR_ERROR,
|
354
|
-
"Tried to disable default stream compression algorithm '%s'. The "
|
355
|
-
"operation has been ignored.",
|
356
|
-
algo_name);
|
357
|
-
} else if (states_arg_found) {
|
358
|
-
if (state != 0) {
|
359
|
-
GPR_BITSET((unsigned*)states_arg, algorithm);
|
360
|
-
} else if (algorithm != GRPC_STREAM_COMPRESS_NONE) {
|
361
|
-
GPR_BITCLEAR((unsigned*)states_arg, algorithm);
|
362
|
-
}
|
363
|
-
} else {
|
364
|
-
/* create a new arg */
|
365
|
-
grpc_arg tmp;
|
366
|
-
tmp.type = GRPC_ARG_INTEGER;
|
367
|
-
tmp.key = (char*)GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET;
|
368
|
-
/* all enabled by default */
|
369
|
-
tmp.value.integer = (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1;
|
370
|
-
if (state != 0) {
|
371
|
-
GPR_BITSET((unsigned*)&tmp.value.integer, algorithm);
|
372
|
-
} else if (algorithm != GRPC_STREAM_COMPRESS_NONE) {
|
373
|
-
GPR_BITCLEAR((unsigned*)&tmp.value.integer, algorithm);
|
374
|
-
}
|
375
|
-
result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
|
376
|
-
grpc_channel_args_destroy(*a);
|
377
|
-
*a = result;
|
378
|
-
}
|
379
|
-
return result;
|
380
|
-
}
|
381
|
-
|
382
298
|
uint32_t grpc_channel_args_compression_algorithm_get_states(
|
383
299
|
const grpc_channel_args* a) {
|
384
300
|
int* states_arg;
|
385
301
|
if (find_compression_algorithm_states_bitset(a, &states_arg)) {
|
386
|
-
return (
|
302
|
+
return static_cast<uint32_t>(*states_arg);
|
387
303
|
} else {
|
388
304
|
return (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1; /* All algs. enabled */
|
389
305
|
}
|
390
306
|
}
|
391
307
|
|
392
|
-
uint32_t grpc_channel_args_stream_compression_algorithm_get_states(
|
393
|
-
const grpc_channel_args* a) {
|
394
|
-
int* states_arg;
|
395
|
-
if (find_stream_compression_algorithm_states_bitset(a, &states_arg)) {
|
396
|
-
return (uint32_t)*states_arg;
|
397
|
-
} else {
|
398
|
-
return (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) -
|
399
|
-
1; /* All algs. enabled */
|
400
|
-
}
|
401
|
-
}
|
402
|
-
|
403
308
|
grpc_channel_args* grpc_channel_args_set_socket_mutator(
|
404
309
|
grpc_channel_args* a, grpc_socket_mutator* mutator) {
|
405
310
|
grpc_arg tmp = grpc_socket_mutator_to_arg(mutator);
|
@@ -449,6 +354,15 @@ int grpc_channel_arg_get_integer(const grpc_arg* arg,
|
|
449
354
|
return arg->value.integer;
|
450
355
|
}
|
451
356
|
|
357
|
+
char* grpc_channel_arg_get_string(const grpc_arg* arg) {
|
358
|
+
if (arg == nullptr) return nullptr;
|
359
|
+
if (arg->type != GRPC_ARG_STRING) {
|
360
|
+
gpr_log(GPR_ERROR, "%s ignored: it must be an string", arg->key);
|
361
|
+
return nullptr;
|
362
|
+
}
|
363
|
+
return arg->value.string;
|
364
|
+
}
|
365
|
+
|
452
366
|
bool grpc_channel_arg_get_bool(const grpc_arg* arg, bool default_value) {
|
453
367
|
if (arg == nullptr) return default_value;
|
454
368
|
if (arg->type != GRPC_ARG_INTEGER) {
|
@@ -59,24 +59,12 @@ void grpc_channel_args_destroy(grpc_channel_args* a);
|
|
59
59
|
grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
|
60
60
|
const grpc_channel_args* a);
|
61
61
|
|
62
|
-
/** Returns the stream compression algorithm set in \a a. */
|
63
|
-
grpc_stream_compression_algorithm
|
64
|
-
grpc_channel_args_get_stream_compression_algorithm(const grpc_channel_args* a);
|
65
|
-
|
66
62
|
/** Returns a channel arg instance with compression enabled. If \a a is
|
67
63
|
* non-NULL, its args are copied. N.B. GRPC_COMPRESS_NONE disables compression
|
68
64
|
* for the channel. */
|
69
65
|
grpc_channel_args* grpc_channel_args_set_compression_algorithm(
|
70
66
|
grpc_channel_args* a, grpc_compression_algorithm algorithm);
|
71
67
|
|
72
|
-
/** Returns a channel arg instance with stream compression enabled. If \a a is
|
73
|
-
* non-NULL, its args are copied. N.B. GRPC_STREAM_COMPRESS_NONE disables
|
74
|
-
* stream compression for the channel. If a value other than
|
75
|
-
* GRPC_STREAM_COMPRESS_NONE is set, it takes precedence over message-wise
|
76
|
-
* compression algorithms. */
|
77
|
-
grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
|
78
|
-
grpc_channel_args* a, grpc_stream_compression_algorithm algorithm);
|
79
|
-
|
80
68
|
/** Sets the support for the given compression algorithm. By default, all
|
81
69
|
* compression algorithms are enabled. It's an error to disable an algorithm set
|
82
70
|
* by grpc_channel_args_set_compression_algorithm.
|
@@ -87,17 +75,6 @@ grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
|
|
87
75
|
grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
88
76
|
grpc_channel_args** a, grpc_compression_algorithm algorithm, int enabled);
|
89
77
|
|
90
|
-
/** Sets the support for the given stream compression algorithm. By default, all
|
91
|
-
* stream compression algorithms are enabled. It's an error to disable an
|
92
|
-
* algorithm set by grpc_channel_args_set_stream_compression_algorithm.
|
93
|
-
*
|
94
|
-
* Returns an instance with the updated algorithm states. The \a a pointer is
|
95
|
-
* modified to point to the returned instance (which may be different from the
|
96
|
-
* input value of \a a). */
|
97
|
-
grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
98
|
-
grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
|
99
|
-
int enabled);
|
100
|
-
|
101
78
|
/** Returns the bitset representing the support state (true for enabled, false
|
102
79
|
* for disabled) for compression algorithms.
|
103
80
|
*
|
@@ -106,14 +83,6 @@ grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
|
106
83
|
uint32_t grpc_channel_args_compression_algorithm_get_states(
|
107
84
|
const grpc_channel_args* a);
|
108
85
|
|
109
|
-
/** Returns the bitset representing the support state (true for enabled, false
|
110
|
-
* for disabled) for stream compression algorithms.
|
111
|
-
*
|
112
|
-
* The i-th bit of the returned bitset corresponds to the i-th entry in the
|
113
|
-
* grpc_stream_compression_algorithm enum. */
|
114
|
-
uint32_t grpc_channel_args_stream_compression_algorithm_get_states(
|
115
|
-
const grpc_channel_args* a);
|
116
|
-
|
117
86
|
int grpc_channel_args_compare(const grpc_channel_args* a,
|
118
87
|
const grpc_channel_args* b);
|
119
88
|
|
@@ -140,6 +109,11 @@ typedef struct grpc_integer_options {
|
|
140
109
|
int grpc_channel_arg_get_integer(const grpc_arg* arg,
|
141
110
|
const grpc_integer_options options);
|
142
111
|
|
112
|
+
/** Returns the value of \a arg if \a arg is of type GRPC_ARG_STRING.
|
113
|
+
Otherwise, emits a warning log, and returns nullptr.
|
114
|
+
If arg is nullptr, returns nullptr, and does not emit a warning. */
|
115
|
+
char* grpc_channel_arg_get_string(const grpc_arg* arg);
|
116
|
+
|
143
117
|
bool grpc_channel_arg_get_bool(const grpc_arg* arg, bool default_value);
|
144
118
|
|
145
119
|
// Helpers for creating channel args.
|
@@ -104,8 +104,9 @@ grpc_error* grpc_channel_stack_init(
|
|
104
104
|
GRPC_STREAM_REF_INIT(&stack->refcount, initial_refs, destroy, destroy_arg,
|
105
105
|
name);
|
106
106
|
elems = CHANNEL_ELEMS_FROM_STACK(stack);
|
107
|
-
user_data =
|
108
|
-
|
107
|
+
user_data =
|
108
|
+
(reinterpret_cast<char*>(elems)) +
|
109
|
+
ROUND_UP_TO_ALIGNMENT_SIZE(filter_count * sizeof(grpc_channel_element));
|
109
110
|
|
110
111
|
/* init per-filter data */
|
111
112
|
grpc_error* first_error = GRPC_ERROR_NONE;
|
@@ -162,7 +163,7 @@ grpc_error* grpc_call_stack_init(grpc_channel_stack* channel_stack,
|
|
162
163
|
GRPC_STREAM_REF_INIT(&elem_args->call_stack->refcount, initial_refs, destroy,
|
163
164
|
destroy_arg, "CALL_STACK");
|
164
165
|
call_elems = CALL_ELEMS_FROM_STACK(elem_args->call_stack);
|
165
|
-
user_data = ((
|
166
|
+
user_data = (reinterpret_cast<char*>(call_elems)) +
|
166
167
|
ROUND_UP_TO_ALIGNMENT_SIZE(count * sizeof(grpc_call_element));
|
167
168
|
|
168
169
|
/* init per-filter data */
|
@@ -194,7 +195,7 @@ void grpc_call_stack_set_pollset_or_pollset_set(grpc_call_stack* call_stack,
|
|
194
195
|
size_t i;
|
195
196
|
|
196
197
|
call_elems = CALL_ELEMS_FROM_STACK(call_stack);
|
197
|
-
user_data = ((
|
198
|
+
user_data = (reinterpret_cast<char*>(call_elems)) +
|
198
199
|
ROUND_UP_TO_ALIGNMENT_SIZE(count * sizeof(grpc_call_element));
|
199
200
|
|
200
201
|
/* init per-filter data */
|
@@ -243,11 +244,13 @@ void grpc_channel_next_op(grpc_channel_element* elem, grpc_transport_op* op) {
|
|
243
244
|
|
244
245
|
grpc_channel_stack* grpc_channel_stack_from_top_element(
|
245
246
|
grpc_channel_element* elem) {
|
246
|
-
return
|
247
|
-
|
247
|
+
return reinterpret_cast<grpc_channel_stack*>(
|
248
|
+
reinterpret_cast<char*>(elem) -
|
249
|
+
ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(grpc_channel_stack)));
|
248
250
|
}
|
249
251
|
|
250
252
|
grpc_call_stack* grpc_call_stack_from_top_element(grpc_call_element* elem) {
|
251
|
-
return
|
252
|
-
|
253
|
+
return reinterpret_cast<grpc_call_stack*>(
|
254
|
+
reinterpret_cast<char*>(elem) -
|
255
|
+
ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(grpc_call_stack)));
|
253
256
|
}
|