prop_funcs = (PropertyPair *) g_hash_table_lookup (path->properties, &pair);
if (!prop_funcs)
+#ifdef DBUS_ERROR_UNKNOWN_PROPERTY
+ return dbus_message_new_error (message, DBUS_ERROR_UNKNOWN_PROPERTY, "Property unavailable");
+#else
return dbus_message_new_error (message, DBUS_ERROR_FAILED, "Property unavailable");
+#endif
datum = path_get_datum (path, pathstr);
if (!datum)
reply = dbus_message_new_method_return (message);
}
+#ifdef DBUS_ERROR_PROPERTY_READ_ONLY
+ else if (!get)
+ {
+ reply = dbus_message_new_error (message, DBUS_ERROR_PROPERTY_READ_ONLY, "Property is read-only");
+ }
+#endif
else
{
reply = dbus_message_new_error (message, DBUS_ERROR_FAILED, "Getter or setter unavailable");
dbus_message_get_signature (message),
dbus_message_get_interface (message),
dbus_message_get_path (message));
+#ifdef DBUS_ERROR_UNKNOWN_OBJECT
+ reply = dbus_message_new_error (message,
+ DBUS_ERROR_UNKNOWN_OBJECT,
+ errmsg);
+#else
reply = dbus_message_new_error (message,
DBUS_ERROR_FAILED,
errmsg);
+#endif
g_free (errmsg);
return reply;
}