[gupnp] linux-cm: Pass network mask when creating context
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gupnp] linux-cm: Pass network mask when creating context
- Date: Mon, 19 Nov 2018 23:24:10 +0000 (UTC)
commit 0313c66c349c90fa7a84047b3b706d5de44dd976
Author: Jens Georg <mail jensge org>
Date: Mon Nov 19 23:52:44 2018 +0100
linux-cm: Pass network mask when creating context
libgupnp/gupnp-linux-context-manager.c | 28 ++++++++++++++++++++++------
1 file changed, 22 insertions(+), 6 deletions(-)
---
diff --git a/libgupnp/gupnp-linux-context-manager.c b/libgupnp/gupnp-linux-context-manager.c
index c32080c..68198b4 100644
--- a/libgupnp/gupnp-linux-context-manager.c
+++ b/libgupnp/gupnp-linux-context-manager.c
@@ -267,7 +267,8 @@ static void
network_device_create_context (NetworkInterface *device,
const char *address,
const char *label,
- const char *mask)
+ const char *mask,
+ GInetAddressMask *host_mask)
{
guint port;
GError *error = NULL;
@@ -292,6 +293,7 @@ network_device_create_context (NetworkInterface *device,
"interface", label,
"network", device->essid ? device->essid
: mask,
+ "host-mask", host_mask,
"port", port,
NULL);
@@ -392,7 +394,8 @@ static void create_context (GUPnPLinuxContextManager *self,
const char *label,
const char *address,
const char *mask,
- struct ifaddrmsg *ifa);
+ struct ifaddrmsg *ifa,
+ GInetAddressMask *host_mask);
static void remove_context (GUPnPLinuxContextManager *self,
const char *address,
const char *label,
@@ -524,7 +527,8 @@ create_context (GUPnPLinuxContextManager *self,
const char *address,
const char *label,
const char *mask,
- struct ifaddrmsg *ifa)
+ struct ifaddrmsg *ifa,
+ GInetAddressMask *host_mask)
{
NetworkInterface *device;
GUPnPLinuxContextManagerPrivate *priv;
@@ -548,7 +552,8 @@ create_context (GUPnPLinuxContextManager *self,
network_device_create_context (device,
address,
label,
- mask);
+ mask,
+ host_mask);
}
static void
@@ -833,8 +838,19 @@ receive_netlink_message (GUPnPLinuxContextManager *self, GError **error)
&label,
&mask);
- if (address != NULL)
- create_context (self, address, label, mask, ifa);
+ if (address != NULL) {
+ GInetAddress *mask_addr;
+ GInetAddressMask *host_mask;
+
+ mask_addr = g_inet_address_new_from_string (mask);
+ host_mask = g_inet_address_mask_new (mask_addr,
+ ifa->ifa_prefixlen,
+ NULL);
+ create_context (self, address, label, mask, ifa, host_mask);
+
+ g_object_unref (host_mask);
+ g_object_unref (mask_addr);
+ }
g_free (label);
g_free (address);
g_free (mask);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]