Browse Source

Add ipv6_v6only listen option

Marc Worrell 8 years ago
parent
commit
2d56329c7b
2 changed files with 5 additions and 1 deletions
  1. 3 0
      doc/src/manual/ranch_tcp.asciidoc
  2. 2 1
      src/ranch_tcp.erl

+ 3 - 0
doc/src/manual/ranch_tcp.asciidoc

@@ -30,6 +30,7 @@ opt() = {backlog, non_neg_integer()}
 	| inet
 	| inet
 	| inet6
 	| inet6
 	| {ip, inet:ip_address()}
 	| {ip, inet:ip_address()}
+	| {ipv6_v6only, boolean()}
 	| {keepalive, boolean()}
 	| {keepalive, boolean()}
 	| {linger, {boolean(), non_neg_integer()}}
 	| {linger, {boolean(), non_neg_integer()}}
 	| {low_msgq_watermark, non_neg_integer()}
 	| {low_msgq_watermark, non_neg_integer()}
@@ -88,6 +89,8 @@ inet6::
 	Set up the socket for IPv6.
 	Set up the socket for IPv6.
 ip::
 ip::
 	Interface to listen on. Listen on all interfaces by default.
 	Interface to listen on. Listen on all interfaces by default.
+ipv6_v6only (false)::
+	Listen on IPv4 and IPv6 (false) or only on IPv6 (true). Use with inet6.
 keepalive (false)::
 keepalive (false)::
 	Enable sending of keep-alive messages.
 	Enable sending of keep-alive messages.
 linger ({false, 0})::
 linger ({false, 0})::

+ 2 - 1
src/ranch_tcp.erl

@@ -47,6 +47,7 @@
 	| inet
 	| inet
 	| inet6
 	| inet6
 	| {ip, inet:ip_address()}
 	| {ip, inet:ip_address()}
+	| {ipv6_v6only, boolean()}
 	| {keepalive, boolean()}
 	| {keepalive, boolean()}
 	| {linger, {boolean(), non_neg_integer()}}
 	| {linger, {boolean(), non_neg_integer()}}
 	| {low_msgq_watermark, non_neg_integer()}
 	| {low_msgq_watermark, non_neg_integer()}
@@ -91,7 +92,7 @@ listen(Opts) ->
 %% The 4-tuple 'raw' option is also handled specifically.
 %% The 4-tuple 'raw' option is also handled specifically.
 listen_options() ->
 listen_options() ->
 	[backlog, buffer, delay_send, dontroute, exit_on_close, fd,
 	[backlog, buffer, delay_send, dontroute, exit_on_close, fd,
-		high_msgq_watermark, high_watermark, ip,
+		high_msgq_watermark, high_watermark, ip, ipv6_v6only,
 		keepalive, linger, low_msgq_watermark,
 		keepalive, linger, low_msgq_watermark,
 		low_watermark, nodelay, port, priority, recbuf,
 		low_watermark, nodelay, port, priority, recbuf,
 		send_timeout, send_timeout_close, sndbuf, tos].
 		send_timeout, send_timeout_close, sndbuf, tos].