[gssdp] socket-source: ::1 Should not set mcast interface



commit 94e709a23dbde90ceeccf9b3ec1d549a4b2090ae
Author: Jens Georg <mail jensge org>
Date:   Mon Apr 13 18:35:38 2020 +0200

    socket-source: ::1 Should not set mcast interface
    
    If we do that, we cannot send any packets, at least on Linux

 libgssdp/gssdp-socket-source.c | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)
---
diff --git a/libgssdp/gssdp-socket-source.c b/libgssdp/gssdp-socket-source.c
index 3dafc78..d1b0fdf 100644
--- a/libgssdp/gssdp-socket-source.c
+++ b/libgssdp/gssdp-socket-source.c
@@ -271,16 +271,20 @@ gssdp_socket_source_do_init (GInitable                   *initable,
         } else {
                 guint port = SSDP_PORT;
 
-                if (!gssdp_socket_mcast_interface_set (priv->socket,
-                                                       priv->address,
-                                                       (guint32) priv->index,
-                                                       &inner_error)) {
-                        g_propagate_prefixed_error (
-                                        error,
-                                        inner_error,
-                                        "Failed to set multicast interface");
-
-                        goto error;
+                if (family != G_SOCKET_FAMILY_IPV6 ||
+                    (!g_inet_address_get_is_loopback (priv->address))) {
+
+                        if (!gssdp_socket_mcast_interface_set (priv->socket,
+                                                priv->address,
+                                                (guint32) priv->index,
+                                                &inner_error)) {
+                                g_propagate_prefixed_error (
+                                                error,
+                                                inner_error,
+                                                "Failed to set multicast interface");
+
+                                goto error;
+                        }
                 }
 
                 /* Use user-supplied or random port for the socket source used


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]