summaryrefslogtreecommitdiff
path: root/src/salut-avahi-discovery-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/salut-avahi-discovery-client.c')
-rw-r--r--src/salut-avahi-discovery-client.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/salut-avahi-discovery-client.c b/src/salut-avahi-discovery-client.c
index 1130131f..b9076360 100644
--- a/src/salut-avahi-discovery-client.c
+++ b/src/salut-avahi-discovery-client.c
@@ -44,6 +44,7 @@
#include "salut-avahi-olpc-activity-manager.h"
#endif
+#include "salut-presence.h"
#include "salut-signals-marshal.h"
static void
@@ -67,6 +68,7 @@ static guint signals[LAST_SIGNAL] = {0};
enum
{
PROP_STATE = 1,
+ PROP_DNSSD_NAME,
LAST_PROPERTY
};
@@ -76,6 +78,8 @@ struct _SalutAvahiDiscoveryClientPrivate
{
SalutDiscoveryClientState state;
+ gchar *dnssd_name;
+
gboolean dispose_has_run;
};
@@ -135,6 +139,8 @@ salut_avahi_discovery_client_dispose (GObject *object)
self->avahi_client = NULL;
}
+ tp_clear_pointer (&priv->dnssd_name, g_free);
+
G_OBJECT_CLASS (salut_avahi_discovery_client_parent_class)->dispose (object);
}
@@ -153,6 +159,30 @@ salut_avahi_discovery_client_get_property (GObject *object,
case PROP_STATE:
g_value_set_uint (value, priv->state);
break;
+ case PROP_DNSSD_NAME:
+ g_value_set_string (value, priv->dnssd_name);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+salut_avahi_discovery_client_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ SalutAvahiDiscoveryClient *self = SALUT_AVAHI_DISCOVERY_CLIENT (object);
+ SalutAvahiDiscoveryClientPrivate *priv =
+ SALUT_AVAHI_DISCOVERY_CLIENT_GET_PRIVATE (self);
+
+ switch (property_id)
+ {
+ case PROP_DNSSD_NAME:
+ priv->dnssd_name = g_value_dup_string (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -172,9 +202,12 @@ salut_avahi_discovery_client_class_init (
object_class->dispose = salut_avahi_discovery_client_dispose;
object_class->get_property = salut_avahi_discovery_client_get_property;
+ object_class->set_property = salut_avahi_discovery_client_set_property;
g_object_class_override_property (object_class, PROP_STATE,
"state");
+ g_object_class_override_property (object_class, PROP_DNSSD_NAME,
+ "dnssd-name");
signals[STATE_CHANGED] =
g_signal_new ("state-changed",
@@ -324,6 +357,18 @@ salut_avahi_discovery_client_get_host_name_fqdn (SalutDiscoveryClient *clt)
SALUT_AVAHI_DISCOVERY_CLIENT (clt)->avahi_client->avahi_client);
}
+const gchar *
+salut_avahi_discovery_client_get_dnssd_name (SalutAvahiDiscoveryClient *clt)
+{
+ SalutAvahiDiscoveryClientPrivate *priv =
+ SALUT_AVAHI_DISCOVERY_CLIENT_GET_PRIVATE (clt);
+
+ if (priv->dnssd_name != NULL)
+ return priv->dnssd_name;
+ else
+ return SALUT_DNSSD_PRESENCE;
+}
+
static void
discovery_client_init (gpointer g_iface,
gpointer iface_data)