grpc 1.30.0 → 1.31.1
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 +560 -619
- data/include/grpc/grpc_security.h +8 -0
- data/include/grpc/grpc_security_constants.h +3 -0
- data/include/grpc/impl/codegen/grpc_types.h +7 -5
- data/include/grpc/impl/codegen/port_platform.h +0 -32
- data/src/core/ext/filters/client_channel/backend_metric.cc +12 -9
- data/src/core/ext/filters/client_channel/client_channel.cc +406 -261
- data/src/core/ext/filters/client_channel/config_selector.cc +62 -0
- data/src/core/ext/filters/client_channel/config_selector.h +93 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +2 -0
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +6 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +39 -23
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +4 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +381 -72
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +5 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +6 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +8 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +9 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +7 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -48
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +21 -18
- data/src/core/ext/filters/client_channel/resolver_registry.cc +13 -14
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +6 -7
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +33 -28
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +39 -20
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +1 -1
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +327 -123
- data/src/core/ext/filters/client_channel/xds/xds_api.h +72 -7
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +12 -23
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +112 -33
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +10 -10
- data/src/core/ext/filters/http/client/http_client_filter.cc +5 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +74 -33
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +56 -80
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +383 -347
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +6 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +1 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -13
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +19 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +22 -27
- data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -16
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -13
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -29
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +13 -17
- data/src/core/ext/transport/chttp2/transport/internal.h +13 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +33 -43
- data/src/core/ext/transport/chttp2/transport/writing.cc +9 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +35 -15
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +3 -4
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +80 -69
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +24 -23
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +66 -56
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +317 -311
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +42 -34
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +7 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +79 -61
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +55 -49
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +9 -8
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +163 -169
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +51 -45
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +4 -5
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +107 -100
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +137 -117
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +9 -9
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +105 -87
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +12 -13
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +95 -101
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +49 -65
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +49 -42
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +70 -62
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +81 -65
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +91 -80
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +9 -10
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +36 -31
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +648 -696
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +16 -15
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +95 -88
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +234 -199
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +13 -13
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +20 -18
- data/src/core/ext/upb-generated/envoy/type/http.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +18 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +14 -14
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +23 -23
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +8 -9
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +15 -16
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +7 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +36 -35
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/http.upb.h +29 -28
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +412 -386
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +1 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +33 -54
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -28
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +8 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +32 -45
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +157 -178
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +14 -13
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +59 -56
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +11 -12
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +5 -6
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +41 -68
- data/src/core/ext/upb-generated/validate/validate.upb.h +536 -535
- data/src/core/lib/channel/channel_trace.cc +2 -6
- data/src/core/lib/channel/channelz.cc +5 -15
- data/src/core/lib/gpr/log_linux.cc +6 -8
- data/src/core/lib/gpr/log_posix.cc +6 -8
- data/src/core/lib/gpr/string.cc +10 -9
- data/src/core/lib/gpr/string.h +4 -2
- data/src/core/lib/gprpp/global_config_env.cc +8 -6
- data/src/core/lib/http/httpcli.cc +13 -10
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
- data/src/core/lib/iomgr/error_cfstream.cc +9 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -6
- data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -21
- data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
- data/src/core/lib/iomgr/ev_posix.cc +2 -0
- data/src/core/lib/iomgr/iomgr.cc +10 -0
- data/src/core/lib/iomgr/iomgr.h +10 -0
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- data/src/core/lib/iomgr/port.h +1 -21
- data/src/core/lib/iomgr/resolve_address_custom.cc +13 -18
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -8
- data/src/core/lib/iomgr/resource_quota.cc +34 -31
- data/src/core/lib/iomgr/sockaddr_utils.cc +7 -5
- data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +95 -55
- data/src/core/lib/iomgr/socket_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -11
- data/src/core/lib/iomgr/tcp_client_custom.cc +6 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +27 -36
- data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
- data/src/core/lib/iomgr/tcp_custom.cc +1 -1
- data/src/core/lib/iomgr/tcp_custom.h +1 -1
- data/src/core/lib/iomgr/tcp_server.cc +3 -4
- data/src/core/lib/iomgr/tcp_server.h +7 -5
- data/src/core/lib/iomgr/tcp_server_custom.cc +6 -14
- data/src/core/lib/iomgr/tcp_server_posix.cc +34 -41
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -7
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -9
- data/src/core/lib/iomgr/tcp_server_windows.cc +16 -16
- data/src/core/lib/iomgr/timer_generic.cc +13 -12
- data/src/core/lib/iomgr/udp_server.cc +24 -23
- data/src/core/lib/iomgr/udp_server.h +5 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +9 -14
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +5 -2
- data/src/core/lib/json/json_reader.cc +20 -21
- data/src/core/lib/security/credentials/credentials.h +5 -3
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -9
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +19 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +10 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +10 -10
- data/src/core/lib/security/security_connector/security_connector.cc +2 -0
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -11
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +44 -23
- data/src/core/lib/security/security_connector/ssl_utils.h +6 -2
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +27 -24
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +10 -9
- data/src/core/lib/security/util/json_util.cc +12 -13
- data/src/core/lib/slice/slice.cc +38 -1
- data/src/core/lib/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +40 -41
- data/src/core/lib/surface/completion_queue.cc +271 -14
- data/src/core/lib/surface/completion_queue.h +8 -0
- data/src/core/lib/surface/init.cc +2 -0
- data/src/core/lib/surface/server.cc +565 -632
- data/src/core/lib/surface/server.h +34 -12
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/transport.h +6 -0
- data/src/core/lib/uri/uri_parser.cc +8 -15
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -13
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -0
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +108 -11
- data/src/core/tsi/ssl_transport_security.h +14 -2
- data/src/core/tsi/transport_security_interface.h +5 -0
- data/src/ruby/bin/math_services_pb.rb +4 -4
- data/src/ruby/ext/grpc/extconf.rb +5 -2
- data/src/ruby/ext/grpc/rb_call.c +3 -2
- data/src/ruby/ext/grpc/rb_call.h +4 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +57 -12
- 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/generic/client_stub.rb +1 -1
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +2 -2
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +5 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +28 -12
- 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 +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +25 -1
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/user_agent_spec.rb +74 -0
- data/third_party/boringssl-with-bazel/err_data.c +89 -83
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +143 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +11 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -15
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -5
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +116 -363
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +7 -45
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +13 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +28 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +35 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -154
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +28 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +74 -35
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +22 -22
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +33 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +789 -715
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -2
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +9 -0
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +17 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -7
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +28 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +4 -24
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -24
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +31 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +12 -9
- data/third_party/re2/re2/bitmap256.h +117 -0
- data/third_party/re2/re2/bitstate.cc +385 -0
- data/third_party/re2/re2/compile.cc +1279 -0
- data/third_party/re2/re2/dfa.cc +2130 -0
- data/third_party/re2/re2/filtered_re2.cc +121 -0
- data/third_party/re2/re2/filtered_re2.h +109 -0
- data/third_party/re2/re2/mimics_pcre.cc +197 -0
- data/third_party/re2/re2/nfa.cc +713 -0
- data/third_party/re2/re2/onepass.cc +623 -0
- data/third_party/re2/re2/parse.cc +2464 -0
- data/third_party/re2/re2/perl_groups.cc +119 -0
- data/third_party/re2/re2/pod_array.h +55 -0
- data/third_party/re2/re2/prefilter.cc +710 -0
- data/third_party/re2/re2/prefilter.h +108 -0
- data/third_party/re2/re2/prefilter_tree.cc +407 -0
- data/third_party/re2/re2/prefilter_tree.h +139 -0
- data/third_party/re2/re2/prog.cc +988 -0
- data/third_party/re2/re2/prog.h +436 -0
- data/third_party/re2/re2/re2.cc +1362 -0
- data/third_party/re2/re2/re2.h +1002 -0
- data/third_party/re2/re2/regexp.cc +980 -0
- data/third_party/re2/re2/regexp.h +659 -0
- data/third_party/re2/re2/set.cc +154 -0
- data/third_party/re2/re2/set.h +80 -0
- data/third_party/re2/re2/simplify.cc +657 -0
- data/third_party/re2/re2/sparse_array.h +392 -0
- data/third_party/re2/re2/sparse_set.h +264 -0
- data/third_party/re2/re2/stringpiece.cc +65 -0
- data/third_party/re2/re2/stringpiece.h +210 -0
- data/third_party/re2/re2/tostring.cc +351 -0
- data/third_party/re2/re2/unicode_casefold.cc +582 -0
- data/third_party/re2/re2/unicode_casefold.h +78 -0
- data/third_party/re2/re2/unicode_groups.cc +6269 -0
- data/third_party/re2/re2/unicode_groups.h +67 -0
- data/third_party/re2/re2/walker-inl.h +246 -0
- data/third_party/re2/util/benchmark.h +156 -0
- data/third_party/re2/util/flags.h +26 -0
- data/third_party/re2/util/logging.h +109 -0
- data/third_party/re2/util/malloc_counter.h +19 -0
- data/third_party/re2/util/mix.h +41 -0
- data/third_party/re2/util/mutex.h +148 -0
- data/third_party/re2/util/pcre.cc +1025 -0
- data/third_party/re2/util/pcre.h +681 -0
- data/third_party/re2/util/rune.cc +260 -0
- data/third_party/re2/util/strutil.cc +149 -0
- data/third_party/re2/util/strutil.h +21 -0
- data/third_party/re2/util/test.h +50 -0
- data/third_party/re2/util/utf.h +44 -0
- data/third_party/re2/util/util.h +42 -0
- data/third_party/upb/upb/decode.c +467 -504
- data/third_party/upb/upb/encode.c +163 -121
- data/third_party/upb/upb/msg.c +130 -64
- data/third_party/upb/upb/msg.h +418 -14
- data/third_party/upb/upb/port_def.inc +35 -6
- data/third_party/upb/upb/port_undef.inc +8 -1
- data/third_party/upb/upb/table.c +53 -75
- data/third_party/upb/upb/table.int.h +11 -43
- data/third_party/upb/upb/upb.c +148 -124
- data/third_party/upb/upb/upb.h +65 -147
- data/third_party/upb/upb/upb.hpp +86 -0
- metadata +90 -30
- data/third_party/upb/upb/generated_util.h +0 -105
@@ -39,6 +39,7 @@
|
|
39
39
|
#include "src/core/lib/iomgr/tcp_client.h"
|
40
40
|
#include "src/core/lib/iomgr/tcp_windows.h"
|
41
41
|
#include "src/core/lib/iomgr/timer.h"
|
42
|
+
#include "src/core/lib/slice/slice_internal.h"
|
42
43
|
|
43
44
|
struct async_connect {
|
44
45
|
grpc_closure* on_done;
|
@@ -46,12 +47,13 @@ struct async_connect {
|
|
46
47
|
grpc_winsocket* socket;
|
47
48
|
grpc_timer alarm;
|
48
49
|
grpc_closure on_alarm;
|
49
|
-
|
50
|
+
std::string addr_name;
|
50
51
|
int refs;
|
51
52
|
grpc_closure on_connect;
|
52
53
|
grpc_endpoint** endpoint;
|
53
54
|
grpc_channel_args* channel_args;
|
54
55
|
};
|
56
|
+
|
55
57
|
static void async_connect_unlock_and_cleanup(async_connect* ac,
|
56
58
|
grpc_winsocket* socket) {
|
57
59
|
int done = (--ac->refs == 0);
|
@@ -59,8 +61,7 @@ static void async_connect_unlock_and_cleanup(async_connect* ac,
|
|
59
61
|
if (done) {
|
60
62
|
grpc_channel_args_destroy(ac->channel_args);
|
61
63
|
gpr_mu_destroy(&ac->mu);
|
62
|
-
|
63
|
-
gpr_free(ac);
|
64
|
+
delete ac;
|
64
65
|
}
|
65
66
|
if (socket != NULL) grpc_winsocket_destroy(socket);
|
66
67
|
}
|
@@ -105,7 +106,7 @@ static void on_connect(void* acp, grpc_error* error) {
|
|
105
106
|
error = GRPC_WSA_ERROR(WSAGetLastError(), "ConnectEx");
|
106
107
|
closesocket(socket->socket);
|
107
108
|
} else {
|
108
|
-
*ep = grpc_tcp_create(socket, ac->channel_args, ac->addr_name);
|
109
|
+
*ep = grpc_tcp_create(socket, ac->channel_args, ac->addr_name.c_str());
|
109
110
|
socket = NULL;
|
110
111
|
}
|
111
112
|
} else {
|
@@ -131,13 +132,13 @@ static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
|
|
131
132
|
int status;
|
132
133
|
grpc_resolved_address addr6_v4mapped;
|
133
134
|
grpc_resolved_address local_address;
|
134
|
-
async_connect* ac;
|
135
135
|
grpc_winsocket* socket = NULL;
|
136
136
|
LPFN_CONNECTEX ConnectEx;
|
137
137
|
GUID guid = WSAID_CONNECTEX;
|
138
138
|
DWORD ioctl_num_bytes;
|
139
139
|
grpc_winsocket_callback_info* info;
|
140
140
|
grpc_error* error = GRPC_ERROR_NONE;
|
141
|
+
async_connect* ac = NULL;
|
141
142
|
|
142
143
|
*endpoint = NULL;
|
143
144
|
|
@@ -194,7 +195,7 @@ static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
|
|
194
195
|
}
|
195
196
|
}
|
196
197
|
|
197
|
-
ac =
|
198
|
+
ac = new async_connect();
|
198
199
|
ac->on_done = on_done;
|
199
200
|
ac->socket = socket;
|
200
201
|
gpr_mu_init(&ac->mu);
|
@@ -211,13 +212,12 @@ static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
|
|
211
212
|
|
212
213
|
failure:
|
213
214
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
214
|
-
|
215
|
+
std::string target_uri = grpc_sockaddr_to_uri(addr);
|
215
216
|
grpc_error* final_error =
|
216
217
|
grpc_error_set_str(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
217
218
|
"Failed to connect", &error, 1),
|
218
219
|
GRPC_ERROR_STR_TARGET_ADDRESS,
|
219
|
-
|
220
|
-
target_uri == nullptr ? "NULL" : target_uri));
|
220
|
+
grpc_slice_from_cpp_string(std::move(target_uri)));
|
221
221
|
GRPC_ERROR_UNREF(error);
|
222
222
|
if (socket != NULL) {
|
223
223
|
grpc_winsocket_destroy(socket);
|
@@ -345,7 +345,7 @@ static grpc_endpoint_vtable vtable = {endpoint_read,
|
|
345
345
|
|
346
346
|
grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
|
347
347
|
grpc_resource_quota* resource_quota,
|
348
|
-
char* peer_string) {
|
348
|
+
const char* peer_string) {
|
349
349
|
custom_tcp_endpoint* tcp =
|
350
350
|
(custom_tcp_endpoint*)gpr_malloc(sizeof(custom_tcp_endpoint));
|
351
351
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
@@ -79,6 +79,6 @@ void grpc_custom_close_server_callback(grpc_tcp_listener* listener);
|
|
79
79
|
|
80
80
|
grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
|
81
81
|
grpc_resource_quota* resource_quota,
|
82
|
-
char* peer_string);
|
82
|
+
const char* peer_string);
|
83
83
|
|
84
84
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_CUSTOM_H */
|
@@ -28,11 +28,10 @@ grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
|
|
28
28
|
return grpc_tcp_server_impl->create(shutdown_complete, args, server);
|
29
29
|
}
|
30
30
|
|
31
|
-
void grpc_tcp_server_start(grpc_tcp_server* server,
|
32
|
-
|
31
|
+
void grpc_tcp_server_start(grpc_tcp_server* server,
|
32
|
+
const std::vector<grpc_pollset*>* pollsets,
|
33
33
|
grpc_tcp_server_cb on_accept_cb, void* cb_arg) {
|
34
|
-
grpc_tcp_server_impl->start(server, pollsets,
|
35
|
-
cb_arg);
|
34
|
+
grpc_tcp_server_impl->start(server, pollsets, on_accept_cb, cb_arg);
|
36
35
|
}
|
37
36
|
|
38
37
|
grpc_error* grpc_tcp_server_add_port(grpc_tcp_server* s,
|
@@ -24,6 +24,8 @@
|
|
24
24
|
#include <grpc/grpc.h>
|
25
25
|
#include <grpc/impl/codegen/grpc_types.h>
|
26
26
|
|
27
|
+
#include <vector>
|
28
|
+
|
27
29
|
#include "src/core/lib/iomgr/closure.h"
|
28
30
|
#include "src/core/lib/iomgr/endpoint.h"
|
29
31
|
#include "src/core/lib/iomgr/resolve_address.h"
|
@@ -64,9 +66,9 @@ typedef struct grpc_tcp_server_vtable {
|
|
64
66
|
grpc_error* (*create)(grpc_closure* shutdown_complete,
|
65
67
|
const grpc_channel_args* args,
|
66
68
|
grpc_tcp_server** server);
|
67
|
-
void (*start)(grpc_tcp_server* server,
|
68
|
-
|
69
|
-
void* cb_arg);
|
69
|
+
void (*start)(grpc_tcp_server* server,
|
70
|
+
const std::vector<grpc_pollset*>* pollsets,
|
71
|
+
grpc_tcp_server_cb on_accept_cb, void* cb_arg);
|
70
72
|
grpc_error* (*add_port)(grpc_tcp_server* s, const grpc_resolved_address* addr,
|
71
73
|
int* out_port);
|
72
74
|
grpc_core::TcpServerFdHandler* (*create_fd_handler)(grpc_tcp_server* s);
|
@@ -87,8 +89,8 @@ grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
|
|
87
89
|
grpc_tcp_server** server);
|
88
90
|
|
89
91
|
/* Start listening to bound ports */
|
90
|
-
void grpc_tcp_server_start(grpc_tcp_server* server,
|
91
|
-
|
92
|
+
void grpc_tcp_server_start(grpc_tcp_server* server,
|
93
|
+
const std::vector<grpc_pollset*>* pollsets,
|
92
94
|
grpc_tcp_server_cb on_accept_cb, void* cb_arg);
|
93
95
|
|
94
96
|
/* Add a port to the server, returning the newly allocated port on success, or
|
@@ -216,10 +216,9 @@ static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
|
|
216
216
|
(grpc_tcp_server_acceptor*)gpr_malloc(sizeof(*acceptor));
|
217
217
|
grpc_endpoint* ep = nullptr;
|
218
218
|
grpc_resolved_address peer_name;
|
219
|
-
|
219
|
+
std::string peer_name_string;
|
220
220
|
grpc_error* err;
|
221
221
|
|
222
|
-
peer_name_string = nullptr;
|
223
222
|
memset(&peer_name, 0, sizeof(grpc_resolved_address));
|
224
223
|
peer_name.len = GRPC_MAX_SOCKADDR_SIZE;
|
225
224
|
err = grpc_custom_socket_vtable->getpeername(
|
@@ -231,21 +230,16 @@ static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
|
|
231
230
|
GRPC_ERROR_UNREF(err);
|
232
231
|
}
|
233
232
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
234
|
-
|
235
|
-
|
236
|
-
sp->server, peer_name_string);
|
237
|
-
} else {
|
238
|
-
gpr_log(GPR_INFO, "SERVER_CONNECT: %p accepted connection", sp->server);
|
239
|
-
}
|
233
|
+
gpr_log(GPR_INFO, "SERVER_CONNECT: %p accepted connection: %s", sp->server,
|
234
|
+
peer_name_string.c_str());
|
240
235
|
}
|
241
236
|
ep = custom_tcp_endpoint_create(socket, sp->server->resource_quota,
|
242
|
-
peer_name_string);
|
237
|
+
peer_name_string.c_str());
|
243
238
|
acceptor->from_server = sp->server;
|
244
239
|
acceptor->port_index = sp->port_index;
|
245
240
|
acceptor->fd_index = 0;
|
246
241
|
acceptor->external_connection = false;
|
247
242
|
sp->server->on_accept_cb(sp->server->on_accept_cb_arg, ep, nullptr, acceptor);
|
248
|
-
gpr_free(peer_name_string);
|
249
243
|
}
|
250
244
|
|
251
245
|
static void custom_accept_callback(grpc_custom_socket* socket,
|
@@ -423,12 +417,10 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
423
417
|
return error;
|
424
418
|
}
|
425
419
|
|
426
|
-
static void tcp_server_start(grpc_tcp_server* server,
|
427
|
-
|
420
|
+
static void tcp_server_start(grpc_tcp_server* server,
|
421
|
+
const std::vector<grpc_pollset*>* /*pollsets*/,
|
428
422
|
grpc_tcp_server_cb on_accept_cb, void* cb_arg) {
|
429
423
|
grpc_tcp_listener* sp;
|
430
|
-
(void)pollsets;
|
431
|
-
(void)pollset_count;
|
432
424
|
GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
|
433
425
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
434
426
|
gpr_log(GPR_INFO, "SERVER_START %p", server);
|
@@ -39,9 +39,11 @@
|
|
39
39
|
|
40
40
|
#include <string>
|
41
41
|
|
42
|
+
#include "absl/strings/str_cat.h"
|
43
|
+
#include "absl/strings/str_format.h"
|
44
|
+
|
42
45
|
#include <grpc/support/alloc.h>
|
43
46
|
#include <grpc/support/log.h>
|
44
|
-
#include <grpc/support/string_util.h>
|
45
47
|
#include <grpc/support/sync.h>
|
46
48
|
#include <grpc/support/time.h>
|
47
49
|
|
@@ -196,8 +198,6 @@ static void on_read(void* arg, grpc_error* err) {
|
|
196
198
|
/* loop until accept4 returns EAGAIN, and then re-arm notification */
|
197
199
|
for (;;) {
|
198
200
|
grpc_resolved_address addr;
|
199
|
-
char* addr_str;
|
200
|
-
char* name;
|
201
201
|
memset(&addr, 0, sizeof(addr));
|
202
202
|
addr.len = static_cast<socklen_t>(sizeof(struct sockaddr_storage));
|
203
203
|
/* Note: If we ever decide to return this address to the user, remember to
|
@@ -238,19 +238,19 @@ static void on_read(void* arg, grpc_error* err) {
|
|
238
238
|
|
239
239
|
grpc_set_socket_no_sigpipe_if_possible(fd);
|
240
240
|
|
241
|
-
addr_str = grpc_sockaddr_to_uri(&addr);
|
242
|
-
gpr_asprintf(&name, "tcp-server-connection:%s", addr_str);
|
243
|
-
|
241
|
+
std::string addr_str = grpc_sockaddr_to_uri(&addr);
|
244
242
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
245
|
-
gpr_log(GPR_INFO, "SERVER_CONNECT: incoming connection: %s",
|
243
|
+
gpr_log(GPR_INFO, "SERVER_CONNECT: incoming connection: %s",
|
244
|
+
addr_str.c_str());
|
246
245
|
}
|
247
246
|
|
248
|
-
|
247
|
+
std::string name = absl::StrCat("tcp-server-connection:", addr_str);
|
248
|
+
grpc_fd* fdobj = grpc_fd_create(fd, name.c_str(), true);
|
249
249
|
|
250
|
-
read_notifier_pollset =
|
251
|
-
|
252
|
-
|
253
|
-
|
250
|
+
read_notifier_pollset = (*(sp->server->pollsets))
|
251
|
+
[static_cast<size_t>(gpr_atm_no_barrier_fetch_add(
|
252
|
+
&sp->server->next_pollset_to_assign, 1)) %
|
253
|
+
sp->server->pollsets->size()];
|
254
254
|
|
255
255
|
grpc_pollset_add_fd(read_notifier_pollset, fdobj);
|
256
256
|
|
@@ -264,11 +264,8 @@ static void on_read(void* arg, grpc_error* err) {
|
|
264
264
|
|
265
265
|
sp->server->on_accept_cb(
|
266
266
|
sp->server->on_accept_cb_arg,
|
267
|
-
grpc_tcp_create(fdobj, sp->server->channel_args, addr_str),
|
267
|
+
grpc_tcp_create(fdobj, sp->server->channel_args, addr_str.c_str()),
|
268
268
|
read_notifier_pollset, acceptor);
|
269
|
-
|
270
|
-
gpr_free(name);
|
271
|
-
gpr_free(addr_str);
|
272
269
|
}
|
273
270
|
|
274
271
|
GPR_UNREACHABLE_CODE(return );
|
@@ -352,7 +349,6 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
|
352
349
|
static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
353
350
|
grpc_tcp_listener* sp = nullptr;
|
354
351
|
std::string addr_str;
|
355
|
-
char* name;
|
356
352
|
grpc_error* err;
|
357
353
|
|
358
354
|
for (grpc_tcp_listener* l = listener->next; l && l->is_sibling; l = l->next) {
|
@@ -371,7 +367,6 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
|
371
367
|
if (err != GRPC_ERROR_NONE) return err;
|
372
368
|
listener->server->nports++;
|
373
369
|
addr_str = grpc_sockaddr_to_string(&listener->addr, true);
|
374
|
-
gpr_asprintf(&name, "tcp-server-listener:%s/clone-%d", addr_str.c_str(), i);
|
375
370
|
sp = static_cast<grpc_tcp_listener*>(gpr_malloc(sizeof(grpc_tcp_listener)));
|
376
371
|
sp->next = listener->next;
|
377
372
|
listener->next = sp;
|
@@ -382,7 +377,11 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
|
382
377
|
listener->sibling = sp;
|
383
378
|
sp->server = listener->server;
|
384
379
|
sp->fd = fd;
|
385
|
-
sp->emfd = grpc_fd_create(
|
380
|
+
sp->emfd = grpc_fd_create(
|
381
|
+
fd,
|
382
|
+
absl::StrFormat("tcp-server-listener:%s/clone-%d", addr_str.c_str(), i)
|
383
|
+
.c_str(),
|
384
|
+
true);
|
386
385
|
memcpy(&sp->addr, &listener->addr, sizeof(grpc_resolved_address));
|
387
386
|
sp->port = port;
|
388
387
|
sp->port_index = listener->port_index;
|
@@ -391,7 +390,6 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
|
391
390
|
while (listener->server->tail->next != nullptr) {
|
392
391
|
listener->server->tail = listener->server->tail->next;
|
393
392
|
}
|
394
|
-
gpr_free(name);
|
395
393
|
}
|
396
394
|
|
397
395
|
return GRPC_ERROR_NONE;
|
@@ -489,8 +487,8 @@ static int tcp_server_port_fd(grpc_tcp_server* s, unsigned port_index,
|
|
489
487
|
return -1;
|
490
488
|
}
|
491
489
|
|
492
|
-
static void tcp_server_start(grpc_tcp_server* s,
|
493
|
-
|
490
|
+
static void tcp_server_start(grpc_tcp_server* s,
|
491
|
+
const std::vector<grpc_pollset*>* pollsets,
|
494
492
|
grpc_tcp_server_cb on_accept_cb,
|
495
493
|
void* on_accept_cb_arg) {
|
496
494
|
size_t i;
|
@@ -502,15 +500,14 @@ static void tcp_server_start(grpc_tcp_server* s, grpc_pollset** pollsets,
|
|
502
500
|
s->on_accept_cb = on_accept_cb;
|
503
501
|
s->on_accept_cb_arg = on_accept_cb_arg;
|
504
502
|
s->pollsets = pollsets;
|
505
|
-
s->pollset_count = pollset_count;
|
506
503
|
sp = s->head;
|
507
504
|
while (sp != nullptr) {
|
508
505
|
if (s->so_reuseport && !grpc_is_unix_socket(&sp->addr) &&
|
509
|
-
|
506
|
+
pollsets->size() > 1) {
|
510
507
|
GPR_ASSERT(GRPC_LOG_IF_ERROR(
|
511
|
-
"clone_port", clone_port(sp, (unsigned)(
|
512
|
-
for (i = 0; i <
|
513
|
-
grpc_pollset_add_fd(pollsets[i], sp->emfd);
|
508
|
+
"clone_port", clone_port(sp, (unsigned)(pollsets->size() - 1))));
|
509
|
+
for (i = 0; i < pollsets->size(); i++) {
|
510
|
+
grpc_pollset_add_fd((*pollsets)[i], sp->emfd);
|
514
511
|
GRPC_CLOSURE_INIT(&sp->read_closure, on_read, sp,
|
515
512
|
grpc_schedule_on_exec_ctx);
|
516
513
|
grpc_fd_notify_on_read(sp->emfd, &sp->read_closure);
|
@@ -518,8 +515,8 @@ static void tcp_server_start(grpc_tcp_server* s, grpc_pollset** pollsets,
|
|
518
515
|
sp = sp->next;
|
519
516
|
}
|
520
517
|
} else {
|
521
|
-
for (i = 0; i <
|
522
|
-
grpc_pollset_add_fd(pollsets[i], sp->emfd);
|
518
|
+
for (i = 0; i < pollsets->size(); i++) {
|
519
|
+
grpc_pollset_add_fd((*pollsets)[i], sp->emfd);
|
523
520
|
}
|
524
521
|
GRPC_CLOSURE_INIT(&sp->read_closure, on_read, sp,
|
525
522
|
grpc_schedule_on_exec_ctx);
|
@@ -577,8 +574,6 @@ class ExternalConnectionHandler : public grpc_core::TcpServerFdHandler {
|
|
577
574
|
void Handle(int listener_fd, int fd, grpc_byte_buffer* buf) override {
|
578
575
|
grpc_pollset* read_notifier_pollset;
|
579
576
|
grpc_resolved_address addr;
|
580
|
-
char* addr_str;
|
581
|
-
char* name;
|
582
577
|
memset(&addr, 0, sizeof(addr));
|
583
578
|
addr.len = static_cast<socklen_t>(sizeof(struct sockaddr_storage));
|
584
579
|
grpc_core::ExecCtx exec_ctx;
|
@@ -590,17 +585,17 @@ class ExternalConnectionHandler : public grpc_core::TcpServerFdHandler {
|
|
590
585
|
return;
|
591
586
|
}
|
592
587
|
grpc_set_socket_no_sigpipe_if_possible(fd);
|
593
|
-
addr_str = grpc_sockaddr_to_uri(&addr);
|
594
|
-
gpr_asprintf(&name, "tcp-server-connection:%s", addr_str);
|
588
|
+
std::string addr_str = grpc_sockaddr_to_uri(&addr);
|
595
589
|
if (grpc_tcp_trace.enabled()) {
|
596
590
|
gpr_log(GPR_INFO, "SERVER_CONNECT: incoming external connection: %s",
|
597
|
-
addr_str);
|
591
|
+
addr_str.c_str());
|
598
592
|
}
|
599
|
-
|
593
|
+
std::string name = absl::StrCat("tcp-server-connection:", addr_str);
|
594
|
+
grpc_fd* fdobj = grpc_fd_create(fd, name.c_str(), true);
|
600
595
|
read_notifier_pollset =
|
601
|
-
s_->pollsets[static_cast<size_t>(gpr_atm_no_barrier_fetch_add(
|
602
|
-
|
603
|
-
|
596
|
+
(*(s_->pollsets))[static_cast<size_t>(gpr_atm_no_barrier_fetch_add(
|
597
|
+
&s_->next_pollset_to_assign, 1)) %
|
598
|
+
s_->pollsets->size()];
|
604
599
|
grpc_pollset_add_fd(read_notifier_pollset, fdobj);
|
605
600
|
grpc_tcp_server_acceptor* acceptor =
|
606
601
|
static_cast<grpc_tcp_server_acceptor*>(gpr_malloc(sizeof(*acceptor)));
|
@@ -611,10 +606,8 @@ class ExternalConnectionHandler : public grpc_core::TcpServerFdHandler {
|
|
611
606
|
acceptor->listener_fd = listener_fd;
|
612
607
|
acceptor->pending_data = buf;
|
613
608
|
s_->on_accept_cb(s_->on_accept_cb_arg,
|
614
|
-
grpc_tcp_create(fdobj, s_->channel_args, addr_str),
|
609
|
+
grpc_tcp_create(fdobj, s_->channel_args, addr_str.c_str()),
|
615
610
|
read_notifier_pollset, acceptor);
|
616
|
-
gpr_free(name);
|
617
|
-
gpr_free(addr_str);
|
618
611
|
}
|
619
612
|
|
620
613
|
private:
|
@@ -82,10 +82,9 @@ struct grpc_tcp_server {
|
|
82
82
|
/* shutdown callback */
|
83
83
|
grpc_closure* shutdown_complete;
|
84
84
|
|
85
|
-
/* all pollsets interested in new connections
|
86
|
-
|
87
|
-
|
88
|
-
size_t pollset_count;
|
85
|
+
/* all pollsets interested in new connections. The object pointed at is not
|
86
|
+
* owned by this struct */
|
87
|
+
const std::vector<grpc_pollset*>* pollsets;
|
89
88
|
|
90
89
|
/* next pollset to assign a channel to */
|
91
90
|
gpr_atm next_pollset_to_assign;
|
@@ -31,9 +31,10 @@
|
|
31
31
|
|
32
32
|
#include <string>
|
33
33
|
|
34
|
+
#include "absl/strings/str_cat.h"
|
35
|
+
|
34
36
|
#include <grpc/support/alloc.h>
|
35
37
|
#include <grpc/support/log.h>
|
36
|
-
#include <grpc/support/string_util.h>
|
37
38
|
#include <grpc/support/sync.h>
|
38
39
|
|
39
40
|
#include "src/core/lib/iomgr/error.h"
|
@@ -85,15 +86,13 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s, int fd,
|
|
85
86
|
grpc_tcp_listener** listener) {
|
86
87
|
grpc_tcp_listener* sp = nullptr;
|
87
88
|
int port = -1;
|
88
|
-
std::string addr_str;
|
89
|
-
char* name;
|
90
89
|
|
91
90
|
grpc_error* err =
|
92
91
|
grpc_tcp_server_prepare_socket(s, fd, addr, s->so_reuseport, &port);
|
93
92
|
if (err == GRPC_ERROR_NONE) {
|
94
93
|
GPR_ASSERT(port > 0);
|
95
|
-
addr_str = grpc_sockaddr_to_string(addr, true);
|
96
|
-
|
94
|
+
std::string addr_str = grpc_sockaddr_to_string(addr, true);
|
95
|
+
std::string name = absl::StrCat("tcp-server-listener:", addr_str);
|
97
96
|
gpr_mu_lock(&s->mu);
|
98
97
|
s->nports++;
|
99
98
|
GPR_ASSERT(!s->on_accept_cb && "must add ports before starting server");
|
@@ -107,7 +106,7 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s, int fd,
|
|
107
106
|
s->tail = sp;
|
108
107
|
sp->server = s;
|
109
108
|
sp->fd = fd;
|
110
|
-
sp->emfd = grpc_fd_create(fd, name, true);
|
109
|
+
sp->emfd = grpc_fd_create(fd, name.c_str(), true);
|
111
110
|
memcpy(&sp->addr, addr, sizeof(grpc_resolved_address));
|
112
111
|
sp->port = port;
|
113
112
|
sp->port_index = port_index;
|
@@ -116,7 +115,6 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s, int fd,
|
|
116
115
|
sp->sibling = nullptr;
|
117
116
|
GPR_ASSERT(sp->emfd);
|
118
117
|
gpr_mu_unlock(&s->mu);
|
119
|
-
gpr_free(name);
|
120
118
|
}
|
121
119
|
|
122
120
|
*listener = sp;
|
@@ -31,9 +31,10 @@
|
|
31
31
|
|
32
32
|
#include <string>
|
33
33
|
|
34
|
+
#include "absl/strings/str_cat.h"
|
35
|
+
|
34
36
|
#include <grpc/support/alloc.h>
|
35
37
|
#include <grpc/support/log.h>
|
36
|
-
#include <grpc/support/string_util.h>
|
37
38
|
|
38
39
|
#include "src/core/lib/iomgr/error.h"
|
39
40
|
#include "src/core/lib/iomgr/sockaddr.h"
|
@@ -145,14 +146,8 @@ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
|
145
146
|
}
|
146
147
|
if ((err = grpc_tcp_server_add_addr(s, &addr, port_index, fd_index, &dsmode,
|
147
148
|
&new_sp)) != GRPC_ERROR_NONE) {
|
148
|
-
|
149
|
-
|
150
|
-
if (gpr_asprintf(&err_str, "Failed to add listener: %s",
|
151
|
-
addr_str.c_str()) < 0) {
|
152
|
-
err_str = gpr_strdup("Failed to add listener");
|
153
|
-
}
|
154
|
-
root_err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(err_str);
|
155
|
-
gpr_free(err_str);
|
149
|
+
grpc_error* root_err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
150
|
+
absl::StrCat("Failed to add listener: ", addr_str).c_str());
|
156
151
|
err = grpc_error_add_child(root_err, err);
|
157
152
|
break;
|
158
153
|
} else {
|