changeset 9455:5b4b3fb286b0

[gaim-migrate @ 10279] This makes us check that we have a valid fd in oscar before trying to see what port it is on, so we don't fail g_return's and spew warnings. This also fixes a bug I think KingAnt caused in network.c, which was making gaim_network_do_listen() return -1 for me. committer: Tailor Script <tailor@pidgin.im>
author Tim Ringenbach <marv@pidgin.im>
date Tue, 06 Jul 2004 05:37:16 +0000
parents b6feee45f33d
children 0577bb34622d
files src/network.c src/protocols/oscar/oscar.c
diffstat 2 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/network.c	Mon Jul 05 19:33:48 2004 +0000
+++ b/src/network.c	Tue Jul 06 05:37:16 2004 +0000
@@ -178,12 +178,12 @@
 	 * XXX - Try IPv6 addresses first?
 	 */
 	for (next = res; next != NULL; next = next->ai_next) {
-		listenfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+		listenfd = socket(next->ai_family, next->ai_socktype, next->ai_protocol);
 		if (listenfd < 0)
 			continue;
 		if (setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) != 0)
 			gaim_debug_warning("network", "setsockopt: %s\n", strerror(errno));
-		if (bind(listenfd, res->ai_addr, res->ai_addrlen) == 0)
+		if (bind(listenfd, next->ai_addr, next->ai_addrlen) == 0)
 			break; /* success */
 		close(listenfd);
 	}
--- a/src/protocols/oscar/oscar.c	Mon Jul 05 19:33:48 2004 +0000
+++ b/src/protocols/oscar/oscar.c	Tue Jul 06 05:37:16 2004 +0000
@@ -1309,7 +1309,8 @@
 
 	listenfd = gaim_network_listen_range(5190, 5199);
 	ip = gaim_network_get_my_ip(od->conn ? od->conn->fd : -1);
-	dim->conn = aim_odc_initiate(od->sess, who, listenfd, gaim_network_ip_atoi(ip), gaim_network_get_port_from_fd(listenfd), cookie);
+	if (listenfd >= 0)
+		dim->conn = aim_odc_initiate(od->sess, who, listenfd, gaim_network_ip_atoi(ip), gaim_network_get_port_from_fd(listenfd), cookie);
 	if (dim->conn != NULL) {
 		char *tmp;
 		GaimConversation *conv;