grpc 1.45.0 → 1.46.3
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 +36 -29
- data/include/grpc/impl/codegen/grpc_types.h +7 -13
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +309 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +122 -0
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.cc +1 -1
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel.cc +163 -96
- data/src/core/ext/filters/client_channel/client_channel.h +2 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +124 -581
- data/src/core/ext/filters/client_channel/health/health_check_client.h +24 -160
- data/src/core/ext/filters/client_channel/http_proxy.cc +88 -110
- data/src/core/ext/filters/client_channel/http_proxy.h +17 -0
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +182 -142
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -6
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -10
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +87 -58
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +51 -48
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +14 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +229 -284
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +92 -257
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +51 -221
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +201 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +106 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +102 -55
- data/src/core/ext/filters/client_channel/retry_filter.cc +18 -3
- data/src/core/ext/filters/client_channel/subchannel.cc +5 -5
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +544 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +214 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +127 -367
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +24 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +78 -458
- data/src/core/ext/filters/http/client/http_client_filter.h +21 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +17 -22
- data/src/core/ext/filters/http/client_authority_filter.h +6 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +9 -6
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -116
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +2 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +2 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +73 -201
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -28
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -6
- data/src/core/ext/transport/chttp2/transport/internal.h +4 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -13
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +27 -24
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +143 -63
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +37 -35
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +177 -77
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +115 -111
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +547 -207
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +49 -46
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +217 -78
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +40 -8
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +20 -2
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +55 -55
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +289 -110
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +133 -125
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +656 -267
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +24 -18
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +96 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +185 -173
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +860 -309
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +44 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +165 -40
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +72 -63
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +433 -174
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +33 -31
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +154 -52
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +89 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +460 -166
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +76 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +379 -69
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +5 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +10 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +70 -68
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +369 -131
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +94 -65
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +447 -161
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +27 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +104 -85
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +378 -113
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +43 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +58 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +18 -18
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +100 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +31 -30
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +171 -71
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +196 -95
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +7 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +53 -46
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +284 -129
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +337 -146
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +49 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +20 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +33 -32
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +205 -86
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +34 -34
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +175 -74
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +56 -52
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +370 -146
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +27 -23
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +173 -74
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +362 -341
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2056 -845
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +49 -16
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +293 -111
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +26 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +27 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +17 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +83 -36
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +7 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +46 -17
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +38 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +10 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +71 -28
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +25 -25
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -65
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +8 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +30 -12
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +42 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +173 -144
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +898 -323
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +51 -45
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +261 -116
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +80 -55
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +410 -124
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +44 -44
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +261 -122
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +47 -21
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +175 -66
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +17 -6
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +38 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +12 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +43 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +20 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +24 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +40 -16
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +37 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +81 -30
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +76 -30
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +20 -20
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +28 -10
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +17 -4
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +17 -2
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +70 -66
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +410 -162
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +80 -74
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +440 -158
- data/src/core/ext/upb-generated/google/api/http.upb.c +17 -17
- data/src/core/ext/upb-generated/google/api/http.upb.h +116 -43
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +4 -4
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +19 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +163 -162
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1157 -435
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +108 -40
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +18 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +4 -4
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +19 -7
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +15 -15
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +65 -22
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +49 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +69 -65
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +364 -149
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +8 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +20 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +150 -58
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +11 -11
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +51 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +764 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +23 -2
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +27 -6
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/validate/validate.upb.c +261 -250
- data/src/core/ext/upb-generated/validate/validate.upb.h +1836 -663
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +23 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +18 -18
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +70 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +3 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +38 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +27 -10
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +21 -8
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +10 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +71 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +16 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +12 -12
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +69 -26
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +43 -39
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +255 -103
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +4 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +19 -8
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +10 -2
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +50 -46
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +195 -185
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +129 -94
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +18 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +163 -155
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +141 -138
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +26 -20
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +738 -730
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +271 -251
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +207 -193
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/xds/certificate_provider_store.cc +8 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/xds_api.cc +20 -0
- data/src/core/ext/xds/xds_bootstrap.cc +2 -2
- data/src/core/ext/xds/xds_bootstrap.h +2 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +2 -0
- data/src/core/ext/xds/xds_certificate_provider.h +8 -0
- data/src/core/ext/xds/xds_client.cc +87 -95
- data/src/core/ext/xds/xds_client.h +13 -5
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +142 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +79 -0
- data/src/core/ext/xds/xds_common_types.cc +9 -9
- data/src/core/ext/xds/xds_common_types.h +3 -3
- data/src/core/ext/xds/xds_endpoint.cc +12 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +1 -1
- data/src/core/ext/xds/xds_listener.cc +1 -1
- data/src/core/ext/xds/xds_route_config.cc +162 -25
- data/src/core/ext/xds/xds_route_config.h +13 -10
- data/src/core/ext/xds/xds_server_config_fetcher.cc +17 -22
- data/src/core/lib/avl/avl.h +68 -5
- data/src/core/lib/channel/call_tracer.h +4 -1
- data/src/core/lib/channel/channel_args.cc +138 -59
- data/src/core/lib/channel/channel_args.h +210 -9
- data/src/core/lib/channel/channel_args_preconditioning.cc +3 -9
- data/src/core/lib/channel/channel_args_preconditioning.h +1 -2
- data/src/core/lib/channel/channel_stack.h +2 -5
- data/src/core/lib/channel/channel_stack_builder.cc +0 -65
- data/src/core/lib/channel/channel_stack_builder.h +27 -6
- data/src/core/lib/channel/channel_stack_builder_impl.cc +102 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +48 -0
- data/src/core/lib/channel/connected_channel.h +1 -0
- data/src/core/lib/channel/promise_based_filter.cc +495 -162
- data/src/core/lib/channel/promise_based_filter.h +55 -41
- data/src/core/lib/compression/compression_internal.cc +1 -7
- data/src/core/lib/debug/stats_data.cc +2 -6
- data/src/core/lib/debug/stats_data.h +18 -21
- data/src/core/lib/gpr/tls.h +1 -0
- data/src/core/lib/gprpp/bitset.h +12 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +4 -0
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +2 -0
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/status_helper.cc +18 -2
- data/src/core/lib/gprpp/time.cc +12 -0
- data/src/core/lib/gprpp/time.h +1 -1
- data/src/core/lib/http/format_request.cc +1 -2
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.cc +80 -9
- data/src/core/lib/http/parser.h +14 -1
- data/src/core/lib/iomgr/ev_posix.cc +6 -7
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/port.h +0 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +93 -35
- data/src/core/lib/iomgr/tcp_server_posix.cc +26 -17
- data/src/core/lib/json/json_util.h +3 -3
- data/src/core/lib/promise/call_push_pull.h +144 -0
- data/src/core/lib/promise/detail/status.h +2 -1
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +104 -0
- data/src/core/lib/resource_quota/api.cc +5 -30
- data/src/core/lib/resource_quota/api.h +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +8 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +9 -12
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +5 -6
- data/src/core/lib/security/context/security_context.h +8 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +6 -5
- data/src/core/lib/security/credentials/alts/alts_credentials.h +4 -0
- data/src/core/lib/security/credentials/call_creds_util.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.h +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +15 -10
- data/src/core/lib/security/credentials/composite/composite_credentials.h +9 -8
- data/src/core/lib/security/credentials/credentials.h +16 -33
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +8 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -5
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +3 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +22 -29
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +57 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +6 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +6 -6
- data/src/core/lib/security/credentials/local/local_credentials.h +4 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -9
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +14 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +8 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +8 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +6 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +49 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +42 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +66 -95
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +9 -6
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -5
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +48 -50
- data/src/core/lib/security/credentials/xds/xds_credentials.h +31 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/security_connector.h +9 -0
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -2
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +4 -2
- data/src/core/lib/security/transport/auth_filters.h +7 -7
- data/src/core/lib/security/transport/client_auth_filter.cc +28 -20
- data/src/core/lib/security/transport/secure_endpoint.cc +198 -129
- data/src/core/lib/security/transport/secure_endpoint.h +1 -1
- data/src/core/lib/security/transport/security_handshaker.cc +6 -4
- data/src/core/lib/surface/call.cc +1023 -903
- data/src/core/lib/surface/call.h +0 -14
- data/src/core/lib/surface/channel.cc +4 -3
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +2 -6
- data/src/core/lib/surface/init.cc +1 -1
- data/src/core/lib/surface/server.cc +3 -14
- data/src/core/lib/surface/server.h +1 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.cc +2 -0
- data/src/core/lib/transport/metadata_batch.h +12 -8
- data/src/core/lib/transport/transport.h +20 -5
- data/src/core/lib/transport/transport_impl.h +4 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +75 -38
- data/src/core/tsi/ssl_transport_security.h +8 -2
- data/src/core/tsi/transport_security_interface.h +2 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -0
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/decode.c +32 -16
- data/third_party/upb/upb/def.c +118 -55
- data/third_party/upb/upb/def.h +12 -3
- data/third_party/upb/upb/encode.c +14 -8
- data/third_party/upb/upb/json_encode.c +776 -0
- data/third_party/upb/upb/json_encode.h +62 -0
- data/third_party/upb/upb/msg.c +5 -7
- data/third_party/upb/upb/msg.h +1 -2
- data/third_party/upb/upb/msg_internal.h +49 -36
- data/third_party/upb/upb/port_def.inc +8 -0
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/table.c +10 -6
- data/third_party/upb/upb/table_internal.h +2 -0
- data/third_party/upb/upb/upb.h +41 -11
- data/third_party/zlib/crc32.c +966 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +78 -30
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +5 -3
- data/third_party/zlib/gzread.c +5 -7
- data/third_party/zlib/gzwrite.c +25 -13
- data/third_party/zlib/infback.c +2 -1
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +39 -8
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/trees.c +27 -48
- data/third_party/zlib/zlib.h +123 -100
- data/third_party/zlib/zutil.c +2 -2
- data/third_party/zlib/zutil.h +12 -9
- metadata +66 -45
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -201
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -566
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -26
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1657
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/is_epollexclusive_available.h +0 -36
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
@@ -385,6 +385,18 @@ static char* encode_varint32(uint32_t val, char* ptr) {
|
|
385
385
|
return ptr;
|
386
386
|
}
|
387
387
|
|
388
|
+
static void upb_Decode_AddUnknownVarints(upb_Decoder* d, upb_Message* msg,
|
389
|
+
uint32_t val1, uint32_t val2) {
|
390
|
+
char buf[20];
|
391
|
+
char* end = buf;
|
392
|
+
end = encode_varint32(val1, end);
|
393
|
+
end = encode_varint32(val2, end);
|
394
|
+
|
395
|
+
if (!_upb_Message_AddUnknown(msg, buf, end - buf, &d->arena)) {
|
396
|
+
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
397
|
+
}
|
398
|
+
}
|
399
|
+
|
388
400
|
UPB_NOINLINE
|
389
401
|
static bool decode_checkenum_slow(upb_Decoder* d, const char* ptr,
|
390
402
|
upb_Message* msg, const upb_MiniTable_Enum* e,
|
@@ -398,17 +410,9 @@ static bool decode_checkenum_slow(upb_Decoder* d, const char* ptr,
|
|
398
410
|
|
399
411
|
// Unrecognized enum goes into unknown fields.
|
400
412
|
// 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;
|
413
|
+
// just re-encode the tag and value here.
|
404
414
|
uint32_t tag = ((uint32_t)field->number << 3) | kUpb_WireType_Varint;
|
405
|
-
|
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
|
-
|
415
|
+
upb_Decode_AddUnknownVarints(d, msg, tag, v);
|
412
416
|
return false;
|
413
417
|
}
|
414
418
|
|
@@ -627,8 +631,20 @@ static const char* decode_tomap(upb_Decoder* d, const char* ptr,
|
|
627
631
|
upb_value_ptr(_upb_Message_New(entry->subs[0].submsg, &d->arena));
|
628
632
|
}
|
629
633
|
|
634
|
+
const char* start = ptr;
|
630
635
|
ptr = decode_tosubmsg(d, ptr, &ent.k, subs, field, val->size);
|
631
|
-
|
636
|
+
// check if ent had any unknown fields
|
637
|
+
size_t size;
|
638
|
+
upb_Message_GetUnknown(&ent.k, &size);
|
639
|
+
if (size != 0) {
|
640
|
+
uint32_t tag = ((uint32_t)field->number << 3) | kUpb_WireType_Delimited;
|
641
|
+
upb_Decode_AddUnknownVarints(d, msg, tag, (uint32_t)(ptr - start));
|
642
|
+
if (!_upb_Message_AddUnknown(msg, start, ptr - start, &d->arena)) {
|
643
|
+
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
644
|
+
}
|
645
|
+
} else {
|
646
|
+
_upb_Map_Set(map, &ent.k, map->key_size, &ent.v, map->val_size, &d->arena);
|
647
|
+
}
|
632
648
|
return ptr;
|
633
649
|
}
|
634
650
|
|
@@ -742,7 +758,7 @@ static const char* decode_msgset(upb_Decoder* d, const char* ptr,
|
|
742
758
|
.fields = NULL,
|
743
759
|
.size = 0,
|
744
760
|
.field_count = 0,
|
745
|
-
.ext =
|
761
|
+
.ext = kUpb_ExtMode_IsMessageSet_ITEM,
|
746
762
|
.dense_below = 0,
|
747
763
|
.table_mask = -1};
|
748
764
|
return decode_group(d, ptr, msg, &item_layout, 1);
|
@@ -780,19 +796,19 @@ static const upb_MiniTable_Field* decode_findfield(upb_Decoder* d,
|
|
780
796
|
|
781
797
|
if (d->extreg) {
|
782
798
|
switch (l->ext) {
|
783
|
-
case
|
799
|
+
case kUpb_ExtMode_Extendable: {
|
784
800
|
const upb_MiniTable_Extension* ext =
|
785
801
|
_upb_extreg_get(d->extreg, l, field_number);
|
786
802
|
if (ext) return &ext->field;
|
787
803
|
break;
|
788
804
|
}
|
789
|
-
case
|
805
|
+
case kUpb_ExtMode_IsMessageSet:
|
790
806
|
if (field_number == _UPB_MSGSET_ITEM) {
|
791
807
|
static upb_MiniTable_Field item = {0, 0, 0, 0, TYPE_MSGSET_ITEM, 0};
|
792
808
|
return &item;
|
793
809
|
}
|
794
810
|
break;
|
795
|
-
case
|
811
|
+
case kUpb_ExtMode_IsMessageSet_ITEM:
|
796
812
|
switch (field_number) {
|
797
813
|
case _UPB_MSGSET_TYPEID: {
|
798
814
|
static upb_MiniTable_Field type_id = {
|
@@ -885,7 +901,7 @@ static const char* decode_known(upb_Decoder* d, const char* ptr,
|
|
885
901
|
const upb_MiniTable_Sub* subs = layout->subs;
|
886
902
|
uint8_t mode = field->mode;
|
887
903
|
|
888
|
-
if (UPB_UNLIKELY(mode &
|
904
|
+
if (UPB_UNLIKELY(mode & kUpb_LabelFlags_IsExtension)) {
|
889
905
|
const upb_MiniTable_Extension* ext_layout =
|
890
906
|
(const upb_MiniTable_Extension*)field;
|
891
907
|
upb_Message_Extension* ext =
|
data/third_party/upb/upb/def.c
CHANGED
@@ -86,6 +86,9 @@ struct upb_FieldDef {
|
|
86
86
|
bool has_json_name_;
|
87
87
|
upb_FieldType type_;
|
88
88
|
upb_Label label_;
|
89
|
+
#if UINTPTR_MAX == 0xffffffff
|
90
|
+
uint32_t padding; // Increase size to a multiple of 8.
|
91
|
+
#endif
|
89
92
|
};
|
90
93
|
|
91
94
|
struct upb_ExtensionRange {
|
@@ -106,8 +109,8 @@ struct upb_MessageDef {
|
|
106
109
|
upb_strtable ntof;
|
107
110
|
|
108
111
|
/* All nested defs.
|
109
|
-
* MEM: We could save some space here by putting nested defs in a
|
110
|
-
* region and calculating counts from
|
112
|
+
* MEM: We could save some space here by putting nested defs in a contiguous
|
113
|
+
* region and calculating counts from offsets or vice-versa. */
|
111
114
|
const upb_FieldDef* fields;
|
112
115
|
const upb_OneofDef* oneofs;
|
113
116
|
const upb_ExtensionRange* ext_ranges;
|
@@ -123,6 +126,9 @@ struct upb_MessageDef {
|
|
123
126
|
int nested_ext_count;
|
124
127
|
bool in_message_set;
|
125
128
|
upb_WellKnown well_known_type;
|
129
|
+
#if UINTPTR_MAX == 0xffffffff
|
130
|
+
uint32_t padding; // Increase size to a multiple of 8.
|
131
|
+
#endif
|
126
132
|
};
|
127
133
|
|
128
134
|
struct upb_EnumDef {
|
@@ -136,6 +142,9 @@ struct upb_EnumDef {
|
|
136
142
|
const upb_EnumValueDef* values;
|
137
143
|
int value_count;
|
138
144
|
int32_t defaultval;
|
145
|
+
#if UINTPTR_MAX == 0xffffffff
|
146
|
+
uint32_t padding; // Increase size to a multiple of 8.
|
147
|
+
#endif
|
139
148
|
};
|
140
149
|
|
141
150
|
struct upb_EnumValueDef {
|
@@ -154,6 +163,9 @@ struct upb_OneofDef {
|
|
154
163
|
const upb_FieldDef** fields;
|
155
164
|
upb_strtable ntof;
|
156
165
|
upb_inttable itof;
|
166
|
+
#if UINTPTR_MAX == 0xffffffff
|
167
|
+
uint32_t padding; // Increase size to a multiple of 8.
|
168
|
+
#endif
|
157
169
|
};
|
158
170
|
|
159
171
|
struct upb_FileDef {
|
@@ -188,6 +200,7 @@ struct upb_MethodDef {
|
|
188
200
|
const char* full_name;
|
189
201
|
const upb_MessageDef* input_type;
|
190
202
|
const upb_MessageDef* output_type;
|
203
|
+
int index;
|
191
204
|
bool client_streaming;
|
192
205
|
bool server_streaming;
|
193
206
|
};
|
@@ -246,6 +259,20 @@ static const void* unpack_def(upb_value v, upb_deftype_t type) {
|
|
246
259
|
}
|
247
260
|
|
248
261
|
static upb_value pack_def(const void* ptr, upb_deftype_t type) {
|
262
|
+
// Our 3-bit pointer tagging requires all pointers to be multiples of 8.
|
263
|
+
// The arena will always yield 8-byte-aligned addresses, however we put
|
264
|
+
// the defs into arrays. For each element in the array to be 8-byte-aligned,
|
265
|
+
// the sizes of each def type must also be a multiple of 8.
|
266
|
+
//
|
267
|
+
// If any of these asserts fail, we need to add or remove padding on 32-bit
|
268
|
+
// machines (64-bit machines will have 8-byte alignment already due to
|
269
|
+
// pointers, which all of these structs have).
|
270
|
+
UPB_ASSERT((sizeof(upb_FieldDef) & UPB_DEFTYPE_MASK) == 0);
|
271
|
+
UPB_ASSERT((sizeof(upb_MessageDef) & UPB_DEFTYPE_MASK) == 0);
|
272
|
+
UPB_ASSERT((sizeof(upb_EnumDef) & UPB_DEFTYPE_MASK) == 0);
|
273
|
+
UPB_ASSERT((sizeof(upb_EnumValueDef) & UPB_DEFTYPE_MASK) == 0);
|
274
|
+
UPB_ASSERT((sizeof(upb_ServiceDef) & UPB_DEFTYPE_MASK) == 0);
|
275
|
+
UPB_ASSERT((sizeof(upb_OneofDef) & UPB_DEFTYPE_MASK) == 0);
|
249
276
|
uintptr_t num = (uintptr_t)ptr;
|
250
277
|
UPB_ASSERT((num & UPB_DEFTYPE_MASK) == 0);
|
251
278
|
num |= type;
|
@@ -980,6 +1007,8 @@ const char* upb_MethodDef_FullName(const upb_MethodDef* m) {
|
|
980
1007
|
return m->full_name;
|
981
1008
|
}
|
982
1009
|
|
1010
|
+
int upb_MethodDef_Index(const upb_MethodDef* m) { return m->index; }
|
1011
|
+
|
983
1012
|
const char* upb_MethodDef_Name(const upb_MethodDef* m) {
|
984
1013
|
return shortdefname(m->full_name);
|
985
1014
|
}
|
@@ -1384,7 +1413,12 @@ static uint8_t map_descriptortype(const upb_FieldDef* f) {
|
|
1384
1413
|
if (type == kUpb_FieldType_String && f->file->syntax == kUpb_Syntax_Proto2) {
|
1385
1414
|
return kUpb_FieldType_Bytes;
|
1386
1415
|
} else if (type == kUpb_FieldType_Enum &&
|
1387
|
-
f->sub.enumdef->file->syntax == kUpb_Syntax_Proto3
|
1416
|
+
(f->sub.enumdef->file->syntax == kUpb_Syntax_Proto3 ||
|
1417
|
+
UPB_TREAT_PROTO2_ENUMS_LIKE_PROTO3 ||
|
1418
|
+
// TODO(https://github.com/protocolbuffers/upb/issues/541):
|
1419
|
+
// fix map enum values to check for unknown enum values and put
|
1420
|
+
// them in the unknown field set.
|
1421
|
+
upb_MessageDef_IsMapEntry(upb_FieldDef_ContainingType(f)))) {
|
1388
1422
|
return kUpb_FieldType_Int32;
|
1389
1423
|
}
|
1390
1424
|
return type;
|
@@ -1397,43 +1431,43 @@ static void fill_fieldlayout(upb_MiniTable_Field* field,
|
|
1397
1431
|
|
1398
1432
|
if (upb_FieldDef_IsMap(f)) {
|
1399
1433
|
field->mode =
|
1400
|
-
kUpb_FieldMode_Map | (
|
1434
|
+
kUpb_FieldMode_Map | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift);
|
1401
1435
|
} else if (upb_FieldDef_IsRepeated(f)) {
|
1402
1436
|
field->mode =
|
1403
|
-
kUpb_FieldMode_Array | (
|
1437
|
+
kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift);
|
1404
1438
|
} else {
|
1405
1439
|
/* Maps descriptor type -> elem_size_lg2. */
|
1406
1440
|
static const uint8_t sizes[] = {
|
1407
|
-
-1,
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1412
|
-
|
1413
|
-
|
1414
|
-
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1441
|
+
-1, /* invalid descriptor type */
|
1442
|
+
kUpb_FieldRep_8Byte, /* DOUBLE */
|
1443
|
+
kUpb_FieldRep_4Byte, /* FLOAT */
|
1444
|
+
kUpb_FieldRep_8Byte, /* INT64 */
|
1445
|
+
kUpb_FieldRep_8Byte, /* UINT64 */
|
1446
|
+
kUpb_FieldRep_4Byte, /* INT32 */
|
1447
|
+
kUpb_FieldRep_8Byte, /* FIXED64 */
|
1448
|
+
kUpb_FieldRep_4Byte, /* FIXED32 */
|
1449
|
+
kUpb_FieldRep_1Byte, /* BOOL */
|
1450
|
+
kUpb_FieldRep_StringView, /* STRING */
|
1451
|
+
kUpb_FieldRep_Pointer, /* GROUP */
|
1452
|
+
kUpb_FieldRep_Pointer, /* MESSAGE */
|
1453
|
+
kUpb_FieldRep_StringView, /* BYTES */
|
1454
|
+
kUpb_FieldRep_4Byte, /* UINT32 */
|
1455
|
+
kUpb_FieldRep_4Byte, /* ENUM */
|
1456
|
+
kUpb_FieldRep_4Byte, /* SFIXED32 */
|
1457
|
+
kUpb_FieldRep_8Byte, /* SFIXED64 */
|
1458
|
+
kUpb_FieldRep_4Byte, /* SINT32 */
|
1459
|
+
kUpb_FieldRep_8Byte, /* SINT64 */
|
1426
1460
|
};
|
1427
1461
|
field->mode = kUpb_FieldMode_Scalar |
|
1428
|
-
(sizes[field->descriptortype] <<
|
1462
|
+
(sizes[field->descriptortype] << kUpb_FieldRep_Shift);
|
1429
1463
|
}
|
1430
1464
|
|
1431
1465
|
if (upb_FieldDef_IsPacked(f)) {
|
1432
|
-
field->mode |=
|
1466
|
+
field->mode |= kUpb_LabelFlags_IsPacked;
|
1433
1467
|
}
|
1434
1468
|
|
1435
1469
|
if (upb_FieldDef_IsExtension(f)) {
|
1436
|
-
field->mode |=
|
1470
|
+
field->mode |= kUpb_LabelFlags_IsExtension;
|
1437
1471
|
}
|
1438
1472
|
}
|
1439
1473
|
|
@@ -1471,12 +1505,12 @@ static void make_layout(symtab_addctx* ctx, const upb_MessageDef* m) {
|
|
1471
1505
|
|
1472
1506
|
if (upb_MessageDef_ExtensionRangeCount(m) > 0) {
|
1473
1507
|
if (google_protobuf_MessageOptions_message_set_wire_format(m->opts)) {
|
1474
|
-
l->ext =
|
1508
|
+
l->ext = kUpb_ExtMode_IsMessageSet;
|
1475
1509
|
} else {
|
1476
|
-
l->ext =
|
1510
|
+
l->ext = kUpb_ExtMode_Extendable;
|
1477
1511
|
}
|
1478
1512
|
} else {
|
1479
|
-
l->ext =
|
1513
|
+
l->ext = kUpb_ExtMode_NonExtendable;
|
1480
1514
|
}
|
1481
1515
|
|
1482
1516
|
/* TODO(haberman): initialize fast tables so that reflection-based parsing
|
@@ -1551,11 +1585,11 @@ static void make_layout(symtab_addctx* ctx, const upb_MessageDef* m) {
|
|
1551
1585
|
|
1552
1586
|
fill_fieldlayout(field, f);
|
1553
1587
|
|
1554
|
-
if (
|
1588
|
+
if (field->descriptortype == kUpb_FieldType_Message ||
|
1589
|
+
field->descriptortype == kUpb_FieldType_Group) {
|
1555
1590
|
field->submsg_index = sublayout_count++;
|
1556
1591
|
subs[field->submsg_index].submsg = upb_FieldDef_MessageSubDef(f)->layout;
|
1557
|
-
} else if (
|
1558
|
-
f->file->syntax == kUpb_Syntax_Proto2) {
|
1592
|
+
} else if (field->descriptortype == kUpb_FieldType_Enum) {
|
1559
1593
|
field->submsg_index = sublayout_count++;
|
1560
1594
|
subs[field->submsg_index].subenum = upb_FieldDef_EnumSubDef(f)->layout;
|
1561
1595
|
UPB_ASSERT(subs[field->submsg_index].subenum);
|
@@ -1601,6 +1635,10 @@ static void make_layout(symtab_addctx* ctx, const upb_MessageDef* m) {
|
|
1601
1635
|
|
1602
1636
|
if (upb_OneofDef_IsSynthetic(o)) continue;
|
1603
1637
|
|
1638
|
+
if (o->field_count == 0) {
|
1639
|
+
symtab_errf(ctx, "Oneof must have at least one field (%s)", o->full_name);
|
1640
|
+
}
|
1641
|
+
|
1604
1642
|
/* Calculate field size: the max of all field sizes. */
|
1605
1643
|
for (int j = 0; j < o->field_count; j++) {
|
1606
1644
|
const upb_FieldDef* f = o->fields[j];
|
@@ -1623,7 +1661,10 @@ static void make_layout(symtab_addctx* ctx, const upb_MessageDef* m) {
|
|
1623
1661
|
l->size = UPB_ALIGN_UP(l->size, 8);
|
1624
1662
|
|
1625
1663
|
/* Sort fields by number. */
|
1626
|
-
|
1664
|
+
if (fields) {
|
1665
|
+
qsort(fields, upb_MessageDef_numfields(m), sizeof(*fields),
|
1666
|
+
field_number_cmp);
|
1667
|
+
}
|
1627
1668
|
assign_layout_indices(m, l, fields);
|
1628
1669
|
}
|
1629
1670
|
|
@@ -1784,8 +1825,8 @@ static const void* symtab_resolveany(symtab_addctx* ctx,
|
|
1784
1825
|
}
|
1785
1826
|
} else {
|
1786
1827
|
/* Remove components from base until we find an entry or run out. */
|
1787
|
-
size_t baselen = strlen(base);
|
1788
|
-
char* tmp = malloc(sym.size +
|
1828
|
+
size_t baselen = base ? strlen(base) : 0;
|
1829
|
+
char* tmp = malloc(sym.size + baselen + 1);
|
1789
1830
|
while (1) {
|
1790
1831
|
char* p = tmp;
|
1791
1832
|
if (baselen) {
|
@@ -1821,10 +1862,10 @@ static const void* symtab_resolve(symtab_addctx* ctx, const char* from_name_dbg,
|
|
1821
1862
|
const void* ret =
|
1822
1863
|
symtab_resolveany(ctx, from_name_dbg, base, sym, &found_type);
|
1823
1864
|
if (ret && found_type != type) {
|
1824
|
-
symtab_errf(
|
1825
|
-
|
1826
|
-
|
1827
|
-
|
1865
|
+
symtab_errf(ctx,
|
1866
|
+
"type mismatch when resolving %s: couldn't find "
|
1867
|
+
"name " UPB_STRINGVIEW_FORMAT " with type=%d",
|
1868
|
+
from_name_dbg, UPB_STRINGVIEW_ARGS(sym), (int)type);
|
1828
1869
|
}
|
1829
1870
|
return ret;
|
1830
1871
|
}
|
@@ -1844,6 +1885,11 @@ static void create_oneofdef(
|
|
1844
1885
|
|
1845
1886
|
SET_OPTIONS(o->opts, OneofDescriptorProto, OneofOptions, oneof_proto);
|
1846
1887
|
|
1888
|
+
upb_value existing_v;
|
1889
|
+
if (upb_strtable_lookup2(&m->ntof, name.data, name.size, &existing_v)) {
|
1890
|
+
symtab_errf(ctx, "duplicate oneof name (%s)", o->full_name);
|
1891
|
+
}
|
1892
|
+
|
1847
1893
|
v = pack_def(o, UPB_DEFTYPE_ONEOF);
|
1848
1894
|
CHK_OOM(upb_strtable_insert(&m->ntof, name.data, name.size, v, ctx->arena));
|
1849
1895
|
|
@@ -2153,7 +2199,7 @@ static void create_fielddef(
|
|
2153
2199
|
f->file = ctx->file; /* Must happen prior to symtab_add(). */
|
2154
2200
|
|
2155
2201
|
if (!google_protobuf_FieldDescriptorProto_has_name(field_proto)) {
|
2156
|
-
symtab_errf(ctx, "field has no name
|
2202
|
+
symtab_errf(ctx, "field has no name");
|
2157
2203
|
}
|
2158
2204
|
|
2159
2205
|
name = google_protobuf_FieldDescriptorProto_name(field_proto);
|
@@ -2370,6 +2416,7 @@ static void create_service(
|
|
2370
2416
|
|
2371
2417
|
m->service = s;
|
2372
2418
|
m->full_name = makefullname(ctx, s->full_name, name);
|
2419
|
+
m->index = i;
|
2373
2420
|
m->client_streaming =
|
2374
2421
|
google_protobuf_MethodDescriptorProto_client_streaming(method_proto);
|
2375
2422
|
m->server_streaming =
|
@@ -2397,6 +2444,12 @@ static int count_bits_debug(uint64_t x) {
|
|
2397
2444
|
return n;
|
2398
2445
|
}
|
2399
2446
|
|
2447
|
+
static int compare_int32(const void* a_ptr, const void* b_ptr) {
|
2448
|
+
int32_t a = *(int32_t*)a_ptr;
|
2449
|
+
int32_t b = *(int32_t*)b_ptr;
|
2450
|
+
return a < b ? -1 : (a == b ? 0 : 1);
|
2451
|
+
}
|
2452
|
+
|
2400
2453
|
upb_MiniTable_Enum* create_enumlayout(symtab_addctx* ctx,
|
2401
2454
|
const upb_EnumDef* e) {
|
2402
2455
|
int n = 0;
|
@@ -2405,7 +2458,7 @@ upb_MiniTable_Enum* create_enumlayout(symtab_addctx* ctx,
|
|
2405
2458
|
for (int i = 0; i < e->value_count; i++) {
|
2406
2459
|
uint32_t val = (uint32_t)e->values[i].number;
|
2407
2460
|
if (val < 64) {
|
2408
|
-
mask |=
|
2461
|
+
mask |= 1ULL << val;
|
2409
2462
|
} else {
|
2410
2463
|
n++;
|
2411
2464
|
}
|
@@ -2427,6 +2480,17 @@ upb_MiniTable_Enum* create_enumlayout(symtab_addctx* ctx,
|
|
2427
2480
|
UPB_ASSERT(p == values + n);
|
2428
2481
|
}
|
2429
2482
|
|
2483
|
+
// Enums can have duplicate values; we must sort+uniq them.
|
2484
|
+
if (values) qsort(values, n, sizeof(*values), &compare_int32);
|
2485
|
+
|
2486
|
+
int dst = 0;
|
2487
|
+
for (int i = 0; i < n; dst++) {
|
2488
|
+
int32_t val = values[i];
|
2489
|
+
while (i < n && values[i] == val) i++; // Skip duplicates.
|
2490
|
+
values[dst] = val;
|
2491
|
+
}
|
2492
|
+
n = dst;
|
2493
|
+
|
2430
2494
|
UPB_ASSERT(upb_inttable_count(&e->iton) == n + count_bits_debug(mask));
|
2431
2495
|
|
2432
2496
|
upb_MiniTable_Enum* layout = symtab_alloc(ctx, sizeof(*layout));
|
@@ -2510,7 +2574,7 @@ static void create_enumdef(
|
|
2510
2574
|
if (ctx->layout) {
|
2511
2575
|
UPB_ASSERT(ctx->enum_count < ctx->layout->enum_count);
|
2512
2576
|
e->layout = ctx->layout->enums[ctx->enum_count++];
|
2513
|
-
UPB_ASSERT(
|
2577
|
+
UPB_ASSERT(upb_inttable_count(&e->iton) ==
|
2514
2578
|
e->layout->value_count + count_bits_debug(e->layout->mask));
|
2515
2579
|
} else {
|
2516
2580
|
e->layout = create_enumlayout(ctx, e);
|
@@ -2781,15 +2845,10 @@ static void resolve_msgdef(symtab_addctx* ctx, upb_MessageDef* m) {
|
|
2781
2845
|
resolve_fielddef(ctx, m->full_name, (upb_FieldDef*)&m->fields[i]);
|
2782
2846
|
}
|
2783
2847
|
|
2784
|
-
for (int i = 0; i < m->nested_ext_count; i++) {
|
2785
|
-
resolve_fielddef(ctx, m->full_name, (upb_FieldDef*)&m->nested_exts[i]);
|
2786
|
-
}
|
2787
|
-
|
2788
|
-
if (!ctx->layout) make_layout(ctx, m);
|
2789
|
-
|
2790
2848
|
m->in_message_set = false;
|
2791
|
-
|
2792
|
-
|
2849
|
+
for (int i = 0; i < m->nested_ext_count; i++) {
|
2850
|
+
upb_FieldDef* ext = (upb_FieldDef*)&m->nested_exts[i];
|
2851
|
+
resolve_fielddef(ctx, m->full_name, ext);
|
2793
2852
|
if (ext->type_ == kUpb_FieldType_Message &&
|
2794
2853
|
ext->label_ == kUpb_Label_Optional && ext->sub.msgdef == m &&
|
2795
2854
|
google_protobuf_MessageOptions_message_set_wire_format(
|
@@ -2798,6 +2857,8 @@ static void resolve_msgdef(symtab_addctx* ctx, upb_MessageDef* m) {
|
|
2798
2857
|
}
|
2799
2858
|
}
|
2800
2859
|
|
2860
|
+
if (!ctx->layout) make_layout(ctx, m);
|
2861
|
+
|
2801
2862
|
for (int i = 0; i < m->nested_msg_count; i++) {
|
2802
2863
|
resolve_msgdef(ctx, (upb_MessageDef*)&m->nested_msgs[i]);
|
2803
2864
|
}
|
@@ -2929,7 +2990,7 @@ static void build_filedef(
|
|
2929
2990
|
int32_t* mutable_weak_deps = (int32_t*)file->weak_deps;
|
2930
2991
|
for (i = 0; i < n; i++) {
|
2931
2992
|
if (weak_deps[i] >= file->dep_count) {
|
2932
|
-
symtab_errf(ctx, "
|
2993
|
+
symtab_errf(ctx, "weak_dep %d is out of range", (int)weak_deps[i]);
|
2933
2994
|
}
|
2934
2995
|
mutable_weak_deps[i] = weak_deps[i];
|
2935
2996
|
}
|
@@ -3085,7 +3146,8 @@ const upb_FileDef* upb_DefPool_AddFile(
|
|
3085
3146
|
/* Include here since we want most of this file to be stdio-free. */
|
3086
3147
|
#include <stdio.h>
|
3087
3148
|
|
3088
|
-
bool
|
3149
|
+
bool _upb_DefPool_LoadDefInitEx(upb_DefPool* s, const _upb_DefPool_Init* init,
|
3150
|
+
bool rebuild_minitable) {
|
3089
3151
|
/* Since this function should never fail (it would indicate a bug in upb) we
|
3090
3152
|
* print errors to stderr instead of returning error status to the user. */
|
3091
3153
|
_upb_DefPool_Init** deps = init->deps;
|
@@ -3102,7 +3164,7 @@ bool _upb_DefPool_LoadDefInit(upb_DefPool* s, const _upb_DefPool_Init* init) {
|
|
3102
3164
|
arena = upb_Arena_New();
|
3103
3165
|
|
3104
3166
|
for (; *deps; deps++) {
|
3105
|
-
if (!
|
3167
|
+
if (!_upb_DefPool_LoadDefInitEx(s, *deps, rebuild_minitable)) goto err;
|
3106
3168
|
}
|
3107
3169
|
|
3108
3170
|
file = google_protobuf_FileDescriptorProto_parse_ex(
|
@@ -3119,7 +3181,8 @@ bool _upb_DefPool_LoadDefInit(upb_DefPool* s, const _upb_DefPool_Init* init) {
|
|
3119
3181
|
goto err;
|
3120
3182
|
}
|
3121
3183
|
|
3122
|
-
|
3184
|
+
const upb_MiniTable_File* mt = rebuild_minitable ? NULL : init->layout;
|
3185
|
+
if (!_upb_DefPool_AddFile(s, file, mt, &status)) {
|
3123
3186
|
goto err;
|
3124
3187
|
}
|
3125
3188
|
|
data/third_party/upb/upb/def.h
CHANGED
@@ -164,11 +164,11 @@ const upb_FieldDef* upb_OneofDef_LookupNumber(const upb_OneofDef* o,
|
|
164
164
|
#define kUpb_Any_TypeFieldNumber 1
|
165
165
|
#define kUpb_Any_ValueFieldNumber 2
|
166
166
|
|
167
|
-
/* Well-known field tag numbers for
|
167
|
+
/* Well-known field tag numbers for duration messages. */
|
168
168
|
#define kUpb_Duration_SecondsFieldNumber 1
|
169
169
|
#define kUpb_Duration_NanosFieldNumber 2
|
170
170
|
|
171
|
-
/* Well-known field tag numbers for
|
171
|
+
/* Well-known field tag numbers for timestamp messages. */
|
172
172
|
#define kUpb_Timestamp_SecondsFieldNumber 1
|
173
173
|
#define kUpb_Timestamp_NanosFieldNumber 2
|
174
174
|
|
@@ -317,6 +317,7 @@ const google_protobuf_MethodOptions* upb_MethodDef_Options(
|
|
317
317
|
const upb_MethodDef* m);
|
318
318
|
bool upb_MethodDef_HasOptions(const upb_MethodDef* m);
|
319
319
|
const char* upb_MethodDef_FullName(const upb_MethodDef* m);
|
320
|
+
int upb_MethodDef_Index(const upb_MethodDef* m);
|
320
321
|
const char* upb_MethodDef_Name(const upb_MethodDef* m);
|
321
322
|
const upb_ServiceDef* upb_MethodDef_Service(const upb_MethodDef* m);
|
322
323
|
const upb_MessageDef* upb_MethodDef_InputType(const upb_MethodDef* m);
|
@@ -389,7 +390,15 @@ typedef struct _upb_DefPool_Init {
|
|
389
390
|
upb_StringView descriptor; /* Serialized descriptor. */
|
390
391
|
} _upb_DefPool_Init;
|
391
392
|
|
392
|
-
|
393
|
+
// Should only be directly called by tests. This variant lets us suppress
|
394
|
+
// the use of compiled-in tables, forcing a rebuild of the tables at runtime.
|
395
|
+
bool _upb_DefPool_LoadDefInitEx(upb_DefPool* s, const _upb_DefPool_Init* init,
|
396
|
+
bool rebuild_minitable);
|
397
|
+
|
398
|
+
UPB_INLINE bool _upb_DefPool_LoadDefInit(upb_DefPool* s,
|
399
|
+
const _upb_DefPool_Init* init) {
|
400
|
+
return _upb_DefPool_LoadDefInitEx(s, init, false);
|
401
|
+
}
|
393
402
|
|
394
403
|
#include "upb/port_undef.inc"
|
395
404
|
|
@@ -288,7 +288,7 @@ static void encode_array(upb_encstate* e, const upb_Message* msg,
|
|
288
288
|
const upb_MiniTable_Sub* subs,
|
289
289
|
const upb_MiniTable_Field* f) {
|
290
290
|
const upb_Array* arr = *UPB_PTR_AT(msg, f->offset, upb_Array*);
|
291
|
-
bool packed = f->mode &
|
291
|
+
bool packed = f->mode & kUpb_LabelFlags_IsPacked;
|
292
292
|
size_t pre_len = e->limit - e->ptr;
|
293
293
|
|
294
294
|
if (arr == NULL || arr->len == 0) {
|
@@ -442,23 +442,29 @@ static bool encode_shouldencode(upb_encstate* e, const upb_Message* msg,
|
|
442
442
|
if (f->presence == 0) {
|
443
443
|
/* Proto3 presence or map/array. */
|
444
444
|
const void* mem = UPB_PTR_AT(msg, f->offset, void);
|
445
|
-
switch (f->mode >>
|
446
|
-
case
|
445
|
+
switch (f->mode >> kUpb_FieldRep_Shift) {
|
446
|
+
case kUpb_FieldRep_1Byte: {
|
447
447
|
char ch;
|
448
448
|
memcpy(&ch, mem, 1);
|
449
449
|
return ch != 0;
|
450
450
|
}
|
451
|
-
|
451
|
+
#if UINTPTR_MAX == 0xffffffff
|
452
|
+
case kUpb_FieldRep_Pointer:
|
453
|
+
#endif
|
454
|
+
case kUpb_FieldRep_4Byte: {
|
452
455
|
uint32_t u32;
|
453
456
|
memcpy(&u32, mem, 4);
|
454
457
|
return u32 != 0;
|
455
458
|
}
|
456
|
-
|
459
|
+
#if UINTPTR_MAX != 0xffffffff
|
460
|
+
case kUpb_FieldRep_Pointer:
|
461
|
+
#endif
|
462
|
+
case kUpb_FieldRep_8Byte: {
|
457
463
|
uint64_t u64;
|
458
464
|
memcpy(&u64, mem, 8);
|
459
465
|
return u64 != 0;
|
460
466
|
}
|
461
|
-
case
|
467
|
+
case kUpb_FieldRep_StringView: {
|
462
468
|
const upb_StringView* str = (const upb_StringView*)mem;
|
463
469
|
return str->size != 0;
|
464
470
|
}
|
@@ -532,7 +538,7 @@ static void encode_message(upb_encstate* e, const upb_Message* msg,
|
|
532
538
|
}
|
533
539
|
}
|
534
540
|
|
535
|
-
if (m->ext !=
|
541
|
+
if (m->ext != kUpb_ExtMode_NonExtendable) {
|
536
542
|
/* Encode all extensions together. Unlike C++, we do not attempt to keep
|
537
543
|
* these in field number order relative to normal fields or even to each
|
538
544
|
* other. */
|
@@ -541,7 +547,7 @@ static void encode_message(upb_encstate* e, const upb_Message* msg,
|
|
541
547
|
if (ext_count) {
|
542
548
|
const upb_Message_Extension* end = ext + ext_count;
|
543
549
|
for (; ext != end; ext++) {
|
544
|
-
if (UPB_UNLIKELY(m->ext ==
|
550
|
+
if (UPB_UNLIKELY(m->ext == kUpb_ExtMode_IsMessageSet)) {
|
545
551
|
encode_msgset_item(e, ext);
|
546
552
|
} else {
|
547
553
|
encode_field(e, &ext->data, &ext->ext->sub, &ext->ext->field);
|