grpc 1.8.7 → 1.9.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 +549 -325
- data/include/grpc/impl/codegen/grpc_types.h +1 -2
- data/include/grpc/impl/codegen/port_platform.h +46 -5
- data/include/grpc/impl/codegen/slice.h +1 -2
- data/include/grpc/module.modulemap +0 -2
- data/include/grpc/slice_buffer.h +1 -2
- data/include/grpc/support/log.h +4 -2
- data/include/grpc/support/thd.h +4 -1
- data/include/grpc/support/tls.h +6 -0
- data/include/grpc/support/tls_gcc.h +5 -40
- data/include/grpc/support/tls_msvc.h +9 -0
- data/include/grpc/support/tls_pthread.h +9 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
- data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
- data/src/core/ext/filters/client_channel/client_channel.h +4 -12
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
- data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
- data/src/core/ext/filters/client_channel/connector.cc +6 -7
- data/src/core/ext/filters/client_channel/connector.h +6 -16
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
- data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
- data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
- data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
- data/src/core/ext/filters/client_channel/parse_address.h +0 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
- data/src/core/ext/filters/client_channel/resolver.cc +11 -13
- data/src/core/ext/filters/client_channel/resolver.h +14 -25
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
- data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
- data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
- data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
- data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
- data/src/core/ext/filters/client_channel/subchannel.h +57 -84
- data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
- data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
- data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
- data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
- data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
- data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
- data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
- data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
- data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
- data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
- data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
- data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
- data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
- data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
- data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
- data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
- data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
- data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
- data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
- data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
- data/src/core/lib/backoff/backoff.cc +39 -44
- data/src/core/lib/backoff/backoff.h +61 -57
- data/src/core/lib/channel/channel_args.cc +8 -10
- data/src/core/lib/channel/channel_args.h +4 -13
- data/src/core/lib/channel/channel_stack.cc +19 -27
- data/src/core/lib/channel/channel_stack.h +27 -47
- data/src/core/lib/channel/channel_stack_builder.cc +11 -14
- data/src/core/lib/channel/channel_stack_builder.h +4 -15
- data/src/core/lib/channel/connected_channel.cc +23 -36
- data/src/core/lib/channel/connected_channel.h +1 -10
- data/src/core/lib/channel/handshaker.cc +31 -40
- data/src/core/lib/channel/handshaker.h +14 -25
- data/src/core/lib/channel/handshaker_factory.cc +6 -6
- data/src/core/lib/channel/handshaker_factory.h +5 -15
- data/src/core/lib/channel/handshaker_registry.cc +9 -13
- data/src/core/lib/channel/handshaker_registry.h +2 -11
- data/src/core/lib/compression/algorithm_metadata.h +0 -8
- data/src/core/lib/compression/message_compress.cc +19 -23
- data/src/core/lib/compression/message_compress.h +2 -12
- data/src/core/lib/compression/stream_compression.cc +1 -1
- data/src/core/lib/compression/stream_compression.h +0 -8
- data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
- data/src/core/lib/compression/stream_compression_gzip.h +0 -8
- data/src/core/lib/compression/stream_compression_identity.h +0 -8
- data/src/core/lib/debug/stats.cc +4 -4
- data/src/core/lib/debug/stats.h +9 -19
- data/src/core/lib/debug/stats_data.cc +85 -116
- data/src/core/lib/debug/stats_data.h +236 -312
- data/src/core/lib/debug/trace.cc +1 -1
- data/src/core/lib/debug/trace.h +0 -12
- data/src/core/lib/{support → gpr++}/abstract.h +8 -3
- data/src/core/lib/{support → gpr++}/atomic.h +5 -5
- data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
- data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
- data/src/core/lib/gpr++/debug_location.h +52 -0
- data/src/core/lib/gpr++/inlined_vector.h +112 -0
- data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
- data/src/core/lib/{support → gpr++}/memory.h +3 -3
- data/src/core/lib/gpr++/orphanable.h +171 -0
- data/src/core/lib/gpr++/ref_counted.h +133 -0
- data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
- data/src/core/lib/{support → gpr}/alloc.cc +0 -0
- data/src/core/lib/{support → gpr}/arena.cc +1 -1
- data/src/core/lib/{support → gpr}/arena.h +3 -11
- data/src/core/lib/{support → gpr}/atm.cc +0 -0
- data/src/core/lib/{support → gpr}/avl.cc +0 -0
- data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
- data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/env.h +3 -11
- data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
- data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
- data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.h +3 -3
- data/src/core/lib/{support → gpr}/host_port.cc +1 -1
- data/src/core/lib/{support → gpr}/log.cc +3 -3
- data/src/core/lib/{support → gpr}/log_android.cc +3 -3
- data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
- data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
- data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
- data/src/core/lib/{support → gpr}/mpscq.h +3 -10
- data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
- data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
- data/src/core/lib/{support → gpr}/spinlock.h +3 -3
- data/src/core/lib/{support → gpr}/string.cc +1 -1
- data/src/core/lib/{support → gpr}/string.h +3 -10
- data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
- data/src/core/lib/{support → gpr}/string_windows.h +3 -11
- data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/sync.cc +0 -0
- data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
- data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/thd.cc +0 -0
- data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
- data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
- data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
- data/src/core/lib/{support → gpr}/time.cc +0 -0
- data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
- data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
- data/src/core/lib/{support → gpr}/time_precise.h +3 -11
- data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
- data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
- data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
- data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
- data/src/core/lib/http/format_request.cc +1 -1
- data/src/core/lib/http/format_request.h +0 -8
- data/src/core/lib/http/httpcli.cc +55 -74
- data/src/core/lib/http/httpcli.h +13 -22
- data/src/core/lib/http/httpcli_security_connector.cc +27 -33
- data/src/core/lib/http/parser.h +0 -8
- data/src/core/lib/iomgr/block_annotate.h +10 -17
- data/src/core/lib/iomgr/call_combiner.cc +14 -17
- data/src/core/lib/iomgr/call_combiner.h +16 -34
- data/src/core/lib/iomgr/closure.h +24 -37
- data/src/core/lib/iomgr/combiner.cc +62 -66
- data/src/core/lib/iomgr/combiner.h +6 -16
- data/src/core/lib/iomgr/endpoint.cc +15 -21
- data/src/core/lib/iomgr/endpoint.h +16 -33
- data/src/core/lib/iomgr/endpoint_pair.h +0 -8
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
- data/src/core/lib/iomgr/error.cc +2 -6
- data/src/core/lib/iomgr/error.h +4 -9
- data/src/core/lib/iomgr/error_internal.h +0 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
- data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
- data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
- data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
- data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
- data/src/core/lib/iomgr/ev_posix.cc +35 -50
- data/src/core/lib/iomgr/ev_posix.h +27 -53
- data/src/core/lib/iomgr/exec_ctx.cc +46 -78
- data/src/core/lib/iomgr/exec_ctx.h +127 -60
- data/src/core/lib/iomgr/executor.cc +34 -38
- data/src/core/lib/iomgr/executor.h +3 -11
- data/src/core/lib/iomgr/fork_posix.cc +13 -12
- data/src/core/lib/iomgr/gethostname.h +0 -8
- data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +14 -16
- data/src/core/lib/iomgr/iocp_windows.h +1 -10
- data/src/core/lib/iomgr/iomgr.cc +60 -59
- data/src/core/lib/iomgr/iomgr.h +3 -12
- data/src/core/lib/iomgr/iomgr_internal.h +0 -8
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
- data/src/core/lib/iomgr/iomgr_uv.h +0 -8
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/load_file.h +0 -8
- data/src/core/lib/iomgr/lockfree_event.cc +7 -8
- data/src/core/lib/iomgr/lockfree_event.h +3 -3
- data/src/core/lib/iomgr/polling_entity.cc +6 -10
- data/src/core/lib/iomgr/polling_entity.h +2 -11
- data/src/core/lib/iomgr/pollset.h +4 -13
- data/src/core/lib/iomgr/pollset_set.h +5 -18
- data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
- data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
- data/src/core/lib/iomgr/pollset_uv.cc +8 -9
- data/src/core/lib/iomgr/pollset_uv.h +0 -8
- data/src/core/lib/iomgr/pollset_windows.cc +14 -15
- data/src/core/lib/iomgr/pollset_windows.h +0 -8
- data/src/core/lib/iomgr/port.h +6 -1
- data/src/core/lib/iomgr/resolve_address.h +1 -10
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
- data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
- data/src/core/lib/iomgr/resource_quota.cc +77 -107
- data/src/core/lib/iomgr/resource_quota.h +8 -25
- data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.h +1 -9
- data/src/core/lib/iomgr/socket_utils.h +0 -8
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
- data/src/core/lib/iomgr/socket_windows.cc +8 -11
- data/src/core/lib/iomgr/socket_windows.h +3 -14
- data/src/core/lib/iomgr/tcp_client.h +1 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
- data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
- data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
- data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
- data/src/core/lib/iomgr/tcp_posix.cc +131 -153
- data/src/core/lib/iomgr/tcp_posix.h +3 -12
- data/src/core/lib/iomgr/tcp_server.h +6 -17
- data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
- data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
- data/src/core/lib/iomgr/tcp_uv.cc +42 -56
- data/src/core/lib/iomgr/tcp_uv.h +0 -8
- data/src/core/lib/iomgr/tcp_windows.cc +43 -50
- data/src/core/lib/iomgr/tcp_windows.h +1 -9
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
- data/src/core/lib/iomgr/timer.h +6 -15
- data/src/core/lib/iomgr/timer_generic.cc +22 -27
- data/src/core/lib/iomgr/timer_heap.h +0 -8
- data/src/core/lib/iomgr/timer_manager.cc +17 -19
- data/src/core/lib/iomgr/timer_manager.h +0 -8
- data/src/core/lib/iomgr/timer_uv.cc +12 -14
- data/src/core/lib/iomgr/udp_server.cc +148 -54
- data/src/core/lib/iomgr/udp_server.h +16 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
- data/src/core/lib/json/json.h +0 -8
- data/src/core/lib/json/json_reader.h +0 -8
- data/src/core/lib/json/json_writer.h +0 -8
- data/src/core/lib/profiling/basic_timers.cc +3 -2
- data/src/core/lib/profiling/timers.h +0 -8
- data/src/core/lib/security/context/security_context.cc +9 -10
- data/src/core/lib/security/context/security_context.h +0 -8
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
- data/src/core/lib/security/credentials/credentials.cc +33 -42
- data/src/core/lib/security/credentials/credentials.h +24 -43
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
- data/src/core/lib/security/transport/auth_filters.h +0 -8
- data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
- data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
- data/src/core/lib/security/transport/lb_targets_info.h +0 -8
- data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
- data/src/core/lib/security/transport/secure_endpoint.h +0 -8
- data/src/core/lib/security/transport/security_connector.cc +62 -86
- data/src/core/lib/security/transport/security_connector.h +22 -39
- data/src/core/lib/security/transport/security_handshaker.cc +83 -106
- data/src/core/lib/security/transport/security_handshaker.h +1 -10
- data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
- data/src/core/lib/security/transport/tsi_error.h +0 -8
- data/src/core/lib/security/util/json_util.h +0 -8
- data/src/core/lib/slice/b64.cc +5 -6
- data/src/core/lib/slice/b64.h +3 -12
- data/src/core/lib/slice/percent_encoding.h +0 -8
- data/src/core/lib/slice/slice.cc +8 -9
- data/src/core/lib/slice/slice_buffer.cc +11 -16
- data/src/core/lib/slice/slice_hash_table.cc +5 -7
- data/src/core/lib/slice/slice_hash_table.h +2 -12
- data/src/core/lib/slice/slice_intern.cc +4 -5
- data/src/core/lib/slice/slice_internal.h +4 -15
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/slice/slice_string_helpers.h +1 -9
- data/src/core/lib/surface/alarm.cc +11 -14
- data/src/core/lib/surface/alarm_internal.h +0 -8
- data/src/core/lib/surface/byte_buffer.cc +2 -3
- data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
- data/src/core/lib/surface/call.cc +198 -241
- data/src/core/lib/surface/call.h +9 -23
- data/src/core/lib/surface/call_details.cc +3 -4
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_test_only.h +0 -8
- data/src/core/lib/surface/channel.cc +53 -64
- data/src/core/lib/surface/channel.h +12 -23
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +2 -12
- data/src/core/lib/surface/channel_ping.cc +7 -9
- data/src/core/lib/surface/channel_stack_type.h +0 -8
- data/src/core/lib/surface/completion_queue.cc +158 -176
- data/src/core/lib/surface/completion_queue.h +9 -20
- data/src/core/lib/surface/completion_queue_factory.h +0 -8
- data/src/core/lib/surface/event_string.cc +1 -1
- data/src/core/lib/surface/event_string.h +0 -8
- data/src/core/lib/surface/init.cc +27 -25
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/init_secure.cc +2 -2
- data/src/core/lib/surface/lame_client.cc +30 -33
- data/src/core/lib/surface/lame_client.h +0 -8
- data/src/core/lib/surface/server.cc +151 -203
- data/src/core/lib/surface/server.h +7 -16
- data/src/core/lib/surface/validate_metadata.h +0 -8
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +1 -1
- data/src/core/lib/transport/byte_stream.cc +24 -38
- data/src/core/lib/transport/byte_stream.h +10 -25
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/connectivity_state.h +4 -14
- data/src/core/lib/transport/error_utils.cc +6 -6
- data/src/core/lib/transport/error_utils.h +2 -11
- data/src/core/lib/transport/metadata.cc +21 -23
- data/src/core/lib/transport/metadata.h +8 -20
- data/src/core/lib/transport/metadata_batch.cc +34 -45
- data/src/core/lib/transport/metadata_batch.h +18 -32
- data/src/core/lib/transport/service_config.cc +11 -15
- data/src/core/lib/transport/service_config.h +3 -13
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/static_metadata.h +1 -7
- data/src/core/lib/transport/status_conversion.cc +2 -3
- data/src/core/lib/transport/status_conversion.h +1 -10
- data/src/core/lib/transport/timeout_encoding.cc +1 -1
- data/src/core/lib/transport/timeout_encoding.h +1 -9
- data/src/core/lib/transport/transport.cc +36 -50
- data/src/core/lib/transport/transport.h +28 -30
- data/src/core/lib/transport/transport_impl.h +12 -23
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
- data/src/core/tsi/fake_transport_security.cc +7 -10
- data/src/core/tsi/fake_transport_security.h +0 -8
- data/src/core/tsi/gts_transport_security.cc +2 -2
- data/src/core/tsi/gts_transport_security.h +0 -8
- data/src/core/tsi/ssl_transport_security.cc +3 -0
- data/src/core/tsi/ssl_transport_security.h +0 -8
- data/src/core/tsi/ssl_types.h +0 -8
- data/src/core/tsi/transport_security.h +1 -9
- data/src/core/tsi/transport_security_adapter.h +0 -8
- data/src/core/tsi/transport_security_grpc.cc +11 -18
- data/src/core/tsi/transport_security_grpc.h +9 -21
- data/src/core/tsi/transport_security_interface.h +0 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_connection_spec.rb +2 -1
- data/src/ruby/spec/client_auth_spec.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +2 -2
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/src/ruby/spec/server_spec.rb +9 -9
- data/src/ruby/spec/support/helpers.rb +35 -1
- metadata +68 -66
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
- data/include/grpc/support/histogram.h +0 -64
- data/src/core/lib/support/histogram.cc +0 -227
@@ -26,10 +26,6 @@
|
|
26
26
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
27
27
|
#include "src/core/lib/iomgr/tcp_server.h"
|
28
28
|
|
29
|
-
#ifdef __cplusplus
|
30
|
-
extern "C" {
|
31
|
-
#endif
|
32
|
-
|
33
29
|
/// Handshakers are used to perform initial handshakes on a connection
|
34
30
|
/// before the client sends the initial request. Some examples of what
|
35
31
|
/// a handshaker can be used for includes support for HTTP CONNECT on
|
@@ -58,6 +54,7 @@ typedef struct grpc_handshaker grpc_handshaker;
|
|
58
54
|
/// For the on_handshake_done callback, all members are input arguments,
|
59
55
|
/// which the callback takes ownership of.
|
60
56
|
typedef struct {
|
57
|
+
grpc_pollset_set* interested_parties;
|
61
58
|
grpc_endpoint* endpoint;
|
62
59
|
grpc_channel_args* args;
|
63
60
|
grpc_slice_buffer* read_buffer;
|
@@ -71,18 +68,17 @@ typedef struct {
|
|
71
68
|
|
72
69
|
typedef struct {
|
73
70
|
/// Destroys the handshaker.
|
74
|
-
void (*destroy)(
|
71
|
+
void (*destroy)(grpc_handshaker* handshaker);
|
75
72
|
|
76
73
|
/// Shuts down the handshaker (e.g., to clean up when the operation is
|
77
74
|
/// aborted in the middle).
|
78
|
-
void (*shutdown)(
|
79
|
-
grpc_error* why);
|
75
|
+
void (*shutdown)(grpc_handshaker* handshaker, grpc_error* why);
|
80
76
|
|
81
77
|
/// Performs handshaking, modifying \a args as needed (e.g., to
|
82
78
|
/// replace \a endpoint with a wrapped endpoint).
|
83
79
|
/// When finished, invokes \a on_handshake_done.
|
84
80
|
/// \a acceptor will be NULL for client-side handshakers.
|
85
|
-
void (*do_handshake)(
|
81
|
+
void (*do_handshake)(grpc_handshaker* handshaker,
|
86
82
|
grpc_tcp_server_acceptor* acceptor,
|
87
83
|
grpc_closure* on_handshake_done,
|
88
84
|
grpc_handshaker_args* args);
|
@@ -98,12 +94,9 @@ struct grpc_handshaker {
|
|
98
94
|
void grpc_handshaker_init(const grpc_handshaker_vtable* vtable,
|
99
95
|
grpc_handshaker* handshaker);
|
100
96
|
|
101
|
-
void grpc_handshaker_destroy(
|
102
|
-
|
103
|
-
void
|
104
|
-
grpc_handshaker* handshaker, grpc_error* why);
|
105
|
-
void grpc_handshaker_do_handshake(grpc_exec_ctx* exec_ctx,
|
106
|
-
grpc_handshaker* handshaker,
|
97
|
+
void grpc_handshaker_destroy(grpc_handshaker* handshaker);
|
98
|
+
void grpc_handshaker_shutdown(grpc_handshaker* handshaker, grpc_error* why);
|
99
|
+
void grpc_handshaker_do_handshake(grpc_handshaker* handshaker,
|
107
100
|
grpc_tcp_server_acceptor* acceptor,
|
108
101
|
grpc_closure* on_handshake_done,
|
109
102
|
grpc_handshaker_args* args);
|
@@ -123,23 +116,23 @@ void grpc_handshake_manager_add(grpc_handshake_manager* mgr,
|
|
123
116
|
grpc_handshaker* handshaker);
|
124
117
|
|
125
118
|
/// Destroys the handshake manager.
|
126
|
-
void grpc_handshake_manager_destroy(
|
127
|
-
grpc_handshake_manager* mgr);
|
119
|
+
void grpc_handshake_manager_destroy(grpc_handshake_manager* mgr);
|
128
120
|
|
129
121
|
/// Shuts down the handshake manager (e.g., to clean up when the operation is
|
130
122
|
/// aborted in the middle).
|
131
123
|
/// The caller must still call grpc_handshake_manager_destroy() after
|
132
124
|
/// calling this function.
|
133
|
-
void grpc_handshake_manager_shutdown(
|
134
|
-
grpc_handshake_manager* mgr,
|
125
|
+
void grpc_handshake_manager_shutdown(grpc_handshake_manager* mgr,
|
135
126
|
grpc_error* why);
|
136
127
|
|
137
128
|
/// Invokes handshakers in the order they were added.
|
129
|
+
/// \a interested_parties may be non-nullptr to provide a pollset_set that
|
130
|
+
/// may be used during handshaking. Ownership is not taken.
|
138
131
|
/// Takes ownership of \a endpoint, and then passes that ownership to
|
139
132
|
/// the \a on_handshake_done callback.
|
140
133
|
/// Does NOT take ownership of \a channel_args. Instead, makes a copy before
|
141
134
|
/// invoking the first handshaker.
|
142
|
-
/// \a acceptor will be
|
135
|
+
/// \a acceptor will be nullptr for client-side handshakers.
|
143
136
|
///
|
144
137
|
/// When done, invokes \a on_handshake_done with a grpc_handshaker_args
|
145
138
|
/// object as its argument. If the callback is invoked with error !=
|
@@ -147,7 +140,7 @@ void grpc_handshake_manager_shutdown(grpc_exec_ctx* exec_ctx,
|
|
147
140
|
/// the necessary clean-up. Otherwise, the callback takes ownership of
|
148
141
|
/// the arguments.
|
149
142
|
void grpc_handshake_manager_do_handshake(
|
150
|
-
|
143
|
+
grpc_handshake_manager* mgr, grpc_pollset_set* interested_parties,
|
151
144
|
grpc_endpoint* endpoint, const grpc_channel_args* channel_args,
|
152
145
|
grpc_millis deadline, grpc_tcp_server_acceptor* acceptor,
|
153
146
|
grpc_iomgr_cb_func on_handshake_done, void* user_data);
|
@@ -166,10 +159,6 @@ void grpc_handshake_manager_pending_list_remove(grpc_handshake_manager** head,
|
|
166
159
|
/// Shutdown all pending handshake managers on the server side.
|
167
160
|
// Not thread-safe. Caller needs to synchronize.
|
168
161
|
void grpc_handshake_manager_pending_list_shutdown_all(
|
169
|
-
|
170
|
-
|
171
|
-
#ifdef __cplusplus
|
172
|
-
}
|
173
|
-
#endif
|
162
|
+
grpc_handshake_manager* head, grpc_error* why);
|
174
163
|
|
175
164
|
#endif /* GRPC_CORE_LIB_CHANNEL_HANDSHAKER_H */
|
@@ -21,19 +21,19 @@
|
|
21
21
|
#include <grpc/support/log.h>
|
22
22
|
|
23
23
|
void grpc_handshaker_factory_add_handshakers(
|
24
|
-
|
25
|
-
|
24
|
+
grpc_handshaker_factory* handshaker_factory, const grpc_channel_args* args,
|
25
|
+
grpc_handshake_manager* handshake_mgr) {
|
26
26
|
if (handshaker_factory != nullptr) {
|
27
27
|
GPR_ASSERT(handshaker_factory->vtable != nullptr);
|
28
|
-
handshaker_factory->vtable->add_handshakers(
|
29
|
-
|
28
|
+
handshaker_factory->vtable->add_handshakers(handshaker_factory, args,
|
29
|
+
handshake_mgr);
|
30
30
|
}
|
31
31
|
}
|
32
32
|
|
33
33
|
void grpc_handshaker_factory_destroy(
|
34
|
-
|
34
|
+
grpc_handshaker_factory* handshaker_factory) {
|
35
35
|
if (handshaker_factory != nullptr) {
|
36
36
|
GPR_ASSERT(handshaker_factory->vtable != nullptr);
|
37
|
-
handshaker_factory->vtable->destroy(
|
37
|
+
handshaker_factory->vtable->destroy(handshaker_factory);
|
38
38
|
}
|
39
39
|
}
|
@@ -24,21 +24,15 @@
|
|
24
24
|
#include "src/core/lib/channel/handshaker.h"
|
25
25
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
26
26
|
|
27
|
-
#ifdef __cplusplus
|
28
|
-
extern "C" {
|
29
|
-
#endif
|
30
|
-
|
31
27
|
// A handshaker factory is used to create handshakers.
|
32
28
|
|
33
29
|
typedef struct grpc_handshaker_factory grpc_handshaker_factory;
|
34
30
|
|
35
31
|
typedef struct {
|
36
|
-
void (*add_handshakers)(
|
37
|
-
grpc_handshaker_factory* handshaker_factory,
|
32
|
+
void (*add_handshakers)(grpc_handshaker_factory* handshaker_factory,
|
38
33
|
const grpc_channel_args* args,
|
39
34
|
grpc_handshake_manager* handshake_mgr);
|
40
|
-
void (*destroy)(
|
41
|
-
grpc_handshaker_factory* handshaker_factory);
|
35
|
+
void (*destroy)(grpc_handshaker_factory* handshaker_factory);
|
42
36
|
} grpc_handshaker_factory_vtable;
|
43
37
|
|
44
38
|
struct grpc_handshaker_factory {
|
@@ -46,14 +40,10 @@ struct grpc_handshaker_factory {
|
|
46
40
|
};
|
47
41
|
|
48
42
|
void grpc_handshaker_factory_add_handshakers(
|
49
|
-
|
50
|
-
|
43
|
+
grpc_handshaker_factory* handshaker_factory, const grpc_channel_args* args,
|
44
|
+
grpc_handshake_manager* handshake_mgr);
|
51
45
|
|
52
46
|
void grpc_handshaker_factory_destroy(
|
53
|
-
|
54
|
-
|
55
|
-
#ifdef __cplusplus
|
56
|
-
}
|
57
|
-
#endif
|
47
|
+
grpc_handshaker_factory* handshaker_factory);
|
58
48
|
|
59
49
|
#endif /* GRPC_CORE_LIB_CHANNEL_HANDSHAKER_FACTORY_H */
|
@@ -47,18 +47,17 @@ static void grpc_handshaker_factory_list_register(
|
|
47
47
|
}
|
48
48
|
|
49
49
|
static void grpc_handshaker_factory_list_add_handshakers(
|
50
|
-
|
51
|
-
|
50
|
+
grpc_handshaker_factory_list* list, const grpc_channel_args* args,
|
51
|
+
grpc_handshake_manager* handshake_mgr) {
|
52
52
|
for (size_t i = 0; i < list->num_factories; ++i) {
|
53
|
-
grpc_handshaker_factory_add_handshakers(
|
54
|
-
handshake_mgr);
|
53
|
+
grpc_handshaker_factory_add_handshakers(list->list[i], args, handshake_mgr);
|
55
54
|
}
|
56
55
|
}
|
57
56
|
|
58
57
|
static void grpc_handshaker_factory_list_destroy(
|
59
|
-
|
58
|
+
grpc_handshaker_factory_list* list) {
|
60
59
|
for (size_t i = 0; i < list->num_factories; ++i) {
|
61
|
-
grpc_handshaker_factory_destroy(
|
60
|
+
grpc_handshaker_factory_destroy(list->list[i]);
|
62
61
|
}
|
63
62
|
gpr_free(list->list);
|
64
63
|
}
|
@@ -74,10 +73,9 @@ void grpc_handshaker_factory_registry_init() {
|
|
74
73
|
memset(g_handshaker_factory_lists, 0, sizeof(g_handshaker_factory_lists));
|
75
74
|
}
|
76
75
|
|
77
|
-
void grpc_handshaker_factory_registry_shutdown(
|
76
|
+
void grpc_handshaker_factory_registry_shutdown() {
|
78
77
|
for (size_t i = 0; i < NUM_HANDSHAKER_TYPES; ++i) {
|
79
|
-
grpc_handshaker_factory_list_destroy(
|
80
|
-
&g_handshaker_factory_lists[i]);
|
78
|
+
grpc_handshaker_factory_list_destroy(&g_handshaker_factory_lists[i]);
|
81
79
|
}
|
82
80
|
}
|
83
81
|
|
@@ -88,11 +86,9 @@ void grpc_handshaker_factory_register(bool at_start,
|
|
88
86
|
&g_handshaker_factory_lists[handshaker_type], at_start, factory);
|
89
87
|
}
|
90
88
|
|
91
|
-
void grpc_handshakers_add(
|
92
|
-
grpc_handshaker_type handshaker_type,
|
89
|
+
void grpc_handshakers_add(grpc_handshaker_type handshaker_type,
|
93
90
|
const grpc_channel_args* args,
|
94
91
|
grpc_handshake_manager* handshake_mgr) {
|
95
92
|
grpc_handshaker_factory_list_add_handshakers(
|
96
|
-
|
97
|
-
handshake_mgr);
|
93
|
+
&g_handshaker_factory_lists[handshaker_type], args, handshake_mgr);
|
98
94
|
}
|
@@ -24,10 +24,6 @@
|
|
24
24
|
#include "src/core/lib/channel/handshaker_factory.h"
|
25
25
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
26
26
|
|
27
|
-
#ifdef __cplusplus
|
28
|
-
extern "C" {
|
29
|
-
#endif
|
30
|
-
|
31
27
|
typedef enum {
|
32
28
|
HANDSHAKER_CLIENT = 0,
|
33
29
|
HANDSHAKER_SERVER,
|
@@ -35,7 +31,7 @@ typedef enum {
|
|
35
31
|
} grpc_handshaker_type;
|
36
32
|
|
37
33
|
void grpc_handshaker_factory_registry_init();
|
38
|
-
void grpc_handshaker_factory_registry_shutdown(
|
34
|
+
void grpc_handshaker_factory_registry_shutdown();
|
39
35
|
|
40
36
|
/// Registers a new handshaker factory. Takes ownership.
|
41
37
|
/// If \a at_start is true, the new handshaker will be at the beginning of
|
@@ -44,13 +40,8 @@ void grpc_handshaker_factory_register(bool at_start,
|
|
44
40
|
grpc_handshaker_type handshaker_type,
|
45
41
|
grpc_handshaker_factory* factory);
|
46
42
|
|
47
|
-
void grpc_handshakers_add(
|
48
|
-
grpc_handshaker_type handshaker_type,
|
43
|
+
void grpc_handshakers_add(grpc_handshaker_type handshaker_type,
|
49
44
|
const grpc_channel_args* args,
|
50
45
|
grpc_handshake_manager* handshake_mgr);
|
51
46
|
|
52
|
-
#ifdef __cplusplus
|
53
|
-
}
|
54
|
-
#endif
|
55
|
-
|
56
47
|
#endif /* GRPC_CORE_LIB_CHANNEL_HANDSHAKER_REGISTRY_H */
|
@@ -22,10 +22,6 @@
|
|
22
22
|
#include <grpc/compression.h>
|
23
23
|
#include "src/core/lib/transport/metadata.h"
|
24
24
|
|
25
|
-
#ifdef __cplusplus
|
26
|
-
extern "C" {
|
27
|
-
#endif
|
28
|
-
|
29
25
|
/** Return compression algorithm based metadata value */
|
30
26
|
grpc_slice grpc_compression_algorithm_slice(
|
31
27
|
grpc_compression_algorithm algorithm);
|
@@ -53,8 +49,4 @@ grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
|
53
49
|
grpc_stream_compression_algorithm grpc_stream_compression_algorithm_from_slice(
|
54
50
|
grpc_slice str);
|
55
51
|
|
56
|
-
#ifdef __cplusplus
|
57
|
-
}
|
58
|
-
#endif
|
59
|
-
|
60
52
|
#endif /* GRPC_CORE_LIB_COMPRESSION_ALGORITHM_METADATA_H */
|
@@ -29,8 +29,8 @@
|
|
29
29
|
|
30
30
|
#define OUTPUT_BLOCK_SIZE 1024
|
31
31
|
|
32
|
-
static int zlib_body(
|
33
|
-
grpc_slice_buffer*
|
32
|
+
static int zlib_body(z_stream* zs, grpc_slice_buffer* input,
|
33
|
+
grpc_slice_buffer* output,
|
34
34
|
int (*flate)(z_stream* zs, int flush)) {
|
35
35
|
int r;
|
36
36
|
int flush;
|
@@ -74,7 +74,7 @@ static int zlib_body(grpc_exec_ctx* exec_ctx, z_stream* zs,
|
|
74
74
|
return 1;
|
75
75
|
|
76
76
|
error:
|
77
|
-
grpc_slice_unref_internal(
|
77
|
+
grpc_slice_unref_internal(outbuf);
|
78
78
|
return 0;
|
79
79
|
}
|
80
80
|
|
@@ -84,8 +84,8 @@ static void* zalloc_gpr(void* opaque, unsigned int items, unsigned int size) {
|
|
84
84
|
|
85
85
|
static void zfree_gpr(void* opaque, void* address) { gpr_free(address); }
|
86
86
|
|
87
|
-
static int zlib_compress(
|
88
|
-
|
87
|
+
static int zlib_compress(grpc_slice_buffer* input, grpc_slice_buffer* output,
|
88
|
+
int gzip) {
|
89
89
|
z_stream zs;
|
90
90
|
int r;
|
91
91
|
size_t i;
|
@@ -97,11 +97,10 @@ static int zlib_compress(grpc_exec_ctx* exec_ctx, grpc_slice_buffer* input,
|
|
97
97
|
r = deflateInit2(&zs, Z_DEFAULT_COMPRESSION, Z_DEFLATED, 15 | (gzip ? 16 : 0),
|
98
98
|
8, Z_DEFAULT_STRATEGY);
|
99
99
|
GPR_ASSERT(r == Z_OK);
|
100
|
-
r = zlib_body(
|
101
|
-
output->length < input->length;
|
100
|
+
r = zlib_body(&zs, input, output, deflate) && output->length < input->length;
|
102
101
|
if (!r) {
|
103
102
|
for (i = count_before; i < output->count; i++) {
|
104
|
-
grpc_slice_unref_internal(
|
103
|
+
grpc_slice_unref_internal(output->slices[i]);
|
105
104
|
}
|
106
105
|
output->count = count_before;
|
107
106
|
output->length = length_before;
|
@@ -110,8 +109,8 @@ static int zlib_compress(grpc_exec_ctx* exec_ctx, grpc_slice_buffer* input,
|
|
110
109
|
return r;
|
111
110
|
}
|
112
111
|
|
113
|
-
static int zlib_decompress(
|
114
|
-
|
112
|
+
static int zlib_decompress(grpc_slice_buffer* input, grpc_slice_buffer* output,
|
113
|
+
int gzip) {
|
115
114
|
z_stream zs;
|
116
115
|
int r;
|
117
116
|
size_t i;
|
@@ -122,10 +121,10 @@ static int zlib_decompress(grpc_exec_ctx* exec_ctx, grpc_slice_buffer* input,
|
|
122
121
|
zs.zfree = zfree_gpr;
|
123
122
|
r = inflateInit2(&zs, 15 | (gzip ? 16 : 0));
|
124
123
|
GPR_ASSERT(r == Z_OK);
|
125
|
-
r = zlib_body(
|
124
|
+
r = zlib_body(&zs, input, output, inflate);
|
126
125
|
if (!r) {
|
127
126
|
for (i = count_before; i < output->count; i++) {
|
128
|
-
grpc_slice_unref_internal(
|
127
|
+
grpc_slice_unref_internal(output->slices[i]);
|
129
128
|
}
|
130
129
|
output->count = count_before;
|
131
130
|
output->length = length_before;
|
@@ -142,8 +141,7 @@ static int copy(grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
|
142
141
|
return 1;
|
143
142
|
}
|
144
143
|
|
145
|
-
static int compress_inner(
|
146
|
-
grpc_compression_algorithm algorithm,
|
144
|
+
static int compress_inner(grpc_compression_algorithm algorithm,
|
147
145
|
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
148
146
|
switch (algorithm) {
|
149
147
|
case GRPC_COMPRESS_NONE:
|
@@ -151,9 +149,9 @@ static int compress_inner(grpc_exec_ctx* exec_ctx,
|
|
151
149
|
rely on that here */
|
152
150
|
return 0;
|
153
151
|
case GRPC_COMPRESS_DEFLATE:
|
154
|
-
return zlib_compress(
|
152
|
+
return zlib_compress(input, output, 0);
|
155
153
|
case GRPC_COMPRESS_GZIP:
|
156
|
-
return zlib_compress(
|
154
|
+
return zlib_compress(input, output, 1);
|
157
155
|
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
158
156
|
break;
|
159
157
|
}
|
@@ -161,26 +159,24 @@ static int compress_inner(grpc_exec_ctx* exec_ctx,
|
|
161
159
|
return 0;
|
162
160
|
}
|
163
161
|
|
164
|
-
int grpc_msg_compress(
|
165
|
-
grpc_compression_algorithm algorithm,
|
162
|
+
int grpc_msg_compress(grpc_compression_algorithm algorithm,
|
166
163
|
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
167
|
-
if (!compress_inner(
|
164
|
+
if (!compress_inner(algorithm, input, output)) {
|
168
165
|
copy(input, output);
|
169
166
|
return 0;
|
170
167
|
}
|
171
168
|
return 1;
|
172
169
|
}
|
173
170
|
|
174
|
-
int grpc_msg_decompress(
|
175
|
-
grpc_compression_algorithm algorithm,
|
171
|
+
int grpc_msg_decompress(grpc_compression_algorithm algorithm,
|
176
172
|
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
177
173
|
switch (algorithm) {
|
178
174
|
case GRPC_COMPRESS_NONE:
|
179
175
|
return copy(input, output);
|
180
176
|
case GRPC_COMPRESS_DEFLATE:
|
181
|
-
return zlib_decompress(
|
177
|
+
return zlib_decompress(input, output, 0);
|
182
178
|
case GRPC_COMPRESS_GZIP:
|
183
|
-
return zlib_decompress(
|
179
|
+
return zlib_decompress(input, output, 1);
|
184
180
|
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
185
181
|
break;
|
186
182
|
}
|
@@ -22,26 +22,16 @@
|
|
22
22
|
#include <grpc/compression.h>
|
23
23
|
#include <grpc/slice_buffer.h>
|
24
24
|
|
25
|
-
#ifdef __cplusplus
|
26
|
-
extern "C" {
|
27
|
-
#endif
|
28
|
-
|
29
25
|
/* compress 'input' to 'output' using 'algorithm'.
|
30
26
|
On success, appends compressed slices to output and returns 1.
|
31
27
|
On failure, appends uncompressed slices to output and returns 0. */
|
32
|
-
int grpc_msg_compress(
|
33
|
-
grpc_compression_algorithm algorithm,
|
28
|
+
int grpc_msg_compress(grpc_compression_algorithm algorithm,
|
34
29
|
grpc_slice_buffer* input, grpc_slice_buffer* output);
|
35
30
|
|
36
31
|
/* decompress 'input' to 'output' using 'algorithm'.
|
37
32
|
On success, appends slices to output and returns 1.
|
38
33
|
On failure, output is unchanged, and returns 0. */
|
39
|
-
int grpc_msg_decompress(
|
40
|
-
grpc_compression_algorithm algorithm,
|
34
|
+
int grpc_msg_decompress(grpc_compression_algorithm algorithm,
|
41
35
|
grpc_slice_buffer* input, grpc_slice_buffer* output);
|
42
36
|
|
43
|
-
#ifdef __cplusplus
|
44
|
-
}
|
45
|
-
#endif
|
46
|
-
|
47
37
|
#endif /* GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H */
|
@@ -21,7 +21,7 @@
|
|
21
21
|
#include "src/core/lib/compression/stream_compression.h"
|
22
22
|
#include "src/core/lib/compression/stream_compression_gzip.h"
|
23
23
|
|
24
|
-
extern
|
24
|
+
extern const grpc_stream_compression_vtable
|
25
25
|
grpc_stream_compression_identity_vtable;
|
26
26
|
|
27
27
|
bool grpc_stream_compress(grpc_stream_compression_context* ctx,
|
@@ -26,10 +26,6 @@
|
|
26
26
|
|
27
27
|
#include "src/core/lib/transport/static_metadata.h"
|
28
28
|
|
29
|
-
#ifdef __cplusplus
|
30
|
-
extern "C" {
|
31
|
-
#endif
|
32
|
-
|
33
29
|
typedef struct grpc_stream_compression_vtable grpc_stream_compression_vtable;
|
34
30
|
|
35
31
|
/* Stream compression/decompression context */
|
@@ -115,8 +111,4 @@ void grpc_stream_compression_context_destroy(
|
|
115
111
|
int grpc_stream_compression_method_parse(
|
116
112
|
grpc_slice value, bool is_compress, grpc_stream_compression_method* method);
|
117
113
|
|
118
|
-
#ifdef __cplusplus
|
119
|
-
}
|
120
|
-
#endif
|
121
|
-
|
122
114
|
#endif
|