Strip down fmacros.h
strerror_r and addrinfo require _POSIX_C_SOURCE >= 200112L, which is implied by _XOPEN_SOURCE >= 600. With the removal of AF_LOCAL usage, the only non-standard features being used are the TCP_KEEP* socket flags. _DARWIN_C_SOURCE is required to expose TCP_KEEPALIVE. Fall back to using _XOPEN_SOURCE 600 for all platforms, and additionally define _DARWIN_C_SOURCE for Darwin. Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
This commit is contained in:
parent
bbeab80090
commit
49bbaacc79
30
fmacros.h
30
fmacros.h
@ -1,38 +1,12 @@
|
|||||||
#ifndef __HIREDIS_FMACRO_H
|
#ifndef __HIREDIS_FMACRO_H
|
||||||
#define __HIREDIS_FMACRO_H
|
#define __HIREDIS_FMACRO_H
|
||||||
|
|
||||||
#if defined(__linux__)
|
|
||||||
#define _BSD_SOURCE
|
|
||||||
#define _DEFAULT_SOURCE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__CYGWIN__)
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__)
|
|
||||||
#define _XOPEN_SOURCE 600
|
#define _XOPEN_SOURCE 600
|
||||||
#elif defined(__APPLE__) && defined(__MACH__)
|
|
||||||
#define _XOPEN_SOURCE
|
|
||||||
#elif defined(__FreeBSD__)
|
|
||||||
// intentionally left blank, don't define _XOPEN_SOURCE
|
|
||||||
#elif defined(AIX)
|
|
||||||
// intentionally left blank, don't define _XOPEN_SOURCE
|
|
||||||
#else
|
|
||||||
#define _XOPEN_SOURCE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__sun__)
|
|
||||||
#define _POSIX_C_SOURCE 200112L
|
#define _POSIX_C_SOURCE 200112L
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__APPLE__) && defined(__MACH__)
|
#if defined(__APPLE__) && defined(__MACH__)
|
||||||
#define _OSX
|
/* Enable TCP_KEEPALIVE */
|
||||||
#endif
|
#define _DARWIN_C_SOURCE
|
||||||
|
|
||||||
#ifndef AIX
|
|
||||||
# define _XOPEN_SOURCE_EXTENDED 1
|
|
||||||
# define _ALL_SOURCE
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
2
net.c
2
net.c
@ -136,7 +136,7 @@ int redisKeepAlive(redisContext *c, int interval) {
|
|||||||
|
|
||||||
val = interval;
|
val = interval;
|
||||||
|
|
||||||
#ifdef _OSX
|
#if defined(__APPLE__) && defined(__MACH__)
|
||||||
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPALIVE, &val, sizeof(val)) < 0) {
|
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPALIVE, &val, sizeof(val)) < 0) {
|
||||||
__redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
|
__redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
|
||||||
return REDIS_ERR;
|
return REDIS_ERR;
|
||||||
|
Loading…
Reference in New Issue
Block a user