Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2012-10-04 | gdbus: Fix not freeing list node by using g_slist_delete_link | Luiz Augusto von Dentz | 1 | -1/+1 | |
g_slist_remove_link does not free the node which can cause leaks so replace that with g_slist_delete_link which does free memory properly. | |||||
2012-09-28 | gdbus: Refactor filter_data_find() | Lucas De Marchi | 1 | -38/+5 | |
Now this function is only used for searching the listeners of a connection and the other parameters are not needed anymore. | |||||
2012-09-28 | gdbus: Fix wrong signal handler match | Lucas De Marchi | 1 | -21/+94 | |
When we add a signal handler with g_dbus_add_signal_watch(), this function tries to multiplex the matches added in libdbus by checking if there's a previous filter_data with the same fields. However, if the field is NULL it accepts as being the same. The result is that the following watches will use the same filter data: watch1 = g_dbus_add_signal_watch(conn, BUS_NAME, NULL, iface, member, cb1, data1, NULL); watch2 = g_dbus_add_signal_watch(conn, BUS_NAME, "/path2", iface, member, cb2, data2, NULL); watch3 = g_dbus_add_signal_watch(conn, BUS_NAME, "/path3", iface, member, cb3, data3, NULL); The result is that when a signal arrives with path == "/path2", all 3 callbacks above will be called, with the same signal delivered to all of them. Another problem is that, if we invert the calls like below, only signals to cb1 will never be trigerred, nonetheless it used path == NULL. watch2 = g_dbus_add_signal_watch(conn, BUS_NAME, "/path2", iface, member, cb2, data2, NULL); watch1 = g_dbus_add_signal_watch(conn, BUS_NAME, NULL, iface, member, cb1, data1, NULL); watch3 = g_dbus_add_signal_watch(conn, BUS_NAME, "/path3", iface, member, cb3, data3, NULL); This is fixed by not multiplexing the matchs with filter data if any of the fields are different, including being NULL. When a signal arrives, if a field is NULL we accept it as a match, but not when adding the signal handler. | |||||
2012-06-30 | gdbus: Fix removal of filter after last filter_data | Lucas De Marchi | 1 | -9/+8 | |
If there's a signal watch that's also watching for name (data->name_watch) currently we are trying to remove the message_filter twice since we may have the following call chain: filter_data_remove_callback() filter_data_free() g_dbus_remove_watch() filter_data_remove_callback() filter_data_free() dbus_connection_remove_filter() dbus_connection_remove_filter() Because of this we can't currently watch for signals passing the bus name. After this patch we don't have this issue anymore. We fix it by removing the filter before calling filter_data_free() if we are the last filter_data and thus avoid calling dbus_connection_remove_filter() twice. | |||||
2012-04-05 | gdbus: Use destroy callback for service watch | Anderson Lizardo | 1 | -1/+1 | |
Even though service watches accepted a "destroy" callback, they were being ignored. This fix properly pass them along so they are called when the watch is removed. | |||||
2011-01-01 | gdbus: Update copyright information | Marcel Holtmann | 1 | -1/+1 | |
2010-12-10 | gdbus: fix accessing freed callback data | Johan Hedberg | 1 | -5/+5 | |
cb->disc_func or cb->conn_func could remove the callback so this needs to be checked for before continuing processing. | |||||
2010-12-08 | gdbus: explicitly compare pointers to NULL | Lucas De Marchi | 1 | -11/+10 | |
This patch was generated by the following semantic patch (http://coccinelle.lip6.fr/) // <smpl> @fix disable is_null,isnt_null1@ expression *E; @@ - !E + E == NULL // </smpl> | |||||
2010-09-08 | Fix calling watch callbacks after it has been removed | Luiz Augusto von Dentz | 1 | -30/+49 | |
Pending call should be removed if the watch is removed since the application no longer expect that to be reached and may already freed the data associated with it. | |||||
2010-09-08 | Fix signal watch when a service name is given | Luiz Augusto Von Dentz | 1 | -33/+128 | |
The bus name should be resolved when adding a watch by service name since messages do always come with sender set to owner's bus name, also it should listen to owner updates since it can change without invalidating the watch. | |||||
2010-09-08 | Do not automatically remove watches for service names | Luiz Augusto Von Dentz | 1 | -6/+7 | |
Services can be owned again so it is perfectly fine to keep the watch. | |||||
2010-07-26 | Free service data in service_reply | Zhenhua Zhang | 1 | -1/+1 | |
Avoid the memory leak of server_data. | |||||
2010-02-17 | Fix: a pending call was leaking in check_service | Vinicius Costa Gomes | 1 | -0/+2 | |
This was triggering an assert inside libdbus when the timeout inside the leaking pending call expired. The assert said that we were trying to remove an nonexistent timeout. | |||||
2010-01-08 | Fix regression when removing watches | Luiz Augusto Von Dentz | 1 | -5/+9 | |
filter_data_find return the first data registered in this case so there is no guarantee that it return the same data as passed to filter_data_remove_callback which is the one that should be removed. The fix is to simple cache the connection removing the correct data before checking if there is any filter left. | |||||
2010-01-01 | Update copyright information of D-Bus helper library | Marcel Holtmann | 1 | -1/+1 | |
2009-12-29 | Fix undefined symbols | Luiz Augusto Von Dentz | 1 | -2/+2 | |
2009-12-29 | Add initial implementation of g_dbus_add_signal_watch | Luiz Augusto Von Dentz | 1 | -200/+317 | |
With g_dbus_add_signal_watch there is no need to register multiple filters for dbus nor add matching rules manually. | |||||
2009-08-08 | Use NameHasOwner instead of ListNames for name checking | Johan Hedberg | 1 | -15/+9 | |
2009-08-06 | Fix blocking service watch initial connect handling | Marcel Holtmann | 1 | -1/+96 | |
2009-05-06 | Fix crash when calling g_dbus_remove_watch from watch callback | Luiz Augusto von Dentz | 1 | -10/+41 | |
2009-04-04 | Fix handling of watch functions | Marcel Holtmann | 1 | -19/+37 | |
2009-01-01 | Update copyright information | Marcel Holtmann | 1 | -1/+1 | |
2008-10-17 | Add g_dbus_add_service_watch() implementation | Marcel Holtmann | 1 | -20/+40 | |
2008-10-17 | Change declaration of GDBusWatchFunction | Marcel Holtmann | 1 | -2/+2 | |
2008-08-13 | Add copy of libgdbus helper for easier adoption | Marcel Holtmann | 1 | -0/+353 | |