changeset 23771:7f401e99f9d9

Use non-blocking io for inbound TCP connections for SIMPLE.
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 12 Aug 2008 23:09:05 +0000
parents 0dd3df365017
children 239ee71307c6
files libpurple/protocols/simple/simple.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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);