#ifndef __LIBCONFSOCKET_H__
#define __LIBCONFSOCKET_H__

#define LIBSOCKET_VERSION 2.4

//#define LIBSOCKET_ANDROID 1
#define LIBSOCKET_LINUX 1
// #define LIBSOCKET_FREEBSD 1

#define LIBSOCKET_TCP '1'  ///< Protocol flag
#define LIBSOCKET_UDP '2'  ///< Protocol flag

#define LIBSOCKET_STREAM '3'
#define LIBSOCKET_DGRAM '5'

#define LIBSOCKET_IPv4 '4'  ///< Address family flag
#define LIBSOCKET_IPv6 '6'  ///< Adress family flag
#define LIBSOCKET_BOTH '7'  ///< Adress family flag: what fits best (TCP/UDP or IPv4/6; delegate the decision to `getaddrinfo()`)

#define LIBSOCKET_READ 1   ///< Flag for shutdown
#define LIBSOCKET_SEND 2   ///< Flag for shutdown

#define LIBSOCKET_NUMERIC  1   ///< May be specified as flag for functions to signalize that the name resolution should not be performed.

#define LIBSOCKET_BACKLOG  128  ///< Linux accepts a backlog value at listen() up to 128

#define debug_verbose(str)    { int verbose_errno_save = errno; write(2, str, strlen(str)); errno = verbose_errno_save; }
// #define debug_verbose(str)

#endif//__LIBCONFSOCKET_H__