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
@@ -28,8 +28,8 @@
|
|
28
28
|
static void* targets_info_copy(void* p) {
|
29
29
|
return grpc_slice_hash_table_ref((grpc_slice_hash_table*)p);
|
30
30
|
}
|
31
|
-
static void targets_info_destroy(
|
32
|
-
grpc_slice_hash_table_unref(
|
31
|
+
static void targets_info_destroy(void* p) {
|
32
|
+
grpc_slice_hash_table_unref((grpc_slice_hash_table*)p);
|
33
33
|
}
|
34
34
|
static int targets_info_cmp(void* a, void* b) {
|
35
35
|
return grpc_slice_hash_table_cmp((const grpc_slice_hash_table*)a,
|
@@ -21,10 +21,6 @@
|
|
21
21
|
|
22
22
|
#include "src/core/lib/slice/slice_hash_table.h"
|
23
23
|
|
24
|
-
#ifdef __cplusplus
|
25
|
-
extern "C" {
|
26
|
-
#endif
|
27
|
-
|
28
24
|
/** Return a channel argument containing \a targets_info. */
|
29
25
|
grpc_arg grpc_lb_targets_info_create_channel_arg(
|
30
26
|
grpc_slice_hash_table* targets_info);
|
@@ -33,8 +29,4 @@ grpc_arg grpc_lb_targets_info_create_channel_arg(
|
|
33
29
|
grpc_slice_hash_table* grpc_lb_targets_info_find_in_args(
|
34
30
|
const grpc_channel_args* args);
|
35
31
|
|
36
|
-
#ifdef __cplusplus
|
37
|
-
}
|
38
|
-
#endif
|
39
|
-
|
40
32
|
#endif /* GRPC_CORE_LIB_SECURITY_TRANSPORT_LB_TARGETS_INFO_H */
|
@@ -28,12 +28,12 @@
|
|
28
28
|
#include <grpc/support/log.h>
|
29
29
|
#include <grpc/support/sync.h>
|
30
30
|
#include "src/core/lib/debug/trace.h"
|
31
|
+
#include "src/core/lib/gpr/string.h"
|
31
32
|
#include "src/core/lib/profiling/timers.h"
|
32
33
|
#include "src/core/lib/security/transport/secure_endpoint.h"
|
33
34
|
#include "src/core/lib/security/transport/tsi_error.h"
|
34
35
|
#include "src/core/lib/slice/slice_internal.h"
|
35
36
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
36
|
-
#include "src/core/lib/support/string.h"
|
37
37
|
#include "src/core/tsi/transport_security_grpc.h"
|
38
38
|
|
39
39
|
#define STAGING_BUFFER_SIZE 8192
|
@@ -63,28 +63,27 @@ typedef struct {
|
|
63
63
|
|
64
64
|
grpc_core::TraceFlag grpc_trace_secure_endpoint(false, "secure_endpoint");
|
65
65
|
|
66
|
-
static void destroy(
|
66
|
+
static void destroy(secure_endpoint* secure_ep) {
|
67
67
|
secure_endpoint* ep = secure_ep;
|
68
|
-
grpc_endpoint_destroy(
|
68
|
+
grpc_endpoint_destroy(ep->wrapped_ep);
|
69
69
|
tsi_frame_protector_destroy(ep->protector);
|
70
|
-
tsi_zero_copy_grpc_protector_destroy(
|
71
|
-
grpc_slice_buffer_destroy_internal(
|
72
|
-
grpc_slice_unref_internal(
|
73
|
-
grpc_slice_unref_internal(
|
74
|
-
grpc_slice_buffer_destroy_internal(
|
75
|
-
grpc_slice_buffer_destroy_internal(
|
70
|
+
tsi_zero_copy_grpc_protector_destroy(ep->zero_copy_protector);
|
71
|
+
grpc_slice_buffer_destroy_internal(&ep->leftover_bytes);
|
72
|
+
grpc_slice_unref_internal(ep->read_staging_buffer);
|
73
|
+
grpc_slice_unref_internal(ep->write_staging_buffer);
|
74
|
+
grpc_slice_buffer_destroy_internal(&ep->output_buffer);
|
75
|
+
grpc_slice_buffer_destroy_internal(&ep->source_buffer);
|
76
76
|
gpr_mu_destroy(&ep->protector_mu);
|
77
77
|
gpr_free(ep);
|
78
78
|
}
|
79
79
|
|
80
80
|
#ifndef NDEBUG
|
81
|
-
#define SECURE_ENDPOINT_UNREF(
|
82
|
-
secure_endpoint_unref((
|
81
|
+
#define SECURE_ENDPOINT_UNREF(ep, reason) \
|
82
|
+
secure_endpoint_unref((ep), (reason), __FILE__, __LINE__)
|
83
83
|
#define SECURE_ENDPOINT_REF(ep, reason) \
|
84
84
|
secure_endpoint_ref((ep), (reason), __FILE__, __LINE__)
|
85
|
-
static void secure_endpoint_unref(
|
86
|
-
const char*
|
87
|
-
int line) {
|
85
|
+
static void secure_endpoint_unref(secure_endpoint* ep, const char* reason,
|
86
|
+
const char* file, int line) {
|
88
87
|
if (grpc_trace_secure_endpoint.enabled()) {
|
89
88
|
gpr_atm val = gpr_atm_no_barrier_load(&ep->ref.count);
|
90
89
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
@@ -92,7 +91,7 @@ static void secure_endpoint_unref(grpc_exec_ctx* exec_ctx, secure_endpoint* ep,
|
|
92
91
|
val - 1);
|
93
92
|
}
|
94
93
|
if (gpr_unref(&ep->ref)) {
|
95
|
-
destroy(
|
94
|
+
destroy(ep);
|
96
95
|
}
|
97
96
|
}
|
98
97
|
|
@@ -107,13 +106,11 @@ static void secure_endpoint_ref(secure_endpoint* ep, const char* reason,
|
|
107
106
|
gpr_ref(&ep->ref);
|
108
107
|
}
|
109
108
|
#else
|
110
|
-
#define SECURE_ENDPOINT_UNREF(
|
111
|
-
secure_endpoint_unref((exec_ctx), (ep))
|
109
|
+
#define SECURE_ENDPOINT_UNREF(ep, reason) secure_endpoint_unref((ep))
|
112
110
|
#define SECURE_ENDPOINT_REF(ep, reason) secure_endpoint_ref((ep))
|
113
|
-
static void secure_endpoint_unref(
|
114
|
-
secure_endpoint* ep) {
|
111
|
+
static void secure_endpoint_unref(secure_endpoint* ep) {
|
115
112
|
if (gpr_unref(&ep->ref)) {
|
116
|
-
destroy(
|
113
|
+
destroy(ep);
|
117
114
|
}
|
118
115
|
}
|
119
116
|
|
@@ -128,8 +125,7 @@ static void flush_read_staging_buffer(secure_endpoint* ep, uint8_t** cur,
|
|
128
125
|
*end = GRPC_SLICE_END_PTR(ep->read_staging_buffer);
|
129
126
|
}
|
130
127
|
|
131
|
-
static void call_read_cb(
|
132
|
-
grpc_error* error) {
|
128
|
+
static void call_read_cb(secure_endpoint* ep, grpc_error* error) {
|
133
129
|
if (grpc_trace_secure_endpoint.enabled()) {
|
134
130
|
size_t i;
|
135
131
|
for (i = 0; i < ep->read_buffer->count; i++) {
|
@@ -140,12 +136,11 @@ static void call_read_cb(grpc_exec_ctx* exec_ctx, secure_endpoint* ep,
|
|
140
136
|
}
|
141
137
|
}
|
142
138
|
ep->read_buffer = nullptr;
|
143
|
-
GRPC_CLOSURE_SCHED(
|
144
|
-
SECURE_ENDPOINT_UNREF(
|
139
|
+
GRPC_CLOSURE_SCHED(ep->read_cb, error);
|
140
|
+
SECURE_ENDPOINT_UNREF(ep, "read");
|
145
141
|
}
|
146
142
|
|
147
|
-
static void on_read(
|
148
|
-
grpc_error* error) {
|
143
|
+
static void on_read(void* user_data, grpc_error* error) {
|
149
144
|
unsigned i;
|
150
145
|
uint8_t keep_looping = 0;
|
151
146
|
tsi_result result = TSI_OK;
|
@@ -154,17 +149,16 @@ static void on_read(grpc_exec_ctx* exec_ctx, void* user_data,
|
|
154
149
|
uint8_t* end = GRPC_SLICE_END_PTR(ep->read_staging_buffer);
|
155
150
|
|
156
151
|
if (error != GRPC_ERROR_NONE) {
|
157
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
158
|
-
call_read_cb(
|
159
|
-
|
160
|
-
"Secure read failed", &error, 1));
|
152
|
+
grpc_slice_buffer_reset_and_unref_internal(ep->read_buffer);
|
153
|
+
call_read_cb(ep, GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
154
|
+
"Secure read failed", &error, 1));
|
161
155
|
return;
|
162
156
|
}
|
163
157
|
|
164
158
|
if (ep->zero_copy_protector != nullptr) {
|
165
159
|
// Use zero-copy grpc protector to unprotect.
|
166
160
|
result = tsi_zero_copy_grpc_protector_unprotect(
|
167
|
-
|
161
|
+
ep->zero_copy_protector, &ep->source_buffer, ep->read_buffer);
|
168
162
|
} else {
|
169
163
|
// Use frame protector to unprotect.
|
170
164
|
/* TODO(yangg) check error, maybe bail out early */
|
@@ -217,37 +211,35 @@ static void on_read(grpc_exec_ctx* exec_ctx, void* user_data,
|
|
217
211
|
|
218
212
|
/* TODO(yangg) experiment with moving this block after read_cb to see if it
|
219
213
|
helps latency */
|
220
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
214
|
+
grpc_slice_buffer_reset_and_unref_internal(&ep->source_buffer);
|
221
215
|
|
222
216
|
if (result != TSI_OK) {
|
223
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
217
|
+
grpc_slice_buffer_reset_and_unref_internal(ep->read_buffer);
|
224
218
|
call_read_cb(
|
225
|
-
|
226
|
-
|
227
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Unwrap failed"), result));
|
219
|
+
ep, grpc_set_tsi_error_result(
|
220
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Unwrap failed"), result));
|
228
221
|
return;
|
229
222
|
}
|
230
223
|
|
231
|
-
call_read_cb(
|
224
|
+
call_read_cb(ep, GRPC_ERROR_NONE);
|
232
225
|
}
|
233
226
|
|
234
|
-
static void endpoint_read(
|
235
|
-
|
227
|
+
static void endpoint_read(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
|
228
|
+
grpc_closure* cb) {
|
236
229
|
secure_endpoint* ep = (secure_endpoint*)secure_ep;
|
237
230
|
ep->read_cb = cb;
|
238
231
|
ep->read_buffer = slices;
|
239
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
232
|
+
grpc_slice_buffer_reset_and_unref_internal(ep->read_buffer);
|
240
233
|
|
241
234
|
SECURE_ENDPOINT_REF(ep, "read");
|
242
235
|
if (ep->leftover_bytes.count) {
|
243
236
|
grpc_slice_buffer_swap(&ep->leftover_bytes, &ep->source_buffer);
|
244
237
|
GPR_ASSERT(ep->leftover_bytes.count == 0);
|
245
|
-
on_read(
|
238
|
+
on_read(ep, GRPC_ERROR_NONE);
|
246
239
|
return;
|
247
240
|
}
|
248
241
|
|
249
|
-
grpc_endpoint_read(
|
250
|
-
&ep->on_read);
|
242
|
+
grpc_endpoint_read(ep->wrapped_ep, &ep->source_buffer, &ep->on_read);
|
251
243
|
}
|
252
244
|
|
253
245
|
static void flush_write_staging_buffer(secure_endpoint* ep, uint8_t** cur,
|
@@ -258,8 +250,8 @@ static void flush_write_staging_buffer(secure_endpoint* ep, uint8_t** cur,
|
|
258
250
|
*end = GRPC_SLICE_END_PTR(ep->write_staging_buffer);
|
259
251
|
}
|
260
252
|
|
261
|
-
static void endpoint_write(
|
262
|
-
|
253
|
+
static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
|
254
|
+
grpc_closure* cb) {
|
263
255
|
GPR_TIMER_BEGIN("secure_endpoint.endpoint_write", 0);
|
264
256
|
|
265
257
|
unsigned i;
|
@@ -268,7 +260,7 @@ static void endpoint_write(grpc_exec_ctx* exec_ctx, grpc_endpoint* secure_ep,
|
|
268
260
|
uint8_t* cur = GRPC_SLICE_START_PTR(ep->write_staging_buffer);
|
269
261
|
uint8_t* end = GRPC_SLICE_END_PTR(ep->write_staging_buffer);
|
270
262
|
|
271
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
263
|
+
grpc_slice_buffer_reset_and_unref_internal(&ep->output_buffer);
|
272
264
|
|
273
265
|
if (grpc_trace_secure_endpoint.enabled()) {
|
274
266
|
for (i = 0; i < slices->count; i++) {
|
@@ -281,8 +273,8 @@ static void endpoint_write(grpc_exec_ctx* exec_ctx, grpc_endpoint* secure_ep,
|
|
281
273
|
|
282
274
|
if (ep->zero_copy_protector != nullptr) {
|
283
275
|
// Use zero-copy grpc protector to protect.
|
284
|
-
result = tsi_zero_copy_grpc_protector_protect(
|
285
|
-
|
276
|
+
result = tsi_zero_copy_grpc_protector_protect(ep->zero_copy_protector,
|
277
|
+
slices, &ep->output_buffer);
|
286
278
|
} else {
|
287
279
|
// Use frame protector to protect.
|
288
280
|
for (i = 0; i < slices->count; i++) {
|
@@ -340,50 +332,44 @@ static void endpoint_write(grpc_exec_ctx* exec_ctx, grpc_endpoint* secure_ep,
|
|
340
332
|
|
341
333
|
if (result != TSI_OK) {
|
342
334
|
/* TODO(yangg) do different things according to the error type? */
|
343
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
335
|
+
grpc_slice_buffer_reset_and_unref_internal(&ep->output_buffer);
|
344
336
|
GRPC_CLOSURE_SCHED(
|
345
|
-
|
346
|
-
|
347
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Wrap failed"), result));
|
337
|
+
cb, grpc_set_tsi_error_result(
|
338
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Wrap failed"), result));
|
348
339
|
GPR_TIMER_END("secure_endpoint.endpoint_write", 0);
|
349
340
|
return;
|
350
341
|
}
|
351
342
|
|
352
|
-
grpc_endpoint_write(
|
343
|
+
grpc_endpoint_write(ep->wrapped_ep, &ep->output_buffer, cb);
|
353
344
|
GPR_TIMER_END("secure_endpoint.endpoint_write", 0);
|
354
345
|
}
|
355
346
|
|
356
|
-
static void endpoint_shutdown(
|
357
|
-
grpc_error* why) {
|
347
|
+
static void endpoint_shutdown(grpc_endpoint* secure_ep, grpc_error* why) {
|
358
348
|
secure_endpoint* ep = (secure_endpoint*)secure_ep;
|
359
|
-
grpc_endpoint_shutdown(
|
349
|
+
grpc_endpoint_shutdown(ep->wrapped_ep, why);
|
360
350
|
}
|
361
351
|
|
362
|
-
static void endpoint_destroy(
|
363
|
-
grpc_endpoint* secure_ep) {
|
352
|
+
static void endpoint_destroy(grpc_endpoint* secure_ep) {
|
364
353
|
secure_endpoint* ep = (secure_endpoint*)secure_ep;
|
365
|
-
SECURE_ENDPOINT_UNREF(
|
354
|
+
SECURE_ENDPOINT_UNREF(ep, "destroy");
|
366
355
|
}
|
367
356
|
|
368
|
-
static void endpoint_add_to_pollset(
|
369
|
-
grpc_endpoint* secure_ep,
|
357
|
+
static void endpoint_add_to_pollset(grpc_endpoint* secure_ep,
|
370
358
|
grpc_pollset* pollset) {
|
371
359
|
secure_endpoint* ep = (secure_endpoint*)secure_ep;
|
372
|
-
grpc_endpoint_add_to_pollset(
|
360
|
+
grpc_endpoint_add_to_pollset(ep->wrapped_ep, pollset);
|
373
361
|
}
|
374
362
|
|
375
|
-
static void endpoint_add_to_pollset_set(
|
376
|
-
grpc_endpoint* secure_ep,
|
363
|
+
static void endpoint_add_to_pollset_set(grpc_endpoint* secure_ep,
|
377
364
|
grpc_pollset_set* pollset_set) {
|
378
365
|
secure_endpoint* ep = (secure_endpoint*)secure_ep;
|
379
|
-
grpc_endpoint_add_to_pollset_set(
|
366
|
+
grpc_endpoint_add_to_pollset_set(ep->wrapped_ep, pollset_set);
|
380
367
|
}
|
381
368
|
|
382
|
-
static void endpoint_delete_from_pollset_set(
|
383
|
-
grpc_endpoint* secure_ep,
|
369
|
+
static void endpoint_delete_from_pollset_set(grpc_endpoint* secure_ep,
|
384
370
|
grpc_pollset_set* pollset_set) {
|
385
371
|
secure_endpoint* ep = (secure_endpoint*)secure_ep;
|
386
|
-
grpc_endpoint_delete_from_pollset_set(
|
372
|
+
grpc_endpoint_delete_from_pollset_set(ep->wrapped_ep, pollset_set);
|
387
373
|
}
|
388
374
|
|
389
375
|
static char* endpoint_get_peer(grpc_endpoint* secure_ep) {
|
@@ -22,10 +22,6 @@
|
|
22
22
|
#include <grpc/slice.h>
|
23
23
|
#include "src/core/lib/iomgr/endpoint.h"
|
24
24
|
|
25
|
-
#ifdef __cplusplus
|
26
|
-
extern "C" {
|
27
|
-
#endif
|
28
|
-
|
29
25
|
struct tsi_frame_protector;
|
30
26
|
struct tsi_zero_copy_grpc_protector;
|
31
27
|
|
@@ -40,8 +36,4 @@ grpc_endpoint* grpc_secure_endpoint_create(
|
|
40
36
|
grpc_endpoint* to_wrap, grpc_slice* leftover_slices,
|
41
37
|
size_t leftover_nslices);
|
42
38
|
|
43
|
-
#ifdef __cplusplus
|
44
|
-
}
|
45
|
-
#endif
|
46
|
-
|
47
39
|
#endif /* GRPC_CORE_LIB_SECURITY_TRANSPORT_SECURE_ENDPOINT_H */
|
@@ -30,6 +30,8 @@
|
|
30
30
|
#include "src/core/ext/transport/chttp2/alpn/alpn.h"
|
31
31
|
#include "src/core/lib/channel/channel_args.h"
|
32
32
|
#include "src/core/lib/channel/handshaker.h"
|
33
|
+
#include "src/core/lib/gpr/env.h"
|
34
|
+
#include "src/core/lib/gpr/string.h"
|
33
35
|
#include "src/core/lib/iomgr/load_file.h"
|
34
36
|
#include "src/core/lib/security/context/security_context.h"
|
35
37
|
#include "src/core/lib/security/credentials/credentials.h"
|
@@ -38,8 +40,6 @@
|
|
38
40
|
#include "src/core/lib/security/transport/lb_targets_info.h"
|
39
41
|
#include "src/core/lib/security/transport/secure_endpoint.h"
|
40
42
|
#include "src/core/lib/security/transport/security_handshaker.h"
|
41
|
-
#include "src/core/lib/support/env.h"
|
42
|
-
#include "src/core/lib/support/string.h"
|
43
43
|
#include "src/core/tsi/fake_transport_security.h"
|
44
44
|
#include "src/core/tsi/ssl_transport_security.h"
|
45
45
|
#include "src/core/tsi/transport_security_adapter.h"
|
@@ -105,33 +105,32 @@ const tsi_peer_property* tsi_peer_get_property_by_name(const tsi_peer* peer,
|
|
105
105
|
}
|
106
106
|
|
107
107
|
void grpc_channel_security_connector_add_handshakers(
|
108
|
-
|
108
|
+
grpc_channel_security_connector* connector,
|
109
109
|
grpc_handshake_manager* handshake_mgr) {
|
110
110
|
if (connector != nullptr) {
|
111
|
-
connector->add_handshakers(
|
111
|
+
connector->add_handshakers(connector, handshake_mgr);
|
112
112
|
}
|
113
113
|
}
|
114
114
|
|
115
115
|
void grpc_server_security_connector_add_handshakers(
|
116
|
-
|
116
|
+
grpc_server_security_connector* connector,
|
117
117
|
grpc_handshake_manager* handshake_mgr) {
|
118
118
|
if (connector != nullptr) {
|
119
|
-
connector->add_handshakers(
|
119
|
+
connector->add_handshakers(connector, handshake_mgr);
|
120
120
|
}
|
121
121
|
}
|
122
122
|
|
123
|
-
void grpc_security_connector_check_peer(
|
124
|
-
grpc_security_connector* sc,
|
123
|
+
void grpc_security_connector_check_peer(grpc_security_connector* sc,
|
125
124
|
tsi_peer peer,
|
126
125
|
grpc_auth_context** auth_context,
|
127
126
|
grpc_closure* on_peer_checked) {
|
128
127
|
if (sc == nullptr) {
|
129
|
-
GRPC_CLOSURE_SCHED(
|
128
|
+
GRPC_CLOSURE_SCHED(on_peer_checked,
|
130
129
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
131
130
|
"cannot check peer -- no security connector"));
|
132
131
|
tsi_peer_destruct(&peer);
|
133
132
|
} else {
|
134
|
-
sc->vtable->check_peer(
|
133
|
+
sc->vtable->check_peer(sc, peer, auth_context, on_peer_checked);
|
135
134
|
}
|
136
135
|
}
|
137
136
|
|
@@ -169,26 +168,26 @@ int grpc_server_security_connector_cmp(grpc_server_security_connector* sc1,
|
|
169
168
|
}
|
170
169
|
|
171
170
|
bool grpc_channel_security_connector_check_call_host(
|
172
|
-
|
173
|
-
|
174
|
-
|
171
|
+
grpc_channel_security_connector* sc, const char* host,
|
172
|
+
grpc_auth_context* auth_context, grpc_closure* on_call_host_checked,
|
173
|
+
grpc_error** error) {
|
175
174
|
if (sc == nullptr || sc->check_call_host == nullptr) {
|
176
175
|
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
177
176
|
"cannot check call host -- no security connector");
|
178
177
|
return true;
|
179
178
|
}
|
180
|
-
return sc->check_call_host(
|
181
|
-
|
179
|
+
return sc->check_call_host(sc, host, auth_context, on_call_host_checked,
|
180
|
+
error);
|
182
181
|
}
|
183
182
|
|
184
183
|
void grpc_channel_security_connector_cancel_check_call_host(
|
185
|
-
|
186
|
-
|
184
|
+
grpc_channel_security_connector* sc, grpc_closure* on_call_host_checked,
|
185
|
+
grpc_error* error) {
|
187
186
|
if (sc == nullptr || sc->cancel_check_call_host == nullptr) {
|
188
187
|
GRPC_ERROR_UNREF(error);
|
189
188
|
return;
|
190
189
|
}
|
191
|
-
sc->cancel_check_call_host(
|
190
|
+
sc->cancel_check_call_host(sc, on_call_host_checked, error);
|
192
191
|
}
|
193
192
|
|
194
193
|
#ifndef NDEBUG
|
@@ -205,15 +204,14 @@ grpc_security_connector* grpc_security_connector_ref(
|
|
205
204
|
#else
|
206
205
|
grpc_security_connector* grpc_security_connector_ref(
|
207
206
|
grpc_security_connector* sc) {
|
208
|
-
if (sc ==
|
207
|
+
if (sc == nullptr) return nullptr;
|
209
208
|
#endif
|
210
209
|
gpr_ref(&sc->refcount);
|
211
210
|
return sc;
|
212
211
|
}
|
213
212
|
|
214
213
|
#ifndef NDEBUG
|
215
|
-
void grpc_security_connector_unref(
|
216
|
-
grpc_security_connector* sc,
|
214
|
+
void grpc_security_connector_unref(grpc_security_connector* sc,
|
217
215
|
const char* file, int line,
|
218
216
|
const char* reason) {
|
219
217
|
if (sc == nullptr) return;
|
@@ -224,15 +222,14 @@ void grpc_security_connector_unref(grpc_exec_ctx* exec_ctx,
|
|
224
222
|
val, val - 1, reason);
|
225
223
|
}
|
226
224
|
#else
|
227
|
-
void grpc_security_connector_unref(
|
228
|
-
|
229
|
-
if (sc == NULL) return;
|
225
|
+
void grpc_security_connector_unref(grpc_security_connector* sc) {
|
226
|
+
if (sc == nullptr) return;
|
230
227
|
#endif
|
231
|
-
if (gpr_unref(&sc->refcount)) sc->vtable->destroy(
|
228
|
+
if (gpr_unref(&sc->refcount)) sc->vtable->destroy(sc);
|
232
229
|
}
|
233
230
|
|
234
|
-
static void connector_arg_destroy(
|
235
|
-
GRPC_SECURITY_CONNECTOR_UNREF(
|
231
|
+
static void connector_arg_destroy(void* p) {
|
232
|
+
GRPC_SECURITY_CONNECTOR_UNREF((grpc_security_connector*)p,
|
236
233
|
"connector_arg_destroy");
|
237
234
|
}
|
238
235
|
|
@@ -309,20 +306,16 @@ typedef struct {
|
|
309
306
|
bool is_lb_channel;
|
310
307
|
} grpc_fake_channel_security_connector;
|
311
308
|
|
312
|
-
static void fake_channel_destroy(
|
313
|
-
grpc_security_connector* sc) {
|
309
|
+
static void fake_channel_destroy(grpc_security_connector* sc) {
|
314
310
|
grpc_fake_channel_security_connector* c =
|
315
311
|
(grpc_fake_channel_security_connector*)sc;
|
316
|
-
grpc_call_credentials_unref(
|
312
|
+
grpc_call_credentials_unref(c->base.request_metadata_creds);
|
317
313
|
gpr_free(c->target);
|
318
314
|
gpr_free(c->expected_targets);
|
319
315
|
gpr_free(c);
|
320
316
|
}
|
321
317
|
|
322
|
-
static void fake_server_destroy(
|
323
|
-
grpc_security_connector* sc) {
|
324
|
-
gpr_free(sc);
|
325
|
-
}
|
318
|
+
static void fake_server_destroy(grpc_security_connector* sc) { gpr_free(sc); }
|
326
319
|
|
327
320
|
static bool fake_check_target(const char* target_type, const char* target,
|
328
321
|
const char* set_str) {
|
@@ -386,8 +379,7 @@ done:
|
|
386
379
|
if (!success) abort();
|
387
380
|
}
|
388
381
|
|
389
|
-
static void fake_check_peer(
|
390
|
-
grpc_security_connector* sc, tsi_peer peer,
|
382
|
+
static void fake_check_peer(grpc_security_connector* sc, tsi_peer peer,
|
391
383
|
grpc_auth_context** auth_context,
|
392
384
|
grpc_closure* on_peer_checked) {
|
393
385
|
const char* prop_name;
|
@@ -419,25 +411,23 @@ static void fake_check_peer(grpc_exec_ctx* exec_ctx,
|
|
419
411
|
*auth_context, GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME,
|
420
412
|
GRPC_FAKE_TRANSPORT_SECURITY_TYPE);
|
421
413
|
end:
|
422
|
-
GRPC_CLOSURE_SCHED(
|
414
|
+
GRPC_CLOSURE_SCHED(on_peer_checked, error);
|
423
415
|
tsi_peer_destruct(&peer);
|
424
416
|
}
|
425
417
|
|
426
|
-
static void fake_channel_check_peer(
|
427
|
-
grpc_security_connector* sc, tsi_peer peer,
|
418
|
+
static void fake_channel_check_peer(grpc_security_connector* sc, tsi_peer peer,
|
428
419
|
grpc_auth_context** auth_context,
|
429
420
|
grpc_closure* on_peer_checked) {
|
430
|
-
fake_check_peer(
|
421
|
+
fake_check_peer(sc, peer, auth_context, on_peer_checked);
|
431
422
|
grpc_fake_channel_security_connector* c =
|
432
423
|
(grpc_fake_channel_security_connector*)sc;
|
433
424
|
fake_secure_name_check(c->target, c->expected_targets, c->is_lb_channel);
|
434
425
|
}
|
435
426
|
|
436
|
-
static void fake_server_check_peer(
|
437
|
-
grpc_security_connector* sc, tsi_peer peer,
|
427
|
+
static void fake_server_check_peer(grpc_security_connector* sc, tsi_peer peer,
|
438
428
|
grpc_auth_context** auth_context,
|
439
429
|
grpc_closure* on_peer_checked) {
|
440
|
-
fake_check_peer(
|
430
|
+
fake_check_peer(sc, peer, auth_context, on_peer_checked);
|
441
431
|
}
|
442
432
|
|
443
433
|
static int fake_channel_cmp(grpc_security_connector* sc1,
|
@@ -466,8 +456,7 @@ static int fake_server_cmp(grpc_security_connector* sc1,
|
|
466
456
|
(grpc_server_security_connector*)sc2);
|
467
457
|
}
|
468
458
|
|
469
|
-
static bool fake_channel_check_call_host(
|
470
|
-
grpc_channel_security_connector* sc,
|
459
|
+
static bool fake_channel_check_call_host(grpc_channel_security_connector* sc,
|
471
460
|
const char* host,
|
472
461
|
grpc_auth_context* auth_context,
|
473
462
|
grpc_closure* on_call_host_checked,
|
@@ -476,29 +465,26 @@ static bool fake_channel_check_call_host(grpc_exec_ctx* exec_ctx,
|
|
476
465
|
}
|
477
466
|
|
478
467
|
static void fake_channel_cancel_check_call_host(
|
479
|
-
|
480
|
-
|
468
|
+
grpc_channel_security_connector* sc, grpc_closure* on_call_host_checked,
|
469
|
+
grpc_error* error) {
|
481
470
|
GRPC_ERROR_UNREF(error);
|
482
471
|
}
|
483
472
|
|
484
473
|
static void fake_channel_add_handshakers(
|
485
|
-
|
474
|
+
grpc_channel_security_connector* sc,
|
486
475
|
grpc_handshake_manager* handshake_mgr) {
|
487
476
|
grpc_handshake_manager_add(
|
488
477
|
handshake_mgr,
|
489
478
|
grpc_security_handshaker_create(
|
490
|
-
|
491
|
-
&sc->base));
|
479
|
+
tsi_create_fake_handshaker(true /* is_client */), &sc->base));
|
492
480
|
}
|
493
481
|
|
494
|
-
static void fake_server_add_handshakers(
|
495
|
-
grpc_server_security_connector* sc,
|
482
|
+
static void fake_server_add_handshakers(grpc_server_security_connector* sc,
|
496
483
|
grpc_handshake_manager* handshake_mgr) {
|
497
484
|
grpc_handshake_manager_add(
|
498
485
|
handshake_mgr,
|
499
486
|
grpc_security_handshaker_create(
|
500
|
-
|
501
|
-
&sc->base));
|
487
|
+
tsi_create_fake_handshaker(false /* is_client */), &sc->base));
|
502
488
|
}
|
503
489
|
|
504
490
|
static grpc_security_connector_vtable fake_channel_vtable = {
|
@@ -565,12 +551,11 @@ static bool server_connector_has_cert_config_fetcher(
|
|
565
551
|
return server_creds->certificate_config_fetcher.cb != nullptr;
|
566
552
|
}
|
567
553
|
|
568
|
-
static void ssl_channel_destroy(
|
569
|
-
grpc_security_connector* sc) {
|
554
|
+
static void ssl_channel_destroy(grpc_security_connector* sc) {
|
570
555
|
grpc_ssl_channel_security_connector* c =
|
571
556
|
(grpc_ssl_channel_security_connector*)sc;
|
572
|
-
grpc_channel_credentials_unref(
|
573
|
-
grpc_call_credentials_unref(
|
557
|
+
grpc_channel_credentials_unref(c->base.channel_creds);
|
558
|
+
grpc_call_credentials_unref(c->base.request_metadata_creds);
|
574
559
|
tsi_ssl_client_handshaker_factory_unref(c->client_handshaker_factory);
|
575
560
|
c->client_handshaker_factory = nullptr;
|
576
561
|
if (c->target_name != nullptr) gpr_free(c->target_name);
|
@@ -578,18 +563,16 @@ static void ssl_channel_destroy(grpc_exec_ctx* exec_ctx,
|
|
578
563
|
gpr_free(sc);
|
579
564
|
}
|
580
565
|
|
581
|
-
static void ssl_server_destroy(
|
582
|
-
grpc_security_connector* sc) {
|
566
|
+
static void ssl_server_destroy(grpc_security_connector* sc) {
|
583
567
|
grpc_ssl_server_security_connector* c =
|
584
568
|
(grpc_ssl_server_security_connector*)sc;
|
585
|
-
grpc_server_credentials_unref(
|
569
|
+
grpc_server_credentials_unref(c->base.server_creds);
|
586
570
|
tsi_ssl_server_handshaker_factory_unref(c->server_handshaker_factory);
|
587
571
|
c->server_handshaker_factory = nullptr;
|
588
572
|
gpr_free(sc);
|
589
573
|
}
|
590
574
|
|
591
|
-
static void ssl_channel_add_handshakers(
|
592
|
-
grpc_channel_security_connector* sc,
|
575
|
+
static void ssl_channel_add_handshakers(grpc_channel_security_connector* sc,
|
593
576
|
grpc_handshake_manager* handshake_mgr) {
|
594
577
|
grpc_ssl_channel_security_connector* c =
|
595
578
|
(grpc_ssl_channel_security_connector*)sc;
|
@@ -607,9 +590,8 @@ static void ssl_channel_add_handshakers(grpc_exec_ctx* exec_ctx,
|
|
607
590
|
}
|
608
591
|
// Create handshakers.
|
609
592
|
grpc_handshake_manager_add(
|
610
|
-
handshake_mgr,
|
611
|
-
|
612
|
-
exec_ctx, tsi_create_adapter_handshaker(tsi_hs), &sc->base));
|
593
|
+
handshake_mgr, grpc_security_handshaker_create(
|
594
|
+
tsi_create_adapter_handshaker(tsi_hs), &sc->base));
|
613
595
|
}
|
614
596
|
|
615
597
|
static const char** fill_alpn_protocol_strings(size_t* num_alpn_protocols) {
|
@@ -701,8 +683,7 @@ static bool try_fetch_ssl_server_credentials(
|
|
701
683
|
return status;
|
702
684
|
}
|
703
685
|
|
704
|
-
static void ssl_server_add_handshakers(
|
705
|
-
grpc_server_security_connector* sc,
|
686
|
+
static void ssl_server_add_handshakers(grpc_server_security_connector* sc,
|
706
687
|
grpc_handshake_manager* handshake_mgr) {
|
707
688
|
grpc_ssl_server_security_connector* c =
|
708
689
|
(grpc_ssl_server_security_connector*)sc;
|
@@ -718,9 +699,8 @@ static void ssl_server_add_handshakers(grpc_exec_ctx* exec_ctx,
|
|
718
699
|
}
|
719
700
|
// Create handshakers.
|
720
701
|
grpc_handshake_manager_add(
|
721
|
-
handshake_mgr,
|
722
|
-
|
723
|
-
exec_ctx, tsi_create_adapter_handshaker(tsi_hs), &sc->base));
|
702
|
+
handshake_mgr, grpc_security_handshaker_create(
|
703
|
+
tsi_create_adapter_handshaker(tsi_hs), &sc->base));
|
724
704
|
}
|
725
705
|
|
726
706
|
static int ssl_host_matches_name(const tsi_peer* peer, const char* peer_name) {
|
@@ -804,8 +784,7 @@ static grpc_error* ssl_check_peer(grpc_security_connector* sc,
|
|
804
784
|
return GRPC_ERROR_NONE;
|
805
785
|
}
|
806
786
|
|
807
|
-
static void ssl_channel_check_peer(
|
808
|
-
grpc_security_connector* sc, tsi_peer peer,
|
787
|
+
static void ssl_channel_check_peer(grpc_security_connector* sc, tsi_peer peer,
|
809
788
|
grpc_auth_context** auth_context,
|
810
789
|
grpc_closure* on_peer_checked) {
|
811
790
|
grpc_ssl_channel_security_connector* c =
|
@@ -815,17 +794,16 @@ static void ssl_channel_check_peer(grpc_exec_ctx* exec_ctx,
|
|
815
794
|
? c->overridden_target_name
|
816
795
|
: c->target_name,
|
817
796
|
&peer, auth_context);
|
818
|
-
GRPC_CLOSURE_SCHED(
|
797
|
+
GRPC_CLOSURE_SCHED(on_peer_checked, error);
|
819
798
|
tsi_peer_destruct(&peer);
|
820
799
|
}
|
821
800
|
|
822
|
-
static void ssl_server_check_peer(
|
823
|
-
grpc_security_connector* sc, tsi_peer peer,
|
801
|
+
static void ssl_server_check_peer(grpc_security_connector* sc, tsi_peer peer,
|
824
802
|
grpc_auth_context** auth_context,
|
825
803
|
grpc_closure* on_peer_checked) {
|
826
804
|
grpc_error* error = ssl_check_peer(sc, nullptr, &peer, auth_context);
|
827
805
|
tsi_peer_destruct(&peer);
|
828
|
-
GRPC_CLOSURE_SCHED(
|
806
|
+
GRPC_CLOSURE_SCHED(on_peer_checked, error);
|
829
807
|
}
|
830
808
|
|
831
809
|
static int ssl_channel_cmp(grpc_security_connector* sc1,
|
@@ -895,8 +873,7 @@ void tsi_shallow_peer_destruct(tsi_peer* peer) {
|
|
895
873
|
if (peer->properties != nullptr) gpr_free(peer->properties);
|
896
874
|
}
|
897
875
|
|
898
|
-
static bool ssl_channel_check_call_host(
|
899
|
-
grpc_channel_security_connector* sc,
|
876
|
+
static bool ssl_channel_check_call_host(grpc_channel_security_connector* sc,
|
900
877
|
const char* host,
|
901
878
|
grpc_auth_context* auth_context,
|
902
879
|
grpc_closure* on_call_host_checked,
|
@@ -922,8 +899,8 @@ static bool ssl_channel_check_call_host(grpc_exec_ctx* exec_ctx,
|
|
922
899
|
}
|
923
900
|
|
924
901
|
static void ssl_channel_cancel_check_call_host(
|
925
|
-
|
926
|
-
|
902
|
+
grpc_channel_security_connector* sc, grpc_closure* on_call_host_checked,
|
903
|
+
grpc_error* error) {
|
927
904
|
GRPC_ERROR_UNREF(error);
|
928
905
|
}
|
929
906
|
|
@@ -990,7 +967,7 @@ const char* grpc_get_default_ssl_roots(void) {
|
|
990
967
|
}
|
991
968
|
|
992
969
|
grpc_security_status grpc_ssl_channel_security_connector_create(
|
993
|
-
|
970
|
+
grpc_channel_credentials* channel_creds,
|
994
971
|
grpc_call_credentials* request_metadata_creds,
|
995
972
|
const grpc_ssl_config* config, const char* target_name,
|
996
973
|
const char* overridden_target_name, grpc_channel_security_connector** sc) {
|
@@ -1045,7 +1022,7 @@ grpc_security_status grpc_ssl_channel_security_connector_create(
|
|
1045
1022
|
if (result != TSI_OK) {
|
1046
1023
|
gpr_log(GPR_ERROR, "Handshaker factory creation failed with %s.",
|
1047
1024
|
tsi_result_to_string(result));
|
1048
|
-
ssl_channel_destroy(
|
1025
|
+
ssl_channel_destroy(&c->base.base);
|
1049
1026
|
*sc = nullptr;
|
1050
1027
|
goto error;
|
1051
1028
|
}
|
@@ -1073,8 +1050,7 @@ grpc_ssl_server_security_connector_initialize(
|
|
1073
1050
|
}
|
1074
1051
|
|
1075
1052
|
grpc_security_status grpc_ssl_server_security_connector_create(
|
1076
|
-
|
1077
|
-
grpc_server_security_connector** sc) {
|
1053
|
+
grpc_server_credentials* gsc, grpc_server_security_connector** sc) {
|
1078
1054
|
tsi_result result = TSI_OK;
|
1079
1055
|
grpc_ssl_server_credentials* server_credentials =
|
1080
1056
|
(grpc_ssl_server_credentials*)gsc;
|
@@ -1114,7 +1090,7 @@ grpc_security_status grpc_ssl_server_security_connector_create(
|
|
1114
1090
|
if (retval == GRPC_SECURITY_OK) {
|
1115
1091
|
*sc = &c->base;
|
1116
1092
|
} else {
|
1117
|
-
if (c != nullptr) ssl_server_destroy(
|
1093
|
+
if (c != nullptr) ssl_server_destroy(&c->base.base);
|
1118
1094
|
if (sc != nullptr) *sc = nullptr;
|
1119
1095
|
}
|
1120
1096
|
return retval;
|