break;
case DBUSPOLICY_RESULT_DEST_NOT_AVAILABLE:
- g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN,
- "Cannot send message - destination not known");
+ if (g_dbus_message_get_flags (message) & G_DBUS_MESSAGE_FLAGS_NO_AUTO_START)
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER,
+ "Name \"%s\" does not exist", dst_name);
+ else
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN,
+ "Cannot send message - destination '%s' not known", dst_name);
break;
case DBUSPOLICY_RESULT_KDBUS_ERROR:
errno = ret;
if (errno == ENXIO || errno == ESRCH)
{
- g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN,
- "Destination '%s' not known, %s", dst_name, info);
+ if (g_dbus_message_get_flags (message) & G_DBUS_MESSAGE_FLAGS_NO_AUTO_START)
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER,
+ "Name \"%s\" does not exist, %s", dst_name, info);
+ else
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN,
+ "Destination '%s' not known, %s", dst_name, info);
}
else if (errno == EADDRNOTAVAIL)
{