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
@@ -138,8 +138,8 @@ static grpc_error* client_filter_incoming_metadata(grpc_call_element* elem,
|
|
138
138
|
}
|
139
139
|
|
140
140
|
static void recv_initial_metadata_ready(void* user_data, grpc_error* error) {
|
141
|
-
grpc_call_element* elem = (
|
142
|
-
call_data* calld = (
|
141
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
142
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
143
143
|
if (error == GRPC_ERROR_NONE) {
|
144
144
|
error = client_filter_incoming_metadata(elem, calld->recv_initial_metadata);
|
145
145
|
} else {
|
@@ -150,8 +150,8 @@ static void recv_initial_metadata_ready(void* user_data, grpc_error* error) {
|
|
150
150
|
|
151
151
|
static void recv_trailing_metadata_on_complete(void* user_data,
|
152
152
|
grpc_error* error) {
|
153
|
-
grpc_call_element* elem = (
|
154
|
-
call_data* calld = (
|
153
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
154
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
155
155
|
if (error == GRPC_ERROR_NONE) {
|
156
156
|
error =
|
157
157
|
client_filter_incoming_metadata(elem, calld->recv_trailing_metadata);
|
@@ -162,8 +162,8 @@ static void recv_trailing_metadata_on_complete(void* user_data,
|
|
162
162
|
}
|
163
163
|
|
164
164
|
static void send_message_on_complete(void* arg, grpc_error* error) {
|
165
|
-
grpc_call_element* elem = (
|
166
|
-
call_data* calld = (
|
165
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
166
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
167
167
|
grpc_byte_stream_cache_destroy(&calld->send_message_cache);
|
168
168
|
GRPC_CLOSURE_RUN(calld->original_send_message_on_complete,
|
169
169
|
GRPC_ERROR_REF(error));
|
@@ -189,7 +189,8 @@ static grpc_error* pull_slice_from_send_message(call_data* calld) {
|
|
189
189
|
// and on_send_message_next_done() will be invoked when it is complete.
|
190
190
|
static grpc_error* read_all_available_send_message_data(call_data* calld) {
|
191
191
|
while (grpc_byte_stream_next(&calld->send_message_caching_stream.base,
|
192
|
-
~(
|
192
|
+
~static_cast<size_t>(0),
|
193
|
+
&calld->on_send_message_next_done)) {
|
193
194
|
grpc_error* error = pull_slice_from_send_message(calld);
|
194
195
|
if (error != GRPC_ERROR_NONE) return error;
|
195
196
|
if (calld->send_message_bytes_read ==
|
@@ -202,8 +203,8 @@ static grpc_error* read_all_available_send_message_data(call_data* calld) {
|
|
202
203
|
|
203
204
|
// Async callback for grpc_byte_stream_next().
|
204
205
|
static void on_send_message_next_done(void* arg, grpc_error* error) {
|
205
|
-
grpc_call_element* elem = (
|
206
|
-
call_data* calld = (
|
206
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
207
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
207
208
|
if (error != GRPC_ERROR_NONE) {
|
208
209
|
grpc_transport_stream_op_batch_finish_with_failure(
|
209
210
|
calld->send_message_batch, error, calld->call_combiner);
|
@@ -224,7 +225,8 @@ static void on_send_message_next_done(void* arg, grpc_error* error) {
|
|
224
225
|
}
|
225
226
|
|
226
227
|
static char* slice_buffer_to_string(grpc_slice_buffer* slice_buffer) {
|
227
|
-
char* payload_bytes =
|
228
|
+
char* payload_bytes =
|
229
|
+
static_cast<char*>(gpr_malloc(slice_buffer->length + 1));
|
228
230
|
size_t offset = 0;
|
229
231
|
for (size_t i = 0; i < slice_buffer->count; ++i) {
|
230
232
|
memcpy(payload_bytes + offset,
|
@@ -240,7 +242,7 @@ static char* slice_buffer_to_string(grpc_slice_buffer* slice_buffer) {
|
|
240
242
|
// append the base64-encoded query for a GET request.
|
241
243
|
static grpc_error* update_path_for_get(grpc_call_element* elem,
|
242
244
|
grpc_transport_stream_op_batch* batch) {
|
243
|
-
call_data* calld = (
|
245
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
244
246
|
grpc_slice path_slice =
|
245
247
|
GRPC_MDVALUE(batch->payload->send_initial_metadata.send_initial_metadata
|
246
248
|
->idx.named.path->md);
|
@@ -253,19 +255,21 @@ static grpc_error* update_path_for_get(grpc_call_element* elem,
|
|
253
255
|
false /* multi_line */);
|
254
256
|
grpc_slice path_with_query_slice = GRPC_SLICE_MALLOC(estimated_len);
|
255
257
|
/* memcopy individual pieces into this slice */
|
256
|
-
char* write_ptr =
|
257
|
-
|
258
|
+
char* write_ptr =
|
259
|
+
reinterpret_cast<char*> GRPC_SLICE_START_PTR(path_with_query_slice);
|
260
|
+
char* original_path =
|
261
|
+
reinterpret_cast<char*> GRPC_SLICE_START_PTR(path_slice);
|
258
262
|
memcpy(write_ptr, original_path, GRPC_SLICE_LENGTH(path_slice));
|
259
263
|
write_ptr += GRPC_SLICE_LENGTH(path_slice);
|
260
264
|
*write_ptr++ = '?';
|
261
265
|
char* payload_bytes =
|
262
266
|
slice_buffer_to_string(&calld->send_message_cache.cache_buffer);
|
263
|
-
grpc_base64_encode_core(
|
267
|
+
grpc_base64_encode_core(write_ptr, payload_bytes,
|
264
268
|
batch->payload->send_message.send_message->length,
|
265
269
|
true /* url_safe */, false /* multi_line */);
|
266
270
|
gpr_free(payload_bytes);
|
267
271
|
/* remove trailing unused memory and add trailing 0 to terminate string */
|
268
|
-
char* t =
|
272
|
+
char* t = reinterpret_cast<char*> GRPC_SLICE_START_PTR(path_with_query_slice);
|
269
273
|
/* safe to use strlen since base64_encode will always add '\0' */
|
270
274
|
path_with_query_slice =
|
271
275
|
grpc_slice_sub_no_ref(path_with_query_slice, 0, strlen(t));
|
@@ -287,9 +291,9 @@ static void remove_if_present(grpc_metadata_batch* batch,
|
|
287
291
|
|
288
292
|
static void hc_start_transport_stream_op_batch(
|
289
293
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
290
|
-
call_data* calld = (
|
291
|
-
channel_data* channeld = (
|
292
|
-
|
294
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
295
|
+
channel_data* channeld = static_cast<channel_data*>(elem->channel_data);
|
296
|
+
GPR_TIMER_SCOPE("hc_start_transport_stream_op_batch", 0);
|
293
297
|
|
294
298
|
if (batch->recv_initial_metadata) {
|
295
299
|
/* substitute our callback for the higher callback */
|
@@ -404,13 +408,12 @@ done:
|
|
404
408
|
} else if (!batch_will_be_handled_asynchronously) {
|
405
409
|
grpc_call_next_op(elem, batch);
|
406
410
|
}
|
407
|
-
GPR_TIMER_END("hc_start_transport_stream_op_batch", 0);
|
408
411
|
}
|
409
412
|
|
410
413
|
/* Constructor for call_data */
|
411
414
|
static grpc_error* init_call_elem(grpc_call_element* elem,
|
412
415
|
const grpc_call_element_args* args) {
|
413
|
-
call_data* calld = (
|
416
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
414
417
|
calld->call_combiner = args->call_combiner;
|
415
418
|
GRPC_CLOSURE_INIT(&calld->recv_initial_metadata_ready,
|
416
419
|
recv_initial_metadata_ready, elem,
|
@@ -459,7 +462,7 @@ static size_t max_payload_size_from_args(const grpc_channel_args* args) {
|
|
459
462
|
gpr_log(GPR_ERROR, "%s: must be an integer",
|
460
463
|
GRPC_ARG_MAX_PAYLOAD_SIZE_FOR_GET);
|
461
464
|
} else {
|
462
|
-
return (
|
465
|
+
return static_cast<size_t>(args->args[i].value.integer);
|
463
466
|
}
|
464
467
|
}
|
465
468
|
}
|
@@ -520,7 +523,7 @@ static grpc_slice user_agent_from_args(const grpc_channel_args* args,
|
|
520
523
|
/* Constructor for channel_data */
|
521
524
|
static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
522
525
|
grpc_channel_element_args* args) {
|
523
|
-
channel_data* chand = (
|
526
|
+
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
524
527
|
GPR_ASSERT(!args->is_last);
|
525
528
|
GPR_ASSERT(args->optional_transport != nullptr);
|
526
529
|
chand->static_scheme = scheme_from_args(args->channel_args);
|
@@ -535,7 +538,7 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
|
535
538
|
|
536
539
|
/* Destructor for channel data */
|
537
540
|
static void destroy_channel_elem(grpc_channel_element* elem) {
|
538
|
-
channel_data* chand = (
|
541
|
+
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
539
542
|
GRPC_MDELEM_UNREF(chand->user_agent);
|
540
543
|
}
|
541
544
|
|
@@ -43,7 +43,7 @@ static bool is_building_http_like_transport(
|
|
43
43
|
static bool maybe_add_optional_filter(grpc_channel_stack_builder* builder,
|
44
44
|
void* arg) {
|
45
45
|
if (!is_building_http_like_transport(builder)) return true;
|
46
|
-
optional_filter* filtarg = (
|
46
|
+
optional_filter* filtarg = static_cast<optional_filter*>(arg);
|
47
47
|
const grpc_channel_args* channel_args =
|
48
48
|
grpc_channel_stack_builder_get_channel_arguments(builder);
|
49
49
|
bool enable = grpc_channel_arg_get_bool(
|
@@ -58,7 +58,8 @@ static bool maybe_add_required_filter(grpc_channel_stack_builder* builder,
|
|
58
58
|
void* arg) {
|
59
59
|
return is_building_http_like_transport(builder)
|
60
60
|
? grpc_channel_stack_builder_prepend_filter(
|
61
|
-
builder,
|
61
|
+
builder, static_cast<const grpc_channel_filter*>(arg),
|
62
|
+
nullptr, nullptr)
|
62
63
|
: true;
|
63
64
|
}
|
64
65
|
|
@@ -27,6 +27,7 @@
|
|
27
27
|
#include "src/core/ext/filters/http/message_compress/message_compress_filter.h"
|
28
28
|
#include "src/core/lib/channel/channel_args.h"
|
29
29
|
#include "src/core/lib/compression/algorithm_metadata.h"
|
30
|
+
#include "src/core/lib/compression/compression_internal.h"
|
30
31
|
#include "src/core/lib/compression/message_compress.h"
|
31
32
|
#include "src/core/lib/gpr/string.h"
|
32
33
|
#include "src/core/lib/profiling/timers.h"
|
@@ -53,7 +54,7 @@ struct call_data {
|
|
53
54
|
grpc_linked_mdelem accept_stream_encoding_storage;
|
54
55
|
/** Compression algorithm we'll try to use. It may be given by incoming
|
55
56
|
* metadata, or by the channel's default compression settings. */
|
56
|
-
|
57
|
+
grpc_message_compression_algorithm message_compression_algorithm;
|
57
58
|
initial_metadata_state send_initial_metadata_state;
|
58
59
|
grpc_error* cancel_error;
|
59
60
|
grpc_closure start_send_message_batch_in_call_combiner;
|
@@ -68,15 +69,10 @@ struct call_data {
|
|
68
69
|
struct channel_data {
|
69
70
|
/** The default, channel-level, compression algorithm */
|
70
71
|
grpc_compression_algorithm default_compression_algorithm;
|
71
|
-
/** Bitset of enabled algorithms */
|
72
|
+
/** Bitset of enabled compression algorithms */
|
72
73
|
uint32_t enabled_algorithms_bitset;
|
73
74
|
/** Supported compression algorithms */
|
74
|
-
uint32_t
|
75
|
-
|
76
|
-
/** The default, channel-level, stream compression algorithm */
|
77
|
-
grpc_stream_compression_algorithm default_stream_compression_algorithm;
|
78
|
-
/** Bitset of enabled stream compression algorithms */
|
79
|
-
uint32_t enabled_stream_compression_algorithms_bitset;
|
75
|
+
uint32_t supported_message_compression_algorithms;
|
80
76
|
/** Supported stream compression algorithms */
|
81
77
|
uint32_t supported_stream_compression_algorithms;
|
82
78
|
};
|
@@ -84,14 +80,14 @@ struct channel_data {
|
|
84
80
|
|
85
81
|
static bool skip_compression(grpc_call_element* elem, uint32_t flags,
|
86
82
|
bool has_compression_algorithm) {
|
87
|
-
call_data* calld = (
|
88
|
-
channel_data* channeld = (
|
83
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
84
|
+
channel_data* channeld = static_cast<channel_data*>(elem->channel_data);
|
89
85
|
|
90
86
|
if (flags & (GRPC_WRITE_NO_COMPRESS | GRPC_WRITE_INTERNAL_COMPRESS)) {
|
91
87
|
return true;
|
92
88
|
}
|
93
89
|
if (has_compression_algorithm) {
|
94
|
-
if (calld->
|
90
|
+
if (calld->message_compression_algorithm == GRPC_MESSAGE_COMPRESS_NONE) {
|
95
91
|
return true;
|
96
92
|
}
|
97
93
|
return false; /* we have an actual call-specific algorithm */
|
@@ -107,73 +103,56 @@ static grpc_error* process_send_initial_metadata(
|
|
107
103
|
static grpc_error* process_send_initial_metadata(
|
108
104
|
grpc_call_element* elem, grpc_metadata_batch* initial_metadata,
|
109
105
|
bool* has_compression_algorithm) {
|
110
|
-
call_data* calld = (
|
111
|
-
channel_data* channeld = (
|
106
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
107
|
+
channel_data* channeld = static_cast<channel_data*>(elem->channel_data);
|
112
108
|
*has_compression_algorithm = false;
|
109
|
+
grpc_compression_algorithm compression_algorithm;
|
113
110
|
grpc_stream_compression_algorithm stream_compression_algorithm =
|
114
111
|
GRPC_STREAM_COMPRESS_NONE;
|
115
|
-
if (initial_metadata->idx.named.
|
116
|
-
nullptr) {
|
112
|
+
if (initial_metadata->idx.named.grpc_internal_encoding_request != nullptr) {
|
117
113
|
grpc_mdelem md =
|
118
|
-
initial_metadata->idx.named.
|
119
|
-
if (!
|
120
|
-
|
114
|
+
initial_metadata->idx.named.grpc_internal_encoding_request->md;
|
115
|
+
if (!grpc_compression_algorithm_parse(GRPC_MDVALUE(md),
|
116
|
+
&compression_algorithm)) {
|
121
117
|
char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
122
118
|
gpr_log(GPR_ERROR,
|
123
|
-
"Invalid
|
124
|
-
val);
|
119
|
+
"Invalid compression algorithm: '%s' (unknown). Ignoring.", val);
|
125
120
|
gpr_free(val);
|
121
|
+
calld->message_compression_algorithm = GRPC_MESSAGE_COMPRESS_NONE;
|
126
122
|
stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
127
123
|
}
|
128
|
-
if (!GPR_BITGET(channeld->
|
129
|
-
|
130
|
-
char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
131
|
-
gpr_log(
|
132
|
-
GPR_ERROR,
|
133
|
-
"Invalid stream compression algorithm: '%s' (previously disabled). "
|
134
|
-
"Ignoring.",
|
135
|
-
val);
|
136
|
-
gpr_free(val);
|
137
|
-
stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
138
|
-
}
|
139
|
-
*has_compression_algorithm = true;
|
140
|
-
grpc_metadata_batch_remove(
|
141
|
-
initial_metadata,
|
142
|
-
initial_metadata->idx.named.grpc_internal_stream_encoding_request);
|
143
|
-
/* Disable message-wise compression */
|
144
|
-
calld->compression_algorithm = GRPC_COMPRESS_NONE;
|
145
|
-
if (initial_metadata->idx.named.grpc_internal_encoding_request != nullptr) {
|
146
|
-
grpc_metadata_batch_remove(
|
147
|
-
initial_metadata,
|
148
|
-
initial_metadata->idx.named.grpc_internal_encoding_request);
|
149
|
-
}
|
150
|
-
} else if (initial_metadata->idx.named.grpc_internal_encoding_request !=
|
151
|
-
nullptr) {
|
152
|
-
grpc_mdelem md =
|
153
|
-
initial_metadata->idx.named.grpc_internal_encoding_request->md;
|
154
|
-
if (!grpc_compression_algorithm_parse(GRPC_MDVALUE(md),
|
155
|
-
&calld->compression_algorithm)) {
|
124
|
+
if (!GPR_BITGET(channeld->enabled_algorithms_bitset,
|
125
|
+
compression_algorithm)) {
|
156
126
|
char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
157
127
|
gpr_log(GPR_ERROR,
|
158
|
-
"Invalid compression algorithm: '%s' (
|
128
|
+
"Invalid compression algorithm: '%s' (previously disabled). "
|
129
|
+
"Ignoring.",
|
130
|
+
val);
|
159
131
|
gpr_free(val);
|
160
|
-
calld->
|
132
|
+
calld->message_compression_algorithm = GRPC_MESSAGE_COMPRESS_NONE;
|
133
|
+
stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
161
134
|
}
|
162
135
|
*has_compression_algorithm = true;
|
163
136
|
grpc_metadata_batch_remove(
|
164
137
|
initial_metadata,
|
165
138
|
initial_metadata->idx.named.grpc_internal_encoding_request);
|
139
|
+
calld->message_compression_algorithm =
|
140
|
+
grpc_compression_algorithm_to_message_compression_algorithm(
|
141
|
+
compression_algorithm);
|
142
|
+
stream_compression_algorithm =
|
143
|
+
grpc_compression_algorithm_to_stream_compression_algorithm(
|
144
|
+
compression_algorithm);
|
166
145
|
} else {
|
167
146
|
/* If no algorithm was found in the metadata and we aren't
|
168
147
|
* exceptionally skipping compression, fall back to the channel
|
169
148
|
* default */
|
170
|
-
if (channeld->
|
171
|
-
|
149
|
+
if (channeld->default_compression_algorithm != GRPC_COMPRESS_NONE) {
|
150
|
+
calld->message_compression_algorithm =
|
151
|
+
grpc_compression_algorithm_to_message_compression_algorithm(
|
152
|
+
channeld->default_compression_algorithm);
|
172
153
|
stream_compression_algorithm =
|
173
|
-
|
174
|
-
|
175
|
-
} else {
|
176
|
-
calld->compression_algorithm = channeld->default_compression_algorithm;
|
154
|
+
grpc_compression_algorithm_to_stream_compression_algorithm(
|
155
|
+
channeld->default_compression_algorithm);
|
177
156
|
}
|
178
157
|
*has_compression_algorithm = true;
|
179
158
|
}
|
@@ -184,10 +163,12 @@ static grpc_error* process_send_initial_metadata(
|
|
184
163
|
error = grpc_metadata_batch_add_tail(
|
185
164
|
initial_metadata, &calld->stream_compression_algorithm_storage,
|
186
165
|
grpc_stream_compression_encoding_mdelem(stream_compression_algorithm));
|
187
|
-
} else if (calld->
|
166
|
+
} else if (calld->message_compression_algorithm !=
|
167
|
+
GRPC_MESSAGE_COMPRESS_NONE) {
|
188
168
|
error = grpc_metadata_batch_add_tail(
|
189
169
|
initial_metadata, &calld->compression_algorithm_storage,
|
190
|
-
|
170
|
+
grpc_message_compression_encoding_mdelem(
|
171
|
+
calld->message_compression_algorithm));
|
191
172
|
}
|
192
173
|
|
193
174
|
if (error != GRPC_ERROR_NONE) return error;
|
@@ -196,11 +177,12 @@ static grpc_error* process_send_initial_metadata(
|
|
196
177
|
error = grpc_metadata_batch_add_tail(
|
197
178
|
initial_metadata, &calld->accept_encoding_storage,
|
198
179
|
GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(
|
199
|
-
channeld->
|
180
|
+
channeld->supported_message_compression_algorithms));
|
200
181
|
|
201
182
|
if (error != GRPC_ERROR_NONE) return error;
|
202
183
|
|
203
|
-
/* Do not overwrite accept-encoding header if it already presents.
|
184
|
+
/* Do not overwrite accept-encoding header if it already presents (e.g. added
|
185
|
+
* by some proxy). */
|
204
186
|
if (!initial_metadata->idx.named.accept_encoding) {
|
205
187
|
error = grpc_metadata_batch_add_tail(
|
206
188
|
initial_metadata, &calld->accept_stream_encoding_storage,
|
@@ -212,15 +194,15 @@ static grpc_error* process_send_initial_metadata(
|
|
212
194
|
}
|
213
195
|
|
214
196
|
static void send_message_on_complete(void* arg, grpc_error* error) {
|
215
|
-
grpc_call_element* elem = (
|
216
|
-
call_data* calld = (
|
197
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
198
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
217
199
|
grpc_slice_buffer_reset_and_unref_internal(&calld->slices);
|
218
200
|
GRPC_CLOSURE_RUN(calld->original_send_message_on_complete,
|
219
201
|
GRPC_ERROR_REF(error));
|
220
202
|
}
|
221
203
|
|
222
204
|
static void send_message_batch_continue(grpc_call_element* elem) {
|
223
|
-
call_data* calld = (
|
205
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
224
206
|
// Note: The call to grpc_call_next_op() results in yielding the
|
225
207
|
// call combiner, so we need to clear calld->send_message_batch
|
226
208
|
// before we do that.
|
@@ -231,22 +213,23 @@ static void send_message_batch_continue(grpc_call_element* elem) {
|
|
231
213
|
}
|
232
214
|
|
233
215
|
static void finish_send_message(grpc_call_element* elem) {
|
234
|
-
call_data* calld = (
|
216
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
235
217
|
// Compress the data if appropriate.
|
236
218
|
grpc_slice_buffer tmp;
|
237
219
|
grpc_slice_buffer_init(&tmp);
|
238
220
|
uint32_t send_flags =
|
239
221
|
calld->send_message_batch->payload->send_message.send_message->flags;
|
240
|
-
bool did_compress =
|
241
|
-
|
222
|
+
bool did_compress = grpc_msg_compress(calld->message_compression_algorithm,
|
223
|
+
&calld->slices, &tmp);
|
242
224
|
if (did_compress) {
|
243
225
|
if (grpc_compression_trace.enabled()) {
|
244
226
|
const char* algo_name;
|
245
227
|
const size_t before_size = calld->slices.length;
|
246
228
|
const size_t after_size = tmp.length;
|
247
|
-
const float savings_ratio = 1.0f - (
|
248
|
-
|
249
|
-
|
229
|
+
const float savings_ratio = 1.0f - static_cast<float>(after_size) /
|
230
|
+
static_cast<float>(before_size);
|
231
|
+
GPR_ASSERT(grpc_message_compression_algorithm_name(
|
232
|
+
calld->message_compression_algorithm, &algo_name));
|
250
233
|
gpr_log(GPR_DEBUG,
|
251
234
|
"Compressed[%s] %" PRIuPTR " bytes vs. %" PRIuPTR
|
252
235
|
" bytes (%.2f%% savings)",
|
@@ -257,8 +240,8 @@ static void finish_send_message(grpc_call_element* elem) {
|
|
257
240
|
} else {
|
258
241
|
if (grpc_compression_trace.enabled()) {
|
259
242
|
const char* algo_name;
|
260
|
-
GPR_ASSERT(
|
261
|
-
|
243
|
+
GPR_ASSERT(grpc_message_compression_algorithm_name(
|
244
|
+
calld->message_compression_algorithm, &algo_name));
|
262
245
|
gpr_log(GPR_DEBUG,
|
263
246
|
"Algorithm '%s' enabled but decided not to compress. Input size: "
|
264
247
|
"%" PRIuPTR,
|
@@ -282,7 +265,7 @@ static void finish_send_message(grpc_call_element* elem) {
|
|
282
265
|
|
283
266
|
static void fail_send_message_batch_in_call_combiner(void* arg,
|
284
267
|
grpc_error* error) {
|
285
|
-
call_data* calld = (
|
268
|
+
call_data* calld = static_cast<call_data*>(arg);
|
286
269
|
if (calld->send_message_batch != nullptr) {
|
287
270
|
grpc_transport_stream_op_batch_finish_with_failure(
|
288
271
|
calld->send_message_batch, GRPC_ERROR_REF(error), calld->call_combiner);
|
@@ -307,10 +290,10 @@ static grpc_error* pull_slice_from_send_message(call_data* calld) {
|
|
307
290
|
// an async call to grpc_byte_stream_next() has been started, which will
|
308
291
|
// eventually result in calling on_send_message_next_done().
|
309
292
|
static void continue_reading_send_message(grpc_call_element* elem) {
|
310
|
-
call_data* calld = (
|
293
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
311
294
|
while (grpc_byte_stream_next(
|
312
|
-
calld->send_message_batch->payload->send_message.send_message,
|
313
|
-
&calld->on_send_message_next_done)) {
|
295
|
+
calld->send_message_batch->payload->send_message.send_message,
|
296
|
+
~static_cast<size_t>(0), &calld->on_send_message_next_done)) {
|
314
297
|
grpc_error* error = pull_slice_from_send_message(calld);
|
315
298
|
if (error != GRPC_ERROR_NONE) {
|
316
299
|
// Closure callback; does not take ownership of error.
|
@@ -328,8 +311,8 @@ static void continue_reading_send_message(grpc_call_element* elem) {
|
|
328
311
|
|
329
312
|
// Async callback for grpc_byte_stream_next().
|
330
313
|
static void on_send_message_next_done(void* arg, grpc_error* error) {
|
331
|
-
grpc_call_element* elem = (
|
332
|
-
call_data* calld = (
|
314
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
315
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
333
316
|
if (error != GRPC_ERROR_NONE) {
|
334
317
|
// Closure callback; does not take ownership of error.
|
335
318
|
fail_send_message_batch_in_call_combiner(calld, error);
|
@@ -351,8 +334,8 @@ static void on_send_message_next_done(void* arg, grpc_error* error) {
|
|
351
334
|
}
|
352
335
|
|
353
336
|
static void start_send_message_batch(void* arg, grpc_error* unused) {
|
354
|
-
grpc_call_element* elem = (
|
355
|
-
call_data* calld = (
|
337
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
338
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
356
339
|
if (skip_compression(
|
357
340
|
elem,
|
358
341
|
calld->send_message_batch->payload->send_message.send_message->flags,
|
@@ -365,8 +348,8 @@ static void start_send_message_batch(void* arg, grpc_error* unused) {
|
|
365
348
|
|
366
349
|
static void compress_start_transport_stream_op_batch(
|
367
350
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
368
|
-
|
369
|
-
|
351
|
+
GPR_TIMER_SCOPE("compress_start_transport_stream_op_batch", 0);
|
352
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
370
353
|
// Handle cancel_stream.
|
371
354
|
if (batch->cancel_stream) {
|
372
355
|
GRPC_ERROR_UNREF(calld->cancel_error);
|
@@ -381,6 +364,7 @@ static void compress_start_transport_stream_op_batch(
|
|
381
364
|
GRPC_ERROR_REF(calld->cancel_error), "failing send_message op");
|
382
365
|
} else {
|
383
366
|
grpc_byte_stream_shutdown(
|
367
|
+
|
384
368
|
calld->send_message_batch->payload->send_message.send_message,
|
385
369
|
GRPC_ERROR_REF(calld->cancel_error));
|
386
370
|
}
|
@@ -388,7 +372,7 @@ static void compress_start_transport_stream_op_batch(
|
|
388
372
|
} else if (calld->cancel_error != GRPC_ERROR_NONE) {
|
389
373
|
grpc_transport_stream_op_batch_finish_with_failure(
|
390
374
|
batch, GRPC_ERROR_REF(calld->cancel_error), calld->call_combiner);
|
391
|
-
|
375
|
+
return;
|
392
376
|
}
|
393
377
|
// Handle send_initial_metadata.
|
394
378
|
if (batch->send_initial_metadata) {
|
@@ -400,7 +384,7 @@ static void compress_start_transport_stream_op_batch(
|
|
400
384
|
if (error != GRPC_ERROR_NONE) {
|
401
385
|
grpc_transport_stream_op_batch_finish_with_failure(batch, error,
|
402
386
|
calld->call_combiner);
|
403
|
-
|
387
|
+
return;
|
404
388
|
}
|
405
389
|
calld->send_initial_metadata_state = has_compression_algorithm
|
406
390
|
? HAS_COMPRESSION_ALGORITHM
|
@@ -429,21 +413,19 @@ static void compress_start_transport_stream_op_batch(
|
|
429
413
|
GRPC_CALL_COMBINER_STOP(
|
430
414
|
calld->call_combiner,
|
431
415
|
"send_message batch pending send_initial_metadata");
|
432
|
-
|
416
|
+
return;
|
433
417
|
}
|
434
418
|
start_send_message_batch(elem, GRPC_ERROR_NONE);
|
435
419
|
} else {
|
436
420
|
// Pass control down the stack.
|
437
421
|
grpc_call_next_op(elem, batch);
|
438
422
|
}
|
439
|
-
done:
|
440
|
-
GPR_TIMER_END("compress_start_transport_stream_op_batch", 0);
|
441
423
|
}
|
442
424
|
|
443
425
|
/* Constructor for call_data */
|
444
426
|
static grpc_error* init_call_elem(grpc_call_element* elem,
|
445
427
|
const grpc_call_element_args* args) {
|
446
|
-
call_data* calld = (
|
428
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
447
429
|
calld->call_combiner = args->call_combiner;
|
448
430
|
calld->cancel_error = GRPC_ERROR_NONE;
|
449
431
|
grpc_slice_buffer_init(&calld->slices);
|
@@ -460,7 +442,7 @@ static grpc_error* init_call_elem(grpc_call_element* elem,
|
|
460
442
|
static void destroy_call_elem(grpc_call_element* elem,
|
461
443
|
const grpc_call_final_info* final_info,
|
462
444
|
grpc_closure* ignored) {
|
463
|
-
call_data* calld = (
|
445
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
464
446
|
grpc_slice_buffer_destroy_internal(&calld->slices);
|
465
447
|
GRPC_ERROR_UNREF(calld->cancel_error);
|
466
448
|
}
|
@@ -468,14 +450,13 @@ static void destroy_call_elem(grpc_call_element* elem,
|
|
468
450
|
/* Constructor for channel_data */
|
469
451
|
static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
470
452
|
grpc_channel_element_args* args) {
|
471
|
-
channel_data* channeld = (
|
453
|
+
channel_data* channeld = static_cast<channel_data*>(elem->channel_data);
|
472
454
|
|
473
|
-
/* Configuration for message compression */
|
474
455
|
channeld->enabled_algorithms_bitset =
|
475
456
|
grpc_channel_args_compression_algorithm_get_states(args->channel_args);
|
476
|
-
|
477
457
|
channeld->default_compression_algorithm =
|
478
458
|
grpc_channel_args_get_compression_algorithm(args->channel_args);
|
459
|
+
|
479
460
|
/* Make sure the default isn't disabled. */
|
480
461
|
if (!GPR_BITGET(channeld->enabled_algorithms_bitset,
|
481
462
|
channeld->default_compression_algorithm)) {
|
@@ -485,31 +466,18 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
|
485
466
|
channeld->default_compression_algorithm = GRPC_COMPRESS_NONE;
|
486
467
|
}
|
487
468
|
|
488
|
-
|
469
|
+
uint32_t supported_compression_algorithms =
|
489
470
|
(((1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1) &
|
490
471
|
channeld->enabled_algorithms_bitset) |
|
491
472
|
1u;
|
492
473
|
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
args->channel_args);
|
497
|
-
|
498
|
-
channeld->default_stream_compression_algorithm =
|
499
|
-
grpc_channel_args_get_stream_compression_algorithm(args->channel_args);
|
500
|
-
|
501
|
-
if (!GPR_BITGET(channeld->enabled_stream_compression_algorithms_bitset,
|
502
|
-
channeld->default_stream_compression_algorithm)) {
|
503
|
-
gpr_log(GPR_DEBUG,
|
504
|
-
"stream compression algorithm %d not enabled: switching to none",
|
505
|
-
channeld->default_stream_compression_algorithm);
|
506
|
-
channeld->default_stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
507
|
-
}
|
474
|
+
channeld->supported_message_compression_algorithms =
|
475
|
+
grpc_compression_bitset_to_message_bitset(
|
476
|
+
supported_compression_algorithms);
|
508
477
|
|
509
478
|
channeld->supported_stream_compression_algorithms =
|
510
|
-
(
|
511
|
-
|
512
|
-
1u;
|
479
|
+
grpc_compression_bitset_to_stream_bitset(
|
480
|
+
supported_compression_algorithms);
|
513
481
|
|
514
482
|
GPR_ASSERT(!args->is_last);
|
515
483
|
return GRPC_ERROR_NONE;
|