/pidgin/main: 0e80c61f83d3: Remove all of the dns code

Gary Kramlich <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 0e80c61f83d35df3e793e0dd2cb184b33e76f68e
Author:	 Gary Kramlich <[email protected]>
Date:	 2015-12-15 22:03 -0600
Branch:	 use-gresolver
URL: https://hg.pidgin.im/pidgin/main/rev/0e80c61f83d3

Description:

Remove all of the dns code

diffstat:

 libpurple/Makefile.am |     4 -
 libpurple/dnsquery.c  |  1080 ---------------------------------------------
 libpurple/dnsquery.h  |   195 --------
 libpurple/dnssrv.c    |  1163 -------------------------------------------------
 libpurple/dnssrv.h    |   213 --------
 5 files changed, 0 insertions(+), 2655 deletions(-)

diffs (truncated from 2692 to 300 lines):

diff --git a/libpurple/Makefile.am b/libpurple/Makefile.am
--- a/libpurple/Makefile.am
+++ b/libpurple/Makefile.am
@@ -106,8 +106,6 @@ purple_coresources = \
 	smiley-parser.c \
 	smiley-theme.c \
 	smiley.c \
-	dnsquery.c \
-	dnssrv.c\
 	status.c \
 	stringref.c \
 	stun.c \
@@ -187,8 +185,6 @@ purple_coreheaders = \
 	smiley-parser.h \
 	smiley-theme.h \
 	smiley.h \
-	dnsquery.h \
-	dnssrv.h \
 	status.h \
 	stringref.h \
 	stun.h \
