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