| // Copyright 2009 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This is a convenience header to pull in the platform-specific headers |
| // that define at least: |
| // |
| // struct addrinfo |
| // struct sockaddr* |
| // getaddrinfo() |
| // freeaddrinfo() |
| // AI_* |
| // AF_* |
| // |
| // Prefer including this file instead of directly writing the #if / #else, |
| // since it avoids duplicating the platform-specific selections. |
| // |
| // Note that this header transitively includes windows.h on Windows, which |
| // pollutes the global namespace with thousands of macro definitions, so try to |
| // avoid including this in headers. Including windows.h can also add significant |
| // build overhead. |
| |
| #ifndef NET_BASE_SYS_ADDRINFO_H_ |
| #define NET_BASE_SYS_ADDRINFO_H_ |
| |
| #include "build/build_config.h" |
| |
| #if BUILDFLAG(IS_WIN) |
| #include <winsock2.h> |
| #include <ws2tcpip.h> |
| #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) || defined(STARBOARD) |
| #if defined(COBALT_PENDING_CLEAN_UP) && !defined(COMPILER_MSVC) |
| #include <netdb.h> |
| #endif |
| #include <netinet/in.h> |
| #include <sys/socket.h> |
| #endif |
| |
| #endif // NET_BASE_SYS_ADDRINFO_H_ |