[maemo-commits] [maemo-commits] r18083 - projects/haf/trunk/dbus-glib/debian/patches
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Apr 16 15:23:01 EEST 2009
- Previous message: [maemo-commits] r18082 - projects/haf/trunk/hildon-welcome/src
- Next message: [maemo-commits] r18084 - projects/haf/trunk/dbus-glib/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: makarhun Date: 2009-04-16 15:23:00 +0300 (Thu, 16 Apr 2009) New Revision: 18083 Added: projects/haf/trunk/dbus-glib/debian/patches/60-NameOwnerChanged-arg0-matching.patch Modified: projects/haf/trunk/dbus-glib/debian/patches/series Log: added arg0 matching for for nameownerchanged Added: projects/haf/trunk/dbus-glib/debian/patches/60-NameOwnerChanged-arg0-matching.patch =================================================================== --- projects/haf/trunk/dbus-glib/debian/patches/60-NameOwnerChanged-arg0-matching.patch 2009-04-16 12:14:50 UTC (rev 18082) +++ projects/haf/trunk/dbus-glib/debian/patches/60-NameOwnerChanged-arg0-matching.patch 2009-04-16 12:23:00 UTC (rev 18083) @@ -0,0 +1,118 @@ +Index: dbus-glib-0.78/dbus/dbus-gproxy.c +=================================================================== +--- dbus-glib-0.78.orig/dbus/dbus-gproxy.c ++++ dbus-glib-0.78/dbus/dbus-gproxy.c +@@ -471,7 +471,7 @@ g_proxy_list_free (DBusGProxyList *list) + } + + static char* +-g_proxy_get_match_rule (DBusGProxy *proxy) ++g_proxy_get_signal_match_rule (DBusGProxy *proxy) + { + DBusGProxyPrivate *priv = DBUS_G_PROXY_GET_PRIVATE(proxy); + /* FIXME Escaping is required here */ +@@ -484,6 +484,21 @@ g_proxy_get_match_rule (DBusGProxy *prox + priv->path, priv->interface); + } + ++static char * ++g_proxy_get_owner_match_rule (DBusGProxy *proxy) ++{ ++ DBusGProxyPrivate *priv = DBUS_G_PROXY_GET_PRIVATE(proxy); ++ if (priv->name) ++ { ++ return g_strdup_printf ("type='signal',sender='" DBUS_SERVICE_DBUS ++ "',path='" DBUS_PATH_DBUS ++ "',interface='" DBUS_INTERFACE_DBUS ++ "',member='NameOwnerChanged'" ++ ",arg0='%s'", priv->name); ++ } ++ return NULL; ++} ++ + typedef struct + { + char *name; +@@ -914,18 +929,6 @@ dbus_g_proxy_manager_register (DBusGProx + tristring_equal, + NULL, + (GFreeFunc) g_proxy_list_free); +- /* FIXME - for now we listen for all NameOwnerChanged; once +- * Anders' detail patch lands we should add individual rules +- * +- * NOTE: if you change this, be sure to change the matching +- * call to dbus_bus_remove_match in dbus_g_proxy_manager_unregister. +- */ +- dbus_bus_add_match (manager->connection, +- "type='signal',sender='" DBUS_SERVICE_DBUS +- "',path='" DBUS_PATH_DBUS +- "',interface='" DBUS_INTERFACE_DBUS +- "',member='NameOwnerChanged'", +- NULL); + } + else + { +@@ -948,20 +951,25 @@ dbus_g_proxy_manager_register (DBusGProx + + if (list->proxies == NULL && priv->name) + { +- /* We have to add the match rule to the server, ++ /* We have to add match rules to the server, + * but only if the server is a message bus, + * not if it's a peer. + */ + char *rule; + +- rule = g_proxy_get_match_rule (proxy); +- ++ rule = g_proxy_get_signal_match_rule (proxy); ++ + /* We don't check for errors; it's not like anyone would handle them, and + * we don't want a round trip here. + */ + dbus_bus_add_match (manager->connection, + rule, NULL); +- ++ g_free (rule); ++ ++ rule = g_proxy_get_owner_match_rule (proxy); ++ if (rule) ++ dbus_bus_add_match (manager->connection, ++ rule, NULL); + g_free (rule); + } + +@@ -1065,27 +1073,21 @@ dbus_g_proxy_manager_unregister (DBusGPr + tri); + list = NULL; + +- rule = g_proxy_get_match_rule (proxy); ++ rule = g_proxy_get_signal_match_rule (proxy); + dbus_bus_remove_match (manager->connection, + rule, NULL); + g_free (rule); ++ rule = g_proxy_get_owner_match_rule (proxy); ++ if (rule) ++ dbus_bus_remove_match (manager->connection, ++ rule, NULL); ++ g_free (rule); + } + + if (g_hash_table_size (manager->proxy_lists) == 0) + { + g_hash_table_destroy (manager->proxy_lists); + manager->proxy_lists = NULL; +- +- /* +- * NOTE: if you change this, be sure to change the matching +- * call to dbus_bus_add_match in dbus_g_proxy_manager_register. +- */ +- dbus_bus_remove_match (manager->connection, +- "type='signal',sender='" DBUS_SERVICE_DBUS +- "',path='" DBUS_PATH_DBUS +- "',interface='" DBUS_INTERFACE_DBUS +- "',member='NameOwnerChanged'", +- NULL); + } + + g_free (tri); Modified: projects/haf/trunk/dbus-glib/debian/patches/series =================================================================== --- projects/haf/trunk/dbus-glib/debian/patches/series 2009-04-16 12:14:50 UTC (rev 18082) +++ projects/haf/trunk/dbus-glib/debian/patches/series 2009-04-16 12:23:00 UTC (rev 18083) @@ -4,3 +4,4 @@ 20-owner_names-assert.patch 99-dbus-error.patch 50-free-user-error.patch +60-NameOwnerChanged-arg0-matching.patch
- Previous message: [maemo-commits] r18082 - projects/haf/trunk/hildon-welcome/src
- Next message: [maemo-commits] r18084 - projects/haf/trunk/dbus-glib/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]