comparison libpurple/win32/libc_internal.h @ 20922:d9cbd249619b

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 Mark Doliner <mark@kingant.net>
date Sun, 14 Oct 2007 09:57:32 +0000
parents 44b4e8bd759b
children 322b92e28005
comparison
equal deleted inserted replaced
20921:b2b16843851b 20922:d9cbd249619b
47 47
48 /* string.h */ 48 /* string.h */
49 char* wpurple_strerror( int errornum ); 49 char* wpurple_strerror( int errornum );
50 50
51 /* fcntl.h */ 51 /* fcntl.h */
52 int wpurple_fcntl(int socket, int command, int val); 52 int wpurple_fcntl(int socket, int command, ...);
53 #define F_SETFL 1 53 #define F_GETFL 3
54 #define O_NONBLOCK 1 54 #define F_SETFL 4
55 #define O_NONBLOCK 04000
55 56
56 /* sys/ioctl.h */ 57 /* sys/ioctl.h */
57 #define SIOCGIFCONF 0x8912 /* get iface list */ 58 #define SIOCGIFCONF 0x8912 /* get iface list */
58 int wpurple_ioctl(int fd, int command, void* opt); 59 int wpurple_ioctl(int fd, int command, void* opt);
59 60