im.pidgin.pidgin: 50ea8c32eef1673463c66d42892f9dd64899d6db

nosnilmot at pidgin.im nosnilmot at pidgin.im
Sun Dec 2 12:40:45 EST 2007


-----------------------------------------------------------------
Revision: 50ea8c32eef1673463c66d42892f9dd64899d6db
Ancestor: 417a3a6944f0dee3d065582139ee12fda243d9c3
Author: nosnilmot at pidgin.im
Date: 2007-12-02T17:33:03
Branch: im.pidgin.pidgin

Modified files:
        libpurple/protocols/msnp9/directconn.c
        libpurple/protocols/msnp9/servconn.c

ChangeLog: 

More catching up on things, from 8548e491a5b470d5665cb1cf87a7b0caaa3c87a5:

"Fix all our calls to fcntl(listenfd, F_SETFL, O_NONBLOCK);
 fcntl() with F_SETFL overwrites the old flags with the new ones, so
 you should call fcntl() with F_GETFL, then OR that value with
 O_NONBLOCK before setting the flags.  We've been doing this
 wrong for a long time and it hasn't seemed to hurt anything,
 but I thought it would be good to fix it."


-------------- next part --------------
============================================================
--- libpurple/protocols/msnp9/directconn.c	5c36766ab07279be942df0ec1ac2316475a6a200
+++ libpurple/protocols/msnp9/directconn.c	c313df7aef85242f1c7028fd616739715fcd5c9d
@@ -81,6 +81,7 @@ create_listener(int port)
 create_listener(int port)
 {
 	int fd;
+	int flags;
 	const int on = 1;
 
 #if 0
@@ -156,7 +157,8 @@ create_listener(int port)
 		return -1;
 	}
 
-	fcntl(fd, F_SETFL, O_NONBLOCK);
+	flags = fcntl(fd, F_GETFL);
+	fcntl(fd, F_SETFL, flags | O_NONBLOCK);
 
 	return fd;
 }
============================================================
--- libpurple/protocols/msnp9/servconn.c	334451299225389dac3793441cdee0a3c464a93f
+++ libpurple/protocols/msnp9/servconn.c	c31946db40e86a2959451d1bb128155b59dd71e2
@@ -468,6 +468,7 @@ create_listener(int port)
 create_listener(int port)
 {
 	int fd;
+	int flags;
 	const int on = 1;
 
 #if 0
@@ -543,7 +544,8 @@ create_listener(int port)
 		return -1;
 	}
 
-	fcntl(fd, F_SETFL, O_NONBLOCK);
+	flags = fcntl(fd, F_GETFL);
+	fcntl(fd, F_SETFL, flags | O_NONBLOCK);
 
 	return fd;
 }


More information about the Commits mailing list