[gssdp/gssdp_1.0] client: Fix address mask for win32



commit 3d5c2e6aa803cea1fba928cf0927ea00b52162dc
Author: Jens Georg <mail jensge org>
Date:   Sun Jun 21 08:56:57 2020 +0200

    client: Fix address mask for win32

 libgssdp/gssdp-client.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)
---
diff --git a/libgssdp/gssdp-client.c b/libgssdp/gssdp-client.c
index 365c868..e6ec737 100644
--- a/libgssdp/gssdp-client.c
+++ b/libgssdp/gssdp-client.c
@@ -1692,16 +1692,6 @@ get_host_ip (GSSDPNetworkDevice *device)
                                                         q = prefix;
                         }
 
-                        {
-                                char *mask = NULL;
-
-                                mask = g_strdup_printf ("%s/%u",
-                                                        prefix,
-                                                        address_prefix->PrefixLength);
-                                device->address_mask = g_inet_address_mask_new_from_string (mask);
-                                g_free (mask);
-                        }
-
                         if (p != NULL) {
                                 gint32 mask = 0;
 
@@ -1716,6 +1706,13 @@ get_host_ip (GSSDPNetworkDevice *device)
                                 device->mask.sin_family = AF_INET;
                                 device->mask.sin_port = 0;
                                 device->mask.sin_addr.s_addr = htonl ((guint32) mask);
+                                char *mask_str = NULL;
+
+                                mask_str = g_strdup_printf ("%s/%u",
+                                                            prefix,
+                                                            (guint) address_prefix->PrefixLength);
+                                device->address_mask = g_inet_address_mask_new_from_string (mask_str, NULL);
+                                g_free (mask_str);
 
                                 if (device->iface_name == NULL)
                                         device->iface_name = g_strdup (adapter->AdapterName);


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