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
@@ -27,15 +27,10 @@
|
|
27
27
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
28
28
|
#include "src/core/lib/transport/metadata.h"
|
29
29
|
|
30
|
-
#ifdef __cplusplus
|
31
|
-
extern "C" {
|
32
|
-
#endif
|
33
|
-
|
34
30
|
typedef struct grpc_chttp2_hpack_parser grpc_chttp2_hpack_parser;
|
35
31
|
|
36
32
|
typedef grpc_error* (*grpc_chttp2_hpack_parser_state)(
|
37
|
-
|
38
|
-
const uint8_t* end);
|
33
|
+
grpc_chttp2_hpack_parser* p, const uint8_t* beg, const uint8_t* end);
|
39
34
|
|
40
35
|
typedef struct {
|
41
36
|
bool copied;
|
@@ -51,7 +46,7 @@ typedef struct {
|
|
51
46
|
|
52
47
|
struct grpc_chttp2_hpack_parser {
|
53
48
|
/* user specified callback for each header output */
|
54
|
-
void (*on_header)(
|
49
|
+
void (*on_header)(void* user_data, grpc_mdelem md);
|
55
50
|
void* on_header_user_data;
|
56
51
|
|
57
52
|
grpc_error* last_error;
|
@@ -96,27 +91,19 @@ struct grpc_chttp2_hpack_parser {
|
|
96
91
|
grpc_chttp2_hptbl table;
|
97
92
|
};
|
98
93
|
|
99
|
-
void grpc_chttp2_hpack_parser_init(
|
100
|
-
|
101
|
-
void grpc_chttp2_hpack_parser_destroy(grpc_exec_ctx* exec_ctx,
|
102
|
-
grpc_chttp2_hpack_parser* p);
|
94
|
+
void grpc_chttp2_hpack_parser_init(grpc_chttp2_hpack_parser* p);
|
95
|
+
void grpc_chttp2_hpack_parser_destroy(grpc_chttp2_hpack_parser* p);
|
103
96
|
|
104
97
|
void grpc_chttp2_hpack_parser_set_has_priority(grpc_chttp2_hpack_parser* p);
|
105
98
|
|
106
|
-
grpc_error* grpc_chttp2_hpack_parser_parse(
|
107
|
-
grpc_chttp2_hpack_parser* p,
|
99
|
+
grpc_error* grpc_chttp2_hpack_parser_parse(grpc_chttp2_hpack_parser* p,
|
108
100
|
grpc_slice slice);
|
109
101
|
|
110
102
|
/* wraps grpc_chttp2_hpack_parser_parse to provide a frame level parser for
|
111
103
|
the transport */
|
112
|
-
grpc_error* grpc_chttp2_header_parser_parse(
|
113
|
-
void* hpack_parser,
|
104
|
+
grpc_error* grpc_chttp2_header_parser_parse(void* hpack_parser,
|
114
105
|
grpc_chttp2_transport* t,
|
115
106
|
grpc_chttp2_stream* s,
|
116
107
|
grpc_slice slice, int is_last);
|
117
108
|
|
118
|
-
#ifdef __cplusplus
|
119
|
-
}
|
120
|
-
#endif
|
121
|
-
|
122
109
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H */
|
@@ -26,7 +26,7 @@
|
|
26
26
|
#include <grpc/support/string_util.h>
|
27
27
|
|
28
28
|
#include "src/core/lib/debug/trace.h"
|
29
|
-
#include "src/core/lib/
|
29
|
+
#include "src/core/lib/gpr/murmur_hash.h"
|
30
30
|
|
31
31
|
extern grpc_core::TraceFlag grpc_http_trace;
|
32
32
|
|
@@ -165,7 +165,7 @@ static uint32_t entries_for_bytes(uint32_t bytes) {
|
|
165
165
|
GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD;
|
166
166
|
}
|
167
167
|
|
168
|
-
void grpc_chttp2_hptbl_init(
|
168
|
+
void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl* tbl) {
|
169
169
|
size_t i;
|
170
170
|
|
171
171
|
memset(tbl, 0, sizeof(*tbl));
|
@@ -177,22 +177,19 @@ void grpc_chttp2_hptbl_init(grpc_exec_ctx* exec_ctx, grpc_chttp2_hptbl* tbl) {
|
|
177
177
|
memset(tbl->ents, 0, sizeof(*tbl->ents) * tbl->cap_entries);
|
178
178
|
for (i = 1; i <= GRPC_CHTTP2_LAST_STATIC_ENTRY; i++) {
|
179
179
|
tbl->static_ents[i - 1] = grpc_mdelem_from_slices(
|
180
|
-
exec_ctx,
|
181
180
|
grpc_slice_intern(grpc_slice_from_static_string(static_table[i].key)),
|
182
181
|
grpc_slice_intern(
|
183
182
|
grpc_slice_from_static_string(static_table[i].value)));
|
184
183
|
}
|
185
184
|
}
|
186
185
|
|
187
|
-
void grpc_chttp2_hptbl_destroy(
|
188
|
-
grpc_chttp2_hptbl* tbl) {
|
186
|
+
void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl* tbl) {
|
189
187
|
size_t i;
|
190
188
|
for (i = 0; i < GRPC_CHTTP2_LAST_STATIC_ENTRY; i++) {
|
191
|
-
GRPC_MDELEM_UNREF(
|
189
|
+
GRPC_MDELEM_UNREF(tbl->static_ents[i]);
|
192
190
|
}
|
193
191
|
for (i = 0; i < tbl->num_ents; i++) {
|
194
|
-
GRPC_MDELEM_UNREF(
|
195
|
-
tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]);
|
192
|
+
GRPC_MDELEM_UNREF(tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]);
|
196
193
|
}
|
197
194
|
gpr_free(tbl->ents);
|
198
195
|
}
|
@@ -215,7 +212,7 @@ grpc_mdelem grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl* tbl,
|
|
215
212
|
}
|
216
213
|
|
217
214
|
/* Evict one element from the table */
|
218
|
-
static void evict1(
|
215
|
+
static void evict1(grpc_chttp2_hptbl* tbl) {
|
219
216
|
grpc_mdelem first_ent = tbl->ents[tbl->first_ent];
|
220
217
|
size_t elem_bytes = GRPC_SLICE_LENGTH(GRPC_MDKEY(first_ent)) +
|
221
218
|
GRPC_SLICE_LENGTH(GRPC_MDVALUE(first_ent)) +
|
@@ -224,7 +221,7 @@ static void evict1(grpc_exec_ctx* exec_ctx, grpc_chttp2_hptbl* tbl) {
|
|
224
221
|
tbl->mem_used -= (uint32_t)elem_bytes;
|
225
222
|
tbl->first_ent = ((tbl->first_ent + 1) % tbl->cap_entries);
|
226
223
|
tbl->num_ents--;
|
227
|
-
GRPC_MDELEM_UNREF(
|
224
|
+
GRPC_MDELEM_UNREF(first_ent);
|
228
225
|
}
|
229
226
|
|
230
227
|
static void rebuild_ents(grpc_chttp2_hptbl* tbl, uint32_t new_cap) {
|
@@ -240,8 +237,7 @@ static void rebuild_ents(grpc_chttp2_hptbl* tbl, uint32_t new_cap) {
|
|
240
237
|
tbl->first_ent = 0;
|
241
238
|
}
|
242
239
|
|
243
|
-
void grpc_chttp2_hptbl_set_max_bytes(
|
244
|
-
grpc_chttp2_hptbl* tbl,
|
240
|
+
void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl* tbl,
|
245
241
|
uint32_t max_bytes) {
|
246
242
|
if (tbl->max_bytes == max_bytes) {
|
247
243
|
return;
|
@@ -250,13 +246,12 @@ void grpc_chttp2_hptbl_set_max_bytes(grpc_exec_ctx* exec_ctx,
|
|
250
246
|
gpr_log(GPR_DEBUG, "Update hpack parser max size to %d", max_bytes);
|
251
247
|
}
|
252
248
|
while (tbl->mem_used > max_bytes) {
|
253
|
-
evict1(
|
249
|
+
evict1(tbl);
|
254
250
|
}
|
255
251
|
tbl->max_bytes = max_bytes;
|
256
252
|
}
|
257
253
|
|
258
|
-
grpc_error* grpc_chttp2_hptbl_set_current_table_size(
|
259
|
-
grpc_chttp2_hptbl* tbl,
|
254
|
+
grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl* tbl,
|
260
255
|
uint32_t bytes) {
|
261
256
|
if (tbl->current_table_bytes == bytes) {
|
262
257
|
return GRPC_ERROR_NONE;
|
@@ -274,7 +269,7 @@ grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_exec_ctx* exec_ctx,
|
|
274
269
|
gpr_log(GPR_DEBUG, "Update hpack parser table size to %d", bytes);
|
275
270
|
}
|
276
271
|
while (tbl->mem_used > bytes) {
|
277
|
-
evict1(
|
272
|
+
evict1(tbl);
|
278
273
|
}
|
279
274
|
tbl->current_table_bytes = bytes;
|
280
275
|
tbl->max_entries = entries_for_bytes(bytes);
|
@@ -289,8 +284,7 @@ grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_exec_ctx* exec_ctx,
|
|
289
284
|
return GRPC_ERROR_NONE;
|
290
285
|
}
|
291
286
|
|
292
|
-
grpc_error* grpc_chttp2_hptbl_add(
|
293
|
-
grpc_chttp2_hptbl* tbl, grpc_mdelem md) {
|
287
|
+
grpc_error* grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl, grpc_mdelem md) {
|
294
288
|
/* determine how many bytes of buffer this entry represents */
|
295
289
|
size_t elem_bytes = GRPC_SLICE_LENGTH(GRPC_MDKEY(md)) +
|
296
290
|
GRPC_SLICE_LENGTH(GRPC_MDVALUE(md)) +
|
@@ -320,14 +314,14 @@ grpc_error* grpc_chttp2_hptbl_add(grpc_exec_ctx* exec_ctx,
|
|
320
314
|
* empty table.
|
321
315
|
*/
|
322
316
|
while (tbl->num_ents) {
|
323
|
-
evict1(
|
317
|
+
evict1(tbl);
|
324
318
|
}
|
325
319
|
return GRPC_ERROR_NONE;
|
326
320
|
}
|
327
321
|
|
328
322
|
/* evict entries to ensure no overflow */
|
329
323
|
while (elem_bytes > (size_t)tbl->current_table_bytes - tbl->mem_used) {
|
330
|
-
evict1(
|
324
|
+
evict1(tbl);
|
331
325
|
}
|
332
326
|
|
333
327
|
/* copy the finalized entry in */
|
@@ -24,10 +24,6 @@
|
|
24
24
|
#include "src/core/lib/iomgr/error.h"
|
25
25
|
#include "src/core/lib/transport/metadata.h"
|
26
26
|
|
27
|
-
#ifdef __cplusplus
|
28
|
-
extern "C" {
|
29
|
-
#endif
|
30
|
-
|
31
27
|
/* HPACK header table */
|
32
28
|
|
33
29
|
/* last index in the static table */
|
@@ -73,21 +69,18 @@ typedef struct {
|
|
73
69
|
} grpc_chttp2_hptbl;
|
74
70
|
|
75
71
|
/* initialize a hpack table */
|
76
|
-
void grpc_chttp2_hptbl_init(
|
77
|
-
void grpc_chttp2_hptbl_destroy(
|
78
|
-
void grpc_chttp2_hptbl_set_max_bytes(
|
79
|
-
grpc_chttp2_hptbl* tbl,
|
72
|
+
void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl* tbl);
|
73
|
+
void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl* tbl);
|
74
|
+
void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl* tbl,
|
80
75
|
uint32_t max_bytes);
|
81
|
-
grpc_error* grpc_chttp2_hptbl_set_current_table_size(
|
82
|
-
grpc_chttp2_hptbl* tbl,
|
76
|
+
grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl* tbl,
|
83
77
|
uint32_t bytes);
|
84
78
|
|
85
79
|
/* lookup a table entry based on its hpack index */
|
86
80
|
grpc_mdelem grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl* tbl,
|
87
81
|
uint32_t index);
|
88
82
|
/* add a table entry to the index */
|
89
|
-
grpc_error* grpc_chttp2_hptbl_add(
|
90
|
-
grpc_chttp2_hptbl* tbl,
|
83
|
+
grpc_error* grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl,
|
91
84
|
grpc_mdelem md) GRPC_MUST_USE_RESULT;
|
92
85
|
/* Find a key/value pair in the table... returns the index in the table of the
|
93
86
|
most similar entry, or 0 if the value was not found */
|
@@ -98,8 +91,4 @@ typedef struct {
|
|
98
91
|
grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
|
99
92
|
const grpc_chttp2_hptbl* tbl, grpc_mdelem md);
|
100
93
|
|
101
|
-
#ifdef __cplusplus
|
102
|
-
}
|
103
|
-
#endif
|
104
|
-
|
105
94
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_TABLE_H */
|
@@ -36,9 +36,6 @@ typedef enum {
|
|
36
36
|
|
37
37
|
#define GRPC_CHTTP2_NUM_SETTINGS 7
|
38
38
|
|
39
|
-
#ifdef __cplusplus
|
40
|
-
extern "C" {
|
41
|
-
#endif
|
42
39
|
extern const uint16_t grpc_setting_id_to_wire_id[];
|
43
40
|
|
44
41
|
bool grpc_wire_id_to_setting_id(uint32_t wire_id, grpc_chttp2_setting_id* out);
|
@@ -60,8 +57,4 @@ typedef struct {
|
|
60
57
|
extern const grpc_chttp2_setting_parameters
|
61
58
|
grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS];
|
62
59
|
|
63
|
-
#ifdef __cplusplus
|
64
|
-
}
|
65
|
-
#endif
|
66
|
-
|
67
60
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H */
|
@@ -19,10 +19,6 @@
|
|
19
19
|
#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
|
20
20
|
#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
|
21
21
|
|
22
|
-
#ifdef __cplusplus
|
23
|
-
extern "C" {
|
24
|
-
#endif
|
25
|
-
|
26
22
|
/* HPACK static huffman table */
|
27
23
|
|
28
24
|
#define GRPC_CHTTP2_NUM_HUFFSYMS 257
|
@@ -34,8 +30,4 @@ typedef struct {
|
|
34
30
|
|
35
31
|
extern const grpc_chttp2_huffsym grpc_chttp2_huffsyms[GRPC_CHTTP2_NUM_HUFFSYMS];
|
36
32
|
|
37
|
-
#ifdef __cplusplus
|
38
|
-
}
|
39
|
-
#endif
|
40
|
-
|
41
33
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H */
|
@@ -33,33 +33,31 @@ void grpc_chttp2_incoming_metadata_buffer_init(
|
|
33
33
|
}
|
34
34
|
|
35
35
|
void grpc_chttp2_incoming_metadata_buffer_destroy(
|
36
|
-
|
37
|
-
grpc_metadata_batch_destroy(
|
36
|
+
grpc_chttp2_incoming_metadata_buffer* buffer) {
|
37
|
+
grpc_metadata_batch_destroy(&buffer->batch);
|
38
38
|
}
|
39
39
|
|
40
40
|
grpc_error* grpc_chttp2_incoming_metadata_buffer_add(
|
41
|
-
|
42
|
-
grpc_mdelem elem) {
|
41
|
+
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_mdelem elem) {
|
43
42
|
buffer->size += GRPC_MDELEM_LENGTH(elem);
|
44
43
|
return grpc_metadata_batch_add_tail(
|
45
|
-
|
44
|
+
&buffer->batch,
|
46
45
|
(grpc_linked_mdelem*)gpr_arena_alloc(buffer->arena,
|
47
46
|
sizeof(grpc_linked_mdelem)),
|
48
47
|
elem);
|
49
48
|
}
|
50
49
|
|
51
50
|
grpc_error* grpc_chttp2_incoming_metadata_buffer_replace_or_add(
|
52
|
-
|
53
|
-
grpc_mdelem elem) {
|
51
|
+
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_mdelem elem) {
|
54
52
|
for (grpc_linked_mdelem* l = buffer->batch.list.head; l != nullptr;
|
55
53
|
l = l->next) {
|
56
54
|
if (grpc_slice_eq(GRPC_MDKEY(l->md), GRPC_MDKEY(elem))) {
|
57
|
-
GRPC_MDELEM_UNREF(
|
55
|
+
GRPC_MDELEM_UNREF(l->md);
|
58
56
|
l->md = elem;
|
59
57
|
return GRPC_ERROR_NONE;
|
60
58
|
}
|
61
59
|
}
|
62
|
-
return grpc_chttp2_incoming_metadata_buffer_add(
|
60
|
+
return grpc_chttp2_incoming_metadata_buffer_add(buffer, elem);
|
63
61
|
}
|
64
62
|
|
65
63
|
void grpc_chttp2_incoming_metadata_buffer_set_deadline(
|
@@ -68,8 +66,7 @@ void grpc_chttp2_incoming_metadata_buffer_set_deadline(
|
|
68
66
|
}
|
69
67
|
|
70
68
|
void grpc_chttp2_incoming_metadata_buffer_publish(
|
71
|
-
|
72
|
-
grpc_metadata_batch* batch) {
|
69
|
+
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_metadata_batch* batch) {
|
73
70
|
*batch = buffer->batch;
|
74
71
|
grpc_metadata_batch_init(&buffer->batch);
|
75
72
|
}
|
@@ -21,10 +21,6 @@
|
|
21
21
|
|
22
22
|
#include "src/core/lib/transport/transport.h"
|
23
23
|
|
24
|
-
#ifdef __cplusplus
|
25
|
-
extern "C" {
|
26
|
-
#endif
|
27
|
-
|
28
24
|
typedef struct {
|
29
25
|
gpr_arena* arena;
|
30
26
|
grpc_metadata_batch batch;
|
@@ -35,22 +31,17 @@ typedef struct {
|
|
35
31
|
void grpc_chttp2_incoming_metadata_buffer_init(
|
36
32
|
grpc_chttp2_incoming_metadata_buffer* buffer, gpr_arena* arena);
|
37
33
|
void grpc_chttp2_incoming_metadata_buffer_destroy(
|
38
|
-
|
34
|
+
grpc_chttp2_incoming_metadata_buffer* buffer);
|
39
35
|
void grpc_chttp2_incoming_metadata_buffer_publish(
|
40
|
-
|
41
|
-
grpc_metadata_batch* batch);
|
36
|
+
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_metadata_batch* batch);
|
42
37
|
|
43
38
|
grpc_error* grpc_chttp2_incoming_metadata_buffer_add(
|
44
|
-
|
39
|
+
grpc_chttp2_incoming_metadata_buffer* buffer,
|
45
40
|
grpc_mdelem elem) GRPC_MUST_USE_RESULT;
|
46
41
|
grpc_error* grpc_chttp2_incoming_metadata_buffer_replace_or_add(
|
47
|
-
|
42
|
+
grpc_chttp2_incoming_metadata_buffer* buffer,
|
48
43
|
grpc_mdelem elem) GRPC_MUST_USE_RESULT;
|
49
44
|
void grpc_chttp2_incoming_metadata_buffer_set_deadline(
|
50
45
|
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_millis deadline);
|
51
46
|
|
52
|
-
#ifdef __cplusplus
|
53
|
-
}
|
54
|
-
#endif
|
55
|
-
|
56
47
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INCOMING_METADATA_H */
|
@@ -35,17 +35,13 @@
|
|
35
35
|
#include "src/core/ext/transport/chttp2/transport/incoming_metadata.h"
|
36
36
|
#include "src/core/ext/transport/chttp2/transport/stream_map.h"
|
37
37
|
#include "src/core/lib/compression/stream_compression.h"
|
38
|
+
#include "src/core/lib/gpr++/manual_constructor.h"
|
38
39
|
#include "src/core/lib/iomgr/combiner.h"
|
39
40
|
#include "src/core/lib/iomgr/endpoint.h"
|
40
41
|
#include "src/core/lib/iomgr/timer.h"
|
41
|
-
#include "src/core/lib/support/manual_constructor.h"
|
42
42
|
#include "src/core/lib/transport/connectivity_state.h"
|
43
43
|
#include "src/core/lib/transport/transport_impl.h"
|
44
44
|
|
45
|
-
#ifdef __cplusplus
|
46
|
-
extern "C" {
|
47
|
-
#endif
|
48
|
-
|
49
45
|
/* streams are kept in various linked lists depending on what things need to
|
50
46
|
happen to them... this enum labels each list */
|
51
47
|
typedef enum {
|
@@ -286,8 +282,8 @@ struct grpc_chttp2_transport {
|
|
286
282
|
|
287
283
|
struct {
|
288
284
|
/* accept stream callback */
|
289
|
-
void (*accept_stream)(
|
290
|
-
|
285
|
+
void (*accept_stream)(void* user_data, grpc_transport* transport,
|
286
|
+
const void* server_data);
|
291
287
|
void* accept_stream_user_data;
|
292
288
|
|
293
289
|
/** connectivity tracking */
|
@@ -355,7 +351,10 @@ struct grpc_chttp2_transport {
|
|
355
351
|
/** parser for goaway frames */
|
356
352
|
grpc_chttp2_goaway_parser goaway_parser;
|
357
353
|
|
358
|
-
grpc_core::
|
354
|
+
grpc_core::PolymorphicManualConstructor<
|
355
|
+
grpc_core::chttp2::TransportFlowControlBase,
|
356
|
+
grpc_core::chttp2::TransportFlowControl,
|
357
|
+
grpc_core::chttp2::TransportFlowControlDisabled>
|
359
358
|
flow_control;
|
360
359
|
/** initial window change. This is tracked as we parse settings frames from
|
361
360
|
* the remote peer. If there is a positive delta, then we will make all
|
@@ -375,9 +374,8 @@ struct grpc_chttp2_transport {
|
|
375
374
|
/* active parser */
|
376
375
|
void* parser_data;
|
377
376
|
grpc_chttp2_stream* incoming_stream;
|
378
|
-
grpc_error* (*parser)(
|
379
|
-
|
380
|
-
grpc_slice slice, int is_last);
|
377
|
+
grpc_error* (*parser)(void* parser_user_data, grpc_chttp2_transport* t,
|
378
|
+
grpc_chttp2_stream* s, grpc_slice slice, int is_last);
|
381
379
|
|
382
380
|
grpc_chttp2_write_cb* write_cb_pool;
|
383
381
|
|
@@ -530,7 +528,10 @@ struct grpc_chttp2_stream {
|
|
530
528
|
bool sent_initial_metadata;
|
531
529
|
bool sent_trailing_metadata;
|
532
530
|
|
533
|
-
grpc_core::
|
531
|
+
grpc_core::PolymorphicManualConstructor<
|
532
|
+
grpc_core::chttp2::StreamFlowControlBase,
|
533
|
+
grpc_core::chttp2::StreamFlowControl,
|
534
|
+
grpc_core::chttp2::StreamFlowControlDisabled>
|
534
535
|
flow_control;
|
535
536
|
|
536
537
|
grpc_slice_buffer flow_controlled_buffer;
|
@@ -575,8 +576,7 @@ struct grpc_chttp2_stream {
|
|
575
576
|
|
576
577
|
The actual call chain is documented in the implementation of this function.
|
577
578
|
*/
|
578
|
-
void grpc_chttp2_initiate_write(
|
579
|
-
grpc_chttp2_transport* t,
|
579
|
+
void grpc_chttp2_initiate_write(grpc_chttp2_transport* t,
|
580
580
|
grpc_chttp2_initiate_write_reason reason);
|
581
581
|
|
582
582
|
typedef struct {
|
@@ -589,14 +589,12 @@ typedef struct {
|
|
589
589
|
} grpc_chttp2_begin_write_result;
|
590
590
|
|
591
591
|
grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
|
592
|
-
|
593
|
-
void grpc_chttp2_end_write(
|
594
|
-
grpc_error* error);
|
592
|
+
grpc_chttp2_transport* t);
|
593
|
+
void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error* error);
|
595
594
|
|
596
595
|
/** Process one slice of incoming data; return 1 if the connection is still
|
597
596
|
viable after reading, or 0 if the connection should be torn down */
|
598
|
-
grpc_error* grpc_chttp2_perform_read(
|
599
|
-
grpc_chttp2_transport* t,
|
597
|
+
grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
600
598
|
grpc_slice slice);
|
601
599
|
|
602
600
|
bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport* t,
|
@@ -644,27 +642,23 @@ bool grpc_chttp2_list_remove_stalled_by_stream(grpc_chttp2_transport* t,
|
|
644
642
|
|
645
643
|
// Takes in a flow control action and performs all the needed operations.
|
646
644
|
void grpc_chttp2_act_on_flowctl_action(
|
647
|
-
|
645
|
+
const grpc_core::chttp2::FlowControlAction& action,
|
648
646
|
grpc_chttp2_transport* t, grpc_chttp2_stream* s);
|
649
647
|
|
650
648
|
/********* End of Flow Control ***************/
|
651
649
|
|
652
650
|
grpc_chttp2_stream* grpc_chttp2_parsing_lookup_stream(grpc_chttp2_transport* t,
|
653
651
|
uint32_t id);
|
654
|
-
grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(
|
655
|
-
grpc_chttp2_transport* t,
|
652
|
+
grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
|
656
653
|
uint32_t id);
|
657
654
|
|
658
|
-
void grpc_chttp2_add_incoming_goaway(
|
659
|
-
grpc_chttp2_transport* t,
|
655
|
+
void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
660
656
|
uint32_t goaway_error,
|
661
657
|
grpc_slice goaway_text);
|
662
658
|
|
663
|
-
void grpc_chttp2_parsing_become_skip_parser(
|
664
|
-
grpc_chttp2_transport* t);
|
659
|
+
void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t);
|
665
660
|
|
666
|
-
void grpc_chttp2_complete_closure_step(
|
667
|
-
grpc_chttp2_transport* t,
|
661
|
+
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
668
662
|
grpc_chttp2_stream* s,
|
669
663
|
grpc_closure** pclosure,
|
670
664
|
grpc_error* error, const char* desc);
|
@@ -685,94 +679,80 @@ void grpc_chttp2_complete_closure_step(grpc_exec_ctx* exec_ctx,
|
|
685
679
|
else \
|
686
680
|
stmt
|
687
681
|
|
688
|
-
void grpc_chttp2_fake_status(
|
682
|
+
void grpc_chttp2_fake_status(grpc_chttp2_transport* t,
|
689
683
|
grpc_chttp2_stream* stream, grpc_error* error);
|
690
|
-
void grpc_chttp2_mark_stream_closed(
|
691
|
-
grpc_chttp2_transport* t,
|
684
|
+
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
692
685
|
grpc_chttp2_stream* s, int close_reads,
|
693
686
|
int close_writes, grpc_error* error);
|
694
|
-
void grpc_chttp2_start_writing(
|
695
|
-
grpc_chttp2_transport* t);
|
687
|
+
void grpc_chttp2_start_writing(grpc_chttp2_transport* t);
|
696
688
|
|
697
689
|
#ifndef NDEBUG
|
698
690
|
#define GRPC_CHTTP2_STREAM_REF(stream, reason) \
|
699
691
|
grpc_chttp2_stream_ref(stream, reason)
|
700
|
-
#define GRPC_CHTTP2_STREAM_UNREF(
|
701
|
-
grpc_chttp2_stream_unref(
|
692
|
+
#define GRPC_CHTTP2_STREAM_UNREF(stream, reason) \
|
693
|
+
grpc_chttp2_stream_unref(stream, reason)
|
702
694
|
void grpc_chttp2_stream_ref(grpc_chttp2_stream* s, const char* reason);
|
703
|
-
void grpc_chttp2_stream_unref(
|
704
|
-
const char* reason);
|
695
|
+
void grpc_chttp2_stream_unref(grpc_chttp2_stream* s, const char* reason);
|
705
696
|
#else
|
706
697
|
#define GRPC_CHTTP2_STREAM_REF(stream, reason) grpc_chttp2_stream_ref(stream)
|
707
|
-
#define GRPC_CHTTP2_STREAM_UNREF(
|
708
|
-
grpc_chttp2_stream_unref(
|
698
|
+
#define GRPC_CHTTP2_STREAM_UNREF(stream, reason) \
|
699
|
+
grpc_chttp2_stream_unref(stream)
|
709
700
|
void grpc_chttp2_stream_ref(grpc_chttp2_stream* s);
|
710
|
-
void grpc_chttp2_stream_unref(
|
701
|
+
void grpc_chttp2_stream_unref(grpc_chttp2_stream* s);
|
711
702
|
#endif
|
712
703
|
|
713
704
|
#ifndef NDEBUG
|
714
705
|
#define GRPC_CHTTP2_REF_TRANSPORT(t, r) \
|
715
706
|
grpc_chttp2_ref_transport(t, r, __FILE__, __LINE__)
|
716
|
-
#define GRPC_CHTTP2_UNREF_TRANSPORT(
|
717
|
-
grpc_chttp2_unref_transport(
|
718
|
-
void grpc_chttp2_unref_transport(
|
719
|
-
grpc_chttp2_transport* t, const char* reason,
|
707
|
+
#define GRPC_CHTTP2_UNREF_TRANSPORT(t, r) \
|
708
|
+
grpc_chttp2_unref_transport(t, r, __FILE__, __LINE__)
|
709
|
+
void grpc_chttp2_unref_transport(grpc_chttp2_transport* t, const char* reason,
|
720
710
|
const char* file, int line);
|
721
711
|
void grpc_chttp2_ref_transport(grpc_chttp2_transport* t, const char* reason,
|
722
712
|
const char* file, int line);
|
723
713
|
#else
|
724
714
|
#define GRPC_CHTTP2_REF_TRANSPORT(t, r) grpc_chttp2_ref_transport(t)
|
725
|
-
#define GRPC_CHTTP2_UNREF_TRANSPORT(
|
726
|
-
void grpc_chttp2_unref_transport(
|
727
|
-
grpc_chttp2_transport* t);
|
715
|
+
#define GRPC_CHTTP2_UNREF_TRANSPORT(t, r) grpc_chttp2_unref_transport(t)
|
716
|
+
void grpc_chttp2_unref_transport(grpc_chttp2_transport* t);
|
728
717
|
void grpc_chttp2_ref_transport(grpc_chttp2_transport* t);
|
729
718
|
#endif
|
730
719
|
|
731
720
|
grpc_chttp2_incoming_byte_stream* grpc_chttp2_incoming_byte_stream_create(
|
732
|
-
|
733
|
-
uint32_t
|
721
|
+
grpc_chttp2_transport* t, grpc_chttp2_stream* s, uint32_t frame_size,
|
722
|
+
uint32_t flags);
|
734
723
|
grpc_error* grpc_chttp2_incoming_byte_stream_push(
|
735
|
-
|
736
|
-
grpc_slice
|
724
|
+
grpc_chttp2_incoming_byte_stream* bs, grpc_slice slice,
|
725
|
+
grpc_slice* slice_out);
|
737
726
|
grpc_error* grpc_chttp2_incoming_byte_stream_finished(
|
738
|
-
|
739
|
-
|
727
|
+
grpc_chttp2_incoming_byte_stream* bs, grpc_error* error,
|
728
|
+
bool reset_on_error);
|
740
729
|
void grpc_chttp2_incoming_byte_stream_notify(
|
741
|
-
|
742
|
-
grpc_error* error);
|
730
|
+
grpc_chttp2_incoming_byte_stream* bs, grpc_error* error);
|
743
731
|
|
744
|
-
void grpc_chttp2_ack_ping(
|
745
|
-
uint64_t id);
|
732
|
+
void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id);
|
746
733
|
|
747
734
|
/** Add a new ping strike to ping_recv_state.ping_strikes. If
|
748
735
|
ping_recv_state.ping_strikes > ping_policy.max_ping_strikes, it sends GOAWAY
|
749
736
|
with error code ENHANCE_YOUR_CALM and additional debug data resembling
|
750
737
|
"too_many_pings" followed by immediately closing the connection. */
|
751
|
-
void grpc_chttp2_add_ping_strike(
|
752
|
-
grpc_chttp2_transport* t);
|
738
|
+
void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t);
|
753
739
|
|
754
740
|
/** add a ref to the stream and add it to the writable list;
|
755
741
|
ref will be dropped in writing.c */
|
756
|
-
void grpc_chttp2_mark_stream_writable(
|
757
|
-
grpc_chttp2_transport* t,
|
742
|
+
void grpc_chttp2_mark_stream_writable(grpc_chttp2_transport* t,
|
758
743
|
grpc_chttp2_stream* s);
|
759
744
|
|
760
|
-
void grpc_chttp2_cancel_stream(
|
761
|
-
grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
745
|
+
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
762
746
|
grpc_error* due_to_error);
|
763
747
|
|
764
|
-
void grpc_chttp2_maybe_complete_recv_initial_metadata(
|
765
|
-
grpc_chttp2_transport* t,
|
748
|
+
void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_chttp2_transport* t,
|
766
749
|
grpc_chttp2_stream* s);
|
767
|
-
void grpc_chttp2_maybe_complete_recv_message(
|
768
|
-
grpc_chttp2_transport* t,
|
750
|
+
void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
|
769
751
|
grpc_chttp2_stream* s);
|
770
|
-
void grpc_chttp2_maybe_complete_recv_trailing_metadata(
|
771
|
-
grpc_chttp2_transport* t,
|
752
|
+
void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
772
753
|
grpc_chttp2_stream* s);
|
773
754
|
|
774
|
-
void grpc_chttp2_fail_pending_writes(
|
775
|
-
grpc_chttp2_transport* t,
|
755
|
+
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
776
756
|
grpc_chttp2_stream* s, grpc_error* error);
|
777
757
|
|
778
758
|
/** Set the default keepalive configurations, must only be called at
|
@@ -780,8 +760,4 @@ void grpc_chttp2_fail_pending_writes(grpc_exec_ctx* exec_ctx,
|
|
780
760
|
void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
781
761
|
bool is_client);
|
782
762
|
|
783
|
-
#ifdef __cplusplus
|
784
|
-
}
|
785
|
-
#endif
|
786
|
-
|
787
763
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INTERNAL_H */
|