If we allow listening on arbitrary sockets like unix sockets,
we can get ENOPROTOOPT errors from setsockopt calls that set TCP
specific options.  This should be allowed to happen.
---
 server/inputs_channel.c |    2 +-
 server/spicevmc.c       |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/inputs_channel.c b/server/inputs_channel.c
index a3f26c0..fb25fe0 100644
--- a/server/inputs_channel.c
+++ b/server/inputs_channel.c
@@ -470,7 +470,7 @@ static int inputs_channel_config_socket(RedChannelClient 
*rcc)
 
     if (setsockopt(stream->socket, IPPROTO_TCP, TCP_NODELAY,
             &delay_val, sizeof(delay_val)) == -1) {
-        if (errno != ENOTSUP) {
+        if (errno != ENOTSUP && errno != ENOPROTOOPT) {
             red_printf("setsockopt failed, %s", strerror(errno));
             return FALSE;
         }
diff --git a/server/spicevmc.c b/server/spicevmc.c
index 30aaf2f..9449c1e 100644
--- a/server/spicevmc.c
+++ b/server/spicevmc.c
@@ -92,7 +92,7 @@ static int 
spicevmc_red_channel_client_config_socket(RedChannelClient *rcc)
     if (rcc->channel->type == SPICE_CHANNEL_USBREDIR) {
         if (setsockopt(stream->socket, IPPROTO_TCP, TCP_NODELAY,
                 &delay_val, sizeof(delay_val)) != 0) {
-            if (errno != ENOTSUP) {
+            if (errno != ENOTSUP && errno != ENOPROTOOPT) {
                 red_printf("setsockopt failed, %s", strerror(errno));
                 return FALSE;
             }
-- 
1.7.7.6

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to