summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorItamar Reis Peixoto <itamar@ispbrasil.com.br>2016-02-08 22:40:05 -0200
committerItamar Reis Peixoto <itamar@ispbrasil.com.br>2016-02-08 22:40:05 -0200
commit08121e08406eec8a5ab8a7af9d2230735918d56c (patch)
tree0adad67c258fa73bde2ce2d64f7eeef62639f998 /common
parentee436aeec9385a77cb547384575bcc2f9ad2746c (diff)
parent536ee41c5e53647c54f63eb9179224756d02a8f6 (diff)
downloadxrdp-proprietary-08121e08406eec8a5ab8a7af9d2230735918d56c.tar.gz
xrdp-proprietary-08121e08406eec8a5ab8a7af9d2230735918d56c.zip
Merge pull request #254 from metalefty/freebsd/ipv6
Unbreak IPv6 on FreeBSD and add IPv6-only option
Diffstat (limited to 'common')
-rw-r--r--common/os_calls.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/common/os_calls.c b/common/os_calls.c
index 6a8bf136..0034cb5b 100644
--- a/common/os_calls.c
+++ b/common/os_calls.c
@@ -411,7 +411,7 @@ g_tcp_socket(void)
unsigned int option_len;
#endif
-#if defined(XRDP_ENABLE_IPV6) && !defined(NO_ARPA_INET_H_IP6)
+#if defined(XRDP_ENABLE_IPV6)
rv = (int)socket(AF_INET6, SOCK_STREAM, 0);
#else
rv = (int)socket(AF_INET, SOCK_STREAM, 0);
@@ -420,14 +420,18 @@ g_tcp_socket(void)
{
return -1;
}
-#if defined(XRDP_ENABLE_IPV6) && !defined(NO_ARPA_INET_H_IP6)
+#if defined(XRDP_ENABLE_IPV6)
option_len = sizeof(option_value);
if (getsockopt(rv, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&option_value,
&option_len) == 0)
{
if (option_value != 0)
{
+#if defined(XRDP_ENABLE_IPV6ONLY)
+ option_value = 1;
+#else
option_value = 0;
+#endif
option_len = sizeof(option_value);
if (setsockopt(rv, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&option_value,
option_len) < 0)
@@ -659,7 +663,7 @@ g_sck_close(int sck)
/*****************************************************************************/
/* returns error, zero is good */
-#if defined(XRDP_ENABLE_IPV6) && !defined(NO_ARPA_INET_H_IP6)
+#if defined(XRDP_ENABLE_IPV6)
int APP_CC
g_tcp_connect(int sck, const char *address, const char *port)
{