launch-helper: fix error code parsing
authorChengwei Yang <chengwei.yang@intel.com>
Wed, 9 Oct 2013 00:50:37 +0000 (08:50 +0800)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Wed, 9 Oct 2013 09:51:39 +0000 (10:51 +0100)
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=66728
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
bus/activation-helper-bin.c
bus/activation-helper.c
bus/activation.c

index a360acc..f5f16d2 100644 (file)
@@ -45,6 +45,9 @@ convert_error_to_exit_code (DBusError *error)
     return BUS_SPAWN_EXIT_CODE_SETUP_FAILED;
 
   if (dbus_error_has_name (error, DBUS_ERROR_SPAWN_SERVICE_INVALID))
+    return BUS_SPAWN_EXIT_CODE_NAME_INVALID;
+
+  if (dbus_error_has_name (error, DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND))
     return BUS_SPAWN_EXIT_CODE_SERVICE_NOT_FOUND;
 
   if (dbus_error_has_name (error, DBUS_ERROR_SPAWN_PERMISSIONS_INVALID))
@@ -65,7 +68,7 @@ convert_error_to_exit_code (DBusError *error)
   /* should we assert? */
   fprintf(stderr, "%s: %s\n", error->name, error->message);
   
-  return BUS_SPAWN_EXIT_CODE_SETUP_FAILED;
+  return BUS_SPAWN_EXIT_CODE_GENERIC_FAILURE;
 }
 
 int
index e3b3323..394f393 100644 (file)
@@ -372,7 +372,7 @@ check_bus_name (const char *bus_name,
   _dbus_string_init_const (&str, bus_name);
   if (!_dbus_validate_bus_name (&str, 0, _dbus_string_get_length (&str)))
     {
-      dbus_set_error (error, DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND,
+      dbus_set_error (error, DBUS_ERROR_SPAWN_SERVICE_INVALID,
                       "bus name '%s' is not a valid bus name\n",
                       bus_name);
       return FALSE;
index e03b6fe..77357be 100644 (file)
@@ -1289,6 +1289,10 @@ handle_servicehelper_exit_error (int        exit_code,
 {
   switch (exit_code)
     {
+    case BUS_SPAWN_EXIT_CODE_CONFIG_INVALID:
+      dbus_set_error (error, DBUS_ERROR_SPAWN_CONFIG_INVALID,
+                     "Invalid configuration (missing or empty <user>?)");
+      break;
     case BUS_SPAWN_EXIT_CODE_NO_MEMORY:
       dbus_set_error (error, DBUS_ERROR_NO_MEMORY,
                       "Launcher could not run (out of memory)");
@@ -1325,6 +1329,7 @@ handle_servicehelper_exit_error (int        exit_code,
       dbus_set_error (error, DBUS_ERROR_SPAWN_CHILD_SIGNALED,
                       "Launched child was signaled, it probably crashed");
       break;
+    case BUS_SPAWN_EXIT_CODE_GENERIC_FAILURE:
     default:
       dbus_set_error (error, DBUS_ERROR_SPAWN_CHILD_EXITED,
                       "Launch helper exited with unknown return code %i", exit_code);