diff options
author | Geoff Garside <geoff@geoffgarside.co.uk> | 2011-09-19 23:31:41 +0100 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2013-07-08 15:58:14 +0200 |
commit | 72a39226178d49a7574f805190ba2fb190a0ca2e (patch) | |
tree | f27fcbde8368686d48f04e31578574a409d123c8 | |
parent | 62a3b7e3d9229870d550ef5c93bf17a81c67172e (diff) | |
download | redis-72a39226178d49a7574f805190ba2fb190a0ca2e.tar.gz |
Add static anetV6Only() function.
This function sets the IPV6_V6ONLY option to 1 to use separate stack
IPv6 sockets.
-rw-r--r-- | src/anet.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/anet.c b/src/anet.c index f86c52493..bbefa2fe9 100644 --- a/src/anet.c +++ b/src/anet.c @@ -362,6 +362,16 @@ static int anetListen(char *err, int s, struct sockaddr *sa, socklen_t len) { return ANET_OK; } +static int anetV6Only(char *err, int s) { + int yes = 1; + if (setsockopt(s,IPPROTO_IPV6,IPV6_V6ONLY,&yes,sizeof(yes)) == -1) { + anetSetError(err, "setsockopt: %s", strerror(errno)); + close(s); + return ANET_ERR; + } + return ANET_OK; +} + int anetTcpServer(char *err, int port, char *bindaddr) { int s, rv; |