comparison libpurple/protocols/msnp9/directconn.c @ 21726:56f78bc6c53e

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."
author Stu Tomlinson <stu@nosnilmot.com>
date Sun, 02 Dec 2007 17:33:03 +0000
parents 960c07f6f052
children 1a27ded7f9e3
comparison
equal deleted inserted replaced
21725:960c07f6f052 21726:56f78bc6c53e
79 #if 0 79 #if 0
80 static int 80 static int
81 create_listener(int port) 81 create_listener(int port)
82 { 82 {
83 int fd; 83 int fd;
84 int flags;
84 const int on = 1; 85 const int on = 1;
85 86
86 #if 0 87 #if 0
87 struct addrinfo hints; 88 struct addrinfo hints;
88 struct addrinfo *c, *res; 89 struct addrinfo *c, *res;
154 { 155 {
155 close (fd); 156 close (fd);
156 return -1; 157 return -1;
157 } 158 }
158 159
159 fcntl(fd, F_SETFL, O_NONBLOCK); 160 flags = fcntl(fd, F_GETFL);
161 fcntl(fd, F_SETFL, flags | O_NONBLOCK);
160 162
161 return fd; 163 return fd;
162 } 164 }
163 #endif 165 #endif
164 166