From dcd0f6b8bd670d3e9e74ad909f3302d5122cb494 Mon Sep 17 00:00:00 2001 From: Yijie Ma Date: Tue, 12 Sep 2023 18:09:26 -0700 Subject: [PATCH] =?UTF-8?q?Revert=20"Revert=20"[EventEngine]=20Make=20`Are?= =?UTF-8?q?sResolver`=20build=20compatible=20with=20older=E2=80=A6"=20(#34?= =?UTF-8?q?328)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverts grpc/grpc#34325 --- Package.swift | 1 + build_autogenerated.yaml | 4 + gRPC-C++.podspec | 2 + gRPC-Core.podspec | 2 + grpc.gemspec | 1 + package.xml | 1 + src/core/BUILD | 1 + src/core/lib/event_engine/ares_resolver.cc | 9 ++ src/core/lib/event_engine/nameser.h | 102 +++++++++++++++++++++ tools/doxygen/Doxyfile.c++.internal | 1 + tools/doxygen/Doxyfile.core.internal | 1 + 11 files changed, 125 insertions(+) create mode 100644 src/core/lib/event_engine/nameser.h diff --git a/Package.swift b/Package.swift index 05576ebc0dc..31e92441379 100644 --- a/Package.swift +++ b/Package.swift @@ -1087,6 +1087,7 @@ let package = Package( "src/core/lib/event_engine/handle_containers.h", "src/core/lib/event_engine/memory_allocator.cc", "src/core/lib/event_engine/memory_allocator_factory.h", + "src/core/lib/event_engine/nameser.h", "src/core/lib/event_engine/poller.h", "src/core/lib/event_engine/posix.h", "src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc", diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 3615cc46896..cb414f5c7d1 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -697,6 +697,7 @@ libs: - src/core/lib/event_engine/grpc_polled_fd.h - src/core/lib/event_engine/handle_containers.h - src/core/lib/event_engine/memory_allocator_factory.h + - src/core/lib/event_engine/nameser.h - src/core/lib/event_engine/poller.h - src/core/lib/event_engine/posix.h - src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h @@ -2109,6 +2110,7 @@ libs: - src/core/lib/event_engine/grpc_polled_fd.h - src/core/lib/event_engine/handle_containers.h - src/core/lib/event_engine/memory_allocator_factory.h + - src/core/lib/event_engine/nameser.h - src/core/lib/event_engine/poller.h - src/core/lib/event_engine/posix.h - src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h @@ -4122,6 +4124,7 @@ libs: - src/core/lib/event_engine/grpc_polled_fd.h - src/core/lib/event_engine/handle_containers.h - src/core/lib/event_engine/memory_allocator_factory.h + - src/core/lib/event_engine/nameser.h - src/core/lib/event_engine/poller.h - src/core/lib/event_engine/posix.h - src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h @@ -15637,6 +15640,7 @@ targets: - src/core/lib/event_engine/grpc_polled_fd.h - src/core/lib/event_engine/handle_containers.h - src/core/lib/event_engine/memory_allocator_factory.h + - src/core/lib/event_engine/nameser.h - src/core/lib/event_engine/poller.h - src/core/lib/event_engine/posix.h - src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index ca7d8ae57c1..66fc44b4d39 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -768,6 +768,7 @@ Pod::Spec.new do |s| 'src/core/lib/event_engine/grpc_polled_fd.h', 'src/core/lib/event_engine/handle_containers.h', 'src/core/lib/event_engine/memory_allocator_factory.h', + 'src/core/lib/event_engine/nameser.h', 'src/core/lib/event_engine/poller.h', 'src/core/lib/event_engine/posix.h', 'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h', @@ -1836,6 +1837,7 @@ Pod::Spec.new do |s| 'src/core/lib/event_engine/grpc_polled_fd.h', 'src/core/lib/event_engine/handle_containers.h', 'src/core/lib/event_engine/memory_allocator_factory.h', + 'src/core/lib/event_engine/nameser.h', 'src/core/lib/event_engine/poller.h', 'src/core/lib/event_engine/posix.h', 'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h', diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index b1b5ac2c4e5..74a81412c70 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -1188,6 +1188,7 @@ Pod::Spec.new do |s| 'src/core/lib/event_engine/handle_containers.h', 'src/core/lib/event_engine/memory_allocator.cc', 'src/core/lib/event_engine/memory_allocator_factory.h', + 'src/core/lib/event_engine/nameser.h', 'src/core/lib/event_engine/poller.h', 'src/core/lib/event_engine/posix.h', 'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc', @@ -2589,6 +2590,7 @@ Pod::Spec.new do |s| 'src/core/lib/event_engine/grpc_polled_fd.h', 'src/core/lib/event_engine/handle_containers.h', 'src/core/lib/event_engine/memory_allocator_factory.h', + 'src/core/lib/event_engine/nameser.h', 'src/core/lib/event_engine/poller.h', 'src/core/lib/event_engine/posix.h', 'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h', diff --git a/grpc.gemspec b/grpc.gemspec index 9d0846479a7..f72b646997d 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -1093,6 +1093,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/event_engine/handle_containers.h ) s.files += %w( src/core/lib/event_engine/memory_allocator.cc ) s.files += %w( src/core/lib/event_engine/memory_allocator_factory.h ) + s.files += %w( src/core/lib/event_engine/nameser.h ) s.files += %w( src/core/lib/event_engine/poller.h ) s.files += %w( src/core/lib/event_engine/posix.h ) s.files += %w( src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc ) diff --git a/package.xml b/package.xml index ceda0c4b8f7..0aa07a59206 100644 --- a/package.xml +++ b/package.xml @@ -1075,6 +1075,7 @@ + diff --git a/src/core/BUILD b/src/core/BUILD index a8474c2d84e..28604b0cd8a 100644 --- a/src/core/BUILD +++ b/src/core/BUILD @@ -2394,6 +2394,7 @@ grpc_cc_library( hdrs = [ "lib/event_engine/ares_resolver.h", "lib/event_engine/grpc_polled_fd.h", + "lib/event_engine/nameser.h", "lib/event_engine/posix_engine/grpc_polled_fd_posix.h", ], external_deps = [ diff --git a/src/core/lib/event_engine/ares_resolver.cc b/src/core/lib/event_engine/ares_resolver.cc index 2f26a9fcf1c..7e6160e1299 100644 --- a/src/core/lib/event_engine/ares_resolver.cc +++ b/src/core/lib/event_engine/ares_resolver.cc @@ -22,6 +22,7 @@ #include "src/core/lib/iomgr/port.h" +// IWYU pragma: no_include // IWYU pragma: no_include // IWYU pragma: no_include // IWYU pragma: no_include @@ -33,7 +34,15 @@ #if GRPC_ARES == 1 +#include + +#if ARES_VERSION >= 0x011200 +// c-ares 1.18.0 or later starts to provide ares_nameser.h as a public header. #include +#else +#include "src/core/lib/event_engine/nameser.h" // IWYU pragma: keep +#endif + #include #include diff --git a/src/core/lib/event_engine/nameser.h b/src/core/lib/event_engine/nameser.h new file mode 100644 index 00000000000..c73a91622d5 --- /dev/null +++ b/src/core/lib/event_engine/nameser.h @@ -0,0 +1,102 @@ +// Copyright 2023 The gRPC Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef GRPC_SRC_CORE_LIB_EVENT_ENGINE_NAMESER_H +#define GRPC_SRC_CORE_LIB_EVENT_ENGINE_NAMESER_H + +#include + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_HAVE_ARPA_NAMESER + +#include // IWYU pragma: keep + +#else // GRPC_HAVE_ARPA_NAMESER + +typedef enum __ns_class { + ns_c_invalid = 0, // Cookie. + ns_c_in = 1, // Internet. + ns_c_2 = 2, // unallocated/unsupported. + ns_c_chaos = 3, // MIT Chaos-net. + ns_c_hs = 4, // MIT Hesiod. + // Query class values which do not appear in resource records + ns_c_none = 254, // for prereq. sections in update requests + ns_c_any = 255, // Wildcard match. + ns_c_max = 65536 +} ns_class; + +typedef enum __ns_type { + ns_t_invalid = 0, // Cookie. + ns_t_a = 1, // Host address. + ns_t_ns = 2, // Authoritative server. + ns_t_md = 3, // Mail destination. + ns_t_mf = 4, // Mail forwarder. + ns_t_cname = 5, // Canonical name. + ns_t_soa = 6, // Start of authority zone. + ns_t_mb = 7, // Mailbox domain name. + ns_t_mg = 8, // Mail group member. + ns_t_mr = 9, // Mail rename name. + ns_t_null = 10, // Null resource record. + ns_t_wks = 11, // Well known service. + ns_t_ptr = 12, // Domain name pointer. + ns_t_hinfo = 13, // Host information. + ns_t_minfo = 14, // Mailbox information. + ns_t_mx = 15, // Mail routing information. + ns_t_txt = 16, // Text strings. + ns_t_rp = 17, // Responsible person. + ns_t_afsdb = 18, // AFS cell database. + ns_t_x25 = 19, // X_25 calling address. + ns_t_isdn = 20, // ISDN calling address. + ns_t_rt = 21, // Router. + ns_t_nsap = 22, // NSAP address. + ns_t_nsap_ptr = 23, // Reverse NSAP lookup (deprecated). + ns_t_sig = 24, // Security signature. + ns_t_key = 25, // Security key. + ns_t_px = 26, // X.400 mail mapping. + ns_t_gpos = 27, // Geographical position (withdrawn). + ns_t_aaaa = 28, // Ip6 Address. + ns_t_loc = 29, // Location Information. + ns_t_nxt = 30, // Next domain (security). + ns_t_eid = 31, // Endpoint identifier. + ns_t_nimloc = 32, // Nimrod Locator. + ns_t_srv = 33, // Server Selection. + ns_t_atma = 34, // ATM Address + ns_t_naptr = 35, // Naming Authority PoinTeR + ns_t_kx = 36, // Key Exchange + ns_t_cert = 37, // Certification record + ns_t_a6 = 38, // IPv6 address (deprecates AAAA) + ns_t_dname = 39, // Non-terminal DNAME (for IPv6) + ns_t_sink = 40, // Kitchen sink (experimentatl) + ns_t_opt = 41, // EDNS0 option (meta-RR) + ns_t_apl = 42, // Address prefix list (RFC3123) + ns_t_ds = 43, // Delegation Signer (RFC4034) + ns_t_sshfp = 44, // SSH Key Fingerprint (RFC4255) + ns_t_rrsig = 46, // Resource Record Signature (RFC4034) + ns_t_nsec = 47, // Next Secure (RFC4034) + ns_t_dnskey = 48, // DNS Public Key (RFC4034) + ns_t_tkey = 249, // Transaction key + ns_t_tsig = 250, // Transaction signature. + ns_t_ixfr = 251, // Incremental zone transfer. + ns_t_axfr = 252, // Transfer zone of authority. + ns_t_mailb = 253, // Transfer mailbox records. + ns_t_maila = 254, // Transfer mail agent records. + ns_t_any = 255, // Wildcard match. + ns_t_zxfr = 256, // BIND-specific, nonstandard. + ns_t_max = 65536 +} ns_type; + +#endif // GRPC_HAVE_ARPA_NAMESER + +#endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_NAMESER_H diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index 771a3471091..f7a4c67cfa4 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -2090,6 +2090,7 @@ src/core/lib/event_engine/grpc_polled_fd.h \ src/core/lib/event_engine/handle_containers.h \ src/core/lib/event_engine/memory_allocator.cc \ src/core/lib/event_engine/memory_allocator_factory.h \ +src/core/lib/event_engine/nameser.h \ src/core/lib/event_engine/poller.h \ src/core/lib/event_engine/posix.h \ src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \ diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index 038c92baf2b..81098cc94de 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -1868,6 +1868,7 @@ src/core/lib/event_engine/grpc_polled_fd.h \ src/core/lib/event_engine/handle_containers.h \ src/core/lib/event_engine/memory_allocator.cc \ src/core/lib/event_engine/memory_allocator_factory.h \ +src/core/lib/event_engine/nameser.h \ src/core/lib/event_engine/poller.h \ src/core/lib/event_engine/posix.h \ src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \