diff --git a/build/source_list.bzl b/build/source_list.bzl
index 9092865..225a563 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -701,6 +701,7 @@
     "quic/tools/quic_client_default_network_helper.h",
     "quic/tools/quic_default_client.h",
     "quic/tools/quic_memory_cache_backend.h",
+    "quic/tools/quic_name_lookup.h",
     "quic/tools/quic_server_factory.h",
     "quic/tools/quic_simple_client_session.h",
     "quic/tools/quic_simple_client_stream.h",
@@ -725,6 +726,7 @@
     "quic/tools/quic_client_default_network_helper.cc",
     "quic/tools/quic_default_client.cc",
     "quic/tools/quic_memory_cache_backend.cc",
+    "quic/tools/quic_name_lookup.cc",
     "quic/tools/quic_server_factory.cc",
     "quic/tools/quic_simple_client_session.cc",
     "quic/tools/quic_simple_client_stream.cc",
diff --git a/build/source_list.gni b/build/source_list.gni
index e06888f..de22a2a 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -701,6 +701,7 @@
     "src/quiche/quic/tools/quic_client_default_network_helper.h",
     "src/quiche/quic/tools/quic_default_client.h",
     "src/quiche/quic/tools/quic_memory_cache_backend.h",
+    "src/quiche/quic/tools/quic_name_lookup.h",
     "src/quiche/quic/tools/quic_server_factory.h",
     "src/quiche/quic/tools/quic_simple_client_session.h",
     "src/quiche/quic/tools/quic_simple_client_stream.h",
@@ -725,6 +726,7 @@
     "src/quiche/quic/tools/quic_client_default_network_helper.cc",
     "src/quiche/quic/tools/quic_default_client.cc",
     "src/quiche/quic/tools/quic_memory_cache_backend.cc",
+    "src/quiche/quic/tools/quic_name_lookup.cc",
     "src/quiche/quic/tools/quic_server_factory.cc",
     "src/quiche/quic/tools/quic_simple_client_session.cc",
     "src/quiche/quic/tools/quic_simple_client_stream.cc",
diff --git a/build/source_list.json b/build/source_list.json
index 0811079..7c929bf 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -700,6 +700,7 @@
     "quiche/quic/tools/quic_client_default_network_helper.h",
     "quiche/quic/tools/quic_default_client.h",
     "quiche/quic/tools/quic_memory_cache_backend.h",
+    "quiche/quic/tools/quic_name_lookup.h",
     "quiche/quic/tools/quic_server_factory.h",
     "quiche/quic/tools/quic_simple_client_session.h",
     "quiche/quic/tools/quic_simple_client_stream.h",
@@ -724,6 +725,7 @@
     "quiche/quic/tools/quic_client_default_network_helper.cc",
     "quiche/quic/tools/quic_default_client.cc",
     "quiche/quic/tools/quic_memory_cache_backend.cc",
+    "quiche/quic/tools/quic_name_lookup.cc",
     "quiche/quic/tools/quic_server_factory.cc",
     "quiche/quic/tools/quic_simple_client_session.cc",
     "quiche/quic/tools/quic_simple_client_stream.cc",
diff --git a/quiche/quic/core/io/socket_posix.cc b/quiche/quic/core/io/socket_posix.cc
index 59f286b..b69f6cc 100644
--- a/quiche/quic/core/io/socket_posix.cc
+++ b/quiche/quic/core/io/socket_posix.cc
@@ -15,6 +15,15 @@
 #include "quiche/quic/platform/api/quic_ip_address_family.h"
 #include "quiche/common/platform/api/quiche_logging.h"
 
+// accept4() is a Linux-specific extension that is available in glibc 2.10+.
+#if defined(__linux__) && defined(_GNU_SOURCE) && defined(__GLIBC_PREREQ)
+#if __GLIBC_PREREQ(2, 10)
+#define HAS_ACCEPT4 1
+#else
+#define HAS_ACCEPT4 0
+#endif
+#endif
+
 namespace quic::socket_api {
 
 namespace {
@@ -171,7 +180,7 @@
   }
 }
 
-#if defined(__linux__) && defined(SOCK_NONBLOCK)
+#if HAS_ACCEPT4
 absl::StatusOr<AcceptResult> AcceptWithFlags(SocketFd fd, int flags) {
   QUICHE_DCHECK_GE(fd, 0);
 
@@ -200,7 +209,7 @@
     return peer_address.status();
   }
 }
-#endif  // defined(__linux__) && defined(SOCK_NONBLOCK)
+#endif  // HAS_ACCEPT4
 
 socklen_t GetAddrlen(IpAddressFamily family) {
   switch (family) {
@@ -409,7 +418,7 @@
 absl::StatusOr<AcceptResult> Accept(SocketFd fd, bool blocking) {
   QUICHE_DCHECK_GE(fd, 0);
 
-#if defined(__linux__) && defined(SOCK_NONBLOCK)
+#if HAS_ACCEPT4
   if (!blocking) {
     return AcceptWithFlags(fd, SOCK_NONBLOCK);
   }
diff --git a/quiche/quic/tools/connect_tunnel.cc b/quiche/quic/tools/connect_tunnel.cc
index ef2a5eb..e86d628 100644
--- a/quiche/quic/tools/connect_tunnel.cc
+++ b/quiche/quic/tools/connect_tunnel.cc
@@ -22,7 +22,7 @@
 #include "quiche/quic/core/quic_error_codes.h"
 #include "quiche/quic/platform/api/quic_socket_address.h"
 #include "quiche/quic/tools/quic_backend_response.h"
-#include "quiche/quic/tools/quic_client.h"
+#include "quiche/quic/tools/quic_name_lookup.h"
 #include "quiche/quic/tools/quic_simple_server_backend.h"
 #include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/platform/api/quiche_mem_slice.h"
diff --git a/quiche/quic/tools/quic_client.cc b/quiche/quic/tools/quic_client.cc
index b3e4705..c6de357 100644
--- a/quiche/quic/tools/quic_client.cc
+++ b/quiche/quic/tools/quic_client.cc
@@ -4,14 +4,6 @@
 
 #include "quiche/quic/tools/quic_client.h"
 
-#include <errno.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <string.h>
-#include <sys/epoll.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-
 #include <utility>
 
 #include "quiche/quic/core/crypto/quic_random.h"
@@ -29,31 +21,6 @@
 
 namespace quic {
 
-namespace tools {
-
-QuicSocketAddress LookupAddress(int address_family_for_lookup, std::string host,
-                                std::string port) {
-  addrinfo hint;
-  memset(&hint, 0, sizeof(hint));
-  hint.ai_family = address_family_for_lookup;
-  hint.ai_protocol = IPPROTO_UDP;
-
-  addrinfo* info_list = nullptr;
-  int result = getaddrinfo(host.c_str(), port.c_str(), &hint, &info_list);
-  if (result != 0) {
-    QUIC_LOG(ERROR) << "Failed to look up " << host << ": "
-                    << gai_strerror(result);
-    return QuicSocketAddress();
-  }
-
-  QUICHE_CHECK(info_list != nullptr);
-  std::unique_ptr<addrinfo, void (*)(addrinfo*)> info_list_owned(info_list,
-                                                                 freeaddrinfo);
-  return QuicSocketAddress(info_list->ai_addr, info_list->ai_addrlen);
-}
-
-}  // namespace tools
-
 QuicClient::QuicClient(QuicSocketAddress server_address,
                        const QuicServerId& server_id,
                        const ParsedQuicVersionVector& supported_versions,
diff --git a/quiche/quic/tools/quic_client.h b/quiche/quic/tools/quic_client.h
index e0106c7..e878a8e 100644
--- a/quiche/quic/tools/quic_client.h
+++ b/quiche/quic/tools/quic_client.h
@@ -18,6 +18,7 @@
 #include "quiche/quic/core/quic_packet_reader.h"
 #include "quiche/quic/platform/api/quic_epoll.h"
 #include "quiche/quic/tools/quic_client_epoll_network_helper.h"
+#include "quiche/quic/tools/quic_name_lookup.h"
 #include "quiche/quic/tools/quic_spdy_client_base.h"
 
 namespace quic {
@@ -28,17 +29,6 @@
 class QuicClientPeer;
 }  // namespace test
 
-namespace tools {
-
-QuicSocketAddress LookupAddress(int address_family_for_lookup, std::string host,
-                                std::string port);
-
-inline QuicSocketAddress LookupAddress(std::string host, std::string port) {
-  return LookupAddress(0, host, port);
-}
-
-}  // namespace tools
-
 class QuicClient : public QuicSpdyClientBase {
  public:
   // These will create their own QuicClientEpollNetworkHelper.
diff --git a/quiche/quic/tools/quic_name_lookup.cc b/quiche/quic/tools/quic_name_lookup.cc
new file mode 100644
index 0000000..5098e80
--- /dev/null
+++ b/quiche/quic/tools/quic_name_lookup.cc
@@ -0,0 +1,36 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "quiche/quic/tools/quic_name_lookup.h"
+
+#include <netdb.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+
+#include "quiche/quic/platform/api/quic_logging.h"
+
+namespace quic::tools {
+
+QuicSocketAddress LookupAddress(int address_family_for_lookup, std::string host,
+                                std::string port) {
+  addrinfo hint;
+  memset(&hint, 0, sizeof(hint));
+  hint.ai_family = address_family_for_lookup;
+  hint.ai_protocol = IPPROTO_UDP;
+
+  addrinfo* info_list = nullptr;
+  int result = getaddrinfo(host.c_str(), port.c_str(), &hint, &info_list);
+  if (result != 0) {
+    QUIC_LOG(ERROR) << "Failed to look up " << host << ": "
+                    << gai_strerror(result);
+    return QuicSocketAddress();
+  }
+
+  QUICHE_CHECK(info_list != nullptr);
+  std::unique_ptr<addrinfo, void (*)(addrinfo*)> info_list_owned(info_list,
+                                                                 freeaddrinfo);
+  return QuicSocketAddress(info_list->ai_addr, info_list->ai_addrlen);
+}
+
+}  // namespace quic::tools
diff --git a/quiche/quic/tools/quic_name_lookup.h b/quiche/quic/tools/quic_name_lookup.h
new file mode 100644
index 0000000..99a69b1
--- /dev/null
+++ b/quiche/quic/tools/quic_name_lookup.h
@@ -0,0 +1,23 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_TOOLS_QUIC_NAME_LOOKUP_H_
+#define QUICHE_QUIC_TOOLS_QUIC_NAME_LOOKUP_H_
+
+#include <string>
+
+#include "quiche/quic/platform/api/quic_socket_address.h"
+
+namespace quic::tools {
+
+quic::QuicSocketAddress LookupAddress(int address_family_for_lookup,
+                                      std::string host, std::string port);
+
+inline QuicSocketAddress LookupAddress(std::string host, std::string port) {
+  return LookupAddress(0, host, port);
+}
+
+}  // namespace quic::tools
+
+#endif  // QUICHE_QUIC_TOOLS_QUIC_NAME_LOOKUP_H_
diff --git a/quiche/quic/tools/quic_server.cc b/quiche/quic/tools/quic_server.cc
index b318cfd..aace378 100644
--- a/quiche/quic/tools/quic_server.cc
+++ b/quiche/quic/tools/quic_server.cc
@@ -4,13 +4,6 @@
 
 #include "quiche/quic/tools/quic_server.h"
 
-#include <errno.h>
-#include <features.h>
-#include <netinet/in.h>
-#include <string.h>
-#include <sys/epoll.h>
-#include <sys/socket.h>
-
 #include <cstdint>
 #include <memory>
 
