Mercurial > pidgin.yaz
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); |