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
@@ -0,0 +1,274 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include <stdlib.h>
|
20
|
+
#include <string.h>
|
21
|
+
|
22
|
+
#include <grpc/compression.h>
|
23
|
+
|
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"
|
27
|
+
#include "src/core/lib/surface/api_trace.h"
|
28
|
+
#include "src/core/lib/transport/static_metadata.h"
|
29
|
+
|
30
|
+
/* Interfaces related to MD */
|
31
|
+
|
32
|
+
grpc_message_compression_algorithm
|
33
|
+
grpc_message_compression_algorithm_from_slice(grpc_slice str) {
|
34
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY))
|
35
|
+
return GRPC_MESSAGE_COMPRESS_NONE;
|
36
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_DEFLATE))
|
37
|
+
return GRPC_MESSAGE_COMPRESS_DEFLATE;
|
38
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_MESSAGE_COMPRESS_GZIP;
|
39
|
+
return GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT;
|
40
|
+
}
|
41
|
+
|
42
|
+
grpc_stream_compression_algorithm grpc_stream_compression_algorithm_from_slice(
|
43
|
+
grpc_slice str) {
|
44
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_STREAM_COMPRESS_NONE;
|
45
|
+
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_STREAM_COMPRESS_GZIP;
|
46
|
+
return GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT;
|
47
|
+
}
|
48
|
+
|
49
|
+
grpc_mdelem grpc_message_compression_encoding_mdelem(
|
50
|
+
grpc_message_compression_algorithm algorithm) {
|
51
|
+
switch (algorithm) {
|
52
|
+
case GRPC_MESSAGE_COMPRESS_NONE:
|
53
|
+
return GRPC_MDELEM_GRPC_ENCODING_IDENTITY;
|
54
|
+
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
55
|
+
return GRPC_MDELEM_GRPC_ENCODING_DEFLATE;
|
56
|
+
case GRPC_MESSAGE_COMPRESS_GZIP:
|
57
|
+
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
58
|
+
default:
|
59
|
+
break;
|
60
|
+
}
|
61
|
+
return GRPC_MDNULL;
|
62
|
+
}
|
63
|
+
|
64
|
+
grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
65
|
+
grpc_stream_compression_algorithm algorithm) {
|
66
|
+
switch (algorithm) {
|
67
|
+
case GRPC_STREAM_COMPRESS_NONE:
|
68
|
+
return GRPC_MDELEM_CONTENT_ENCODING_IDENTITY;
|
69
|
+
case GRPC_STREAM_COMPRESS_GZIP:
|
70
|
+
return GRPC_MDELEM_CONTENT_ENCODING_GZIP;
|
71
|
+
default:
|
72
|
+
break;
|
73
|
+
}
|
74
|
+
return GRPC_MDNULL;
|
75
|
+
}
|
76
|
+
|
77
|
+
/* Interfaces performing transformation between compression algorithms and
|
78
|
+
* levels. */
|
79
|
+
grpc_message_compression_algorithm
|
80
|
+
grpc_compression_algorithm_to_message_compression_algorithm(
|
81
|
+
grpc_compression_algorithm algo) {
|
82
|
+
switch (algo) {
|
83
|
+
case GRPC_COMPRESS_DEFLATE:
|
84
|
+
return GRPC_MESSAGE_COMPRESS_DEFLATE;
|
85
|
+
case GRPC_COMPRESS_GZIP:
|
86
|
+
return GRPC_MESSAGE_COMPRESS_GZIP;
|
87
|
+
default:
|
88
|
+
return GRPC_MESSAGE_COMPRESS_NONE;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
grpc_stream_compression_algorithm
|
93
|
+
grpc_compression_algorithm_to_stream_compression_algorithm(
|
94
|
+
grpc_compression_algorithm algo) {
|
95
|
+
switch (algo) {
|
96
|
+
case GRPC_COMPRESS_STREAM_GZIP:
|
97
|
+
return GRPC_STREAM_COMPRESS_GZIP;
|
98
|
+
default:
|
99
|
+
return GRPC_STREAM_COMPRESS_NONE;
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
uint32_t grpc_compression_bitset_to_message_bitset(uint32_t bitset) {
|
104
|
+
return bitset & ((1u << GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT) - 1);
|
105
|
+
}
|
106
|
+
|
107
|
+
uint32_t grpc_compression_bitset_to_stream_bitset(uint32_t bitset) {
|
108
|
+
uint32_t identity = (bitset & 1u);
|
109
|
+
uint32_t other_bits =
|
110
|
+
(bitset >> (GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT - 1)) &
|
111
|
+
((1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 2);
|
112
|
+
return identity | other_bits;
|
113
|
+
}
|
114
|
+
|
115
|
+
uint32_t grpc_compression_bitset_from_message_stream_compression_bitset(
|
116
|
+
uint32_t message_bitset, uint32_t stream_bitset) {
|
117
|
+
uint32_t offset_stream_bitset =
|
118
|
+
(stream_bitset & 1u) |
|
119
|
+
((stream_bitset & (~1u)) << (GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT - 1));
|
120
|
+
return message_bitset | offset_stream_bitset;
|
121
|
+
}
|
122
|
+
|
123
|
+
int grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
124
|
+
grpc_compression_algorithm* algorithm,
|
125
|
+
grpc_message_compression_algorithm message_algorithm,
|
126
|
+
grpc_stream_compression_algorithm stream_algorithm) {
|
127
|
+
if (message_algorithm != GRPC_MESSAGE_COMPRESS_NONE &&
|
128
|
+
stream_algorithm != GRPC_STREAM_COMPRESS_NONE) {
|
129
|
+
*algorithm = GRPC_COMPRESS_NONE;
|
130
|
+
return 0;
|
131
|
+
}
|
132
|
+
if (message_algorithm == GRPC_MESSAGE_COMPRESS_NONE) {
|
133
|
+
switch (stream_algorithm) {
|
134
|
+
case GRPC_STREAM_COMPRESS_NONE:
|
135
|
+
*algorithm = GRPC_COMPRESS_NONE;
|
136
|
+
return 1;
|
137
|
+
case GRPC_STREAM_COMPRESS_GZIP:
|
138
|
+
*algorithm = GRPC_COMPRESS_STREAM_GZIP;
|
139
|
+
return 1;
|
140
|
+
default:
|
141
|
+
*algorithm = GRPC_COMPRESS_NONE;
|
142
|
+
return 0;
|
143
|
+
}
|
144
|
+
} else {
|
145
|
+
switch (message_algorithm) {
|
146
|
+
case GRPC_MESSAGE_COMPRESS_NONE:
|
147
|
+
*algorithm = GRPC_COMPRESS_NONE;
|
148
|
+
return 1;
|
149
|
+
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
150
|
+
*algorithm = GRPC_COMPRESS_DEFLATE;
|
151
|
+
return 1;
|
152
|
+
case GRPC_MESSAGE_COMPRESS_GZIP:
|
153
|
+
*algorithm = GRPC_COMPRESS_GZIP;
|
154
|
+
return 1;
|
155
|
+
default:
|
156
|
+
*algorithm = GRPC_COMPRESS_NONE;
|
157
|
+
return 0;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
return 0;
|
161
|
+
}
|
162
|
+
|
163
|
+
/* Interfaces for message compression. */
|
164
|
+
|
165
|
+
int grpc_message_compression_algorithm_name(
|
166
|
+
grpc_message_compression_algorithm algorithm, const char** name) {
|
167
|
+
GRPC_API_TRACE(
|
168
|
+
"grpc_message_compression_algorithm_parse(algorithm=%d, name=%p)", 2,
|
169
|
+
((int)algorithm, name));
|
170
|
+
switch (algorithm) {
|
171
|
+
case GRPC_MESSAGE_COMPRESS_NONE:
|
172
|
+
*name = "identity";
|
173
|
+
return 1;
|
174
|
+
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
175
|
+
*name = "deflate";
|
176
|
+
return 1;
|
177
|
+
case GRPC_MESSAGE_COMPRESS_GZIP:
|
178
|
+
*name = "gzip";
|
179
|
+
return 1;
|
180
|
+
case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
|
181
|
+
return 0;
|
182
|
+
}
|
183
|
+
return 0;
|
184
|
+
}
|
185
|
+
|
186
|
+
/* TODO(dgq): Add the ability to specify parameters to the individual
|
187
|
+
* compression algorithms */
|
188
|
+
grpc_message_compression_algorithm grpc_message_compression_algorithm_for_level(
|
189
|
+
grpc_compression_level level, uint32_t accepted_encodings) {
|
190
|
+
GRPC_API_TRACE("grpc_message_compression_algorithm_for_level(level=%d)", 1,
|
191
|
+
((int)level));
|
192
|
+
if (level > GRPC_COMPRESS_LEVEL_HIGH) {
|
193
|
+
gpr_log(GPR_ERROR, "Unknown message compression level %d.",
|
194
|
+
static_cast<int>(level));
|
195
|
+
abort();
|
196
|
+
}
|
197
|
+
|
198
|
+
const size_t num_supported =
|
199
|
+
GPR_BITCOUNT(accepted_encodings) - 1; /* discard NONE */
|
200
|
+
if (level == GRPC_COMPRESS_LEVEL_NONE || num_supported == 0) {
|
201
|
+
return GRPC_MESSAGE_COMPRESS_NONE;
|
202
|
+
}
|
203
|
+
|
204
|
+
GPR_ASSERT(level > 0);
|
205
|
+
|
206
|
+
/* Establish a "ranking" or compression algorithms in increasing order of
|
207
|
+
* compression.
|
208
|
+
* This is simplistic and we will probably want to introduce other dimensions
|
209
|
+
* in the future (cpu/memory cost, etc). */
|
210
|
+
const grpc_message_compression_algorithm algos_ranking[] = {
|
211
|
+
GRPC_MESSAGE_COMPRESS_GZIP, GRPC_MESSAGE_COMPRESS_DEFLATE};
|
212
|
+
|
213
|
+
/* intersect algos_ranking with the supported ones keeping the ranked order */
|
214
|
+
grpc_message_compression_algorithm
|
215
|
+
sorted_supported_algos[GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT];
|
216
|
+
size_t algos_supported_idx = 0;
|
217
|
+
for (size_t i = 0; i < GPR_ARRAY_SIZE(algos_ranking); i++) {
|
218
|
+
const grpc_message_compression_algorithm alg = algos_ranking[i];
|
219
|
+
for (size_t j = 0; j < num_supported; j++) {
|
220
|
+
if (GPR_BITGET(accepted_encodings, alg) == 1) {
|
221
|
+
/* if \a alg in supported */
|
222
|
+
sorted_supported_algos[algos_supported_idx++] = alg;
|
223
|
+
break;
|
224
|
+
}
|
225
|
+
}
|
226
|
+
if (algos_supported_idx == num_supported) break;
|
227
|
+
}
|
228
|
+
|
229
|
+
switch (level) {
|
230
|
+
case GRPC_COMPRESS_LEVEL_NONE:
|
231
|
+
abort(); /* should have been handled already */
|
232
|
+
case GRPC_COMPRESS_LEVEL_LOW:
|
233
|
+
return sorted_supported_algos[0];
|
234
|
+
case GRPC_COMPRESS_LEVEL_MED:
|
235
|
+
return sorted_supported_algos[num_supported / 2];
|
236
|
+
case GRPC_COMPRESS_LEVEL_HIGH:
|
237
|
+
return sorted_supported_algos[num_supported - 1];
|
238
|
+
default:
|
239
|
+
abort();
|
240
|
+
};
|
241
|
+
}
|
242
|
+
|
243
|
+
int grpc_message_compression_algorithm_parse(
|
244
|
+
grpc_slice value, grpc_message_compression_algorithm* algorithm) {
|
245
|
+
if (grpc_slice_eq(value, GRPC_MDSTR_IDENTITY)) {
|
246
|
+
*algorithm = GRPC_MESSAGE_COMPRESS_NONE;
|
247
|
+
return 1;
|
248
|
+
} else if (grpc_slice_eq(value, GRPC_MDSTR_DEFLATE)) {
|
249
|
+
*algorithm = GRPC_MESSAGE_COMPRESS_DEFLATE;
|
250
|
+
return 1;
|
251
|
+
} else if (grpc_slice_eq(value, GRPC_MDSTR_GZIP)) {
|
252
|
+
*algorithm = GRPC_MESSAGE_COMPRESS_GZIP;
|
253
|
+
return 1;
|
254
|
+
} else {
|
255
|
+
return 0;
|
256
|
+
}
|
257
|
+
return 0;
|
258
|
+
}
|
259
|
+
|
260
|
+
/* Interfaces for stream compression. */
|
261
|
+
|
262
|
+
int grpc_stream_compression_algorithm_parse(
|
263
|
+
grpc_slice value, grpc_stream_compression_algorithm* algorithm) {
|
264
|
+
if (grpc_slice_eq(value, GRPC_MDSTR_IDENTITY)) {
|
265
|
+
*algorithm = GRPC_STREAM_COMPRESS_NONE;
|
266
|
+
return 1;
|
267
|
+
} else if (grpc_slice_eq(value, GRPC_MDSTR_GZIP)) {
|
268
|
+
*algorithm = GRPC_STREAM_COMPRESS_GZIP;
|
269
|
+
return 1;
|
270
|
+
} else {
|
271
|
+
return 0;
|
272
|
+
}
|
273
|
+
return 0;
|
274
|
+
}
|
@@ -0,0 +1,86 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2017 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef GRPC_CORE_LIB_COMPRESSION_COMPRESSION_INTERNAL_H
|
20
|
+
#define GRPC_CORE_LIB_COMPRESSION_COMPRESSION_INTERNAL_H
|
21
|
+
|
22
|
+
#include <grpc/impl/codegen/compression_types.h>
|
23
|
+
|
24
|
+
#ifdef __cplusplus
|
25
|
+
extern "C" {
|
26
|
+
#endif
|
27
|
+
|
28
|
+
typedef enum {
|
29
|
+
GRPC_MESSAGE_COMPRESS_NONE = 0,
|
30
|
+
GRPC_MESSAGE_COMPRESS_DEFLATE,
|
31
|
+
GRPC_MESSAGE_COMPRESS_GZIP,
|
32
|
+
/* TODO(ctiller): snappy */
|
33
|
+
GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT
|
34
|
+
} grpc_message_compression_algorithm;
|
35
|
+
|
36
|
+
/** Stream compresssion algorithms supported by gRPC */
|
37
|
+
typedef enum {
|
38
|
+
GRPC_STREAM_COMPRESS_NONE = 0,
|
39
|
+
GRPC_STREAM_COMPRESS_GZIP,
|
40
|
+
GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT
|
41
|
+
} grpc_stream_compression_algorithm;
|
42
|
+
|
43
|
+
/* Interfaces performing transformation between compression algorithms and
|
44
|
+
* levels. */
|
45
|
+
|
46
|
+
grpc_message_compression_algorithm
|
47
|
+
grpc_compression_algorithm_to_message_compression_algorithm(
|
48
|
+
grpc_compression_algorithm algo);
|
49
|
+
|
50
|
+
grpc_stream_compression_algorithm
|
51
|
+
grpc_compression_algorithm_to_stream_compression_algorithm(
|
52
|
+
grpc_compression_algorithm algo);
|
53
|
+
|
54
|
+
uint32_t grpc_compression_bitset_to_message_bitset(uint32_t bitset);
|
55
|
+
|
56
|
+
uint32_t grpc_compression_bitset_to_stream_bitset(uint32_t bitset);
|
57
|
+
|
58
|
+
uint32_t grpc_compression_bitset_from_message_stream_compression_bitset(
|
59
|
+
uint32_t message_bitset, uint32_t stream_bitset);
|
60
|
+
|
61
|
+
int grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
62
|
+
grpc_compression_algorithm* algorithm,
|
63
|
+
grpc_message_compression_algorithm message_algorithm,
|
64
|
+
grpc_stream_compression_algorithm stream_algorithm);
|
65
|
+
|
66
|
+
/* Interfaces for message compression. */
|
67
|
+
|
68
|
+
int grpc_message_compression_algorithm_name(
|
69
|
+
grpc_message_compression_algorithm algorithm, const char** name);
|
70
|
+
|
71
|
+
grpc_message_compression_algorithm grpc_message_compression_algorithm_for_level(
|
72
|
+
grpc_compression_level level, uint32_t accepted_encodings);
|
73
|
+
|
74
|
+
int grpc_message_compression_algorithm_parse(
|
75
|
+
grpc_slice value, grpc_message_compression_algorithm* algorithm);
|
76
|
+
|
77
|
+
/* Interfaces for stream compression. */
|
78
|
+
|
79
|
+
int grpc_stream_compression_algorithm_parse(
|
80
|
+
grpc_slice value, grpc_stream_compression_algorithm* algorithm);
|
81
|
+
|
82
|
+
#ifdef __cplusplus
|
83
|
+
}
|
84
|
+
#endif
|
85
|
+
|
86
|
+
#endif /* GRPC_CORE_LIB_COMPRESSION_COMPRESSION_INTERNAL_H */
|
@@ -36,23 +36,23 @@ static int zlib_body(z_stream* zs, grpc_slice_buffer* input,
|
|
36
36
|
int flush;
|
37
37
|
size_t i;
|
38
38
|
grpc_slice outbuf = GRPC_SLICE_MALLOC(OUTPUT_BLOCK_SIZE);
|
39
|
-
const uInt uint_max = ~(
|
39
|
+
const uInt uint_max = ~static_cast<uInt>(0);
|
40
40
|
|
41
41
|
GPR_ASSERT(GRPC_SLICE_LENGTH(outbuf) <= uint_max);
|
42
|
-
zs->avail_out =
|
42
|
+
zs->avail_out = static_cast<uInt> GRPC_SLICE_LENGTH(outbuf);
|
43
43
|
zs->next_out = GRPC_SLICE_START_PTR(outbuf);
|
44
44
|
flush = Z_NO_FLUSH;
|
45
45
|
for (i = 0; i < input->count; i++) {
|
46
46
|
if (i == input->count - 1) flush = Z_FINISH;
|
47
47
|
GPR_ASSERT(GRPC_SLICE_LENGTH(input->slices[i]) <= uint_max);
|
48
|
-
zs->avail_in =
|
48
|
+
zs->avail_in = static_cast<uInt> GRPC_SLICE_LENGTH(input->slices[i]);
|
49
49
|
zs->next_in = GRPC_SLICE_START_PTR(input->slices[i]);
|
50
50
|
do {
|
51
51
|
if (zs->avail_out == 0) {
|
52
52
|
grpc_slice_buffer_add_indexed(output, outbuf);
|
53
53
|
outbuf = GRPC_SLICE_MALLOC(OUTPUT_BLOCK_SIZE);
|
54
54
|
GPR_ASSERT(GRPC_SLICE_LENGTH(outbuf) <= uint_max);
|
55
|
-
zs->avail_out =
|
55
|
+
zs->avail_out = static_cast<uInt> GRPC_SLICE_LENGTH(outbuf);
|
56
56
|
zs->next_out = GRPC_SLICE_START_PTR(outbuf);
|
57
57
|
}
|
58
58
|
r = flate(zs, flush);
|
@@ -141,25 +141,25 @@ static int copy(grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
|
141
141
|
return 1;
|
142
142
|
}
|
143
143
|
|
144
|
-
static int compress_inner(
|
144
|
+
static int compress_inner(grpc_message_compression_algorithm algorithm,
|
145
145
|
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
146
146
|
switch (algorithm) {
|
147
|
-
case
|
147
|
+
case GRPC_MESSAGE_COMPRESS_NONE:
|
148
148
|
/* the fallback path always needs to be send uncompressed: we simply
|
149
149
|
rely on that here */
|
150
150
|
return 0;
|
151
|
-
case
|
151
|
+
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
152
152
|
return zlib_compress(input, output, 0);
|
153
|
-
case
|
153
|
+
case GRPC_MESSAGE_COMPRESS_GZIP:
|
154
154
|
return zlib_compress(input, output, 1);
|
155
|
-
case
|
155
|
+
case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
|
156
156
|
break;
|
157
157
|
}
|
158
158
|
gpr_log(GPR_ERROR, "invalid compression algorithm %d", algorithm);
|
159
159
|
return 0;
|
160
160
|
}
|
161
161
|
|
162
|
-
int grpc_msg_compress(
|
162
|
+
int grpc_msg_compress(grpc_message_compression_algorithm algorithm,
|
163
163
|
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
164
164
|
if (!compress_inner(algorithm, input, output)) {
|
165
165
|
copy(input, output);
|
@@ -168,16 +168,16 @@ int grpc_msg_compress(grpc_compression_algorithm algorithm,
|
|
168
168
|
return 1;
|
169
169
|
}
|
170
170
|
|
171
|
-
int grpc_msg_decompress(
|
171
|
+
int grpc_msg_decompress(grpc_message_compression_algorithm algorithm,
|
172
172
|
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
173
173
|
switch (algorithm) {
|
174
|
-
case
|
174
|
+
case GRPC_MESSAGE_COMPRESS_NONE:
|
175
175
|
return copy(input, output);
|
176
|
-
case
|
176
|
+
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
177
177
|
return zlib_decompress(input, output, 0);
|
178
|
-
case
|
178
|
+
case GRPC_MESSAGE_COMPRESS_GZIP:
|
179
179
|
return zlib_decompress(input, output, 1);
|
180
|
-
case
|
180
|
+
case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
|
181
181
|
break;
|
182
182
|
}
|
183
183
|
gpr_log(GPR_ERROR, "invalid compression algorithm %d", algorithm);
|
@@ -19,19 +19,20 @@
|
|
19
19
|
#ifndef GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H
|
20
20
|
#define GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H
|
21
21
|
|
22
|
-
#include <grpc/compression.h>
|
23
22
|
#include <grpc/slice_buffer.h>
|
24
23
|
|
24
|
+
#include "src/core/lib/compression/compression_internal.h"
|
25
|
+
|
25
26
|
/* compress 'input' to 'output' using 'algorithm'.
|
26
27
|
On success, appends compressed slices to output and returns 1.
|
27
28
|
On failure, appends uncompressed slices to output and returns 0. */
|
28
|
-
int grpc_msg_compress(
|
29
|
+
int grpc_msg_compress(grpc_message_compression_algorithm algorithm,
|
29
30
|
grpc_slice_buffer* input, grpc_slice_buffer* output);
|
30
31
|
|
31
32
|
/* decompress 'input' to 'output' using 'algorithm'.
|
32
33
|
On success, appends slices to output and returns 1.
|
33
34
|
On failure, output is unchanged, and returns 0. */
|
34
|
-
int grpc_msg_decompress(
|
35
|
+
int grpc_msg_decompress(grpc_message_compression_algorithm algorithm,
|
35
36
|
grpc_slice_buffer* input, grpc_slice_buffer* output);
|
36
37
|
|
37
38
|
#endif /* GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H */
|