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
@@ -52,7 +52,7 @@ struct grpc_channel_stack_builder_iterator {
|
|
52
52
|
|
53
53
|
grpc_channel_stack_builder* grpc_channel_stack_builder_create(void) {
|
54
54
|
grpc_channel_stack_builder* b =
|
55
|
-
(
|
55
|
+
static_cast<grpc_channel_stack_builder*>(gpr_zalloc(sizeof(*b)));
|
56
56
|
|
57
57
|
b->begin.filter = nullptr;
|
58
58
|
b->end.filter = nullptr;
|
@@ -78,7 +78,8 @@ const char* grpc_channel_stack_builder_get_target(
|
|
78
78
|
static grpc_channel_stack_builder_iterator* create_iterator_at_filter_node(
|
79
79
|
grpc_channel_stack_builder* builder, filter_node* node) {
|
80
80
|
grpc_channel_stack_builder_iterator* it =
|
81
|
-
|
81
|
+
static_cast<grpc_channel_stack_builder_iterator*>(
|
82
|
+
gpr_malloc(sizeof(*it)));
|
82
83
|
it->builder = builder;
|
83
84
|
it->node = node;
|
84
85
|
return it;
|
@@ -213,7 +214,8 @@ bool grpc_channel_stack_builder_prepend_filter(
|
|
213
214
|
static void add_after(filter_node* before, const grpc_channel_filter* filter,
|
214
215
|
grpc_post_filter_create_init_func post_init_func,
|
215
216
|
void* user_data) {
|
216
|
-
filter_node* new_node =
|
217
|
+
filter_node* new_node =
|
218
|
+
static_cast<filter_node*>(gpr_malloc(sizeof(*new_node)));
|
217
219
|
new_node->next = before->next;
|
218
220
|
new_node->prev = before;
|
219
221
|
new_node->next->prev = new_node->prev->next = new_node;
|
@@ -265,7 +267,8 @@ grpc_error* grpc_channel_stack_builder_finish(
|
|
265
267
|
|
266
268
|
// create an array of filters
|
267
269
|
const grpc_channel_filter** filters =
|
268
|
-
|
270
|
+
static_cast<const grpc_channel_filter**>(
|
271
|
+
gpr_malloc(sizeof(*filters) * num_filters));
|
269
272
|
size_t i = 0;
|
270
273
|
for (filter_node* p = builder->begin.next; p != &builder->end; p = p->next) {
|
271
274
|
filters[i++] = p->filter;
|
@@ -277,8 +280,8 @@ grpc_error* grpc_channel_stack_builder_finish(
|
|
277
280
|
// allocate memory, with prefix_bytes followed by channel_stack_size
|
278
281
|
*result = gpr_zalloc(prefix_bytes + channel_stack_size);
|
279
282
|
// fetch a pointer to the channel stack
|
280
|
-
grpc_channel_stack* channel_stack =
|
281
|
-
|
283
|
+
grpc_channel_stack* channel_stack = reinterpret_cast<grpc_channel_stack*>(
|
284
|
+
static_cast<char*>(*result) + prefix_bytes);
|
282
285
|
// and initialize it
|
283
286
|
grpc_error* error = grpc_channel_stack_init(
|
284
287
|
initial_refs, destroy, destroy_arg == nullptr ? *result : destroy_arg,
|
@@ -303,7 +306,7 @@ grpc_error* grpc_channel_stack_builder_finish(
|
|
303
306
|
}
|
304
307
|
|
305
308
|
grpc_channel_stack_builder_destroy(builder);
|
306
|
-
gpr_free((
|
309
|
+
gpr_free(const_cast<grpc_channel_filter**>(filters));
|
307
310
|
|
308
311
|
return error;
|
309
312
|
}
|
@@ -52,7 +52,7 @@ typedef struct connected_channel_call_data {
|
|
52
52
|
} call_data;
|
53
53
|
|
54
54
|
static void run_in_call_combiner(void* arg, grpc_error* error) {
|
55
|
-
callback_state* state = (
|
55
|
+
callback_state* state = static_cast<callback_state*>(arg);
|
56
56
|
GRPC_CALL_COMBINER_START(state->call_combiner, state->original_closure,
|
57
57
|
GRPC_ERROR_REF(error), state->reason);
|
58
58
|
}
|
@@ -96,8 +96,8 @@ static callback_state* get_state_for_batch(
|
|
96
96
|
into transport stream operations */
|
97
97
|
static void con_start_transport_stream_op_batch(
|
98
98
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
99
|
-
call_data* calld = (
|
100
|
-
channel_data* chand = (
|
99
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
100
|
+
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
101
101
|
if (batch->recv_initial_metadata) {
|
102
102
|
callback_state* state = &calld->recv_initial_metadata_ready;
|
103
103
|
intercept_callback(
|
@@ -115,7 +115,8 @@ static void con_start_transport_stream_op_batch(
|
|
115
115
|
// calld->on_complete like we can for the other ops. However,
|
116
116
|
// cancellation isn't in the fast path, so we just allocate a new
|
117
117
|
// closure for each one.
|
118
|
-
callback_state* state =
|
118
|
+
callback_state* state =
|
119
|
+
static_cast<callback_state*>(gpr_malloc(sizeof(*state)));
|
119
120
|
intercept_callback(calld, state, true, "on_complete (cancel_stream)",
|
120
121
|
&batch->on_complete);
|
121
122
|
} else {
|
@@ -129,15 +130,15 @@ static void con_start_transport_stream_op_batch(
|
|
129
130
|
|
130
131
|
static void con_start_transport_op(grpc_channel_element* elem,
|
131
132
|
grpc_transport_op* op) {
|
132
|
-
channel_data* chand = (
|
133
|
+
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
133
134
|
grpc_transport_perform_op(chand->transport, op);
|
134
135
|
}
|
135
136
|
|
136
137
|
/* Constructor for call_data */
|
137
138
|
static grpc_error* init_call_elem(grpc_call_element* elem,
|
138
139
|
const grpc_call_element_args* args) {
|
139
|
-
call_data* calld = (
|
140
|
-
channel_data* chand = (
|
140
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
141
|
+
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
141
142
|
calld->call_combiner = args->call_combiner;
|
142
143
|
int r = grpc_transport_init_stream(
|
143
144
|
chand->transport, TRANSPORT_STREAM_FROM_CALL_DATA(calld),
|
@@ -149,8 +150,8 @@ static grpc_error* init_call_elem(grpc_call_element* elem,
|
|
149
150
|
|
150
151
|
static void set_pollset_or_pollset_set(grpc_call_element* elem,
|
151
152
|
grpc_polling_entity* pollent) {
|
152
|
-
call_data* calld = (
|
153
|
-
channel_data* chand = (
|
153
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
154
|
+
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
154
155
|
grpc_transport_set_pops(chand->transport,
|
155
156
|
TRANSPORT_STREAM_FROM_CALL_DATA(calld), pollent);
|
156
157
|
}
|
@@ -159,8 +160,8 @@ static void set_pollset_or_pollset_set(grpc_call_element* elem,
|
|
159
160
|
static void destroy_call_elem(grpc_call_element* elem,
|
160
161
|
const grpc_call_final_info* final_info,
|
161
162
|
grpc_closure* then_schedule_closure) {
|
162
|
-
call_data* calld = (
|
163
|
-
channel_data* chand = (
|
163
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
164
|
+
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
164
165
|
grpc_transport_destroy_stream(chand->transport,
|
165
166
|
TRANSPORT_STREAM_FROM_CALL_DATA(calld),
|
166
167
|
then_schedule_closure);
|
@@ -169,7 +170,7 @@ static void destroy_call_elem(grpc_call_element* elem,
|
|
169
170
|
/* Constructor for channel_data */
|
170
171
|
static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
171
172
|
grpc_channel_element_args* args) {
|
172
|
-
channel_data* cd = (
|
173
|
+
channel_data* cd = static_cast<channel_data*>(elem->channel_data);
|
173
174
|
GPR_ASSERT(args->is_last);
|
174
175
|
cd->transport = nullptr;
|
175
176
|
return GRPC_ERROR_NONE;
|
@@ -177,7 +178,7 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
|
177
178
|
|
178
179
|
/* Destructor for channel_data */
|
179
180
|
static void destroy_channel_elem(grpc_channel_element* elem) {
|
180
|
-
channel_data* cd = (
|
181
|
+
channel_data* cd = static_cast<channel_data*>(elem->channel_data);
|
181
182
|
if (cd->transport) {
|
182
183
|
grpc_transport_destroy(cd->transport);
|
183
184
|
}
|
@@ -203,10 +204,10 @@ const grpc_channel_filter grpc_connected_filter = {
|
|
203
204
|
|
204
205
|
static void bind_transport(grpc_channel_stack* channel_stack,
|
205
206
|
grpc_channel_element* elem, void* t) {
|
206
|
-
channel_data* cd = (
|
207
|
+
channel_data* cd = static_cast<channel_data*>(elem->channel_data);
|
207
208
|
GPR_ASSERT(elem->filter == &grpc_connected_filter);
|
208
209
|
GPR_ASSERT(cd->transport == nullptr);
|
209
|
-
cd->transport = (
|
210
|
+
cd->transport = static_cast<grpc_transport*>(t);
|
210
211
|
|
211
212
|
/* HACK(ctiller): increase call stack size for the channel to make space
|
212
213
|
for channel data. We need a cleaner (but performant) way to do this,
|
@@ -215,7 +216,7 @@ static void bind_transport(grpc_channel_stack* channel_stack,
|
|
215
216
|
the last call element, and the last call element MUST be the connected
|
216
217
|
channel. */
|
217
218
|
channel_stack->call_stack_size +=
|
218
|
-
grpc_transport_stream_size((
|
219
|
+
grpc_transport_stream_size(static_cast<grpc_transport*>(t));
|
219
220
|
}
|
220
221
|
|
221
222
|
bool grpc_add_connected_filter(grpc_channel_stack_builder* builder,
|
@@ -228,6 +229,6 @@ bool grpc_add_connected_filter(grpc_channel_stack_builder* builder,
|
|
228
229
|
}
|
229
230
|
|
230
231
|
grpc_stream* grpc_connected_channel_get_stream(grpc_call_element* elem) {
|
231
|
-
call_data* calld = (
|
232
|
+
call_data* calld = static_cast<call_data*>(elem->call_data);
|
232
233
|
return TRANSPORT_STREAM_FROM_CALL_DATA(calld);
|
233
234
|
}
|
@@ -81,8 +81,8 @@ struct grpc_handshake_manager {
|
|
81
81
|
};
|
82
82
|
|
83
83
|
grpc_handshake_manager* grpc_handshake_manager_create() {
|
84
|
-
grpc_handshake_manager* mgr =
|
85
|
-
|
84
|
+
grpc_handshake_manager* mgr = static_cast<grpc_handshake_manager*>(
|
85
|
+
gpr_zalloc(sizeof(grpc_handshake_manager)));
|
86
86
|
gpr_mu_init(&mgr->mu);
|
87
87
|
gpr_ref_init(&mgr->refs, 1);
|
88
88
|
return mgr;
|
@@ -135,8 +135,8 @@ void grpc_handshake_manager_add(grpc_handshake_manager* mgr,
|
|
135
135
|
realloc_count = mgr->count * 2;
|
136
136
|
}
|
137
137
|
if (realloc_count > 0) {
|
138
|
-
mgr->handshakers = (
|
139
|
-
mgr->handshakers, realloc_count * sizeof(grpc_handshaker*));
|
138
|
+
mgr->handshakers = static_cast<grpc_handshaker**>(gpr_realloc(
|
139
|
+
mgr->handshakers, realloc_count * sizeof(grpc_handshaker*)));
|
140
140
|
}
|
141
141
|
mgr->handshakers[mgr->count++] = handshaker;
|
142
142
|
gpr_mu_unlock(&mgr->mu);
|
@@ -197,7 +197,7 @@ static bool call_next_handshaker_locked(grpc_handshake_manager* mgr,
|
|
197
197
|
// A function used as the handshaker-done callback when chaining
|
198
198
|
// handshakers together.
|
199
199
|
static void call_next_handshaker(void* arg, grpc_error* error) {
|
200
|
-
grpc_handshake_manager* mgr = (
|
200
|
+
grpc_handshake_manager* mgr = static_cast<grpc_handshake_manager*>(arg);
|
201
201
|
gpr_mu_lock(&mgr->mu);
|
202
202
|
bool done = call_next_handshaker_locked(mgr, GRPC_ERROR_REF(error));
|
203
203
|
gpr_mu_unlock(&mgr->mu);
|
@@ -211,7 +211,7 @@ static void call_next_handshaker(void* arg, grpc_error* error) {
|
|
211
211
|
|
212
212
|
// Callback invoked when deadline is exceeded.
|
213
213
|
static void on_timeout(void* arg, grpc_error* error) {
|
214
|
-
grpc_handshake_manager* mgr = (
|
214
|
+
grpc_handshake_manager* mgr = static_cast<grpc_handshake_manager*>(arg);
|
215
215
|
if (error == GRPC_ERROR_NONE) { // Timer fired, rather than being cancelled.
|
216
216
|
grpc_handshake_manager_shutdown(
|
217
217
|
mgr, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Handshake timed out"));
|
@@ -233,8 +233,8 @@ void grpc_handshake_manager_do_handshake(
|
|
233
233
|
mgr->args.endpoint = endpoint;
|
234
234
|
mgr->args.args = grpc_channel_args_copy(channel_args);
|
235
235
|
mgr->args.user_data = user_data;
|
236
|
-
mgr->args.read_buffer =
|
237
|
-
|
236
|
+
mgr->args.read_buffer = static_cast<grpc_slice_buffer*>(
|
237
|
+
gpr_malloc(sizeof(*mgr->args.read_buffer)));
|
238
238
|
grpc_slice_buffer_init(mgr->args.read_buffer);
|
239
239
|
// Initialize state needed for calling handshakers.
|
240
240
|
mgr->acceptor = acceptor;
|
@@ -34,8 +34,9 @@ typedef struct {
|
|
34
34
|
static void grpc_handshaker_factory_list_register(
|
35
35
|
grpc_handshaker_factory_list* list, bool at_start,
|
36
36
|
grpc_handshaker_factory* factory) {
|
37
|
-
list->list = (
|
38
|
-
list->list,
|
37
|
+
list->list = static_cast<grpc_handshaker_factory**>(gpr_realloc(
|
38
|
+
list->list,
|
39
|
+
(list->num_factories + 1) * sizeof(grpc_handshaker_factory*)));
|
39
40
|
if (at_start) {
|
40
41
|
memmove(list->list + 1, list->list,
|
41
42
|
sizeof(grpc_handshaker_factory*) * list->num_factories);
|
@@ -20,20 +20,27 @@
|
|
20
20
|
#define GRPC_CORE_LIB_COMPRESSION_ALGORITHM_METADATA_H
|
21
21
|
|
22
22
|
#include <grpc/compression.h>
|
23
|
+
#include "src/core/lib/compression/compression_internal.h"
|
23
24
|
#include "src/core/lib/transport/metadata.h"
|
24
25
|
|
25
26
|
/** Return compression algorithm based metadata value */
|
26
27
|
grpc_slice grpc_compression_algorithm_slice(
|
27
28
|
grpc_compression_algorithm algorithm);
|
28
29
|
|
29
|
-
/**
|
30
|
-
|
31
|
-
|
30
|
+
/** Find compression algorithm based on passed in mdstr - returns
|
31
|
+
* GRPC_COMPRESS_ALGORITHM_COUNT on failure */
|
32
|
+
grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
33
|
+
grpc_slice str);
|
32
34
|
|
33
|
-
/** Return compression algorithm based metadata element
|
35
|
+
/** Return compression algorithm based metadata element */
|
34
36
|
grpc_mdelem grpc_compression_encoding_mdelem(
|
35
37
|
grpc_compression_algorithm algorithm);
|
36
38
|
|
39
|
+
/** Return message compression algorithm based metadata element (grpc-encoding:
|
40
|
+
* xxx) */
|
41
|
+
grpc_mdelem grpc_message_compression_encoding_mdelem(
|
42
|
+
grpc_message_compression_algorithm algorithm);
|
43
|
+
|
37
44
|
/** Return stream compression algorithm based metadata element
|
38
45
|
* (content-encoding: xxx) */
|
39
46
|
grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
@@ -41,8 +48,8 @@ grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
|
41
48
|
|
42
49
|
/** Find compression algorithm based on passed in mdstr - returns
|
43
50
|
* GRPC_COMPRESS_ALGORITHM_COUNT on failure */
|
44
|
-
|
45
|
-
|
51
|
+
grpc_message_compression_algorithm
|
52
|
+
grpc_message_compression_algorithm_from_slice(grpc_slice str);
|
46
53
|
|
47
54
|
/** Find stream compression algorithm based on passed in mdstr - returns
|
48
55
|
* GRPC_STREAM_COMPRESS_ALGORITHM_COUNT on failure */
|
@@ -20,43 +20,42 @@
|
|
20
20
|
#include <string.h>
|
21
21
|
|
22
22
|
#include <grpc/compression.h>
|
23
|
-
#include <grpc/support/useful.h>
|
24
23
|
|
25
24
|
#include "src/core/lib/compression/algorithm_metadata.h"
|
25
|
+
#include "src/core/lib/compression/compression_internal.h"
|
26
|
+
#include "src/core/lib/gpr/useful.h"
|
26
27
|
#include "src/core/lib/surface/api_trace.h"
|
27
28
|
#include "src/core/lib/transport/static_metadata.h"
|
28
29
|
|
30
|
+
int grpc_compression_algorithm_is_message(
|
31
|
+
grpc_compression_algorithm algorithm) {
|
32
|
+
return (algorithm >= GRPC_COMPRESS_DEFLATE && algorithm <= GRPC_COMPRESS_GZIP)
|
33
|
+
? 1
|
34
|
+
: 0;
|
35
|
+
}
|
36
|
+
|
37
|
+
int grpc_compression_algorithm_is_stream(grpc_compression_algorithm algorithm) {
|
38
|
+
return (algorithm == GRPC_COMPRESS_STREAM_GZIP) ? 1 : 0;
|
39
|
+
}
|
40
|
+
|
29
41
|
int grpc_compression_algorithm_parse(grpc_slice name,
|
30
42
|
grpc_compression_algorithm* algorithm) {
|
31
|
-
/* we use strncmp not only because it's safer (even though in this case it
|
32
|
-
* doesn't matter, given that we are comparing against string literals, but
|
33
|
-
* because this way we needn't have "name" nil-terminated (useful for slice
|
34
|
-
* data, for example) */
|
35
43
|
if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) {
|
36
44
|
*algorithm = GRPC_COMPRESS_NONE;
|
37
45
|
return 1;
|
38
|
-
} else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) {
|
39
|
-
*algorithm = GRPC_COMPRESS_GZIP;
|
40
|
-
return 1;
|
41
46
|
} else if (grpc_slice_eq(name, GRPC_MDSTR_DEFLATE)) {
|
42
47
|
*algorithm = GRPC_COMPRESS_DEFLATE;
|
43
48
|
return 1;
|
44
|
-
} else {
|
45
|
-
return 0;
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
int grpc_stream_compression_algorithm_parse(
|
50
|
-
grpc_slice name, grpc_stream_compression_algorithm* algorithm) {
|
51
|
-
if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) {
|
52
|
-
*algorithm = GRPC_STREAM_COMPRESS_NONE;
|
53
|
-
return 1;
|
54
49
|
} else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) {
|
55
|
-
*algorithm =
|
50
|
+
*algorithm = GRPC_COMPRESS_GZIP;
|
51
|
+
return 1;
|
52
|
+
} else if (grpc_slice_eq(name, GRPC_MDSTR_STREAM_SLASH_GZIP)) {
|
53
|
+
*algorithm = GRPC_COMPRESS_STREAM_GZIP;
|
56
54
|
return 1;
|
57
55
|
} else {
|
58
56
|
return 0;
|
59
57
|
}
|
58
|
+
return 0;
|
60
59
|
}
|
61
60
|
|
62
61
|
int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
|
@@ -73,43 +72,59 @@ int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
|
|
73
72
|
case GRPC_COMPRESS_GZIP:
|
74
73
|
*name = "gzip";
|
75
74
|
return 1;
|
75
|
+
case GRPC_COMPRESS_STREAM_GZIP:
|
76
|
+
*name = "stream/gzip";
|
77
|
+
return 1;
|
76
78
|
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
77
79
|
return 0;
|
78
80
|
}
|
79
81
|
return 0;
|
80
82
|
}
|
81
83
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
84
|
+
grpc_compression_algorithm grpc_compression_algorithm_for_level(
|
85
|
+
grpc_compression_level level, uint32_t accepted_encodings) {
|
86
|
+
grpc_compression_algorithm algo;
|
87
|
+
if (level == GRPC_COMPRESS_LEVEL_NONE) {
|
88
|
+
return GRPC_COMPRESS_NONE;
|
89
|
+
} else if (level <= GRPC_COMPRESS_LEVEL_HIGH) {
|
90
|
+
// TODO(mxyan): Design algorithm to select from all algorithms, including
|
91
|
+
// stream compression algorithm
|
92
|
+
if (!grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
93
|
+
&algo,
|
94
|
+
grpc_message_compression_algorithm_for_level(
|
95
|
+
level,
|
96
|
+
grpc_compression_bitset_to_message_bitset(accepted_encodings)),
|
97
|
+
static_cast<grpc_stream_compression_algorithm>(0))) {
|
98
|
+
gpr_log(GPR_ERROR, "Parse compression level error");
|
99
|
+
return GRPC_COMPRESS_NONE;
|
100
|
+
}
|
101
|
+
return algo;
|
102
|
+
} else {
|
103
|
+
gpr_log(GPR_ERROR, "Unknown compression level: %d", level);
|
104
|
+
return GRPC_COMPRESS_NONE;
|
96
105
|
}
|
97
|
-
return 0;
|
98
106
|
}
|
99
107
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_COMPRESS_GZIP;
|
105
|
-
return GRPC_COMPRESS_ALGORITHMS_COUNT;
|
108
|
+
void grpc_compression_options_init(grpc_compression_options* opts) {
|
109
|
+
memset(opts, 0, sizeof(*opts));
|
110
|
+
/* all enabled by default */
|
111
|
+
opts->enabled_algorithms_bitset = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
|
106
112
|
}
|
107
113
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
114
|
+
void grpc_compression_options_enable_algorithm(
|
115
|
+
grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
|
116
|
+
GPR_BITSET(&opts->enabled_algorithms_bitset, algorithm);
|
117
|
+
}
|
118
|
+
|
119
|
+
void grpc_compression_options_disable_algorithm(
|
120
|
+
grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
|
121
|
+
GPR_BITCLEAR(&opts->enabled_algorithms_bitset, algorithm);
|
122
|
+
}
|
123
|
+
|
124
|
+
int grpc_compression_options_is_algorithm_enabled(
|
125
|
+
const grpc_compression_options* opts,
|
126
|
+
grpc_compression_algorithm algorithm) {
|
127
|
+
return GPR_BITGET(opts->enabled_algorithms_bitset, algorithm);
|
113
128
|
}
|
114
129
|
|
115
130
|
grpc_slice grpc_compression_algorithm_slice(
|
@@ -121,23 +136,22 @@ grpc_slice grpc_compression_algorithm_slice(
|
|
121
136
|
return GRPC_MDSTR_DEFLATE;
|
122
137
|
case GRPC_COMPRESS_GZIP:
|
123
138
|
return GRPC_MDSTR_GZIP;
|
139
|
+
case GRPC_COMPRESS_STREAM_GZIP:
|
140
|
+
return GRPC_MDSTR_STREAM_SLASH_GZIP;
|
124
141
|
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
125
142
|
return grpc_empty_slice();
|
126
143
|
}
|
127
144
|
return grpc_empty_slice();
|
128
145
|
}
|
129
146
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
return grpc_empty_slice();
|
139
|
-
}
|
140
|
-
return grpc_empty_slice();
|
147
|
+
grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
148
|
+
grpc_slice str) {
|
149
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_COMPRESS_NONE;
|
150
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_DEFLATE)) return GRPC_COMPRESS_DEFLATE;
|
151
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_COMPRESS_GZIP;
|
152
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_STREAM_SLASH_GZIP))
|
153
|
+
return GRPC_COMPRESS_STREAM_GZIP;
|
154
|
+
return GRPC_COMPRESS_ALGORITHMS_COUNT;
|
141
155
|
}
|
142
156
|
|
143
157
|
grpc_mdelem grpc_compression_encoding_mdelem(
|
@@ -149,135 +163,10 @@ grpc_mdelem grpc_compression_encoding_mdelem(
|
|
149
163
|
return GRPC_MDELEM_GRPC_ENCODING_DEFLATE;
|
150
164
|
case GRPC_COMPRESS_GZIP:
|
151
165
|
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
166
|
+
case GRPC_COMPRESS_STREAM_GZIP:
|
167
|
+
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
152
168
|
default:
|
153
169
|
break;
|
154
170
|
}
|
155
171
|
return GRPC_MDNULL;
|
156
172
|
}
|
157
|
-
|
158
|
-
grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
159
|
-
grpc_stream_compression_algorithm algorithm) {
|
160
|
-
switch (algorithm) {
|
161
|
-
case GRPC_STREAM_COMPRESS_NONE:
|
162
|
-
return GRPC_MDELEM_CONTENT_ENCODING_IDENTITY;
|
163
|
-
case GRPC_STREAM_COMPRESS_GZIP:
|
164
|
-
return GRPC_MDELEM_CONTENT_ENCODING_GZIP;
|
165
|
-
default:
|
166
|
-
break;
|
167
|
-
}
|
168
|
-
return GRPC_MDNULL;
|
169
|
-
}
|
170
|
-
|
171
|
-
void grpc_compression_options_init(grpc_compression_options* opts) {
|
172
|
-
memset(opts, 0, sizeof(*opts));
|
173
|
-
/* all enabled by default */
|
174
|
-
opts->enabled_algorithms_bitset = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
|
175
|
-
opts->enabled_stream_compression_algorithms_bitset =
|
176
|
-
(1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1;
|
177
|
-
}
|
178
|
-
|
179
|
-
void grpc_compression_options_enable_algorithm(
|
180
|
-
grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
|
181
|
-
GPR_BITSET(&opts->enabled_algorithms_bitset, algorithm);
|
182
|
-
}
|
183
|
-
|
184
|
-
void grpc_compression_options_disable_algorithm(
|
185
|
-
grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
|
186
|
-
GPR_BITCLEAR(&opts->enabled_algorithms_bitset, algorithm);
|
187
|
-
}
|
188
|
-
|
189
|
-
int grpc_compression_options_is_algorithm_enabled(
|
190
|
-
const grpc_compression_options* opts,
|
191
|
-
grpc_compression_algorithm algorithm) {
|
192
|
-
return GPR_BITGET(opts->enabled_algorithms_bitset, algorithm);
|
193
|
-
}
|
194
|
-
|
195
|
-
int grpc_compression_options_is_stream_compression_algorithm_enabled(
|
196
|
-
const grpc_compression_options* opts,
|
197
|
-
grpc_stream_compression_algorithm algorithm) {
|
198
|
-
return GPR_BITGET(opts->enabled_stream_compression_algorithms_bitset,
|
199
|
-
algorithm);
|
200
|
-
}
|
201
|
-
|
202
|
-
/* TODO(dgq): Add the ability to specify parameters to the individual
|
203
|
-
* compression algorithms */
|
204
|
-
grpc_compression_algorithm grpc_compression_algorithm_for_level(
|
205
|
-
grpc_compression_level level, uint32_t accepted_encodings) {
|
206
|
-
GRPC_API_TRACE("grpc_compression_algorithm_for_level(level=%d)", 1,
|
207
|
-
((int)level));
|
208
|
-
if (level > GRPC_COMPRESS_LEVEL_HIGH) {
|
209
|
-
gpr_log(GPR_ERROR, "Unknown compression level %d.", (int)level);
|
210
|
-
abort();
|
211
|
-
}
|
212
|
-
|
213
|
-
const size_t num_supported =
|
214
|
-
GPR_BITCOUNT(accepted_encodings) - 1; /* discard NONE */
|
215
|
-
if (level == GRPC_COMPRESS_LEVEL_NONE || num_supported == 0) {
|
216
|
-
return GRPC_COMPRESS_NONE;
|
217
|
-
}
|
218
|
-
|
219
|
-
GPR_ASSERT(level > 0);
|
220
|
-
|
221
|
-
/* Establish a "ranking" or compression algorithms in increasing order of
|
222
|
-
* compression.
|
223
|
-
* This is simplistic and we will probably want to introduce other dimensions
|
224
|
-
* in the future (cpu/memory cost, etc). */
|
225
|
-
const grpc_compression_algorithm algos_ranking[] = {GRPC_COMPRESS_GZIP,
|
226
|
-
GRPC_COMPRESS_DEFLATE};
|
227
|
-
|
228
|
-
/* intersect algos_ranking with the supported ones keeping the ranked order */
|
229
|
-
grpc_compression_algorithm
|
230
|
-
sorted_supported_algos[GRPC_COMPRESS_ALGORITHMS_COUNT];
|
231
|
-
size_t algos_supported_idx = 0;
|
232
|
-
for (size_t i = 0; i < GPR_ARRAY_SIZE(algos_ranking); i++) {
|
233
|
-
const grpc_compression_algorithm alg = algos_ranking[i];
|
234
|
-
for (size_t j = 0; j < num_supported; j++) {
|
235
|
-
if (GPR_BITGET(accepted_encodings, alg) == 1) {
|
236
|
-
/* if \a alg in supported */
|
237
|
-
sorted_supported_algos[algos_supported_idx++] = alg;
|
238
|
-
break;
|
239
|
-
}
|
240
|
-
}
|
241
|
-
if (algos_supported_idx == num_supported) break;
|
242
|
-
}
|
243
|
-
|
244
|
-
switch (level) {
|
245
|
-
case GRPC_COMPRESS_LEVEL_NONE:
|
246
|
-
abort(); /* should have been handled already */
|
247
|
-
case GRPC_COMPRESS_LEVEL_LOW:
|
248
|
-
return sorted_supported_algos[0];
|
249
|
-
case GRPC_COMPRESS_LEVEL_MED:
|
250
|
-
return sorted_supported_algos[num_supported / 2];
|
251
|
-
case GRPC_COMPRESS_LEVEL_HIGH:
|
252
|
-
return sorted_supported_algos[num_supported - 1];
|
253
|
-
default:
|
254
|
-
abort();
|
255
|
-
};
|
256
|
-
}
|
257
|
-
|
258
|
-
GRPCAPI grpc_stream_compression_algorithm
|
259
|
-
grpc_stream_compression_algorithm_for_level(
|
260
|
-
grpc_stream_compression_level level, uint32_t accepted_stream_encodings) {
|
261
|
-
GRPC_API_TRACE("grpc_stream_compression_algorithm_for_level(level=%d)", 1,
|
262
|
-
((int)level));
|
263
|
-
if (level > GRPC_STREAM_COMPRESS_LEVEL_HIGH) {
|
264
|
-
gpr_log(GPR_ERROR, "Unknown compression level %d.", (int)level);
|
265
|
-
abort();
|
266
|
-
}
|
267
|
-
|
268
|
-
switch (level) {
|
269
|
-
case GRPC_STREAM_COMPRESS_LEVEL_NONE:
|
270
|
-
return GRPC_STREAM_COMPRESS_NONE;
|
271
|
-
case GRPC_STREAM_COMPRESS_LEVEL_LOW:
|
272
|
-
case GRPC_STREAM_COMPRESS_LEVEL_MED:
|
273
|
-
case GRPC_STREAM_COMPRESS_LEVEL_HIGH:
|
274
|
-
if (GPR_BITGET(accepted_stream_encodings, GRPC_STREAM_COMPRESS_GZIP) ==
|
275
|
-
1) {
|
276
|
-
return GRPC_STREAM_COMPRESS_GZIP;
|
277
|
-
} else {
|
278
|
-
return GRPC_STREAM_COMPRESS_NONE;
|
279
|
-
}
|
280
|
-
default:
|
281
|
-
abort();
|
282
|
-
}
|
283
|
-
}
|