comparison libpurple/network.c @ 20347:04fe5601fedb

applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3 through 8548e491a5b470d5665cb1cf87a7b0caaa3c87a5
author Luke Schierer <lschiere@pidgin.im>
date Sun, 21 Oct 2007 04:46:33 +0000
parents 6b8bc3309ab7
children 96929e7acb86 35b4f1dc4c8d
comparison
equal deleted inserted replaced
20346:07c2e60026da 20347:04fe5601fedb
261 261
262 static PurpleNetworkListenData * 262 static PurpleNetworkListenData *
263 purple_network_do_listen(unsigned short port, int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data) 263 purple_network_do_listen(unsigned short port, int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data)
264 { 264 {
265 int listenfd = -1; 265 int listenfd = -1;
266 int flags;
266 const int on = 1; 267 const int on = 1;
267 PurpleNetworkListenData *listen_data; 268 PurpleNetworkListenData *listen_data;
268 unsigned short actual_port; 269 unsigned short actual_port;
269 #ifdef HAVE_GETADDRINFO 270 #ifdef HAVE_GETADDRINFO
270 int errnum; 271 int errnum;
338 if (socket_type == SOCK_STREAM && listen(listenfd, 4) != 0) { 339 if (socket_type == SOCK_STREAM && listen(listenfd, 4) != 0) {
339 purple_debug_warning("network", "listen: %s\n", strerror(errno)); 340 purple_debug_warning("network", "listen: %s\n", strerror(errno));
340 close(listenfd); 341 close(listenfd);
341 return NULL; 342 return NULL;
342 } 343 }
343 fcntl(listenfd, F_SETFL, O_NONBLOCK); 344 flags = fcntl(listenfd, F_GETFL);
345 fcntl(listenfd, F_SETFL, flags | O_NONBLOCK);
344 346
345 actual_port = purple_network_get_port_from_fd(listenfd); 347 actual_port = purple_network_get_port_from_fd(listenfd);
346 348
347 purple_debug_info("network", "Listening on port: %hu\n", actual_port); 349 purple_debug_info("network", "Listening on port: %hu\n", actual_port);
348 350