grpc 1.28.0 → 1.30.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +7694 -11190
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +30 -9
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/grpc_types.h +19 -21
- data/include/grpc/impl/codegen/port_platform.h +6 -2
- data/include/grpc/module.modulemap +24 -39
- data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +212 -241
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +17 -10
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +240 -301
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -2
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
- data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver.h +12 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +73 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +16 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +184 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +32 -5
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +16 -16
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +20 -31
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +4 -3
- data/src/core/ext/filters/client_channel/server_address.cc +6 -9
- data/src/core/ext/filters/client_channel/server_address.h +6 -12
- data/src/core/ext/filters/client_channel/service_config.cc +104 -144
- data/src/core/ext/filters/client_channel/service_config.h +28 -98
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
- data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +348 -221
- data/src/core/ext/filters/client_channel/xds/xds_api.h +37 -37
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +44 -49
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +532 -339
- data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +31 -19
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +7 -10
- data/src/core/ext/filters/message_size/message_size_filter.h +4 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +23 -22
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -8
- data/src/core/ext/transport/inproc/inproc_transport.cc +19 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -875
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +43 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +47 -26
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +115 -65
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +28 -13
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +88 -6
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +16 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +63 -41
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +173 -77
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
- data/src/core/ext/upb-generated/validate/validate.upb.h +69 -63
- data/src/core/lib/channel/channel_args.cc +15 -14
- data/src/core/lib/channel/channel_args.h +3 -1
- data/src/core/lib/channel/channel_stack.h +20 -13
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +3 -2
- data/src/core/lib/channel/channelz_registry.cc +5 -3
- data/src/core/lib/channel/connected_channel.cc +7 -5
- data/src/core/lib/channel/context.h +1 -1
- data/src/core/lib/channel/handshaker.cc +11 -13
- data/src/core/lib/channel/handshaker.h +4 -2
- data/src/core/lib/channel/handshaker_registry.cc +5 -17
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/message_compress.cc +5 -1
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +2 -26
- data/src/core/lib/gpr/string.h +0 -16
- data/src/core/lib/gpr/sync_abseil.cc +2 -0
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.cc +1 -1
- data/src/core/lib/gprpp/atomic.h +6 -6
- data/src/core/lib/gprpp/fork.cc +1 -1
- data/src/core/lib/gprpp/host_port.cc +29 -35
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +2 -3
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.h +2 -3
- data/src/core/lib/iomgr/buffer_list.h +22 -21
- data/src/core/lib/iomgr/call_combiner.h +3 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
- data/src/core/lib/iomgr/closure.h +2 -3
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +356 -0
- data/src/core/lib/iomgr/ev_apple.h +43 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
- data/src/core/lib/iomgr/ev_epollex_linux.cc +2 -3
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.cc +2 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
- data/src/core/lib/iomgr/port.h +1 -0
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
- data/src/core/lib/iomgr/resource_quota.cc +4 -6
- data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
- data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +2 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +8 -5
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_custom.cc +2 -3
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
- data/src/core/lib/iomgr/tcp_uv.cc +3 -2
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +2 -3
- data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +9 -14
- data/src/core/lib/json/json.h +3 -2
- data/src/core/lib/json/json_reader.cc +5 -5
- data/src/core/lib/json/json_writer.cc +13 -12
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +8 -59
- data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +55 -27
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +59 -12
- data/src/core/lib/security/security_connector/ssl_utils.h +12 -10
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +77 -51
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +14 -0
- data/src/core/lib/slice/slice_utils.h +9 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
- data/src/core/lib/surface/call.cc +2 -3
- data/src/core/lib/surface/call_log_batch.cc +50 -58
- data/src/core/lib/surface/channel.cc +53 -31
- data/src/core/lib/surface/channel.h +35 -4
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/completion_queue.cc +33 -33
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +570 -369
- data/src/core/lib/surface/server.h +32 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +7 -2
- data/src/core/lib/transport/connectivity_state.cc +7 -6
- data/src/core/lib/transport/connectivity_state.h +5 -3
- data/src/core/lib/transport/metadata.cc +3 -3
- data/src/core/lib/transport/metadata_batch.h +2 -3
- data/src/core/lib/transport/static_metadata.h +1 -1
- data/src/core/lib/transport/status_conversion.cc +6 -14
- data/src/core/lib/transport/transport.cc +2 -3
- data/src/core/lib/transport/transport.h +3 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +8 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/fake_transport_security.cc +10 -15
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl_transport_security.cc +52 -39
- data/src/core/tsi/ssl_transport_security.h +8 -8
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.h +2 -3
- data/src/core/tsi/transport_security_interface.h +3 -3
- data/src/ruby/ext/grpc/rb_call.c +9 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/errors.rb +103 -42
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
- data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
- data/src/ruby/lib/grpc/generic/service.rb +5 -4
- data/src/ruby/lib/grpc/structs.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +7 -1
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/testdata/ca.pem +18 -13
- data/src/ruby/spec/testdata/client.key +26 -14
- data/src/ruby/spec/testdata/client.pem +18 -12
- data/src/ruby/spec/testdata/server1.key +26 -14
- data/src/ruby/spec/testdata/server1.pem +20 -14
- data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
- data/third_party/abseil-cpp/absl/time/clock.h +74 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
- data/third_party/abseil-cpp/absl/time/format.cc +153 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/third_party/abseil-cpp/absl/time/time.cc +499 -0
- data/third_party/abseil-cpp/absl/time/time.h +1584 -0
- data/third_party/boringssl-with-bazel/err_data.c +329 -297
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +432 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -12
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +172 -77
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +5 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +14 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +28 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +12 -4
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +64 -47
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +64 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +6 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -27
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +50 -20
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
- metadata +115 -39
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
- data/src/core/lib/gprpp/string_view.h +0 -60
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
@@ -26,7 +26,7 @@
|
|
26
26
|
#include "src/core/lib/iomgr/resolve_address.h"
|
27
27
|
|
28
28
|
/** The virtual table of grpc_socket_factory */
|
29
|
-
|
29
|
+
struct grpc_socket_factory_vtable {
|
30
30
|
/** Replacement for socket(2) */
|
31
31
|
int (*socket)(grpc_socket_factory* factory, int domain, int type,
|
32
32
|
int protocol);
|
@@ -37,8 +37,7 @@ typedef struct {
|
|
37
37
|
int (*compare)(grpc_socket_factory* a, grpc_socket_factory* b);
|
38
38
|
/** Destroys the socket factory instance */
|
39
39
|
void (*destroy)(grpc_socket_factory* factory);
|
40
|
-
}
|
41
|
-
|
40
|
+
};
|
42
41
|
/** The Socket Factory interface allows changes on socket options */
|
43
42
|
struct grpc_socket_factory {
|
44
43
|
const grpc_socket_factory_vtable* vtable;
|
@@ -27,15 +27,14 @@
|
|
27
27
|
#include <stdbool.h>
|
28
28
|
|
29
29
|
/** The virtual table of grpc_socket_mutator */
|
30
|
-
|
30
|
+
struct grpc_socket_mutator_vtable {
|
31
31
|
/** Mutates the socket options of \a fd */
|
32
32
|
bool (*mutate_fd)(int fd, grpc_socket_mutator* mutator);
|
33
33
|
/** Compare socket mutator \a a and \a b */
|
34
34
|
int (*compare)(grpc_socket_mutator* a, grpc_socket_mutator* b);
|
35
35
|
/** Destroys the socket mutator instance */
|
36
36
|
void (*destroy)(grpc_socket_mutator* mutator);
|
37
|
-
}
|
38
|
-
|
37
|
+
};
|
39
38
|
/** The Socket Mutator interface allows changes on socket options */
|
40
39
|
struct grpc_socket_mutator {
|
41
40
|
const grpc_socket_mutator_vtable* vtable;
|
@@ -41,6 +41,8 @@
|
|
41
41
|
#include <sys/types.h>
|
42
42
|
#include <unistd.h>
|
43
43
|
|
44
|
+
#include <string>
|
45
|
+
|
44
46
|
#include <grpc/support/alloc.h>
|
45
47
|
#include <grpc/support/log.h>
|
46
48
|
#include <grpc/support/sync.h>
|
@@ -210,7 +212,6 @@ static gpr_once g_probe_so_reuesport_once = GPR_ONCE_INIT;
|
|
210
212
|
static int g_support_so_reuseport = false;
|
211
213
|
|
212
214
|
void probe_so_reuseport_once(void) {
|
213
|
-
#ifndef GPR_MANYLINUX1
|
214
215
|
int s = socket(AF_INET, SOCK_STREAM, 0);
|
215
216
|
if (s < 0) {
|
216
217
|
/* This might be an ipv6-only environment in which case 'socket(AF_INET,..)'
|
@@ -222,7 +223,6 @@ void probe_so_reuseport_once(void) {
|
|
222
223
|
"check for SO_REUSEPORT", grpc_set_socket_reuse_port(s, 1));
|
223
224
|
close(s);
|
224
225
|
}
|
225
|
-
#endif
|
226
226
|
}
|
227
227
|
|
228
228
|
bool grpc_is_socket_reuse_port_supported() {
|
@@ -396,31 +396,12 @@ int grpc_ipv6_loopback_available(void) {
|
|
396
396
|
return g_ipv6_loopback_available;
|
397
397
|
}
|
398
398
|
|
399
|
-
/* This should be 0 in production, but it may be enabled for testing or
|
400
|
-
debugging purposes, to simulate an environment where IPv6 sockets can't
|
401
|
-
also speak IPv4. */
|
402
|
-
int grpc_forbid_dualstack_sockets_for_testing = 0;
|
403
|
-
|
404
|
-
static int set_socket_dualstack(int fd) {
|
405
|
-
if (!grpc_forbid_dualstack_sockets_for_testing) {
|
406
|
-
const int off = 0;
|
407
|
-
return 0 == setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &off, sizeof(off));
|
408
|
-
} else {
|
409
|
-
/* Force an IPv6-only socket, for testing purposes. */
|
410
|
-
const int on = 1;
|
411
|
-
setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on));
|
412
|
-
return 0;
|
413
|
-
}
|
414
|
-
}
|
415
|
-
|
416
399
|
static grpc_error* error_for_fd(int fd, const grpc_resolved_address* addr) {
|
417
400
|
if (fd >= 0) return GRPC_ERROR_NONE;
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
grpc_slice_from_copied_string(addr_str));
|
423
|
-
gpr_free(addr_str);
|
401
|
+
std::string addr_str = grpc_sockaddr_to_string(addr, false);
|
402
|
+
grpc_error* err = grpc_error_set_str(
|
403
|
+
GRPC_OS_ERROR(errno, "socket"), GRPC_ERROR_STR_TARGET_ADDRESS,
|
404
|
+
grpc_slice_from_copied_string(addr_str.c_str()));
|
424
405
|
return err;
|
425
406
|
}
|
426
407
|
|
@@ -452,7 +433,7 @@ grpc_error* grpc_create_dualstack_socket_using_factory(
|
|
452
433
|
errno = EAFNOSUPPORT;
|
453
434
|
}
|
454
435
|
/* Check if we've got a valid dualstack socket. */
|
455
|
-
if (*newfd >= 0 &&
|
436
|
+
if (*newfd >= 0 && grpc_set_socket_dualstack(*newfd)) {
|
456
437
|
*dsmode = GRPC_DSMODE_DUALSTACK;
|
457
438
|
return GRPC_ERROR_NONE;
|
458
439
|
}
|
@@ -126,6 +126,9 @@ typedef enum grpc_dualstack_mode {
|
|
126
126
|
/* Only tests should use this flag. */
|
127
127
|
extern int grpc_forbid_dualstack_sockets_for_testing;
|
128
128
|
|
129
|
+
/* Tries to set the socket to dualstack. Returns 1 on success. */
|
130
|
+
int grpc_set_socket_dualstack(int fd);
|
131
|
+
|
129
132
|
/* Creates a new socket for connecting to (or listening on) an address.
|
130
133
|
|
131
134
|
If addr is AF_INET6, this creates an IPv6 socket first. If that fails,
|
@@ -143,14 +143,12 @@ static void OnOpen(void* arg, grpc_error* error) {
|
|
143
143
|
|
144
144
|
static void ParseResolvedAddress(const grpc_resolved_address* addr,
|
145
145
|
CFStringRef* host, int* port) {
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
grpc_core::UniquePtr<char> port_string;
|
146
|
+
std::string host_port = grpc_sockaddr_to_string(addr, true);
|
147
|
+
std::string host_string;
|
148
|
+
std::string port_string;
|
150
149
|
grpc_core::SplitHostPort(host_port, &host_string, &port_string);
|
151
|
-
*host =
|
152
|
-
|
153
|
-
gpr_free(host_port);
|
150
|
+
*host = CFStringCreateWithCString(NULL, host_string.c_str(),
|
151
|
+
kCFStringEncodingUTF8);
|
154
152
|
*port = grpc_sockaddr_get_port(addr);
|
155
153
|
}
|
156
154
|
|
@@ -49,7 +49,7 @@
|
|
49
49
|
|
50
50
|
extern grpc_core::TraceFlag grpc_tcp_trace;
|
51
51
|
|
52
|
-
|
52
|
+
struct async_connect {
|
53
53
|
gpr_mu mu;
|
54
54
|
grpc_fd* fd;
|
55
55
|
grpc_timer alarm;
|
@@ -61,8 +61,7 @@ typedef struct {
|
|
61
61
|
grpc_endpoint** ep;
|
62
62
|
grpc_closure* closure;
|
63
63
|
grpc_channel_args* channel_args;
|
64
|
-
}
|
65
|
-
|
64
|
+
};
|
66
65
|
static grpc_error* prepare_socket(const grpc_resolved_address* addr, int fd,
|
67
66
|
const grpc_channel_args* channel_args) {
|
68
67
|
grpc_error* err = GRPC_ERROR_NONE;
|
@@ -302,9 +301,13 @@ void grpc_tcp_client_create_from_prepared_fd(
|
|
302
301
|
return;
|
303
302
|
}
|
304
303
|
if (errno != EWOULDBLOCK && errno != EINPROGRESS) {
|
304
|
+
grpc_error* error = GRPC_OS_ERROR(errno, "connect");
|
305
|
+
char* addr_str = grpc_sockaddr_to_uri(addr);
|
306
|
+
error = grpc_error_set_str(error, GRPC_ERROR_STR_TARGET_ADDRESS,
|
307
|
+
grpc_slice_from_copied_string(addr_str));
|
308
|
+
gpr_free(addr_str);
|
305
309
|
grpc_fd_orphan(fdobj, nullptr, nullptr, "tcp_client_connect_error");
|
306
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure,
|
307
|
-
GRPC_OS_ERROR(errno, "connect"));
|
310
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, error);
|
308
311
|
return;
|
309
312
|
}
|
310
313
|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
#include "src/core/lib/iomgr/tcp_windows.h"
|
41
41
|
#include "src/core/lib/iomgr/timer.h"
|
42
42
|
|
43
|
-
|
43
|
+
struct async_connect {
|
44
44
|
grpc_closure* on_done;
|
45
45
|
gpr_mu mu;
|
46
46
|
grpc_winsocket* socket;
|
@@ -51,8 +51,7 @@ typedef struct {
|
|
51
51
|
grpc_closure on_connect;
|
52
52
|
grpc_endpoint** endpoint;
|
53
53
|
grpc_channel_args* channel_args;
|
54
|
-
}
|
55
|
-
|
54
|
+
};
|
56
55
|
static void async_connect_unlock_and_cleanup(async_connect* ac,
|
57
56
|
grpc_winsocket* socket) {
|
58
57
|
int done = (--ac->refs == 0);
|
@@ -52,7 +52,7 @@ void grpc_custom_endpoint_init(grpc_socket_vtable* impl) {
|
|
52
52
|
grpc_set_tcp_server_impl(&custom_tcp_server_vtable);
|
53
53
|
}
|
54
54
|
|
55
|
-
|
55
|
+
struct custom_tcp_endpoint {
|
56
56
|
grpc_endpoint base;
|
57
57
|
gpr_refcount refcount;
|
58
58
|
grpc_custom_socket* socket;
|
@@ -69,8 +69,7 @@ typedef struct {
|
|
69
69
|
bool shutting_down;
|
70
70
|
|
71
71
|
char* peer_string;
|
72
|
-
}
|
73
|
-
|
72
|
+
};
|
74
73
|
static void tcp_free(grpc_custom_socket* s) {
|
75
74
|
custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)s->endpoint;
|
76
75
|
grpc_resource_user_unref(tcp->resource_user);
|
@@ -23,6 +23,8 @@
|
|
23
23
|
#include <assert.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
+
#include <string>
|
27
|
+
|
26
28
|
#include <grpc/support/alloc.h>
|
27
29
|
#include <grpc/support/log.h>
|
28
30
|
|
@@ -389,15 +391,9 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
389
391
|
}
|
390
392
|
|
391
393
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
if (port_string) {
|
396
|
-
gpr_log(GPR_INFO, "SERVER %p add_port %s error=%s", s, port_string, str);
|
397
|
-
gpr_free(port_string);
|
398
|
-
} else {
|
399
|
-
gpr_log(GPR_INFO, "SERVER %p add_port error=%s", s, str);
|
400
|
-
}
|
394
|
+
gpr_log(GPR_INFO, "SERVER %p add_port %s error=%s", s,
|
395
|
+
grpc_sockaddr_to_string(addr, false).c_str(),
|
396
|
+
grpc_error_string(error));
|
401
397
|
}
|
402
398
|
|
403
399
|
family = grpc_sockaddr_get_family(addr);
|
@@ -37,6 +37,8 @@
|
|
37
37
|
#include <sys/types.h>
|
38
38
|
#include <unistd.h>
|
39
39
|
|
40
|
+
#include <string>
|
41
|
+
|
40
42
|
#include <grpc/support/alloc.h>
|
41
43
|
#include <grpc/support/log.h>
|
42
44
|
#include <grpc/support/string_util.h>
|
@@ -349,7 +351,7 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
|
349
351
|
|
350
352
|
static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
351
353
|
grpc_tcp_listener* sp = nullptr;
|
352
|
-
|
354
|
+
std::string addr_str;
|
353
355
|
char* name;
|
354
356
|
grpc_error* err;
|
355
357
|
|
@@ -368,8 +370,8 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
|
368
370
|
true, &port);
|
369
371
|
if (err != GRPC_ERROR_NONE) return err;
|
370
372
|
listener->server->nports++;
|
371
|
-
grpc_sockaddr_to_string(&
|
372
|
-
gpr_asprintf(&name, "tcp-server-listener:%s/clone-%d", addr_str, i);
|
373
|
+
addr_str = grpc_sockaddr_to_string(&listener->addr, true);
|
374
|
+
gpr_asprintf(&name, "tcp-server-listener:%s/clone-%d", addr_str.c_str(), i);
|
373
375
|
sp = static_cast<grpc_tcp_listener*>(gpr_malloc(sizeof(grpc_tcp_listener)));
|
374
376
|
sp->next = listener->next;
|
375
377
|
listener->next = sp;
|
@@ -389,7 +391,6 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
|
389
391
|
while (listener->server->tail->next != nullptr) {
|
390
392
|
listener->server->tail = listener->server->tail->next;
|
391
393
|
}
|
392
|
-
gpr_free(addr_str);
|
393
394
|
gpr_free(name);
|
394
395
|
}
|
395
396
|
|
@@ -29,6 +29,8 @@
|
|
29
29
|
#include <stdio.h>
|
30
30
|
#include <string.h>
|
31
31
|
|
32
|
+
#include <string>
|
33
|
+
|
32
34
|
#include <grpc/support/alloc.h>
|
33
35
|
#include <grpc/support/log.h>
|
34
36
|
#include <grpc/support/string_util.h>
|
@@ -83,15 +85,15 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s, int fd,
|
|
83
85
|
grpc_tcp_listener** listener) {
|
84
86
|
grpc_tcp_listener* sp = nullptr;
|
85
87
|
int port = -1;
|
86
|
-
|
88
|
+
std::string addr_str;
|
87
89
|
char* name;
|
88
90
|
|
89
91
|
grpc_error* err =
|
90
92
|
grpc_tcp_server_prepare_socket(s, fd, addr, s->so_reuseport, &port);
|
91
93
|
if (err == GRPC_ERROR_NONE) {
|
92
94
|
GPR_ASSERT(port > 0);
|
93
|
-
grpc_sockaddr_to_string(
|
94
|
-
gpr_asprintf(&name, "tcp-server-listener:%s", addr_str);
|
95
|
+
addr_str = grpc_sockaddr_to_string(addr, true);
|
96
|
+
gpr_asprintf(&name, "tcp-server-listener:%s", addr_str.c_str());
|
95
97
|
gpr_mu_lock(&s->mu);
|
96
98
|
s->nports++;
|
97
99
|
GPR_ASSERT(!s->on_accept_cb && "must add ports before starting server");
|
@@ -114,7 +116,6 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s, int fd,
|
|
114
116
|
sp->sibling = nullptr;
|
115
117
|
GPR_ASSERT(sp->emfd);
|
116
118
|
gpr_mu_unlock(&s->mu);
|
117
|
-
gpr_free(addr_str);
|
118
119
|
gpr_free(name);
|
119
120
|
}
|
120
121
|
|
@@ -29,6 +29,8 @@
|
|
29
29
|
#include <stddef.h>
|
30
30
|
#include <string.h>
|
31
31
|
|
32
|
+
#include <string>
|
33
|
+
|
32
34
|
#include <grpc/support/alloc.h>
|
33
35
|
#include <grpc/support/log.h>
|
34
36
|
#include <grpc/support/string_util.h>
|
@@ -112,7 +114,6 @@ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
|
112
114
|
}
|
113
115
|
for (ifa_it = ifa; ifa_it != nullptr; ifa_it = ifa_it->ifa_next) {
|
114
116
|
grpc_resolved_address addr;
|
115
|
-
char* addr_str = nullptr;
|
116
117
|
grpc_dualstack_mode dsmode;
|
117
118
|
grpc_tcp_listener* new_sp = nullptr;
|
118
119
|
const char* ifa_name = (ifa_it->ifa_name ? ifa_it->ifa_name : "<unknown>");
|
@@ -131,30 +132,27 @@ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
|
131
132
|
err = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Failed to set port");
|
132
133
|
break;
|
133
134
|
}
|
134
|
-
|
135
|
-
addr_str = gpr_strdup("<error>");
|
136
|
-
}
|
135
|
+
std::string addr_str = grpc_sockaddr_to_string(&addr, false);
|
137
136
|
gpr_log(GPR_DEBUG,
|
138
137
|
"Adding local addr from interface %s flags 0x%x to server: %s",
|
139
|
-
ifa_name, ifa_it->ifa_flags, addr_str);
|
138
|
+
ifa_name, ifa_it->ifa_flags, addr_str.c_str());
|
140
139
|
/* We could have multiple interfaces with the same address (e.g., bonding),
|
141
140
|
so look for duplicates. */
|
142
141
|
if (find_listener_with_addr(s, &addr) != nullptr) {
|
143
|
-
gpr_log(GPR_DEBUG, "Skipping duplicate addr %s on interface %s",
|
144
|
-
ifa_name);
|
145
|
-
gpr_free(addr_str);
|
142
|
+
gpr_log(GPR_DEBUG, "Skipping duplicate addr %s on interface %s",
|
143
|
+
addr_str.c_str(), ifa_name);
|
146
144
|
continue;
|
147
145
|
}
|
148
146
|
if ((err = grpc_tcp_server_add_addr(s, &addr, port_index, fd_index, &dsmode,
|
149
147
|
&new_sp)) != GRPC_ERROR_NONE) {
|
150
148
|
char* err_str = nullptr;
|
151
149
|
grpc_error* root_err;
|
152
|
-
if (gpr_asprintf(&err_str, "Failed to add listener: %s",
|
150
|
+
if (gpr_asprintf(&err_str, "Failed to add listener: %s",
|
151
|
+
addr_str.c_str()) < 0) {
|
153
152
|
err_str = gpr_strdup("Failed to add listener");
|
154
153
|
}
|
155
154
|
root_err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(err_str);
|
156
155
|
gpr_free(err_str);
|
157
|
-
gpr_free(addr_str);
|
158
156
|
err = grpc_error_add_child(root_err, err);
|
159
157
|
break;
|
160
158
|
} else {
|
@@ -166,7 +164,6 @@ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
|
166
164
|
}
|
167
165
|
sp = new_sp;
|
168
166
|
}
|
169
|
-
gpr_free(addr_str);
|
170
167
|
}
|
171
168
|
freeifaddrs(ifa);
|
172
169
|
if (err != GRPC_ERROR_NONE) {
|
@@ -370,7 +370,7 @@ static void uv_resolve_callback(uv_getaddrinfo_t* req, int status,
|
|
370
370
|
tcp_error_create("getaddrinfo failed", status));
|
371
371
|
}
|
372
372
|
|
373
|
-
static grpc_error* uv_resolve(char* host, char* port,
|
373
|
+
static grpc_error* uv_resolve(const char* host, const char* port,
|
374
374
|
grpc_resolved_addresses** result) {
|
375
375
|
int status;
|
376
376
|
uv_getaddrinfo_t req;
|
@@ -388,7 +388,8 @@ static grpc_error* uv_resolve(char* host, char* port,
|
|
388
388
|
return tcp_error_create("getaddrinfo failed", status);
|
389
389
|
}
|
390
390
|
|
391
|
-
static void uv_resolve_async(grpc_custom_resolver* r, char* host,
|
391
|
+
static void uv_resolve_async(grpc_custom_resolver* r, const char* host,
|
392
|
+
const char* port) {
|
392
393
|
int status;
|
393
394
|
uv_getaddrinfo_t* req =
|
394
395
|
(uv_getaddrinfo_t*)gpr_malloc(sizeof(uv_getaddrinfo_t));
|
@@ -24,7 +24,7 @@
|
|
24
24
|
weighted mean. It is designed for batch operations where we do many adds
|
25
25
|
before updating the average. */
|
26
26
|
|
27
|
-
|
27
|
+
struct grpc_time_averaged_stats {
|
28
28
|
/* The initial average value. This is the reported average until the first
|
29
29
|
grpc_time_averaged_stats_update_average call. If a positive regress_weight
|
30
30
|
is used, we also regress towards this value on each update. */
|
@@ -56,8 +56,7 @@ typedef struct {
|
|
56
56
|
/* A time-decayed average of the (batch_total_value_ / batch_num_samples_),
|
57
57
|
computed by decaying the samples_in_avg_ weight in the weighted average. */
|
58
58
|
double aggregate_weighted_avg;
|
59
|
-
}
|
60
|
-
|
59
|
+
};
|
61
60
|
/* See the comments on the members above for an explanation of init_avg,
|
62
61
|
regress_weight, and persistence_factor. */
|
63
62
|
void grpc_time_averaged_stats_init(grpc_time_averaged_stats* stats,
|
@@ -56,7 +56,7 @@ grpc_core::TraceFlag grpc_timer_check_trace(false, "timer_check");
|
|
56
56
|
* stats maintained in 'stats' and the relevant timers are then moved from the
|
57
57
|
* 'list' to 'heap'.
|
58
58
|
*/
|
59
|
-
|
59
|
+
struct timer_shard {
|
60
60
|
gpr_mu mu;
|
61
61
|
grpc_time_averaged_stats stats;
|
62
62
|
/* All and only timers with deadlines < this will be in the heap. */
|
@@ -70,8 +70,7 @@ typedef struct {
|
|
70
70
|
grpc_timer_heap heap;
|
71
71
|
/* This holds timers whose deadline is >= queue_deadline_cap. */
|
72
72
|
grpc_timer list;
|
73
|
-
}
|
74
|
-
|
73
|
+
};
|
75
74
|
static size_t g_num_shards;
|
76
75
|
|
77
76
|
/* Array of timer shards. Whenever a timer (grpc_timer *) is added, its address
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright
|
3
|
+
* Copyright 2016 gRPC authors.
|
4
4
|
*
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
6
|
* you may not use this file except in compliance with the License.
|
@@ -16,22 +16,24 @@
|
|
16
16
|
*
|
17
17
|
*/
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_CORE_LIB_IOMGR_TIMER_GENERIC_H
|
20
|
+
#define GRPC_CORE_LIB_IOMGR_TIMER_GENERIC_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <
|
25
|
-
#include
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
24
|
+
#include <grpc/support/time.h>
|
25
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
26
|
+
|
27
|
+
struct grpc_timer {
|
28
|
+
gpr_atm deadline;
|
29
|
+
uint32_t heap_index; /* INVALID_HEAP_INDEX if not in heap */
|
30
|
+
bool pending;
|
31
|
+
struct grpc_timer* next;
|
32
|
+
struct grpc_timer* prev;
|
33
|
+
grpc_closure* closure;
|
34
|
+
#ifndef NDEBUG
|
35
|
+
struct grpc_timer* hash_table_next;
|
36
|
+
#endif
|
37
|
+
};
|
38
|
+
|
39
|
+
#endif /* GRPC_CORE_LIB_IOMGR_TIMER_GENERIC_H */
|