grpc 1.44.0.pre2 → 1.45.0
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 +291 -178
- data/include/grpc/event_engine/event_engine.h +2 -2
- data/include/grpc/grpc.h +40 -14
- data/include/grpc/grpc_posix.h +20 -19
- data/include/grpc/grpc_security.h +26 -50
- data/include/grpc/impl/codegen/grpc_types.h +11 -8
- data/include/grpc/impl/codegen/port_platform.h +2 -2
- data/include/grpc/impl/codegen/slice.h +4 -1
- data/include/grpc/slice.h +0 -11
- data/src/core/ext/filters/client_channel/backend_metric.cc +3 -3
- data/src/core/ext/filters/client_channel/backup_poller.cc +12 -8
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +5 -5
- data/src/core/ext/filters/client_channel/client_channel.cc +79 -57
- data/src/core/ext/filters/client_channel/client_channel.h +30 -29
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +5 -11
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -15
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -17
- data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +9 -12
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +68 -47
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +7 -3
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +22 -17
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +119 -82
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +9 -4
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +51 -24
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +19 -12
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +7 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +62 -49
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +18 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +41 -43
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +8 -7
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +82 -57
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +35 -34
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +35 -36
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +219 -125
- data/src/core/ext/filters/client_channel/retry_service_config.cc +15 -17
- data/src/core/ext/filters/client_channel/retry_service_config.h +17 -11
- data/src/core/ext/filters/client_channel/retry_throttle.cc +9 -23
- data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +7 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +35 -38
- data/src/core/ext/filters/client_channel/subchannel.h +5 -4
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +96 -159
- data/src/core/ext/filters/client_idle/idle_filter_state.h +2 -2
- data/src/core/ext/filters/deadline/deadline_filter.cc +15 -14
- data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +17 -11
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +9 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +7 -3
- data/src/core/ext/filters/http/client_authority_filter.cc +28 -71
- data/src/core/ext/filters/http/client_authority_filter.h +23 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +11 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +10 -2
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -0
- data/src/core/ext/filters/max_age/max_age_filter.cc +46 -40
- data/src/core/ext/filters/message_size/message_size_filter.cc +26 -34
- data/src/core/ext/filters/message_size/message_size_filter.h +9 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +13 -8
- data/src/core/ext/filters/rbac/rbac_filter.h +2 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +6 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +6 -1
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +234 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +149 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +110 -47
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +5 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +15 -51
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +6 -6
- data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -12
- data/src/core/ext/transport/inproc/inproc_transport.cc +16 -12
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +165 -163
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +798 -575
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +93 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -20
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +17 -16
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +31 -23
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +90 -88
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +421 -317
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +156 -152
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +787 -571
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +27 -25
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +115 -79
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +206 -204
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +954 -662
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +33 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +29 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +127 -79
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +49 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +221 -159
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +33 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +154 -151
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +691 -499
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +39 -37
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +178 -130
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +25 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +18 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +74 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +100 -98
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +449 -329
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +77 -75
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +365 -264
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +36 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +140 -105
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +675 -345
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +25 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +59 -42
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +39 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +14 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +45 -35
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +34 -24
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +31 -29
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +113 -85
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +47 -45
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +210 -151
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +48 -46
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +210 -142
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +28 -20
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +58 -54
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +282 -193
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +64 -62
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +286 -218
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +62 -42
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +12 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +54 -39
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +120 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +55 -53
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +244 -185
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +57 -55
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +260 -192
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +70 -68
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +235 -191
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +30 -28
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +142 -112
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +435 -428
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2037 -1507
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +25 -19
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +107 -64
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +82 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +55 -40
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +119 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +184 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +192 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +126 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +29 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +26 -24
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +125 -93
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +33 -31
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -105
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +16 -14
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +63 -44
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +53 -37
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +175 -173
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +803 -559
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +75 -52
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +368 -194
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +24 -22
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +95 -71
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +60 -58
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +266 -193
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +64 -62
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +297 -218
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +18 -16
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +73 -54
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +46 -44
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +197 -145
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +101 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +91 -70
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +16 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +64 -47
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +34 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +25 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +25 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +85 -61
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +65 -52
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +14 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +56 -43
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +74 -58
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +30 -28
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +163 -125
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +34 -32
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +157 -113
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +183 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +3 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +51 -34
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +80 -52
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +31 -19
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +114 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +10 -8
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +6 -5
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +100 -98
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +371 -281
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +110 -108
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +409 -298
- data/src/core/ext/upb-generated/google/api/http.upb.c +29 -27
- data/src/core/ext/upb-generated/google/api/http.upb.h +117 -89
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +32 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +287 -234
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1088 -764
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +28 -18
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +6 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -16
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +30 -28
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +80 -64
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +28 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +40 -38
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +213 -149
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +11 -9
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +36 -26
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +276 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +20 -18
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +60 -42
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +95 -93
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +396 -285
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +15 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +58 -39
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +12 -10
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +50 -35
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +55 -53
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +255 -183
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +22 -20
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +76 -57
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +46 -44
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +102 -78
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +16 -14
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +32 -22
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +9 -7
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +6 -5
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +16 -14
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +32 -22
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +15 -13
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +31 -23
- data/src/core/ext/upb-generated/validate/validate.upb.c +320 -304
- data/src/core/ext/upb-generated/validate/validate.upb.h +1114 -741
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +87 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +40 -38
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +109 -78
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +81 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +8 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +27 -19
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +17 -15
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +63 -46
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +14 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +31 -25
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +95 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +11 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +39 -27
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +20 -18
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +73 -54
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +12 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +43 -29
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +23 -21
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +43 -31
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +132 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +173 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +10 -8
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +33 -23
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +8 -6
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +8 -6
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +20 -17
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +248 -240
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +375 -371
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +76 -76
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +15 -13
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +85 -80
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +73 -73
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +18 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +23 -20
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +250 -221
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +13 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +52 -45
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +23 -20
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +23 -21
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +816 -801
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +160 -160
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +52 -37
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +15 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +135 -130
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +58 -58
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +15 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +169 -140
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +21 -17
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +20 -17
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +10 -8
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +12 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +11 -8
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +11 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +40 -40
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/upb_utils.h +8 -6
- data/src/core/ext/xds/xds_api.cc +52 -35
- data/src/core/ext/xds/xds_api.h +4 -4
- data/src/core/ext/xds/xds_bootstrap.cc +35 -3
- data/src/core/ext/xds/xds_bootstrap.h +11 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -17
- data/src/core/ext/xds/xds_channel_stack_modifier.h +4 -3
- data/src/core/ext/xds/xds_client.cc +141 -106
- data/src/core/ext/xds/xds_client.h +23 -15
- data/src/core/ext/xds/xds_client_stats.cc +15 -15
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_cluster.cc +18 -16
- data/src/core/ext/xds/xds_cluster.h +3 -6
- data/src/core/ext/xds/xds_common_types.cc +1 -1
- data/src/core/ext/xds/xds_common_types.h +5 -20
- data/src/core/ext/xds/xds_endpoint.cc +2 -2
- data/src/core/ext/xds/xds_endpoint.h +1 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +6 -6
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.cc +6 -5
- data/src/core/ext/xds/xds_http_filters.h +4 -4
- data/src/core/ext/xds/xds_http_rbac_filter.cc +5 -5
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_listener.cc +14 -11
- data/src/core/ext/xds/xds_listener.h +1 -1
- data/src/core/ext/xds/xds_resource_type.h +1 -1
- data/src/core/ext/xds/xds_route_config.cc +13 -21
- data/src/core/ext/xds/xds_route_config.h +1 -1
- data/src/core/ext/xds/xds_routing.cc +1 -1
- data/src/core/ext/xds/xds_server_config_fetcher.cc +3 -2
- data/src/core/lib/backoff/backoff.cc +7 -10
- data/src/core/lib/backoff/backoff.h +8 -8
- data/src/core/lib/channel/call_finalization.h +86 -0
- data/src/core/lib/channel/channel_args.cc +60 -0
- data/src/core/lib/channel/channel_args.h +2 -0
- data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
- data/src/core/lib/channel/channel_stack.cc +2 -3
- data/src/core/lib/channel/channel_stack.h +41 -5
- data/src/core/lib/channel/channel_stack_builder.cc +66 -244
- data/src/core/lib/channel/channel_stack_builder.h +95 -144
- data/src/core/lib/channel/channel_trace.cc +3 -6
- data/src/core/lib/channel/connected_channel.cc +9 -4
- data/src/core/lib/channel/connected_channel.h +1 -1
- data/src/core/lib/channel/context.h +11 -0
- data/src/core/lib/channel/handshaker.cc +1 -1
- data/src/core/lib/channel/handshaker.h +1 -1
- data/src/core/lib/channel/promise_based_filter.cc +669 -0
- data/src/core/lib/channel/promise_based_filter.h +423 -0
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/compression_internal.cc +1 -1
- data/src/core/lib/config/core_configuration.cc +8 -2
- data/src/core/lib/config/core_configuration.h +39 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
- data/src/core/lib/event_engine/event_engine.cc +23 -8
- data/src/core/lib/event_engine/event_engine_factory.h +3 -0
- data/src/core/lib/event_engine/memory_allocator.cc +9 -13
- data/src/core/lib/event_engine/{event_engine_factory.cc → resolved_address.cc} +10 -20
- data/src/core/lib/gpr/sync_posix.cc +1 -0
- data/src/core/lib/gpr/time.cc +2 -1
- data/src/core/lib/gpr/useful.h +14 -0
- data/src/core/lib/gprpp/capture.h +76 -0
- data/src/core/lib/gprpp/debug_location.h +2 -0
- data/src/core/lib/gprpp/status_helper.cc +12 -12
- data/src/core/lib/gprpp/status_helper.h +4 -4
- data/src/core/lib/gprpp/time.cc +186 -0
- data/src/core/lib/gprpp/time.h +292 -0
- data/src/core/lib/http/format_request.cc +27 -23
- data/src/core/lib/http/format_request.h +7 -6
- data/src/core/lib/http/httpcli.cc +306 -229
- data/src/core/lib/http/httpcli.h +182 -77
- data/src/core/lib/http/httpcli_security_connector.cc +62 -73
- data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
- data/src/core/lib/http/parser.h +1 -1
- data/src/core/lib/iomgr/buffer_list.h +5 -5
- data/src/core/lib/iomgr/error.cc +13 -12
- data/src/core/lib/iomgr/error.h +0 -5
- data/src/core/lib/iomgr/ev_apple.cc +6 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +8 -7
- data/src/core/lib/iomgr/ev_epollex_linux.cc +12 -9
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -7
- data/src/core/lib/iomgr/ev_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.h +1 -1
- data/src/core/lib/iomgr/event_engine/pollset.cc +2 -3
- data/src/core/lib/iomgr/event_engine/resolver.cc +1 -1
- data/src/core/lib/iomgr/event_engine/tcp.cc +4 -3
- data/src/core/lib/iomgr/event_engine/timer.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.cc +3 -88
- data/src/core/lib/iomgr/exec_ctx.h +7 -23
- data/src/core/lib/iomgr/iocp_windows.cc +9 -9
- data/src/core/lib/iomgr/iocp_windows.h +1 -1
- data/src/core/lib/iomgr/polling_entity.h +6 -0
- data/src/core/lib/iomgr/pollset.cc +1 -1
- data/src/core/lib/iomgr/pollset.h +4 -4
- data/src/core/lib/iomgr/pollset_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +4 -7
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +0 -17
- data/src/core/lib/iomgr/tcp_client.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.h +3 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +2 -2
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +2 -1
- data/src/core/lib/iomgr/tcp_windows.cc +17 -10
- data/src/core/lib/iomgr/timer.cc +2 -2
- data/src/core/lib/iomgr/timer.h +11 -6
- data/src/core/lib/iomgr/timer_generic.cc +96 -77
- data/src/core/lib/iomgr/timer_manager.cc +15 -14
- data/src/core/lib/iomgr/work_serializer.cc +15 -10
- data/src/core/lib/json/json_util.cc +4 -4
- data/src/core/lib/json/json_util.h +2 -2
- data/src/core/lib/promise/activity.cc +14 -8
- data/src/core/lib/promise/activity.h +143 -131
- data/src/core/lib/promise/arena_promise.h +188 -0
- data/src/core/lib/promise/detail/basic_seq.h +92 -3
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/loop.h +34 -8
- data/src/core/lib/promise/poll.h +6 -0
- data/src/core/lib/promise/promise.h +95 -0
- data/src/core/lib/promise/seq.h +19 -1
- data/src/core/lib/promise/sleep.cc +74 -0
- data/src/core/lib/promise/sleep.h +66 -0
- data/src/core/lib/promise/try_seq.h +157 -0
- data/src/core/lib/resolver/resolver_factory.h +22 -26
- data/src/core/lib/resolver/resolver_registry.cc +98 -137
- data/src/core/lib/resolver/resolver_registry.h +59 -33
- data/src/core/lib/resource_quota/memory_quota.cc +118 -94
- data/src/core/lib/resource_quota/memory_quota.h +100 -64
- data/src/core/lib/security/authorization/evaluate_args.cc +1 -11
- data/src/core/lib/security/authorization/evaluate_args.h +0 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +51 -0
- data/src/core/lib/security/authorization/matchers.cc +5 -5
- data/src/core/lib/security/authorization/matchers.h +2 -2
- data/src/core/lib/security/authorization/rbac_policy.cc +3 -3
- data/src/core/lib/security/authorization/rbac_policy.h +3 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
- data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
- data/src/core/lib/security/credentials/call_creds_util.h +42 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -81
- data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -10
- data/src/core/lib/security/credentials/credentials.cc +2 -3
- data/src/core/lib/security/credentials/credentials.h +64 -43
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +46 -27
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +49 -29
- data/src/core/lib/security/credentials/external/external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +33 -12
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -19
- data/src/core/lib/security/credentials/fake/fake_credentials.h +11 -14
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -9
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +12 -17
- data/src/core/lib/security/credentials/iam/iam_credentials.h +10 -9
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +18 -22
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +9 -9
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -30
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +117 -125
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +49 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +95 -152
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +19 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +10 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +5 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +8 -14
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -12
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -16
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +4 -9
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -16
- data/src/core/lib/security/security_connector/security_connector.cc +3 -11
- data/src/core/lib/security/security_connector/security_connector.h +11 -20
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +6 -11
- data/src/core/lib/security/security_connector/ssl_utils.cc +15 -7
- data/src/core/lib/security/security_connector/ssl_utils.h +8 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +23 -14
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +6 -6
- data/src/core/lib/security/transport/auth_filters.h +30 -4
- data/src/core/lib/security/transport/client_auth_filter.cc +73 -364
- data/src/core/lib/security/transport/security_handshaker.cc +14 -6
- data/src/core/lib/security/transport/server_auth_filter.cc +1 -0
- data/src/core/lib/service_config/service_config.h +6 -51
- data/src/core/lib/service_config/{service_config.cc → service_config_impl.cc} +19 -16
- data/src/core/lib/service_config/service_config_impl.h +125 -0
- data/src/core/lib/service_config/service_config_parser.cc +30 -26
- data/src/core/lib/service_config/service_config_parser.h +36 -27
- data/src/core/lib/slice/slice.cc +76 -181
- data/src/core/lib/slice/slice.h +28 -15
- data/src/core/lib/slice/slice_internal.h +12 -30
- data/src/core/lib/slice/slice_refcount.cc +18 -0
- data/src/core/lib/slice/slice_refcount.h +2 -72
- data/src/core/lib/slice/slice_refcount_base.h +16 -120
- data/src/core/lib/surface/builtins.cc +6 -6
- data/src/core/lib/surface/call.cc +14 -7
- data/src/core/lib/surface/call.h +1 -1
- data/src/core/lib/surface/channel.cc +26 -31
- data/src/core/lib/surface/channel.h +6 -7
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/channel_init.h +4 -4
- data/src/core/lib/surface/completion_queue.cc +10 -9
- data/src/core/lib/surface/init.cc +78 -7
- data/src/core/lib/surface/init.h +0 -2
- data/src/core/lib/surface/lame_client.cc +2 -1
- data/src/core/lib/surface/server.cc +11 -22
- data/src/core/lib/surface/server.h +3 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +9 -10
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/error_utils.cc +5 -3
- data/src/core/lib/transport/error_utils.h +2 -15
- data/src/core/lib/transport/metadata_batch.h +275 -97
- data/src/core/lib/transport/parsed_metadata.h +33 -17
- data/src/core/lib/transport/status_conversion.cc +2 -2
- data/src/core/lib/transport/status_conversion.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +32 -29
- data/src/core/lib/transport/timeout_encoding.h +3 -3
- data/src/core/lib/transport/transport.cc +3 -1
- data/src/core/lib/transport/transport.h +87 -2
- data/src/core/lib/transport/transport_impl.h +13 -0
- data/src/core/lib/transport/transport_op_string.cc +5 -14
- data/src/core/lib/uri/uri_parser.cc +4 -0
- data/src/core/lib/uri/uri_parser.h +1 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +19 -88
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +26 -21
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +19 -11
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
- data/src/core/tsi/local_transport_security.cc +3 -11
- data/src/core/tsi/local_transport_security.h +1 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
- data/src/core/tsi/ssl_transport_security.cc +52 -1
- data/src/core/tsi/ssl_transport_security.h +20 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +5 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +18 -24
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +27 -36
- data/src/ruby/ext/grpc/rb_server.c +7 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
- data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
- data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
- data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
- data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
- data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
- data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_android.c +444 -0
- data/third_party/cares/cares/src/lib/ares_android.h +27 -0
- data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
- data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
- data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
- data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
- data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
- data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
- data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
- data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
- data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
- data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
- data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
- data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
- data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
- data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
- data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
- data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
- data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
- data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
- data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
- data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
- data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
- data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
- data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
- data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
- data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
- data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
- data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
- data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
- data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
- data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
- data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
- data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
- data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
- data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
- data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
- data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -0
- data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
- data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
- data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
- data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
- data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
- data/third_party/upb/third_party/utf8_range/naive.c +92 -0
- data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
- data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
- data/third_party/upb/upb/decode.c +526 -319
- data/third_party/upb/upb/decode.h +43 -17
- data/third_party/upb/upb/decode_fast.c +303 -301
- data/third_party/upb/upb/decode_fast.h +18 -18
- data/third_party/upb/upb/decode_internal.h +73 -56
- data/third_party/upb/upb/def.c +1863 -1078
- data/third_party/upb/upb/def.h +318 -286
- data/third_party/upb/upb/def.hpp +129 -172
- data/third_party/upb/upb/encode.c +202 -175
- data/third_party/upb/upb/encode.h +15 -17
- data/third_party/upb/upb/msg.c +144 -124
- data/third_party/upb/upb/msg.h +40 -33
- data/third_party/upb/upb/msg_internal.h +321 -272
- data/third_party/upb/upb/reflection.c +239 -199
- data/third_party/upb/upb/reflection.h +87 -67
- data/third_party/upb/upb/reflection.hpp +6 -6
- data/third_party/upb/upb/table.c +222 -142
- data/third_party/upb/upb/table_internal.h +128 -96
- data/third_party/upb/upb/text_encode.c +113 -90
- data/third_party/upb/upb/text_encode.h +10 -10
- data/third_party/upb/upb/upb.c +111 -72
- data/third_party/upb/upb/upb.h +120 -144
- data/third_party/upb/upb/upb.hpp +31 -28
- data/third_party/upb/upb/upb_internal.h +21 -11
- metadata +301 -170
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -83
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -122
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -92
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -192
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -52
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -79
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -125
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -36
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -64
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +0 -102
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +0 -306
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +0 -56
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +0 -135
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +0 -115
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +0 -371
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -67
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -67
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -69
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +0 -58
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +0 -55
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +0 -55
- data/src/core/ext/xds/xds_channel_creds.cc +0 -108
- data/src/core/ext/xds/xds_channel_creds.h +0 -50
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -82
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/pollset_custom.cc +0 -105
- data/src/core/lib/iomgr/pollset_custom.h +0 -37
- data/src/core/lib/iomgr/pollset_set_custom.cc +0 -47
- data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
- data/src/core/lib/iomgr/resolve_address_custom.cc +0 -191
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -126
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -146
- data/src/core/lib/iomgr/tcp_custom.cc +0 -350
- data/src/core/lib/iomgr/tcp_custom.h +0 -85
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -457
- data/src/core/lib/iomgr/timer_custom.cc +0 -96
- data/src/core/lib/iomgr/timer_custom.h +0 -43
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +0 -173
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +0 -67
- data/src/core/lib/slice/slice_intern.cc +0 -269
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/surface/init_secure.cc +0 -103
- data/third_party/cares/cares/ares_getopt.c +0 -122
- data/third_party/cares/cares/ares_getopt.h +0 -53
- data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
@@ -13,11 +13,11 @@
|
|
13
13
|
* names of its contributors may be used to endorse or promote products
|
14
14
|
* derived from this software without specific prior written permission.
|
15
15
|
*
|
16
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
17
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
18
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
19
|
-
* DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY
|
20
|
-
*
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
|
20
|
+
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
21
21
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
22
22
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
23
23
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
@@ -39,25 +39,25 @@
|
|
39
39
|
|
40
40
|
/* Maps descriptor type -> elem_size_lg2. */
|
41
41
|
static const uint8_t desctype_to_elem_size_lg2[] = {
|
42
|
-
-1,
|
43
|
-
3,
|
44
|
-
2,
|
45
|
-
3,
|
46
|
-
3,
|
47
|
-
2,
|
48
|
-
3,
|
49
|
-
2,
|
50
|
-
0,
|
51
|
-
UPB_SIZE(3, 4),
|
52
|
-
UPB_SIZE(2, 3),
|
53
|
-
UPB_SIZE(2, 3),
|
54
|
-
UPB_SIZE(3, 4),
|
55
|
-
2,
|
56
|
-
2,
|
57
|
-
2,
|
58
|
-
3,
|
59
|
-
2,
|
60
|
-
3,
|
42
|
+
-1, /* invalid descriptor type */
|
43
|
+
3, /* DOUBLE */
|
44
|
+
2, /* FLOAT */
|
45
|
+
3, /* INT64 */
|
46
|
+
3, /* UINT64 */
|
47
|
+
2, /* INT32 */
|
48
|
+
3, /* FIXED64 */
|
49
|
+
2, /* FIXED32 */
|
50
|
+
0, /* BOOL */
|
51
|
+
UPB_SIZE(3, 4), /* STRING */
|
52
|
+
UPB_SIZE(2, 3), /* GROUP */
|
53
|
+
UPB_SIZE(2, 3), /* MESSAGE */
|
54
|
+
UPB_SIZE(3, 4), /* BYTES */
|
55
|
+
2, /* UINT32 */
|
56
|
+
2, /* ENUM */
|
57
|
+
2, /* SFIXED32 */
|
58
|
+
3, /* SFIXED64 */
|
59
|
+
2, /* SINT32 */
|
60
|
+
3, /* SINT64 */
|
61
61
|
};
|
62
62
|
|
63
63
|
/* Maps descriptor type -> upb map size. */
|
@@ -72,8 +72,8 @@ static const uint8_t desctype_to_mapsize[] = {
|
|
72
72
|
4, /* FIXED32 */
|
73
73
|
1, /* BOOL */
|
74
74
|
UPB_MAPTYPE_STRING, /* STRING */
|
75
|
-
sizeof(void
|
76
|
-
sizeof(void
|
75
|
+
sizeof(void*), /* GROUP */
|
76
|
+
sizeof(void*), /* MESSAGE */
|
77
77
|
UPB_MAPTYPE_STRING, /* BYTES */
|
78
78
|
4, /* UINT32 */
|
79
79
|
4, /* ENUM */
|
@@ -83,13 +83,13 @@ static const uint8_t desctype_to_mapsize[] = {
|
|
83
83
|
8, /* SINT64 */
|
84
84
|
};
|
85
85
|
|
86
|
-
static const unsigned FIXED32_OK_MASK = (1 <<
|
87
|
-
(1 <<
|
88
|
-
(1 <<
|
86
|
+
static const unsigned FIXED32_OK_MASK = (1 << kUpb_FieldType_Float) |
|
87
|
+
(1 << kUpb_FieldType_Fixed32) |
|
88
|
+
(1 << kUpb_FieldType_SFixed32);
|
89
89
|
|
90
|
-
static const unsigned FIXED64_OK_MASK = (1 <<
|
91
|
-
(1 <<
|
92
|
-
(1 <<
|
90
|
+
static const unsigned FIXED64_OK_MASK = (1 << kUpb_FieldType_Double) |
|
91
|
+
(1 << kUpb_FieldType_Fixed64) |
|
92
|
+
(1 << kUpb_FieldType_SFixed64);
|
93
93
|
|
94
94
|
/* Three fake field types for MessageSet. */
|
95
95
|
#define TYPE_MSGSET_ITEM 19
|
@@ -97,16 +97,18 @@ static const unsigned FIXED64_OK_MASK = (1 << UPB_DTYPE_DOUBLE) |
|
|
97
97
|
#define TYPE_COUNT 20
|
98
98
|
|
99
99
|
/* Op: an action to be performed for a wire-type/field-type combination. */
|
100
|
-
#define OP_UNKNOWN -1
|
100
|
+
#define OP_UNKNOWN -1 /* Unknown field. */
|
101
101
|
#define OP_MSGSET_ITEM -2
|
102
102
|
#define OP_MSGSET_TYPEID -3
|
103
|
-
#define OP_SCALAR_LG2(n) (n)
|
103
|
+
#define OP_SCALAR_LG2(n) (n) /* n in [0, 2, 3] => op in [0, 2, 3] */
|
104
|
+
#define OP_ENUM 1
|
104
105
|
#define OP_STRING 4
|
105
106
|
#define OP_BYTES 5
|
106
107
|
#define OP_SUBMSG 6
|
107
|
-
/*
|
108
|
-
#define OP_FIXPCK_LG2(n) (n + 5)
|
109
|
-
#define OP_VARPCK_LG2(n) (n + 9)
|
108
|
+
/* Scalar fields use only ops above. Repeated fields can use any op. */
|
109
|
+
#define OP_FIXPCK_LG2(n) (n + 5) /* n in [2, 3] => op in [7, 8] */
|
110
|
+
#define OP_VARPCK_LG2(n) (n + 9) /* n in [0, 2, 3] => op in [9, 11, 12] */
|
111
|
+
#define OP_PACKED_ENUM 13
|
110
112
|
|
111
113
|
static const int8_t varint_ops[] = {
|
112
114
|
OP_UNKNOWN, /* field not found */
|
@@ -123,7 +125,7 @@ static const int8_t varint_ops[] = {
|
|
123
125
|
OP_UNKNOWN, /* MESSAGE */
|
124
126
|
OP_UNKNOWN, /* BYTES */
|
125
127
|
OP_SCALAR_LG2(2), /* UINT32 */
|
126
|
-
|
128
|
+
OP_ENUM, /* ENUM */
|
127
129
|
OP_UNKNOWN, /* SFIXED32 */
|
128
130
|
OP_UNKNOWN, /* SFIXED64 */
|
129
131
|
OP_SCALAR_LG2(2), /* SINT32 */
|
@@ -134,27 +136,27 @@ static const int8_t varint_ops[] = {
|
|
134
136
|
|
135
137
|
static const int8_t delim_ops[] = {
|
136
138
|
/* For non-repeated field type. */
|
137
|
-
OP_UNKNOWN,
|
138
|
-
OP_UNKNOWN,
|
139
|
-
OP_UNKNOWN,
|
140
|
-
OP_UNKNOWN,
|
141
|
-
OP_UNKNOWN,
|
142
|
-
OP_UNKNOWN,
|
143
|
-
OP_UNKNOWN,
|
144
|
-
OP_UNKNOWN,
|
145
|
-
OP_UNKNOWN,
|
146
|
-
OP_STRING,
|
147
|
-
OP_UNKNOWN,
|
148
|
-
OP_SUBMSG,
|
149
|
-
OP_BYTES,
|
150
|
-
OP_UNKNOWN,
|
151
|
-
OP_UNKNOWN,
|
152
|
-
OP_UNKNOWN,
|
153
|
-
OP_UNKNOWN,
|
154
|
-
OP_UNKNOWN,
|
155
|
-
OP_UNKNOWN,
|
156
|
-
OP_UNKNOWN,
|
157
|
-
OP_UNKNOWN,
|
139
|
+
OP_UNKNOWN, /* field not found */
|
140
|
+
OP_UNKNOWN, /* DOUBLE */
|
141
|
+
OP_UNKNOWN, /* FLOAT */
|
142
|
+
OP_UNKNOWN, /* INT64 */
|
143
|
+
OP_UNKNOWN, /* UINT64 */
|
144
|
+
OP_UNKNOWN, /* INT32 */
|
145
|
+
OP_UNKNOWN, /* FIXED64 */
|
146
|
+
OP_UNKNOWN, /* FIXED32 */
|
147
|
+
OP_UNKNOWN, /* BOOL */
|
148
|
+
OP_STRING, /* STRING */
|
149
|
+
OP_UNKNOWN, /* GROUP */
|
150
|
+
OP_SUBMSG, /* MESSAGE */
|
151
|
+
OP_BYTES, /* BYTES */
|
152
|
+
OP_UNKNOWN, /* UINT32 */
|
153
|
+
OP_UNKNOWN, /* ENUM */
|
154
|
+
OP_UNKNOWN, /* SFIXED32 */
|
155
|
+
OP_UNKNOWN, /* SFIXED64 */
|
156
|
+
OP_UNKNOWN, /* SINT32 */
|
157
|
+
OP_UNKNOWN, /* SINT64 */
|
158
|
+
OP_UNKNOWN, /* MSGSET_ITEM */
|
159
|
+
OP_UNKNOWN, /* MSGSET TYPEID */
|
158
160
|
/* For repeated field type. */
|
159
161
|
OP_FIXPCK_LG2(3), /* REPEATED DOUBLE */
|
160
162
|
OP_FIXPCK_LG2(2), /* REPEATED FLOAT */
|
@@ -169,7 +171,7 @@ static const int8_t delim_ops[] = {
|
|
169
171
|
OP_SUBMSG, /* REPEATED MESSAGE */
|
170
172
|
OP_BYTES, /* REPEATED BYTES */
|
171
173
|
OP_VARPCK_LG2(2), /* REPEATED UINT32 */
|
172
|
-
|
174
|
+
OP_PACKED_ENUM, /* REPEATED ENUM */
|
173
175
|
OP_FIXPCK_LG2(2), /* REPEATED SFIXED32 */
|
174
176
|
OP_FIXPCK_LG2(3), /* REPEATED SFIXED64 */
|
175
177
|
OP_VARPCK_LG2(2), /* REPEATED SINT32 */
|
@@ -184,63 +186,39 @@ typedef union {
|
|
184
186
|
uint32_t size;
|
185
187
|
} wireval;
|
186
188
|
|
187
|
-
static const char
|
188
|
-
const
|
189
|
+
static const char* decode_msg(upb_Decoder* d, const char* ptr, upb_Message* msg,
|
190
|
+
const upb_MiniTable* layout);
|
189
191
|
|
190
|
-
UPB_NORETURN static
|
191
|
-
|
192
|
+
UPB_NORETURN static void* decode_err(upb_Decoder* d, upb_DecodeStatus status) {
|
193
|
+
assert(status != kUpb_DecodeStatus_Ok);
|
194
|
+
UPB_LONGJMP(d->err, status);
|
192
195
|
}
|
193
196
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
#pragma clang diagnostic push
|
198
|
-
#pragma clang diagnostic ignored "-Wunknown-warning-option"
|
199
|
-
#pragma clang diagnostic ignored "-Wsuggest-attribute"
|
200
|
-
#endif
|
201
|
-
|
202
|
-
const char *fastdecode_err(upb_decstate *d) {
|
203
|
-
longjmp(d->err, 1);
|
197
|
+
const char* fastdecode_err(upb_Decoder* d, int status) {
|
198
|
+
assert(status != kUpb_DecodeStatus_Ok);
|
199
|
+
UPB_LONGJMP(d->err, status);
|
204
200
|
return NULL;
|
205
201
|
}
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
#endif
|
210
|
-
|
211
|
-
const uint8_t upb_utf8_offsets[] = {
|
212
|
-
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
213
|
-
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
214
|
-
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
215
|
-
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
216
|
-
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
217
|
-
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
218
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
219
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
220
|
-
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
221
|
-
2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
222
|
-
4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0,
|
223
|
-
};
|
224
|
-
|
225
|
-
static void decode_verifyutf8(upb_decstate *d, const char *buf, int len) {
|
226
|
-
if (!decode_verifyutf8_inl(buf, len)) decode_err(d);
|
202
|
+
static void decode_verifyutf8(upb_Decoder* d, const char* buf, int len) {
|
203
|
+
if (!decode_verifyutf8_inl(buf, len))
|
204
|
+
decode_err(d, kUpb_DecodeStatus_BadUtf8);
|
227
205
|
}
|
228
206
|
|
229
|
-
static bool decode_reserve(
|
207
|
+
static bool decode_reserve(upb_Decoder* d, upb_Array* arr, size_t elem) {
|
230
208
|
bool need_realloc = arr->size - arr->len < elem;
|
231
209
|
if (need_realloc && !_upb_array_realloc(arr, arr->len + elem, &d->arena)) {
|
232
|
-
decode_err(d);
|
210
|
+
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
233
211
|
}
|
234
212
|
return need_realloc;
|
235
213
|
}
|
236
214
|
|
237
215
|
typedef struct {
|
238
|
-
const char
|
216
|
+
const char* ptr;
|
239
217
|
uint64_t val;
|
240
218
|
} decode_vret;
|
241
219
|
|
242
220
|
UPB_NOINLINE
|
243
|
-
static decode_vret decode_longvarint64(const char
|
221
|
+
static decode_vret decode_longvarint64(const char* ptr, uint64_t val) {
|
244
222
|
decode_vret ret = {NULL, 0};
|
245
223
|
uint64_t byte;
|
246
224
|
int i;
|
@@ -257,85 +235,92 @@ static decode_vret decode_longvarint64(const char *ptr, uint64_t val) {
|
|
257
235
|
}
|
258
236
|
|
259
237
|
UPB_FORCEINLINE
|
260
|
-
static const char
|
261
|
-
uint64_t
|
238
|
+
static const char* decode_varint64(upb_Decoder* d, const char* ptr,
|
239
|
+
uint64_t* val) {
|
262
240
|
uint64_t byte = (uint8_t)*ptr;
|
263
241
|
if (UPB_LIKELY((byte & 0x80) == 0)) {
|
264
242
|
*val = byte;
|
265
243
|
return ptr + 1;
|
266
244
|
} else {
|
267
245
|
decode_vret res = decode_longvarint64(ptr, byte);
|
268
|
-
if (!res.ptr) return decode_err(d);
|
246
|
+
if (!res.ptr) return decode_err(d, kUpb_DecodeStatus_Malformed);
|
269
247
|
*val = res.val;
|
270
248
|
return res.ptr;
|
271
249
|
}
|
272
250
|
}
|
273
251
|
|
274
252
|
UPB_FORCEINLINE
|
275
|
-
static const char
|
276
|
-
uint32_t *val) {
|
253
|
+
static const char* decode_tag(upb_Decoder* d, const char* ptr, uint32_t* val) {
|
277
254
|
uint64_t byte = (uint8_t)*ptr;
|
278
255
|
if (UPB_LIKELY((byte & 0x80) == 0)) {
|
279
256
|
*val = byte;
|
280
257
|
return ptr + 1;
|
281
258
|
} else {
|
282
|
-
const char
|
259
|
+
const char* start = ptr;
|
283
260
|
decode_vret res = decode_longvarint64(ptr, byte);
|
284
|
-
ptr
|
261
|
+
if (!res.ptr || res.ptr - start > 5 || res.val > UINT32_MAX) {
|
262
|
+
return decode_err(d, kUpb_DecodeStatus_Malformed);
|
263
|
+
}
|
285
264
|
*val = res.val;
|
286
|
-
|
287
|
-
return ptr;
|
265
|
+
return res.ptr;
|
288
266
|
}
|
289
267
|
}
|
290
268
|
|
291
|
-
static void
|
269
|
+
static void decode_munge_int32(wireval* val) {
|
270
|
+
if (!_upb_IsLittleEndian()) {
|
271
|
+
/* The next stage will memcpy(dst, &val, 4) */
|
272
|
+
val->uint32_val = val->uint64_val;
|
273
|
+
}
|
274
|
+
}
|
275
|
+
|
276
|
+
static void decode_munge(int type, wireval* val) {
|
292
277
|
switch (type) {
|
293
|
-
case
|
278
|
+
case kUpb_FieldType_Bool:
|
294
279
|
val->bool_val = val->uint64_val != 0;
|
295
280
|
break;
|
296
|
-
case
|
297
|
-
uint32_t n = val->
|
281
|
+
case kUpb_FieldType_SInt32: {
|
282
|
+
uint32_t n = val->uint64_val;
|
298
283
|
val->uint32_val = (n >> 1) ^ -(int32_t)(n & 1);
|
299
284
|
break;
|
300
285
|
}
|
301
|
-
case
|
286
|
+
case kUpb_FieldType_SInt64: {
|
302
287
|
uint64_t n = val->uint64_val;
|
303
288
|
val->uint64_val = (n >> 1) ^ -(int64_t)(n & 1);
|
304
289
|
break;
|
305
290
|
}
|
306
|
-
case
|
307
|
-
case
|
308
|
-
|
309
|
-
|
310
|
-
val->uint32_val = val->uint64_val;
|
311
|
-
}
|
291
|
+
case kUpb_FieldType_Int32:
|
292
|
+
case kUpb_FieldType_UInt32:
|
293
|
+
case kUpb_FieldType_Enum:
|
294
|
+
decode_munge_int32(val);
|
312
295
|
break;
|
313
296
|
}
|
314
297
|
}
|
315
298
|
|
316
|
-
static
|
317
|
-
|
318
|
-
|
319
|
-
|
299
|
+
static upb_Message* decode_newsubmsg(upb_Decoder* d,
|
300
|
+
const upb_MiniTable_Sub* subs,
|
301
|
+
const upb_MiniTable_Field* field) {
|
302
|
+
const upb_MiniTable* subl = subs[field->submsg_index].submsg;
|
303
|
+
return _upb_Message_New_inl(subl, &d->arena);
|
320
304
|
}
|
321
305
|
|
322
306
|
UPB_NOINLINE
|
323
|
-
const char
|
307
|
+
const char* decode_isdonefallback(upb_Decoder* d, const char* ptr,
|
324
308
|
int overrun) {
|
325
|
-
|
309
|
+
int status;
|
310
|
+
ptr = decode_isdonefallback_inl(d, ptr, overrun, &status);
|
326
311
|
if (ptr == NULL) {
|
327
|
-
return decode_err(d);
|
312
|
+
return decode_err(d, status);
|
328
313
|
}
|
329
314
|
return ptr;
|
330
315
|
}
|
331
316
|
|
332
|
-
static const char
|
333
|
-
|
334
|
-
if (d->
|
317
|
+
static const char* decode_readstr(upb_Decoder* d, const char* ptr, int size,
|
318
|
+
upb_StringView* str) {
|
319
|
+
if (d->options & kUpb_DecodeOption_AliasString) {
|
335
320
|
str->data = ptr;
|
336
321
|
} else {
|
337
|
-
char
|
338
|
-
if (!data) return decode_err(d);
|
322
|
+
char* data = upb_Arena_Malloc(&d->arena, size);
|
323
|
+
if (!data) return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
339
324
|
memcpy(data, ptr, size);
|
340
325
|
str->data = data;
|
341
326
|
}
|
@@ -344,61 +329,222 @@ static const char *decode_readstr(upb_decstate *d, const char *ptr, int size,
|
|
344
329
|
}
|
345
330
|
|
346
331
|
UPB_FORCEINLINE
|
347
|
-
static const char *
|
348
|
-
|
349
|
-
|
350
|
-
const upb_msglayout_field *field, int size) {
|
351
|
-
const upb_msglayout *subl = subs[field->submsg_index].submsg;
|
332
|
+
static const char* decode_tosubmsg2(upb_Decoder* d, const char* ptr,
|
333
|
+
upb_Message* submsg,
|
334
|
+
const upb_MiniTable* subl, int size) {
|
352
335
|
int saved_delta = decode_pushlimit(d, ptr, size);
|
353
|
-
if (--d->depth < 0) return decode_err(d);
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
if (d->end_group != DECODE_NOGROUP) return decode_err(d);
|
336
|
+
if (--d->depth < 0) return decode_err(d, kUpb_DecodeStatus_MaxDepthExceeded);
|
337
|
+
ptr = decode_msg(d, ptr, submsg, subl);
|
338
|
+
if (d->end_group != DECODE_NOGROUP)
|
339
|
+
return decode_err(d, kUpb_DecodeStatus_Malformed);
|
358
340
|
decode_poplimit(d, ptr, saved_delta);
|
359
341
|
d->depth++;
|
360
342
|
return ptr;
|
361
343
|
}
|
362
344
|
|
363
345
|
UPB_FORCEINLINE
|
364
|
-
static const char *
|
365
|
-
|
346
|
+
static const char* decode_tosubmsg(upb_Decoder* d, const char* ptr,
|
347
|
+
upb_Message* submsg,
|
348
|
+
const upb_MiniTable_Sub* subs,
|
349
|
+
const upb_MiniTable_Field* field, int size) {
|
350
|
+
return decode_tosubmsg2(d, ptr, submsg, subs[field->submsg_index].submsg,
|
351
|
+
size);
|
352
|
+
}
|
353
|
+
|
354
|
+
UPB_FORCEINLINE
|
355
|
+
static const char* decode_group(upb_Decoder* d, const char* ptr,
|
356
|
+
upb_Message* submsg, const upb_MiniTable* subl,
|
366
357
|
uint32_t number) {
|
367
|
-
if (--d->depth < 0) return decode_err(d);
|
358
|
+
if (--d->depth < 0) return decode_err(d, kUpb_DecodeStatus_MaxDepthExceeded);
|
368
359
|
if (decode_isdone(d, &ptr)) {
|
369
|
-
return decode_err(d);
|
360
|
+
return decode_err(d, kUpb_DecodeStatus_Malformed);
|
370
361
|
}
|
371
362
|
ptr = decode_msg(d, ptr, submsg, subl);
|
372
|
-
if (d->end_group != number) return decode_err(d);
|
363
|
+
if (d->end_group != number) return decode_err(d, kUpb_DecodeStatus_Malformed);
|
373
364
|
d->end_group = DECODE_NOGROUP;
|
374
365
|
d->depth++;
|
375
366
|
return ptr;
|
376
367
|
}
|
377
368
|
|
378
369
|
UPB_FORCEINLINE
|
379
|
-
static const char
|
380
|
-
|
381
|
-
const
|
382
|
-
const
|
383
|
-
const
|
370
|
+
static const char* decode_togroup(upb_Decoder* d, const char* ptr,
|
371
|
+
upb_Message* submsg,
|
372
|
+
const upb_MiniTable_Sub* subs,
|
373
|
+
const upb_MiniTable_Field* field) {
|
374
|
+
const upb_MiniTable* subl = subs[field->submsg_index].submsg;
|
384
375
|
return decode_group(d, ptr, submsg, subl, field->number);
|
385
376
|
}
|
386
377
|
|
387
|
-
static
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
378
|
+
static char* encode_varint32(uint32_t val, char* ptr) {
|
379
|
+
do {
|
380
|
+
uint8_t byte = val & 0x7fU;
|
381
|
+
val >>= 7;
|
382
|
+
if (val) byte |= 0x80U;
|
383
|
+
*(ptr++) = byte;
|
384
|
+
} while (val);
|
385
|
+
return ptr;
|
386
|
+
}
|
387
|
+
|
388
|
+
UPB_NOINLINE
|
389
|
+
static bool decode_checkenum_slow(upb_Decoder* d, const char* ptr,
|
390
|
+
upb_Message* msg, const upb_MiniTable_Enum* e,
|
391
|
+
const upb_MiniTable_Field* field,
|
392
|
+
uint32_t v) {
|
393
|
+
// OPT: binary search long lists?
|
394
|
+
int n = e->value_count;
|
395
|
+
for (int i = 0; i < n; i++) {
|
396
|
+
if ((uint32_t)e->values[i] == v) return true;
|
397
|
+
}
|
398
|
+
|
399
|
+
// Unrecognized enum goes into unknown fields.
|
400
|
+
// For packed fields the tag could be arbitrarily far in the past, so we
|
401
|
+
// just re-encode the tag here.
|
402
|
+
char buf[20];
|
403
|
+
char* end = buf;
|
404
|
+
uint32_t tag = ((uint32_t)field->number << 3) | kUpb_WireType_Varint;
|
405
|
+
end = encode_varint32(tag, end);
|
406
|
+
end = encode_varint32(v, end);
|
407
|
+
|
408
|
+
if (!_upb_Message_AddUnknown(msg, buf, end - buf, &d->arena)) {
|
409
|
+
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
410
|
+
}
|
411
|
+
|
412
|
+
return false;
|
413
|
+
}
|
414
|
+
|
415
|
+
UPB_FORCEINLINE
|
416
|
+
static bool decode_checkenum(upb_Decoder* d, const char* ptr, upb_Message* msg,
|
417
|
+
const upb_MiniTable_Enum* e,
|
418
|
+
const upb_MiniTable_Field* field, wireval* val) {
|
419
|
+
uint32_t v = val->uint32_val;
|
420
|
+
|
421
|
+
if (UPB_LIKELY(v < 64) && UPB_LIKELY(((1ULL << v) & e->mask))) return true;
|
422
|
+
|
423
|
+
return decode_checkenum_slow(d, ptr, msg, e, field, v);
|
424
|
+
}
|
425
|
+
|
426
|
+
UPB_NOINLINE
|
427
|
+
static const char* decode_enum_toarray(upb_Decoder* d, const char* ptr,
|
428
|
+
upb_Message* msg, upb_Array* arr,
|
429
|
+
const upb_MiniTable_Sub* subs,
|
430
|
+
const upb_MiniTable_Field* field,
|
431
|
+
wireval* val) {
|
432
|
+
const upb_MiniTable_Enum* e = subs[field->submsg_index].subenum;
|
433
|
+
if (!decode_checkenum(d, ptr, msg, e, field, val)) return ptr;
|
434
|
+
void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
|
435
|
+
arr->len++;
|
436
|
+
memcpy(mem, val, 4);
|
437
|
+
return ptr;
|
438
|
+
}
|
439
|
+
|
440
|
+
UPB_FORCEINLINE
|
441
|
+
static const char* decode_fixed_packed(upb_Decoder* d, const char* ptr,
|
442
|
+
upb_Array* arr, wireval* val,
|
443
|
+
const upb_MiniTable_Field* field,
|
444
|
+
int lg2) {
|
445
|
+
int mask = (1 << lg2) - 1;
|
446
|
+
size_t count = val->size >> lg2;
|
447
|
+
if ((val->size & mask) != 0) {
|
448
|
+
// Length isn't a round multiple of elem size.
|
449
|
+
return decode_err(d, kUpb_DecodeStatus_Malformed);
|
450
|
+
}
|
451
|
+
decode_reserve(d, arr, count);
|
452
|
+
void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
|
453
|
+
arr->len += count;
|
454
|
+
// Note: if/when the decoder supports multi-buffer input, we will need to
|
455
|
+
// handle buffer seams here.
|
456
|
+
if (_upb_IsLittleEndian()) {
|
457
|
+
memcpy(mem, ptr, val->size);
|
458
|
+
ptr += val->size;
|
459
|
+
} else {
|
460
|
+
const char* end = ptr + val->size;
|
461
|
+
char* dst = mem;
|
462
|
+
while (ptr < end) {
|
463
|
+
if (lg2 == 2) {
|
464
|
+
uint32_t val;
|
465
|
+
memcpy(&val, ptr, sizeof(val));
|
466
|
+
val = _upb_BigEndian_Swap32(val);
|
467
|
+
memcpy(dst, &val, sizeof(val));
|
468
|
+
} else {
|
469
|
+
UPB_ASSERT(lg2 == 3);
|
470
|
+
uint64_t val;
|
471
|
+
memcpy(&val, ptr, sizeof(val));
|
472
|
+
val = _upb_BigEndian_Swap64(val);
|
473
|
+
memcpy(dst, &val, sizeof(val));
|
474
|
+
}
|
475
|
+
ptr += 1 << lg2;
|
476
|
+
dst += 1 << lg2;
|
477
|
+
}
|
478
|
+
}
|
479
|
+
|
480
|
+
return ptr;
|
481
|
+
}
|
482
|
+
|
483
|
+
UPB_FORCEINLINE
|
484
|
+
static const char* decode_varint_packed(upb_Decoder* d, const char* ptr,
|
485
|
+
upb_Array* arr, wireval* val,
|
486
|
+
const upb_MiniTable_Field* field,
|
487
|
+
int lg2) {
|
488
|
+
int scale = 1 << lg2;
|
489
|
+
int saved_limit = decode_pushlimit(d, ptr, val->size);
|
490
|
+
char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
|
491
|
+
while (!decode_isdone(d, &ptr)) {
|
492
|
+
wireval elem;
|
493
|
+
ptr = decode_varint64(d, ptr, &elem.uint64_val);
|
494
|
+
decode_munge(field->descriptortype, &elem);
|
495
|
+
if (decode_reserve(d, arr, 1)) {
|
496
|
+
out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
|
497
|
+
}
|
498
|
+
arr->len++;
|
499
|
+
memcpy(out, &elem, scale);
|
500
|
+
out += scale;
|
501
|
+
}
|
502
|
+
decode_poplimit(d, ptr, saved_limit);
|
503
|
+
return ptr;
|
504
|
+
}
|
505
|
+
|
506
|
+
UPB_NOINLINE
|
507
|
+
static const char* decode_enum_packed(upb_Decoder* d, const char* ptr,
|
508
|
+
upb_Message* msg, upb_Array* arr,
|
509
|
+
const upb_MiniTable_Sub* subs,
|
510
|
+
const upb_MiniTable_Field* field,
|
511
|
+
wireval* val) {
|
512
|
+
const upb_MiniTable_Enum* e = subs[field->submsg_index].subenum;
|
513
|
+
int saved_limit = decode_pushlimit(d, ptr, val->size);
|
514
|
+
char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
|
515
|
+
while (!decode_isdone(d, &ptr)) {
|
516
|
+
wireval elem;
|
517
|
+
ptr = decode_varint64(d, ptr, &elem.uint64_val);
|
518
|
+
decode_munge_int32(&elem);
|
519
|
+
if (!decode_checkenum(d, ptr, msg, e, field, &elem)) {
|
520
|
+
continue;
|
521
|
+
}
|
522
|
+
if (decode_reserve(d, arr, 1)) {
|
523
|
+
out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
|
524
|
+
}
|
525
|
+
arr->len++;
|
526
|
+
memcpy(out, &elem, 4);
|
527
|
+
out += 4;
|
528
|
+
}
|
529
|
+
decode_poplimit(d, ptr, saved_limit);
|
530
|
+
return ptr;
|
531
|
+
}
|
532
|
+
|
533
|
+
static const char* decode_toarray(upb_Decoder* d, const char* ptr,
|
534
|
+
upb_Message* msg,
|
535
|
+
const upb_MiniTable_Sub* subs,
|
536
|
+
const upb_MiniTable_Field* field,
|
537
|
+
wireval* val, int op) {
|
538
|
+
upb_Array** arrp = UPB_PTR_AT(msg, field->offset, void);
|
539
|
+
upb_Array* arr = *arrp;
|
540
|
+
void* mem;
|
395
541
|
|
396
542
|
if (arr) {
|
397
543
|
decode_reserve(d, arr, 1);
|
398
544
|
} else {
|
399
545
|
size_t lg2 = desctype_to_elem_size_lg2[field->descriptortype];
|
400
|
-
arr =
|
401
|
-
if (!arr) return decode_err(d);
|
546
|
+
arr = _upb_Array_New(&d->arena, 4, lg2);
|
547
|
+
if (!arr) return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
402
548
|
*arrp = arr;
|
403
549
|
}
|
404
550
|
|
@@ -416,112 +562,95 @@ static const char *decode_toarray(upb_decstate *d, const char *ptr,
|
|
416
562
|
/* Fallthrough. */
|
417
563
|
case OP_BYTES: {
|
418
564
|
/* Append bytes. */
|
419
|
-
|
565
|
+
upb_StringView* str = (upb_StringView*)_upb_array_ptr(arr) + arr->len;
|
420
566
|
arr->len++;
|
421
567
|
return decode_readstr(d, ptr, val->size, str);
|
422
568
|
}
|
423
569
|
case OP_SUBMSG: {
|
424
570
|
/* Append submessage / group. */
|
425
|
-
|
426
|
-
*UPB_PTR_AT(_upb_array_ptr(arr), arr->len * sizeof(void
|
571
|
+
upb_Message* submsg = decode_newsubmsg(d, subs, field);
|
572
|
+
*UPB_PTR_AT(_upb_array_ptr(arr), arr->len * sizeof(void*), upb_Message*) =
|
427
573
|
submsg;
|
428
574
|
arr->len++;
|
429
|
-
if (UPB_UNLIKELY(field->descriptortype ==
|
575
|
+
if (UPB_UNLIKELY(field->descriptortype == kUpb_FieldType_Group)) {
|
430
576
|
return decode_togroup(d, ptr, submsg, subs, field);
|
431
577
|
} else {
|
432
578
|
return decode_tosubmsg(d, ptr, submsg, subs, field, val->size);
|
433
579
|
}
|
434
580
|
}
|
435
581
|
case OP_FIXPCK_LG2(2):
|
436
|
-
case OP_FIXPCK_LG2(3):
|
437
|
-
|
438
|
-
|
439
|
-
int mask = (1 << lg2) - 1;
|
440
|
-
size_t count = val->size >> lg2;
|
441
|
-
if ((val->size & mask) != 0) {
|
442
|
-
return decode_err(d); /* Length isn't a round multiple of elem size. */
|
443
|
-
}
|
444
|
-
decode_reserve(d, arr, count);
|
445
|
-
mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
|
446
|
-
arr->len += count;
|
447
|
-
memcpy(mem, ptr, val->size); /* XXX: ptr boundary. */
|
448
|
-
return ptr + val->size;
|
449
|
-
}
|
582
|
+
case OP_FIXPCK_LG2(3):
|
583
|
+
return decode_fixed_packed(d, ptr, arr, val, field,
|
584
|
+
op - OP_FIXPCK_LG2(0));
|
450
585
|
case OP_VARPCK_LG2(0):
|
451
586
|
case OP_VARPCK_LG2(2):
|
452
|
-
case OP_VARPCK_LG2(3):
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
wireval elem;
|
460
|
-
ptr = decode_varint64(d, ptr, &elem.uint64_val);
|
461
|
-
decode_munge(field->descriptortype, &elem);
|
462
|
-
if (decode_reserve(d, arr, 1)) {
|
463
|
-
out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
|
464
|
-
}
|
465
|
-
arr->len++;
|
466
|
-
memcpy(out, &elem, scale);
|
467
|
-
out += scale;
|
468
|
-
}
|
469
|
-
decode_poplimit(d, ptr, saved_limit);
|
470
|
-
return ptr;
|
471
|
-
}
|
587
|
+
case OP_VARPCK_LG2(3):
|
588
|
+
return decode_varint_packed(d, ptr, arr, val, field,
|
589
|
+
op - OP_VARPCK_LG2(0));
|
590
|
+
case OP_ENUM:
|
591
|
+
return decode_enum_toarray(d, ptr, msg, arr, subs, field, val);
|
592
|
+
case OP_PACKED_ENUM:
|
593
|
+
return decode_enum_packed(d, ptr, msg, arr, subs, field, val);
|
472
594
|
default:
|
473
595
|
UPB_UNREACHABLE();
|
474
596
|
}
|
475
597
|
}
|
476
598
|
|
477
|
-
static const char
|
478
|
-
const
|
479
|
-
const
|
480
|
-
wireval
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
const
|
599
|
+
static const char* decode_tomap(upb_Decoder* d, const char* ptr,
|
600
|
+
upb_Message* msg, const upb_MiniTable_Sub* subs,
|
601
|
+
const upb_MiniTable_Field* field,
|
602
|
+
wireval* val) {
|
603
|
+
upb_Map** map_p = UPB_PTR_AT(msg, field->offset, upb_Map*);
|
604
|
+
upb_Map* map = *map_p;
|
605
|
+
upb_MapEntry ent;
|
606
|
+
const upb_MiniTable* entry = subs[field->submsg_index].submsg;
|
485
607
|
|
486
608
|
if (!map) {
|
487
609
|
/* Lazily create map. */
|
488
|
-
const
|
489
|
-
const
|
610
|
+
const upb_MiniTable_Field* key_field = &entry->fields[0];
|
611
|
+
const upb_MiniTable_Field* val_field = &entry->fields[1];
|
490
612
|
char key_size = desctype_to_mapsize[key_field->descriptortype];
|
491
613
|
char val_size = desctype_to_mapsize[val_field->descriptortype];
|
492
614
|
UPB_ASSERT(key_field->offset == 0);
|
493
|
-
UPB_ASSERT(val_field->offset == sizeof(
|
494
|
-
map =
|
615
|
+
UPB_ASSERT(val_field->offset == sizeof(upb_StringView));
|
616
|
+
map = _upb_Map_New(&d->arena, key_size, val_size);
|
495
617
|
*map_p = map;
|
496
618
|
}
|
497
619
|
|
498
620
|
/* Parse map entry. */
|
499
621
|
memset(&ent, 0, sizeof(ent));
|
500
622
|
|
501
|
-
if (entry->fields[1].descriptortype ==
|
502
|
-
entry->fields[1].descriptortype ==
|
623
|
+
if (entry->fields[1].descriptortype == kUpb_FieldType_Message ||
|
624
|
+
entry->fields[1].descriptortype == kUpb_FieldType_Group) {
|
503
625
|
/* Create proactively to handle the case where it doesn't appear. */
|
504
|
-
ent.v.val =
|
626
|
+
ent.v.val =
|
627
|
+
upb_value_ptr(_upb_Message_New(entry->subs[0].submsg, &d->arena));
|
505
628
|
}
|
506
629
|
|
507
630
|
ptr = decode_tosubmsg(d, ptr, &ent.k, subs, field, val->size);
|
508
|
-
|
631
|
+
_upb_Map_Set(map, &ent.k, map->key_size, &ent.v, map->val_size, &d->arena);
|
509
632
|
return ptr;
|
510
633
|
}
|
511
634
|
|
512
|
-
static const char
|
513
|
-
const
|
514
|
-
const
|
635
|
+
static const char* decode_tomsg(upb_Decoder* d, const char* ptr,
|
636
|
+
upb_Message* msg, const upb_MiniTable_Sub* subs,
|
637
|
+
const upb_MiniTable_Field* field, wireval* val,
|
515
638
|
int op) {
|
516
|
-
void
|
639
|
+
void* mem = UPB_PTR_AT(msg, field->offset, void);
|
517
640
|
int type = field->descriptortype;
|
518
641
|
|
642
|
+
if (UPB_UNLIKELY(op == OP_ENUM) &&
|
643
|
+
!decode_checkenum(d, ptr, msg, subs[field->submsg_index].subenum, field,
|
644
|
+
val)) {
|
645
|
+
return ptr;
|
646
|
+
}
|
647
|
+
|
519
648
|
/* Set presence if necessary. */
|
520
649
|
if (field->presence > 0) {
|
521
650
|
_upb_sethas_field(msg, field);
|
522
651
|
} else if (field->presence < 0) {
|
523
652
|
/* Oneof case */
|
524
|
-
uint32_t
|
653
|
+
uint32_t* oneof_case = _upb_oneofcase_field(msg, field);
|
525
654
|
if (op == OP_SUBMSG && *oneof_case != field->number) {
|
526
655
|
memset(mem, 0, sizeof(void*));
|
527
656
|
}
|
@@ -531,13 +660,13 @@ static const char *decode_tomsg(upb_decstate *d, const char *ptr, upb_msg *msg,
|
|
531
660
|
/* Store into message. */
|
532
661
|
switch (op) {
|
533
662
|
case OP_SUBMSG: {
|
534
|
-
|
535
|
-
|
663
|
+
upb_Message** submsgp = mem;
|
664
|
+
upb_Message* submsg = *submsgp;
|
536
665
|
if (!submsg) {
|
537
666
|
submsg = decode_newsubmsg(d, subs, field);
|
538
667
|
*submsgp = submsg;
|
539
668
|
}
|
540
|
-
if (UPB_UNLIKELY(type ==
|
669
|
+
if (UPB_UNLIKELY(type == kUpb_FieldType_Group)) {
|
541
670
|
ptr = decode_togroup(d, ptr, submsg, subs, field);
|
542
671
|
} else {
|
543
672
|
ptr = decode_tosubmsg(d, ptr, submsg, subs, field, val->size);
|
@@ -552,6 +681,7 @@ static const char *decode_tomsg(upb_decstate *d, const char *ptr, upb_msg *msg,
|
|
552
681
|
case OP_SCALAR_LG2(3):
|
553
682
|
memcpy(mem, val, 8);
|
554
683
|
break;
|
684
|
+
case OP_ENUM:
|
555
685
|
case OP_SCALAR_LG2(2):
|
556
686
|
memcpy(mem, val, 4);
|
557
687
|
break;
|
@@ -565,9 +695,27 @@ static const char *decode_tomsg(upb_decstate *d, const char *ptr, upb_msg *msg,
|
|
565
695
|
return ptr;
|
566
696
|
}
|
567
697
|
|
698
|
+
UPB_NOINLINE
|
699
|
+
const char* decode_checkrequired(upb_Decoder* d, const char* ptr,
|
700
|
+
const upb_Message* msg,
|
701
|
+
const upb_MiniTable* l) {
|
702
|
+
assert(l->required_count);
|
703
|
+
if (UPB_LIKELY((d->options & kUpb_DecodeOption_CheckRequired) == 0)) {
|
704
|
+
return ptr;
|
705
|
+
}
|
706
|
+
uint64_t msg_head;
|
707
|
+
memcpy(&msg_head, msg, 8);
|
708
|
+
msg_head = _upb_BigEndian_Swap64(msg_head);
|
709
|
+
if (upb_MiniTable_requiredmask(l) & ~msg_head) {
|
710
|
+
d->missing_required = true;
|
711
|
+
}
|
712
|
+
return ptr;
|
713
|
+
}
|
714
|
+
|
568
715
|
UPB_FORCEINLINE
|
569
|
-
static bool decode_tryfastdispatch(
|
570
|
-
|
716
|
+
static bool decode_tryfastdispatch(upb_Decoder* d, const char** ptr,
|
717
|
+
upb_Message* msg,
|
718
|
+
const upb_MiniTable* layout) {
|
571
719
|
#if UPB_FASTTABLE
|
572
720
|
if (layout && layout->table_mask != (unsigned char)-1) {
|
573
721
|
uint16_t tag = fastdecode_loadtag(*ptr);
|
@@ -579,30 +727,32 @@ static bool decode_tryfastdispatch(upb_decstate *d, const char **ptr,
|
|
579
727
|
return false;
|
580
728
|
}
|
581
729
|
|
582
|
-
static const char
|
583
|
-
|
584
|
-
|
730
|
+
static const char* decode_msgset(upb_Decoder* d, const char* ptr,
|
731
|
+
upb_Message* msg,
|
732
|
+
const upb_MiniTable* layout) {
|
733
|
+
// We create a temporary upb_MiniTable here and abuse its fields as temporary
|
585
734
|
// storage, to avoid creating lots of MessageSet-specific parsing code-paths:
|
586
735
|
// 1. We store 'layout' in item_layout.subs. We will need this later as
|
587
736
|
// a key to look up extensions for this MessageSet.
|
588
|
-
// 2. We use item_layout.fields as temporary storage to store the extension
|
737
|
+
// 2. We use item_layout.fields as temporary storage to store the extension
|
738
|
+
// we
|
589
739
|
// found when parsing the type id.
|
590
|
-
|
591
|
-
.subs = (const
|
740
|
+
upb_MiniTable item_layout = {
|
741
|
+
.subs = (const upb_MiniTable_Sub[]){{.submsg = layout}},
|
592
742
|
.fields = NULL,
|
593
743
|
.size = 0,
|
594
744
|
.field_count = 0,
|
595
|
-
.ext =
|
745
|
+
.ext = upb_ExtMode_IsMessageSet_ITEM,
|
596
746
|
.dense_below = 0,
|
597
747
|
.table_mask = -1};
|
598
748
|
return decode_group(d, ptr, msg, &item_layout, 1);
|
599
749
|
}
|
600
750
|
|
601
|
-
static const
|
602
|
-
const
|
751
|
+
static const upb_MiniTable_Field* decode_findfield(upb_Decoder* d,
|
752
|
+
const upb_MiniTable* l,
|
603
753
|
uint32_t field_number,
|
604
|
-
int
|
605
|
-
static
|
754
|
+
int* last_field_index) {
|
755
|
+
static upb_MiniTable_Field none = {0, 0, 0, 0, 0, 0};
|
606
756
|
if (l == NULL) return &none;
|
607
757
|
|
608
758
|
size_t idx = ((size_t)field_number) - 1; // 0 wraps to SIZE_MAX
|
@@ -630,22 +780,22 @@ static const upb_msglayout_field *decode_findfield(upb_decstate *d,
|
|
630
780
|
|
631
781
|
if (d->extreg) {
|
632
782
|
switch (l->ext) {
|
633
|
-
case
|
634
|
-
const
|
783
|
+
case upb_ExtMode_Extendable: {
|
784
|
+
const upb_MiniTable_Extension* ext =
|
635
785
|
_upb_extreg_get(d->extreg, l, field_number);
|
636
786
|
if (ext) return &ext->field;
|
637
787
|
break;
|
638
788
|
}
|
639
|
-
case
|
789
|
+
case upb_ExtMode_IsMessageSet:
|
640
790
|
if (field_number == _UPB_MSGSET_ITEM) {
|
641
|
-
static
|
791
|
+
static upb_MiniTable_Field item = {0, 0, 0, 0, TYPE_MSGSET_ITEM, 0};
|
642
792
|
return &item;
|
643
793
|
}
|
644
794
|
break;
|
645
|
-
case
|
795
|
+
case upb_ExtMode_IsMessageSet_ITEM:
|
646
796
|
switch (field_number) {
|
647
797
|
case _UPB_MSGSET_TYPEID: {
|
648
|
-
static
|
798
|
+
static upb_MiniTable_Field type_id = {
|
649
799
|
0, 0, 0, 0, TYPE_MSGSET_TYPE_ID, 0};
|
650
800
|
return &type_id;
|
651
801
|
}
|
@@ -667,42 +817,42 @@ static const upb_msglayout_field *decode_findfield(upb_decstate *d,
|
|
667
817
|
|
668
818
|
return &none; /* Unknown field. */
|
669
819
|
|
670
|
-
|
820
|
+
found:
|
671
821
|
UPB_ASSERT(l->fields[idx].number == field_number);
|
672
822
|
*last_field_index = idx;
|
673
823
|
return &l->fields[idx];
|
674
|
-
|
824
|
+
}
|
675
825
|
|
676
826
|
UPB_FORCEINLINE
|
677
|
-
static const char
|
678
|
-
const
|
679
|
-
int wire_type, wireval
|
827
|
+
static const char* decode_wireval(upb_Decoder* d, const char* ptr,
|
828
|
+
const upb_MiniTable_Field* field,
|
829
|
+
int wire_type, wireval* val, int* op) {
|
680
830
|
switch (wire_type) {
|
681
|
-
case
|
831
|
+
case kUpb_WireType_Varint:
|
682
832
|
ptr = decode_varint64(d, ptr, &val->uint64_val);
|
683
833
|
*op = varint_ops[field->descriptortype];
|
684
834
|
decode_munge(field->descriptortype, val);
|
685
835
|
return ptr;
|
686
|
-
case
|
836
|
+
case kUpb_WireType_32Bit:
|
687
837
|
memcpy(&val->uint32_val, ptr, 4);
|
688
|
-
val->uint32_val =
|
838
|
+
val->uint32_val = _upb_BigEndian_Swap32(val->uint32_val);
|
689
839
|
*op = OP_SCALAR_LG2(2);
|
690
840
|
if (((1 << field->descriptortype) & FIXED32_OK_MASK) == 0) {
|
691
841
|
*op = OP_UNKNOWN;
|
692
842
|
}
|
693
843
|
return ptr + 4;
|
694
|
-
case
|
844
|
+
case kUpb_WireType_64Bit:
|
695
845
|
memcpy(&val->uint64_val, ptr, 8);
|
696
|
-
val->uint64_val =
|
846
|
+
val->uint64_val = _upb_BigEndian_Swap64(val->uint64_val);
|
697
847
|
*op = OP_SCALAR_LG2(3);
|
698
848
|
if (((1 << field->descriptortype) & FIXED64_OK_MASK) == 0) {
|
699
849
|
*op = OP_UNKNOWN;
|
700
850
|
}
|
701
851
|
return ptr + 8;
|
702
|
-
case
|
852
|
+
case kUpb_WireType_Delimited: {
|
703
853
|
int ndx = field->descriptortype;
|
704
854
|
uint64_t size;
|
705
|
-
if (
|
855
|
+
if (upb_FieldMode_Get(field) == kUpb_FieldMode_Array) ndx += TYPE_COUNT;
|
706
856
|
ptr = decode_varint64(d, ptr, &size);
|
707
857
|
if (size >= INT32_MAX || ptr - d->end + (int32_t)size > d->limit) {
|
708
858
|
break; /* Length overflow. */
|
@@ -711,9 +861,9 @@ static const char *decode_wireval(upb_decstate *d, const char *ptr,
|
|
711
861
|
val->size = size;
|
712
862
|
return ptr;
|
713
863
|
}
|
714
|
-
case
|
864
|
+
case kUpb_WireType_StartGroup:
|
715
865
|
val->uint32_val = field->number;
|
716
|
-
if (field->descriptortype ==
|
866
|
+
if (field->descriptortype == kUpb_FieldType_Group) {
|
717
867
|
*op = OP_SUBMSG;
|
718
868
|
} else if (field->descriptortype == TYPE_MSGSET_ITEM) {
|
719
869
|
*op = OP_MSGSET_ITEM;
|
@@ -724,87 +874,144 @@ static const char *decode_wireval(upb_decstate *d, const char *ptr,
|
|
724
874
|
default:
|
725
875
|
break;
|
726
876
|
}
|
727
|
-
return decode_err(d);
|
877
|
+
return decode_err(d, kUpb_DecodeStatus_Malformed);
|
728
878
|
}
|
729
879
|
|
730
880
|
UPB_FORCEINLINE
|
731
|
-
static const char
|
732
|
-
const
|
733
|
-
const
|
734
|
-
wireval
|
735
|
-
const
|
881
|
+
static const char* decode_known(upb_Decoder* d, const char* ptr,
|
882
|
+
upb_Message* msg, const upb_MiniTable* layout,
|
883
|
+
const upb_MiniTable_Field* field, int op,
|
884
|
+
wireval* val) {
|
885
|
+
const upb_MiniTable_Sub* subs = layout->subs;
|
736
886
|
uint8_t mode = field->mode;
|
737
887
|
|
738
|
-
if (UPB_UNLIKELY(mode &
|
739
|
-
const
|
740
|
-
|
741
|
-
|
888
|
+
if (UPB_UNLIKELY(mode & upb_LabelFlags_IsExtension)) {
|
889
|
+
const upb_MiniTable_Extension* ext_layout =
|
890
|
+
(const upb_MiniTable_Extension*)field;
|
891
|
+
upb_Message_Extension* ext =
|
892
|
+
_upb_Message_Getorcreateext(msg, ext_layout, &d->arena);
|
893
|
+
if (UPB_UNLIKELY(!ext)) return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
742
894
|
msg = &ext->data;
|
743
895
|
subs = &ext->ext->sub;
|
744
896
|
}
|
745
897
|
|
746
|
-
switch (mode &
|
747
|
-
case
|
898
|
+
switch (mode & kUpb_FieldMode_Mask) {
|
899
|
+
case kUpb_FieldMode_Array:
|
748
900
|
return decode_toarray(d, ptr, msg, subs, field, val, op);
|
749
|
-
case
|
901
|
+
case kUpb_FieldMode_Map:
|
750
902
|
return decode_tomap(d, ptr, msg, subs, field, val);
|
751
|
-
case
|
903
|
+
case kUpb_FieldMode_Scalar:
|
752
904
|
return decode_tomsg(d, ptr, msg, subs, field, val, op);
|
753
905
|
default:
|
754
906
|
UPB_UNREACHABLE();
|
755
907
|
}
|
756
908
|
}
|
757
909
|
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
910
|
+
static const char* decode_reverse_skip_varint(const char* ptr, uint32_t val) {
|
911
|
+
uint32_t seen = 0;
|
912
|
+
do {
|
913
|
+
ptr--;
|
914
|
+
seen <<= 7;
|
915
|
+
seen |= *ptr & 0x7f;
|
916
|
+
} while (seen != val);
|
917
|
+
return ptr;
|
918
|
+
}
|
919
|
+
|
920
|
+
static const char* decode_unknown(upb_Decoder* d, const char* ptr,
|
921
|
+
upb_Message* msg, int field_number,
|
922
|
+
int wire_type, wireval val) {
|
923
|
+
if (field_number == 0) return decode_err(d, kUpb_DecodeStatus_Malformed);
|
763
924
|
|
764
|
-
|
925
|
+
// Since unknown fields are the uncommon case, we do a little extra work here
|
926
|
+
// to walk backwards through the buffer to find the field start. This frees
|
927
|
+
// up a register in the fast paths (when the field is known), which leads to
|
928
|
+
// significant speedups in benchmarks.
|
929
|
+
const char* start = ptr;
|
930
|
+
|
931
|
+
if (wire_type == kUpb_WireType_Delimited) ptr += val.size;
|
765
932
|
if (msg) {
|
766
|
-
|
767
|
-
|
933
|
+
switch (wire_type) {
|
934
|
+
case kUpb_WireType_Varint:
|
935
|
+
case kUpb_WireType_Delimited:
|
936
|
+
start--;
|
937
|
+
while (start[-1] & 0x80) start--;
|
938
|
+
break;
|
939
|
+
case kUpb_WireType_32Bit:
|
940
|
+
start -= 4;
|
941
|
+
break;
|
942
|
+
case kUpb_WireType_64Bit:
|
943
|
+
start -= 8;
|
944
|
+
break;
|
945
|
+
default:
|
946
|
+
break;
|
947
|
+
}
|
948
|
+
|
949
|
+
assert(start == d->debug_valstart);
|
950
|
+
uint32_t tag = ((uint32_t)field_number << 3) | wire_type;
|
951
|
+
start = decode_reverse_skip_varint(start, tag);
|
952
|
+
assert(start == d->debug_tagstart);
|
953
|
+
|
954
|
+
if (wire_type == kUpb_WireType_StartGroup) {
|
955
|
+
d->unknown = start;
|
768
956
|
d->unknown_msg = msg;
|
769
957
|
ptr = decode_group(d, ptr, NULL, NULL, field_number);
|
958
|
+
start = d->unknown;
|
770
959
|
d->unknown_msg = NULL;
|
771
|
-
|
960
|
+
d->unknown = NULL;
|
772
961
|
}
|
773
|
-
if (!
|
774
|
-
|
775
|
-
return decode_err(d);
|
962
|
+
if (!_upb_Message_AddUnknown(msg, start, ptr - start, &d->arena)) {
|
963
|
+
return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
776
964
|
}
|
777
|
-
} else if (wire_type ==
|
965
|
+
} else if (wire_type == kUpb_WireType_StartGroup) {
|
778
966
|
ptr = decode_group(d, ptr, NULL, NULL, field_number);
|
779
967
|
}
|
780
968
|
return ptr;
|
781
969
|
}
|
782
970
|
|
783
971
|
UPB_NOINLINE
|
784
|
-
static const char
|
785
|
-
const
|
972
|
+
static const char* decode_msg(upb_Decoder* d, const char* ptr, upb_Message* msg,
|
973
|
+
const upb_MiniTable* layout) {
|
786
974
|
int last_field_index = 0;
|
787
|
-
|
975
|
+
|
976
|
+
#if UPB_FASTTABLE
|
977
|
+
// The first time we want to skip fast dispatch, because we may have just been
|
978
|
+
// invoked by the fast parser to handle a case that it bailed on.
|
979
|
+
if (!decode_isdone(d, &ptr)) goto nofast;
|
980
|
+
#endif
|
981
|
+
|
982
|
+
while (!decode_isdone(d, &ptr)) {
|
788
983
|
uint32_t tag;
|
789
|
-
const
|
984
|
+
const upb_MiniTable_Field* field;
|
790
985
|
int field_number;
|
791
986
|
int wire_type;
|
792
|
-
const char *field_start = ptr;
|
793
987
|
wireval val;
|
794
988
|
int op;
|
795
989
|
|
990
|
+
if (decode_tryfastdispatch(d, &ptr, msg, layout)) break;
|
991
|
+
|
992
|
+
#if UPB_FASTTABLE
|
993
|
+
nofast:
|
994
|
+
#endif
|
995
|
+
|
996
|
+
#ifndef NDEBUG
|
997
|
+
d->debug_tagstart = ptr;
|
998
|
+
#endif
|
999
|
+
|
796
1000
|
UPB_ASSERT(ptr < d->limit_ptr);
|
797
1001
|
ptr = decode_tag(d, ptr, &tag);
|
798
1002
|
field_number = tag >> 3;
|
799
1003
|
wire_type = tag & 7;
|
800
1004
|
|
801
|
-
|
1005
|
+
#ifndef NDEBUG
|
1006
|
+
d->debug_valstart = ptr;
|
1007
|
+
#endif
|
802
1008
|
|
803
|
-
if (wire_type ==
|
1009
|
+
if (wire_type == kUpb_WireType_EndGroup) {
|
804
1010
|
d->end_group = field_number;
|
805
1011
|
return ptr;
|
806
1012
|
}
|
807
1013
|
|
1014
|
+
field = decode_findfield(d, layout, field_number, &last_field_index);
|
808
1015
|
ptr = decode_wireval(d, ptr, field, wire_type, &val, &op);
|
809
1016
|
|
810
1017
|
if (op >= 0) {
|
@@ -812,62 +1019,61 @@ static const char *decode_msg(upb_decstate *d, const char *ptr, upb_msg *msg,
|
|
812
1019
|
} else {
|
813
1020
|
switch (op) {
|
814
1021
|
case OP_UNKNOWN:
|
815
|
-
ptr = decode_unknown(d, ptr, msg, field_number, wire_type, val
|
816
|
-
&field_start);
|
1022
|
+
ptr = decode_unknown(d, ptr, msg, field_number, wire_type, val);
|
817
1023
|
break;
|
818
1024
|
case OP_MSGSET_ITEM:
|
819
1025
|
ptr = decode_msgset(d, ptr, msg, layout);
|
820
1026
|
break;
|
821
1027
|
case OP_MSGSET_TYPEID: {
|
822
|
-
const
|
1028
|
+
const upb_MiniTable_Extension* ext = _upb_extreg_get(
|
823
1029
|
d->extreg, layout->subs[0].submsg, val.uint64_val);
|
824
|
-
if (ext) ((
|
1030
|
+
if (ext) ((upb_MiniTable*)layout)->fields = &ext->field;
|
825
1031
|
break;
|
826
1032
|
}
|
827
1033
|
}
|
828
1034
|
}
|
829
|
-
|
830
|
-
if (decode_isdone(d, &ptr)) return ptr;
|
831
|
-
if (decode_tryfastdispatch(d, &ptr, msg, layout)) return ptr;
|
832
1035
|
}
|
1036
|
+
|
1037
|
+
return UPB_UNLIKELY(layout && layout->required_count)
|
1038
|
+
? decode_checkrequired(d, ptr, msg, layout)
|
1039
|
+
: ptr;
|
833
1040
|
}
|
834
1041
|
|
835
|
-
const char
|
836
|
-
|
837
|
-
uint64_t data) {
|
1042
|
+
const char* fastdecode_generic(struct upb_Decoder* d, const char* ptr,
|
1043
|
+
upb_Message* msg, intptr_t table,
|
1044
|
+
uint64_t hasbits, uint64_t data) {
|
838
1045
|
(void)data;
|
839
1046
|
*(uint32_t*)msg |= hasbits;
|
840
1047
|
return decode_msg(d, ptr, msg, decode_totablep(table));
|
841
1048
|
}
|
842
1049
|
|
843
|
-
static
|
844
|
-
|
1050
|
+
static upb_DecodeStatus decode_top(struct upb_Decoder* d, const char* buf,
|
1051
|
+
void* msg, const upb_MiniTable* l) {
|
845
1052
|
if (!decode_tryfastdispatch(d, &buf, msg, l)) {
|
846
1053
|
decode_msg(d, buf, msg, l);
|
847
1054
|
}
|
848
|
-
|
1055
|
+
if (d->end_group != DECODE_NOGROUP) return kUpb_DecodeStatus_Malformed;
|
1056
|
+
if (d->missing_required) return kUpb_DecodeStatus_MissingRequired;
|
1057
|
+
return kUpb_DecodeStatus_Ok;
|
849
1058
|
}
|
850
1059
|
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
1060
|
+
upb_DecodeStatus upb_Decode(const char* buf, size_t size, void* msg,
|
1061
|
+
const upb_MiniTable* l,
|
1062
|
+
const upb_ExtensionRegistry* extreg, int options,
|
1063
|
+
upb_Arena* arena) {
|
1064
|
+
upb_Decoder state;
|
856
1065
|
unsigned depth = (unsigned)options >> 16;
|
857
1066
|
|
858
|
-
if (size
|
859
|
-
return true;
|
860
|
-
} else if (size <= 16) {
|
1067
|
+
if (size <= 16) {
|
861
1068
|
memset(&state.patch, 0, 32);
|
862
|
-
memcpy(&state.patch, buf, size);
|
1069
|
+
if (size) memcpy(&state.patch, buf, size);
|
863
1070
|
buf = state.patch;
|
864
1071
|
state.end = buf + size;
|
865
1072
|
state.limit = 0;
|
866
|
-
|
1073
|
+
options &= ~kUpb_DecodeOption_AliasString; // Can't alias patch buf.
|
867
1074
|
} else {
|
868
1075
|
state.end = buf + size - 16;
|
869
1076
|
state.limit = 16;
|
870
|
-
state.alias = options & UPB_DECODE_ALIAS;
|
871
1077
|
}
|
872
1078
|
|
873
1079
|
state.extreg = extreg;
|
@@ -875,21 +1081,22 @@ bool _upb_decode(const char *buf, size_t size, void *msg,
|
|
875
1081
|
state.unknown_msg = NULL;
|
876
1082
|
state.depth = depth ? depth : 64;
|
877
1083
|
state.end_group = DECODE_NOGROUP;
|
1084
|
+
state.options = (uint16_t)options;
|
1085
|
+
state.missing_required = false;
|
878
1086
|
state.arena.head = arena->head;
|
879
1087
|
state.arena.last_size = arena->last_size;
|
880
1088
|
state.arena.cleanup_metadata = arena->cleanup_metadata;
|
881
1089
|
state.arena.parent = arena;
|
882
1090
|
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
ok = decode_top(&state, buf, msg, l);
|
1091
|
+
upb_DecodeStatus status = UPB_SETJMP(state.err);
|
1092
|
+
if (UPB_LIKELY(status == kUpb_DecodeStatus_Ok)) {
|
1093
|
+
status = decode_top(&state, buf, msg, l);
|
887
1094
|
}
|
888
1095
|
|
889
1096
|
arena->head.ptr = state.arena.head.ptr;
|
890
1097
|
arena->head.end = state.arena.head.end;
|
891
1098
|
arena->cleanup_metadata = state.arena.cleanup_metadata;
|
892
|
-
return
|
1099
|
+
return status;
|
893
1100
|
}
|
894
1101
|
|
895
1102
|
#undef OP_UNKNOWN
|