grpc 0.13.1 → 0.14.1.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 +2098 -828
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -20
- data/include/grpc/census.h +4 -4
- data/include/grpc/compression.h +6 -5
- data/include/grpc/grpc.h +31 -20
- data/include/grpc/grpc_security.h +17 -31
- data/include/grpc/grpc_security_constants.h +114 -0
- data/include/grpc/grpc_zookeeper.h +1 -1
- data/include/grpc/impl/codegen/alloc.h +1 -1
- data/include/grpc/impl/codegen/atm.h +1 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +1 -1
- data/include/grpc/impl/codegen/atm_gcc_sync.h +1 -1
- data/include/grpc/impl/codegen/atm_win32.h +1 -1
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/{src/core/client_config/lb_policies/round_robin.h → include/grpc/impl/codegen/byte_buffer_reader.h} +19 -8
- data/include/grpc/impl/codegen/grpc_types.h +20 -3
- data/include/grpc/impl/codegen/log.h +9 -2
- data/include/grpc/impl/codegen/port_platform.h +102 -17
- data/include/grpc/impl/codegen/propagation_bits.h +3 -3
- data/include/grpc/impl/codegen/slice.h +3 -3
- data/include/grpc/impl/codegen/slice_buffer.h +3 -3
- data/include/grpc/impl/codegen/status.h +1 -1
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/include/grpc/impl/codegen/sync_posix.h +1 -1
- data/include/grpc/impl/codegen/sync_win32.h +1 -1
- data/include/grpc/impl/codegen/time.h +3 -3
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/alloc.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +4 -4
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_win32.h +1 -1
- data/include/grpc/support/avl.h +1 -1
- data/include/grpc/support/cmdline.h +1 -1
- data/include/grpc/support/cpu.h +1 -1
- data/include/grpc/support/histogram.h +1 -1
- data/include/grpc/support/host_port.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/log_win32.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/slice.h +1 -1
- data/include/grpc/support/slice_buffer.h +1 -1
- data/include/grpc/support/string_util.h +3 -1
- data/include/grpc/support/subprocess.h +2 -2
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_win32.h +1 -1
- data/include/grpc/support/thd.h +1 -1
- data/include/grpc/support/time.h +1 -1
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +45 -1
- data/include/grpc/support/tls_msvc.h +3 -3
- data/include/grpc/support/tls_pthread.h +1 -1
- data/include/grpc/support/useful.h +1 -1
- data/src/boringssl/err_data.c +258 -252
- data/src/core/{census → ext/census}/aggregation.h +3 -3
- data/src/core/{statistics → ext/census}/census_interface.h +3 -3
- data/src/core/{statistics → ext/census}/census_rpc_stats.h +4 -4
- data/src/core/{census → ext/census}/context.c +2 -2
- data/src/core/{census → ext/census}/grpc_context.c +2 -2
- data/src/core/{census → ext/census}/grpc_filter.c +30 -16
- data/src/core/{census → ext/census}/grpc_filter.h +4 -4
- data/src/core/ext/census/grpc_plugin.c +82 -0
- data/src/core/{census → ext/census}/initialize.c +1 -1
- data/src/core/{census → ext/census}/mlog.c +2 -2
- data/src/core/{census → ext/census}/mlog.h +4 -4
- data/src/core/{census → ext/census}/operation.c +0 -0
- data/src/core/{census → ext/census}/placeholders.c +0 -0
- data/src/core/{census → ext/census}/rpc_metric_id.h +3 -3
- data/src/core/{census → ext/census}/tracing.c +0 -0
- data/src/core/{surface → ext/client_config}/channel_connectivity.c +8 -21
- data/src/core/{channel → ext/client_config}/client_channel.c +80 -35
- data/src/core/{channel → ext/client_config}/client_channel.h +5 -5
- data/src/core/{client_config/subchannel_factory.c → ext/client_config/client_channel_factory.c} +14 -6
- data/src/core/ext/client_config/client_channel_factory.h +85 -0
- data/src/core/{client_config → ext/client_config}/client_config.c +4 -2
- data/src/core/{client_config → ext/client_config}/client_config.h +4 -4
- data/src/core/ext/client_config/client_config_plugin.c +95 -0
- data/src/core/{client_config → ext/client_config}/connector.c +2 -2
- data/src/core/{client_config → ext/client_config}/connector.h +7 -10
- data/src/core/{client_config → ext/client_config}/default_initial_connect_string.c +1 -1
- data/src/core/{client_config → ext/client_config}/initial_connect_string.c +1 -1
- data/src/core/{client_config → ext/client_config}/initial_connect_string.h +4 -4
- data/src/core/{client_config → ext/client_config}/lb_policy.c +12 -3
- data/src/core/{client_config → ext/client_config}/lb_policy.h +19 -6
- data/src/core/{client_config → ext/client_config}/lb_policy_factory.c +4 -3
- data/src/core/{client_config → ext/client_config}/lb_policy_factory.h +14 -9
- data/src/core/{client_config → ext/client_config}/lb_policy_registry.c +4 -9
- data/src/core/{client_config → ext/client_config}/lb_policy_registry.h +7 -6
- data/src/core/ext/client_config/parse_address.c +137 -0
- data/src/core/ext/client_config/parse_address.h +56 -0
- data/src/core/{client_config → ext/client_config}/resolver.c +1 -1
- data/src/core/{client_config → ext/client_config}/resolver.h +6 -6
- data/src/core/{client_config → ext/client_config}/resolver_factory.c +1 -1
- data/src/core/{client_config → ext/client_config}/resolver_factory.h +7 -7
- data/src/core/{client_config → ext/client_config}/resolver_registry.c +25 -11
- data/src/core/{client_config → ext/client_config}/resolver_registry.h +9 -5
- data/src/core/{client_config → ext/client_config}/subchannel.c +90 -126
- data/src/core/{client_config → ext/client_config}/subchannel.h +15 -15
- data/src/core/{channel → ext/client_config}/subchannel_call_holder.c +9 -8
- data/src/core/{channel → ext/client_config}/subchannel_call_holder.h +7 -7
- data/src/core/{client_config → ext/client_config}/subchannel_index.c +3 -2
- data/src/core/{client_config → ext/client_config}/subchannel_index.h +5 -5
- data/src/core/{client_config → ext/client_config}/uri_parser.c +69 -1
- data/src/core/{client_config → ext/client_config}/uri_parser.h +15 -3
- data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.c +18 -9
- data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.h +5 -5
- data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.c +1 -1
- data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.h +0 -0
- data/src/core/{client_config/lb_policies → ext/lb_policy/pick_first}/pick_first.c +95 -32
- data/src/core/{client_config/lb_policies → ext/lb_policy/round_robin}/round_robin.c +98 -34
- data/src/core/{client_config/resolvers → ext/resolver/dns/native}/dns_resolver.c +83 -39
- data/src/core/{client_config/resolvers → ext/resolver/sockaddr}/sockaddr_resolver.c +66 -169
- data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.h +3 -3
- data/src/core/{surface → ext/transport/chttp2/client/insecure}/channel_create.c +65 -59
- data/src/core/{surface → ext/transport/chttp2/client/secure}/secure_channel_create.c +77 -69
- data/src/core/{surface → ext/transport/chttp2/server/insecure}/server_chttp2.c +8 -11
- data/src/core/{security → ext/transport/chttp2/server/secure}/server_secure_chttp2.c +14 -17
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.c +28 -74
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.h +5 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +46 -0
- data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.c +551 -310
- data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.c +30 -14
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.h +10 -7
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.c +9 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.c +6 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.c +11 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.c +21 -12
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.c +42 -25
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.h +7 -7
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.c +21 -11
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/http2_errors.h +3 -3
- data/src/core/ext/transport/chttp2/transport/huffsyms.c +105 -0
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/huffsyms.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/internal.h +81 -37
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/parsing.c +54 -21
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_lists.c +10 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.c +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/writing.c +30 -20
- data/src/core/{channel → lib/channel}/channel_args.c +3 -15
- data/src/core/{channel → lib/channel}/channel_args.h +11 -15
- data/src/core/{channel → lib/channel}/channel_stack.c +5 -3
- data/src/core/{channel → lib/channel}/channel_stack.h +13 -8
- data/src/core/lib/channel/channel_stack_builder.c +277 -0
- data/src/core/lib/channel/channel_stack_builder.h +161 -0
- data/src/core/{channel → lib/channel}/compress_filter.c +51 -16
- data/src/core/{channel → lib/channel}/compress_filter.h +6 -4
- data/src/core/{channel → lib/channel}/connected_channel.c +34 -24
- data/src/core/lib/channel/connected_channel.h +42 -0
- data/src/core/{channel → lib/channel}/context.h +3 -3
- data/src/core/{channel → lib/channel}/http_client_filter.c +24 -13
- data/src/core/{channel → lib/channel}/http_client_filter.h +4 -4
- data/src/core/{channel → lib/channel}/http_server_filter.c +39 -19
- data/src/core/{channel → lib/channel}/http_server_filter.h +4 -4
- data/src/core/{compression → lib/compression}/algorithm_metadata.h +4 -4
- data/src/core/{compression → lib/compression}/compression_algorithm.c +46 -9
- data/src/core/{compression → lib/compression}/message_compress.c +1 -1
- data/src/core/{compression → lib/compression}/message_compress.h +3 -3
- data/src/core/{debug → lib/debug}/trace.c +2 -2
- data/src/core/{debug → lib/debug}/trace.h +3 -3
- data/src/core/{httpcli → lib/http}/format_request.c +8 -8
- data/src/core/{httpcli → lib/http}/format_request.h +4 -4
- data/src/core/{httpcli → lib/http}/httpcli.c +24 -19
- data/src/core/{httpcli → lib/http}/httpcli.h +14 -33
- data/src/core/{httpcli → lib/http}/httpcli_security_connector.c +5 -5
- data/src/core/lib/http/parser.c +341 -0
- data/src/core/lib/http/parser.h +119 -0
- data/src/core/{iomgr → lib/iomgr}/closure.c +8 -2
- data/src/core/{iomgr → lib/iomgr}/closure.h +7 -4
- data/src/core/{iomgr → lib/iomgr}/endpoint.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/endpoint.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair_posix.c +8 -7
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair_windows.c +4 -4
- data/src/core/lib/iomgr/ev_poll_and_epoll_posix.c +1936 -0
- data/src/core/lib/iomgr/ev_poll_and_epoll_posix.h +41 -0
- data/src/core/lib/iomgr/ev_posix.c +164 -0
- data/src/core/lib/iomgr/ev_posix.h +158 -0
- data/src/core/{iomgr → lib/iomgr}/exec_ctx.c +78 -3
- data/src/core/{iomgr → lib/iomgr}/exec_ctx.h +25 -10
- data/src/core/{iomgr → lib/iomgr}/executor.c +3 -3
- data/src/core/{iomgr → lib/iomgr}/executor.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/iocp_windows.c +6 -6
- data/src/core/{iomgr → lib/iomgr}/iocp_windows.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/iomgr.c +13 -10
- data/src/core/{iomgr → lib/iomgr}/iomgr.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/iomgr_internal.h +5 -9
- data/src/core/{iomgr → lib/iomgr}/iomgr_posix.c +6 -6
- data/src/core/{iomgr → lib/iomgr}/iomgr_posix.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/iomgr_windows.c +7 -4
- data/src/core/{iomgr → lib/iomgr}/pollset.h +11 -11
- data/src/core/{iomgr → lib/iomgr}/pollset_set.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/pollset_set_windows.c +2 -2
- data/src/core/lib/iomgr/pollset_set_windows.h +39 -0
- data/src/core/{iomgr → lib/iomgr}/pollset_windows.c +7 -7
- data/src/core/{iomgr → lib/iomgr}/pollset_windows.h +8 -5
- data/src/core/{iomgr → lib/iomgr}/resolve_address.h +10 -9
- data/src/core/{iomgr → lib/iomgr}/resolve_address_posix.c +22 -22
- data/src/core/{iomgr → lib/iomgr}/resolve_address_windows.c +20 -12
- data/src/core/{iomgr → lib/iomgr}/sockaddr.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/sockaddr_posix.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.c +9 -16
- data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/sockaddr_win32.h +6 -4
- data/src/core/{iomgr → lib/iomgr}/socket_utils_common_posix.c +29 -7
- data/src/core/{iomgr → lib/iomgr}/socket_utils_linux.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.h +14 -4
- data/src/core/{iomgr → lib/iomgr}/socket_windows.c +7 -5
- data/src/core/{iomgr → lib/iomgr}/socket_windows.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_client.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_client_posix.c +33 -18
- data/src/core/{iomgr → lib/iomgr}/tcp_client_windows.c +30 -20
- data/src/core/{iomgr → lib/iomgr}/tcp_posix.c +9 -10
- data/src/core/{iomgr → lib/iomgr}/tcp_posix.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_server.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_server_posix.c +24 -37
- data/src/core/{iomgr → lib/iomgr}/tcp_server_windows.c +8 -36
- data/src/core/{iomgr → lib/iomgr}/tcp_windows.c +27 -17
- data/src/core/{iomgr → lib/iomgr}/tcp_windows.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/timer.c +31 -4
- data/src/core/{iomgr → lib/iomgr}/timer.h +6 -7
- data/src/core/{iomgr → lib/iomgr}/timer_heap.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/timer_heap.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/udp_server.c +13 -37
- data/src/core/{iomgr → lib/iomgr}/udp_server.h +11 -10
- data/src/core/lib/iomgr/unix_sockets_posix.c +89 -0
- data/src/core/{client_config/resolvers/sockaddr_resolver.h → lib/iomgr/unix_sockets_posix.h} +15 -11
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +59 -0
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_eventfd.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_nospecial.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.c +8 -3
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/workqueue.h +10 -10
- data/src/core/{iomgr → lib/iomgr}/workqueue_posix.c +5 -6
- data/src/core/{iomgr → lib/iomgr}/workqueue_posix.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/workqueue_windows.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/workqueue_windows.h +3 -3
- data/src/core/{json → lib/json}/json.c +1 -1
- data/src/core/{json → lib/json}/json.h +4 -4
- data/src/core/{json → lib/json}/json_common.h +3 -3
- data/src/core/{json → lib/json}/json_reader.c +16 -4
- data/src/core/{json → lib/json}/json_reader.h +4 -4
- data/src/core/{json → lib/json}/json_string.c +4 -4
- data/src/core/{json → lib/json}/json_writer.c +1 -1
- data/src/core/{json → lib/json}/json_writer.h +4 -4
- data/src/core/{profiling → lib/profiling}/basic_timers.c +3 -2
- data/src/core/{profiling → lib/profiling}/stap_timers.c +2 -2
- data/src/core/{profiling → lib/profiling}/timers.h +3 -3
- data/src/core/{security → lib/security}/auth_filters.h +4 -4
- data/src/core/{security → lib/security}/b64.c +2 -2
- data/src/core/{security → lib/security}/b64.h +4 -4
- data/src/core/{security → lib/security}/client_auth_filter.c +16 -16
- data/src/core/{security → lib/security}/credentials.c +42 -26
- data/src/core/{security → lib/security}/credentials.h +11 -10
- data/src/core/{security → lib/security}/credentials_metadata.c +1 -1
- data/src/core/{security → lib/security}/credentials_posix.c +3 -3
- data/src/core/{security → lib/security}/credentials_win32.c +3 -3
- data/src/core/{security → lib/security}/google_default_credentials.c +10 -9
- data/src/core/{security → lib/security}/handshake.c +4 -4
- data/src/core/{security → lib/security}/handshake.h +6 -6
- data/src/core/{security → lib/security}/json_token.c +4 -4
- data/src/core/{security → lib/security}/json_token.h +4 -4
- data/src/core/{security → lib/security}/jwt_verifier.c +14 -14
- data/src/core/{security → lib/security}/jwt_verifier.h +5 -5
- data/src/core/{security → lib/security}/secure_endpoint.c +9 -8
- data/src/core/{security → lib/security}/secure_endpoint.h +4 -4
- data/src/core/{security → lib/security}/security_connector.c +53 -21
- data/src/core/{security → lib/security}/security_connector.h +8 -8
- data/src/core/{security → lib/security}/security_context.c +5 -5
- data/src/core/{security → lib/security}/security_context.h +5 -5
- data/src/core/{security → lib/security}/server_auth_filter.c +9 -9
- data/src/core/{support → lib/support}/alloc.c +5 -3
- data/src/core/{support → lib/support}/avl.c +1 -1
- data/src/core/lib/support/backoff.c +76 -0
- data/src/core/lib/support/backoff.h +68 -0
- data/src/core/{support → lib/support}/block_annotate.h +3 -3
- data/src/core/{support → lib/support}/cmdline.c +1 -1
- data/src/core/{support → lib/support}/cpu_iphone.c +0 -0
- data/src/core/{support → lib/support}/cpu_linux.c +2 -2
- data/src/core/{support → lib/support}/cpu_posix.c +2 -2
- data/src/core/{support → lib/support}/cpu_windows.c +0 -0
- data/src/core/{support → lib/support}/env.h +3 -3
- data/src/core/{support → lib/support}/env_linux.c +3 -3
- data/src/core/{support → lib/support}/env_posix.c +2 -2
- data/src/core/{support → lib/support}/env_win32.c +27 -21
- data/src/core/{support → lib/support}/histogram.c +1 -1
- data/src/core/{support → lib/support}/host_port.c +1 -1
- data/src/core/{support → lib/support}/load_file.c +4 -4
- data/src/core/{support → lib/support}/load_file.h +4 -4
- data/src/core/{support → lib/support}/log.c +33 -0
- data/src/core/{support → lib/support}/log_android.c +2 -2
- data/src/core/{support → lib/support}/log_linux.c +6 -5
- data/src/core/{support → lib/support}/log_posix.c +3 -3
- data/src/core/{support → lib/support}/log_win32.c +8 -22
- data/src/core/{support → lib/support}/murmur_hash.c +1 -1
- data/src/core/{support → lib/support}/murmur_hash.h +3 -3
- data/src/core/{support → lib/support}/slice.c +0 -0
- data/src/core/{support → lib/support}/slice_buffer.c +0 -0
- data/src/core/{support → lib/support}/stack_lockfree.c +7 -7
- data/src/core/{support → lib/support}/stack_lockfree.h +3 -3
- data/src/core/{support → lib/support}/string.c +1 -1
- data/src/core/{support → lib/support}/string.h +4 -4
- data/src/core/{support → lib/support}/string_posix.c +1 -1
- data/src/core/{support/string_win32.c → lib/support/string_util_win32.c} +23 -38
- data/src/core/lib/support/string_win32.c +83 -0
- data/src/core/{support → lib/support}/string_win32.h +3 -3
- data/src/core/{support → lib/support}/subprocess_posix.c +3 -3
- data/src/core/{support → lib/support}/subprocess_windows.c +3 -3
- data/src/core/{support → lib/support}/sync.c +2 -2
- data/src/core/{support → lib/support}/sync_posix.c +3 -3
- data/src/core/{support → lib/support}/sync_win32.c +1 -1
- data/src/core/{support → lib/support}/thd.c +0 -0
- data/src/core/{support → lib/support}/thd_internal.h +3 -3
- data/src/core/{support → lib/support}/thd_posix.c +4 -3
- data/src/core/{support → lib/support}/thd_win32.c +1 -1
- data/src/core/{support → lib/support}/time.c +2 -2
- data/src/core/{support → lib/support}/time_posix.c +12 -6
- data/src/core/{support → lib/support}/time_precise.c +0 -0
- data/src/core/{support → lib/support}/time_precise.h +3 -3
- data/src/core/{support → lib/support}/time_win32.c +7 -7
- data/src/core/{support → lib/support}/tls_pthread.c +0 -0
- data/src/core/{support → lib/support}/tmpfile.h +4 -4
- data/src/core/lib/support/tmpfile_msys.c +73 -0
- data/src/core/{support → lib/support}/tmpfile_posix.c +5 -5
- data/src/core/{support → lib/support}/tmpfile_win32.c +5 -5
- data/src/core/{support → lib/support}/wrap_memcpy.c +0 -0
- data/src/core/{surface → lib/surface}/alarm.c +3 -3
- data/src/core/{surface → lib/surface}/api_trace.c +1 -1
- data/src/core/{surface → lib/surface}/api_trace.h +4 -4
- data/src/core/{surface → lib/surface}/byte_buffer.c +3 -3
- data/src/core/{surface → lib/surface}/byte_buffer_reader.c +3 -3
- data/src/core/{surface → lib/surface}/call.c +145 -73
- data/src/core/{surface → lib/surface}/call.h +14 -7
- data/src/core/{surface → lib/surface}/call_details.c +1 -1
- data/src/core/{surface → lib/surface}/call_log_batch.c +2 -2
- data/src/core/{surface → lib/surface}/call_test_only.h +3 -3
- data/src/core/{surface → lib/surface}/channel.c +33 -34
- data/src/core/{surface → lib/surface}/channel.h +9 -9
- data/src/core/lib/surface/channel_init.c +140 -0
- data/src/core/lib/surface/channel_init.h +87 -0
- data/src/core/{surface → lib/surface}/channel_ping.c +4 -4
- data/src/core/lib/surface/channel_stack_type.c +54 -0
- data/src/core/{httpcli/parser.h → lib/surface/channel_stack_type.h} +22 -28
- data/src/core/{surface → lib/surface}/completion_queue.c +15 -11
- data/src/core/{surface → lib/surface}/completion_queue.h +4 -4
- data/src/core/{surface → lib/surface}/event_string.c +2 -2
- data/src/core/{surface → lib/surface}/event_string.h +3 -3
- data/src/core/lib/surface/init.c +217 -0
- data/src/core/{surface → lib/surface}/init.h +4 -3
- data/src/core/lib/surface/init_secure.c +89 -0
- data/src/core/{surface → lib/surface}/lame_client.c +31 -19
- data/src/core/{iomgr/pollset_set_windows.h → lib/surface/lame_client.h} +7 -5
- data/src/core/{surface → lib/surface}/metadata_array.c +1 -1
- data/src/core/{surface → lib/surface}/server.c +208 -183
- data/src/core/{surface → lib/surface}/server.h +6 -11
- data/src/core/{surface → lib/surface}/surface_trace.h +5 -5
- data/src/core/{surface → lib/surface}/validate_metadata.c +1 -1
- data/src/core/{surface → lib/surface}/version.c +2 -2
- data/src/core/{transport → lib/transport}/byte_stream.c +1 -1
- data/src/core/{transport → lib/transport}/byte_stream.h +4 -4
- data/src/core/{transport → lib/transport}/connectivity_state.c +2 -2
- data/src/core/{transport → lib/transport}/connectivity_state.h +4 -4
- data/src/core/{transport → lib/transport}/metadata.c +71 -19
- data/src/core/{transport → lib/transport}/metadata.h +11 -4
- data/src/core/{transport → lib/transport}/metadata_batch.c +2 -2
- data/src/core/{transport → lib/transport}/metadata_batch.h +4 -4
- data/src/core/{transport → lib/transport}/static_metadata.c +100 -32
- data/src/core/{transport → lib/transport}/static_metadata.h +58 -58
- data/src/core/{transport → lib/transport}/transport.c +25 -5
- data/src/core/{transport → lib/transport}/transport.h +41 -16
- data/src/core/{transport → lib/transport}/transport_impl.h +8 -5
- data/src/core/{transport → lib/transport}/transport_op_string.c +2 -2
- data/src/core/{tsi → lib/tsi}/fake_transport_security.c +18 -14
- data/src/core/{tsi → lib/tsi}/fake_transport_security.h +4 -4
- data/src/core/{tsi → lib/tsi}/ssl_transport_security.c +173 -63
- data/src/core/{tsi → lib/tsi}/ssl_transport_security.h +24 -6
- data/src/core/{tsi → lib/tsi}/ssl_types.h +3 -3
- data/src/core/{tsi → lib/tsi}/transport_security.c +12 -28
- data/src/core/{tsi → lib/tsi}/transport_security.h +4 -4
- data/src/core/{tsi → lib/tsi}/transport_security_interface.h +12 -3
- data/src/core/plugin_registry/grpc_plugin_registry.c +66 -0
- data/src/ruby/ext/grpc/extconf.rb +14 -20
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -3
- data/src/ruby/ext/grpc/rb_call.c +37 -4
- data/src/ruby/ext/grpc/rb_call_credentials.c +13 -3
- data/src/ruby/ext/grpc/rb_channel.c +2 -3
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -3
- data/src/ruby/ext/grpc/rb_channel_credentials.c +31 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +2 -2
- data/src/ruby/ext/grpc/rb_event_thread.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +14 -2
- data/src/ruby/ext/grpc/rb_server.c +2 -3
- data/src/ruby/ext/grpc/rb_server_credentials.c +16 -13
- data/src/ruby/ext/grpc/rb_signal.c +70 -0
- data/src/ruby/ext/grpc/rb_signal.h +39 -0
- data/src/ruby/lib/grpc.rb +21 -13
- data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
- data/src/ruby/lib/grpc/errors.rb +2 -2
- data/src/ruby/lib/grpc/generic/active_call.rb +10 -3
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
- data/src/ruby/lib/grpc/generic/client_stub.rb +10 -7
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +2 -2
- data/src/ruby/lib/grpc/generic/rpc_server.rb +21 -61
- data/src/ruby/lib/grpc/generic/service.rb +5 -15
- data/src/ruby/lib/grpc/grpc.rb +3 -3
- data/src/ruby/{bin/interop/interop_server.rb → lib/grpc/signals.rb} +39 -20
- data/src/ruby/lib/grpc/version.rb +2 -2
- data/src/ruby/pb/generate_proto_ruby.sh +9 -2
- data/src/ruby/pb/grpc/health/checker.rb +1 -1
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics_services.rb +27 -0
- data/src/ruby/pb/test/client.rb +12 -23
- data/src/ruby/pb/test/server.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +18 -17
- data/src/ruby/spec/generic/rpc_server_spec.rb +23 -7
- data/src/ruby/spec/generic/service_spec.rb +0 -69
- data/src/ruby/{bin/interop/interop_client.rb → spec/pb/duplicate/codegen_spec.rb} +41 -21
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +184 -176
- data/third_party/boringssl/crypto/asn1/a_bool.c +42 -44
- data/third_party/boringssl/crypto/asn1/a_bytes.c +236 -245
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +173 -192
- data/third_party/boringssl/crypto/asn1/a_dup.c +43 -35
- data/third_party/boringssl/crypto/asn1/a_enum.c +107 -109
- data/third_party/boringssl/crypto/asn1/a_gentm.c +180 -181
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +73 -80
- data/third_party/boringssl/crypto/asn1/a_int.c +357 -353
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +272 -253
- data/third_party/boringssl/crypto/asn1/a_object.c +293 -309
- data/third_party/boringssl/crypto/asn1/a_octet.c +13 -6
- data/third_party/boringssl/crypto/asn1/a_print.c +54 -52
- data/third_party/boringssl/crypto/asn1/a_strnid.c +179 -157
- data/third_party/boringssl/crypto/asn1/a_time.c +125 -129
- data/third_party/boringssl/crypto/asn1/a_type.c +79 -86
- data/third_party/boringssl/crypto/asn1/a_utctm.c +246 -255
- data/third_party/boringssl/crypto/asn1/a_utf8.c +159 -135
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +361 -368
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +11 -11
- data/third_party/boringssl/crypto/asn1/asn1_par.c +309 -351
- data/third_party/boringssl/crypto/asn1/asn_pack.c +30 -29
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +375 -394
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +146 -149
- data/third_party/boringssl/crypto/asn1/f_enum.c +128 -134
- data/third_party/boringssl/crypto/asn1/f_int.c +131 -139
- data/third_party/boringssl/crypto/asn1/f_string.c +125 -133
- data/third_party/boringssl/crypto/asn1/t_bitst.c +30 -29
- data/third_party/boringssl/crypto/asn1/t_pkey.c +45 -47
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1099 -1216
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +556 -592
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +175 -193
- data/third_party/boringssl/crypto/asn1/tasn_new.c +271 -288
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +462 -508
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +28 -21
- data/third_party/boringssl/crypto/asn1/x_bignum.c +62 -52
- data/third_party/boringssl/crypto/asn1/x_long.c +101 -86
- data/third_party/boringssl/crypto/bio/buffer.c +3 -3
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +8 -68
- data/third_party/boringssl/crypto/bn/bn.c +1 -1
- data/third_party/boringssl/crypto/bn/bn_asn1.c +9 -22
- data/third_party/boringssl/crypto/bn/convert.c +9 -4
- data/third_party/boringssl/crypto/bn/div.c +0 -20
- data/third_party/boringssl/crypto/bn/exponentiation.c +22 -13
- data/third_party/boringssl/crypto/bn/generic.c +6 -242
- data/third_party/boringssl/crypto/bn/internal.h +9 -70
- data/third_party/boringssl/crypto/bn/montgomery.c +1 -2
- data/third_party/boringssl/crypto/bn/mul.c +6 -26
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +21 -28
- data/third_party/boringssl/crypto/bytestring/asn1_compat.c +51 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +128 -87
- data/third_party/boringssl/crypto/bytestring/cbb.c +37 -3
- data/third_party/boringssl/crypto/bytestring/internal.h +39 -10
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +18 -13
- data/third_party/boringssl/crypto/cipher/e_aes.c +2 -2
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +4 -9
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +39 -10
- data/third_party/boringssl/crypto/conf/conf.c +9 -0
- data/third_party/boringssl/crypto/cpu-intel.c +1 -1
- data/third_party/boringssl/crypto/crypto.c +2 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +125 -120
- data/third_party/boringssl/crypto/curve25519/internal.h +45 -0
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +225 -0
- data/third_party/boringssl/crypto/dh/check.c +32 -10
- data/third_party/boringssl/crypto/dh/dh.c +1 -1
- data/third_party/boringssl/crypto/digest/md32_common.h +0 -60
- data/third_party/boringssl/crypto/dsa/dsa.c +47 -21
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +249 -64
- data/third_party/boringssl/crypto/ec/ec.c +45 -31
- data/third_party/boringssl/crypto/ec/ec_asn1.c +315 -382
- data/third_party/boringssl/crypto/ec/ec_key.c +1 -4
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -9
- data/third_party/boringssl/crypto/ec/internal.h +1 -19
- data/third_party/boringssl/crypto/ec/oct.c +12 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +4 -65
- data/third_party/boringssl/crypto/ec/p256-64.c +9 -71
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +1 -6
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +3 -13
- data/third_party/boringssl/crypto/ec/simple.c +0 -76
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +1 -1
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +10 -24
- data/third_party/boringssl/crypto/evp/evp.c +4 -3
- data/third_party/boringssl/crypto/evp/evp_asn1.c +101 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +22 -51
- data/third_party/boringssl/crypto/evp/internal.h +28 -27
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +78 -249
- data/third_party/boringssl/crypto/evp/p_ec.c +19 -66
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +74 -231
- data/third_party/boringssl/crypto/evp/p_rsa.c +90 -13
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +49 -48
- data/third_party/boringssl/crypto/internal.h +16 -1
- data/third_party/boringssl/crypto/mem.c +2 -2
- data/third_party/boringssl/crypto/modes/ctr.c +2 -1
- data/third_party/boringssl/crypto/modes/gcm.c +5 -3
- data/third_party/boringssl/crypto/obj/obj_dat.h +6 -3
- data/third_party/boringssl/crypto/pem/pem_all.c +83 -102
- data/third_party/boringssl/crypto/pem/pem_info.c +286 -309
- data/third_party/boringssl/crypto/pem/pem_lib.c +690 -710
- data/third_party/boringssl/crypto/pem/pem_oth.c +15 -16
- data/third_party/boringssl/crypto/pem/pem_pk8.c +132 -119
- data/third_party/boringssl/crypto/pem/pem_pkey.c +144 -220
- data/third_party/boringssl/crypto/pem/pem_x509.c +3 -3
- data/third_party/boringssl/crypto/pem/pem_xaux.c +5 -4
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +54 -60
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +3 -1
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +48 -50
- data/third_party/boringssl/crypto/rand/rand.c +2 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +8 -48
- data/third_party/boringssl/crypto/rsa/internal.h +1 -9
- data/third_party/boringssl/crypto/rsa/padding.c +73 -77
- data/third_party/boringssl/crypto/rsa/rsa.c +1 -1
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +27 -46
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +23 -34
- data/third_party/boringssl/crypto/test/scoped_types.h +3 -0
- data/third_party/boringssl/crypto/thread_win.c +15 -13
- data/third_party/boringssl/crypto/time_support.c +0 -6
- data/third_party/boringssl/crypto/x509/a_digest.c +26 -27
- data/third_party/boringssl/crypto/x509/a_sign.c +63 -64
- data/third_party/boringssl/crypto/x509/a_strex.c +482 -413
- data/third_party/boringssl/crypto/x509/a_verify.c +45 -51
- data/third_party/boringssl/crypto/x509/asn1_gen.c +715 -769
- data/third_party/boringssl/crypto/x509/by_dir.c +355 -393
- data/third_party/boringssl/crypto/x509/by_file.c +186 -206
- data/third_party/boringssl/crypto/x509/charmap.h +11 -11
- data/third_party/boringssl/crypto/x509/i2d_pr.c +21 -22
- data/third_party/boringssl/crypto/x509/t_crl.c +50 -51
- data/third_party/boringssl/crypto/x509/t_x509.c +414 -406
- data/third_party/boringssl/crypto/x509/t_x509a.c +44 -42
- data/third_party/boringssl/crypto/x509/vpm_int.h +13 -13
- data/third_party/boringssl/crypto/x509/x509_att.c +241 -219
- data/third_party/boringssl/crypto/x509/x509_cmp.c +343 -359
- data/third_party/boringssl/crypto/x509/x509_d2.c +36 -35
- data/third_party/boringssl/crypto/x509/x509_def.c +23 -13
- data/third_party/boringssl/crypto/x509/x509_ext.c +75 -75
- data/third_party/boringssl/crypto/x509/x509_lu.c +574 -612
- data/third_party/boringssl/crypto/x509/x509_obj.c +104 -115
- data/third_party/boringssl/crypto/x509/x509_r2x.c +40 -40
- data/third_party/boringssl/crypto/x509/x509_req.c +181 -174
- data/third_party/boringssl/crypto/x509/x509_set.c +71 -76
- data/third_party/boringssl/crypto/x509/x509_trs.c +193 -171
- data/third_party/boringssl/crypto/x509/x509_txt.c +135 -138
- data/third_party/boringssl/crypto/x509/x509_v3.c +174 -167
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2079 -2130
- data/third_party/boringssl/crypto/x509/x509_vpm.c +486 -522
- data/third_party/boringssl/crypto/x509/x509cset.c +96 -99
- data/third_party/boringssl/crypto/x509/x509name.c +280 -275
- data/third_party/boringssl/crypto/x509/x509rset.c +15 -14
- data/third_party/boringssl/crypto/x509/x509spki.c +62 -60
- data/third_party/boringssl/crypto/x509/x509type.c +58 -60
- data/third_party/boringssl/crypto/x509/x_algor.c +70 -73
- data/third_party/boringssl/crypto/x509/x_all.c +282 -328
- data/third_party/boringssl/crypto/x509/x_attrib.c +36 -42
- data/third_party/boringssl/crypto/x509/x_crl.c +397 -418
- data/third_party/boringssl/crypto/x509/x_exten.c +5 -5
- data/third_party/boringssl/crypto/x509/x_info.c +30 -27
- data/third_party/boringssl/crypto/x509/x_name.c +387 -388
- data/third_party/boringssl/crypto/x509/x_pkey.c +32 -29
- data/third_party/boringssl/crypto/x509/x_pubkey.c +261 -280
- data/third_party/boringssl/crypto/x509/x_req.c +30 -33
- data/third_party/boringssl/crypto/x509/x_sig.c +2 -2
- data/third_party/boringssl/crypto/x509/x_spki.c +9 -7
- data/third_party/boringssl/crypto/x509/x_val.c +2 -2
- data/third_party/boringssl/crypto/x509/x_x509.c +120 -119
- data/third_party/boringssl/crypto/x509/x_x509a.c +99 -91
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +57 -51
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +199 -214
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +57 -64
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +95 -90
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +86 -87
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +61 -64
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +108 -117
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +676 -724
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +128 -136
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +7 -6
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +499 -507
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +54 -47
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +67 -67
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +330 -328
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +354 -338
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +441 -496
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +35 -33
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +66 -63
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +157 -159
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +45 -43
- data/third_party/boringssl/crypto/x509v3/v3_info.c +124 -112
- data/third_party/boringssl/crypto/x509v3/v3_int.c +30 -26
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +231 -204
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +353 -381
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +252 -270
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +9 -8
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +58 -61
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +35 -34
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +72 -74
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +146 -121
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +651 -582
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +76 -72
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +139 -131
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1072 -1068
- data/third_party/boringssl/include/openssl/asn1.h +40 -38
- data/third_party/boringssl/include/openssl/base.h +10 -1
- data/third_party/boringssl/include/openssl/bio.h +10 -11
- data/third_party/boringssl/include/openssl/bn.h +12 -9
- data/third_party/boringssl/include/openssl/buf.h +1 -1
- data/third_party/boringssl/include/openssl/bytestring.h +29 -0
- data/third_party/boringssl/include/openssl/conf.h +25 -0
- data/third_party/boringssl/include/openssl/crypto.h +6 -1
- data/third_party/boringssl/include/openssl/curve25519.h +6 -3
- data/third_party/boringssl/include/openssl/dh.h +7 -3
- data/third_party/boringssl/include/openssl/dsa.h +108 -51
- data/third_party/boringssl/include/openssl/ec.h +46 -21
- data/third_party/boringssl/include/openssl/ec_key.h +78 -42
- data/third_party/boringssl/include/openssl/ecdsa.h +4 -4
- data/third_party/boringssl/include/openssl/err.h +3 -2
- data/third_party/boringssl/include/openssl/evp.h +120 -37
- data/third_party/boringssl/include/openssl/mem.h +4 -13
- data/third_party/boringssl/include/openssl/obj_mac.h +4 -0
- data/third_party/boringssl/include/openssl/pem.h +0 -9
- data/third_party/boringssl/include/openssl/pkcs8.h +6 -2
- data/third_party/boringssl/include/openssl/rand.h +3 -0
- data/third_party/boringssl/include/openssl/rsa.h +42 -42
- data/third_party/boringssl/include/openssl/ssl.h +115 -41
- data/third_party/boringssl/include/openssl/stack.h +0 -3
- data/third_party/boringssl/include/openssl/stack_macros.h +0 -256
- data/third_party/boringssl/include/openssl/tls1.h +1 -1
- data/third_party/boringssl/include/openssl/x509.h +0 -2
- data/third_party/boringssl/include/openssl/x509_vfy.h +5 -0
- data/third_party/boringssl/ssl/d1_both.c +102 -101
- data/third_party/boringssl/ssl/d1_clnt.c +145 -150
- data/third_party/boringssl/ssl/d1_lib.c +63 -62
- data/third_party/boringssl/ssl/d1_pkt.c +73 -71
- data/third_party/boringssl/ssl/d1_srvr.c +116 -125
- data/third_party/boringssl/ssl/dtls_record.c +3 -3
- data/third_party/boringssl/ssl/internal.h +210 -208
- data/third_party/boringssl/ssl/pqueue/pqueue.c +2 -2
- data/third_party/boringssl/ssl/s3_both.c +116 -130
- data/third_party/boringssl/ssl/s3_clnt.c +589 -740
- data/third_party/boringssl/ssl/s3_enc.c +52 -151
- data/third_party/boringssl/ssl/s3_lib.c +70 -76
- data/third_party/boringssl/ssl/s3_pkt.c +105 -144
- data/third_party/boringssl/ssl/s3_srvr.c +542 -806
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +1 -1
- data/third_party/boringssl/ssl/ssl_cert.c +2 -2
- data/third_party/boringssl/ssl/ssl_cipher.c +7 -3
- data/third_party/boringssl/ssl/ssl_ecdh.c +374 -0
- data/third_party/boringssl/ssl/ssl_lib.c +260 -221
- data/third_party/boringssl/ssl/ssl_session.c +17 -17
- data/third_party/boringssl/ssl/t1_enc.c +128 -273
- data/third_party/boringssl/ssl/t1_lib.c +134 -258
- data/third_party/boringssl/ssl/test/test_config.h +2 -0
- data/third_party/boringssl/ssl/tls_record.c +52 -15
- metadata +385 -359
- data/src/core/channel/client_uchannel.c +0 -243
- data/src/core/channel/client_uchannel.h +0 -60
- data/src/core/channel/connected_channel.h +0 -51
- data/src/core/client_config/lb_policies/pick_first.h +0 -43
- data/src/core/client_config/resolvers/dns_resolver.h +0 -42
- data/src/core/client_config/subchannel_factory.h +0 -66
- data/src/core/httpcli/parser.c +0 -211
- data/src/core/iomgr/fd_posix.c +0 -451
- data/src/core/iomgr/fd_posix.h +0 -192
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +0 -324
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +0 -234
- data/src/core/iomgr/pollset_posix.c +0 -633
- data/src/core/iomgr/pollset_posix.h +0 -153
- data/src/core/iomgr/pollset_set_posix.c +0 -202
- data/src/core/iomgr/pollset_set_posix.h +0 -45
- data/src/core/surface/init.c +0 -174
- data/src/core/surface/init_secure.c +0 -42
- data/src/core/surface/server_create.c +0 -48
- data/src/core/transport/chttp2/huffsyms.c +0 -297
- data/src/ruby/bin/grpc_ruby_interop_client +0 -33
- data/src/ruby/bin/grpc_ruby_interop_server +0 -33
- data/third_party/boringssl/crypto/dsa/internal.h +0 -78
@@ -33,8 +33,8 @@
|
|
33
33
|
|
34
34
|
#include <stddef.h>
|
35
35
|
|
36
|
-
#ifndef
|
37
|
-
#define
|
36
|
+
#ifndef GRPC_CORE_EXT_CENSUS_AGGREGATION_H
|
37
|
+
#define GRPC_CORE_EXT_CENSUS_AGGREGATION_H
|
38
38
|
|
39
39
|
/** Structure used to describe an aggregation type. */
|
40
40
|
struct census_aggregation_ops {
|
@@ -63,4 +63,4 @@ struct census_aggregation_ops {
|
|
63
63
|
size_t (*print)(const void *aggregation, char *buffer, size_t n);
|
64
64
|
};
|
65
65
|
|
66
|
-
#endif /*
|
66
|
+
#endif /* GRPC_CORE_EXT_CENSUS_AGGREGATION_H */
|
@@ -31,8 +31,8 @@
|
|
31
31
|
*
|
32
32
|
*/
|
33
33
|
|
34
|
-
#ifndef
|
35
|
-
#define
|
34
|
+
#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H
|
35
|
+
#define GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H
|
36
36
|
|
37
37
|
#include <grpc/support/port_platform.h>
|
38
38
|
|
@@ -73,4 +73,4 @@ census_op_id census_tracing_start_op(void);
|
|
73
73
|
/* Ends tracing. Calling this function will invalidate the input op_id. */
|
74
74
|
void census_tracing_end_op(census_op_id op_id);
|
75
75
|
|
76
|
-
#endif /*
|
76
|
+
#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H */
|
@@ -31,11 +31,11 @@
|
|
31
31
|
*
|
32
32
|
*/
|
33
33
|
|
34
|
-
#ifndef
|
35
|
-
#define
|
34
|
+
#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H
|
35
|
+
#define GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H
|
36
36
|
|
37
|
-
#include "src/core/statistics/census_interface.h"
|
38
37
|
#include <grpc/support/port_platform.h>
|
38
|
+
#include "src/core/ext/census/census_interface.h"
|
39
39
|
|
40
40
|
#ifdef __cplusplus
|
41
41
|
extern "C" {
|
@@ -98,4 +98,4 @@ void census_stats_store_shutdown(void);
|
|
98
98
|
}
|
99
99
|
#endif
|
100
100
|
|
101
|
-
#endif /*
|
101
|
+
#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H */
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015
|
3
|
+
* Copyright 2015, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -38,7 +38,7 @@
|
|
38
38
|
#include <grpc/support/useful.h>
|
39
39
|
#include <stdbool.h>
|
40
40
|
#include <string.h>
|
41
|
-
#include "src/core/support/string.h"
|
41
|
+
#include "src/core/lib/support/string.h"
|
42
42
|
|
43
43
|
// Functions in this file support the public context API, including
|
44
44
|
// encoding/decoding as part of context propagation across RPC's. The overall
|
@@ -33,8 +33,8 @@
|
|
33
33
|
|
34
34
|
#include <grpc/census.h>
|
35
35
|
#include <grpc/grpc.h>
|
36
|
-
#include "src/core/surface/api_trace.h"
|
37
|
-
#include "src/core/surface/call.h"
|
36
|
+
#include "src/core/lib/surface/api_trace.h"
|
37
|
+
#include "src/core/lib/surface/call.h"
|
38
38
|
|
39
39
|
void grpc_census_call_set_context(grpc_call *call, census_context *context) {
|
40
40
|
GRPC_API_TRACE("grpc_census_call_set_context(call=%p, census_context=%p)", 2,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015
|
3
|
+
* Copyright 2015, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -31,7 +31,7 @@
|
|
31
31
|
*
|
32
32
|
*/
|
33
33
|
|
34
|
-
#include "src/core/census/grpc_filter.h"
|
34
|
+
#include "src/core/ext/census/grpc_filter.h"
|
35
35
|
|
36
36
|
#include <stdio.h>
|
37
37
|
#include <string.h>
|
@@ -42,10 +42,10 @@
|
|
42
42
|
#include <grpc/support/slice.h>
|
43
43
|
#include <grpc/support/time.h>
|
44
44
|
|
45
|
-
#include "src/core/
|
46
|
-
#include "src/core/
|
47
|
-
#include "src/core/
|
48
|
-
#include "src/core/transport/static_metadata.h"
|
45
|
+
#include "src/core/ext/census/census_interface.h"
|
46
|
+
#include "src/core/ext/census/census_rpc_stats.h"
|
47
|
+
#include "src/core/lib/channel/channel_stack.h"
|
48
|
+
#include "src/core/lib/transport/static_metadata.h"
|
49
49
|
|
50
50
|
typedef struct call_data {
|
51
51
|
census_op_id op_id;
|
@@ -134,7 +134,7 @@ static void client_init_call_elem(grpc_exec_ctx *exec_ctx,
|
|
134
134
|
}
|
135
135
|
|
136
136
|
static void client_destroy_call_elem(grpc_exec_ctx *exec_ctx,
|
137
|
-
grpc_call_element *elem) {
|
137
|
+
grpc_call_element *elem, void *ignored) {
|
138
138
|
call_data *d = elem->call_data;
|
139
139
|
GPR_ASSERT(d != NULL);
|
140
140
|
/* TODO(hongyu): record rpc client stats and census_rpc_end_op here */
|
@@ -152,7 +152,7 @@ static void server_init_call_elem(grpc_exec_ctx *exec_ctx,
|
|
152
152
|
}
|
153
153
|
|
154
154
|
static void server_destroy_call_elem(grpc_exec_ctx *exec_ctx,
|
155
|
-
grpc_call_element *elem) {
|
155
|
+
grpc_call_element *elem, void *ignored) {
|
156
156
|
call_data *d = elem->call_data;
|
157
157
|
GPR_ASSERT(d != NULL);
|
158
158
|
/* TODO(hongyu): record rpc server stats and census_tracing_end_op here */
|
@@ -172,13 +172,27 @@ static void destroy_channel_elem(grpc_exec_ctx *exec_ctx,
|
|
172
172
|
}
|
173
173
|
|
174
174
|
const grpc_channel_filter grpc_client_census_filter = {
|
175
|
-
client_start_transport_op,
|
176
|
-
|
177
|
-
|
178
|
-
|
175
|
+
client_start_transport_op,
|
176
|
+
grpc_channel_next_op,
|
177
|
+
sizeof(call_data),
|
178
|
+
client_init_call_elem,
|
179
|
+
grpc_call_stack_ignore_set_pollset,
|
180
|
+
client_destroy_call_elem,
|
181
|
+
sizeof(channel_data),
|
182
|
+
init_channel_elem,
|
183
|
+
destroy_channel_elem,
|
184
|
+
grpc_call_next_get_peer,
|
185
|
+
"census-client"};
|
179
186
|
|
180
187
|
const grpc_channel_filter grpc_server_census_filter = {
|
181
|
-
server_start_transport_op,
|
182
|
-
|
183
|
-
|
184
|
-
|
188
|
+
server_start_transport_op,
|
189
|
+
grpc_channel_next_op,
|
190
|
+
sizeof(call_data),
|
191
|
+
server_init_call_elem,
|
192
|
+
grpc_call_stack_ignore_set_pollset,
|
193
|
+
server_destroy_call_elem,
|
194
|
+
sizeof(channel_data),
|
195
|
+
init_channel_elem,
|
196
|
+
destroy_channel_elem,
|
197
|
+
grpc_call_next_get_peer,
|
198
|
+
"census-server"};
|
@@ -31,14 +31,14 @@
|
|
31
31
|
*
|
32
32
|
*/
|
33
33
|
|
34
|
-
#ifndef
|
35
|
-
#define
|
34
|
+
#ifndef GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H
|
35
|
+
#define GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H
|
36
36
|
|
37
|
-
#include "src/core/channel/channel_stack.h"
|
37
|
+
#include "src/core/lib/channel/channel_stack.h"
|
38
38
|
|
39
39
|
/* Census filters: provides tracing and stats collection functionalities. It
|
40
40
|
needs to reside right below the surface filter in the channel stack. */
|
41
41
|
extern const grpc_channel_filter grpc_client_census_filter;
|
42
42
|
extern const grpc_channel_filter grpc_server_census_filter;
|
43
43
|
|
44
|
-
#endif /*
|
44
|
+
#endif /* GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H */
|
@@ -0,0 +1,82 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#include <limits.h>
|
35
|
+
#include <string.h>
|
36
|
+
|
37
|
+
#include <grpc/census.h>
|
38
|
+
|
39
|
+
#include "src/core/ext/census/grpc_filter.h"
|
40
|
+
#include "src/core/lib/channel/channel_stack_builder.h"
|
41
|
+
#include "src/core/lib/surface/channel_init.h"
|
42
|
+
|
43
|
+
static bool is_census_enabled(const grpc_channel_args *a) {
|
44
|
+
size_t i;
|
45
|
+
if (a == NULL) return 0;
|
46
|
+
for (i = 0; i < a->num_args; i++) {
|
47
|
+
if (0 == strcmp(a->args[i].key, GRPC_ARG_ENABLE_CENSUS)) {
|
48
|
+
return a->args[i].value.integer != 0 && census_enabled();
|
49
|
+
}
|
50
|
+
}
|
51
|
+
return census_enabled();
|
52
|
+
}
|
53
|
+
|
54
|
+
static bool maybe_add_census_filter(grpc_channel_stack_builder *builder,
|
55
|
+
void *arg) {
|
56
|
+
const grpc_channel_args *args =
|
57
|
+
grpc_channel_stack_builder_get_channel_arguments(builder);
|
58
|
+
if (is_census_enabled(args)) {
|
59
|
+
return grpc_channel_stack_builder_prepend_filter(
|
60
|
+
builder, (const grpc_channel_filter *)arg, NULL, NULL);
|
61
|
+
}
|
62
|
+
return true;
|
63
|
+
}
|
64
|
+
|
65
|
+
void census_grpc_plugin_init(void) {
|
66
|
+
/* Only initialize census if no one else has and some features are
|
67
|
+
* available. */
|
68
|
+
if (census_enabled() == CENSUS_FEATURE_NONE &&
|
69
|
+
census_supported() != CENSUS_FEATURE_NONE) {
|
70
|
+
if (census_initialize(census_supported())) { /* enable all features. */
|
71
|
+
gpr_log(GPR_ERROR, "Could not initialize census.");
|
72
|
+
}
|
73
|
+
}
|
74
|
+
grpc_channel_init_register_stage(GRPC_CLIENT_CHANNEL, INT_MAX,
|
75
|
+
maybe_add_census_filter,
|
76
|
+
(void *)&grpc_client_census_filter);
|
77
|
+
grpc_channel_init_register_stage(GRPC_SERVER_CHANNEL, INT_MAX,
|
78
|
+
maybe_add_census_filter,
|
79
|
+
(void *)&grpc_server_census_filter);
|
80
|
+
}
|
81
|
+
|
82
|
+
void census_grpc_plugin_shutdown(void) { census_shutdown(); }
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015
|
3
|
+
* Copyright 2015, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -88,7 +88,7 @@
|
|
88
88
|
// include the name of the structure, which will be passed as the first
|
89
89
|
// argument. E.g. cl_block_initialize() will initialize a cl_block.
|
90
90
|
|
91
|
-
#include "src/core/census/mlog.h"
|
91
|
+
#include "src/core/ext/census/mlog.h"
|
92
92
|
#include <grpc/support/alloc.h>
|
93
93
|
#include <grpc/support/atm.h>
|
94
94
|
#include <grpc/support/cpu.h>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015
|
3
|
+
* Copyright 2015, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -33,8 +33,8 @@
|
|
33
33
|
|
34
34
|
/* A very fast in-memory log, optimized for multiple writers. */
|
35
35
|
|
36
|
-
#ifndef
|
37
|
-
#define
|
36
|
+
#ifndef GRPC_CORE_EXT_CENSUS_MLOG_H
|
37
|
+
#define GRPC_CORE_EXT_CENSUS_MLOG_H
|
38
38
|
|
39
39
|
#include <grpc/support/port_platform.h>
|
40
40
|
#include <stddef.h>
|
@@ -92,4 +92,4 @@ size_t census_log_remaining_space(void);
|
|
92
92
|
out-of-space. */
|
93
93
|
int64_t census_log_out_of_space_count(void);
|
94
94
|
|
95
|
-
#endif /*
|
95
|
+
#endif /* GRPC_CORE_EXT_CENSUS_MLOG_H */
|
File without changes
|
File without changes
|
@@ -31,8 +31,8 @@
|
|
31
31
|
*
|
32
32
|
*/
|
33
33
|
|
34
|
-
#ifndef
|
35
|
-
#define
|
34
|
+
#ifndef GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H
|
35
|
+
#define GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H
|
36
36
|
|
37
37
|
/* Metric ID's used for RPC measurements. */
|
38
38
|
/* Count of client requests sent. */
|
@@ -48,4 +48,4 @@
|
|
48
48
|
/* Server side request latency. */
|
49
49
|
#define CENSUS_METRIC_RPC_SERVER_LATENCY ((uint32_t)5)
|
50
50
|
|
51
|
-
#endif /*
|
51
|
+
#endif /* GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H */
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015
|
3
|
+
* Copyright 2015, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -31,16 +31,15 @@
|
|
31
31
|
*
|
32
32
|
*/
|
33
33
|
|
34
|
-
#include "src/core/surface/channel.h"
|
34
|
+
#include "src/core/lib/surface/channel.h"
|
35
35
|
|
36
36
|
#include <grpc/support/alloc.h>
|
37
37
|
#include <grpc/support/log.h>
|
38
38
|
|
39
|
-
#include "src/core/
|
40
|
-
#include "src/core/
|
41
|
-
#include "src/core/
|
42
|
-
#include "src/core/surface/
|
43
|
-
#include "src/core/surface/completion_queue.h"
|
39
|
+
#include "src/core/ext/client_config/client_channel.h"
|
40
|
+
#include "src/core/lib/iomgr/timer.h"
|
41
|
+
#include "src/core/lib/surface/api_trace.h"
|
42
|
+
#include "src/core/lib/surface/completion_queue.h"
|
44
43
|
|
45
44
|
grpc_connectivity_state grpc_channel_check_connectivity_state(
|
46
45
|
grpc_channel *channel, int try_to_connect) {
|
@@ -58,12 +57,6 @@ grpc_connectivity_state grpc_channel_check_connectivity_state(
|
|
58
57
|
grpc_exec_ctx_finish(&exec_ctx);
|
59
58
|
return state;
|
60
59
|
}
|
61
|
-
if (client_channel_elem->filter == &grpc_client_uchannel_filter) {
|
62
|
-
state = grpc_client_uchannel_check_connectivity_state(
|
63
|
-
&exec_ctx, client_channel_elem, try_to_connect);
|
64
|
-
grpc_exec_ctx_finish(&exec_ctx);
|
65
|
-
return state;
|
66
|
-
}
|
67
60
|
gpr_log(GPR_ERROR,
|
68
61
|
"grpc_channel_check_connectivity_state called on something that is "
|
69
62
|
"not a (u)client channel, but '%s'",
|
@@ -98,9 +91,6 @@ static void delete_state_watcher(grpc_exec_ctx *exec_ctx, state_watcher *w) {
|
|
98
91
|
if (client_channel_elem->filter == &grpc_client_channel_filter) {
|
99
92
|
GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, w->channel,
|
100
93
|
"watch_channel_connectivity");
|
101
|
-
} else if (client_channel_elem->filter == &grpc_client_uchannel_filter) {
|
102
|
-
GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, w->channel,
|
103
|
-
"watch_uchannel_connectivity");
|
104
94
|
} else {
|
105
95
|
abort();
|
106
96
|
}
|
@@ -209,11 +199,8 @@ void grpc_channel_watch_connectivity_state(
|
|
209
199
|
grpc_client_channel_watch_connectivity_state(&exec_ctx, client_channel_elem,
|
210
200
|
grpc_cq_pollset(cq), &w->state,
|
211
201
|
&w->on_complete);
|
212
|
-
} else
|
213
|
-
|
214
|
-
grpc_client_uchannel_watch_connectivity_state(
|
215
|
-
&exec_ctx, client_channel_elem, grpc_cq_pollset(cq), &w->state,
|
216
|
-
&w->on_complete);
|
202
|
+
} else {
|
203
|
+
abort();
|
217
204
|
}
|
218
205
|
|
219
206
|
grpc_exec_ctx_finish(&exec_ctx);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015
|
3
|
+
* Copyright 2015, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -31,7 +31,7 @@
|
|
31
31
|
*
|
32
32
|
*/
|
33
33
|
|
34
|
-
#include "src/core/
|
34
|
+
#include "src/core/ext/client_config/client_channel.h"
|
35
35
|
|
36
36
|
#include <stdio.h>
|
37
37
|
#include <string.h>
|
@@ -41,14 +41,14 @@
|
|
41
41
|
#include <grpc/support/sync.h>
|
42
42
|
#include <grpc/support/useful.h>
|
43
43
|
|
44
|
-
#include "src/core/
|
45
|
-
#include "src/core/channel/
|
46
|
-
#include "src/core/channel/
|
47
|
-
#include "src/core/iomgr/iomgr.h"
|
48
|
-
#include "src/core/profiling/timers.h"
|
49
|
-
#include "src/core/support/string.h"
|
50
|
-
#include "src/core/surface/channel.h"
|
51
|
-
#include "src/core/transport/connectivity_state.h"
|
44
|
+
#include "src/core/ext/client_config/subchannel_call_holder.h"
|
45
|
+
#include "src/core/lib/channel/channel_args.h"
|
46
|
+
#include "src/core/lib/channel/connected_channel.h"
|
47
|
+
#include "src/core/lib/iomgr/iomgr.h"
|
48
|
+
#include "src/core/lib/profiling/timers.h"
|
49
|
+
#include "src/core/lib/support/string.h"
|
50
|
+
#include "src/core/lib/surface/channel.h"
|
51
|
+
#include "src/core/lib/transport/connectivity_state.h"
|
52
52
|
|
53
53
|
/* Client channel implementation */
|
54
54
|
|
@@ -114,6 +114,22 @@ static void watch_lb_policy(grpc_exec_ctx *exec_ctx, channel_data *chand,
|
|
114
114
|
grpc_lb_policy *lb_policy,
|
115
115
|
grpc_connectivity_state current_state);
|
116
116
|
|
117
|
+
static void set_channel_connectivity_state_locked(grpc_exec_ctx *exec_ctx,
|
118
|
+
channel_data *chand,
|
119
|
+
grpc_connectivity_state state,
|
120
|
+
const char *reason) {
|
121
|
+
if ((state == GRPC_CHANNEL_TRANSIENT_FAILURE ||
|
122
|
+
state == GRPC_CHANNEL_FATAL_FAILURE) &&
|
123
|
+
chand->lb_policy != NULL) {
|
124
|
+
/* cancel fail-fast picks */
|
125
|
+
grpc_lb_policy_cancel_picks(
|
126
|
+
exec_ctx, chand->lb_policy,
|
127
|
+
/* mask= */ GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY,
|
128
|
+
/* check= */ 0);
|
129
|
+
}
|
130
|
+
grpc_connectivity_state_set(exec_ctx, &chand->state_tracker, state, reason);
|
131
|
+
}
|
132
|
+
|
117
133
|
static void on_lb_policy_state_changed_locked(
|
118
134
|
grpc_exec_ctx *exec_ctx, lb_policy_connectivity_watcher *w) {
|
119
135
|
grpc_connectivity_state publish_state = w->state;
|
@@ -127,8 +143,8 @@ static void on_lb_policy_state_changed_locked(
|
|
127
143
|
GRPC_LB_POLICY_UNREF(exec_ctx, w->chand->lb_policy, "channel");
|
128
144
|
w->chand->lb_policy = NULL;
|
129
145
|
}
|
130
|
-
|
131
|
-
|
146
|
+
set_channel_connectivity_state_locked(exec_ctx, w->chand, publish_state,
|
147
|
+
"lb_changed");
|
132
148
|
if (w->state != GRPC_CHANNEL_FATAL_FAILURE) {
|
133
149
|
watch_lb_policy(exec_ctx, w->chand, w->lb_policy, w->state);
|
134
150
|
}
|
@@ -189,7 +205,11 @@ static void cc_on_config_changed(grpc_exec_ctx *exec_ctx, void *arg,
|
|
189
205
|
gpr_mu_lock(&chand->mu_config);
|
190
206
|
old_lb_policy = chand->lb_policy;
|
191
207
|
chand->lb_policy = lb_policy;
|
192
|
-
if (lb_policy != NULL
|
208
|
+
if (lb_policy != NULL) {
|
209
|
+
grpc_exec_ctx_enqueue_list(exec_ctx, &chand->waiting_for_config_closures,
|
210
|
+
NULL);
|
211
|
+
} else if (chand->resolver == NULL /* disconnected */) {
|
212
|
+
grpc_closure_list_fail_all(&chand->waiting_for_config_closures);
|
193
213
|
grpc_exec_ctx_enqueue_list(exec_ctx, &chand->waiting_for_config_closures,
|
194
214
|
NULL);
|
195
215
|
}
|
@@ -200,8 +220,8 @@ static void cc_on_config_changed(grpc_exec_ctx *exec_ctx, void *arg,
|
|
200
220
|
}
|
201
221
|
|
202
222
|
if (iomgr_success && chand->resolver) {
|
203
|
-
|
204
|
-
|
223
|
+
set_channel_connectivity_state_locked(exec_ctx, chand, state,
|
224
|
+
"new_lb+resolver");
|
205
225
|
if (lb_policy != NULL) {
|
206
226
|
watch_lb_policy(exec_ctx, chand, lb_policy, state);
|
207
227
|
}
|
@@ -216,8 +236,8 @@ static void cc_on_config_changed(grpc_exec_ctx *exec_ctx, void *arg,
|
|
216
236
|
GRPC_RESOLVER_UNREF(exec_ctx, chand->resolver, "channel");
|
217
237
|
chand->resolver = NULL;
|
218
238
|
}
|
219
|
-
|
220
|
-
|
239
|
+
set_channel_connectivity_state_locked(
|
240
|
+
exec_ctx, chand, GRPC_CHANNEL_FATAL_FAILURE, "resolver_gone");
|
221
241
|
gpr_mu_unlock(&chand->mu_config);
|
222
242
|
}
|
223
243
|
|
@@ -272,11 +292,16 @@ static void cc_start_transport_op(grpc_exec_ctx *exec_ctx,
|
|
272
292
|
}
|
273
293
|
|
274
294
|
if (op->disconnect && chand->resolver != NULL) {
|
275
|
-
|
276
|
-
|
295
|
+
set_channel_connectivity_state_locked(
|
296
|
+
exec_ctx, chand, GRPC_CHANNEL_FATAL_FAILURE, "disconnect");
|
277
297
|
grpc_resolver_shutdown(exec_ctx, chand->resolver);
|
278
298
|
GRPC_RESOLVER_UNREF(exec_ctx, chand->resolver, "channel");
|
279
299
|
chand->resolver = NULL;
|
300
|
+
if (!chand->started_resolving) {
|
301
|
+
grpc_closure_list_fail_all(&chand->waiting_for_config_closures);
|
302
|
+
grpc_exec_ctx_enqueue_list(exec_ctx, &chand->waiting_for_config_closures,
|
303
|
+
NULL);
|
304
|
+
}
|
280
305
|
if (chand->lb_policy != NULL) {
|
281
306
|
grpc_pollset_set_del_pollset_set(exec_ctx,
|
282
307
|
chand->lb_policy->interested_parties,
|
@@ -290,6 +315,7 @@ static void cc_start_transport_op(grpc_exec_ctx *exec_ctx,
|
|
290
315
|
|
291
316
|
typedef struct {
|
292
317
|
grpc_metadata_batch *initial_metadata;
|
318
|
+
uint32_t initial_metadata_flags;
|
293
319
|
grpc_connected_subchannel **connected_subchannel;
|
294
320
|
grpc_closure *on_ready;
|
295
321
|
grpc_call_element *elem;
|
@@ -298,16 +324,18 @@ typedef struct {
|
|
298
324
|
|
299
325
|
static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *arg,
|
300
326
|
grpc_metadata_batch *initial_metadata,
|
327
|
+
uint32_t initial_metadata_flags,
|
301
328
|
grpc_connected_subchannel **connected_subchannel,
|
302
329
|
grpc_closure *on_ready);
|
303
330
|
|
304
331
|
static void continue_picking(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
|
305
332
|
continue_picking_args *cpa = arg;
|
306
|
-
if (
|
307
|
-
grpc_exec_ctx_enqueue(exec_ctx, cpa->on_ready, false, NULL);
|
308
|
-
} else if (cpa->connected_subchannel == NULL) {
|
333
|
+
if (cpa->connected_subchannel == NULL) {
|
309
334
|
/* cancelled, do nothing */
|
335
|
+
} else if (!success) {
|
336
|
+
grpc_exec_ctx_enqueue(exec_ctx, cpa->on_ready, false, NULL);
|
310
337
|
} else if (cc_pick_subchannel(exec_ctx, cpa->elem, cpa->initial_metadata,
|
338
|
+
cpa->initial_metadata_flags,
|
311
339
|
cpa->connected_subchannel, cpa->on_ready)) {
|
312
340
|
grpc_exec_ctx_enqueue(exec_ctx, cpa->on_ready, true, NULL);
|
313
341
|
}
|
@@ -316,6 +344,7 @@ static void continue_picking(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
|
|
316
344
|
|
317
345
|
static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *elemp,
|
318
346
|
grpc_metadata_batch *initial_metadata,
|
347
|
+
uint32_t initial_metadata_flags,
|
319
348
|
grpc_connected_subchannel **connected_subchannel,
|
320
349
|
grpc_closure *on_ready) {
|
321
350
|
grpc_call_element *elem = elemp;
|
@@ -349,7 +378,8 @@ static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *elemp,
|
|
349
378
|
GRPC_LB_POLICY_REF(lb_policy, "cc_pick_subchannel");
|
350
379
|
gpr_mu_unlock(&chand->mu_config);
|
351
380
|
r = grpc_lb_policy_pick(exec_ctx, lb_policy, calld->pollset,
|
352
|
-
initial_metadata,
|
381
|
+
initial_metadata, initial_metadata_flags,
|
382
|
+
connected_subchannel, on_ready);
|
353
383
|
GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "cc_pick_subchannel");
|
354
384
|
return r;
|
355
385
|
}
|
@@ -360,13 +390,19 @@ static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *elemp,
|
|
360
390
|
&chand->incoming_configuration,
|
361
391
|
&chand->on_config_changed);
|
362
392
|
}
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
393
|
+
if (chand->resolver != NULL) {
|
394
|
+
cpa = gpr_malloc(sizeof(*cpa));
|
395
|
+
cpa->initial_metadata = initial_metadata;
|
396
|
+
cpa->initial_metadata_flags = initial_metadata_flags;
|
397
|
+
cpa->connected_subchannel = connected_subchannel;
|
398
|
+
cpa->on_ready = on_ready;
|
399
|
+
cpa->elem = elem;
|
400
|
+
grpc_closure_init(&cpa->closure, continue_picking, cpa);
|
401
|
+
grpc_closure_list_add(&chand->waiting_for_config_closures, &cpa->closure,
|
402
|
+
1);
|
403
|
+
} else {
|
404
|
+
grpc_exec_ctx_enqueue(exec_ctx, on_ready, false, NULL);
|
405
|
+
}
|
370
406
|
gpr_mu_unlock(&chand->mu_config);
|
371
407
|
return 0;
|
372
408
|
}
|
@@ -379,9 +415,10 @@ static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
|
|
379
415
|
}
|
380
416
|
|
381
417
|
/* Destructor for call_data */
|
382
|
-
static void destroy_call_elem(grpc_exec_ctx *exec_ctx,
|
383
|
-
|
418
|
+
static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
|
419
|
+
void *and_free_memory) {
|
384
420
|
grpc_subchannel_call_holder_destroy(exec_ctx, elem->call_data);
|
421
|
+
gpr_free(and_free_memory);
|
385
422
|
}
|
386
423
|
|
387
424
|
/* Constructor for channel_data */
|
@@ -431,9 +468,17 @@ static void cc_set_pollset(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
|
|
431
468
|
}
|
432
469
|
|
433
470
|
const grpc_channel_filter grpc_client_channel_filter = {
|
434
|
-
cc_start_transport_stream_op,
|
435
|
-
|
436
|
-
|
471
|
+
cc_start_transport_stream_op,
|
472
|
+
cc_start_transport_op,
|
473
|
+
sizeof(call_data),
|
474
|
+
init_call_elem,
|
475
|
+
cc_set_pollset,
|
476
|
+
destroy_call_elem,
|
477
|
+
sizeof(channel_data),
|
478
|
+
init_channel_elem,
|
479
|
+
destroy_channel_elem,
|
480
|
+
cc_get_peer,
|
481
|
+
"client-channel",
|
437
482
|
};
|
438
483
|
|
439
484
|
void grpc_client_channel_set_resolver(grpc_exec_ctx *exec_ctx,
|