diff --git a/libpurple/dnsquery.c b/libpurple/dnsquery.c
deleted file mode 100644
--- a/libpurple/dnsquery.c
+++ /dev/null
@@ -1,1080 +0,0 @@
-/* purple
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
- *
- */
-#define _PURPLE_DNSQUERY_C_
-
-#include "internal.h"
-#include "debug.h"
-#include "dnsquery.h"
-#include "network.h"
-#include "notify.h"
-#include "prefs.h"
-#include "util.h"
-
-#ifndef _WIN32
-#include <resolv.h>
-#endif
-
-#define MAX_ADDR_RESPONSE_LEN 1048576
-
-#if (defined(__APPLE__) || defined (__unix__)) && !defined(__osf__)
-#define PURPLE_DNSQUERY_USE_FORK
-#endif
-/**************************************************************************
- * DNS query API
- **************************************************************************/
-
-static PurpleDnsQueryUiOps *dns_query_ui_ops = NULL;
-
-typedef struct _PurpleDnsQueryResolverProcess PurpleDnsQueryResolverProcess;
-
-struct _PurpleDnsQueryData {
-	char *hostname;
-	int port;
-	PurpleDnsQueryConnectFunction callback;
-	gpointer data;
-	guint timeout;
-	PurpleAccount *account;
-
-#if defined(PURPLE_DNSQUERY_USE_FORK)
-	PurpleDnsQueryResolverProcess *resolver;
-#elif defined _WIN32 /* end PURPLE_DNSQUERY_USE_FORK  */
-	GThread *resolver;
-	GSList *hosts;
-	gchar *error_message;
-#endif
-};
-
-#if defined(PURPLE_DNSQUERY_USE_FORK)
-
-#define MAX_DNS_CHILDREN 4
-
-/*
- * This structure keeps a reference to a child resolver process.
- */
-struct _PurpleDnsQueryResolverProcess {
-	guint inpa;
-	int fd_in, fd_out;
-	pid_t dns_pid;
-};
-
-static GSList *free_dns_children = NULL;
-static GQueue *queued_requests = NULL;
-
-static int number_of_dns_children = 0;
-
-/*
- * This is a convenience struct used to pass data to
- * the child resolver process.
- */
-typedef struct {
-	char hostname[512];
-	int port;
-} dns_params_t;
-#endif /* end PURPLE_DNSQUERY_USE_FORK */
-
-static void
-purple_dnsquery_resolved(PurpleDnsQueryData *query_data, GSList *hosts)
-{
-	purple_debug_info("dnsquery", "IP resolved for %s\n", query_data->hostname);
-	if (query_data->callback != NULL)
-		query_data->callback(hosts, query_data->data, NULL);
-	else
-	{
-		/*
-		 * Callback is a required parameter, but it can get set to
-		 * NULL if we cancel a thread-based DNS lookup.  So we need
-		 * to free hosts.
-		 */
-		while (hosts != NULL)
-		{
-			hosts = g_slist_remove(hosts, hosts->data);
-			g_free(hosts->data);
-			hosts = g_slist_remove(hosts, hosts->data);
-		}
-	}
-
-#ifdef PURPLE_DNSQUERY_USE_FORK
-	/*
-	 * Add the resolver to the list of available resolvers, and set it
-	 * to NULL so that it doesn't get destroyed along with the query_data
-	 */
-	if (query_data->resolver)
-	{
-		free_dns_children = g_slist_prepend(free_dns_children, query_data->resolver);
-		query_data->resolver = NULL;
-	}
-#endif /* PURPLE_DNSQUERY_USE_FORK */
-
-	purple_dnsquery_destroy(query_data);
-}
-
-static void
-purple_dnsquery_failed(PurpleDnsQueryData *query_data, const gchar *error_message)
-{
-	purple_debug_error("dnsquery", "%s\n", error_message);
-	if (query_data->callback != NULL)
-		query_data->callback(NULL, query_data->data, error_message);
-	purple_dnsquery_destroy(query_data);
-}
-
-static gboolean
-purple_dnsquery_ui_resolve(PurpleDnsQueryData *query_data)
-{
-	PurpleDnsQueryUiOps *ops = purple_dnsquery_get_ui_ops();
-
-	if (ops && ops->resolve_host)
-		return ops->resolve_host(query_data, purple_dnsquery_resolved, purple_dnsquery_failed);
-
-	return FALSE;
-}
-
-static gboolean
-resolve_ip(PurpleDnsQueryData *query_data)
-{
-#if defined(HAVE_GETADDRINFO) && defined(AI_NUMERICHOST)
-	struct addrinfo hints, *res;
-	char servname[20];
-
-	g_snprintf(servname, sizeof(servname), "%d", query_data->port);
-	memset(&hints, 0, sizeof(hints));
-	hints.ai_family = AF_UNSPEC;
-	hints.ai_flags |= AI_NUMERICHOST;
-
-	if (0 == getaddrinfo(query_data->hostname, servname, &hints, &res))
-	{
-		GSList *hosts = NULL;
-		hosts = g_slist_append(hosts, GINT_TO_POINTER(res->ai_addrlen));
-		hosts = g_slist_append(hosts, g_memdup(res->ai_addr, res->ai_addrlen));
-		purple_dnsquery_resolved(query_data, hosts);
-
-		freeaddrinfo(res);
-		return TRUE;
-	}
-#else /* defined(HAVE_GETADDRINFO) && defined(AI_NUMERICHOST) */
-	struct sockaddr_in sin;
-	if (inet_aton(query_data->hostname, &sin.sin_addr))
-	{
-		/*
-		 * The given "hostname" is actually an IP address, so we
-		 * don't need to do anything.
-		 */
-		GSList *hosts = NULL;
-		sin.sin_family = AF_INET;
-		sin.sin_port = htons(query_data->port);
-		hosts = g_slist_append(hosts, GINT_TO_POINTER(sizeof(sin)));
-		hosts = g_slist_append(hosts, g_memdup(&sin, sizeof(sin)));
-		purple_dnsquery_resolved(query_data, hosts);
-
-		return TRUE;
-	}
-#endif
-
-	return FALSE;
-}
-
-#ifdef USE_IDN
-static gboolean
-dns_str_is_ascii(const char *name)
-{
-	guchar *c;
-	for (c = (guchar *)name; c && *c; ++c) {
-		if (*c > 0x7f)
-			return FALSE;
-	}
-
-	return TRUE;
-}
-#endif
-
-#if defined(PURPLE_DNSQUERY_USE_FORK)
-
-/*
- * Unix!
- */
-
-/*
- * Begin the DNS resolver child process functions.
- */
-#ifdef HAVE_SIGNAL_H
-G_GNUC_NORETURN static void
-trap_gdb_bug(int sig)
-{
-	const char *message =
-		"Purple's DNS child got a SIGTRAP signal.\n"
-		"This can be caused by trying to run purple inside gdb.\n"
-		"There is a known gdb bug which prevents this.  Supposedly purple\n"
-		"should have detected you were using gdb and used an ugly hack,\n"
-		"check cope_with_gdb_brokenness() in dnsquery.c.\n\n"
-		"For more info about this bug, see http://sources.redhat.com/ml/gdb/2001-07/msg00349.html\n";
-	fputs("\n* * *\n",stderr);
-	fputs(message,stderr);
-	fputs("* * *\n\n",stderr);
-	execlp("xmessage","xmessage","-center", message, NULL);
-	_exit(1);
-}
-#endif
-
-static void
-write_to_parent(int fd, const void *buf, size_t count)
-{
-	ssize_t written;
-
-	written = write(fd, buf, count);
-	if (written < 0 || (gsize)written != count) {
-		if (written < 0)
-			fprintf(stderr, "dns[%d]: Error writing data to "
-					"parent: %s\n", getpid(), strerror(errno));
-		else
-			fprintf(stderr, "dns[%d]: Error: Tried to write %"
-					G_GSIZE_FORMAT " bytes to parent but instead "
-					"wrote %" G_GSIZE_FORMAT " bytes\n",
-					getpid(), count, written);
-	}
-}
-
-G_GNUC_NORETURN static void
-purple_dnsquery_resolver_run(int child_out, int child_in, gboolean show_debug)
-{
-	dns_params_t dns_params;
-	const size_t zero = 0;
-	int rc;
-#ifdef HAVE_GETADDRINFO
-	struct addrinfo hints, *res, *tmp;
-	char servname[20];
-#else
-	struct sockaddr_in sin;
-	const size_t addrlen = sizeof(sin);
-#endif
-	char *hostname;
-
-#ifdef HAVE_SIGNAL_H
-	purple_restore_default_signal_handlers();
-	signal(SIGTRAP, trap_gdb_bug);
-#endif
-
-	/*

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.