diff options
-rw-r--r-- | content/fetchers.h | 2 | ||||
-rw-r--r-- | content/fetchers/curl.c | 3 | ||||
-rw-r--r-- | content/urldb.c | 2 | ||||
-rw-r--r-- | utils/config.h | 12 | ||||
-rw-r--r-- | utils/inet.h | 62 | ||||
-rw-r--r-- | utils/utils.c | 1 |
6 files changed, 69 insertions, 13 deletions
diff --git a/content/fetchers.h b/content/fetchers.h index c8f8300b8..92b11dc69 100644 --- a/content/fetchers.h +++ b/content/fetchers.h @@ -25,7 +25,7 @@ #ifndef _NETSURF_DESKTOP_FETCHERS_H_ #define _NETSURF_DESKTOP_FETCHERS_H_ -#include "utils/config.h" +#include "utils/inet.h" /* this is necessary for the fd_set definition */ #include <libwapcaplet/libwapcaplet.h> struct nsurl; diff --git a/content/fetchers/curl.c b/content/fetchers/curl.c index 88c8bbe41..e789ce558 100644 --- a/content/fetchers/curl.c +++ b/content/fetchers/curl.c @@ -27,7 +27,8 @@ * The CURL handles are cached in the curl_handle_ring. */ -#include "utils/config.h" +/* must come first to ensure winsock2.h vs windows.h ordering issues */ +#include "utils/inet.h" #include <assert.h> #include <errno.h> diff --git a/content/urldb.c b/content/urldb.c index 1afa13131..0b59e1f4d 100644 --- a/content/urldb.c +++ b/content/urldb.c @@ -96,7 +96,7 @@ #include <strings.h> #include <time.h> -#include "utils/config.h" +#include "utils/inet.h" #include "utils/nsoption.h" #include "utils/log.h" #include "utils/corestrings.h" diff --git a/utils/config.h b/utils/config.h index 53614680b..8f05b23dc 100644 --- a/utils/config.h +++ b/utils/config.h @@ -61,24 +61,16 @@ char *strchrnul(const char *s, int c); #define HAVE_SYS_SELECT #define HAVE_INETATON +#define HAVE_POSIX_INET_HEADERS #if (defined(_WIN32)) #undef HAVE_INETATON #undef HAVE_SYS_SELECT -#include <winsock2.h> -#ifndef EAFNOSUPPORT -#define EAFNOSUPPORT WSAEAFNOSUPPORT -#endif -int inet_aton(const char *cp, struct in_addr *inp); -#else -#include <netinet/in.h> -#include <arpa/inet.h> -#include <sys/select.h> +#undef HAVE_POSIX_INET_HEADERS #endif #define HAVE_INETPTON #if (defined(_WIN32)) #undef HAVE_INETPTON -int inet_pton(int af, const char *src, void *dst); #endif #define HAVE_UTSNAME diff --git a/utils/inet.h b/utils/inet.h new file mode 100644 index 000000000..a79f293c8 --- /dev/null +++ b/utils/inet.h @@ -0,0 +1,62 @@ +/* + * Copyright 2016 Vincent Sanders <vince@netsurf-browser.org> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/** + * \file internet structures and defines + * + * This allows the obtaining of standard bsd sockets and associated + * functions in a uniform way despite any oddities in headers and + * supported API between OS. + * + * \note This functionality was previously provided as a side effect of the + * utils config header include. + */ + +#ifndef _NETSURF_UTILS_INET_H_ +#define _NETSURF_UTILS_INET_H_ + +#include "utils/config.h" + +#ifdef HAVE_POSIX_INET_HEADERS + +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <sys/select.h> + +#else + +#include <winsock2.h> +#include <ws2tcpip.h> + +#ifndef EAFNOSUPPORT +#define EAFNOSUPPORT WSAEAFNOSUPPORT +#endif + +#endif + + +#ifndef HAVE_INETATON +int inet_aton(const char *cp, struct in_addr *inp); +#endif + +#ifndef HAVE_INETPTON +int inet_pton(int af, const char *src, void *dst); +#endif + +#endif diff --git a/utils/utils.c b/utils/utils.c index b3dee8bcc..50704eae2 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -39,6 +39,7 @@ #include "utils/messages.h" #include "utils/utf8.h" #include "utils/time.h" +#include "utils/inet.h" #include "utils/utils.h" /* exported interface documented in utils/utils.h */ |