grpc 1.40.0 → 1.43.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +137 -82
- data/etc/roots.pem +335 -326
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/event_engine/endpoint_config.h +6 -11
- data/include/grpc/event_engine/event_engine.h +164 -95
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
- data/include/grpc/event_engine/memory_allocator.h +226 -0
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/event_engine/port.h +1 -3
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +14 -4
- data/include/grpc/grpc_posix.h +5 -2
- data/include/grpc/grpc_security.h +294 -145
- data/include/grpc/grpc_security_constants.h +2 -14
- data/include/grpc/impl/codegen/atm.h +5 -3
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -0
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/fork.h +2 -0
- data/include/grpc/impl/codegen/gpr_slice.h +2 -0
- data/include/grpc/impl/codegen/gpr_types.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +4 -5
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +37 -22
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +2 -0
- data/include/grpc/impl/codegen/status.h +2 -0
- data/include/grpc/impl/codegen/sync.h +8 -5
- data/include/grpc/impl/codegen/sync_abseil.h +2 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +3 -0
- data/include/grpc/impl/codegen/sync_posix.h +4 -2
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +1 -1
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_windows.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_abseil.h +1 -1
- data/include/grpc/support/sync_custom.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_windows.h +1 -1
- data/include/grpc/support/time.h +2 -2
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +21 -24
- data/src/core/ext/filters/client_channel/backend_metric.h +3 -2
- data/src/core/ext/filters/client_channel/backup_poller.cc +2 -1
- data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +72 -91
- data/src/core/ext/filters/client_channel/client_channel.cc +256 -308
- data/src/core/ext/filters/client_channel/client_channel.h +80 -32
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +15 -15
- data/src/core/ext/filters/client_channel/config_selector.cc +2 -1
- data/src/core/ext/filters/client_channel/config_selector.h +4 -5
- data/src/core/ext/filters/client_channel/connector.h +18 -18
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +5 -5
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +19 -17
- data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -4
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +20 -21
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -15
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +169 -92
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -7
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +29 -33
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +5 -6
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +9 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +47 -99
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +97 -41
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +10 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +55 -109
- data/src/core/ext/filters/client_channel/lb_policy.h +96 -103
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -7
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +16 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +17 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +26 -58
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +21 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +10 -5
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +5 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +11 -17
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +283 -349
- data/src/core/ext/filters/client_channel/resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
- data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
- data/src/core/ext/filters/client_channel/resolver_registry.h +1 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +1 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +48 -86
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +17 -48
- data/src/core/ext/filters/client_channel/server_address.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +49 -36
- data/src/core/ext/filters/client_channel/subchannel.cc +89 -147
- data/src/core/ext/filters/client_channel/subchannel.h +29 -49
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +29 -206
- data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +23 -26
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +28 -26
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -14
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +50 -68
- data/src/core/ext/filters/http/client_authority_filter.cc +16 -16
- data/src/core/ext/filters/http/http_filters_plugin.cc +51 -71
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +19 -13
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +8 -9
- data/src/core/ext/filters/http/server/http_server_filter.cc +72 -84
- data/src/core/ext/filters/max_age/max_age_filter.cc +24 -26
- data/src/core/ext/filters/message_size/message_size_filter.cc +28 -29
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +70 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +265 -0
- data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → server_config_selector/server_config_selector_filter.h} +11 -6
- data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +2 -2
- data/src/core/ext/{filters/client_channel → service_config}/service_config.h +4 -4
- data/src/core/ext/service_config/service_config_call_data.h +72 -0
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +3 -3
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +8 -6
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -12
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +26 -29
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +9 -8
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +33 -54
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +66 -70
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -5
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +11 -15
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +120 -134
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -2
- data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/context_list.h +3 -5
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +62 -43
- data/src/core/ext/transport/chttp2/transport/flow_control.h +15 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +5 -8
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +38 -7
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +12 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +378 -668
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +272 -70
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +792 -1041
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +75 -177
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +146 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +137 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -9
- data/src/core/ext/transport/chttp2/transport/parsing.cc +50 -203
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.cc +7 -3
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +61 -50
- data/src/core/ext/transport/inproc/inproc_transport.cc +126 -119
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +198 -166
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +223 -89
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +42 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +19 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -3
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +18 -5
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +108 -83
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +153 -61
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +189 -161
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +173 -69
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +36 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +279 -211
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +370 -102
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +37 -26
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +57 -40
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +73 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +172 -126
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +256 -85
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +52 -37
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +53 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +26 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +115 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +133 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +91 -72
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +98 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +18 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +122 -93
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +166 -57
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +14 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +22 -10
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +19 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +23 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +18 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +42 -28
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +82 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +176 -17
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +59 -44
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +53 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +74 -58
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +63 -25
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +82 -65
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +73 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +26 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +20 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +64 -46
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +83 -33
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +76 -45
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +143 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +101 -77
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +107 -29
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +42 -29
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +516 -446
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +620 -267
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +27 -14
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +22 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +14 -3
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +36 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +53 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +45 -32
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +23 -12
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +211 -183
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +193 -77
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +8 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +6 -4
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +75 -45
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +120 -34
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +34 -21
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +88 -70
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +110 -55
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +76 -59
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +63 -25
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +26 -14
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +62 -47
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +53 -21
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +27 -13
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +43 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +24 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +27 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +18 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +28 -15
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +26 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +31 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +39 -22
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +73 -29
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +42 -27
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +53 -21
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +8 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +3 -1
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +23 -10
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +33 -13
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +13 -5
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +21 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +8 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +117 -94
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +113 -45
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +102 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +306 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +56 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +135 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +123 -99
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +123 -49
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +115 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +371 -0
- data/src/core/ext/upb-generated/google/api/http.upb.c +36 -23
- data/src/core/ext/upb-generated/google/api/http.upb.h +33 -13
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +15 -4
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +13 -5
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +248 -211
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +273 -109
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +15 -4
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +13 -5
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +13 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +13 -5
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +38 -24
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +33 -13
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +15 -4
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +13 -5
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +38 -19
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +93 -37
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +18 -7
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +13 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +27 -15
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +13 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +106 -84
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +103 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +23 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +17 -5
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +23 -9
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +66 -48
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +115 -63
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +68 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +156 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -8
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +58 -13
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +28 -6
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +18 -5
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +20 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +8 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -4
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +18 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +18 -5
- data/src/core/ext/upb-generated/validate/validate.upb.c +321 -252
- data/src/core/ext/upb-generated/validate/validate.upb.h +251 -93
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +103 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +199 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +15 -4
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +13 -5
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +26 -14
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +23 -9
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +13 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +20 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +13 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +29 -17
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +23 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +20 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +13 -5
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +71 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +132 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +44 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +2 -49
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -35
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -41
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +407 -434
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +100 -138
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +2 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +61 -77
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +61 -79
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +87 -75
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +2 -21
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +29 -39
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +803 -894
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +98 -143
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +132 -129
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +180 -190
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +16 -22
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +105 -162
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +2 -23
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +7 -15
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +21 -30
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +7 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +7 -11
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +2 -51
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +15 -19
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +27 -33
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +18 -24
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +19 -23
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +35 -41
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +21 -25
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_registry.cc +3 -3
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_api.cc +1386 -1440
- data/src/core/ext/xds/xds_api.h +152 -115
- data/src/core/ext/xds/xds_bootstrap.cc +33 -55
- data/src/core/ext/xds/xds_bootstrap.h +10 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +3 -3
- data/src/core/ext/xds/xds_certificate_provider.h +1 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +112 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
- data/src/core/ext/xds/xds_client.cc +793 -437
- data/src/core/ext/xds/xds_client.h +83 -69
- data/src/core/ext/xds/xds_client_stats.cc +16 -15
- data/src/core/ext/xds/xds_client_stats.h +7 -7
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -3
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +1 -0
- data/src/core/ext/xds/xds_routing.cc +247 -0
- data/src/core/ext/xds/xds_routing.h +98 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +976 -264
- data/src/core/lib/address_utils/parse_address.cc +6 -8
- data/src/core/lib/address_utils/sockaddr_utils.cc +2 -2
- data/src/core/lib/avl/avl.h +389 -88
- data/src/core/lib/backoff/backoff.cc +3 -3
- data/src/core/lib/channel/channel_args.cc +27 -8
- data/src/core/lib/channel/channel_args.h +11 -1
- data/src/core/lib/channel/channel_args_preconditioning.cc +47 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_stack.cc +5 -3
- data/src/core/lib/channel/channel_stack_builder.cc +3 -15
- data/src/core/lib/channel/channel_stack_builder.h +0 -8
- data/src/core/lib/channel/channel_trace.cc +11 -10
- data/src/core/lib/channel/channel_trace.h +2 -1
- data/src/core/lib/channel/channelz.cc +43 -39
- data/src/core/lib/channel/channelz.h +29 -29
- data/src/core/lib/channel/channelz_registry.cc +8 -7
- data/src/core/lib/channel/channelz_registry.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +2 -3
- data/src/core/lib/channel/connected_channel.h +1 -2
- data/src/core/lib/channel/handshaker.cc +2 -1
- data/src/core/lib/channel/handshaker.h +1 -2
- data/src/core/lib/channel/handshaker_factory.h +10 -2
- data/src/core/lib/channel/handshaker_registry.cc +15 -70
- data/src/core/lib/channel/handshaker_registry.h +29 -12
- data/src/core/lib/channel/status_util.h +2 -2
- data/src/core/lib/compression/algorithm_metadata.h +1 -0
- data/src/core/lib/compression/compression.cc +2 -2
- data/src/core/lib/compression/compression_args.cc +15 -10
- data/src/core/lib/compression/compression_args.h +6 -4
- data/src/core/lib/compression/compression_internal.cc +4 -6
- data/src/core/lib/compression/compression_internal.h +1 -1
- data/src/core/lib/compression/message_compress.cc +2 -2
- data/src/core/lib/compression/stream_compression.cc +2 -1
- data/src/core/lib/compression/stream_compression.h +2 -1
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/config/core_configuration.cc +98 -0
- data/src/core/lib/config/core_configuration.h +157 -0
- data/src/core/lib/debug/stats.cc +1 -1
- data/src/core/lib/debug/stats.h +1 -0
- data/src/core/lib/debug/stats_data.cc +15 -14
- data/src/core/lib/debug/stats_data.h +1 -0
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +4 -3
- data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -2
- data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
- data/src/core/lib/event_engine/event_engine.cc +0 -13
- data/src/core/lib/event_engine/event_engine_factory.cc +49 -0
- data/src/core/lib/event_engine/event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/memory_allocator.cc +70 -0
- data/src/core/lib/event_engine/sockaddr.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +4 -3
- data/src/core/lib/gpr/atm.cc +1 -1
- data/src/core/lib/gpr/cpu_posix.cc +1 -1
- data/src/core/lib/gpr/env_linux.cc +1 -2
- data/src/core/lib/gpr/env_posix.cc +2 -3
- data/src/core/lib/gpr/log.cc +3 -3
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +7 -4
- data/src/core/lib/gpr/log_posix.cc +6 -3
- data/src/core/lib/gpr/string.cc +2 -2
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -2
- data/src/core/lib/gpr/sync_abseil.cc +7 -6
- data/src/core/lib/gpr/sync_posix.cc +3 -3
- data/src/core/lib/gpr/time.cc +3 -2
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +125 -40
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gpr/useful.h +79 -32
- data/src/core/lib/gprpp/arena.cc +2 -1
- data/src/core/lib/gprpp/arena.h +15 -5
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +188 -0
- data/src/core/lib/gprpp/chunked_vector.h +211 -0
- data/src/core/lib/{transport/authority_override.cc → gprpp/construct_destruct.h} +16 -17
- data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
- data/src/core/lib/gprpp/fork.cc +14 -12
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +1 -2
- data/src/core/lib/gprpp/global_config_env.cc +14 -14
- data/src/core/lib/gprpp/global_config_env.h +2 -2
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +10 -8
- data/src/core/lib/gprpp/memory.h +9 -3
- data/src/core/lib/gprpp/mpscq.cc +7 -7
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +4 -4
- data/src/core/lib/gprpp/ref_counted.h +19 -19
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
- data/src/core/lib/gprpp/status_helper.cc +27 -7
- data/src/core/lib/gprpp/status_helper.h +13 -2
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/table.h +423 -0
- data/src/core/lib/gprpp/thd_posix.cc +5 -5
- data/src/core/lib/gprpp/thd_windows.cc +4 -11
- data/src/core/lib/gprpp/time_util.cc +2 -2
- data/src/core/lib/gprpp/time_util.h +2 -2
- data/src/core/lib/http/format_request.cc +1 -0
- data/src/core/lib/http/format_request.h +1 -0
- data/src/core/lib/http/httpcli.cc +219 -197
- data/src/core/lib/http/httpcli.h +14 -9
- data/src/core/lib/http/httpcli_security_connector.cc +5 -8
- data/src/core/lib/http/parser.cc +2 -2
- data/src/core/lib/http/parser.h +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +11 -10
- data/src/core/lib/iomgr/buffer_list.h +14 -15
- data/src/core/lib/iomgr/call_combiner.cc +30 -12
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/combiner.cc +9 -23
- data/src/core/lib/iomgr/combiner.h +1 -0
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +0 -4
- data/src/core/lib/iomgr/endpoint.h +1 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +15 -42
- data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
- data/src/core/lib/iomgr/endpoint_pair.h +1 -0
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +1 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +11 -9
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +113 -52
- data/src/core/lib/iomgr/error.h +73 -18
- data/src/core/lib/iomgr/error_cfstream.cc +7 -2
- data/src/core/lib/iomgr/error_internal.h +1 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +17 -24
- data/src/core/lib/iomgr/ev_epollex_linux.cc +22 -29
- data/src/core/lib/iomgr/ev_poll_posix.cc +42 -45
- data/src/core/lib/iomgr/ev_posix.cc +1 -2
- data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
- data/src/core/lib/iomgr/event_engine/closure.h +10 -1
- data/src/core/lib/iomgr/event_engine/endpoint.cc +7 -27
- data/src/core/lib/iomgr/event_engine/endpoint.h +1 -2
- data/src/core/lib/iomgr/event_engine/iomgr.cc +7 -28
- data/src/core/lib/iomgr/event_engine/pollset.cc +5 -4
- data/src/core/lib/iomgr/event_engine/resolver.cc +14 -9
- data/src/core/lib/iomgr/event_engine/tcp.cc +66 -34
- data/src/core/lib/iomgr/event_engine/timer.cc +10 -4
- data/src/core/lib/iomgr/exec_ctx.cc +4 -13
- data/src/core/lib/iomgr/exec_ctx.h +22 -30
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +15 -16
- data/src/core/lib/iomgr/executor/mpmcqueue.h +7 -11
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -2
- data/src/core/lib/iomgr/executor/threadpool.h +2 -1
- data/src/core/lib/iomgr/executor.cc +20 -38
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
- data/src/core/lib/iomgr/iocp_windows.cc +1 -0
- data/src/core/lib/iomgr/iomgr.cc +3 -1
- data/src/core/lib/iomgr/iomgr.h +2 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +2 -2
- data/src/core/lib/iomgr/iomgr_custom.h +2 -2
- data/src/core/lib/iomgr/iomgr_internal.cc +6 -10
- data/src/core/lib/iomgr/iomgr_internal.h +3 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -2
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
- data/src/core/lib/iomgr/load_file.cc +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +18 -0
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/pollset_custom.cc +4 -5
- data/src/core/lib/iomgr/pollset_custom.h +3 -3
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/port.h +0 -5
- data/src/core/lib/iomgr/python_util.h +1 -0
- data/src/core/lib/iomgr/resolve_address.cc +2 -1
- data/src/core/lib/iomgr/resolve_address.h +0 -4
- data/src/core/lib/iomgr/resolve_address_custom.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +6 -8
- data/src/core/lib/iomgr/sockaddr.h +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +2 -2
- data/src/core/lib/iomgr/socket_mutator.h +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -5
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
- data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.h +2 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +7 -23
- data/src/core/lib/iomgr/tcp_client_custom.cc +6 -20
- data/src/core/lib/iomgr/tcp_client_posix.cc +14 -24
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +7 -9
- data/src/core/lib/iomgr/tcp_custom.cc +12 -51
- data/src/core/lib/iomgr/tcp_custom.h +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +51 -87
- data/src/core/lib/iomgr/tcp_posix.h +9 -12
- data/src/core/lib/iomgr/tcp_server.h +4 -3
- data/src/core/lib/iomgr/tcp_server_custom.cc +7 -34
- data/src/core/lib/iomgr/tcp_server_posix.cc +15 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +21 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +6 -10
- data/src/core/lib/iomgr/tcp_windows.cc +5 -29
- data/src/core/lib/iomgr/tcp_windows.h +1 -1
- data/src/core/lib/iomgr/timer.cc +1 -0
- data/src/core/lib/iomgr/timer.h +1 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +21 -51
- data/src/core/lib/iomgr/timer_generic.h +1 -0
- data/src/core/lib/iomgr/timer_heap.cc +2 -3
- data/src/core/lib/iomgr/unix_sockets_posix.cc +4 -6
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -4
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -0
- data/src/core/lib/iomgr/work_serializer.cc +115 -44
- data/src/core/lib/iomgr/work_serializer.h +17 -5
- data/src/core/lib/json/json_reader.cc +92 -52
- data/src/core/lib/json/json_util.cc +69 -1
- data/src/core/lib/json/json_util.h +65 -115
- data/src/core/lib/json/json_writer.cc +0 -3
- data/src/core/lib/matchers/matchers.h +0 -1
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/promise/activity.cc +115 -0
- data/src/core/lib/promise/activity.h +499 -0
- data/src/core/lib/promise/context.h +86 -0
- data/src/core/lib/promise/detail/basic_seq.h +407 -0
- data/src/core/lib/promise/detail/promise_factory.h +189 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +44 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
- data/src/core/lib/promise/loop.h +108 -0
- data/src/core/lib/promise/map.h +88 -0
- data/src/core/lib/promise/poll.h +60 -0
- data/src/core/lib/promise/race.h +84 -0
- data/src/core/lib/promise/seq.h +71 -0
- data/src/core/lib/resource_quota/api.cc +108 -0
- data/src/core/lib/resource_quota/api.h +41 -0
- data/src/core/lib/resource_quota/memory_quota.cc +454 -0
- data/src/core/lib/resource_quota/memory_quota.h +421 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +58 -0
- data/src/core/lib/{transport/authority_override.h → resource_quota/thread_quota.cc} +22 -16
- data/src/core/lib/resource_quota/thread_quota.h +57 -0
- data/src/core/lib/{iomgr/event_engine/iomgr.h → resource_quota/trace.cc} +4 -9
- data/src/core/lib/resource_quota/trace.h +24 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -4
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +22 -24
- data/src/core/lib/security/authorization/evaluate_args.h +2 -1
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +173 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
- data/src/core/lib/security/context/security_context.cc +11 -8
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +5 -4
- data/src/core/lib/security/credentials/credentials.cc +10 -8
- data/src/core/lib/security/credentials/credentials.h +7 -2
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +24 -38
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -2
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +69 -43
- data/src/core/lib/security/credentials/external/external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +5 -8
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +60 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +31 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +9 -17
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -29
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +4 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +4 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +10 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +13 -12
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +11 -90
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +21 -84
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -12
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +4 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -1
- data/src/core/lib/security/security_connector/security_connector.cc +9 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +13 -6
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +345 -200
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +64 -43
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +9 -11
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -14
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +80 -49
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -5
- data/src/core/lib/security/transport/tsi_error.cc +3 -5
- data/src/core/lib/security/util/json_util.cc +6 -8
- data/src/core/lib/slice/percent_encoding.cc +84 -97
- data/src/core/lib/slice/percent_encoding.h +23 -28
- data/src/core/lib/slice/slice.cc +9 -26
- data/src/core/lib/slice/slice.h +341 -0
- data/src/core/lib/{gpr/tls_pthread.cc → slice/slice_api.cc} +15 -6
- data/src/core/lib/slice/slice_buffer.cc +10 -7
- data/src/core/lib/slice/slice_intern.cc +11 -17
- data/src/core/lib/slice/slice_internal.h +3 -246
- data/src/core/lib/slice/slice_refcount.cc +17 -0
- data/src/core/lib/slice/slice_refcount.h +125 -0
- data/src/core/lib/slice/slice_refcount_base.h +181 -0
- data/src/core/lib/slice/slice_split.cc +100 -0
- data/src/core/lib/slice/slice_split.h +40 -0
- data/src/core/lib/slice/slice_string_helpers.cc +0 -83
- data/src/core/lib/slice/slice_string_helpers.h +0 -11
- data/src/core/lib/slice/static_slice.cc +377 -0
- data/src/core/lib/slice/static_slice.h +300 -0
- data/src/core/lib/surface/api_trace.cc +2 -1
- data/src/core/lib/surface/api_trace.h +1 -0
- data/src/core/lib/surface/builtins.cc +49 -0
- data/src/core/lib/surface/builtins.h +26 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
- data/src/core/lib/surface/call.cc +180 -170
- data/src/core/lib/surface/call.h +3 -9
- data/src/core/lib/surface/call_details.cc +2 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +20 -45
- data/src/core/lib/surface/channel.h +6 -13
- data/src/core/lib/surface/channel_init.cc +23 -76
- data/src/core/lib/surface/channel_init.h +52 -44
- data/src/core/lib/surface/channel_ping.cc +1 -2
- data/src/core/lib/surface/channel_stack_type.cc +2 -1
- data/src/core/lib/surface/completion_queue.cc +60 -69
- data/src/core/lib/surface/completion_queue_factory.cc +2 -1
- data/src/core/lib/surface/completion_queue_factory.h +1 -0
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/init.cc +4 -49
- data/src/core/lib/surface/init.h +0 -1
- data/src/core/lib/surface/init_secure.cc +36 -14
- data/src/core/lib/surface/lame_client.cc +46 -31
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +57 -65
- data/src/core/lib/surface/server.h +34 -30
- data/src/core/lib/surface/validate_metadata.cc +49 -18
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/byte_stream.cc +4 -0
- data/src/core/lib/transport/byte_stream.h +1 -0
- data/src/core/lib/transport/connectivity_state.cc +8 -5
- data/src/core/lib/transport/connectivity_state.h +2 -2
- data/src/core/lib/transport/error_utils.cc +43 -17
- data/src/core/lib/transport/error_utils.h +1 -1
- data/src/core/lib/transport/metadata.cc +41 -20
- data/src/core/lib/transport/metadata.h +19 -16
- data/src/core/lib/transport/metadata_batch.cc +40 -371
- data/src/core/lib/transport/metadata_batch.h +986 -69
- data/src/core/lib/transport/parsed_metadata.cc +35 -0
- data/src/core/lib/transport/parsed_metadata.h +382 -0
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/static_metadata.cc +632 -849
- data/src/core/lib/transport/static_metadata.h +115 -397
- data/src/core/lib/transport/status_metadata.cc +1 -0
- data/src/core/lib/transport/transport.cc +8 -31
- data/src/core/lib/transport/transport.h +0 -1
- data/src/core/lib/transport/transport_op_string.cc +40 -20
- data/src/core/lib/uri/uri_parser.cc +19 -19
- data/src/core/lib/uri/uri_parser.h +2 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +78 -41
- data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -3
- data/src/core/tsi/alts/crypt/gsec.h +2 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +4 -5
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
- data/src/core/tsi/fake_transport_security.cc +15 -7
- data/src/core/tsi/local_transport_security.cc +43 -80
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -53
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +51 -12
- data/src/core/tsi/ssl_transport_security.h +4 -1
- data/src/core/tsi/transport_security.cc +15 -3
- data/src/core/tsi/transport_security.h +16 -1
- data/src/core/tsi/transport_security_grpc.h +1 -0
- data/src/core/tsi/transport_security_interface.h +26 -0
- data/src/ruby/ext/grpc/extconf.rb +12 -9
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +10 -8
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +5 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -10
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +15 -15
- data/src/ruby/ext/grpc/rb_server.c +6 -5
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
- data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
- data/third_party/abseil-cpp/absl/base/config.h +67 -37
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +15 -10
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
- data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
- data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
- data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
- data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
- data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
- data/third_party/abseil-cpp/absl/status/status.cc +9 -17
- data/third_party/abseil-cpp/absl/status/status.h +19 -15
- data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
- data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
- data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
- data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
- data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
- data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
- data/third_party/abseil-cpp/absl/time/time.h +67 -36
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
- data/third_party/abseil-cpp/absl/types/span.h +3 -3
- data/third_party/address_sorting/address_sorting_posix.c +1 -0
- data/third_party/boringssl-with-bazel/err_data.c +685 -673
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +67 -54
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +21 -22
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +55 -37
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
- data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +269 -272
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -40
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +86 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +57 -281
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +290 -199
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +9 -9
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -14
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +11 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +45 -65
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +6 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +26 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +5 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +4 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +24 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +62 -2
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +32 -9
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +151 -12
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -22
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +233 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +15 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +6 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +11 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +23 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +12 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +232 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +24 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +6 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +23 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +76 -31
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1504 -561
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +8 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +17 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +35 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +25 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +5 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +15 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +29 -28
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +37 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +87 -24
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +725 -189
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -695
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +52 -16
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -16
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +310 -359
- data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +110 -159
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +24 -13
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +145 -142
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +106 -99
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +90 -51
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +11 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +2 -51
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +121 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -12
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +14 -27
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +210 -212
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +30 -41
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +48 -34
- data/third_party/re2/re2/compile.cc +91 -109
- data/third_party/re2/re2/dfa.cc +27 -39
- data/third_party/re2/re2/filtered_re2.cc +18 -2
- data/third_party/re2/re2/filtered_re2.h +10 -5
- data/third_party/re2/re2/nfa.cc +1 -1
- data/third_party/re2/re2/parse.cc +42 -23
- data/third_party/re2/re2/perl_groups.cc +34 -34
- data/third_party/re2/re2/prefilter.cc +3 -2
- data/third_party/re2/re2/prog.cc +182 -4
- data/third_party/re2/re2/prog.h +28 -9
- data/third_party/re2/re2/re2.cc +87 -118
- data/third_party/re2/re2/re2.h +156 -141
- data/third_party/re2/re2/regexp.cc +12 -5
- data/third_party/re2/re2/regexp.h +8 -2
- data/third_party/re2/re2/set.cc +31 -9
- data/third_party/re2/re2/set.h +9 -4
- data/third_party/re2/re2/simplify.cc +11 -3
- data/third_party/re2/re2/tostring.cc +1 -1
- data/third_party/re2/re2/walker-inl.h +1 -1
- data/third_party/re2/util/mutex.h +2 -2
- data/third_party/re2/util/pcre.h +3 -3
- data/third_party/upb/upb/decode.c +383 -183
- data/third_party/upb/upb/decode.h +32 -4
- data/third_party/upb/upb/decode_fast.c +513 -500
- data/third_party/upb/upb/decode_fast.h +27 -0
- data/third_party/upb/upb/{decode.int.h → decode_internal.h} +39 -8
- data/third_party/upb/upb/def.c +489 -254
- data/third_party/upb/upb/def.h +86 -33
- data/third_party/upb/upb/def.hpp +46 -4
- data/third_party/upb/upb/encode.c +137 -44
- data/third_party/upb/upb/encode.h +29 -2
- data/third_party/upb/upb/msg.c +182 -28
- data/third_party/upb/upb/msg.h +75 -580
- data/third_party/upb/upb/msg_internal.h +769 -0
- data/third_party/upb/upb/port_def.inc +85 -24
- data/third_party/upb/upb/port_undef.inc +38 -1
- data/third_party/upb/upb/reflection.c +126 -94
- data/third_party/upb/upb/reflection.h +42 -10
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +211 -86
- data/third_party/upb/upb/{table.int.h → table_internal.h} +56 -180
- data/third_party/upb/upb/text_encode.c +35 -7
- data/third_party/upb/upb/text_encode.h +26 -0
- data/third_party/upb/upb/upb.c +67 -8
- data/third_party/upb/upb/upb.h +36 -6
- data/third_party/upb/upb/upb.hpp +24 -0
- data/third_party/upb/upb/upb_internal.h +58 -0
- metadata +182 -107
- data/include/grpc/event_engine/slice_allocator.h +0 -66
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
- data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
- data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
- data/src/core/ext/transport/chttp2/client/authority.h +0 -36
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -66
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -243
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -124
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +0 -33
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -77
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
- data/src/core/lib/avl/avl.cc +0 -306
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -54
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/pollset_uv.cc +0 -95
- data/src/core/lib/iomgr/pollset_uv.h +0 -36
- data/src/core/lib/iomgr/resource_quota.cc +0 -1019
- data/src/core/lib/iomgr/resource_quota.h +0 -177
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/tcp_uv.cc +0 -421
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/src/core/lib/iomgr/udp_server.cc +0 -748
- data/src/core/lib/iomgr/udp_server.h +0 -103
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
- data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
- data/third_party/upb/upb/upb.int.h +0 -29
data/third_party/upb/upb/def.c
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 2009-2021, Google LLC
|
3
|
+
* All rights reserved.
|
4
|
+
*
|
5
|
+
* Redistribution and use in source and binary forms, with or without
|
6
|
+
* modification, are permitted provided that the following conditions are met:
|
7
|
+
* * Redistributions of source code must retain the above copyright
|
8
|
+
* notice, this list of conditions and the following disclaimer.
|
9
|
+
* * Redistributions in binary form must reproduce the above copyright
|
10
|
+
* notice, this list of conditions and the following disclaimer in the
|
11
|
+
* documentation and/or other materials provided with the distribution.
|
12
|
+
* * Neither the name of Google LLC nor the
|
13
|
+
* names of its contributors may be used to endorse or promote products
|
14
|
+
* derived from this software without specific prior written permission.
|
15
|
+
*
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
* DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY
|
20
|
+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
21
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
22
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
23
|
+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
24
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
25
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
*/
|
1
27
|
|
2
28
|
#include "upb/def.h"
|
3
29
|
|
@@ -8,6 +34,9 @@
|
|
8
34
|
#include <string.h>
|
9
35
|
|
10
36
|
#include "google/protobuf/descriptor.upb.h"
|
37
|
+
#include "upb/reflection.h"
|
38
|
+
|
39
|
+
/* Must be last. */
|
11
40
|
#include "upb/port_def.inc"
|
12
41
|
|
13
42
|
typedef struct {
|
@@ -37,7 +66,6 @@ struct upb_fielddef {
|
|
37
66
|
uint32_t number_;
|
38
67
|
uint16_t index_;
|
39
68
|
uint16_t layout_index;
|
40
|
-
uint32_t selector_base; /* Used to index into a upb::Handlers table. */
|
41
69
|
bool is_extension_;
|
42
70
|
bool lazy_;
|
43
71
|
bool packed_;
|
@@ -46,28 +74,34 @@ struct upb_fielddef {
|
|
46
74
|
upb_label_t label_;
|
47
75
|
};
|
48
76
|
|
77
|
+
struct upb_extrange {
|
78
|
+
const google_protobuf_ExtensionRangeOptions *opts;
|
79
|
+
int32_t start;
|
80
|
+
int32_t end;
|
81
|
+
};
|
82
|
+
|
49
83
|
struct upb_msgdef {
|
50
84
|
const upb_msglayout *layout;
|
51
85
|
const upb_filedef *file;
|
52
86
|
const char *full_name;
|
53
|
-
uint32_t selector_count;
|
54
|
-
uint32_t submsg_field_count;
|
55
87
|
|
56
88
|
/* Tables for looking up fields by number and name. */
|
57
89
|
upb_inttable itof;
|
58
90
|
upb_strtable ntof;
|
59
91
|
|
92
|
+
const upb_extrange *ext_ranges;
|
60
93
|
const upb_fielddef *fields;
|
61
94
|
const upb_oneofdef *oneofs;
|
62
95
|
int field_count;
|
63
96
|
int oneof_count;
|
64
97
|
int real_oneof_count;
|
98
|
+
int ext_range_count;
|
65
99
|
|
66
100
|
/* Is this a map-entry message? */
|
67
101
|
bool map_entry;
|
102
|
+
bool is_message_set;
|
68
103
|
upb_wellknowntype_t well_known_type;
|
69
|
-
|
70
|
-
/* TODO(haberman): proper extension ranges (there can be multiple). */
|
104
|
+
const upb_fielddef *message_set_ext;
|
71
105
|
};
|
72
106
|
|
73
107
|
struct upb_enumdef {
|
@@ -75,9 +109,17 @@ struct upb_enumdef {
|
|
75
109
|
const char *full_name;
|
76
110
|
upb_strtable ntoi;
|
77
111
|
upb_inttable iton;
|
112
|
+
const upb_enumvaldef *values;
|
113
|
+
int value_count;
|
78
114
|
int32_t defaultval;
|
79
115
|
};
|
80
116
|
|
117
|
+
struct upb_enumvaldef {
|
118
|
+
const upb_enumdef *enum_;
|
119
|
+
const char *full_name;
|
120
|
+
int32_t number;
|
121
|
+
};
|
122
|
+
|
81
123
|
struct upb_oneofdef {
|
82
124
|
const upb_msgdef *parent;
|
83
125
|
const char *full_name;
|
@@ -98,6 +140,7 @@ struct upb_filedef {
|
|
98
140
|
const upb_msgdef *msgs;
|
99
141
|
const upb_enumdef *enums;
|
100
142
|
const upb_fielddef *exts;
|
143
|
+
const upb_msglayout_ext **ext_layouts;
|
101
144
|
const upb_symtab *symtab;
|
102
145
|
|
103
146
|
int dep_count;
|
@@ -111,29 +154,43 @@ struct upb_symtab {
|
|
111
154
|
upb_arena *arena;
|
112
155
|
upb_strtable syms; /* full_name -> packed def ptr */
|
113
156
|
upb_strtable files; /* file_name -> upb_filedef* */
|
157
|
+
upb_inttable exts; /* upb_msglayout_ext* -> upb_fielddef* */
|
158
|
+
upb_extreg *extreg;
|
114
159
|
size_t bytes_loaded;
|
115
160
|
};
|
116
161
|
|
117
162
|
/* Inside a symtab we store tagged pointers to specific def types. */
|
118
163
|
typedef enum {
|
164
|
+
UPB_DEFTYPE_MASK = 7,
|
165
|
+
|
119
166
|
UPB_DEFTYPE_FIELD = 0,
|
120
167
|
|
121
168
|
/* Only inside symtab table. */
|
122
169
|
UPB_DEFTYPE_MSG = 1,
|
123
170
|
UPB_DEFTYPE_ENUM = 2,
|
171
|
+
UPB_DEFTYPE_ENUMVAL = 3,
|
124
172
|
|
125
173
|
/* Only inside message table. */
|
126
174
|
UPB_DEFTYPE_ONEOF = 1,
|
127
175
|
UPB_DEFTYPE_FIELD_JSONNAME = 2
|
128
176
|
} upb_deftype_t;
|
129
177
|
|
178
|
+
static upb_deftype_t deftype(upb_value v) {
|
179
|
+
uintptr_t num = (uintptr_t)upb_value_getconstptr(v);
|
180
|
+
return num & UPB_DEFTYPE_MASK;
|
181
|
+
}
|
182
|
+
|
130
183
|
static const void *unpack_def(upb_value v, upb_deftype_t type) {
|
131
184
|
uintptr_t num = (uintptr_t)upb_value_getconstptr(v);
|
132
|
-
return (num &
|
185
|
+
return (num & UPB_DEFTYPE_MASK) == type
|
186
|
+
? (const void *)(num & ~UPB_DEFTYPE_MASK)
|
187
|
+
: NULL;
|
133
188
|
}
|
134
189
|
|
135
190
|
static upb_value pack_def(const void *ptr, upb_deftype_t type) {
|
136
|
-
uintptr_t num = (uintptr_t)ptr
|
191
|
+
uintptr_t num = (uintptr_t)ptr;
|
192
|
+
UPB_ASSERT((num & UPB_DEFTYPE_MASK) == 0);
|
193
|
+
num |= type;
|
137
194
|
return upb_value_constptr((const void*)num);
|
138
195
|
}
|
139
196
|
|
@@ -181,30 +238,6 @@ int cmp_fields(const void *p1, const void *p2) {
|
|
181
238
|
return field_rank(f1) - field_rank(f2);
|
182
239
|
}
|
183
240
|
|
184
|
-
/* A few implementation details of handlers. We put these here to avoid
|
185
|
-
* a def -> handlers dependency. */
|
186
|
-
|
187
|
-
#define UPB_STATIC_SELECTOR_COUNT 3 /* Warning: also in upb/handlers.h. */
|
188
|
-
|
189
|
-
static uint32_t upb_handlers_selectorbaseoffset(const upb_fielddef *f) {
|
190
|
-
return upb_fielddef_isseq(f) ? 2 : 0;
|
191
|
-
}
|
192
|
-
|
193
|
-
static uint32_t upb_handlers_selectorcount(const upb_fielddef *f) {
|
194
|
-
uint32_t ret = 1;
|
195
|
-
if (upb_fielddef_isseq(f)) ret += 2; /* STARTSEQ/ENDSEQ */
|
196
|
-
if (upb_fielddef_isstring(f)) ret += 2; /* [STRING]/STARTSTR/ENDSTR */
|
197
|
-
if (upb_fielddef_issubmsg(f)) {
|
198
|
-
/* ENDSUBMSG (STARTSUBMSG is at table beginning) */
|
199
|
-
ret += 0;
|
200
|
-
if (upb_fielddef_lazy(f)) {
|
201
|
-
/* STARTSTR/ENDSTR/STRING (for lazy) */
|
202
|
-
ret += 3;
|
203
|
-
}
|
204
|
-
}
|
205
|
-
return ret;
|
206
|
-
}
|
207
|
-
|
208
241
|
static void upb_status_setoom(upb_status *status) {
|
209
242
|
upb_status_seterrmsg(status, "out of memory");
|
210
243
|
}
|
@@ -268,10 +301,31 @@ const upb_filedef *upb_enumdef_file(const upb_enumdef *e) {
|
|
268
301
|
}
|
269
302
|
|
270
303
|
int32_t upb_enumdef_default(const upb_enumdef *e) {
|
271
|
-
UPB_ASSERT(
|
304
|
+
UPB_ASSERT(upb_enumdef_lookupnum(e, e->defaultval));
|
272
305
|
return e->defaultval;
|
273
306
|
}
|
274
307
|
|
308
|
+
const upb_enumvaldef *upb_enumdef_lookupname(const upb_enumdef *def,
|
309
|
+
const char *name, size_t len) {
|
310
|
+
upb_value v;
|
311
|
+
return upb_strtable_lookup2(&def->ntoi, name, len, &v)
|
312
|
+
? upb_value_getconstptr(v)
|
313
|
+
: NULL;
|
314
|
+
}
|
315
|
+
|
316
|
+
const upb_enumvaldef *upb_enumdef_lookupnum(const upb_enumdef *def, int32_t num) {
|
317
|
+
upb_value v;
|
318
|
+
return upb_inttable_lookup(&def->iton, num, &v) ? upb_value_getconstptr(v)
|
319
|
+
: NULL;
|
320
|
+
}
|
321
|
+
|
322
|
+
const upb_enumvaldef *upb_enumdef_value(const upb_enumdef *e, int i) {
|
323
|
+
UPB_ASSERT(0 <= i && i < e->value_count);
|
324
|
+
return &e->values[i];
|
325
|
+
}
|
326
|
+
|
327
|
+
// Deprecated functions.
|
328
|
+
|
275
329
|
int upb_enumdef_numvals(const upb_enumdef *e) {
|
276
330
|
return (int)upb_strtable_count(&e->ntoi);
|
277
331
|
}
|
@@ -284,22 +338,6 @@ void upb_enum_begin(upb_enum_iter *i, const upb_enumdef *e) {
|
|
284
338
|
void upb_enum_next(upb_enum_iter *iter) { upb_strtable_next(iter); }
|
285
339
|
bool upb_enum_done(upb_enum_iter *iter) { return upb_strtable_done(iter); }
|
286
340
|
|
287
|
-
bool upb_enumdef_ntoi(const upb_enumdef *def, const char *name,
|
288
|
-
size_t len, int32_t *num) {
|
289
|
-
upb_value v;
|
290
|
-
if (!upb_strtable_lookup2(&def->ntoi, name, len, &v)) {
|
291
|
-
return false;
|
292
|
-
}
|
293
|
-
if (num) *num = upb_value_getint32(v);
|
294
|
-
return true;
|
295
|
-
}
|
296
|
-
|
297
|
-
const char *upb_enumdef_iton(const upb_enumdef *def, int32_t num) {
|
298
|
-
upb_value v;
|
299
|
-
return upb_inttable_lookup32(&def->iton, num, &v) ?
|
300
|
-
upb_value_getcstr(v) : NULL;
|
301
|
-
}
|
302
|
-
|
303
341
|
const char *upb_enum_iter_name(upb_enum_iter *iter) {
|
304
342
|
return upb_strtable_iter_key(iter).data;
|
305
343
|
}
|
@@ -309,6 +347,25 @@ int32_t upb_enum_iter_number(upb_enum_iter *iter) {
|
|
309
347
|
}
|
310
348
|
|
311
349
|
|
350
|
+
/* upb_enumvaldef *************************************************************/
|
351
|
+
|
352
|
+
const upb_enumdef *upb_enumvaldef_enum(const upb_enumvaldef *ev) {
|
353
|
+
return ev->enum_;
|
354
|
+
}
|
355
|
+
|
356
|
+
const char *upb_enumvaldef_fullname(const upb_enumvaldef *ev) {
|
357
|
+
return ev->full_name;
|
358
|
+
}
|
359
|
+
|
360
|
+
const char *upb_enumvaldef_name(const upb_enumvaldef *ev) {
|
361
|
+
return shortdefname(ev->full_name);
|
362
|
+
}
|
363
|
+
|
364
|
+
int32_t upb_enumvaldef_number(const upb_enumvaldef *ev) {
|
365
|
+
return ev->number;
|
366
|
+
}
|
367
|
+
|
368
|
+
|
312
369
|
/* upb_fielddef ***************************************************************/
|
313
370
|
|
314
371
|
const char *upb_fielddef_fullname(const upb_fielddef *f) {
|
@@ -386,10 +443,6 @@ const char *upb_fielddef_jsonname(const upb_fielddef *f) {
|
|
386
443
|
return f->json_name;
|
387
444
|
}
|
388
445
|
|
389
|
-
uint32_t upb_fielddef_selectorbase(const upb_fielddef *f) {
|
390
|
-
return f->selector_base;
|
391
|
-
}
|
392
|
-
|
393
446
|
const upb_filedef *upb_fielddef_file(const upb_fielddef *f) {
|
394
447
|
return f->file;
|
395
448
|
}
|
@@ -407,6 +460,23 @@ const upb_oneofdef *upb_fielddef_realcontainingoneof(const upb_fielddef *f) {
|
|
407
460
|
return f->oneof;
|
408
461
|
}
|
409
462
|
|
463
|
+
upb_msgval upb_fielddef_default(const upb_fielddef *f) {
|
464
|
+
UPB_ASSERT(!upb_fielddef_issubmsg(f));
|
465
|
+
upb_msgval ret;
|
466
|
+
if (upb_fielddef_isstring(f)) {
|
467
|
+
str_t *str = f->defaultval.str;
|
468
|
+
if (str) {
|
469
|
+
ret.str_val.data = str->str;
|
470
|
+
ret.str_val.size = str->len;
|
471
|
+
} else {
|
472
|
+
ret.str_val.size = 0;
|
473
|
+
}
|
474
|
+
} else {
|
475
|
+
memcpy(&ret, &f->defaultval, 8);
|
476
|
+
}
|
477
|
+
return ret;
|
478
|
+
}
|
479
|
+
|
410
480
|
static void chkdefaulttype(const upb_fielddef *f, int ctype) {
|
411
481
|
UPB_UNUSED(f);
|
412
482
|
UPB_UNUSED(ctype);
|
@@ -470,9 +540,15 @@ const upb_enumdef *upb_fielddef_enumsubdef(const upb_fielddef *f) {
|
|
470
540
|
}
|
471
541
|
|
472
542
|
const upb_msglayout_field *upb_fielddef_layout(const upb_fielddef *f) {
|
543
|
+
UPB_ASSERT(!upb_fielddef_isextension(f));
|
473
544
|
return &f->msgdef->layout->fields[f->layout_index];
|
474
545
|
}
|
475
546
|
|
547
|
+
const upb_msglayout_ext *_upb_fielddef_extlayout(const upb_fielddef *f) {
|
548
|
+
UPB_ASSERT(upb_fielddef_isextension(f));
|
549
|
+
return f->file->ext_layouts[f->layout_index];
|
550
|
+
}
|
551
|
+
|
476
552
|
bool upb_fielddef_issubmsg(const upb_fielddef *f) {
|
477
553
|
return upb_fielddef_type(f) == UPB_TYPE_MESSAGE;
|
478
554
|
}
|
@@ -535,18 +611,10 @@ upb_syntax_t upb_msgdef_syntax(const upb_msgdef *m) {
|
|
535
611
|
return m->file->syntax;
|
536
612
|
}
|
537
613
|
|
538
|
-
size_t upb_msgdef_selectorcount(const upb_msgdef *m) {
|
539
|
-
return m->selector_count;
|
540
|
-
}
|
541
|
-
|
542
|
-
uint32_t upb_msgdef_submsgfieldcount(const upb_msgdef *m) {
|
543
|
-
return m->submsg_field_count;
|
544
|
-
}
|
545
|
-
|
546
614
|
const upb_fielddef *upb_msgdef_itof(const upb_msgdef *m, uint32_t i) {
|
547
615
|
upb_value val;
|
548
|
-
return
|
549
|
-
|
616
|
+
return upb_inttable_lookup(&m->itof, i, &val) ? upb_value_getconstptr(val)
|
617
|
+
: NULL;
|
550
618
|
}
|
551
619
|
|
552
620
|
const upb_fielddef *upb_msgdef_ntof(const upb_msgdef *m, const char *name,
|
@@ -611,6 +679,10 @@ int upb_msgdef_numrealoneofs(const upb_msgdef *m) {
|
|
611
679
|
return m->real_oneof_count;
|
612
680
|
}
|
613
681
|
|
682
|
+
int upb_msgdef_extrangecount(const upb_msgdef *m) {
|
683
|
+
return m->ext_range_count;
|
684
|
+
}
|
685
|
+
|
614
686
|
int upb_msgdef_fieldcount(const upb_msgdef *m) {
|
615
687
|
return m->field_count;
|
616
688
|
}
|
@@ -627,6 +699,11 @@ const upb_msglayout *upb_msgdef_layout(const upb_msgdef *m) {
|
|
627
699
|
return m->layout;
|
628
700
|
}
|
629
701
|
|
702
|
+
const upb_extrange *upb_msgdef_extrange(const upb_msgdef *m, int i) {
|
703
|
+
UPB_ASSERT(i >= 0 && i < m->ext_range_count);
|
704
|
+
return &m->ext_ranges[i];
|
705
|
+
}
|
706
|
+
|
630
707
|
const upb_fielddef *upb_msgdef_field(const upb_msgdef *m, int i) {
|
631
708
|
UPB_ASSERT(i >= 0 && i < m->field_count);
|
632
709
|
return &m->fields[i];
|
@@ -754,8 +831,8 @@ const upb_fielddef *upb_oneofdef_ntof(const upb_oneofdef *o,
|
|
754
831
|
|
755
832
|
const upb_fielddef *upb_oneofdef_itof(const upb_oneofdef *o, uint32_t num) {
|
756
833
|
upb_value val;
|
757
|
-
return
|
758
|
-
|
834
|
+
return upb_inttable_lookup(&o->itof, num, &val) ? upb_value_getptr(val)
|
835
|
+
: NULL;
|
759
836
|
}
|
760
837
|
|
761
838
|
void upb_oneof_begin(upb_oneof_iter *iter, const upb_oneofdef *o) {
|
@@ -835,7 +912,6 @@ void upb_symtab_free(upb_symtab *s) {
|
|
835
912
|
|
836
913
|
upb_symtab *upb_symtab_new(void) {
|
837
914
|
upb_symtab *s = upb_gmalloc(sizeof(*s));
|
838
|
-
upb_alloc *alloc;
|
839
915
|
|
840
916
|
if (!s) {
|
841
917
|
return NULL;
|
@@ -843,15 +919,21 @@ upb_symtab *upb_symtab_new(void) {
|
|
843
919
|
|
844
920
|
s->arena = upb_arena_new();
|
845
921
|
s->bytes_loaded = 0;
|
846
|
-
alloc = upb_arena_alloc(s->arena);
|
847
922
|
|
848
|
-
if (!
|
849
|
-
!
|
850
|
-
|
851
|
-
|
852
|
-
s = NULL;
|
923
|
+
if (!upb_strtable_init(&s->syms, 32, s->arena) ||
|
924
|
+
!upb_strtable_init(&s->files, 4, s->arena) ||
|
925
|
+
!upb_inttable_init(&s->exts, s->arena)) {
|
926
|
+
goto err;
|
853
927
|
}
|
928
|
+
|
929
|
+
s->extreg = upb_extreg_new(s->arena);
|
930
|
+
if (!s->extreg) goto err;
|
854
931
|
return s;
|
932
|
+
|
933
|
+
err:
|
934
|
+
upb_arena_free(s->arena);
|
935
|
+
upb_gfree(s);
|
936
|
+
return NULL;
|
855
937
|
}
|
856
938
|
|
857
939
|
const upb_msgdef *upb_symtab_lookupmsg(const upb_symtab *s, const char *sym) {
|
@@ -860,11 +942,16 @@ const upb_msgdef *upb_symtab_lookupmsg(const upb_symtab *s, const char *sym) {
|
|
860
942
|
unpack_def(v, UPB_DEFTYPE_MSG) : NULL;
|
861
943
|
}
|
862
944
|
|
945
|
+
static const void *symtab_lookup2(const upb_symtab *s, const char *sym,
|
946
|
+
size_t size, upb_deftype_t type) {
|
947
|
+
upb_value v;
|
948
|
+
return upb_strtable_lookup2(&s->syms, sym, size, &v) ? unpack_def(v, type)
|
949
|
+
: NULL;
|
950
|
+
}
|
951
|
+
|
863
952
|
const upb_msgdef *upb_symtab_lookupmsg2(const upb_symtab *s, const char *sym,
|
864
953
|
size_t len) {
|
865
|
-
|
866
|
-
return upb_strtable_lookup2(&s->syms, sym, len, &v) ?
|
867
|
-
unpack_def(v, UPB_DEFTYPE_MSG) : NULL;
|
954
|
+
return symtab_lookup2(s, sym, len, UPB_DEFTYPE_MSG);
|
868
955
|
}
|
869
956
|
|
870
957
|
const upb_enumdef *upb_symtab_lookupenum(const upb_symtab *s, const char *sym) {
|
@@ -873,6 +960,37 @@ const upb_enumdef *upb_symtab_lookupenum(const upb_symtab *s, const char *sym) {
|
|
873
960
|
unpack_def(v, UPB_DEFTYPE_ENUM) : NULL;
|
874
961
|
}
|
875
962
|
|
963
|
+
const upb_enumvaldef *upb_symtab_lookupenumval(const upb_symtab *s,
|
964
|
+
const char *sym) {
|
965
|
+
upb_value v;
|
966
|
+
return upb_strtable_lookup(&s->syms, sym, &v)
|
967
|
+
? unpack_def(v, UPB_DEFTYPE_ENUMVAL)
|
968
|
+
: NULL;
|
969
|
+
}
|
970
|
+
|
971
|
+
const upb_fielddef *upb_symtab_lookupext2(const upb_symtab *s, const char *name,
|
972
|
+
size_t size) {
|
973
|
+
upb_value v;
|
974
|
+
if (!upb_strtable_lookup2(&s->syms, name, size, &v)) return NULL;
|
975
|
+
|
976
|
+
switch (deftype(v)) {
|
977
|
+
case UPB_DEFTYPE_FIELD:
|
978
|
+
return unpack_def(v, UPB_DEFTYPE_FIELD);
|
979
|
+
case UPB_DEFTYPE_MSG: {
|
980
|
+
const upb_msgdef *m = unpack_def(v, UPB_DEFTYPE_MSG);
|
981
|
+
return m->message_set_ext; /* May be NULL if not in MessageeSet. */
|
982
|
+
}
|
983
|
+
default:
|
984
|
+
break;
|
985
|
+
}
|
986
|
+
|
987
|
+
return NULL;
|
988
|
+
}
|
989
|
+
|
990
|
+
const upb_fielddef *upb_symtab_lookupext(const upb_symtab *s, const char *sym) {
|
991
|
+
return upb_symtab_lookupext2(s, sym, strlen(sym));
|
992
|
+
}
|
993
|
+
|
876
994
|
const upb_filedef *upb_symtab_lookupfile(const upb_symtab *s, const char *name) {
|
877
995
|
upb_value v;
|
878
996
|
return upb_strtable_lookup(&s->files, name, &v) ? upb_value_getconstptr(v)
|
@@ -902,14 +1020,16 @@ int upb_symtab_filecount(const upb_symtab *s) {
|
|
902
1020
|
typedef struct {
|
903
1021
|
upb_symtab *symtab;
|
904
1022
|
upb_filedef *file; /* File we are building. */
|
905
|
-
upb_arena *
|
906
|
-
|
907
|
-
|
1023
|
+
upb_arena *arena; /* Allocate defs here. */
|
1024
|
+
const upb_msglayout_file *layout; /* NULL if we should build layouts. */
|
1025
|
+
int enum_count; /* Count of enums built so far. */
|
1026
|
+
int msg_count; /* Count of messages built so far. */
|
1027
|
+
int ext_count; /* Count of extensions built so far. */
|
908
1028
|
upb_status *status; /* Record errors here. */
|
909
1029
|
jmp_buf err; /* longjmp() on error. */
|
910
1030
|
} symtab_addctx;
|
911
1031
|
|
912
|
-
UPB_NORETURN UPB_NOINLINE
|
1032
|
+
UPB_NORETURN UPB_NOINLINE UPB_PRINTF(2, 3)
|
913
1033
|
static void symtab_errf(symtab_addctx *ctx, const char *fmt, ...) {
|
914
1034
|
va_list argp;
|
915
1035
|
va_start(argp, fmt);
|
@@ -925,7 +1045,7 @@ static void symtab_oomerr(symtab_addctx *ctx) {
|
|
925
1045
|
}
|
926
1046
|
|
927
1047
|
void *symtab_alloc(symtab_addctx *ctx, size_t bytes) {
|
928
|
-
void *ret = upb_arena_malloc(ctx->
|
1048
|
+
void *ret = upb_arena_malloc(ctx->arena, bytes);
|
929
1049
|
if (!ret) symtab_oomerr(ctx);
|
930
1050
|
return ret;
|
931
1051
|
}
|
@@ -1015,13 +1135,71 @@ static int field_number_cmp(const void *p1, const void *p2) {
|
|
1015
1135
|
return f1->number - f2->number;
|
1016
1136
|
}
|
1017
1137
|
|
1018
|
-
static void assign_layout_indices(const upb_msgdef *m,
|
1138
|
+
static void assign_layout_indices(const upb_msgdef *m, upb_msglayout *l,
|
1139
|
+
upb_msglayout_field *fields) {
|
1019
1140
|
int i;
|
1020
1141
|
int n = upb_msgdef_numfields(m);
|
1142
|
+
int dense_below = 0;
|
1021
1143
|
for (i = 0; i < n; i++) {
|
1022
1144
|
upb_fielddef *f = (upb_fielddef*)upb_msgdef_itof(m, fields[i].number);
|
1023
1145
|
UPB_ASSERT(f);
|
1024
1146
|
f->layout_index = i;
|
1147
|
+
if (i < UINT8_MAX && fields[i].number == i + 1 &&
|
1148
|
+
(i == 0 || fields[i-1].number == i)) {
|
1149
|
+
dense_below = i + 1;
|
1150
|
+
}
|
1151
|
+
}
|
1152
|
+
l->dense_below = dense_below;
|
1153
|
+
}
|
1154
|
+
|
1155
|
+
static void fill_fieldlayout(upb_msglayout_field *field, const upb_fielddef *f) {
|
1156
|
+
field->number = upb_fielddef_number(f);
|
1157
|
+
field->descriptortype = upb_fielddef_descriptortype(f);
|
1158
|
+
|
1159
|
+
if (field->descriptortype == UPB_DTYPE_STRING &&
|
1160
|
+
f->file->syntax == UPB_SYNTAX_PROTO2) {
|
1161
|
+
/* See TableDescriptorType() in upbc/generator.cc for details and
|
1162
|
+
* rationale. */
|
1163
|
+
field->descriptortype = UPB_DTYPE_BYTES;
|
1164
|
+
}
|
1165
|
+
|
1166
|
+
if (upb_fielddef_ismap(f)) {
|
1167
|
+
field->mode = _UPB_MODE_MAP | (_UPB_REP_PTR << _UPB_REP_SHIFT);
|
1168
|
+
} else if (upb_fielddef_isseq(f)) {
|
1169
|
+
field->mode = _UPB_MODE_ARRAY | (_UPB_REP_PTR << _UPB_REP_SHIFT);
|
1170
|
+
} else {
|
1171
|
+
/* Maps descriptor type -> elem_size_lg2. */
|
1172
|
+
static const uint8_t sizes[] = {
|
1173
|
+
-1, /* invalid descriptor type */
|
1174
|
+
_UPB_REP_8BYTE, /* DOUBLE */
|
1175
|
+
_UPB_REP_4BYTE, /* FLOAT */
|
1176
|
+
_UPB_REP_8BYTE, /* INT64 */
|
1177
|
+
_UPB_REP_8BYTE, /* UINT64 */
|
1178
|
+
_UPB_REP_4BYTE, /* INT32 */
|
1179
|
+
_UPB_REP_8BYTE, /* FIXED64 */
|
1180
|
+
_UPB_REP_4BYTE, /* FIXED32 */
|
1181
|
+
_UPB_REP_1BYTE, /* BOOL */
|
1182
|
+
_UPB_REP_STRVIEW, /* STRING */
|
1183
|
+
_UPB_REP_PTR, /* GROUP */
|
1184
|
+
_UPB_REP_PTR, /* MESSAGE */
|
1185
|
+
_UPB_REP_STRVIEW, /* BYTES */
|
1186
|
+
_UPB_REP_4BYTE, /* UINT32 */
|
1187
|
+
_UPB_REP_4BYTE, /* ENUM */
|
1188
|
+
_UPB_REP_4BYTE, /* SFIXED32 */
|
1189
|
+
_UPB_REP_8BYTE, /* SFIXED64 */
|
1190
|
+
_UPB_REP_4BYTE, /* SINT32 */
|
1191
|
+
_UPB_REP_8BYTE, /* SINT64 */
|
1192
|
+
};
|
1193
|
+
field->mode =
|
1194
|
+
_UPB_MODE_SCALAR | (sizes[field->descriptortype] << _UPB_REP_SHIFT);
|
1195
|
+
}
|
1196
|
+
|
1197
|
+
if (upb_fielddef_packed(f)) {
|
1198
|
+
field->mode |= _UPB_MODE_IS_PACKED;
|
1199
|
+
}
|
1200
|
+
|
1201
|
+
if (upb_fielddef_isextension(f)) {
|
1202
|
+
field->mode |= _UPB_MODE_IS_EXTENSION;
|
1025
1203
|
}
|
1026
1204
|
}
|
1027
1205
|
|
@@ -1032,20 +1210,38 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1032
1210
|
upb_msg_field_iter it;
|
1033
1211
|
upb_msg_oneof_iter oit;
|
1034
1212
|
size_t hasbit;
|
1035
|
-
size_t
|
1036
|
-
|
1213
|
+
size_t field_count = upb_msgdef_numfields(m);
|
1214
|
+
size_t sublayout_count = 0;
|
1215
|
+
upb_msglayout_sub *subs;
|
1037
1216
|
upb_msglayout_field *fields;
|
1038
1217
|
|
1039
1218
|
memset(l, 0, sizeof(*l) + sizeof(_upb_fasttable_entry));
|
1040
1219
|
|
1041
|
-
|
1042
|
-
|
1220
|
+
/* Count sub-messages. */
|
1221
|
+
for (size_t i = 0; i < field_count; i++) {
|
1222
|
+
if (upb_fielddef_issubmsg(&m->fields[i])) {
|
1223
|
+
sublayout_count++;
|
1224
|
+
}
|
1225
|
+
}
|
1226
|
+
|
1227
|
+
fields = symtab_alloc(ctx, field_count * sizeof(*fields));
|
1228
|
+
subs = symtab_alloc(ctx, sublayout_count * sizeof(*subs));
|
1043
1229
|
|
1044
1230
|
l->field_count = upb_msgdef_numfields(m);
|
1045
1231
|
l->fields = fields;
|
1046
|
-
l->
|
1232
|
+
l->subs = subs;
|
1047
1233
|
l->table_mask = 0;
|
1048
1234
|
|
1235
|
+
if (upb_msgdef_extrangecount(m) > 0) {
|
1236
|
+
if (m->is_message_set) {
|
1237
|
+
l->ext = _UPB_MSGEXT_MSGSET;
|
1238
|
+
} else {
|
1239
|
+
l->ext = _UPB_MSGEXT_EXTENDABLE;
|
1240
|
+
}
|
1241
|
+
} else {
|
1242
|
+
l->ext = _UPB_MSGEXT_NONE;
|
1243
|
+
}
|
1244
|
+
|
1049
1245
|
/* TODO(haberman): initialize fast tables so that reflection-based parsing
|
1050
1246
|
* can get the same speeds as linked-in types. */
|
1051
1247
|
l->fasttable[0].field_parser = &fastdecode_generic;
|
@@ -1058,8 +1254,8 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1058
1254
|
const upb_fielddef *val = upb_msgdef_itof(m, 2);
|
1059
1255
|
fields[0].number = 1;
|
1060
1256
|
fields[1].number = 2;
|
1061
|
-
fields[0].
|
1062
|
-
fields[1].
|
1257
|
+
fields[0].mode = _UPB_MODE_SCALAR;
|
1258
|
+
fields[1].mode = _UPB_MODE_SCALAR;
|
1063
1259
|
fields[0].presence = 0;
|
1064
1260
|
fields[1].presence = 0;
|
1065
1261
|
fields[0].descriptortype = upb_fielddef_descriptortype(key);
|
@@ -1069,7 +1265,7 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1069
1265
|
fields[1].submsg_index = 0;
|
1070
1266
|
|
1071
1267
|
if (upb_fielddef_type(val) == UPB_TYPE_MESSAGE) {
|
1072
|
-
|
1268
|
+
subs[0].submsg = upb_fielddef_msgsubdef(val)->layout;
|
1073
1269
|
}
|
1074
1270
|
|
1075
1271
|
l->field_count = 2;
|
@@ -1088,34 +1284,19 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1088
1284
|
*/
|
1089
1285
|
|
1090
1286
|
/* Allocate hasbits and set basic field attributes. */
|
1091
|
-
|
1287
|
+
sublayout_count = 0;
|
1092
1288
|
for (upb_msg_field_begin(&it, m), hasbit = 0;
|
1093
1289
|
!upb_msg_field_done(&it);
|
1094
1290
|
upb_msg_field_next(&it)) {
|
1095
1291
|
upb_fielddef* f = upb_msg_iter_field(&it);
|
1096
1292
|
upb_msglayout_field *field = &fields[upb_fielddef_index(f)];
|
1097
1293
|
|
1098
|
-
field
|
1099
|
-
field->descriptortype = upb_fielddef_descriptortype(f);
|
1100
|
-
field->label = upb_fielddef_label(f);
|
1101
|
-
|
1102
|
-
if (field->descriptortype == UPB_DTYPE_STRING &&
|
1103
|
-
f->file->syntax == UPB_SYNTAX_PROTO2) {
|
1104
|
-
/* See TableDescriptorType() in upbc/generator.cc for details and
|
1105
|
-
* rationale. */
|
1106
|
-
field->descriptortype = UPB_DTYPE_BYTES;
|
1107
|
-
}
|
1108
|
-
|
1109
|
-
if (upb_fielddef_ismap(f)) {
|
1110
|
-
field->label = _UPB_LABEL_MAP;
|
1111
|
-
} else if (upb_fielddef_packed(f)) {
|
1112
|
-
field->label = _UPB_LABEL_PACKED;
|
1113
|
-
}
|
1294
|
+
fill_fieldlayout(field, f);
|
1114
1295
|
|
1115
1296
|
if (upb_fielddef_issubmsg(f)) {
|
1116
1297
|
const upb_msgdef *subm = upb_fielddef_msgsubdef(f);
|
1117
|
-
field->submsg_index =
|
1118
|
-
|
1298
|
+
field->submsg_index = sublayout_count++;
|
1299
|
+
subs[field->submsg_index].submsg = subm->layout;
|
1119
1300
|
}
|
1120
1301
|
|
1121
1302
|
if (upb_fielddef_haspresence(f) && !upb_fielddef_realcontainingoneof(f)) {
|
@@ -1186,54 +1367,13 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1186
1367
|
|
1187
1368
|
/* Sort fields by number. */
|
1188
1369
|
qsort(fields, upb_msgdef_numfields(m), sizeof(*fields), field_number_cmp);
|
1189
|
-
assign_layout_indices(m, fields);
|
1190
|
-
}
|
1191
|
-
|
1192
|
-
static void assign_msg_indices(symtab_addctx *ctx, upb_msgdef *m) {
|
1193
|
-
/* Sort fields. upb internally relies on UPB_TYPE_MESSAGE fields having the
|
1194
|
-
* lowest indexes, but we do not publicly guarantee this. */
|
1195
|
-
upb_msg_field_iter j;
|
1196
|
-
int i;
|
1197
|
-
uint32_t selector;
|
1198
|
-
int n = upb_msgdef_numfields(m);
|
1199
|
-
upb_fielddef **fields;
|
1200
|
-
|
1201
|
-
if (n == 0) {
|
1202
|
-
m->selector_count = UPB_STATIC_SELECTOR_COUNT;
|
1203
|
-
m->submsg_field_count = 0;
|
1204
|
-
return;
|
1205
|
-
}
|
1206
|
-
|
1207
|
-
fields = upb_gmalloc(n * sizeof(*fields));
|
1208
|
-
|
1209
|
-
m->submsg_field_count = 0;
|
1210
|
-
for(i = 0, upb_msg_field_begin(&j, m);
|
1211
|
-
!upb_msg_field_done(&j);
|
1212
|
-
upb_msg_field_next(&j), i++) {
|
1213
|
-
upb_fielddef *f = upb_msg_iter_field(&j);
|
1214
|
-
UPB_ASSERT(f->msgdef == m);
|
1215
|
-
if (upb_fielddef_issubmsg(f)) {
|
1216
|
-
m->submsg_field_count++;
|
1217
|
-
}
|
1218
|
-
fields[i] = f;
|
1219
|
-
}
|
1220
|
-
|
1221
|
-
qsort(fields, n, sizeof(*fields), cmp_fields);
|
1222
|
-
|
1223
|
-
selector = UPB_STATIC_SELECTOR_COUNT + m->submsg_field_count;
|
1224
|
-
for (i = 0; i < n; i++) {
|
1225
|
-
upb_fielddef *f = fields[i];
|
1226
|
-
f->index_ = i;
|
1227
|
-
f->selector_base = selector + upb_handlers_selectorbaseoffset(f);
|
1228
|
-
selector += upb_handlers_selectorcount(f);
|
1229
|
-
}
|
1230
|
-
m->selector_count = selector;
|
1231
|
-
|
1232
|
-
upb_gfree(fields);
|
1370
|
+
assign_layout_indices(m, l, fields);
|
1233
1371
|
}
|
1234
1372
|
|
1235
1373
|
static char *strviewdup(symtab_addctx *ctx, upb_strview view) {
|
1236
|
-
|
1374
|
+
char *ret = upb_strdup2(view.data, view.size, ctx->arena);
|
1375
|
+
CHK_OOM(ret);
|
1376
|
+
return ret;
|
1237
1377
|
}
|
1238
1378
|
|
1239
1379
|
static bool streql2(const char *a, size_t n, const char *b) {
|
@@ -1341,12 +1481,14 @@ static char* makejsonname(symtab_addctx *ctx, const char* name) {
|
|
1341
1481
|
}
|
1342
1482
|
|
1343
1483
|
static void symtab_add(symtab_addctx *ctx, const char *name, upb_value v) {
|
1484
|
+
// TODO: table should support an operation "tryinsert" to avoid the double
|
1485
|
+
// lookup.
|
1344
1486
|
if (upb_strtable_lookup(&ctx->symtab->syms, name, NULL)) {
|
1345
1487
|
symtab_errf(ctx, "duplicate symbol '%s'", name);
|
1346
1488
|
}
|
1347
|
-
upb_alloc *alloc = upb_arena_alloc(ctx->symtab->arena);
|
1348
1489
|
size_t len = strlen(name);
|
1349
|
-
CHK_OOM(
|
1490
|
+
CHK_OOM(upb_strtable_insert(&ctx->symtab->syms, name, len, v,
|
1491
|
+
ctx->symtab->arena));
|
1350
1492
|
}
|
1351
1493
|
|
1352
1494
|
/* Given a symbol and the base symbol inside which it is defined, find the
|
@@ -1379,7 +1521,8 @@ static const void *symtab_resolve(symtab_addctx *ctx, const upb_fielddef *f,
|
|
1379
1521
|
}
|
1380
1522
|
|
1381
1523
|
notfound:
|
1382
|
-
symtab_errf(ctx, "couldn't resolve name '
|
1524
|
+
symtab_errf(ctx, "couldn't resolve name '" UPB_STRVIEW_FORMAT "'",
|
1525
|
+
UPB_STRVIEW_ARGS(sym));
|
1383
1526
|
}
|
1384
1527
|
|
1385
1528
|
static void create_oneofdef(
|
@@ -1397,10 +1540,10 @@ static void create_oneofdef(
|
|
1397
1540
|
|
1398
1541
|
v = pack_def(o, UPB_DEFTYPE_ONEOF);
|
1399
1542
|
symtab_add(ctx, o->full_name, v);
|
1400
|
-
CHK_OOM(
|
1543
|
+
CHK_OOM(upb_strtable_insert(&m->ntof, name.data, name.size, v, ctx->arena));
|
1401
1544
|
|
1402
|
-
CHK_OOM(
|
1403
|
-
CHK_OOM(
|
1545
|
+
CHK_OOM(upb_inttable_init(&o->itof, ctx->arena));
|
1546
|
+
CHK_OOM(upb_strtable_init(&o->ntof, 4, ctx->arena));
|
1404
1547
|
}
|
1405
1548
|
|
1406
1549
|
static str_t *newstr(symtab_addctx *ctx, const char *data, size_t len) {
|
@@ -1448,16 +1591,15 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1448
1591
|
}
|
1449
1592
|
case UPB_TYPE_ENUM: {
|
1450
1593
|
const upb_enumdef *e = f->sub.enumdef;
|
1451
|
-
|
1452
|
-
if (!
|
1594
|
+
const upb_enumvaldef *ev = upb_enumdef_lookupname(e, str, len);
|
1595
|
+
if (!ev) {
|
1453
1596
|
goto invalid;
|
1454
1597
|
}
|
1455
|
-
f->defaultval.sint =
|
1598
|
+
f->defaultval.sint = ev->number;
|
1456
1599
|
break;
|
1457
1600
|
}
|
1458
1601
|
case UPB_TYPE_INT64: {
|
1459
|
-
|
1460
|
-
int64_t val = strtol(str, &end, 0);
|
1602
|
+
long long val = strtoll(str, &end, 0);
|
1461
1603
|
if (val > INT64_MAX || val < INT64_MIN || errno == ERANGE || *end) {
|
1462
1604
|
goto invalid;
|
1463
1605
|
}
|
@@ -1473,8 +1615,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1473
1615
|
break;
|
1474
1616
|
}
|
1475
1617
|
case UPB_TYPE_UINT64: {
|
1476
|
-
|
1477
|
-
uint64_t val = strtoul(str, &end, 0);
|
1618
|
+
unsigned long long val = strtoull(str, &end, 0);
|
1478
1619
|
if (val > UINT64_MAX || errno == ERANGE || *end) {
|
1479
1620
|
goto invalid;
|
1480
1621
|
}
|
@@ -1490,8 +1631,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1490
1631
|
break;
|
1491
1632
|
}
|
1492
1633
|
case UPB_TYPE_FLOAT: {
|
1493
|
-
|
1494
|
-
float val = strtod(str, &end);
|
1634
|
+
float val = strtof(str, &end);
|
1495
1635
|
if (errno == ERANGE || *end) {
|
1496
1636
|
goto invalid;
|
1497
1637
|
}
|
@@ -1523,7 +1663,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1523
1663
|
return;
|
1524
1664
|
|
1525
1665
|
invalid:
|
1526
|
-
symtab_errf(ctx, "Invalid default '%.*s' for field %
|
1666
|
+
symtab_errf(ctx, "Invalid default '%.*s' for field %s", (int)len, str,
|
1527
1667
|
upb_fielddef_fullname(f));
|
1528
1668
|
}
|
1529
1669
|
|
@@ -1557,7 +1697,6 @@ static void set_default_default(symtab_addctx *ctx, upb_fielddef *f) {
|
|
1557
1697
|
static void create_fielddef(
|
1558
1698
|
symtab_addctx *ctx, const char *prefix, upb_msgdef *m,
|
1559
1699
|
const google_protobuf_FieldDescriptorProto *field_proto) {
|
1560
|
-
upb_alloc *alloc = ctx->alloc;
|
1561
1700
|
upb_fielddef *f;
|
1562
1701
|
const google_protobuf_FieldOptions *options;
|
1563
1702
|
upb_strview name;
|
@@ -1593,7 +1732,8 @@ static void create_fielddef(
|
|
1593
1732
|
upb_value v, field_v, json_v;
|
1594
1733
|
size_t json_size;
|
1595
1734
|
|
1596
|
-
f = (upb_fielddef*)&m->fields[m->field_count
|
1735
|
+
f = (upb_fielddef*)&m->fields[m->field_count];
|
1736
|
+
f->index_ = m->field_count++;
|
1597
1737
|
f->msgdef = m;
|
1598
1738
|
f->is_extension_ = false;
|
1599
1739
|
|
@@ -1614,20 +1754,19 @@ static void create_fielddef(
|
|
1614
1754
|
v = upb_value_constptr(f);
|
1615
1755
|
json_size = strlen(json_name);
|
1616
1756
|
|
1617
|
-
CHK_OOM(
|
1618
|
-
|
1619
|
-
CHK_OOM(
|
1757
|
+
CHK_OOM(upb_strtable_insert(&m->ntof, name.data, name.size, field_v,
|
1758
|
+
ctx->arena));
|
1759
|
+
CHK_OOM(upb_inttable_insert(&m->itof, field_number, v, ctx->arena));
|
1620
1760
|
|
1621
1761
|
if (strcmp(shortname, json_name) != 0) {
|
1622
|
-
|
1762
|
+
upb_strtable_insert(&m->ntof, json_name, json_size, json_v, ctx->arena);
|
1623
1763
|
}
|
1624
1764
|
|
1625
|
-
if (ctx->
|
1765
|
+
if (ctx->layout) {
|
1626
1766
|
const upb_msglayout_field *fields = m->layout->fields;
|
1627
1767
|
int count = m->layout->field_count;
|
1628
1768
|
bool found = false;
|
1629
|
-
int i;
|
1630
|
-
for (i = 0; i < count; i++) {
|
1769
|
+
for (int i = 0; i < count; i++) {
|
1631
1770
|
if (fields[i].number == field_number) {
|
1632
1771
|
f->layout_index = i;
|
1633
1772
|
found = true;
|
@@ -1638,9 +1777,15 @@ static void create_fielddef(
|
|
1638
1777
|
}
|
1639
1778
|
} else {
|
1640
1779
|
/* extension field. */
|
1641
|
-
|
1780
|
+
uint16_t layout_index = ctx->ext_count++;
|
1781
|
+
f = (upb_fielddef*)&ctx->file->exts[layout_index];
|
1782
|
+
f->layout_index = layout_index;
|
1642
1783
|
f->is_extension_ = true;
|
1643
1784
|
symtab_add(ctx, full_name, pack_def(f, UPB_DEFTYPE_FIELD));
|
1785
|
+
if (ctx->layout) {
|
1786
|
+
UPB_ASSERT(ctx->file->ext_layouts[f->layout_index]->field.number ==
|
1787
|
+
field_number);
|
1788
|
+
}
|
1644
1789
|
}
|
1645
1790
|
|
1646
1791
|
f->full_name = full_name;
|
@@ -1682,15 +1827,16 @@ static void create_fielddef(
|
|
1682
1827
|
symtab_errf(ctx, "oneof_index out of range (%s)", f->full_name);
|
1683
1828
|
}
|
1684
1829
|
|
1685
|
-
oneof = (upb_oneofdef*)&m->oneofs[oneof_index];
|
1830
|
+
oneof = (upb_oneofdef *)&m->oneofs[oneof_index];
|
1686
1831
|
f->oneof = oneof;
|
1687
1832
|
|
1688
1833
|
oneof->field_count++;
|
1689
1834
|
if (f->proto3_optional_) {
|
1690
1835
|
oneof->synthetic = true;
|
1691
1836
|
}
|
1692
|
-
CHK_OOM(
|
1693
|
-
CHK_OOM(
|
1837
|
+
CHK_OOM(upb_inttable_insert(&oneof->itof, f->number_, v, ctx->arena));
|
1838
|
+
CHK_OOM(
|
1839
|
+
upb_strtable_insert(&oneof->ntof, name.data, name.size, v, ctx->arena));
|
1694
1840
|
} else {
|
1695
1841
|
f->oneof = NULL;
|
1696
1842
|
if (f->proto3_optional_) {
|
@@ -1728,16 +1874,18 @@ static void create_enumdef(
|
|
1728
1874
|
name = google_protobuf_EnumDescriptorProto_name(enum_proto);
|
1729
1875
|
check_ident(ctx, name, false);
|
1730
1876
|
|
1731
|
-
e = (upb_enumdef*)&ctx->file->enums[ctx->
|
1877
|
+
e = (upb_enumdef*)&ctx->file->enums[ctx->enum_count++];
|
1732
1878
|
e->full_name = makefullname(ctx, prefix, name);
|
1733
1879
|
symtab_add(ctx, e->full_name, pack_def(e, UPB_DEFTYPE_ENUM));
|
1734
1880
|
|
1735
1881
|
values = google_protobuf_EnumDescriptorProto_value(enum_proto, &n);
|
1736
|
-
CHK_OOM(
|
1737
|
-
CHK_OOM(
|
1882
|
+
CHK_OOM(upb_strtable_init(&e->ntoi, n, ctx->arena));
|
1883
|
+
CHK_OOM(upb_inttable_init(&e->iton, ctx->arena));
|
1738
1884
|
|
1739
1885
|
e->file = ctx->file;
|
1740
1886
|
e->defaultval = 0;
|
1887
|
+
e->value_count = n;
|
1888
|
+
e->values = symtab_alloc(ctx, sizeof(*e->values) * n);
|
1741
1889
|
|
1742
1890
|
if (n == 0) {
|
1743
1891
|
symtab_errf(ctx, "enums must contain at least one value (%s)",
|
@@ -1745,32 +1893,30 @@ static void create_enumdef(
|
|
1745
1893
|
}
|
1746
1894
|
|
1747
1895
|
for (i = 0; i < n; i++) {
|
1748
|
-
const google_protobuf_EnumValueDescriptorProto *
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1896
|
+
const google_protobuf_EnumValueDescriptorProto *val_proto = values[i];
|
1897
|
+
upb_enumvaldef *val = (upb_enumvaldef*)&e->values[i];
|
1898
|
+
upb_strview name = google_protobuf_EnumValueDescriptorProto_name(val_proto);
|
1899
|
+
upb_value v = upb_value_constptr(val);
|
1900
|
+
|
1901
|
+
val->enum_ = e;
|
1902
|
+
val->full_name = makefullname(ctx, prefix, name);
|
1903
|
+
val->number = google_protobuf_EnumValueDescriptorProto_number(val_proto);
|
1904
|
+
symtab_add(ctx, val->full_name, pack_def(val, UPB_DEFTYPE_ENUMVAL));
|
1753
1905
|
|
1754
|
-
if (i == 0 && e->file->syntax == UPB_SYNTAX_PROTO3 &&
|
1906
|
+
if (i == 0 && e->file->syntax == UPB_SYNTAX_PROTO3 && val->number != 0) {
|
1755
1907
|
symtab_errf(ctx, "for proto3, the first enum value must be zero (%s)",
|
1756
1908
|
e->full_name);
|
1757
1909
|
}
|
1758
1910
|
|
1759
|
-
|
1760
|
-
symtab_errf(ctx, "duplicate enum label '%s'", name2);
|
1761
|
-
}
|
1762
|
-
|
1763
|
-
CHK_OOM(name2)
|
1764
|
-
CHK_OOM(
|
1765
|
-
upb_strtable_insert3(&e->ntoi, name2, strlen(name2), v, ctx->alloc));
|
1911
|
+
CHK_OOM(upb_strtable_insert(&e->ntoi, name.data, name.size, v, ctx->arena));
|
1766
1912
|
|
1767
|
-
|
1768
|
-
|
1769
|
-
CHK_OOM(
|
1913
|
+
// Multiple enumerators can have the same number, first one wins.
|
1914
|
+
if (!upb_inttable_lookup(&e->iton, val->number, NULL)) {
|
1915
|
+
CHK_OOM(upb_inttable_insert(&e->iton, val->number, v, ctx->arena));
|
1770
1916
|
}
|
1771
1917
|
}
|
1772
1918
|
|
1773
|
-
|
1919
|
+
upb_inttable_compact(&e->iton, ctx->arena);
|
1774
1920
|
}
|
1775
1921
|
|
1776
1922
|
static void create_msgdef(symtab_addctx *ctx, const char *prefix,
|
@@ -1781,35 +1927,44 @@ static void create_msgdef(symtab_addctx *ctx, const char *prefix,
|
|
1781
1927
|
const google_protobuf_FieldDescriptorProto *const *fields;
|
1782
1928
|
const google_protobuf_EnumDescriptorProto *const *enums;
|
1783
1929
|
const google_protobuf_DescriptorProto *const *msgs;
|
1784
|
-
|
1930
|
+
const google_protobuf_DescriptorProto_ExtensionRange *const *ext_ranges;
|
1931
|
+
size_t i, n_oneof, n_field, n_ext_range, n;
|
1785
1932
|
upb_strview name;
|
1786
1933
|
|
1787
1934
|
name = google_protobuf_DescriptorProto_name(msg_proto);
|
1788
1935
|
check_ident(ctx, name, false);
|
1789
1936
|
|
1790
|
-
|
1937
|
+
int msg_index = ctx->msg_count;
|
1938
|
+
m = (upb_msgdef*)&ctx->file->msgs[msg_index];
|
1791
1939
|
m->full_name = makefullname(ctx, prefix, name);
|
1940
|
+
ctx->msg_count++;
|
1792
1941
|
symtab_add(ctx, m->full_name, pack_def(m, UPB_DEFTYPE_MSG));
|
1793
1942
|
|
1794
1943
|
oneofs = google_protobuf_DescriptorProto_oneof_decl(msg_proto, &n_oneof);
|
1795
1944
|
fields = google_protobuf_DescriptorProto_field(msg_proto, &n_field);
|
1945
|
+
ext_ranges =
|
1946
|
+
google_protobuf_DescriptorProto_extension_range(msg_proto, &n_ext_range);
|
1796
1947
|
|
1797
|
-
CHK_OOM(
|
1798
|
-
CHK_OOM(
|
1799
|
-
ctx->alloc));
|
1948
|
+
CHK_OOM(upb_inttable_init(&m->itof, ctx->arena));
|
1949
|
+
CHK_OOM(upb_strtable_init(&m->ntof, n_oneof + n_field, ctx->arena));
|
1800
1950
|
|
1801
1951
|
m->file = ctx->file;
|
1802
1952
|
m->map_entry = false;
|
1953
|
+
m->is_message_set = false;
|
1954
|
+
m->message_set_ext = NULL;
|
1803
1955
|
|
1804
1956
|
options = google_protobuf_DescriptorProto_options(msg_proto);
|
1805
1957
|
|
1806
1958
|
if (options) {
|
1807
1959
|
m->map_entry = google_protobuf_MessageOptions_map_entry(options);
|
1960
|
+
m->is_message_set =
|
1961
|
+
google_protobuf_MessageOptions_message_set_wire_format(options);
|
1808
1962
|
}
|
1809
1963
|
|
1810
|
-
if (ctx->
|
1811
|
-
|
1812
|
-
ctx->
|
1964
|
+
if (ctx->layout) {
|
1965
|
+
/* create_fielddef() below depends on this being set. */
|
1966
|
+
m->layout = ctx->layout->msgs[msg_index];
|
1967
|
+
UPB_ASSERT(n_field == m->layout->field_count);
|
1813
1968
|
} else {
|
1814
1969
|
/* Allocate now (to allow cross-linking), populate later. */
|
1815
1970
|
m->layout = symtab_alloc(
|
@@ -1828,10 +1983,18 @@ static void create_msgdef(symtab_addctx *ctx, const char *prefix,
|
|
1828
1983
|
create_fielddef(ctx, m->full_name, m, fields[i]);
|
1829
1984
|
}
|
1830
1985
|
|
1831
|
-
|
1986
|
+
m->ext_range_count = n_ext_range;
|
1987
|
+
m->ext_ranges = symtab_alloc(ctx, sizeof(*m->ext_ranges) * n_ext_range);
|
1988
|
+
for (i = 0; i < n_ext_range; i++) {
|
1989
|
+
const google_protobuf_DescriptorProto_ExtensionRange *r = ext_ranges[i];
|
1990
|
+
upb_extrange *r_def = (upb_extrange*)&m->ext_ranges[i];
|
1991
|
+
r_def->start = google_protobuf_DescriptorProto_ExtensionRange_start(r);
|
1992
|
+
r_def->end = google_protobuf_DescriptorProto_ExtensionRange_end(r);
|
1993
|
+
}
|
1994
|
+
|
1832
1995
|
finalize_oneofs(ctx, m);
|
1833
1996
|
assign_msg_wellknowntype(m);
|
1834
|
-
|
1997
|
+
upb_inttable_compact(&m->itof, ctx->arena);
|
1835
1998
|
|
1836
1999
|
/* This message is built. Now build nested messages and enums. */
|
1837
2000
|
|
@@ -1840,6 +2003,11 @@ static void create_msgdef(symtab_addctx *ctx, const char *prefix,
|
|
1840
2003
|
create_enumdef(ctx, m->full_name, enums[i]);
|
1841
2004
|
}
|
1842
2005
|
|
2006
|
+
fields = google_protobuf_DescriptorProto_extension(msg_proto, &n);
|
2007
|
+
for (i = 0; i < n; i++) {
|
2008
|
+
create_fielddef(ctx, m->full_name, NULL, fields[i]);
|
2009
|
+
}
|
2010
|
+
|
1843
2011
|
msgs = google_protobuf_DescriptorProto_nested_type(msg_proto, &n);
|
1844
2012
|
for (i = 0; i < n; i++) {
|
1845
2013
|
create_msgdef(ctx, m->full_name, msgs[i]);
|
@@ -1896,6 +2064,22 @@ static void resolve_fielddef(symtab_addctx *ctx, const char *prefix,
|
|
1896
2064
|
|
1897
2065
|
name = google_protobuf_FieldDescriptorProto_extendee(field_proto);
|
1898
2066
|
f->msgdef = symtab_resolve(ctx, f, prefix, name, UPB_DEFTYPE_MSG);
|
2067
|
+
|
2068
|
+
const upb_msglayout_ext *ext = ctx->file->ext_layouts[f->layout_index];
|
2069
|
+
if (ctx->layout) {
|
2070
|
+
UPB_ASSERT(upb_fielddef_number(f) == ext->field.number);
|
2071
|
+
} else {
|
2072
|
+
upb_msglayout_ext *mut_ext = (upb_msglayout_ext*)ext;
|
2073
|
+
fill_fieldlayout(&mut_ext->field, f);
|
2074
|
+
mut_ext->field.presence = 0;
|
2075
|
+
mut_ext->field.offset = 0;
|
2076
|
+
mut_ext->field.submsg_index = 0;
|
2077
|
+
mut_ext->extendee = f->msgdef->layout;
|
2078
|
+
mut_ext->sub.submsg = f->sub.msgdef->layout;
|
2079
|
+
}
|
2080
|
+
|
2081
|
+
CHK_OOM(upb_inttable_insert(&ctx->symtab->exts, (uintptr_t)ext,
|
2082
|
+
upb_value_constptr(f), ctx->arena));
|
1899
2083
|
}
|
1900
2084
|
|
1901
2085
|
if ((upb_fielddef_issubmsg(f) || f->type_ == UPB_DESCRIPTOR_TYPE_ENUM) &&
|
@@ -1907,6 +2091,13 @@ static void resolve_fielddef(symtab_addctx *ctx, const char *prefix,
|
|
1907
2091
|
|
1908
2092
|
if (upb_fielddef_issubmsg(f)) {
|
1909
2093
|
f->sub.msgdef = symtab_resolve(ctx, f, prefix, name, UPB_DEFTYPE_MSG);
|
2094
|
+
if (f->is_extension_ && f->msgdef->is_message_set &&
|
2095
|
+
f->file == f->msgdef->file) {
|
2096
|
+
// TODO: When defs are restructured to follow message nesting, we can make
|
2097
|
+
// this check more robust. The actual rules for what make something
|
2098
|
+
// qualify as a MessageSet item are more strict.
|
2099
|
+
((upb_msgdef*)f->sub.msgdef)->message_set_ext = f;
|
2100
|
+
}
|
1910
2101
|
} else if (f->type_ == UPB_DESCRIPTOR_TYPE_ENUM) {
|
1911
2102
|
f->sub.enumdef = symtab_resolve(ctx, f, prefix, name, UPB_DEFTYPE_ENUM);
|
1912
2103
|
}
|
@@ -1943,16 +2134,37 @@ static void build_filedef(
|
|
1943
2134
|
const upb_strview* strs;
|
1944
2135
|
size_t i, n;
|
1945
2136
|
|
1946
|
-
|
2137
|
+
file->symtab = ctx->symtab;
|
1947
2138
|
|
2139
|
+
/* One pass to count and allocate. */
|
2140
|
+
file->msg_count = 0;
|
2141
|
+
file->enum_count = 0;
|
2142
|
+
file->ext_count = 0;
|
2143
|
+
count_types_in_file(file_proto, file);
|
1948
2144
|
file->msgs = symtab_alloc(ctx, sizeof(*file->msgs) * file->msg_count);
|
1949
2145
|
file->enums = symtab_alloc(ctx, sizeof(*file->enums) * file->enum_count);
|
1950
2146
|
file->exts = symtab_alloc(ctx, sizeof(*file->exts) * file->ext_count);
|
1951
2147
|
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
2148
|
+
ctx->msg_count = 0;
|
2149
|
+
ctx->enum_count = 0;
|
2150
|
+
ctx->ext_count = 0;
|
2151
|
+
|
2152
|
+
if (ctx->layout) {
|
2153
|
+
/* We are using the ext layouts that were passed in. */
|
2154
|
+
file->ext_layouts = ctx->layout->exts;
|
2155
|
+
if (ctx->layout->ext_count != file->ext_count) {
|
2156
|
+
symtab_errf(ctx, "Extension count did not match layout (%d vs %d)",
|
2157
|
+
ctx->layout->ext_count, file->ext_count);
|
2158
|
+
}
|
2159
|
+
} else {
|
2160
|
+
/* We are building ext layouts from scratch. */
|
2161
|
+
file->ext_layouts =
|
2162
|
+
symtab_alloc(ctx, sizeof(*file->ext_layouts) * file->ext_count);
|
2163
|
+
upb_msglayout_ext *ext = symtab_alloc(ctx, sizeof(*ext) * file->ext_count);
|
2164
|
+
for (int i = 0; i < file->ext_count; i++) {
|
2165
|
+
file->ext_layouts[i] = &ext[i];
|
2166
|
+
}
|
2167
|
+
}
|
1956
2168
|
|
1957
2169
|
if (!google_protobuf_FileDescriptorProto_has_name(file_proto)) {
|
1958
2170
|
symtab_errf(ctx, "File has no name");
|
@@ -2033,11 +2245,12 @@ static void build_filedef(
|
|
2033
2245
|
|
2034
2246
|
/* Create extensions. */
|
2035
2247
|
exts = google_protobuf_FileDescriptorProto_extension(file_proto, &n);
|
2036
|
-
file->exts = symtab_alloc(ctx, sizeof(*file->exts) * n);
|
2037
2248
|
for (i = 0; i < n; i++) {
|
2038
2249
|
create_fielddef(ctx, file->package, NULL, exts[i]);
|
2039
2250
|
}
|
2040
2251
|
|
2252
|
+
UPB_ASSERT(ctx->ext_count == file->ext_count);
|
2253
|
+
|
2041
2254
|
/* Now that all names are in the table, build layouts and resolve refs. */
|
2042
2255
|
for (i = 0; i < (size_t)file->ext_count; i++) {
|
2043
2256
|
resolve_fielddef(ctx, file->package, (upb_fielddef*)&file->exts[i]);
|
@@ -2051,70 +2264,73 @@ static void build_filedef(
|
|
2051
2264
|
}
|
2052
2265
|
}
|
2053
2266
|
|
2054
|
-
if (!ctx->
|
2267
|
+
if (!ctx->layout) {
|
2055
2268
|
for (i = 0; i < (size_t)file->msg_count; i++) {
|
2056
2269
|
const upb_msgdef *m = &file->msgs[i];
|
2057
2270
|
make_layout(ctx, m);
|
2058
2271
|
}
|
2059
2272
|
}
|
2273
|
+
|
2274
|
+
CHK_OOM(
|
2275
|
+
_upb_extreg_add(ctx->symtab->extreg, file->ext_layouts, file->ext_count));
|
2060
2276
|
}
|
2061
2277
|
|
2062
|
-
static void remove_filedef(upb_symtab *s, upb_filedef *file) {
|
2063
|
-
upb_alloc *alloc = upb_arena_alloc(s->arena);
|
2278
|
+
static void remove_filedef(symtab_addctx *ctx, upb_symtab *s, upb_filedef *file) {
|
2064
2279
|
int i;
|
2065
|
-
for (i = 0; i <
|
2280
|
+
for (i = 0; i < ctx->msg_count; i++) {
|
2066
2281
|
const char *name = file->msgs[i].full_name;
|
2067
|
-
|
2282
|
+
upb_strtable_remove(&s->syms, name, strlen(name), NULL);
|
2068
2283
|
}
|
2069
|
-
for (i = 0; i <
|
2284
|
+
for (i = 0; i < ctx->enum_count; i++) {
|
2070
2285
|
const char *name = file->enums[i].full_name;
|
2071
|
-
|
2286
|
+
upb_strtable_remove(&s->syms, name, strlen(name), NULL);
|
2072
2287
|
}
|
2073
|
-
for (i = 0; i <
|
2288
|
+
for (i = 0; i < ctx->ext_count; i++) {
|
2074
2289
|
const char *name = file->exts[i].full_name;
|
2075
|
-
|
2290
|
+
upb_strtable_remove(&s->syms, name, strlen(name), NULL);
|
2076
2291
|
}
|
2077
2292
|
}
|
2078
2293
|
|
2079
2294
|
static const upb_filedef *_upb_symtab_addfile(
|
2080
2295
|
upb_symtab *s, const google_protobuf_FileDescriptorProto *file_proto,
|
2081
|
-
const
|
2082
|
-
upb_arena *file_arena = upb_arena_new();
|
2083
|
-
upb_filedef *file;
|
2296
|
+
const upb_msglayout_file *layout, upb_status *status) {
|
2084
2297
|
symtab_addctx ctx;
|
2298
|
+
upb_strview name = google_protobuf_FileDescriptorProto_name(file_proto);
|
2085
2299
|
|
2086
|
-
if (
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2300
|
+
if (upb_strtable_lookup2(&s->files, name.data, name.size, NULL)) {
|
2301
|
+
upb_status_seterrf(status, "duplicate file name (%.*s)",
|
2302
|
+
UPB_STRVIEW_ARGS(name));
|
2303
|
+
return NULL;
|
2304
|
+
}
|
2090
2305
|
|
2091
|
-
ctx.file = file;
|
2092
2306
|
ctx.symtab = s;
|
2093
|
-
ctx.
|
2094
|
-
ctx.alloc = upb_arena_alloc(file_arena);
|
2095
|
-
ctx.layouts = layouts;
|
2307
|
+
ctx.layout = layout;
|
2096
2308
|
ctx.status = status;
|
2309
|
+
ctx.file = NULL;
|
2310
|
+
ctx.arena = upb_arena_new();
|
2097
2311
|
|
2098
|
-
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2312
|
+
if (!ctx.arena) {
|
2313
|
+
upb_status_setoom(status);
|
2314
|
+
return NULL;
|
2315
|
+
}
|
2102
2316
|
|
2103
2317
|
if (UPB_UNLIKELY(UPB_SETJMP(ctx.err))) {
|
2104
2318
|
UPB_ASSERT(!upb_ok(status));
|
2105
|
-
|
2106
|
-
|
2319
|
+
if (ctx.file) {
|
2320
|
+
remove_filedef(&ctx, s, ctx.file);
|
2321
|
+
ctx.file = NULL;
|
2322
|
+
}
|
2107
2323
|
} else {
|
2108
|
-
|
2109
|
-
|
2110
|
-
|
2324
|
+
ctx.file = symtab_alloc(&ctx, sizeof(*ctx.file));
|
2325
|
+
build_filedef(&ctx, ctx.file, file_proto);
|
2326
|
+
upb_strtable_insert(&s->files, name.data, name.size,
|
2327
|
+
upb_value_constptr(ctx.file), ctx.arena);
|
2111
2328
|
UPB_ASSERT(upb_ok(status));
|
2112
|
-
upb_arena_fuse(s->arena,
|
2329
|
+
upb_arena_fuse(s->arena, ctx.arena);
|
2113
2330
|
}
|
2114
2331
|
|
2115
|
-
|
2116
|
-
|
2117
|
-
return file;
|
2332
|
+
upb_arena_free(ctx.arena);
|
2333
|
+
return ctx.file;
|
2118
2334
|
}
|
2119
2335
|
|
2120
2336
|
const upb_filedef *upb_symtab_addfile(
|
@@ -2147,7 +2363,8 @@ bool _upb_symtab_loaddefinit(upb_symtab *s, const upb_def_init *init) {
|
|
2147
2363
|
}
|
2148
2364
|
|
2149
2365
|
file = google_protobuf_FileDescriptorProto_parse_ex(
|
2150
|
-
init->descriptor.data, init->descriptor.size,
|
2366
|
+
init->descriptor.data, init->descriptor.size, NULL, UPB_DECODE_ALIAS,
|
2367
|
+
arena);
|
2151
2368
|
s->bytes_loaded += init->descriptor.size;
|
2152
2369
|
|
2153
2370
|
if (!file) {
|
@@ -2159,14 +2376,16 @@ bool _upb_symtab_loaddefinit(upb_symtab *s, const upb_def_init *init) {
|
|
2159
2376
|
goto err;
|
2160
2377
|
}
|
2161
2378
|
|
2162
|
-
if (!_upb_symtab_addfile(s, file, init->
|
2379
|
+
if (!_upb_symtab_addfile(s, file, init->layout, &status)) goto err;
|
2163
2380
|
|
2164
2381
|
upb_arena_free(arena);
|
2165
2382
|
return true;
|
2166
2383
|
|
2167
2384
|
err:
|
2168
|
-
fprintf(stderr,
|
2169
|
-
|
2385
|
+
fprintf(stderr,
|
2386
|
+
"Error loading compiled-in descriptor for file '%s' (this should "
|
2387
|
+
"never happen): %s\n",
|
2388
|
+
init->filename, upb_status_errmsg(&status));
|
2170
2389
|
upb_arena_free(arena);
|
2171
2390
|
return false;
|
2172
2391
|
}
|
@@ -2175,4 +2394,20 @@ size_t _upb_symtab_bytesloaded(const upb_symtab *s) {
|
|
2175
2394
|
return s->bytes_loaded;
|
2176
2395
|
}
|
2177
2396
|
|
2397
|
+
upb_arena *_upb_symtab_arena(const upb_symtab *s) {
|
2398
|
+
return s->arena;
|
2399
|
+
}
|
2400
|
+
|
2401
|
+
const upb_fielddef *_upb_symtab_lookupextfield(const upb_symtab *s,
|
2402
|
+
const upb_msglayout_ext *ext) {
|
2403
|
+
upb_value v;
|
2404
|
+
bool ok = upb_inttable_lookup(&s->exts, (uintptr_t)ext, &v);
|
2405
|
+
UPB_ASSERT(ok);
|
2406
|
+
return upb_value_getconstptr(v);
|
2407
|
+
}
|
2408
|
+
|
2409
|
+
const upb_extreg *upb_symtab_extreg(const upb_symtab *s) {
|
2410
|
+
return s->extreg;
|
2411
|
+
}
|
2412
|
+
|
2178
2413
|
#undef CHK_OOM
|