summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2022-08-04 19:41:39 +0200
committerJens Georg <mail@jensge.org>2022-08-04 19:41:39 +0200
commitfd3c0d4dabf5dd88d2fdb51d67cfc8acb85f1b11 (patch)
tree68b13bb619ce6a234d16ff0b32694220f7985cbb
parentd667244f1d7bdbd6165601da4b73d8115337581a (diff)
downloadgssdp-fd3c0d4dabf5dd88d2fdb51d67cfc8acb85f1b11.tar.gz
Client: Expose Client:host_addr as property
-rw-r--r--libgssdp/gssdp-client.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/libgssdp/gssdp-client.c b/libgssdp/gssdp-client.c
index ebf1bb6..91112b5 100644
--- a/libgssdp/gssdp-client.c
+++ b/libgssdp/gssdp-client.c
@@ -110,7 +110,8 @@ struct _GSSDPHeaderField {
};
typedef struct _GSSDPHeaderField GSSDPHeaderField;
-enum {
+enum
+{
PROP_0,
PROP_SERVER_ID,
PROP_IFACE,
@@ -125,6 +126,7 @@ enum {
PROP_BOOT_ID,
PROP_CONFIG_ID,
PROP_PORT,
+ PROP_HOST_ADDR,
};
enum {
@@ -328,6 +330,9 @@ gssdp_client_get_property (GObject *object,
g_value_set_string (value,
gssdp_client_get_host_ip (client));
break;
+ case PROP_HOST_ADDR:
+ g_value_set_object (value, gssdp_client_get_address (client));
+ break;
case PROP_ACTIVE:
g_value_set_boolean (value, priv->active);
break;
@@ -384,7 +389,10 @@ gssdp_client_set_property (GObject *object,
g_inet_address_new_from_string (addr);
}
break;
- }
+ }
+ case PROP_HOST_ADDR:
+ priv->device.host_addr = g_value_dup_object (value);
+ break;
case PROP_HOST_MASK:
priv->device.host_mask = g_value_dup_object (value);
break;
@@ -527,6 +535,8 @@ gssdp_client_class_init (GSSDPClientClass *klass)
* GSSDPClient:host-ip:(attributes org.gtk.Property.get=gssdp_client_get_host_ip):
*
* The IP address of the assoicated network interface.
+ *
+ * Deprecated: 1.6. Use [property@GSSDP.Client:address] instead.
**/
g_object_class_install_property
(object_class,
@@ -543,6 +553,23 @@ gssdp_client_class_init (GSSDPClientClass *klass)
G_PARAM_STATIC_BLURB));
/**
+ * GSSDPClient:address:(attributes org.gtk.Property.get=gssdp_client_get_address):
+ *
+ * The network address this client is bound to.
+ * Since: 1.6
+ **/
+ g_object_class_install_property (
+ object_class,
+ PROP_HOST_ADDR,
+ g_param_spec_object ("address",
+ "Network address",
+ "The internet address of the client",
+ G_TYPE_INET_ADDRESS,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
* GSSDPClient:host-mask:(attributes org.gtk.Property.get=gssdp_client_get_address_mask):
*
* The network mask of the assoicated network interface.
@@ -607,7 +634,7 @@ gssdp_client_class_init (GSSDPClientClass *klass)
* network. If not set (or set to 0) a random port will be used.
* This property can be only set during object construction.
*
- * Deprecated: 1.6.0: Use GSSDPClient:port instead
+ * Deprecated: 1.6.0: Use [property@GSSDP.Client:port] instead
*/
g_object_class_install_property
(object_class,
@@ -1157,7 +1184,7 @@ gssdp_client_clear_headers (GSSDPClient *client)
}
/**
- * gssdp_client_get_address:
+ * gssdp_client_get_address:(attributes org.gtk.Method.get_property=address):
* @client: A #GSSDPClient
*
* The IP address this client works on.