diff options
author | Jens Georg <mail@jensge.org> | 2020-01-02 12:28:45 +0100 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2020-01-02 12:36:16 +0100 |
commit | 023a5dd53806da295fe3a73a807a5767ed70f9d2 (patch) | |
tree | 211ce013fe280694bfe1c161003511ee39d88dc8 | |
parent | 386a53714a650cd10b40019b818864add93e9d0f (diff) | |
download | gssdp-023a5dd53806da295fe3a73a807a5767ed70f9d2.tar.gz |
socket-source: Set multicast sending interface
The interface was set on the receiving socket, not the sending sockets
Fixes #4
-rw-r--r-- | libgssdp/gssdp-socket-source.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/libgssdp/gssdp-socket-source.c b/libgssdp/gssdp-socket-source.c index 79e3d83..dcd9a32 100644 --- a/libgssdp/gssdp-socket-source.c +++ b/libgssdp/gssdp-socket-source.c @@ -235,16 +235,6 @@ gssdp_socket_source_do_init (GInitable *initable, /* Enable multicast loopback */ g_socket_set_multicast_loopback (self->priv->socket, TRUE); - if (!gssdp_socket_mcast_interface_set (self->priv->socket, - iface_address, - &inner_error)) { - g_propagate_prefixed_error ( - error, - inner_error, - "Failed to set multicast interface"); - - goto error; - } #ifdef G_OS_WIN32 bind_address = g_inet_socket_address_new (iface_address, @@ -256,6 +246,17 @@ gssdp_socket_source_do_init (GInitable *initable, } else { guint port = SSDP_PORT; + if (!gssdp_socket_mcast_interface_set (self->priv->socket, + iface_address, + &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 * by M-SEARCH */ if (self->priv->type == GSSDP_SOCKET_SOURCE_TYPE_SEARCH) |