wearefair-grpc 1.3.1.pre.a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.yardopts +1 -0
- data/Makefile +19484 -0
- data/etc/roots.pem +5288 -0
- data/include/grpc/byte_buffer.h +102 -0
- data/include/grpc/byte_buffer_reader.h +39 -0
- data/include/grpc/census.h +484 -0
- data/include/grpc/compression.h +85 -0
- data/include/grpc/grpc.h +509 -0
- data/include/grpc/grpc_cronet.h +51 -0
- data/include/grpc/grpc_posix.h +81 -0
- data/include/grpc/grpc_security.h +390 -0
- data/include/grpc/grpc_security_constants.h +114 -0
- data/include/grpc/impl/codegen/atm.h +100 -0
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +97 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +97 -0
- data/include/grpc/impl/codegen/atm_windows.h +140 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +57 -0
- data/include/grpc/impl/codegen/compression_types.h +122 -0
- data/include/grpc/impl/codegen/connectivity_state.h +61 -0
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +41 -0
- data/include/grpc/impl/codegen/gpr_slice.h +84 -0
- data/include/grpc/impl/codegen/gpr_types.h +75 -0
- data/include/grpc/impl/codegen/grpc_types.h +550 -0
- data/include/grpc/impl/codegen/port_platform.h +421 -0
- data/include/grpc/impl/codegen/propagation_bits.h +67 -0
- data/include/grpc/impl/codegen/slice.h +157 -0
- data/include/grpc/impl/codegen/status.h +163 -0
- data/include/grpc/impl/codegen/sync.h +75 -0
- data/include/grpc/impl/codegen/sync_generic.h +55 -0
- data/include/grpc/impl/codegen/sync_posix.h +47 -0
- data/include/grpc/impl/codegen/sync_windows.h +49 -0
- data/include/grpc/load_reporting.h +63 -0
- data/include/grpc/module.modulemap +13 -0
- data/include/grpc/slice.h +168 -0
- data/include/grpc/slice_buffer.h +94 -0
- data/include/grpc/status.h +39 -0
- data/include/grpc/support/alloc.h +82 -0
- data/include/grpc/support/atm.h +39 -0
- data/include/grpc/support/atm_gcc_atomic.h +39 -0
- data/include/grpc/support/atm_gcc_sync.h +39 -0
- data/include/grpc/support/atm_windows.h +39 -0
- data/include/grpc/support/avl.h +97 -0
- data/include/grpc/support/cmdline.h +103 -0
- data/include/grpc/support/cpu.h +59 -0
- data/include/grpc/support/histogram.h +79 -0
- data/include/grpc/support/host_port.h +66 -0
- data/include/grpc/support/log.h +118 -0
- data/include/grpc/support/log_windows.h +53 -0
- data/include/grpc/support/port_platform.h +39 -0
- data/include/grpc/support/string_util.h +64 -0
- data/include/grpc/support/subprocess.h +59 -0
- data/include/grpc/support/sync.h +295 -0
- data/include/grpc/support/sync_generic.h +39 -0
- data/include/grpc/support/sync_posix.h +39 -0
- data/include/grpc/support/sync_windows.h +39 -0
- data/include/grpc/support/thd.h +91 -0
- data/include/grpc/support/time.h +105 -0
- data/include/grpc/support/tls.h +77 -0
- data/include/grpc/support/tls_gcc.h +100 -0
- data/include/grpc/support/tls_msvc.h +56 -0
- data/include/grpc/support/tls_pthread.h +60 -0
- data/include/grpc/support/useful.h +80 -0
- data/src/boringssl/err_data.c +1270 -0
- data/src/core/ext/census/aggregation.h +66 -0
- data/src/core/ext/census/base_resources.c +71 -0
- data/src/core/ext/census/base_resources.h +39 -0
- data/src/core/ext/census/census_interface.h +76 -0
- data/src/core/ext/census/census_rpc_stats.h +101 -0
- data/src/core/ext/census/context.c +509 -0
- data/src/core/ext/census/gen/census.pb.c +176 -0
- data/src/core/ext/census/gen/census.pb.h +295 -0
- data/src/core/ext/census/gen/trace_context.pb.c +54 -0
- data/src/core/ext/census/gen/trace_context.pb.h +93 -0
- data/src/core/ext/census/grpc_context.c +53 -0
- data/src/core/ext/census/grpc_filter.c +213 -0
- data/src/core/ext/census/grpc_filter.h +44 -0
- data/src/core/ext/census/grpc_plugin.c +85 -0
- data/src/core/ext/census/initialize.c +66 -0
- data/src/core/ext/census/mlog.c +600 -0
- data/src/core/ext/census/mlog.h +95 -0
- data/src/core/ext/census/operation.c +63 -0
- data/src/core/ext/census/placeholders.c +64 -0
- data/src/core/ext/census/resource.c +312 -0
- data/src/core/ext/census/resource.h +63 -0
- data/src/core/ext/census/rpc_metric_id.h +51 -0
- data/src/core/ext/census/trace_context.c +86 -0
- data/src/core/ext/census/trace_context.h +71 -0
- data/src/core/ext/census/trace_label.h +61 -0
- data/src/core/ext/census/trace_propagation.h +63 -0
- data/src/core/ext/census/trace_status.h +45 -0
- data/src/core/ext/census/trace_string.h +50 -0
- data/src/core/ext/census/tracing.c +71 -0
- data/src/core/ext/census/tracing.h +124 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.c +226 -0
- data/src/core/ext/filters/client_channel/client_channel.c +1410 -0
- data/src/core/ext/filters/client_channel/client_channel.h +64 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.c +87 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +92 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.c +106 -0
- data/src/core/ext/filters/client_channel/connector.c +55 -0
- data/src/core/ext/filters/client_channel/connector.h +88 -0
- data/src/core/ext/filters/client_channel/http_connect_handshaker.c +389 -0
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +49 -0
- data/src/core/ext/filters/client_channel/http_proxy.c +125 -0
- data/src/core/ext/filters/client_channel/http_proxy.h +39 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.c +1419 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +44 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.c +107 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.c +249 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +105 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +88 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +158 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +476 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +795 -0
- data/src/core/ext/filters/client_channel/lb_policy.c +167 -0
- data/src/core/ext/filters/client_channel/lb_policy.h +209 -0
- data/src/core/ext/filters/client_channel/lb_policy_factory.c +163 -0
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +134 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.c +85 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +55 -0
- data/src/core/ext/filters/client_channel/parse_address.c +170 -0
- data/src/core/ext/filters/client_channel/parse_address.h +54 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.c +63 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +89 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.c +139 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +59 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.c +350 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +66 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c +319 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.c +289 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +64 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.c +325 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.c +234 -0
- data/src/core/ext/filters/client_channel/resolver.c +88 -0
- data/src/core/ext/filters/client_channel/resolver.h +101 -0
- data/src/core/ext/filters/client_channel/resolver_factory.c +56 -0
- data/src/core/ext/filters/client_channel/resolver_factory.h +85 -0
- data/src/core/ext/filters/client_channel/resolver_registry.c +174 -0
- data/src/core/ext/filters/client_channel/resolver_registry.h +84 -0
- data/src/core/ext/filters/client_channel/retry_throttle.c +210 -0
- data/src/core/ext/filters/client_channel/retry_throttle.h +65 -0
- data/src/core/ext/filters/client_channel/subchannel.c +835 -0
- data/src/core/ext/filters/client_channel/subchannel.h +203 -0
- data/src/core/ext/filters/client_channel/subchannel_index.c +262 -0
- data/src/core/ext/filters/client_channel/subchannel_index.h +77 -0
- data/src/core/ext/filters/client_channel/uri_parser.c +315 -0
- data/src/core/ext/filters/client_channel/uri_parser.h +65 -0
- data/src/core/ext/filters/load_reporting/load_reporting.c +106 -0
- data/src/core/ext/filters/load_reporting/load_reporting.h +73 -0
- data/src/core/ext/filters/load_reporting/load_reporting_filter.c +218 -0
- data/src/core/ext/filters/load_reporting/load_reporting_filter.h +42 -0
- data/src/core/ext/filters/max_age/max_age_filter.c +439 -0
- data/src/core/ext/filters/max_age/max_age_filter.h +39 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.c +56 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.h +49 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.c +221 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +41 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +121 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c +95 -0
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +239 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.c +304 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +47 -0
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +59 -0
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c +90 -0
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +101 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.c +236 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +67 -0
- data/src/core/ext/transport/chttp2/transport/bin_encoder.c +241 -0
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +54 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +43 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +2847 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +53 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +61 -0
- data/src/core/ext/transport/chttp2/transport/frame_data.c +287 -0
- data/src/core/ext/transport/chttp2/transport/frame_data.h +104 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.c +198 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +78 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.c +145 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +59 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +125 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +58 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.c +239 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +76 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.c +134 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +57 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +661 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +107 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.c +1734 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +129 -0
- data/src/core/ext/transport/chttp2/transport/hpack_table.c +383 -0
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +112 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.c +75 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +74 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.c +105 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +48 -0
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +88 -0
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +63 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +852 -0
- data/src/core/ext/transport/chttp2/transport/parsing.c +825 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.c +194 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.c +176 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.h +83 -0
- data/src/core/ext/transport/chttp2/transport/varint.c +65 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +75 -0
- data/src/core/ext/transport/chttp2/transport/writing.c +429 -0
- data/src/core/lib/channel/channel_args.c +355 -0
- data/src/core/lib/channel/channel_args.h +126 -0
- data/src/core/lib/channel/channel_stack.c +291 -0
- data/src/core/lib/channel/channel_stack.h +319 -0
- data/src/core/lib/channel/channel_stack_builder.c +284 -0
- data/src/core/lib/channel/channel_stack_builder.h +170 -0
- data/src/core/lib/channel/compress_filter.c +353 -0
- data/src/core/lib/channel/compress_filter.h +67 -0
- data/src/core/lib/channel/connected_channel.c +188 -0
- data/src/core/lib/channel/connected_channel.h +48 -0
- data/src/core/lib/channel/context.h +64 -0
- data/src/core/lib/channel/deadline_filter.c +348 -0
- data/src/core/lib/channel/deadline_filter.h +102 -0
- data/src/core/lib/channel/handshaker.c +281 -0
- data/src/core/lib/channel/handshaker.h +182 -0
- data/src/core/lib/channel/handshaker_factory.c +54 -0
- data/src/core/lib/channel/handshaker_factory.h +66 -0
- data/src/core/lib/channel/handshaker_registry.c +113 -0
- data/src/core/lib/channel/handshaker_registry.h +63 -0
- data/src/core/lib/channel/http_client_filter.c +601 -0
- data/src/core/lib/channel/http_client_filter.h +47 -0
- data/src/core/lib/channel/http_server_filter.c +445 -0
- data/src/core/lib/channel/http_server_filter.h +42 -0
- data/src/core/lib/channel/message_size_filter.c +270 -0
- data/src/core/lib/channel/message_size_filter.h +39 -0
- data/src/core/lib/compression/algorithm_metadata.h +53 -0
- data/src/core/lib/compression/compression.c +198 -0
- data/src/core/lib/compression/message_compress.c +204 -0
- data/src/core/lib/compression/message_compress.h +54 -0
- data/src/core/lib/debug/trace.c +140 -0
- data/src/core/lib/debug/trace.h +43 -0
- data/src/core/lib/http/format_request.c +135 -0
- data/src/core/lib/http/format_request.h +47 -0
- data/src/core/lib/http/httpcli.c +336 -0
- data/src/core/lib/http/httpcli.h +141 -0
- data/src/core/lib/http/httpcli_security_connector.c +199 -0
- data/src/core/lib/http/parser.c +379 -0
- data/src/core/lib/http/parser.h +126 -0
- data/src/core/lib/iomgr/closure.c +168 -0
- data/src/core/lib/iomgr/closure.h +153 -0
- data/src/core/lib/iomgr/combiner.c +460 -0
- data/src/core/lib/iomgr/combiner.h +83 -0
- data/src/core/lib/iomgr/endpoint.c +78 -0
- data/src/core/lib/iomgr/endpoint.h +117 -0
- data/src/core/lib/iomgr/endpoint_pair.h +47 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.c +87 -0
- data/src/core/lib/iomgr/endpoint_pair_uv.c +53 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.c +101 -0
- data/src/core/lib/iomgr/error.c +793 -0
- data/src/core/lib/iomgr/error.h +218 -0
- data/src/core/lib/iomgr/error_internal.h +75 -0
- data/src/core/lib/iomgr/ev_epoll_linux.c +1965 -0
- data/src/core/lib/iomgr/ev_epoll_linux.h +48 -0
- data/src/core/lib/iomgr/ev_poll_posix.c +1593 -0
- data/src/core/lib/iomgr/ev_poll_posix.h +42 -0
- data/src/core/lib/iomgr/ev_posix.c +287 -0
- data/src/core/lib/iomgr/ev_posix.h +189 -0
- data/src/core/lib/iomgr/exec_ctx.c +117 -0
- data/src/core/lib/iomgr/exec_ctx.h +117 -0
- data/src/core/lib/iomgr/executor.c +170 -0
- data/src/core/lib/iomgr/executor.h +51 -0
- data/src/core/lib/iomgr/iocp_windows.c +168 -0
- data/src/core/lib/iomgr/iocp_windows.h +55 -0
- data/src/core/lib/iomgr/iomgr.c +183 -0
- data/src/core/lib/iomgr/iomgr.h +47 -0
- data/src/core/lib/iomgr/iomgr_internal.h +58 -0
- data/src/core/lib/iomgr/iomgr_posix.c +56 -0
- data/src/core/lib/iomgr/iomgr_posix.h +39 -0
- data/src/core/lib/iomgr/iomgr_uv.c +49 -0
- data/src/core/lib/iomgr/iomgr_windows.c +76 -0
- data/src/core/lib/iomgr/load_file.c +92 -0
- data/src/core/lib/iomgr/load_file.h +56 -0
- data/src/core/lib/iomgr/lockfree_event.c +238 -0
- data/src/core/lib/iomgr/lockfree_event.h +54 -0
- data/src/core/lib/iomgr/network_status_tracker.c +48 -0
- data/src/core/lib/iomgr/network_status_tracker.h +45 -0
- data/src/core/lib/iomgr/polling_entity.c +104 -0
- data/src/core/lib/iomgr/polling_entity.h +81 -0
- data/src/core/lib/iomgr/pollset.h +97 -0
- data/src/core/lib/iomgr/pollset_set.h +62 -0
- data/src/core/lib/iomgr/pollset_set_uv.c +63 -0
- data/src/core/lib/iomgr/pollset_set_windows.c +64 -0
- data/src/core/lib/iomgr/pollset_set_windows.h +39 -0
- data/src/core/lib/iomgr/pollset_uv.c +156 -0
- data/src/core/lib/iomgr/pollset_uv.h +42 -0
- data/src/core/lib/iomgr/pollset_windows.c +232 -0
- data/src/core/lib/iomgr/pollset_windows.h +78 -0
- data/src/core/lib/iomgr/port.h +138 -0
- data/src/core/lib/iomgr/resolve_address.h +70 -0
- data/src/core/lib/iomgr/resolve_address_posix.c +207 -0
- data/src/core/lib/iomgr/resolve_address_uv.c +284 -0
- data/src/core/lib/iomgr/resolve_address_windows.c +190 -0
- data/src/core/lib/iomgr/resource_quota.c +877 -0
- data/src/core/lib/iomgr/resource_quota.h +167 -0
- data/src/core/lib/iomgr/sockaddr.h +55 -0
- data/src/core/lib/iomgr/sockaddr_posix.h +44 -0
- data/src/core/lib/iomgr/sockaddr_utils.c +272 -0
- data/src/core/lib/iomgr/sockaddr_utils.h +93 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +43 -0
- data/src/core/lib/iomgr/socket_factory_posix.c +110 -0
- data/src/core/lib/iomgr/socket_factory_posix.h +90 -0
- data/src/core/lib/iomgr/socket_mutator.c +98 -0
- data/src/core/lib/iomgr/socket_mutator.h +80 -0
- data/src/core/lib/iomgr/socket_utils.h +42 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.c +330 -0
- data/src/core/lib/iomgr/socket_utils_linux.c +57 -0
- data/src/core/lib/iomgr/socket_utils_posix.c +73 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +147 -0
- data/src/core/lib/iomgr/socket_utils_uv.c +49 -0
- data/src/core/lib/iomgr/socket_utils_windows.c +52 -0
- data/src/core/lib/iomgr/socket_windows.c +167 -0
- data/src/core/lib/iomgr/socket_windows.h +125 -0
- data/src/core/lib/iomgr/tcp_client.h +55 -0
- data/src/core/lib/iomgr/tcp_client_posix.c +368 -0
- data/src/core/lib/iomgr/tcp_client_posix.h +45 -0
- data/src/core/lib/iomgr/tcp_client_uv.c +192 -0
- data/src/core/lib/iomgr/tcp_client_windows.c +260 -0
- data/src/core/lib/iomgr/tcp_posix.c +677 -0
- data/src/core/lib/iomgr/tcp_posix.h +70 -0
- data/src/core/lib/iomgr/tcp_server.h +116 -0
- data/src/core/lib/iomgr/tcp_server_posix.c +579 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +135 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.c +221 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.c +196 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.c +49 -0
- data/src/core/lib/iomgr/tcp_server_uv.c +393 -0
- data/src/core/lib/iomgr/tcp_server_windows.c +558 -0
- data/src/core/lib/iomgr/tcp_uv.c +374 -0
- data/src/core/lib/iomgr/tcp_uv.h +59 -0
- data/src/core/lib/iomgr/tcp_windows.c +462 -0
- data/src/core/lib/iomgr/tcp_windows.h +59 -0
- data/src/core/lib/iomgr/time_averaged_stats.c +77 -0
- data/src/core/lib/iomgr/time_averaged_stats.h +88 -0
- data/src/core/lib/iomgr/timer.h +111 -0
- data/src/core/lib/iomgr/timer_generic.c +567 -0
- data/src/core/lib/iomgr/timer_generic.h +49 -0
- data/src/core/lib/iomgr/timer_heap.c +152 -0
- data/src/core/lib/iomgr/timer_heap.h +57 -0
- data/src/core/lib/iomgr/timer_uv.c +103 -0
- data/src/core/lib/iomgr/timer_uv.h +47 -0
- data/src/core/lib/iomgr/udp_server.c +529 -0
- data/src/core/lib/iomgr/udp_server.h +89 -0
- data/src/core/lib/iomgr/unix_sockets_posix.c +108 -0
- data/src/core/lib/iomgr/unix_sockets_posix.h +56 -0
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +62 -0
- data/src/core/lib/iomgr/wakeup_fd_cv.c +118 -0
- data/src/core/lib/iomgr/wakeup_fd_cv.h +80 -0
- data/src/core/lib/iomgr/wakeup_fd_eventfd.c +97 -0
- data/src/core/lib/iomgr/wakeup_fd_nospecial.c +51 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.c +112 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +41 -0
- data/src/core/lib/iomgr/wakeup_fd_posix.c +101 -0
- data/src/core/lib/iomgr/wakeup_fd_posix.h +109 -0
- data/src/core/lib/iomgr/workqueue.h +87 -0
- data/src/core/lib/iomgr/workqueue_uv.c +65 -0
- data/src/core/lib/iomgr/workqueue_uv.h +37 -0
- data/src/core/lib/iomgr/workqueue_windows.c +63 -0
- data/src/core/lib/iomgr/workqueue_windows.h +37 -0
- data/src/core/lib/json/json.c +63 -0
- data/src/core/lib/json/json.h +88 -0
- data/src/core/lib/json/json_common.h +49 -0
- data/src/core/lib/json/json_reader.c +675 -0
- data/src/core/lib/json/json_reader.h +160 -0
- data/src/core/lib/json/json_string.c +379 -0
- data/src/core/lib/json/json_writer.c +258 -0
- data/src/core/lib/json/json_writer.h +97 -0
- data/src/core/lib/profiling/basic_timers.c +298 -0
- data/src/core/lib/profiling/stap_timers.c +65 -0
- data/src/core/lib/profiling/timers.h +121 -0
- data/src/core/lib/security/context/security_context.c +350 -0
- data/src/core/lib/security/context/security_context.h +134 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.c +274 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +72 -0
- data/src/core/lib/security/credentials/credentials.c +308 -0
- data/src/core/lib/security/credentials/credentials.h +268 -0
- data/src/core/lib/security/credentials/credentials_metadata.c +103 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.c +141 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.h +71 -0
- data/src/core/lib/security/credentials/google_default/credentials_generic.c +54 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.c +337 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +60 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.c +85 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.h +44 -0
- data/src/core/lib/security/credentials/jwt/json_token.c +321 -0
- data/src/core/lib/security/credentials/jwt/json_token.h +88 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.c +195 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +63 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.c +910 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +140 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +468 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +109 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.c +153 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +45 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +242 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +48 -0
- data/src/core/lib/security/transport/auth_filters.h +42 -0
- data/src/core/lib/security/transport/client_auth_filter.c +384 -0
- data/src/core/lib/security/transport/lb_targets_info.c +70 -0
- data/src/core/lib/security/transport/lb_targets_info.h +47 -0
- data/src/core/lib/security/transport/secure_endpoint.c +427 -0
- data/src/core/lib/security/transport/secure_endpoint.h +49 -0
- data/src/core/lib/security/transport/security_connector.c +909 -0
- data/src/core/lib/security/transport/security_connector.h +252 -0
- data/src/core/lib/security/transport/security_handshaker.c +507 -0
- data/src/core/lib/security/transport/security_handshaker.h +49 -0
- data/src/core/lib/security/transport/server_auth_filter.c +277 -0
- data/src/core/lib/security/transport/tsi_error.c +42 -0
- data/src/core/lib/security/transport/tsi_error.h +42 -0
- data/src/core/lib/security/util/json_util.c +61 -0
- data/src/core/lib/security/util/json_util.h +55 -0
- data/src/core/lib/slice/b64.c +251 -0
- data/src/core/lib/slice/b64.h +65 -0
- data/src/core/lib/slice/percent_encoding.c +182 -0
- data/src/core/lib/slice/percent_encoding.h +78 -0
- data/src/core/lib/slice/slice.c +466 -0
- data/src/core/lib/slice/slice_buffer.c +355 -0
- data/src/core/lib/slice/slice_hash_table.c +125 -0
- data/src/core/lib/slice/slice_hash_table.h +77 -0
- data/src/core/lib/slice/slice_intern.c +346 -0
- data/src/core/lib/slice/slice_internal.h +64 -0
- data/src/core/lib/slice/slice_string_helpers.c +95 -0
- data/src/core/lib/slice/slice_string_helpers.h +63 -0
- data/src/core/lib/support/alloc.c +117 -0
- data/src/core/lib/support/arena.c +98 -0
- data/src/core/lib/support/arena.h +54 -0
- data/src/core/lib/support/atm.c +47 -0
- data/src/core/lib/support/avl.c +299 -0
- data/src/core/lib/support/backoff.c +87 -0
- data/src/core/lib/support/backoff.h +71 -0
- data/src/core/lib/support/block_annotate.h +48 -0
- data/src/core/lib/support/cmdline.c +345 -0
- data/src/core/lib/support/cpu_iphone.c +49 -0
- data/src/core/lib/support/cpu_linux.c +83 -0
- data/src/core/lib/support/cpu_posix.c +72 -0
- data/src/core/lib/support/cpu_windows.c +47 -0
- data/src/core/lib/support/env.h +58 -0
- data/src/core/lib/support/env_linux.c +89 -0
- data/src/core/lib/support/env_posix.c +57 -0
- data/src/core/lib/support/env_windows.c +79 -0
- data/src/core/lib/support/histogram.c +243 -0
- data/src/core/lib/support/host_port.c +110 -0
- data/src/core/lib/support/log.c +103 -0
- data/src/core/lib/support/log_android.c +87 -0
- data/src/core/lib/support/log_linux.c +105 -0
- data/src/core/lib/support/log_posix.c +106 -0
- data/src/core/lib/support/log_windows.c +112 -0
- data/src/core/lib/support/mpscq.c +83 -0
- data/src/core/lib/support/mpscq.h +65 -0
- data/src/core/lib/support/murmur_hash.c +94 -0
- data/src/core/lib/support/murmur_hash.h +44 -0
- data/src/core/lib/support/spinlock.h +52 -0
- data/src/core/lib/support/stack_lockfree.c +185 -0
- data/src/core/lib/support/stack_lockfree.h +53 -0
- data/src/core/lib/support/string.c +315 -0
- data/src/core/lib/support/string.h +128 -0
- data/src/core/lib/support/string_posix.c +86 -0
- data/src/core/lib/support/string_util_windows.c +94 -0
- data/src/core/lib/support/string_windows.c +83 -0
- data/src/core/lib/support/string_windows.h +47 -0
- data/src/core/lib/support/subprocess_posix.c +114 -0
- data/src/core/lib/support/subprocess_windows.c +141 -0
- data/src/core/lib/support/sync.c +137 -0
- data/src/core/lib/support/sync_posix.c +113 -0
- data/src/core/lib/support/sync_windows.c +133 -0
- data/src/core/lib/support/thd.c +64 -0
- data/src/core/lib/support/thd_internal.h +39 -0
- data/src/core/lib/support/thd_posix.c +95 -0
- data/src/core/lib/support/thd_windows.c +117 -0
- data/src/core/lib/support/time.c +262 -0
- data/src/core/lib/support/time_posix.c +176 -0
- data/src/core/lib/support/time_precise.c +89 -0
- data/src/core/lib/support/time_precise.h +42 -0
- data/src/core/lib/support/time_windows.c +116 -0
- data/src/core/lib/support/tls_pthread.c +45 -0
- data/src/core/lib/support/tmpfile.h +53 -0
- data/src/core/lib/support/tmpfile_msys.c +73 -0
- data/src/core/lib/support/tmpfile_posix.c +85 -0
- data/src/core/lib/support/tmpfile_windows.c +84 -0
- data/src/core/lib/support/wrap_memcpy.c +55 -0
- data/src/core/lib/surface/alarm.c +87 -0
- data/src/core/lib/surface/api_trace.c +36 -0
- data/src/core/lib/surface/api_trace.h +65 -0
- data/src/core/lib/surface/byte_buffer.c +103 -0
- data/src/core/lib/surface/byte_buffer_reader.c +140 -0
- data/src/core/lib/surface/call.c +1835 -0
- data/src/core/lib/surface/call.h +135 -0
- data/src/core/lib/surface/call_details.c +56 -0
- data/src/core/lib/surface/call_log_batch.c +131 -0
- data/src/core/lib/surface/call_test_only.h +64 -0
- data/src/core/lib/surface/channel.c +434 -0
- data/src/core/lib/surface/channel.h +99 -0
- data/src/core/lib/surface/channel_init.c +140 -0
- data/src/core/lib/surface/channel_init.h +96 -0
- data/src/core/lib/surface/channel_ping.c +80 -0
- data/src/core/lib/surface/channel_stack_type.c +54 -0
- data/src/core/lib/surface/channel_stack_type.h +58 -0
- data/src/core/lib/surface/completion_queue.c +692 -0
- data/src/core/lib/surface/completion_queue.h +102 -0
- data/src/core/lib/surface/completion_queue_factory.c +77 -0
- data/src/core/lib/surface/completion_queue_factory.h +51 -0
- data/src/core/lib/surface/event_string.c +81 -0
- data/src/core/lib/surface/event_string.h +42 -0
- data/src/core/lib/surface/init.c +261 -0
- data/src/core/lib/surface/init.h +42 -0
- data/src/core/lib/surface/init_secure.c +94 -0
- data/src/core/lib/surface/lame_client.c +188 -0
- data/src/core/lib/surface/lame_client.h +41 -0
- data/src/core/lib/surface/metadata_array.c +49 -0
- data/src/core/lib/surface/server.c +1529 -0
- data/src/core/lib/surface/server.h +71 -0
- data/src/core/lib/surface/validate_metadata.c +108 -0
- data/src/core/lib/surface/validate_metadata.h +43 -0
- data/src/core/lib/surface/version.c +41 -0
- data/src/core/lib/transport/bdp_estimator.c +104 -0
- data/src/core/lib/transport/bdp_estimator.h +76 -0
- data/src/core/lib/transport/byte_stream.c +81 -0
- data/src/core/lib/transport/byte_stream.h +85 -0
- data/src/core/lib/transport/connectivity_state.c +219 -0
- data/src/core/lib/transport/connectivity_state.h +101 -0
- data/src/core/lib/transport/error_utils.c +124 -0
- data/src/core/lib/transport/error_utils.h +56 -0
- data/src/core/lib/transport/http2_errors.h +56 -0
- data/src/core/lib/transport/metadata.c +529 -0
- data/src/core/lib/transport/metadata.h +186 -0
- data/src/core/lib/transport/metadata_batch.c +328 -0
- data/src/core/lib/transport/metadata_batch.h +166 -0
- data/src/core/lib/transport/pid_controller.c +78 -0
- data/src/core/lib/transport/pid_controller.h +77 -0
- data/src/core/lib/transport/service_config.c +266 -0
- data/src/core/lib/transport/service_config.h +77 -0
- data/src/core/lib/transport/static_metadata.c +801 -0
- data/src/core/lib/transport/static_metadata.h +557 -0
- data/src/core/lib/transport/status_conversion.c +113 -0
- data/src/core/lib/transport/status_conversion.h +49 -0
- data/src/core/lib/transport/timeout_encoding.c +190 -0
- data/src/core/lib/transport/timeout_encoding.h +49 -0
- data/src/core/lib/transport/transport.c +282 -0
- data/src/core/lib/transport/transport.h +354 -0
- data/src/core/lib/transport/transport_impl.h +90 -0
- data/src/core/lib/transport/transport_op_string.c +217 -0
- data/src/core/plugin_registry/grpc_plugin_registry.c +82 -0
- data/src/core/tsi/fake_transport_security.c +527 -0
- data/src/core/tsi/fake_transport_security.h +61 -0
- data/src/core/tsi/ssl_transport_security.c +1533 -0
- data/src/core/tsi/ssl_transport_security.h +214 -0
- data/src/core/tsi/ssl_types.h +55 -0
- data/src/core/tsi/transport_security.c +266 -0
- data/src/core/tsi/transport_security.h +111 -0
- data/src/core/tsi/transport_security_interface.h +353 -0
- data/src/ruby/bin/apis/google/protobuf/empty.rb +44 -0
- data/src/ruby/bin/apis/pubsub_demo.rb +256 -0
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub.rb +174 -0
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub_services.rb +103 -0
- data/src/ruby/bin/math_client.rb +147 -0
- data/src/ruby/bin/math_pb.rb +32 -0
- data/src/ruby/bin/math_server.rb +206 -0
- data/src/ruby/bin/math_services_pb.rb +66 -0
- data/src/ruby/bin/noproto_client.rb +108 -0
- data/src/ruby/bin/noproto_server.rb +112 -0
- data/src/ruby/ext/grpc/extconf.rb +131 -0
- data/src/ruby/ext/grpc/rb_byte_buffer.c +77 -0
- data/src/ruby/ext/grpc/rb_byte_buffer.h +50 -0
- data/src/ruby/ext/grpc/rb_call.c +1009 -0
- data/src/ruby/ext/grpc/rb_call.h +66 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +295 -0
- data/src/ruby/ext/grpc/rb_call_credentials.h +46 -0
- data/src/ruby/ext/grpc/rb_channel.c +662 -0
- data/src/ruby/ext/grpc/rb_channel.h +49 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +168 -0
- data/src/ruby/ext/grpc/rb_channel_args.h +53 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +268 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.h +47 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +117 -0
- data/src/ruby/ext/grpc/rb_completion_queue.h +51 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +472 -0
- data/src/ruby/ext/grpc/rb_compression_options.h +44 -0
- data/src/ruby/ext/grpc/rb_event_thread.c +158 -0
- data/src/ruby/ext/grpc/rb_event_thread.h +37 -0
- data/src/ruby/ext/grpc/rb_grpc.c +343 -0
- data/src/ruby/ext/grpc/rb_grpc.h +87 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +634 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +955 -0
- data/src/ruby/ext/grpc/rb_loader.c +72 -0
- data/src/ruby/ext/grpc/rb_loader.h +40 -0
- data/src/ruby/ext/grpc/rb_server.c +359 -0
- data/src/ruby/ext/grpc/rb_server.h +47 -0
- data/src/ruby/ext/grpc/rb_server_credentials.c +258 -0
- data/src/ruby/ext/grpc/rb_server_credentials.h +47 -0
- data/src/ruby/lib/grpc/core/time_consts.rb +71 -0
- data/src/ruby/lib/grpc/errors.rb +215 -0
- data/src/ruby/lib/grpc/generic/active_call.rb +547 -0
- data/src/ruby/lib/grpc/generic/bidi_call.rb +229 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +463 -0
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +173 -0
- data/src/ruby/lib/grpc/generic/rpc_server.rb +476 -0
- data/src/ruby/lib/grpc/generic/service.rb +225 -0
- data/src/ruby/lib/grpc/grpc.rb +39 -0
- data/src/ruby/lib/grpc/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/logconfig.rb +59 -0
- data/src/ruby/lib/grpc/notifier.rb +60 -0
- data/src/ruby/lib/grpc/version.rb +33 -0
- data/src/ruby/lib/grpc.rb +49 -0
- data/src/ruby/pb/README.md +42 -0
- data/src/ruby/pb/generate_proto_ruby.sh +58 -0
- data/src/ruby/pb/grpc/health/checker.rb +77 -0
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +28 -0
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +56 -0
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +58 -0
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +64 -0
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +15 -0
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +82 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +14 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +117 -0
- data/src/ruby/pb/test/client.rb +779 -0
- data/src/ruby/pb/test/server.rb +267 -0
- data/src/ruby/spec/call_credentials_spec.rb +57 -0
- data/src/ruby/spec/call_spec.rb +162 -0
- data/src/ruby/spec/channel_connection_spec.rb +141 -0
- data/src/ruby/spec/channel_credentials_spec.rb +97 -0
- data/src/ruby/spec/channel_spec.rb +205 -0
- data/src/ruby/spec/client_server_spec.rb +491 -0
- data/src/ruby/spec/compression_options_spec.rb +164 -0
- data/src/ruby/spec/error_sanity_spec.rb +64 -0
- data/src/ruby/spec/generic/active_call_spec.rb +632 -0
- data/src/ruby/spec/generic/client_stub_spec.rb +556 -0
- data/src/ruby/spec/generic/rpc_desc_spec.rb +351 -0
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +142 -0
- data/src/ruby/spec/generic/rpc_server_spec.rb +524 -0
- data/src/ruby/spec/generic/service_spec.rb +276 -0
- data/src/ruby/spec/pb/duplicate/codegen_spec.rb +71 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +222 -0
- data/src/ruby/spec/server_credentials_spec.rb +94 -0
- data/src/ruby/spec/server_spec.rb +205 -0
- data/src/ruby/spec/spec_helper.rb +71 -0
- data/src/ruby/spec/testdata/README +1 -0
- data/src/ruby/spec/testdata/ca.pem +15 -0
- data/src/ruby/spec/testdata/server1.key +16 -0
- data/src/ruby/spec/testdata/server1.pem +16 -0
- data/src/ruby/spec/time_consts_spec.rb +89 -0
- data/third_party/boringssl/crypto/aes/aes.c +1142 -0
- data/third_party/boringssl/crypto/aes/internal.h +87 -0
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +112 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +263 -0
- data/third_party/boringssl/crypto/asn1/a_bool.c +110 -0
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +282 -0
- data/third_party/boringssl/crypto/asn1/a_dup.c +111 -0
- data/third_party/boringssl/crypto/asn1/a_enum.c +181 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +256 -0
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +147 -0
- data/third_party/boringssl/crypto/asn1/a_int.c +460 -0
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +409 -0
- data/third_party/boringssl/crypto/asn1/a_object.c +400 -0
- data/third_party/boringssl/crypto/asn1/a_octet.c +77 -0
- data/third_party/boringssl/crypto/asn1/a_print.c +121 -0
- data/third_party/boringssl/crypto/asn1/a_strnid.c +309 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +206 -0
- data/third_party/boringssl/crypto/asn1/a_type.c +151 -0
- data/third_party/boringssl/crypto/asn1/a_utctm.c +304 -0
- data/third_party/boringssl/crypto/asn1/a_utf8.c +234 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +483 -0
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +63 -0
- data/third_party/boringssl/crypto/asn1/asn1_par.c +80 -0
- data/third_party/boringssl/crypto/asn1/asn_pack.c +105 -0
- data/third_party/boringssl/crypto/asn1/f_enum.c +93 -0
- data/third_party/boringssl/crypto/asn1/f_int.c +97 -0
- data/third_party/boringssl/crypto/asn1/f_string.c +91 -0
- data/third_party/boringssl/crypto/asn1/t_bitst.c +103 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1221 -0
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +665 -0
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +246 -0
- data/third_party/boringssl/crypto/asn1/tasn_new.c +381 -0
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +131 -0
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
- data/third_party/boringssl/crypto/asn1/x_bignum.c +153 -0
- data/third_party/boringssl/crypto/asn1/x_long.c +197 -0
- data/third_party/boringssl/crypto/base64/base64.c +442 -0
- data/third_party/boringssl/crypto/bio/bio.c +598 -0
- data/third_party/boringssl/crypto/bio/bio_mem.c +328 -0
- data/third_party/boringssl/crypto/bio/buffer.c +496 -0
- data/third_party/boringssl/crypto/bio/connect.c +553 -0
- data/third_party/boringssl/crypto/bio/fd.c +277 -0
- data/third_party/boringssl/crypto/bio/file.c +313 -0
- data/third_party/boringssl/crypto/bio/hexdump.c +191 -0
- data/third_party/boringssl/crypto/bio/internal.h +111 -0
- data/third_party/boringssl/crypto/bio/pair.c +803 -0
- data/third_party/boringssl/crypto/bio/printf.c +119 -0
- data/third_party/boringssl/crypto/bio/socket.c +203 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
- data/third_party/boringssl/crypto/bn/add.c +377 -0
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +531 -0
- data/third_party/boringssl/crypto/bn/bn.c +379 -0
- data/third_party/boringssl/crypto/bn/bn_asn1.c +80 -0
- data/third_party/boringssl/crypto/bn/cmp.c +225 -0
- data/third_party/boringssl/crypto/bn/convert.c +599 -0
- data/third_party/boringssl/crypto/bn/ctx.c +311 -0
- data/third_party/boringssl/crypto/bn/div.c +671 -0
- data/third_party/boringssl/crypto/bn/exponentiation.c +1258 -0
- data/third_party/boringssl/crypto/bn/gcd.c +628 -0
- data/third_party/boringssl/crypto/bn/generic.c +703 -0
- data/third_party/boringssl/crypto/bn/internal.h +245 -0
- data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +410 -0
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +160 -0
- data/third_party/boringssl/crypto/bn/mul.c +869 -0
- data/third_party/boringssl/crypto/bn/prime.c +861 -0
- data/third_party/boringssl/crypto/bn/random.c +340 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +319 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
- data/third_party/boringssl/crypto/bn/shift.c +299 -0
- data/third_party/boringssl/crypto/bn/sqrt.c +504 -0
- data/third_party/boringssl/crypto/buf/buf.c +239 -0
- data/third_party/boringssl/crypto/bytestring/asn1_compat.c +51 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +263 -0
- data/third_party/boringssl/crypto/bytestring/cbb.c +473 -0
- data/third_party/boringssl/crypto/bytestring/cbs.c +439 -0
- data/third_party/boringssl/crypto/bytestring/internal.h +75 -0
- data/third_party/boringssl/crypto/chacha/chacha.c +167 -0
- data/third_party/boringssl/crypto/cipher/aead.c +156 -0
- data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
- data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
- data/third_party/boringssl/crypto/cipher/e_aes.c +1717 -0
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +300 -0
- data/third_party/boringssl/crypto/cipher/e_des.c +205 -0
- data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
- data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
- data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +403 -0
- data/third_party/boringssl/crypto/cipher/e_tls.c +602 -0
- data/third_party/boringssl/crypto/cipher/internal.h +162 -0
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +553 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
- data/third_party/boringssl/crypto/conf/conf.c +788 -0
- data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
- data/third_party/boringssl/crypto/conf/internal.h +31 -0
- data/third_party/boringssl/crypto/cpu-aarch64-linux.c +61 -0
- data/third_party/boringssl/crypto/cpu-arm-linux.c +360 -0
- data/third_party/boringssl/crypto/cpu-arm.c +38 -0
- data/third_party/boringssl/crypto/cpu-intel.c +263 -0
- data/third_party/boringssl/crypto/cpu-ppc64le.c +40 -0
- data/third_party/boringssl/crypto/crypto.c +164 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +4944 -0
- data/third_party/boringssl/crypto/curve25519/internal.h +109 -0
- data/third_party/boringssl/crypto/curve25519/spake25519.c +464 -0
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +246 -0
- data/third_party/boringssl/crypto/des/des.c +771 -0
- data/third_party/boringssl/crypto/des/internal.h +212 -0
- data/third_party/boringssl/crypto/dh/check.c +218 -0
- data/third_party/boringssl/crypto/dh/dh.c +487 -0
- data/third_party/boringssl/crypto/dh/dh_asn1.c +160 -0
- data/third_party/boringssl/crypto/dh/params.c +253 -0
- data/third_party/boringssl/crypto/digest/digest.c +248 -0
- data/third_party/boringssl/crypto/digest/digests.c +321 -0
- data/third_party/boringssl/crypto/digest/internal.h +112 -0
- data/third_party/boringssl/crypto/digest/md32_common.h +262 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +964 -0
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +339 -0
- data/third_party/boringssl/crypto/ec/ec.c +847 -0
- data/third_party/boringssl/crypto/ec/ec_asn1.c +549 -0
- data/third_party/boringssl/crypto/ec/ec_key.c +479 -0
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +308 -0
- data/third_party/boringssl/crypto/ec/internal.h +276 -0
- data/third_party/boringssl/crypto/ec/oct.c +428 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +1187 -0
- data/third_party/boringssl/crypto/ec/p256-64.c +1741 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9543 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +574 -0
- data/third_party/boringssl/crypto/ec/simple.c +1117 -0
- data/third_party/boringssl/crypto/ec/util-64.c +109 -0
- data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
- data/third_party/boringssl/crypto/ecdh/ecdh.c +159 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +478 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +227 -0
- data/third_party/boringssl/crypto/engine/engine.c +96 -0
- data/third_party/boringssl/crypto/err/err.c +756 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
- data/third_party/boringssl/crypto/evp/evp.c +367 -0
- data/third_party/boringssl/crypto/evp/evp_asn1.c +337 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +448 -0
- data/third_party/boringssl/crypto/evp/internal.h +237 -0
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +268 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +236 -0
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +257 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +673 -0
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +200 -0
- data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
- data/third_party/boringssl/crypto/evp/print.c +520 -0
- data/third_party/boringssl/crypto/evp/sign.c +151 -0
- data/third_party/boringssl/crypto/ex_data.c +292 -0
- data/third_party/boringssl/crypto/hkdf/hkdf.c +110 -0
- data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
- data/third_party/boringssl/crypto/internal.h +527 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +342 -0
- data/third_party/boringssl/crypto/md4/md4.c +234 -0
- data/third_party/boringssl/crypto/md5/md5.c +275 -0
- data/third_party/boringssl/crypto/mem.c +200 -0
- data/third_party/boringssl/crypto/modes/cbc.c +216 -0
- data/third_party/boringssl/crypto/modes/cfb.c +230 -0
- data/third_party/boringssl/crypto/modes/ctr.c +219 -0
- data/third_party/boringssl/crypto/modes/gcm.c +1288 -0
- data/third_party/boringssl/crypto/modes/internal.h +358 -0
- data/third_party/boringssl/crypto/modes/ofb.c +95 -0
- data/third_party/boringssl/crypto/newhope/error_correction.c +131 -0
- data/third_party/boringssl/crypto/newhope/internal.h +71 -0
- data/third_party/boringssl/crypto/newhope/newhope.c +174 -0
- data/third_party/boringssl/crypto/newhope/ntt.c +148 -0
- data/third_party/boringssl/crypto/newhope/poly.c +183 -0
- data/third_party/boringssl/crypto/newhope/precomp.c +306 -0
- data/third_party/boringssl/crypto/newhope/reduce.c +42 -0
- data/third_party/boringssl/crypto/obj/obj.c +640 -0
- data/third_party/boringssl/crypto/obj/obj_dat.h +5254 -0
- data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
- data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
- data/third_party/boringssl/crypto/pem/pem_all.c +262 -0
- data/third_party/boringssl/crypto/pem/pem_info.c +381 -0
- data/third_party/boringssl/crypto/pem/pem_lib.c +778 -0
- data/third_party/boringssl/crypto/pem/pem_oth.c +88 -0
- data/third_party/boringssl/crypto/pem/pem_pk8.c +257 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +227 -0
- data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
- data/third_party/boringssl/crypto/pem/pem_xaux.c +67 -0
- data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +151 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +441 -0
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1219 -0
- data/third_party/boringssl/crypto/poly1305/internal.h +40 -0
- data/third_party/boringssl/crypto/poly1305/poly1305.c +324 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +304 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +890 -0
- data/third_party/boringssl/crypto/rand/deterministic.c +47 -0
- data/third_party/boringssl/crypto/rand/internal.h +32 -0
- data/third_party/boringssl/crypto/rand/rand.c +244 -0
- data/third_party/boringssl/crypto/rand/urandom.c +221 -0
- data/third_party/boringssl/crypto/rand/windows.c +53 -0
- data/third_party/boringssl/crypto/rc4/rc4.c +98 -0
- data/third_party/boringssl/crypto/refcount_c11.c +67 -0
- data/third_party/boringssl/crypto/refcount_lock.c +53 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +264 -0
- data/third_party/boringssl/crypto/rsa/internal.h +148 -0
- data/third_party/boringssl/crypto/rsa/padding.c +708 -0
- data/third_party/boringssl/crypto/rsa/rsa.c +830 -0
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +446 -0
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +1139 -0
- data/third_party/boringssl/crypto/sha/sha1.c +337 -0
- data/third_party/boringssl/crypto/sha/sha256.c +327 -0
- data/third_party/boringssl/crypto/sha/sha512.c +607 -0
- data/third_party/boringssl/crypto/stack/stack.c +377 -0
- data/third_party/boringssl/crypto/thread.c +110 -0
- data/third_party/boringssl/crypto/thread_none.c +59 -0
- data/third_party/boringssl/crypto/thread_pthread.c +176 -0
- data/third_party/boringssl/crypto/thread_win.c +237 -0
- data/third_party/boringssl/crypto/time_support.c +206 -0
- data/third_party/boringssl/crypto/x509/a_digest.c +96 -0
- data/third_party/boringssl/crypto/x509/a_sign.c +135 -0
- data/third_party/boringssl/crypto/x509/a_strex.c +633 -0
- data/third_party/boringssl/crypto/x509/a_verify.c +127 -0
- data/third_party/boringssl/crypto/x509/algorithm.c +137 -0
- data/third_party/boringssl/crypto/x509/asn1_gen.c +818 -0
- data/third_party/boringssl/crypto/x509/by_dir.c +453 -0
- data/third_party/boringssl/crypto/x509/by_file.c +275 -0
- data/third_party/boringssl/crypto/x509/charmap.h +15 -0
- data/third_party/boringssl/crypto/x509/i2d_pr.c +83 -0
- data/third_party/boringssl/crypto/x509/internal.h +66 -0
- data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
- data/third_party/boringssl/crypto/x509/rsa_pss.c +385 -0
- data/third_party/boringssl/crypto/x509/t_crl.c +128 -0
- data/third_party/boringssl/crypto/x509/t_req.c +246 -0
- data/third_party/boringssl/crypto/x509/t_x509.c +506 -0
- data/third_party/boringssl/crypto/x509/t_x509a.c +111 -0
- data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
- data/third_party/boringssl/crypto/x509/x509.c +157 -0
- data/third_party/boringssl/crypto/x509/x509_att.c +381 -0
- data/third_party/boringssl/crypto/x509/x509_cmp.c +474 -0
- data/third_party/boringssl/crypto/x509/x509_d2.c +106 -0
- data/third_party/boringssl/crypto/x509/x509_def.c +98 -0
- data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +690 -0
- data/third_party/boringssl/crypto/x509/x509_obj.c +197 -0
- data/third_party/boringssl/crypto/x509/x509_r2x.c +117 -0
- data/third_party/boringssl/crypto/x509/x509_req.c +322 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +326 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +211 -0
- data/third_party/boringssl/crypto/x509/x509_v3.c +278 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2436 -0
- data/third_party/boringssl/crypto/x509/x509_vpm.c +647 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +170 -0
- data/third_party/boringssl/crypto/x509/x509name.c +386 -0
- data/third_party/boringssl/crypto/x509/x509rset.c +81 -0
- data/third_party/boringssl/crypto/x509/x509spki.c +137 -0
- data/third_party/boringssl/crypto/x509/x509type.c +126 -0
- data/third_party/boringssl/crypto/x509/x_algor.c +151 -0
- data/third_party/boringssl/crypto/x509/x_all.c +501 -0
- data/third_party/boringssl/crypto/x509/x_attrib.c +111 -0
- data/third_party/boringssl/crypto/x509/x_crl.c +539 -0
- data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
- data/third_party/boringssl/crypto/x509/x_info.c +98 -0
- data/third_party/boringssl/crypto/x509/x_name.c +534 -0
- data/third_party/boringssl/crypto/x509/x_pkey.c +103 -0
- data/third_party/boringssl/crypto/x509/x_pubkey.c +368 -0
- data/third_party/boringssl/crypto/x509/x_req.c +109 -0
- data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
- data/third_party/boringssl/crypto/x509/x_spki.c +80 -0
- data/third_party/boringssl/crypto/x509/x_val.c +69 -0
- data/third_party/boringssl/crypto/x509/x_x509.c +289 -0
- data/third_party/boringssl/crypto/x509/x_x509a.c +205 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +135 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +284 -0
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +130 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +217 -0
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +164 -0
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +130 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +188 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +829 -0
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +204 -0
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +72 -0
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +614 -0
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +133 -0
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +462 -0
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +496 -0
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +561 -0
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +100 -0
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +148 -0
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +250 -0
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +119 -0
- data/third_party/boringssl/crypto/x509v3/v3_info.c +212 -0
- data/third_party/boringssl/crypto/x509v3/v3_int.c +91 -0
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +362 -0
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +482 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +317 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +57 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +139 -0
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +110 -0
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +154 -0
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +229 -0
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +874 -0
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +152 -0
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +274 -0
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1327 -0
- data/third_party/boringssl/include/openssl/aead.h +345 -0
- data/third_party/boringssl/include/openssl/aes.h +158 -0
- data/third_party/boringssl/include/openssl/arm_arch.h +121 -0
- data/third_party/boringssl/include/openssl/asn1.h +1038 -0
- data/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
- data/third_party/boringssl/include/openssl/asn1t.h +896 -0
- data/third_party/boringssl/include/openssl/base.h +412 -0
- data/third_party/boringssl/include/openssl/base64.h +187 -0
- data/third_party/boringssl/include/openssl/bio.h +926 -0
- data/third_party/boringssl/include/openssl/blowfish.h +93 -0
- data/third_party/boringssl/include/openssl/bn.h +955 -0
- data/third_party/boringssl/include/openssl/buf.h +133 -0
- data/third_party/boringssl/include/openssl/buffer.h +18 -0
- data/third_party/boringssl/include/openssl/bytestring.h +437 -0
- data/third_party/boringssl/include/openssl/cast.h +96 -0
- data/third_party/boringssl/include/openssl/chacha.h +37 -0
- data/third_party/boringssl/include/openssl/cipher.h +588 -0
- data/third_party/boringssl/include/openssl/cmac.h +87 -0
- data/third_party/boringssl/include/openssl/conf.h +181 -0
- data/third_party/boringssl/include/openssl/cpu.h +181 -0
- data/third_party/boringssl/include/openssl/crypto.h +94 -0
- data/third_party/boringssl/include/openssl/curve25519.h +183 -0
- data/third_party/boringssl/include/openssl/des.h +177 -0
- data/third_party/boringssl/include/openssl/dh.h +297 -0
- data/third_party/boringssl/include/openssl/digest.h +285 -0
- data/third_party/boringssl/include/openssl/dsa.h +436 -0
- data/third_party/boringssl/include/openssl/dtls1.h +16 -0
- data/third_party/boringssl/include/openssl/ec.h +406 -0
- data/third_party/boringssl/include/openssl/ec_key.h +337 -0
- data/third_party/boringssl/include/openssl/ecdh.h +102 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +217 -0
- data/third_party/boringssl/include/openssl/engine.h +109 -0
- data/third_party/boringssl/include/openssl/err.h +488 -0
- data/third_party/boringssl/include/openssl/evp.h +797 -0
- data/third_party/boringssl/include/openssl/ex_data.h +213 -0
- data/third_party/boringssl/include/openssl/hkdf.h +64 -0
- data/third_party/boringssl/include/openssl/hmac.h +174 -0
- data/third_party/boringssl/include/openssl/lhash.h +192 -0
- data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
- data/third_party/boringssl/include/openssl/md4.h +106 -0
- data/third_party/boringssl/include/openssl/md5.h +107 -0
- data/third_party/boringssl/include/openssl/mem.h +150 -0
- data/third_party/boringssl/include/openssl/newhope.h +158 -0
- data/third_party/boringssl/include/openssl/nid.h +4166 -0
- data/third_party/boringssl/include/openssl/obj.h +226 -0
- data/third_party/boringssl/include/openssl/obj_mac.h +18 -0
- data/third_party/boringssl/include/openssl/objects.h +18 -0
- data/third_party/boringssl/include/openssl/opensslconf.h +60 -0
- data/third_party/boringssl/include/openssl/opensslv.h +18 -0
- data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
- data/third_party/boringssl/include/openssl/pem.h +517 -0
- data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
- data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
- data/third_party/boringssl/include/openssl/pkcs8.h +236 -0
- data/third_party/boringssl/include/openssl/poly1305.h +51 -0
- data/third_party/boringssl/include/openssl/rand.h +122 -0
- data/third_party/boringssl/include/openssl/rc4.h +96 -0
- data/third_party/boringssl/include/openssl/ripemd.h +107 -0
- data/third_party/boringssl/include/openssl/rsa.h +699 -0
- data/third_party/boringssl/include/openssl/safestack.h +16 -0
- data/third_party/boringssl/include/openssl/sha.h +260 -0
- data/third_party/boringssl/include/openssl/srtp.h +18 -0
- data/third_party/boringssl/include/openssl/ssl.h +4826 -0
- data/third_party/boringssl/include/openssl/ssl3.h +434 -0
- data/third_party/boringssl/include/openssl/stack.h +293 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +3902 -0
- data/third_party/boringssl/include/openssl/thread.h +191 -0
- data/third_party/boringssl/include/openssl/time_support.h +91 -0
- data/third_party/boringssl/include/openssl/tls1.h +657 -0
- data/third_party/boringssl/include/openssl/type_check.h +91 -0
- data/third_party/boringssl/include/openssl/x509.h +1299 -0
- data/third_party/boringssl/include/openssl/x509_vfy.h +618 -0
- data/third_party/boringssl/include/openssl/x509v3.h +819 -0
- data/third_party/boringssl/ssl/custom_extensions.c +255 -0
- data/third_party/boringssl/ssl/d1_both.c +845 -0
- data/third_party/boringssl/ssl/d1_lib.c +270 -0
- data/third_party/boringssl/ssl/d1_pkt.c +419 -0
- data/third_party/boringssl/ssl/d1_srtp.c +236 -0
- data/third_party/boringssl/ssl/dtls_method.c +203 -0
- data/third_party/boringssl/ssl/dtls_record.c +309 -0
- data/third_party/boringssl/ssl/handshake_client.c +2002 -0
- data/third_party/boringssl/ssl/handshake_server.c +1932 -0
- data/third_party/boringssl/ssl/internal.h +1551 -0
- data/third_party/boringssl/ssl/s3_both.c +745 -0
- data/third_party/boringssl/ssl/s3_enc.c +412 -0
- data/third_party/boringssl/ssl/s3_lib.c +336 -0
- data/third_party/boringssl/ssl/s3_pkt.c +497 -0
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +329 -0
- data/third_party/boringssl/ssl/ssl_asn1.c +748 -0
- data/third_party/boringssl/ssl/ssl_buffer.c +311 -0
- data/third_party/boringssl/ssl/ssl_cert.c +814 -0
- data/third_party/boringssl/ssl/ssl_cipher.c +2062 -0
- data/third_party/boringssl/ssl/ssl_ecdh.c +610 -0
- data/third_party/boringssl/ssl/ssl_file.c +586 -0
- data/third_party/boringssl/ssl/ssl_lib.c +3063 -0
- data/third_party/boringssl/ssl/ssl_rsa.c +793 -0
- data/third_party/boringssl/ssl/ssl_session.c +985 -0
- data/third_party/boringssl/ssl/ssl_stat.c +509 -0
- data/third_party/boringssl/ssl/t1_enc.c +547 -0
- data/third_party/boringssl/ssl/t1_lib.c +3279 -0
- data/third_party/boringssl/ssl/tls13_both.c +440 -0
- data/third_party/boringssl/ssl/tls13_client.c +682 -0
- data/third_party/boringssl/ssl/tls13_enc.c +391 -0
- data/third_party/boringssl/ssl/tls13_server.c +672 -0
- data/third_party/boringssl/ssl/tls_method.c +245 -0
- data/third_party/boringssl/ssl/tls_record.c +461 -0
- data/third_party/cares/ares_build.h +264 -0
- data/third_party/cares/cares/ares.h +636 -0
- data/third_party/cares/cares/ares__close_sockets.c +61 -0
- data/third_party/cares/cares/ares__get_hostent.c +261 -0
- data/third_party/cares/cares/ares__read_line.c +73 -0
- data/third_party/cares/cares/ares__timeval.c +111 -0
- data/third_party/cares/cares/ares_cancel.c +63 -0
- data/third_party/cares/cares/ares_create_query.c +202 -0
- data/third_party/cares/cares/ares_data.c +221 -0
- data/third_party/cares/cares/ares_data.h +72 -0
- data/third_party/cares/cares/ares_destroy.c +108 -0
- data/third_party/cares/cares/ares_dns.h +103 -0
- data/third_party/cares/cares/ares_expand_name.c +205 -0
- data/third_party/cares/cares/ares_expand_string.c +70 -0
- data/third_party/cares/cares/ares_fds.c +59 -0
- data/third_party/cares/cares/ares_free_hostent.c +41 -0
- data/third_party/cares/cares/ares_free_string.c +25 -0
- data/third_party/cares/cares/ares_getenv.c +30 -0
- data/third_party/cares/cares/ares_getenv.h +26 -0
- data/third_party/cares/cares/ares_gethostbyaddr.c +294 -0
- data/third_party/cares/cares/ares_gethostbyname.c +518 -0
- data/third_party/cares/cares/ares_getnameinfo.c +422 -0
- data/third_party/cares/cares/ares_getopt.c +122 -0
- data/third_party/cares/cares/ares_getopt.h +53 -0
- data/third_party/cares/cares/ares_getsock.c +66 -0
- data/third_party/cares/cares/ares_inet_net_pton.h +25 -0
- data/third_party/cares/cares/ares_init.c +2146 -0
- data/third_party/cares/cares/ares_iphlpapi.h +221 -0
- data/third_party/cares/cares/ares_ipv6.h +78 -0
- data/third_party/cares/cares/ares_library_init.c +167 -0
- data/third_party/cares/cares/ares_library_init.h +42 -0
- data/third_party/cares/cares/ares_llist.c +63 -0
- data/third_party/cares/cares/ares_llist.h +39 -0
- data/third_party/cares/cares/ares_mkquery.c +24 -0
- data/third_party/cares/cares/ares_nowarn.c +260 -0
- data/third_party/cares/cares/ares_nowarn.h +61 -0
- data/third_party/cares/cares/ares_options.c +402 -0
- data/third_party/cares/cares/ares_parse_a_reply.c +264 -0
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +264 -0
- data/third_party/cares/cares/ares_parse_mx_reply.c +170 -0
- data/third_party/cares/cares/ares_parse_naptr_reply.c +188 -0
- data/third_party/cares/cares/ares_parse_ns_reply.c +183 -0
- data/third_party/cares/cares/ares_parse_ptr_reply.c +219 -0
- data/third_party/cares/cares/ares_parse_soa_reply.c +133 -0
- data/third_party/cares/cares/ares_parse_srv_reply.c +179 -0
- data/third_party/cares/cares/ares_parse_txt_reply.c +220 -0
- data/third_party/cares/cares/ares_platform.c +11035 -0
- data/third_party/cares/cares/ares_platform.h +43 -0
- data/third_party/cares/cares/ares_private.h +363 -0
- data/third_party/cares/cares/ares_process.c +1359 -0
- data/third_party/cares/cares/ares_query.c +186 -0
- data/third_party/cares/cares/ares_rules.h +125 -0
- data/third_party/cares/cares/ares_search.c +316 -0
- data/third_party/cares/cares/ares_send.c +131 -0
- data/third_party/cares/cares/ares_setup.h +217 -0
- data/third_party/cares/cares/ares_strcasecmp.c +66 -0
- data/third_party/cares/cares/ares_strcasecmp.h +30 -0
- data/third_party/cares/cares/ares_strdup.c +49 -0
- data/third_party/cares/cares/ares_strdup.h +24 -0
- data/third_party/cares/cares/ares_strerror.c +56 -0
- data/third_party/cares/cares/ares_timeout.c +88 -0
- data/third_party/cares/cares/ares_version.c +11 -0
- data/third_party/cares/cares/ares_version.h +24 -0
- data/third_party/cares/cares/ares_writev.c +79 -0
- data/third_party/cares/cares/bitncmp.c +59 -0
- data/third_party/cares/cares/bitncmp.h +26 -0
- data/third_party/cares/cares/config-win32.h +377 -0
- data/third_party/cares/cares/inet_net_pton.c +450 -0
- data/third_party/cares/cares/inet_ntop.c +208 -0
- data/third_party/cares/cares/setup_once.h +554 -0
- data/third_party/cares/cares/windows_port.c +22 -0
- data/third_party/cares/config_darwin/ares_config.h +523 -0
- data/third_party/cares/config_linux/ares_config.h +524 -0
- data/third_party/nanopb/pb.h +579 -0
- data/third_party/nanopb/pb_common.c +97 -0
- data/third_party/nanopb/pb_common.h +42 -0
- data/third_party/nanopb/pb_decode.c +1347 -0
- data/third_party/nanopb/pb_decode.h +149 -0
- data/third_party/nanopb/pb_encode.c +696 -0
- data/third_party/nanopb/pb_encode.h +154 -0
- data/third_party/zlib/adler32.c +179 -0
- data/third_party/zlib/compress.c +80 -0
- data/third_party/zlib/crc32.c +425 -0
- data/third_party/zlib/crc32.h +441 -0
- data/third_party/zlib/deflate.c +1967 -0
- data/third_party/zlib/deflate.h +346 -0
- data/third_party/zlib/gzclose.c +25 -0
- data/third_party/zlib/gzguts.h +209 -0
- data/third_party/zlib/gzlib.c +634 -0
- data/third_party/zlib/gzread.c +594 -0
- data/third_party/zlib/gzwrite.c +577 -0
- data/third_party/zlib/infback.c +640 -0
- data/third_party/zlib/inffast.c +340 -0
- data/third_party/zlib/inffast.h +11 -0
- data/third_party/zlib/inffixed.h +94 -0
- data/third_party/zlib/inflate.c +1512 -0
- data/third_party/zlib/inflate.h +122 -0
- data/third_party/zlib/inftrees.c +306 -0
- data/third_party/zlib/inftrees.h +62 -0
- data/third_party/zlib/trees.c +1226 -0
- data/third_party/zlib/trees.h +128 -0
- data/third_party/zlib/uncompr.c +59 -0
- data/third_party/zlib/zconf.h +511 -0
- data/third_party/zlib/zlib.h +1768 -0
- data/third_party/zlib/zutil.c +324 -0
- data/third_party/zlib/zutil.h +253 -0
- metadata +1397 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/*
|
|
2
|
+
*
|
|
3
|
+
* Copyright 2016, 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
|
+
#ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H
|
|
35
|
+
#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H
|
|
36
|
+
|
|
37
|
+
#include <grpc/slice_buffer.h>
|
|
38
|
+
|
|
39
|
+
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
|
|
40
|
+
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
|
41
|
+
|
|
42
|
+
#ifdef __cplusplus
|
|
43
|
+
extern "C" {
|
|
44
|
+
#endif
|
|
45
|
+
|
|
46
|
+
#define GRPC_GRPCLB_SERVICE_NAME_MAX_LENGTH 128
|
|
47
|
+
|
|
48
|
+
typedef grpc_lb_v1_Server_ip_address_t grpc_grpclb_ip_address;
|
|
49
|
+
typedef grpc_lb_v1_LoadBalanceRequest grpc_grpclb_request;
|
|
50
|
+
typedef grpc_lb_v1_InitialLoadBalanceResponse grpc_grpclb_initial_response;
|
|
51
|
+
typedef grpc_lb_v1_Server grpc_grpclb_server;
|
|
52
|
+
typedef grpc_lb_v1_Duration grpc_grpclb_duration;
|
|
53
|
+
typedef struct grpc_grpclb_serverlist {
|
|
54
|
+
grpc_grpclb_server **servers;
|
|
55
|
+
size_t num_servers;
|
|
56
|
+
grpc_grpclb_duration expiration_interval;
|
|
57
|
+
} grpc_grpclb_serverlist;
|
|
58
|
+
|
|
59
|
+
/** Create a request for a gRPC LB service under \a lb_service_name */
|
|
60
|
+
grpc_grpclb_request *grpc_grpclb_request_create(const char *lb_service_name);
|
|
61
|
+
|
|
62
|
+
/** Protocol Buffers v3-encode \a request */
|
|
63
|
+
grpc_slice grpc_grpclb_request_encode(const grpc_grpclb_request *request);
|
|
64
|
+
|
|
65
|
+
/** Destroy \a request */
|
|
66
|
+
void grpc_grpclb_request_destroy(grpc_grpclb_request *request);
|
|
67
|
+
|
|
68
|
+
/** Parse (ie, decode) the bytes in \a encoded_grpc_grpclb_response as a \a
|
|
69
|
+
* grpc_grpclb_initial_response */
|
|
70
|
+
grpc_grpclb_initial_response *grpc_grpclb_initial_response_parse(
|
|
71
|
+
grpc_slice encoded_grpc_grpclb_response);
|
|
72
|
+
|
|
73
|
+
/** Parse the list of servers from an encoded \a grpc_grpclb_response */
|
|
74
|
+
grpc_grpclb_serverlist *grpc_grpclb_response_parse_serverlist(
|
|
75
|
+
grpc_slice encoded_grpc_grpclb_response);
|
|
76
|
+
|
|
77
|
+
/** Return a copy of \a sl. The caller is responsible for calling \a
|
|
78
|
+
* grpc_grpclb_destroy_serverlist on the returned copy. */
|
|
79
|
+
grpc_grpclb_serverlist *grpc_grpclb_serverlist_copy(
|
|
80
|
+
const grpc_grpclb_serverlist *sl);
|
|
81
|
+
|
|
82
|
+
bool grpc_grpclb_serverlist_equals(const grpc_grpclb_serverlist *lhs,
|
|
83
|
+
const grpc_grpclb_serverlist *rhs);
|
|
84
|
+
|
|
85
|
+
bool grpc_grpclb_server_equals(const grpc_grpclb_server *lhs,
|
|
86
|
+
const grpc_grpclb_server *rhs);
|
|
87
|
+
|
|
88
|
+
/** Destroy \a serverlist */
|
|
89
|
+
void grpc_grpclb_destroy_serverlist(grpc_grpclb_serverlist *serverlist);
|
|
90
|
+
|
|
91
|
+
/** Compare \a lhs against \a rhs and return 0 if \a lhs and \a rhs are equal,
|
|
92
|
+
* < 0 if \a lhs represents a duration shorter than \a rhs and > 0 otherwise */
|
|
93
|
+
int grpc_grpclb_duration_compare(const grpc_grpclb_duration *lhs,
|
|
94
|
+
const grpc_grpclb_duration *rhs);
|
|
95
|
+
|
|
96
|
+
/** Destroy \a initial_response */
|
|
97
|
+
void grpc_grpclb_initial_response_destroy(
|
|
98
|
+
grpc_grpclb_initial_response *response);
|
|
99
|
+
|
|
100
|
+
#ifdef __cplusplus
|
|
101
|
+
}
|
|
102
|
+
#endif
|
|
103
|
+
|
|
104
|
+
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H \
|
|
105
|
+
*/
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* Automatically generated nanopb constant definitions */
|
|
2
|
+
/* Generated by nanopb-0.3.7-dev */
|
|
3
|
+
|
|
4
|
+
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
|
|
5
|
+
|
|
6
|
+
/* @@protoc_insertion_point(includes) */
|
|
7
|
+
#if PB_PROTO_HEADER_VERSION != 30
|
|
8
|
+
#error Regenerate this file with the current version of nanopb generator.
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
const pb_field_t grpc_lb_v1_Duration_fields[3] = {
|
|
14
|
+
PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, grpc_lb_v1_Duration, seconds, seconds, 0),
|
|
15
|
+
PB_FIELD( 2, INT32 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Duration, nanos, seconds, 0),
|
|
16
|
+
PB_LAST_FIELD
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const pb_field_t grpc_lb_v1_LoadBalanceRequest_fields[3] = {
|
|
20
|
+
PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, grpc_lb_v1_LoadBalanceRequest, initial_request, initial_request, &grpc_lb_v1_InitialLoadBalanceRequest_fields),
|
|
21
|
+
PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_lb_v1_LoadBalanceRequest, client_stats, initial_request, &grpc_lb_v1_ClientStats_fields),
|
|
22
|
+
PB_LAST_FIELD
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const pb_field_t grpc_lb_v1_InitialLoadBalanceRequest_fields[2] = {
|
|
26
|
+
PB_FIELD( 1, STRING , OPTIONAL, STATIC , FIRST, grpc_lb_v1_InitialLoadBalanceRequest, name, name, 0),
|
|
27
|
+
PB_LAST_FIELD
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const pb_field_t grpc_lb_v1_ClientStats_fields[4] = {
|
|
31
|
+
PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, grpc_lb_v1_ClientStats, total_requests, total_requests, 0),
|
|
32
|
+
PB_FIELD( 2, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, client_rpc_errors, total_requests, 0),
|
|
33
|
+
PB_FIELD( 3, INT64 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ClientStats, dropped_requests, client_rpc_errors, 0),
|
|
34
|
+
PB_LAST_FIELD
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const pb_field_t grpc_lb_v1_LoadBalanceResponse_fields[3] = {
|
|
38
|
+
PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, grpc_lb_v1_LoadBalanceResponse, initial_response, initial_response, &grpc_lb_v1_InitialLoadBalanceResponse_fields),
|
|
39
|
+
PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_lb_v1_LoadBalanceResponse, server_list, initial_response, &grpc_lb_v1_ServerList_fields),
|
|
40
|
+
PB_LAST_FIELD
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const pb_field_t grpc_lb_v1_InitialLoadBalanceResponse_fields[3] = {
|
|
44
|
+
PB_FIELD( 1, STRING , OPTIONAL, STATIC , FIRST, grpc_lb_v1_InitialLoadBalanceResponse, load_balancer_delegate, load_balancer_delegate, 0),
|
|
45
|
+
PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval, load_balancer_delegate, &grpc_lb_v1_Duration_fields),
|
|
46
|
+
PB_LAST_FIELD
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const pb_field_t grpc_lb_v1_ServerList_fields[3] = {
|
|
50
|
+
PB_FIELD( 1, MESSAGE , REPEATED, CALLBACK, FIRST, grpc_lb_v1_ServerList, servers, servers, &grpc_lb_v1_Server_fields),
|
|
51
|
+
PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_lb_v1_ServerList, expiration_interval, servers, &grpc_lb_v1_Duration_fields),
|
|
52
|
+
PB_LAST_FIELD
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const pb_field_t grpc_lb_v1_Server_fields[5] = {
|
|
56
|
+
PB_FIELD( 1, BYTES , OPTIONAL, STATIC , FIRST, grpc_lb_v1_Server, ip_address, ip_address, 0),
|
|
57
|
+
PB_FIELD( 2, INT32 , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server, port, ip_address, 0),
|
|
58
|
+
PB_FIELD( 3, STRING , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server, load_balance_token, port, 0),
|
|
59
|
+
PB_FIELD( 4, BOOL , OPTIONAL, STATIC , OTHER, grpc_lb_v1_Server, drop_request, load_balance_token, 0),
|
|
60
|
+
PB_LAST_FIELD
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
/* Check that field information fits in pb_field_t */
|
|
65
|
+
#if !defined(PB_FIELD_32BIT)
|
|
66
|
+
/* If you get an error here, it means that you need to define PB_FIELD_32BIT
|
|
67
|
+
* compile-time option. You can do that in pb.h or on compiler command line.
|
|
68
|
+
*
|
|
69
|
+
* The reason you need to do this is that some of your messages contain tag
|
|
70
|
+
* numbers or field sizes that are larger than what can fit in 8 or 16 bit
|
|
71
|
+
* field descriptors.
|
|
72
|
+
*/
|
|
73
|
+
PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 65536 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 65536 && pb_membersize(grpc_lb_v1_ServerList, servers) < 65536 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_grpc_lb_v1_Duration_grpc_lb_v1_LoadBalanceRequest_grpc_lb_v1_InitialLoadBalanceRequest_grpc_lb_v1_ClientStats_grpc_lb_v1_LoadBalanceResponse_grpc_lb_v1_InitialLoadBalanceResponse_grpc_lb_v1_ServerList_grpc_lb_v1_Server)
|
|
74
|
+
#endif
|
|
75
|
+
|
|
76
|
+
#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
|
|
77
|
+
/* If you get an error here, it means that you need to define PB_FIELD_16BIT
|
|
78
|
+
* compile-time option. You can do that in pb.h or on compiler command line.
|
|
79
|
+
*
|
|
80
|
+
* The reason you need to do this is that some of your messages contain tag
|
|
81
|
+
* numbers or field sizes that are larger than what can fit in the default
|
|
82
|
+
* 8 bit descriptors.
|
|
83
|
+
*/
|
|
84
|
+
PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 256 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 256 && pb_membersize(grpc_lb_v1_ServerList, servers) < 256 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_grpc_lb_v1_Duration_grpc_lb_v1_LoadBalanceRequest_grpc_lb_v1_InitialLoadBalanceRequest_grpc_lb_v1_ClientStats_grpc_lb_v1_LoadBalanceResponse_grpc_lb_v1_InitialLoadBalanceResponse_grpc_lb_v1_ServerList_grpc_lb_v1_Server)
|
|
85
|
+
#endif
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
/* @@protoc_insertion_point(eof) */
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/* Automatically generated nanopb header */
|
|
2
|
+
/* Generated by nanopb-0.3.7-dev */
|
|
3
|
+
|
|
4
|
+
#ifndef PB_GRPC_LB_V1_LOAD_BALANCER_PB_H_INCLUDED
|
|
5
|
+
#define PB_GRPC_LB_V1_LOAD_BALANCER_PB_H_INCLUDED
|
|
6
|
+
#include "third_party/nanopb/pb.h"
|
|
7
|
+
/* @@protoc_insertion_point(includes) */
|
|
8
|
+
#if PB_PROTO_HEADER_VERSION != 30
|
|
9
|
+
#error Regenerate this file with the current version of nanopb generator.
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
#ifdef __cplusplus
|
|
13
|
+
extern "C" {
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
/* Struct definitions */
|
|
17
|
+
typedef struct _grpc_lb_v1_ClientStats {
|
|
18
|
+
bool has_total_requests;
|
|
19
|
+
int64_t total_requests;
|
|
20
|
+
bool has_client_rpc_errors;
|
|
21
|
+
int64_t client_rpc_errors;
|
|
22
|
+
bool has_dropped_requests;
|
|
23
|
+
int64_t dropped_requests;
|
|
24
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_ClientStats) */
|
|
25
|
+
} grpc_lb_v1_ClientStats;
|
|
26
|
+
|
|
27
|
+
typedef struct _grpc_lb_v1_Duration {
|
|
28
|
+
bool has_seconds;
|
|
29
|
+
int64_t seconds;
|
|
30
|
+
bool has_nanos;
|
|
31
|
+
int32_t nanos;
|
|
32
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_Duration) */
|
|
33
|
+
} grpc_lb_v1_Duration;
|
|
34
|
+
|
|
35
|
+
typedef struct _grpc_lb_v1_InitialLoadBalanceRequest {
|
|
36
|
+
bool has_name;
|
|
37
|
+
char name[128];
|
|
38
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_InitialLoadBalanceRequest) */
|
|
39
|
+
} grpc_lb_v1_InitialLoadBalanceRequest;
|
|
40
|
+
|
|
41
|
+
typedef PB_BYTES_ARRAY_T(16) grpc_lb_v1_Server_ip_address_t;
|
|
42
|
+
typedef struct _grpc_lb_v1_Server {
|
|
43
|
+
bool has_ip_address;
|
|
44
|
+
grpc_lb_v1_Server_ip_address_t ip_address;
|
|
45
|
+
bool has_port;
|
|
46
|
+
int32_t port;
|
|
47
|
+
bool has_load_balance_token;
|
|
48
|
+
char load_balance_token[50];
|
|
49
|
+
bool has_drop_request;
|
|
50
|
+
bool drop_request;
|
|
51
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_Server) */
|
|
52
|
+
} grpc_lb_v1_Server;
|
|
53
|
+
|
|
54
|
+
typedef struct _grpc_lb_v1_InitialLoadBalanceResponse {
|
|
55
|
+
bool has_load_balancer_delegate;
|
|
56
|
+
char load_balancer_delegate[64];
|
|
57
|
+
bool has_client_stats_report_interval;
|
|
58
|
+
grpc_lb_v1_Duration client_stats_report_interval;
|
|
59
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_InitialLoadBalanceResponse) */
|
|
60
|
+
} grpc_lb_v1_InitialLoadBalanceResponse;
|
|
61
|
+
|
|
62
|
+
typedef struct _grpc_lb_v1_LoadBalanceRequest {
|
|
63
|
+
bool has_initial_request;
|
|
64
|
+
grpc_lb_v1_InitialLoadBalanceRequest initial_request;
|
|
65
|
+
bool has_client_stats;
|
|
66
|
+
grpc_lb_v1_ClientStats client_stats;
|
|
67
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_LoadBalanceRequest) */
|
|
68
|
+
} grpc_lb_v1_LoadBalanceRequest;
|
|
69
|
+
|
|
70
|
+
typedef struct _grpc_lb_v1_ServerList {
|
|
71
|
+
pb_callback_t servers;
|
|
72
|
+
bool has_expiration_interval;
|
|
73
|
+
grpc_lb_v1_Duration expiration_interval;
|
|
74
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_ServerList) */
|
|
75
|
+
} grpc_lb_v1_ServerList;
|
|
76
|
+
|
|
77
|
+
typedef struct _grpc_lb_v1_LoadBalanceResponse {
|
|
78
|
+
bool has_initial_response;
|
|
79
|
+
grpc_lb_v1_InitialLoadBalanceResponse initial_response;
|
|
80
|
+
bool has_server_list;
|
|
81
|
+
grpc_lb_v1_ServerList server_list;
|
|
82
|
+
/* @@protoc_insertion_point(struct:grpc_lb_v1_LoadBalanceResponse) */
|
|
83
|
+
} grpc_lb_v1_LoadBalanceResponse;
|
|
84
|
+
|
|
85
|
+
/* Default values for struct fields */
|
|
86
|
+
|
|
87
|
+
/* Initializer values for message structs */
|
|
88
|
+
#define grpc_lb_v1_Duration_init_default {false, 0, false, 0}
|
|
89
|
+
#define grpc_lb_v1_LoadBalanceRequest_init_default {false, grpc_lb_v1_InitialLoadBalanceRequest_init_default, false, grpc_lb_v1_ClientStats_init_default}
|
|
90
|
+
#define grpc_lb_v1_InitialLoadBalanceRequest_init_default {false, ""}
|
|
91
|
+
#define grpc_lb_v1_ClientStats_init_default {false, 0, false, 0, false, 0}
|
|
92
|
+
#define grpc_lb_v1_LoadBalanceResponse_init_default {false, grpc_lb_v1_InitialLoadBalanceResponse_init_default, false, grpc_lb_v1_ServerList_init_default}
|
|
93
|
+
#define grpc_lb_v1_InitialLoadBalanceResponse_init_default {false, "", false, grpc_lb_v1_Duration_init_default}
|
|
94
|
+
#define grpc_lb_v1_ServerList_init_default {{{NULL}, NULL}, false, grpc_lb_v1_Duration_init_default}
|
|
95
|
+
#define grpc_lb_v1_Server_init_default {false, {0, {0}}, false, 0, false, "", false, 0}
|
|
96
|
+
#define grpc_lb_v1_Duration_init_zero {false, 0, false, 0}
|
|
97
|
+
#define grpc_lb_v1_LoadBalanceRequest_init_zero {false, grpc_lb_v1_InitialLoadBalanceRequest_init_zero, false, grpc_lb_v1_ClientStats_init_zero}
|
|
98
|
+
#define grpc_lb_v1_InitialLoadBalanceRequest_init_zero {false, ""}
|
|
99
|
+
#define grpc_lb_v1_ClientStats_init_zero {false, 0, false, 0, false, 0}
|
|
100
|
+
#define grpc_lb_v1_LoadBalanceResponse_init_zero {false, grpc_lb_v1_InitialLoadBalanceResponse_init_zero, false, grpc_lb_v1_ServerList_init_zero}
|
|
101
|
+
#define grpc_lb_v1_InitialLoadBalanceResponse_init_zero {false, "", false, grpc_lb_v1_Duration_init_zero}
|
|
102
|
+
#define grpc_lb_v1_ServerList_init_zero {{{NULL}, NULL}, false, grpc_lb_v1_Duration_init_zero}
|
|
103
|
+
#define grpc_lb_v1_Server_init_zero {false, {0, {0}}, false, 0, false, "", false, 0}
|
|
104
|
+
|
|
105
|
+
/* Field tags (for use in manual encoding/decoding) */
|
|
106
|
+
#define grpc_lb_v1_ClientStats_total_requests_tag 1
|
|
107
|
+
#define grpc_lb_v1_ClientStats_client_rpc_errors_tag 2
|
|
108
|
+
#define grpc_lb_v1_ClientStats_dropped_requests_tag 3
|
|
109
|
+
#define grpc_lb_v1_Duration_seconds_tag 1
|
|
110
|
+
#define grpc_lb_v1_Duration_nanos_tag 2
|
|
111
|
+
#define grpc_lb_v1_InitialLoadBalanceRequest_name_tag 1
|
|
112
|
+
#define grpc_lb_v1_Server_ip_address_tag 1
|
|
113
|
+
#define grpc_lb_v1_Server_port_tag 2
|
|
114
|
+
#define grpc_lb_v1_Server_load_balance_token_tag 3
|
|
115
|
+
#define grpc_lb_v1_Server_drop_request_tag 4
|
|
116
|
+
#define grpc_lb_v1_InitialLoadBalanceResponse_load_balancer_delegate_tag 1
|
|
117
|
+
#define grpc_lb_v1_InitialLoadBalanceResponse_client_stats_report_interval_tag 2
|
|
118
|
+
#define grpc_lb_v1_LoadBalanceRequest_initial_request_tag 1
|
|
119
|
+
#define grpc_lb_v1_LoadBalanceRequest_client_stats_tag 2
|
|
120
|
+
#define grpc_lb_v1_ServerList_servers_tag 1
|
|
121
|
+
#define grpc_lb_v1_ServerList_expiration_interval_tag 3
|
|
122
|
+
#define grpc_lb_v1_LoadBalanceResponse_initial_response_tag 1
|
|
123
|
+
#define grpc_lb_v1_LoadBalanceResponse_server_list_tag 2
|
|
124
|
+
|
|
125
|
+
/* Struct field encoding specification for nanopb */
|
|
126
|
+
extern const pb_field_t grpc_lb_v1_Duration_fields[3];
|
|
127
|
+
extern const pb_field_t grpc_lb_v1_LoadBalanceRequest_fields[3];
|
|
128
|
+
extern const pb_field_t grpc_lb_v1_InitialLoadBalanceRequest_fields[2];
|
|
129
|
+
extern const pb_field_t grpc_lb_v1_ClientStats_fields[4];
|
|
130
|
+
extern const pb_field_t grpc_lb_v1_LoadBalanceResponse_fields[3];
|
|
131
|
+
extern const pb_field_t grpc_lb_v1_InitialLoadBalanceResponse_fields[3];
|
|
132
|
+
extern const pb_field_t grpc_lb_v1_ServerList_fields[3];
|
|
133
|
+
extern const pb_field_t grpc_lb_v1_Server_fields[5];
|
|
134
|
+
|
|
135
|
+
/* Maximum encoded size of messages (where known) */
|
|
136
|
+
#define grpc_lb_v1_Duration_size 22
|
|
137
|
+
#define grpc_lb_v1_LoadBalanceRequest_size 169
|
|
138
|
+
#define grpc_lb_v1_InitialLoadBalanceRequest_size 131
|
|
139
|
+
#define grpc_lb_v1_ClientStats_size 33
|
|
140
|
+
#define grpc_lb_v1_LoadBalanceResponse_size (98 + grpc_lb_v1_ServerList_size)
|
|
141
|
+
#define grpc_lb_v1_InitialLoadBalanceResponse_size 90
|
|
142
|
+
/* grpc_lb_v1_ServerList_size depends on runtime parameters */
|
|
143
|
+
#define grpc_lb_v1_Server_size 83
|
|
144
|
+
|
|
145
|
+
/* Message IDs (where set with "msgid" option) */
|
|
146
|
+
#ifdef PB_MSGID
|
|
147
|
+
|
|
148
|
+
#define LOAD_BALANCER_MESSAGES \
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
#endif
|
|
152
|
+
|
|
153
|
+
#ifdef __cplusplus
|
|
154
|
+
} /* extern "C" */
|
|
155
|
+
#endif
|
|
156
|
+
/* @@protoc_insertion_point(eof) */
|
|
157
|
+
|
|
158
|
+
#endif
|
|
@@ -0,0 +1,476 @@
|
|
|
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 <string.h>
|
|
35
|
+
|
|
36
|
+
#include <grpc/support/alloc.h>
|
|
37
|
+
|
|
38
|
+
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
|
39
|
+
#include "src/core/ext/filters/client_channel/subchannel.h"
|
|
40
|
+
#include "src/core/lib/channel/channel_args.h"
|
|
41
|
+
#include "src/core/lib/iomgr/combiner.h"
|
|
42
|
+
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
|
43
|
+
#include "src/core/lib/transport/connectivity_state.h"
|
|
44
|
+
|
|
45
|
+
typedef struct pending_pick {
|
|
46
|
+
struct pending_pick *next;
|
|
47
|
+
uint32_t initial_metadata_flags;
|
|
48
|
+
grpc_connected_subchannel **target;
|
|
49
|
+
grpc_closure *on_complete;
|
|
50
|
+
} pending_pick;
|
|
51
|
+
|
|
52
|
+
typedef struct {
|
|
53
|
+
/** base policy: must be first */
|
|
54
|
+
grpc_lb_policy base;
|
|
55
|
+
/** all our subchannels */
|
|
56
|
+
grpc_subchannel **subchannels;
|
|
57
|
+
size_t num_subchannels;
|
|
58
|
+
|
|
59
|
+
grpc_closure connectivity_changed;
|
|
60
|
+
|
|
61
|
+
/** remaining members are protected by the combiner */
|
|
62
|
+
|
|
63
|
+
/** the selected channel */
|
|
64
|
+
grpc_connected_subchannel *selected;
|
|
65
|
+
|
|
66
|
+
/** have we started picking? */
|
|
67
|
+
int started_picking;
|
|
68
|
+
/** are we shut down? */
|
|
69
|
+
int shutdown;
|
|
70
|
+
/** which subchannel are we watching? */
|
|
71
|
+
size_t checking_subchannel;
|
|
72
|
+
/** what is the connectivity of that channel? */
|
|
73
|
+
grpc_connectivity_state checking_connectivity;
|
|
74
|
+
/** list of picks that are waiting on connectivity */
|
|
75
|
+
pending_pick *pending_picks;
|
|
76
|
+
|
|
77
|
+
/** our connectivity state tracker */
|
|
78
|
+
grpc_connectivity_state_tracker state_tracker;
|
|
79
|
+
} pick_first_lb_policy;
|
|
80
|
+
|
|
81
|
+
static void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
|
|
82
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
83
|
+
size_t i;
|
|
84
|
+
GPR_ASSERT(p->pending_picks == NULL);
|
|
85
|
+
for (i = 0; i < p->num_subchannels; i++) {
|
|
86
|
+
GRPC_SUBCHANNEL_UNREF(exec_ctx, p->subchannels[i], "pick_first");
|
|
87
|
+
}
|
|
88
|
+
if (p->selected != NULL) {
|
|
89
|
+
GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, p->selected, "picked_first");
|
|
90
|
+
}
|
|
91
|
+
grpc_connectivity_state_destroy(exec_ctx, &p->state_tracker);
|
|
92
|
+
gpr_free(p->subchannels);
|
|
93
|
+
gpr_free(p);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
static void pf_shutdown_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
|
|
97
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
98
|
+
pending_pick *pp;
|
|
99
|
+
p->shutdown = 1;
|
|
100
|
+
pp = p->pending_picks;
|
|
101
|
+
p->pending_picks = NULL;
|
|
102
|
+
grpc_connectivity_state_set(
|
|
103
|
+
exec_ctx, &p->state_tracker, GRPC_CHANNEL_SHUTDOWN,
|
|
104
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Channel shutdown"), "shutdown");
|
|
105
|
+
/* cancel subscription */
|
|
106
|
+
if (p->selected != NULL) {
|
|
107
|
+
grpc_connected_subchannel_notify_on_state_change(
|
|
108
|
+
exec_ctx, p->selected, NULL, NULL, &p->connectivity_changed);
|
|
109
|
+
} else if (p->num_subchannels > 0) {
|
|
110
|
+
grpc_subchannel_notify_on_state_change(
|
|
111
|
+
exec_ctx, p->subchannels[p->checking_subchannel], NULL, NULL,
|
|
112
|
+
&p->connectivity_changed);
|
|
113
|
+
}
|
|
114
|
+
while (pp != NULL) {
|
|
115
|
+
pending_pick *next = pp->next;
|
|
116
|
+
*pp->target = NULL;
|
|
117
|
+
grpc_closure_sched(exec_ctx, pp->on_complete, GRPC_ERROR_NONE);
|
|
118
|
+
gpr_free(pp);
|
|
119
|
+
pp = next;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
static void pf_cancel_pick_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
|
|
124
|
+
grpc_connected_subchannel **target,
|
|
125
|
+
grpc_error *error) {
|
|
126
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
127
|
+
pending_pick *pp;
|
|
128
|
+
pp = p->pending_picks;
|
|
129
|
+
p->pending_picks = NULL;
|
|
130
|
+
while (pp != NULL) {
|
|
131
|
+
pending_pick *next = pp->next;
|
|
132
|
+
if (pp->target == target) {
|
|
133
|
+
*target = NULL;
|
|
134
|
+
grpc_closure_sched(exec_ctx, pp->on_complete,
|
|
135
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
|
136
|
+
"Pick Cancelled", &error, 1));
|
|
137
|
+
gpr_free(pp);
|
|
138
|
+
} else {
|
|
139
|
+
pp->next = p->pending_picks;
|
|
140
|
+
p->pending_picks = pp;
|
|
141
|
+
}
|
|
142
|
+
pp = next;
|
|
143
|
+
}
|
|
144
|
+
GRPC_ERROR_UNREF(error);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static void pf_cancel_picks_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
|
|
148
|
+
uint32_t initial_metadata_flags_mask,
|
|
149
|
+
uint32_t initial_metadata_flags_eq,
|
|
150
|
+
grpc_error *error) {
|
|
151
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
152
|
+
pending_pick *pp;
|
|
153
|
+
pp = p->pending_picks;
|
|
154
|
+
p->pending_picks = NULL;
|
|
155
|
+
while (pp != NULL) {
|
|
156
|
+
pending_pick *next = pp->next;
|
|
157
|
+
if ((pp->initial_metadata_flags & initial_metadata_flags_mask) ==
|
|
158
|
+
initial_metadata_flags_eq) {
|
|
159
|
+
grpc_closure_sched(exec_ctx, pp->on_complete,
|
|
160
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
|
161
|
+
"Pick Cancelled", &error, 1));
|
|
162
|
+
gpr_free(pp);
|
|
163
|
+
} else {
|
|
164
|
+
pp->next = p->pending_picks;
|
|
165
|
+
p->pending_picks = pp;
|
|
166
|
+
}
|
|
167
|
+
pp = next;
|
|
168
|
+
}
|
|
169
|
+
GRPC_ERROR_UNREF(error);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
static void start_picking(grpc_exec_ctx *exec_ctx, pick_first_lb_policy *p) {
|
|
173
|
+
p->started_picking = 1;
|
|
174
|
+
p->checking_subchannel = 0;
|
|
175
|
+
p->checking_connectivity = GRPC_CHANNEL_IDLE;
|
|
176
|
+
GRPC_LB_POLICY_WEAK_REF(&p->base, "pick_first_connectivity");
|
|
177
|
+
grpc_subchannel_notify_on_state_change(
|
|
178
|
+
exec_ctx, p->subchannels[p->checking_subchannel],
|
|
179
|
+
p->base.interested_parties, &p->checking_connectivity,
|
|
180
|
+
&p->connectivity_changed);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
static void pf_exit_idle_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
|
|
184
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
185
|
+
if (!p->started_picking) {
|
|
186
|
+
start_picking(exec_ctx, p);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
static int pf_pick_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
|
|
191
|
+
const grpc_lb_policy_pick_args *pick_args,
|
|
192
|
+
grpc_connected_subchannel **target, void **user_data,
|
|
193
|
+
grpc_closure *on_complete) {
|
|
194
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
195
|
+
pending_pick *pp;
|
|
196
|
+
|
|
197
|
+
/* Check atomically for a selected channel */
|
|
198
|
+
if (p->selected != NULL) {
|
|
199
|
+
*target = GRPC_CONNECTED_SUBCHANNEL_REF(p->selected, "picked");
|
|
200
|
+
return 1;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/* No subchannel selected yet, so try again */
|
|
204
|
+
if (!p->started_picking) {
|
|
205
|
+
start_picking(exec_ctx, p);
|
|
206
|
+
}
|
|
207
|
+
pp = gpr_malloc(sizeof(*pp));
|
|
208
|
+
pp->next = p->pending_picks;
|
|
209
|
+
pp->target = target;
|
|
210
|
+
pp->initial_metadata_flags = pick_args->initial_metadata_flags;
|
|
211
|
+
pp->on_complete = on_complete;
|
|
212
|
+
p->pending_picks = pp;
|
|
213
|
+
return 0;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
static void destroy_subchannels_locked(grpc_exec_ctx *exec_ctx,
|
|
217
|
+
pick_first_lb_policy *p) {
|
|
218
|
+
size_t i;
|
|
219
|
+
size_t num_subchannels = p->num_subchannels;
|
|
220
|
+
grpc_subchannel **subchannels;
|
|
221
|
+
|
|
222
|
+
subchannels = p->subchannels;
|
|
223
|
+
p->num_subchannels = 0;
|
|
224
|
+
p->subchannels = NULL;
|
|
225
|
+
GRPC_LB_POLICY_WEAK_UNREF(exec_ctx, &p->base, "destroy_subchannels");
|
|
226
|
+
|
|
227
|
+
for (i = 0; i < num_subchannels; i++) {
|
|
228
|
+
GRPC_SUBCHANNEL_UNREF(exec_ctx, subchannels[i], "pick_first");
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
gpr_free(subchannels);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
static void pf_connectivity_changed_locked(grpc_exec_ctx *exec_ctx, void *arg,
|
|
235
|
+
grpc_error *error) {
|
|
236
|
+
pick_first_lb_policy *p = arg;
|
|
237
|
+
grpc_subchannel *selected_subchannel;
|
|
238
|
+
pending_pick *pp;
|
|
239
|
+
|
|
240
|
+
GRPC_ERROR_REF(error);
|
|
241
|
+
|
|
242
|
+
if (p->shutdown) {
|
|
243
|
+
GRPC_LB_POLICY_WEAK_UNREF(exec_ctx, &p->base, "pick_first_connectivity");
|
|
244
|
+
GRPC_ERROR_UNREF(error);
|
|
245
|
+
return;
|
|
246
|
+
} else if (p->selected != NULL) {
|
|
247
|
+
if (p->checking_connectivity == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
|
248
|
+
/* if the selected channel goes bad, we're done */
|
|
249
|
+
p->checking_connectivity = GRPC_CHANNEL_SHUTDOWN;
|
|
250
|
+
}
|
|
251
|
+
grpc_connectivity_state_set(exec_ctx, &p->state_tracker,
|
|
252
|
+
p->checking_connectivity, GRPC_ERROR_REF(error),
|
|
253
|
+
"selected_changed");
|
|
254
|
+
if (p->checking_connectivity != GRPC_CHANNEL_SHUTDOWN) {
|
|
255
|
+
grpc_connected_subchannel_notify_on_state_change(
|
|
256
|
+
exec_ctx, p->selected, p->base.interested_parties,
|
|
257
|
+
&p->checking_connectivity, &p->connectivity_changed);
|
|
258
|
+
} else {
|
|
259
|
+
GRPC_LB_POLICY_WEAK_UNREF(exec_ctx, &p->base, "pick_first_connectivity");
|
|
260
|
+
}
|
|
261
|
+
} else {
|
|
262
|
+
loop:
|
|
263
|
+
switch (p->checking_connectivity) {
|
|
264
|
+
case GRPC_CHANNEL_INIT:
|
|
265
|
+
GPR_UNREACHABLE_CODE(return );
|
|
266
|
+
case GRPC_CHANNEL_READY:
|
|
267
|
+
grpc_connectivity_state_set(exec_ctx, &p->state_tracker,
|
|
268
|
+
GRPC_CHANNEL_READY, GRPC_ERROR_NONE,
|
|
269
|
+
"connecting_ready");
|
|
270
|
+
selected_subchannel = p->subchannels[p->checking_subchannel];
|
|
271
|
+
p->selected = GRPC_CONNECTED_SUBCHANNEL_REF(
|
|
272
|
+
grpc_subchannel_get_connected_subchannel(selected_subchannel),
|
|
273
|
+
"picked_first");
|
|
274
|
+
/* drop the pick list: we are connected now */
|
|
275
|
+
GRPC_LB_POLICY_WEAK_REF(&p->base, "destroy_subchannels");
|
|
276
|
+
destroy_subchannels_locked(exec_ctx, p);
|
|
277
|
+
/* update any calls that were waiting for a pick */
|
|
278
|
+
while ((pp = p->pending_picks)) {
|
|
279
|
+
p->pending_picks = pp->next;
|
|
280
|
+
*pp->target = GRPC_CONNECTED_SUBCHANNEL_REF(p->selected, "picked");
|
|
281
|
+
grpc_closure_sched(exec_ctx, pp->on_complete, GRPC_ERROR_NONE);
|
|
282
|
+
gpr_free(pp);
|
|
283
|
+
}
|
|
284
|
+
grpc_connected_subchannel_notify_on_state_change(
|
|
285
|
+
exec_ctx, p->selected, p->base.interested_parties,
|
|
286
|
+
&p->checking_connectivity, &p->connectivity_changed);
|
|
287
|
+
break;
|
|
288
|
+
case GRPC_CHANNEL_TRANSIENT_FAILURE:
|
|
289
|
+
p->checking_subchannel =
|
|
290
|
+
(p->checking_subchannel + 1) % p->num_subchannels;
|
|
291
|
+
if (p->checking_subchannel == 0) {
|
|
292
|
+
/* only trigger transient failure when we've tried all alternatives */
|
|
293
|
+
grpc_connectivity_state_set(
|
|
294
|
+
exec_ctx, &p->state_tracker, GRPC_CHANNEL_TRANSIENT_FAILURE,
|
|
295
|
+
GRPC_ERROR_REF(error), "connecting_transient_failure");
|
|
296
|
+
}
|
|
297
|
+
GRPC_ERROR_UNREF(error);
|
|
298
|
+
p->checking_connectivity = grpc_subchannel_check_connectivity(
|
|
299
|
+
p->subchannels[p->checking_subchannel], &error);
|
|
300
|
+
if (p->checking_connectivity == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
|
301
|
+
grpc_subchannel_notify_on_state_change(
|
|
302
|
+
exec_ctx, p->subchannels[p->checking_subchannel],
|
|
303
|
+
p->base.interested_parties, &p->checking_connectivity,
|
|
304
|
+
&p->connectivity_changed);
|
|
305
|
+
} else {
|
|
306
|
+
goto loop;
|
|
307
|
+
}
|
|
308
|
+
break;
|
|
309
|
+
case GRPC_CHANNEL_CONNECTING:
|
|
310
|
+
case GRPC_CHANNEL_IDLE:
|
|
311
|
+
grpc_connectivity_state_set(
|
|
312
|
+
exec_ctx, &p->state_tracker, GRPC_CHANNEL_CONNECTING,
|
|
313
|
+
GRPC_ERROR_REF(error), "connecting_changed");
|
|
314
|
+
grpc_subchannel_notify_on_state_change(
|
|
315
|
+
exec_ctx, p->subchannels[p->checking_subchannel],
|
|
316
|
+
p->base.interested_parties, &p->checking_connectivity,
|
|
317
|
+
&p->connectivity_changed);
|
|
318
|
+
break;
|
|
319
|
+
case GRPC_CHANNEL_SHUTDOWN:
|
|
320
|
+
p->num_subchannels--;
|
|
321
|
+
GPR_SWAP(grpc_subchannel *, p->subchannels[p->checking_subchannel],
|
|
322
|
+
p->subchannels[p->num_subchannels]);
|
|
323
|
+
GRPC_SUBCHANNEL_UNREF(exec_ctx, p->subchannels[p->num_subchannels],
|
|
324
|
+
"pick_first");
|
|
325
|
+
if (p->num_subchannels == 0) {
|
|
326
|
+
grpc_connectivity_state_set(
|
|
327
|
+
exec_ctx, &p->state_tracker, GRPC_CHANNEL_SHUTDOWN,
|
|
328
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
|
329
|
+
"Pick first exhausted channels", &error, 1),
|
|
330
|
+
"no_more_channels");
|
|
331
|
+
while ((pp = p->pending_picks)) {
|
|
332
|
+
p->pending_picks = pp->next;
|
|
333
|
+
*pp->target = NULL;
|
|
334
|
+
grpc_closure_sched(exec_ctx, pp->on_complete, GRPC_ERROR_NONE);
|
|
335
|
+
gpr_free(pp);
|
|
336
|
+
}
|
|
337
|
+
GRPC_LB_POLICY_WEAK_UNREF(exec_ctx, &p->base,
|
|
338
|
+
"pick_first_connectivity");
|
|
339
|
+
} else {
|
|
340
|
+
grpc_connectivity_state_set(
|
|
341
|
+
exec_ctx, &p->state_tracker, GRPC_CHANNEL_TRANSIENT_FAILURE,
|
|
342
|
+
GRPC_ERROR_REF(error), "subchannel_failed");
|
|
343
|
+
p->checking_subchannel %= p->num_subchannels;
|
|
344
|
+
GRPC_ERROR_UNREF(error);
|
|
345
|
+
p->checking_connectivity = grpc_subchannel_check_connectivity(
|
|
346
|
+
p->subchannels[p->checking_subchannel], &error);
|
|
347
|
+
goto loop;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
GRPC_ERROR_UNREF(error);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
static grpc_connectivity_state pf_check_connectivity_locked(
|
|
356
|
+
grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, grpc_error **error) {
|
|
357
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
358
|
+
return grpc_connectivity_state_get(&p->state_tracker, error);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
static void pf_notify_on_state_change_locked(grpc_exec_ctx *exec_ctx,
|
|
362
|
+
grpc_lb_policy *pol,
|
|
363
|
+
grpc_connectivity_state *current,
|
|
364
|
+
grpc_closure *notify) {
|
|
365
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
366
|
+
grpc_connectivity_state_notify_on_state_change(exec_ctx, &p->state_tracker,
|
|
367
|
+
current, notify);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
static void pf_ping_one_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
|
|
371
|
+
grpc_closure *closure) {
|
|
372
|
+
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
|
|
373
|
+
if (p->selected) {
|
|
374
|
+
grpc_connected_subchannel_ping(exec_ctx, p->selected, closure);
|
|
375
|
+
} else {
|
|
376
|
+
grpc_closure_sched(exec_ctx, closure,
|
|
377
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Not connected"));
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
static const grpc_lb_policy_vtable pick_first_lb_policy_vtable = {
|
|
382
|
+
pf_destroy,
|
|
383
|
+
pf_shutdown_locked,
|
|
384
|
+
pf_pick_locked,
|
|
385
|
+
pf_cancel_pick_locked,
|
|
386
|
+
pf_cancel_picks_locked,
|
|
387
|
+
pf_ping_one_locked,
|
|
388
|
+
pf_exit_idle_locked,
|
|
389
|
+
pf_check_connectivity_locked,
|
|
390
|
+
pf_notify_on_state_change_locked};
|
|
391
|
+
|
|
392
|
+
static void pick_first_factory_ref(grpc_lb_policy_factory *factory) {}
|
|
393
|
+
|
|
394
|
+
static void pick_first_factory_unref(grpc_lb_policy_factory *factory) {}
|
|
395
|
+
|
|
396
|
+
static grpc_lb_policy *create_pick_first(grpc_exec_ctx *exec_ctx,
|
|
397
|
+
grpc_lb_policy_factory *factory,
|
|
398
|
+
grpc_lb_policy_args *args) {
|
|
399
|
+
GPR_ASSERT(args->client_channel_factory != NULL);
|
|
400
|
+
|
|
401
|
+
/* Find the number of backend addresses. We ignore balancer
|
|
402
|
+
* addresses, since we don't know how to handle them. */
|
|
403
|
+
const grpc_arg *arg =
|
|
404
|
+
grpc_channel_args_find(args->args, GRPC_ARG_LB_ADDRESSES);
|
|
405
|
+
if (arg == NULL || arg->type != GRPC_ARG_POINTER) {
|
|
406
|
+
return NULL;
|
|
407
|
+
}
|
|
408
|
+
grpc_lb_addresses *addresses = arg->value.pointer.p;
|
|
409
|
+
size_t num_addrs = 0;
|
|
410
|
+
for (size_t i = 0; i < addresses->num_addresses; i++) {
|
|
411
|
+
if (!addresses->addresses[i].is_balancer) ++num_addrs;
|
|
412
|
+
}
|
|
413
|
+
if (num_addrs == 0) return NULL;
|
|
414
|
+
|
|
415
|
+
pick_first_lb_policy *p = gpr_zalloc(sizeof(*p));
|
|
416
|
+
|
|
417
|
+
p->subchannels = gpr_zalloc(sizeof(grpc_subchannel *) * num_addrs);
|
|
418
|
+
grpc_subchannel_args sc_args;
|
|
419
|
+
size_t subchannel_idx = 0;
|
|
420
|
+
for (size_t i = 0; i < addresses->num_addresses; i++) {
|
|
421
|
+
/* Skip balancer addresses, since we only know how to handle backends. */
|
|
422
|
+
if (addresses->addresses[i].is_balancer) continue;
|
|
423
|
+
|
|
424
|
+
if (addresses->addresses[i].user_data != NULL) {
|
|
425
|
+
gpr_log(GPR_ERROR,
|
|
426
|
+
"This LB policy doesn't support user data. It will be ignored");
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
static const char *keys_to_remove[] = {GRPC_ARG_SUBCHANNEL_ADDRESS};
|
|
430
|
+
memset(&sc_args, 0, sizeof(grpc_subchannel_args));
|
|
431
|
+
grpc_arg addr_arg =
|
|
432
|
+
grpc_create_subchannel_address_arg(&addresses->addresses[i].address);
|
|
433
|
+
grpc_channel_args *new_args = grpc_channel_args_copy_and_add_and_remove(
|
|
434
|
+
args->args, keys_to_remove, GPR_ARRAY_SIZE(keys_to_remove), &addr_arg,
|
|
435
|
+
1);
|
|
436
|
+
gpr_free(addr_arg.value.string);
|
|
437
|
+
sc_args.args = new_args;
|
|
438
|
+
grpc_subchannel *subchannel = grpc_client_channel_factory_create_subchannel(
|
|
439
|
+
exec_ctx, args->client_channel_factory, &sc_args);
|
|
440
|
+
grpc_channel_args_destroy(exec_ctx, new_args);
|
|
441
|
+
|
|
442
|
+
if (subchannel != NULL) {
|
|
443
|
+
p->subchannels[subchannel_idx++] = subchannel;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
if (subchannel_idx == 0) {
|
|
447
|
+
gpr_free(p->subchannels);
|
|
448
|
+
gpr_free(p);
|
|
449
|
+
return NULL;
|
|
450
|
+
}
|
|
451
|
+
p->num_subchannels = subchannel_idx;
|
|
452
|
+
|
|
453
|
+
grpc_lb_policy_init(&p->base, &pick_first_lb_policy_vtable, args->combiner);
|
|
454
|
+
grpc_closure_init(&p->connectivity_changed, pf_connectivity_changed_locked, p,
|
|
455
|
+
grpc_combiner_scheduler(args->combiner, false));
|
|
456
|
+
return &p->base;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
static const grpc_lb_policy_factory_vtable pick_first_factory_vtable = {
|
|
460
|
+
pick_first_factory_ref, pick_first_factory_unref, create_pick_first,
|
|
461
|
+
"pick_first"};
|
|
462
|
+
|
|
463
|
+
static grpc_lb_policy_factory pick_first_lb_policy_factory = {
|
|
464
|
+
&pick_first_factory_vtable};
|
|
465
|
+
|
|
466
|
+
static grpc_lb_policy_factory *pick_first_lb_factory_create() {
|
|
467
|
+
return &pick_first_lb_policy_factory;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/* Plugin registration */
|
|
471
|
+
|
|
472
|
+
void grpc_lb_policy_pick_first_init() {
|
|
473
|
+
grpc_register_lb_policy(pick_first_lb_factory_create());
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
void grpc_lb_policy_pick_first_shutdown() {}
|