source: sock.h @ 19ac9c5

Last change on this file since 19ac9c5 was e4d6271, checked in by Wilmer van der Gaast <wilmer@…>, at 2005-12-27T14:39:32Z

IPv6 socket improvements. Daemon mode can now also listen on IPv6 sockets.
Also, when reverse lookup fails, BitlBee now correctly falls back to an
ASCII-formatted IP instead of "localhost.".

  • Property mode set to 100644
File size: 1.2 KB
Line 
1#include <errno.h>
2#include <fcntl.h>
3
4/* To cut down on the ifdef stuff a little bit in other places */
5#ifdef IPV6
6#define AF_INETx AF_INET6
7#else
8#define AF_INETx AF_INET
9#endif
10
11#ifndef _WIN32
12#include <unistd.h>
13#include <sys/socket.h>
14#include <netinet/in.h>
15#include <arpa/inet.h>
16#include <netdb.h>
17#define sock_make_nonblocking(fd) fcntl(fd, F_SETFL, O_NONBLOCK)
18#define sock_make_blocking(fd) fcntl(fd, F_SETFL, 0)
19#define sockerr_again() (errno == EINPROGRESS || errno == EINTR)
20#define closesocket(a) close(a)
21#else
22# include <winsock2.h>
23# ifndef _MSC_VER
24#  include <ws2tcpip.h>
25# endif
26# if !defined(BITLBEE_CORE) && defined(_MSC_VER)
27#   pragma comment(lib,"bitlbee.lib")
28# endif
29# include <io.h>
30# define read(a,b,c) recv(a,b,c,0)
31# define write(a,b,c) send(a,b,c,0)
32# define umask _umask
33# define mode_t int
34# define sock_make_nonblocking(fd) { int non_block = 1; ioctlsocket(fd, FIONBIO, &non_block); }
35# define sock_make_blocking(fd) { int non_block = 0; ioctlsocket(fd, FIONBIO, &non_block); }
36# define sockerr_again() (WSAGetLastError() == WSAEINTR || WSAGetLastError() == WSAEINPROGRESS || WSAGetLastError() == WSAEWOULDBLOCK)
37# define ETIMEDOUT WSAETIMEDOUT
38# define sleep(a) Sleep(a*1000)
39#endif
Note: See TracBrowser for help on using the repository browser.