comparison src/network.c @ 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 0de62d92fb3b
children 0577bb34622d
comparison
equal deleted inserted replaced
9454:b6feee45f33d 9455:5b4b3fb286b0
176 * Go through the list of addresses and attempt to listen on 176 * Go through the list of addresses and attempt to listen on
177 * one of them. 177 * one of them.
178 * XXX - Try IPv6 addresses first? 178 * XXX - Try IPv6 addresses first?
179 */ 179 */
180 for (next = res; next != NULL; next = next->ai_next) { 180 for (next = res; next != NULL; next = next->ai_next) {
181 listenfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol); 181 listenfd = socket(next->ai_family, next->ai_socktype, next->ai_protocol);
182 if (listenfd < 0) 182 if (listenfd < 0)
183 continue; 183 continue;
184 if (setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) != 0) 184 if (setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) != 0)
185 gaim_debug_warning("network", "setsockopt: %s\n", strerror(errno)); 185 gaim_debug_warning("network", "setsockopt: %s\n", strerror(errno));
186 if (bind(listenfd, res->ai_addr, res->ai_addrlen) == 0) 186 if (bind(listenfd, next->ai_addr, next->ai_addrlen) == 0)
187 break; /* success */ 187 break; /* success */
188 close(listenfd); 188 close(listenfd);
189 } 189 }
190 190
191 freeaddrinfo(res); 191 freeaddrinfo(res);