#endif
#ifndef __GSOCKET_STANDALONE__
-#include "wx/setup.h"
+#include "wx/defs.h"
#endif
#if defined(__VISAGECPP__)
-/* Seems to be needed by Visual Age C++, though I don't see how it manages
- to not break on including a C++ header into a plain C source file */
-#include "wx/defs.h"
#define BSD_SELECT /* use Berkley Sockets select */
#endif
#define UNMASK_SIGNAL() }
#else
+ extern "C" { typedef void (*wxSigHandler)(int); }
#define MASK_SIGNAL() \
{ \
- void (*old_handler)(int); \
- \
- old_handler = signal(SIGPIPE, SIG_IGN);
+ wxSigHandler old_handler = signal(SIGPIPE, SIG_IGN);
#define UNMASK_SIGNAL() \
signal(SIGPIPE, old_handler); \
assert(this);
+ if (m_fd == -1)
+ return (GSOCK_LOST_FLAG & flags);
+
/* Do not use a static struct, Linux can garble it */
tv.tv_sec = m_timeout / 1000;
tv.tv_usec = (m_timeout % 1000) * 1000;