-2006-09-08 John (J5) Palmieri <johnp@redhat.com>
+2006-09-11 John (J5) Palmieri <johnp@redhat.com>
+
+ * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
+ key not found
+
+2006-09-11 John (J5) Palmieri <johnp@redhat.com>
* dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
complex debugging code
between the test suite ifdefs
(_dbus_verbose_bytes): return if verbosity is not enabled
-2006-09-08 John (J5) Palmieri <johnp@redhat.com>
+2006-09-11 John (J5) Palmieri <johnp@redhat.com>
* dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
remove DBusMark
if (!bus_desktop_file_get_string (desktop_file,
DBUS_SERVICE_SECTION,
DBUS_SERVICE_NAME,
- &name))
- {
- dbus_set_error (error, DBUS_ERROR_FAILED,
- "No \""DBUS_SERVICE_NAME"\" key in .service file\n");
- goto failed;
- }
+ &name,
+ error))
+ goto failed;
if (!bus_desktop_file_get_string (desktop_file,
DBUS_SERVICE_SECTION,
DBUS_SERVICE_EXEC,
- &exec))
- {
- dbus_set_error (error, DBUS_ERROR_FAILED,
- "No \""DBUS_SERVICE_EXEC"\" key in .service file\n");
- goto failed;
- }
+ &exec,
+ error))
+ goto failed;
entry = _dbus_hash_table_lookup_string (s_dir->entries,
_dbus_string_get_const_data (filename));
retval = TRUE;
goto out;
}
-
+
+ /* @todo We can return OOM or a DBUS_ERROR_FAILED error
+ * Handle these both better
+ */
if (!update_desktop_file_entry (activation, entry->s_dir, &filename, desktop_file, &tmp_error))
{
bus_desktop_file_free (desktop_file);
continue;
}
+ /* @todo We can return OOM or a DBUS_ERROR_FAILED error
+ * Handle these both better
+ */
if (!update_desktop_file_entry (activation, s_dir, &filename, desktop_file, &tmp_error))
{
bus_desktop_file_free (desktop_file);
bus_desktop_file_get_string (BusDesktopFile *desktop_file,
const char *section,
const char *keyname,
- char **val)
+ char **val,
+ DBusError *error)
{
const char *raw;
-
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
*val = NULL;
if (!bus_desktop_file_get_raw (desktop_file, section, keyname, &raw))
- return FALSE;
+ {
+ dbus_set_error (error, DBUS_ERROR_FAILED,
+ "No \"%s\" key in .service file\n", keyname);
+ return FALSE;
+ }
*val = _dbus_strdup (raw);
- /* FIXME 1.0 we don't distinguish "key not found" from "out of memory" here,
- * which is broken.
- */
if (*val == NULL)
- return FALSE;
+ {
+ BUS_SET_OOM (error);
+ return FALSE;
+ }
return TRUE;
}
dbus_bool_t bus_desktop_file_get_string (BusDesktopFile *desktop_file,
const char *section,
const char *keyname,
- char **val);
+ char **val,
+ DBusError *error);
#endif /* BUS_DESKTOP_FILE_H */