summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoff Garside <geoff@geoffgarside.co.uk>2011-09-19 23:31:41 +0100
committerantirez <antirez@gmail.com>2013-07-11 17:07:07 +0200
commitf6382369022685f5c5063b3616104b406a7fe50c (patch)
treefa1da64a156e14caac2f3819cd732d304308a3b1
parent71795d4e7e72166756d72b0133126313a5a1c552 (diff)
downloadredis-f6382369022685f5c5063b3616104b406a7fe50c.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.c10
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;