diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2008-06-06 10:01:33 +0000 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2008-06-06 10:01:33 +0000 | 
| commit | 52f1452d5dedfade299fa81b68fa759b13aa86d9 (patch) | |
| tree | ec51d4992eab3fced5c6f1ead43b6efd128a11bf /common | |
| parent | e64373ef34f318aa60030cde093aa7cd7694c714 (diff) | |
Fix the D-Bus sending for error messages
Diffstat (limited to 'common')
| -rw-r--r-- | common/error.c | 20 | 
1 files changed, 16 insertions, 4 deletions
| diff --git a/common/error.c b/common/error.c index 51f4f4bc..096b8651 100644 --- a/common/error.c +++ b/common/error.c @@ -246,7 +246,11 @@ DBusHandlerResult error_common_reply(DBusConnection *conn, DBusMessage *msg,  	if (!derr)  		return DBUS_HANDLER_RESULT_NEED_MEMORY; -	return dbus_connection_send_and_unref(conn, derr); +	dbus_connection_send(conn, derr, NULL); + +	dbus_message_unref(derr); + +	return DBUS_HANDLER_RESULT_HANDLED;  }  /** @@ -256,6 +260,7 @@ DBusHandlerResult error_common_reply(DBusConnection *conn, DBusMessage *msg,  */  DBusHandlerResult error_unknown_method(DBusConnection *conn, DBusMessage *msg)  { +	DBusMessage *derr;  	char error[128];  	const char *signature = dbus_message_get_signature(msg);  	const char *method = dbus_message_get_member(msg); @@ -264,7 +269,14 @@ DBusHandlerResult error_unknown_method(DBusConnection *conn, DBusMessage *msg)  	snprintf(error, 128, "Method \"%s\" with signature \"%s\" on interface \"%s\" doesn't exist",  			method, signature, interface); -	return send_message_and_unref(conn, -		dbus_message_new_error(msg, ERROR_INTERFACE ".UnknownMethod", -							error)); +	derr = dbus_message_new_error(msg, ERROR_INTERFACE ".UnknownMethod", +									error); +	if (!derr) +		return DBUS_HANDLER_RESULT_NEED_MEMORY; + +	dbus_connection_send(conn, derr, NULL); + +	dbus_message_unref(derr); + +	return DBUS_HANDLER_RESULT_HANDLED;  } | 
