From b2f192faabe412adce79534e22efe9fb69ee40e2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 21 Jul 2006 10:10:31 +0000 Subject: Rename /openembedded/ -> /meta/ git-svn-id: https://svn.o-hand.com/repos/poky/trunk@530 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- meta/packages/dbus/dbus/0.23.1.diff | 308 ++++++++++++++++++++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 meta/packages/dbus/dbus/0.23.1.diff (limited to 'meta/packages/dbus/dbus/0.23.1.diff') diff --git a/meta/packages/dbus/dbus/0.23.1.diff b/meta/packages/dbus/dbus/0.23.1.diff new file mode 100644 index 0000000000..d56e1afc9c --- /dev/null +++ b/meta/packages/dbus/dbus/0.23.1.diff @@ -0,0 +1,308 @@ +diff -ur dbus-0.23/ChangeLog dbus-0.23.1/ChangeLog +--- dbus-0.23/ChangeLog 2005-01-13 00:48:43.000000000 +0200 ++++ dbus-0.23.1/ChangeLog 2005-02-11 20:25:48.000000000 +0200 +@@ -1,3 +1,33 @@ ++2005-02-11 Joe Shaw ++ ++ * NEWS: Update for 0.23.1 ++ ++ * configure.in: Release 0.23.1 ++ ++2005-02-10 Joe Shaw ++ ++ * dbus/dbus-connection.c ++ (_dbus_connection_queue_received_message_link, ++ _dbus_connection_message_sent): Add the path to ++ the verbose output. ++ (_dbus_connection_send_preallocated_and_unlock): Added. Calls ++ _dbus_connection_send_preallocated_unlocked(), updated the ++ dispatch status, and unlocks. Fixes a bug where certain ++ situations (like a broken pipe) could cause a Disconnect message ++ to not be sent, tricking the bus into thinking a service was still ++ there when the process had quit. ++ (_dbus_connection_send_preallocated): Call ++ _dbus_connection_send_preallocated_and_unlock(). ++ (_dbus_connection_send_and_unlock): Added. Calls ++ _dbus_connection_send_preallocated_and_unlock(). ++ (dbus_connection_send): Call _dbus_connection_send_and_unlock(). ++ (dbus_connection_send_with_reply): Update the dispatch status and ++ unlock. ++ ++ * mono/Service.cs (~Service): Added. Removes the filter so that ++ we don't get unmanaged code calling back into a GCed delegate. ++ (RemoveFilter); Added. ++ + 2005-01-12 Joe Shaw + + * NEWS: Update for 0.23. +diff -ur dbus-0.23/NEWS dbus-0.23.1/NEWS +--- dbus-0.23/NEWS 2005-01-13 00:20:40.000000000 +0200 ++++ dbus-0.23.1/NEWS 2005-02-11 20:25:16.000000000 +0200 +@@ -1,3 +1,11 @@ ++D-BUS 0.23.1 (11 Feb 2005) ++=== ++- fix a bug in which the bus daemon wouldn't recognize that a service ++ owner quit ++- fix a bug in the mono bindings that would cause unmanaged code to ++ call back into a delegate that had been garbage collected and ++ crashed. ++ + D-BUS 0.23 (11 Jan 2005) + === + +diff -ur dbus-0.23/configure dbus-0.23.1/configure +--- dbus-0.23/configure 2005-01-13 00:21:25.000000000 +0200 ++++ dbus-0.23.1/configure 2005-02-11 19:53:33.000000000 +0200 +@@ -1826,7 +1826,7 @@ + + # Define the identity of the package. + PACKAGE=dbus +- VERSION=0.23 ++ VERSION=0.23.1 + + + cat >>confdefs.h <<_ACEOF +diff -ur dbus-0.23/configure.in dbus-0.23.1/configure.in +--- dbus-0.23/configure.in 2005-01-13 00:20:40.000000000 +0200 ++++ dbus-0.23.1/configure.in 2005-02-11 19:53:09.000000000 +0200 +@@ -3,7 +3,7 @@ + + AC_INIT(dbus/dbus.h) + +-AM_INIT_AUTOMAKE(dbus, 0.23) ++AM_INIT_AUTOMAKE(dbus, 0.23.1) + + AM_CONFIG_HEADER(config.h) + +diff -ur dbus-0.23/dbus/dbus-connection.c dbus-0.23.1/dbus/dbus-connection.c +--- dbus-0.23/dbus/dbus-connection.c 2005-01-11 21:31:56.000000000 +0200 ++++ dbus-0.23.1/dbus/dbus-connection.c 2005-02-11 19:52:47.000000000 +0200 +@@ -358,9 +358,10 @@ + + _dbus_connection_wakeup_mainloop (connection); + +- _dbus_verbose ("Message %p (%d %s %s '%s') added to incoming queue %p, %d incoming\n", ++ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to incoming queue %p, %d incoming\n", + message, + dbus_message_get_type (message), ++ dbus_message_get_path (message), + dbus_message_get_interface (message) ? + dbus_message_get_interface (message) : + "no interface", +@@ -473,9 +474,10 @@ + + connection->n_outgoing -= 1; + +- _dbus_verbose ("Message %p (%d %s %s '%s') removed from outgoing queue %p, %d left to send\n", ++ _dbus_verbose ("Message %p (%d %s %s %s '%s') removed from outgoing queue %p, %d left to send\n", + message, + dbus_message_get_type (message), ++ dbus_message_get_path (message), + dbus_message_get_interface (message) ? + dbus_message_get_interface (message) : + "no interface", +@@ -1572,9 +1574,10 @@ + } + #endif + +- _dbus_verbose ("Message %p (%d %s %s '%s') added to outgoing queue %p, %d pending to send\n", ++ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to outgoing queue %p, %d pending to send\n", + message, + dbus_message_get_type (message), ++ dbus_message_get_path (message), + dbus_message_get_interface (message) ? + dbus_message_get_interface (message) : + "no interface", +@@ -1606,12 +1609,30 @@ + _dbus_connection_do_iteration (connection, + DBUS_ITERATION_DO_WRITING, + -1); +- ++ + /* If stuff is still queued up, be sure we wake up the main loop */ + if (connection->n_outgoing > 0) + _dbus_connection_wakeup_mainloop (connection); + } + ++static void ++_dbus_connection_send_preallocated_and_unlock (DBusConnection *connection, ++ DBusPreallocatedSend *preallocated, ++ DBusMessage *message, ++ dbus_uint32_t *client_serial) ++{ ++ DBusDispatchStatus status; ++ ++ _dbus_connection_send_preallocated_unlocked (connection, ++ preallocated, ++ message, client_serial); ++ ++ status = _dbus_connection_get_dispatch_status_unlocked (connection); ++ ++ /* this calls out to user code */ ++ _dbus_connection_update_dispatch_status_and_unlock (connection, status); ++} ++ + /** + * Sends a message using preallocated resources. This function cannot fail. + * It works identically to dbus_connection_send() in other respects. +@@ -1642,10 +1663,9 @@ + dbus_message_get_member (message) != NULL)); + + CONNECTION_LOCK (connection); +- _dbus_connection_send_preallocated_unlocked (connection, +- preallocated, +- message, client_serial); +- CONNECTION_UNLOCK (connection); ++ _dbus_connection_send_preallocated_and_unlock (connection, ++ preallocated, ++ message, client_serial); + } + + static dbus_bool_t +@@ -1670,6 +1690,27 @@ + return TRUE; + } + ++static dbus_bool_t ++_dbus_connection_send_and_unlock (DBusConnection *connection, ++ DBusMessage *message, ++ dbus_uint32_t *client_serial) ++{ ++ DBusPreallocatedSend *preallocated; ++ ++ _dbus_assert (connection != NULL); ++ _dbus_assert (message != NULL); ++ ++ preallocated = _dbus_connection_preallocate_send_unlocked (connection); ++ if (preallocated == NULL) ++ return FALSE; ++ ++ _dbus_connection_send_preallocated_and_unlock (connection, ++ preallocated, ++ message, ++ client_serial); ++ return TRUE; ++} ++ + /** + * Adds a message to the outgoing message queue. Does not block to + * write the message to the network; that happens asynchronously. To +@@ -1698,14 +1739,9 @@ + + CONNECTION_LOCK (connection); + +- if (!_dbus_connection_send_unlocked (connection, message, client_serial)) +- { +- CONNECTION_UNLOCK (connection); +- return FALSE; +- } +- +- CONNECTION_UNLOCK (connection); +- return TRUE; ++ return _dbus_connection_send_and_unlock (connection, ++ message, ++ client_serial); + } + + static dbus_bool_t +@@ -1784,6 +1820,7 @@ + DBusMessage *reply; + DBusList *reply_link; + dbus_int32_t serial = -1; ++ DBusDispatchStatus status; + + _dbus_return_val_if_fail (connection != NULL, FALSE); + _dbus_return_val_if_fail (message != NULL, FALSE); +@@ -1845,8 +1882,11 @@ + else + dbus_pending_call_unref (pending); + +- CONNECTION_UNLOCK (connection); +- ++ status = _dbus_connection_get_dispatch_status_unlocked (connection); ++ ++ /* this calls out to user code */ ++ _dbus_connection_update_dispatch_status_and_unlock (connection, status); ++ + return TRUE; + + error: +@@ -2256,9 +2296,10 @@ + link = _dbus_list_pop_first_link (&connection->incoming_messages); + connection->n_incoming -= 1; + +- _dbus_verbose ("Message %p (%d %s %s '%s') removed from incoming queue %p, %d incoming\n", ++ _dbus_verbose ("Message %p (%d %s %s %s '%s') removed from incoming queue %p, %d incoming\n", + link->data, + dbus_message_get_type (link->data), ++ dbus_message_get_path (link->data), + dbus_message_get_interface (link->data) ? + dbus_message_get_interface (link->data) : + "no interface", +diff -ur dbus-0.23/mono/Service.cs dbus-0.23.1/mono/Service.cs +--- dbus-0.23/mono/Service.cs 2004-08-31 06:59:14.000000000 +0300 ++++ dbus-0.23.1/mono/Service.cs 2005-02-11 19:52:47.000000000 +0200 +@@ -23,6 +23,9 @@ + private static AssemblyBuilder proxyAssembly; + private ModuleBuilder module = null; + ++ // Add a match for signals. FIXME: Can we filter the service? ++ private const string MatchRule = "type='signal'"; ++ + internal Service(string name, Connection connection) + { + this.name = name; +@@ -47,6 +50,12 @@ + this.local = true; + } + ++ ~Service () ++ { ++ if (this.filterCalled != null) ++ RemoveFilter (); ++ } ++ + public static bool Exists(Connection connection, string name) + { + Error error = new Error(); +@@ -113,9 +122,17 @@ + IntPtr.Zero)) + throw new OutOfMemoryException(); + +- // Add a match for signals. FIXME: Can we filter the service? +- string rule = "type='signal'"; +- dbus_bus_add_match(connection.RawConnection, rule, IntPtr.Zero); ++ dbus_bus_add_match(connection.RawConnection, MatchRule, IntPtr.Zero); ++ } ++ ++ private void RemoveFilter() ++ { ++ dbus_connection_remove_filter (Connection.RawConnection, ++ this.filterCalled, ++ IntPtr.Zero); ++ this.filterCalled = null; ++ ++ dbus_bus_remove_match (connection.RawConnection, MatchRule, IntPtr.Zero); + } + + private int Service_FilterCalled(IntPtr rawConnection, +@@ -200,9 +217,19 @@ + IntPtr freeData); + + [DllImport("dbus-1")] ++ private extern static void dbus_connection_remove_filter(IntPtr rawConnection, ++ DBusHandleMessageFunction filter, ++ IntPtr userData); ++ ++ [DllImport("dbus-1")] + private extern static void dbus_bus_add_match(IntPtr rawConnection, + string rule, + IntPtr erro); + ++ [DllImport("dbus-1")] ++ private extern static void dbus_bus_remove_match(IntPtr rawConnection, ++ string rule, ++ IntPtr erro); ++ + } + } -- cgit v1.2.3-54-g00ecf