summaryrefslogtreecommitdiff
path: root/utils/inet.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2016-04-17 13:42:28 +0100
committerVincent Sanders <vince@kyllikki.org>2016-04-17 13:42:28 +0100
commitade0cd8bb95ce20b520cb3b13600d04130f52976 (patch)
treedf5bb0c1cdbf00d2c01a07358ac05574c0a1aec8 /utils/inet.h
parent810e9153d1b4d9ed8e208eece4ee88b0d3867ec0 (diff)
downloadnetsurf-ade0cd8bb95ce20b520cb3b13600d04130f52976.tar.gz
netsurf-ade0cd8bb95ce20b520cb3b13600d04130f52976.tar.bz2
Reduce unecessary use of networking headers
The utility configuration header dragged in a number of bsd sockets and related API as a side effect of setting up the configuration. By splitting the header and API setup into a separate header only the small number of places that need the functionality explitly include it.
Diffstat (limited to 'utils/inet.h')
-rw-r--r--utils/inet.h62
1 files changed, 62 insertions, 0 deletions
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