Disable setting socket options for preexisting socket like: keepalive and tcp_nodelay...
authorNito Martinez <Nito@Qindel.ES>
Wed, 25 Nov 2015 07:36:49 +0000 (08:36 +0100)
committerNito Martinez <Nito@Qindel.ES>
Wed, 25 Nov 2015 07:36:49 +0000 (08:36 +0100)
libfreerdp/core/tcp.c

index 6496f75..00a1c45 100644 (file)
@@ -1150,7 +1150,8 @@ int freerdp_tcp_connect(rdpContext* context, rdpSettings* settings,
        settings->ClientAddress = freerdp_tcp_get_ip_address(sockfd);
        if (!settings->ClientAddress)
        {
-               close(sockfd);
+               if (!useExternalDefinedSocket)
+                 close(sockfd);
                WLog_ERR(TAG, "Couldn't get socket ip address");
                return -1;
        }
@@ -1158,7 +1159,7 @@ int freerdp_tcp_connect(rdpContext* context, rdpSettings* settings,
        optval = 1;
        optlen = sizeof(optval);
 
-       if (!ipcSocket)
+       if (!ipcSocket && !useExternalDefinedSocket)
        {
                if (setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (void*) &optval, optlen) < 0)
                        WLog_ERR(TAG, "unable to set TCP_NODELAY");
@@ -1181,7 +1182,7 @@ int freerdp_tcp_connect(rdpContext* context, rdpSettings* settings,
                }
        }
 
-       if (!ipcSocket)
+       if (!ipcSocket && !useExternalDefinedSocket)
        {
                if (!freerdp_tcp_set_keep_alive_mode(sockfd))
                {