mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-13 18:55:10 +01:00
5eb0b00c87
* Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un
According to https://github.com/microsoft/vcpkg/issues/21623,
struct sockaddr_un might be unavailable on some machines even afunix.h exists.
For example, on some machines, the content of afunix.h looks like this:
typedef struct _SOCKADDR_UN
{
ADDRESS_FAMILY Family;
wchar_t Path[63];
} SOCKADDR_UN, *PSOCKADDR_UN;
but on other machines, it may looks like this:
#define UNIX_PATH_MAX 108
typedef struct sockaddr_un
{
ADDRESS_FAMILY sun_family;
char sun_path[UNIX_PATH_MAX];
} SOCKADDR_UN, *PSOCKADDR_UN;
Fixes #3949
References:
- [Enable Unix-domain sockets support on Windows](8f3ec75de4
)
- [AF_UNIX equivalent for Windows](https://stackoverflow.com/questions/9029174/af-unix-equivalent-for-windows)
- https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
146 lines
3.3 KiB
C++
146 lines
3.3 KiB
C++
#ifndef __ZMQ_PLATFORM_HPP_INCLUDED__
|
|
#define __ZMQ_PLATFORM_HPP_INCLUDED__
|
|
|
|
#cmakedefine ZMQ_USE_CV_IMPL_STL11
|
|
#cmakedefine ZMQ_USE_CV_IMPL_WIN32API
|
|
#cmakedefine ZMQ_USE_CV_IMPL_PTHREADS
|
|
#cmakedefine ZMQ_USE_CV_IMPL_NONE
|
|
|
|
#cmakedefine ZMQ_IOTHREAD_POLLER_USE_KQUEUE
|
|
#cmakedefine ZMQ_IOTHREAD_POLLER_USE_EPOLL
|
|
#cmakedefine ZMQ_IOTHREAD_POLLER_USE_EPOLL_CLOEXEC
|
|
#cmakedefine ZMQ_IOTHREAD_POLLER_USE_DEVPOLL
|
|
#cmakedefine ZMQ_IOTHREAD_POLLER_USE_POLL
|
|
#cmakedefine ZMQ_IOTHREAD_POLLER_USE_SELECT
|
|
#cmakedefine ZMQ_HAVE_PPOLL
|
|
|
|
#cmakedefine ZMQ_POLL_BASED_ON_SELECT
|
|
#cmakedefine ZMQ_POLL_BASED_ON_POLL
|
|
|
|
#cmakedefine HAVE_POSIX_MEMALIGN @HAVE_POSIX_MEMALIGN@
|
|
#cmakedefine ZMQ_CACHELINE_SIZE @ZMQ_CACHELINE_SIZE@
|
|
|
|
#cmakedefine ZMQ_FORCE_MUTEXES
|
|
|
|
#cmakedefine HAVE_FORK
|
|
#cmakedefine HAVE_CLOCK_GETTIME
|
|
#cmakedefine HAVE_GETHRTIME
|
|
#cmakedefine HAVE_MKDTEMP
|
|
#cmakedefine ZMQ_HAVE_UIO
|
|
|
|
#cmakedefine ZMQ_HAVE_NOEXCEPT
|
|
|
|
#cmakedefine ZMQ_HAVE_EVENTFD
|
|
#cmakedefine ZMQ_HAVE_EVENTFD_CLOEXEC
|
|
#cmakedefine ZMQ_HAVE_IFADDRS
|
|
#cmakedefine ZMQ_HAVE_SO_BINDTODEVICE
|
|
|
|
#cmakedefine ZMQ_HAVE_SO_PEERCRED
|
|
#cmakedefine ZMQ_HAVE_LOCAL_PEERCRED
|
|
#cmakedefine ZMQ_HAVE_BUSY_POLL
|
|
|
|
#cmakedefine ZMQ_HAVE_O_CLOEXEC
|
|
|
|
#cmakedefine ZMQ_HAVE_SOCK_CLOEXEC
|
|
#cmakedefine ZMQ_HAVE_SO_KEEPALIVE
|
|
#cmakedefine ZMQ_HAVE_SO_PRIORITY
|
|
#cmakedefine ZMQ_HAVE_TCP_KEEPCNT
|
|
#cmakedefine ZMQ_HAVE_TCP_KEEPIDLE
|
|
#cmakedefine ZMQ_HAVE_TCP_KEEPINTVL
|
|
#cmakedefine ZMQ_HAVE_TCP_KEEPALIVE
|
|
#cmakedefine ZMQ_HAVE_PTHREAD_SETNAME_1
|
|
#cmakedefine ZMQ_HAVE_PTHREAD_SETNAME_2
|
|
#cmakedefine ZMQ_HAVE_PTHREAD_SETNAME_3
|
|
#cmakedefine ZMQ_HAVE_PTHREAD_SET_NAME
|
|
#cmakedefine ZMQ_HAVE_PTHREAD_SET_AFFINITY
|
|
#cmakedefine HAVE_ACCEPT4
|
|
#cmakedefine HAVE_STRNLEN
|
|
#cmakedefine ZMQ_HAVE_STRLCPY
|
|
#cmakedefine ZMQ_HAVE_LIBBSD
|
|
|
|
#cmakedefine ZMQ_HAVE_IPC
|
|
#cmakedefine ZMQ_HAVE_STRUCT_SOCKADDR_UN
|
|
|
|
#cmakedefine ZMQ_USE_BUILTIN_SHA1
|
|
#cmakedefine ZMQ_USE_NSS
|
|
#cmakedefine ZMQ_HAVE_WS
|
|
#cmakedefine ZMQ_HAVE_WSS
|
|
#cmakedefine ZMQ_HAVE_TIPC
|
|
|
|
#cmakedefine ZMQ_HAVE_OPENPGM
|
|
#cmakedefine ZMQ_HAVE_NORM
|
|
#cmakedefine ZMQ_MAKE_VALGRIND_HAPPY
|
|
|
|
#cmakedefine ZMQ_BUILD_DRAFT_API
|
|
#cmakedefine ZMQ_HAVE_CURVE
|
|
#cmakedefine ZMQ_USE_TWEETNACL
|
|
#cmakedefine ZMQ_USE_LIBSODIUM
|
|
#cmakedefine SODIUM_STATIC
|
|
#cmakedefine ZMQ_USE_GNUTLS
|
|
#cmakedefine ZMQ_USE_RADIX_TREE
|
|
#cmakedefine HAVE_IF_NAMETOINDEX
|
|
|
|
#ifdef _AIX
|
|
#define ZMQ_HAVE_AIX
|
|
#endif
|
|
|
|
#if defined __ANDROID__
|
|
#define ZMQ_HAVE_ANDROID
|
|
#endif
|
|
|
|
#if defined __CYGWIN__
|
|
#define ZMQ_HAVE_CYGWIN
|
|
#endif
|
|
|
|
#if defined __MINGW32__
|
|
#define ZMQ_HAVE_MINGW32
|
|
#endif
|
|
|
|
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
|
#define ZMQ_HAVE_FREEBSD
|
|
#endif
|
|
|
|
#if defined(__DragonFly__)
|
|
#define ZMQ_HAVE_FREEBSD
|
|
#define ZMQ_HAVE_DRAGONFLY
|
|
#endif
|
|
|
|
#if defined __hpux
|
|
#define ZMQ_HAVE_HPUX
|
|
#endif
|
|
|
|
#if defined __linux__
|
|
#define ZMQ_HAVE_LINUX
|
|
#endif
|
|
|
|
#if defined __NetBSD__
|
|
#define ZMQ_HAVE_NETBSD
|
|
#endif
|
|
|
|
#if defined __OpenBSD__
|
|
#define ZMQ_HAVE_OPENBSD
|
|
#endif
|
|
|
|
// TODO better move OS-specific defines to the automake files, and check for availability of IPC with an explicit test there
|
|
#if defined __VMS
|
|
#define ZMQ_HAVE_OPENVMS
|
|
#undef ZMQ_HAVE_IPC
|
|
#endif
|
|
|
|
#if defined __APPLE__
|
|
#define ZMQ_HAVE_OSX
|
|
#endif
|
|
|
|
#if defined __QNXNTO__
|
|
#define ZMQ_HAVE_QNXNTO
|
|
#endif
|
|
|
|
#if defined(sun) || defined(__sun)
|
|
#define ZMQ_HAVE_SOLARIS
|
|
#endif
|
|
|
|
#cmakedefine ZMQ_HAVE_WINDOWS
|
|
#cmakedefine ZMQ_HAVE_WINDOWS_UWP
|
|
|
|
#endif
|