libpurple/network.c

branch
release-2.2.2
changeset 20239
ae122f419324
parent 20147
66f05a854eee
child 21143
239b2f43bef5
child 21389
e1dd8142bb87
equal deleted inserted replaced
20238:e4abd12fb7ec 20239:ae122f419324
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

mercurial