changeset 6270:1bf6fd117797

[gaim-migrate @ 6767] IRC should now use the new IP code. Or it'll break horribly and nobody's DCC sends will work. One of those. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 22 Jul 2003 08:23:51 +0000
parents 0a902bd3e170
children 08672f5033a7
files src/protocols/irc/irc.c
diffstat 1 files changed, 5 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/protocols/irc/irc.c	Tue Jul 22 08:22:08 2003 +0000
+++ b/src/protocols/irc/irc.c	Tue Jul 22 08:23:51 2003 +0000
@@ -2566,29 +2566,6 @@
 		*se = "offline";
 }
 
-static int 
-getlocalip(char *ip) /* Thanks, libfaim */
-{
-	struct hostent *hptr;
-	char localhost[129];
-	long unsigned add;
-	
-	/* XXX if available, use getaddrinfo() */
-	/* XXX allow client to specify which IP to use for multihomed boxes */
-	
-	if (gethostname(localhost, 128) < 0)
-		return -1;
-
-	if (!(hptr = gethostbyname(localhost)))
-		return -1;
-	
-	memcpy(&add, hptr->h_addr_list[0], 4);
-	add = htonl(add);
-	g_snprintf(ip, 11, "%lu", add);
-
-	return 0;
-}
-
 static void 
 dcc_chat_connected(gpointer data, gint source, GdkInputCondition condition)
 {
@@ -2851,6 +2828,7 @@
 	int len;
 	struct sockaddr_in addr;
 	char buf[IRC_BUF_LEN];
+	const char *ip;
 	
 	/* Create a socket */
 	chat = g_new0 (struct dcc_chat, 1);
@@ -2869,7 +2847,10 @@
 	len = sizeof (addr);
 	getsockname (chat->fd, (struct sockaddr *) &addr, &len);
 	chat->port = ntohs (addr.sin_port);
-	getlocalip(chat->ip_address);
+
+	ip = gaim_xfers_get_ip_for_account(gaim_connection_get_account(gc));
+	strncpy(chat->ip_address, ip, INET6_ADDRSTRLEN);
+
 	chat->inpa =
 		gaim_input_add (chat->fd, GAIM_INPUT_READ, dcc_chat_connected,
 				chat);