Use non-blocking io for inbound TCP connections for SIMPLE.

Tue, 12 Aug 2008 23:09:05 +0000

author
Daniel Atallah <datallah@pidgin.im>
date
Tue, 12 Aug 2008 23:09:05 +0000
changeset 24040
24ff94bfd09d
parent 24039
8173b6258f5a
child 24041
1cfd1986dbc3

Use non-blocking io for inbound TCP connections for SIMPLE.

libpurple/protocols/simple/simple.c file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/simple/simple.c	Tue Aug 12 23:03:31 2008 +0000
+++ b/libpurple/protocols/simple/simple.c	Tue Aug 12 23:09:05 2008 +0000
@@ -1703,8 +1703,15 @@
 	PurpleConnection *gc = data;
 	struct simple_account_data *sip = gc->proto_data;
 	struct sip_connection *conn;
+	int newfd, flags;
 
-	int newfd = accept(source, NULL, NULL);
+	newfd = accept(source, NULL, NULL);
+
+	flags = fcntl(newfd, F_GETFL);
+	fcntl(newfd, F_SETFL, flags | O_NONBLOCK);
+#ifndef _WIN32
+	fcntl(newfd, F_SETFD, FD_CLOEXEC);
+#endif
 
 	conn = connection_create(sip, newfd);
 

mercurial