aboutsummaryrefslogtreecommitdiff
path: root/libindicate/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'libindicate/server.c')
-rw-r--r--libindicate/server.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/libindicate/server.c b/libindicate/server.c
index 004c386..520d47c 100644
--- a/libindicate/server.c
+++ b/libindicate/server.c
@@ -419,9 +419,15 @@ indicate_server_hide (IndicateServer * server)
g_signal_emit(server, signals[SERVER_HIDE], 0, priv->type ? priv->type : "", TRUE);
- g_object_unref(G_OBJECT(priv->dbus_proxy));
- dbus_g_connection_unref (priv->connection);
- priv->connection = NULL;
+ if (priv->dbus_proxy != NULL) {
+ g_object_unref(G_OBJECT(priv->dbus_proxy));
+ priv->dbus_proxy = NULL;
+ }
+
+ if (priv->connection != NULL) {
+ dbus_g_connection_unref (priv->connection);
+ priv->connection = NULL;
+ }
return;
}
@@ -429,13 +435,13 @@ indicate_server_hide (IndicateServer * server)
static void
dbus_owner_change (DBusGProxy * proxy, const gchar * name, const gchar * prev, const gchar * new, IndicateServer * server)
{
- /* g_debug("DBus Owner change (%s, %s, %s)", name, prev, new); */
+ g_debug("DBus Owner change (%s, %s, %s)", name, prev, new);
if (prev == NULL || prev[0] == '\0') {
/* We only care about people leaving the bus */
return;
}
- /* g_debug("\tBeing removed, interesting"); */
+ g_debug("\tBeing removed, interesting");
IndicateServerPrivate * priv = INDICATE_SERVER_GET_PRIVATE(server);
IndicateServerInterestedFolk searchitem;
@@ -443,7 +449,7 @@ dbus_owner_change (DBusGProxy * proxy, const gchar * name, const gchar * prev, c
GList * entry = g_list_find_custom(priv->interestedfolks, &searchitem, indicate_server_interested_folks_equal);
if (entry == NULL) {
- /* g_debug("\tWe don't have it, not interesting"); */
+ g_debug("\tWe don't have it, not interesting");
return;
}
@@ -458,16 +464,16 @@ dbus_owner_change (DBusGProxy * proxy, const gchar * name, const gchar * prev, c
GList * listi = NULL;
for (listi = priv->interestedfolks ; listi != NULL ; listi = listi->next) {
IndicateServerInterestedFolk * folkpointer = (IndicateServerInterestedFolk *)listi->data;
- /* g_debug("\tRebuild list from folk: %s", folkpointer->sender); */
+ g_debug("\tRebuild list from folk: %s", folkpointer->sender);
indicate_server_interested_folks_copy(folkpointer, priv->interests);
}
for (i = INDICATE_INTEREST_NONE; i < INDICATE_INTEREST_LAST; i++) {
- /* g_debug("\tComparing interests. Interest: %d Folk: %d Everyone: %d", i, folk->interests[i], priv->interests[i]); */
- if (folk->interests[i] != priv->interests[i]) {
+ g_debug("\tComparing interests. Interest: %d Folk: %d Everyone: %d", i, folk->interests[i], priv->interests[i]);
+ if (folk->interests[i] && !priv->interests[i]) {
/* We can only remove interest here. Think about it for a
moment and I think you'll be cool with it. */
- /* g_debug("\tOh, and it was interested in %d. Not anymore.", i); */
+ g_debug("\tOh, and it was interested in %d. Not anymore.", i);
g_signal_emit(G_OBJECT(server), signals[INTEREST_REMOVED], 0, i, TRUE);
}
}