summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTingPing <tingping@tingping.se>2014-12-28 13:38:47 -0500
committerTingPing <tingping@tingping.se>2014-12-28 22:29:06 -0500
commit1b2bee37e43baca9b0ec58061561fdb60c31cef8 (patch)
tree7caf7da8be07701c2c1147c14a75149e5bb48575
parent9cb73f839ffddb1479f0ee1c8a89acebafd31045 (diff)
Remove option to disable ipv6
It has been default for a while, is the only tested option,
and will only get more common.
-rw-r--r--configure.ac23
-rw-r--r--src/common/hexchat.c4
-rw-r--r--src/common/identd.c5
-rw-r--r--src/common/inet.h4
-rw-r--r--src/common/network.c108
-rw-r--r--src/common/network.h5
-rw-r--r--src/common/server.c8
-rw-r--r--src/common/servlist.c15
-rw-r--r--src/fe-text/fe-text.c3
-rw-r--r--win32/config.h.tt4
10 files changed, 7 insertions, 172 deletions
diff --git a/configure.ac b/configure.ac
index ae37051d..bbfa13b4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,7 +44,6 @@ AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES])
 AH_VERBATIM([HAVE_GTK_MAC],[#undef HAVE_GTK_MAC])
 AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY])
 AH_VERBATIM([USE_LIBCANBERRA],[#undef USE_LIBCANBERRA])
-AH_VERBATIM([USE_IPV6],[#undef USE_IPV6])
 AH_VERBATIM([USE_OPENSSL],[#undef USE_OPENSSL])
 AH_VERBATIM([USE_PLUGIN],[#undef USE_PLUGIN])
 AH_VERBATIM([USE_SIGACTION],[#undef USE_SIGACTION])
@@ -88,10 +87,6 @@ AC_ARG_ENABLE(socks,
 	[AS_HELP_STRING([--enable-socks],[link with SOCKS5 library (default: no)])],
         socks=$enableval, socks=no)
 
-AC_ARG_ENABLE(ipv6,
-	[AS_HELP_STRING([--disable-ipv6],[disable IPv6])],
-        ipv6=$enableval, ipv6=yes)
-
 AC_ARG_ENABLE(openssl,
 	[AS_HELP_STRING([--enable-openssl[=PATH]],[enable use of openSSL])],
         openssl=$enableval, openssl=yes)
@@ -354,16 +349,13 @@ AC_CHECK_FUNC(select, ,
 						AC_MSG_WARN(i can not find select.  you might need to help me)))))))
 AC_CHECK_LIB(socket, select)
 
-if test "$ipv6" = yes; then
-	AC_CHECK_FUNCS(getaddrinfo, have_getaddrinfo=yes)
-	AC_MSG_CHECKING(whether to enable IPv6 support)
-	if test "$have_getaddrinfo" = yes; then
-		AC_MSG_RESULT(yes)
-		AC_DEFINE(USE_IPV6)
-	else
-		ipv6=no
-		AC_MSG_RESULT(no)
-	fi
+AC_CHECK_FUNCS(getaddrinfo, have_getaddrinfo=yes)
+AC_MSG_CHECKING(whether IPv6 is supported)
+if test "$have_getaddrinfo" = yes; then
+	AC_MSG_RESULT(yes)
+else
+	AC_MSG_RESULT(no)
+	AC_MSG_ERROR(ipv6 support not found!)
 fi
 
 dnl *********************************************************************
@@ -847,7 +839,6 @@ echo D-Bus support ......... : $dbus
 echo libnotify support ..... : $libnotify
 echo libcanberra support ... : $libcanberra
 echo Plugin interface ...... : $plugin
-echo IPv6 support .......... : $ipv6
 echo libproxy support ...... : $libproxy
 echo
 echo Perl .................. : $perl
diff --git a/src/common/hexchat.c b/src/common/hexchat.c
index 37e46ce8..7db7e6ca 100644
--- a/src/common/hexchat.c
+++ b/src/common/hexchat.c
@@ -760,15 +760,11 @@ xchat_init (void)
 #ifdef WIN32
 	WSADATA wsadata;
 
-#ifdef USE_IPV6
 	if (WSAStartup(0x0202, &wsadata) != 0)
 	{
 		MessageBox (NULL, "Cannot find winsock 2.2+", "Error", MB_OK);
 		exit (0);
 	}
-#else
-	WSAStartup(0x0101, &wsadata);
-#endif	/* !USE_IPV6 */
 #endif	/* !WIN32 */
 
 #ifdef USE_SIGACTION
diff --git a/src/common/identd.c b/src/common/identd.c
index ae95df8d..053b33dd 100644
--- a/src/common/identd.c
+++ b/src/common/identd.c
@@ -25,9 +25,7 @@
 #include "text.h"
 
 static int identd_is_running = FALSE;
-#ifdef USE_IPV6
 static int identd_ipv6_is_running = FALSE;
-#endif
 
 static int
 identd (char *username)
@@ -104,7 +102,6 @@ identd (char *username)
 	return 0;
 }
 
-#ifdef USE_IPV6
 static int
 identd_ipv6 (char *username)
 {
@@ -182,7 +179,6 @@ identd_start (char *username)
 {
 	DWORD tid;
 
-#ifdef USE_IPV6
 	DWORD tidv6;
 	if (identd_ipv6_is_running == FALSE)
 	{
@@ -190,7 +186,6 @@ identd_start (char *username)
 		CloseHandle (CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE) identd_ipv6,
 						 g_strdup (username), 0, &tidv6));
 	}
-#endif
 
 	if (identd_is_running == FALSE)
 	{
diff --git a/src/common/inet.h b/src/common/inet.h
index aa57d0e4..7056d473 100644
--- a/src/common/inet.h
+++ b/src/common/inet.h
@@ -48,12 +48,8 @@
 #else
 
 #include "config.h"
-#ifdef USE_IPV6
 #include <winsock2.h>
 #include <ws2tcpip.h>
-#else
-#include <winsock2.h>
-#endif
 
 #define set_blocking(sok)	{ \
 									unsigned long zero = 0; \
diff --git a/src/common/network.c b/src/common/network.c
index c026116e..fcdaf547 100644
--- a/src/common/network.c
+++ b/src/common/network.c
@@ -65,10 +65,8 @@ net_ip (guint32 addr)
 void
 net_store_destroy (netstore * ns)
 {
-#ifdef USE_IPV6
 	if (ns->ip6_hostent)
 		freeaddrinfo (ns->ip6_hostent);
-#endif
 	g_free (ns);
 }
 
@@ -78,110 +76,6 @@ net_store_new (void)
 	return g_new0 (netstore, 1);
 }
 
-#ifndef USE_IPV6
-
-/* =================== IPV4 ================== */
-
-/*
-	A note about net_resolve and lookupd:
-
-	Many IRC networks rely on round-robin DNS for load balancing, rotating the list
-	of IP address on each query. However, this method breaks when DNS queries are
-	cached. Mac OS X and Darwin handle DNS lookups through the lookupd daemon, which
-	caches queries in its default configuration: thus, if we always pick the first
-	address, we will be stuck with the same host (which might be down!) until the
-	TTL reaches 0 or lookupd is reset (typically, at reboot). Therefore, we need to
-	pick a random address from the result list, instead of always using the first.
-*/
-
-char *
-net_resolve (netstore * ns, char *hostname, int port, char **real_host)
-{
-	ns->ip4_hostent = gethostbyname (hostname);
-	if (!ns->ip4_hostent)
-		return NULL;
-
-	memset (&ns->addr, 0, sizeof (ns->addr));
-#ifdef LOOKUPD
-	int count = 0;
-	while (ns->ip4_hostent->h_addr_list[count]) count++;
-	memcpy (&ns->addr.sin_addr,
-			ns->ip4_hostent->h_addr_list[RAND_INT(count)],
-			ns->ip4_hostent->h_length);
-#else
-	memcpy (&ns->addr.sin_addr, ns->ip4_hostent->h_addr,
-			  ns->ip4_hostent->h_length);
-#endif
-	ns->addr.sin_port = htons (port);
-	ns->addr.sin_family = AF_INET;
-
-	*real_host = g_strdup (ns->ip4_hostent->h_name);
-	return g_strdup (inet_ntoa (ns->addr.sin_addr));
-}
-
-int
-net_connect (netstore * ns, int sok4, int sok6, int *sok_return)
-{
-	*sok_return = sok4;
-	return connect (sok4, (struct sockaddr *) &ns->addr, sizeof (ns->addr));
-}
-
-void
-net_bind (netstore * tobindto, int sok4, int sok6)
-{
-	bind (sok4, (struct sockaddr *) &tobindto->addr, sizeof (tobindto->addr));
-}
-
-void
-net_sockets (int *sok4, int *sok6)
-{
-	*sok4 = socket (AF_INET, SOCK_STREAM, 0);
-	*sok6 = -1;
-	net_set_socket_options (*sok4);
-}
-
-void
-udp_sockets (int *sok4, int *sok6)
-{
-	*sok4 = socket (AF_INET, SOCK_DGRAM, 0);
-	*sok6 = -1;
-}
-
-void
-net_store_fill_any (netstore *ns)
-{
-	ns->addr.sin_family = AF_INET;
-	ns->addr.sin_addr.s_addr = INADDR_ANY;
-	ns->addr.sin_port = 0;
-}
-
-void
-net_store_fill_v4 (netstore *ns, guint32 addr, int port)
-{
-	ns->addr.sin_family = AF_INET;
-	ns->addr.sin_addr.s_addr = addr;
-	ns->addr.sin_port = port;
-}
-
-guint32
-net_getsockaddr_v4 (netstore *ns)
-{
-	return ns->addr.sin_addr.s_addr;
-}
-
-int
-net_getsockport (int sok4, int sok6)
-{
-	struct sockaddr_in addr;
-	int len = sizeof (addr);
-
-	if (getsockname (sok4, (struct sockaddr *)&addr, &len) == -1)
-		return -1;
-	return addr.sin_port;
-}
-
-#else
-
 /* =================== IPV6 ================== */
 
 char *
@@ -294,5 +188,3 @@ udp_sockets (int *sok4, int *sok6)
 	*sok4 = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP);
 	*sok6 = socket (AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
 }
-
-#endif
diff --git a/src/common/network.h b/src/common/network.h
index c043702e..8c1c0c79 100644
--- a/src/common/network.h
+++ b/src/common/network.h
@@ -23,13 +23,8 @@
 typedef struct netstore_
 {
 #ifdef NETWORK_PRIVATE
-#ifdef USE_IPV6
 	struct addrinfo *ip6_hostent;
 #else
-	struct hostent *ip4_hostent;
-	struct sockaddr_in addr;
-#endif
-#else
 	int _dummy;	/* some compilers don't like empty structs */
 #endif
 } netstore;
diff --git a/src/common/server.c b/src/common/server.c
index 2f92a431..f3633ce5 100644
--- a/src/common/server.c
+++ b/src/common/server.c
@@ -914,12 +914,10 @@ server_read_child (GIOChannel *source, GIOCondition condition, server *serv)
 		closesocket (serv->sok4);
 		if (serv->proxy_sok4 != -1)
 			closesocket (serv->proxy_sok4);
-#ifdef USE_IPV6
 		if (serv->sok6 != -1)
 			closesocket (serv->sok6);
 		if (serv->proxy_sok6 != -1)
 			closesocket (serv->proxy_sok6);
-#endif
 		EMIT_SIGNAL (XP_TE_UKNHOST, sess, NULL, NULL, NULL, NULL, 0);
 		if (!servlist_cycle (serv))
 			if (prefs.hex_net_auto_reconnectonfail)
@@ -931,12 +929,10 @@ server_read_child (GIOChannel *source, GIOCondition condition, server *serv)
 		closesocket (serv->sok4);
 		if (serv->proxy_sok4 != -1)
 			closesocket (serv->proxy_sok4);
-#ifdef USE_IPV6
 		if (serv->sok6 != -1)
 			closesocket (serv->sok6);
 		if (serv->proxy_sok6 != -1)
 			closesocket (serv->proxy_sok6);
-#endif
 		EMIT_SIGNAL (XP_TE_CONNFAIL, sess, errorstring (atoi (tbuf)), NULL,
 						 NULL, NULL, 0);
 		if (!servlist_cycle (serv))
@@ -974,7 +970,6 @@ server_read_child (GIOChannel *source, GIOCondition condition, server *serv)
 	case '4':						  /* success */
 		waitline2 (source, tbuf, sizeof (tbuf));
 		serv->sok = atoi (tbuf);
-#ifdef USE_IPV6
 		/* close the one we didn't end up using */
 		if (serv->sok == serv->sok4)
 			closesocket (serv->sok6);
@@ -987,7 +982,6 @@ server_read_child (GIOChannel *source, GIOCondition condition, server *serv)
 			else
 				closesocket (serv->proxy_sok4);
 		}
-#endif
 		server_connect_success (serv);
 		break;
 	case '5':						  /* prefs ip discovered */
@@ -1612,12 +1606,10 @@ server_child (server * serv)
 
 xit:
 
-#if defined (USE_IPV6) || defined (WIN32)
 	/* this is probably not needed */
 	net_store_destroy (ns_server);
 	if (ns_proxy)
 		net_store_destroy (ns_proxy);
-#endif
 
 	/* no need to free ip/real_hostname, this process is exiting */
 #ifdef WIN32
diff --git a/src/common/servlist.c b/src/common/servlist.c
index fa000e8c..b1b31026 100644
--- a/src/common/servlist.c
+++ b/src/common/servlist.c
@@ -67,12 +67,6 @@ static const struct defaultserver def[] =
 	{0,			"eu.afternet.org"},
 
 	{"Aitvaras",	0},
-#ifdef USE_IPV6
-#ifdef USE_OPENSSL
-	{0,			"irc6.ktu.lt/+7668"},
-#endif
-	{0,			"irc6.ktu.lt/7666"},
-#endif
 #ifdef USE_OPENSSL
 	{0,			"irc.data.lt/+6668"},
 	{0,			"irc.omnitel.net/+6668"},
@@ -192,12 +186,6 @@ static const struct defaultserver def[] =
 	{0,			"irc.entropynet.net/+6697"},
 #endif
 	{0,			"irc.entropynet.net"},
-#ifdef USE_IPV6
-#ifdef USE_OPENSSL
-	{0,			"irc6.entropynet.net/+6697"},
-#endif
-	{0,			"irc6.entropynet.net"},
-#endif
 
 	{"EsperNet", 0, 0, 0, LOGIN_SASL},
 #ifdef USE_OPENSSL
@@ -326,9 +314,6 @@ static const struct defaultserver def[] =
 	{0,			"as.link-net.org/+7000"},
 	{0,			"eu.link-net.org/+7000"},
 	{0,			"us.link-net.org/+7000"},
-#ifdef USE_IPV6
-	{0,			"irc6.link-net.org/+7000"},
-#endif
 #endif
 
 	{"MindForge",	0},
diff --git a/src/fe-text/fe-text.c b/src/fe-text/fe-text.c
index 848a393b..2dd93e2a 100644
--- a/src/fe-text/fe-text.c
+++ b/src/fe-text/fe-text.c
@@ -112,9 +112,6 @@ fe_new_window (struct session *sess, int focus)
 #ifdef USE_OPENSSL
 	"OpenSSL "
 #endif
-#ifdef USE_IPV6
-	"IPv6"
-#endif
 	"\n\n", 0, FALSE);
 	fflush (stdout);
 }
diff --git a/win32/config.h.tt b/win32/config.h.tt
index 77da3b38..ad518964 100644
--- a/win32/config.h.tt
+++ b/win32/config.h.tt
@@ -2,7 +2,6 @@
 #define ENABLE_NLS
 #define USE_PLUGIN
 #define USE_OPENSSL
-#define USE_IPV6
 #define HAVE_ISO_CODES
 #define ISO_CODES_PREFIX ".\\"
 #define ISO_CODES_LOCALEDIR LOCALEDIR
@@ -13,6 +12,3 @@
 #define OLD_PERL
 #define GETTEXT_PACKAGE "hexchat"
 #define PACKAGE_TARNAME "hexchat-<#= [string]::Join('.', $versionParts) #>"
-#ifndef USE_IPV6
-#define socklen_t int
-#endif