Mercurial > pidgin.yaz
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 |