diff options
Diffstat (limited to 'src/udp.c')
-rw-r--r-- | src/udp.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -77,6 +77,7 @@ static t_opt optset[] = { | |||
77 | {"ip-multicast-loop", opt_set_ip_multicast_loop}, | 77 | {"ip-multicast-loop", opt_set_ip_multicast_loop}, |
78 | {"ip-add-membership", opt_set_ip_add_membership}, | 78 | {"ip-add-membership", opt_set_ip_add_membership}, |
79 | {"ip-drop-membership", opt_set_ip_drop_membersip}, | 79 | {"ip-drop-membership", opt_set_ip_drop_membersip}, |
80 | {"ipv6-v6only", opt_set_ip6_v6only}, | ||
80 | {NULL, NULL} | 81 | {NULL, NULL} |
81 | }; | 82 | }; |
82 | 83 | ||
@@ -352,6 +353,11 @@ static int udp_create(lua_State *L, int domain) { | |||
352 | auxiliar_setclass(L, "udp{unconnected}", -1); | 353 | auxiliar_setclass(L, "udp{unconnected}", -1); |
353 | /* initialize remaining structure fields */ | 354 | /* initialize remaining structure fields */ |
354 | socket_setnonblocking(&sock); | 355 | socket_setnonblocking(&sock); |
356 | if (domain == PF_INET6) { | ||
357 | int yes = 1; | ||
358 | setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, | ||
359 | (void *)&yes, sizeof(yes)); | ||
360 | } | ||
355 | udp->sock = sock; | 361 | udp->sock = sock; |
356 | timeout_init(&udp->tm, -1, -1); | 362 | timeout_init(&udp->tm, -1, -1); |
357 | udp->domain = domain; | 363 | udp->domain = domain; |