r = call(scope, runtime, NULL, l, force, &changes, &n_changes);
if (r == -ESHUTDOWN)
- return sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit file is masked");
+ return sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit file is masked.");
+ if (r == -EADDRNOTAVAIL)
+ return sd_bus_error_setf(error, BUS_ERROR_UNIT_GENERATED, "Unit file is generated.");
if (r < 0)
return r;
r = unit_file_add_dependency(scope, runtime, NULL, l, target, dep, force, &changes, &n_changes);
if (r == -ESHUTDOWN)
- return sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit file is masked");
+ return sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit file is masked.");
+ if (r == -EADDRNOTAVAIL)
+ return sd_bus_error_setf(error, BUS_ERROR_UNIT_GENERATED, "Unit file is generated.");
if (r < 0)
return r;
SD_BUS_ERROR_MAP(BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC, EDEADLK),
SD_BUS_ERROR_MAP(BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, EDEADLK),
SD_BUS_ERROR_MAP(BUS_ERROR_UNIT_MASKED, ESHUTDOWN),
+ SD_BUS_ERROR_MAP(BUS_ERROR_UNIT_GENERATED, EADDRNOTAVAIL),
SD_BUS_ERROR_MAP(BUS_ERROR_JOB_TYPE_NOT_APPLICABLE, EBADR),
SD_BUS_ERROR_MAP(BUS_ERROR_NO_ISOLATION, EPERM),
SD_BUS_ERROR_MAP(BUS_ERROR_SHUTTING_DOWN, ECANCELED),
#define BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC "org.freedesktop.systemd1.TransactionOrderIsCyclic"
#define BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE "org.freedesktop.systemd1.TransactionIsDestructive"
#define BUS_ERROR_UNIT_MASKED "org.freedesktop.systemd1.UnitMasked"
+#define BUS_ERROR_UNIT_GENERATED "org.freedesktop.systemd1.UnitGenerated"
#define BUS_ERROR_JOB_TYPE_NOT_APPLICABLE "org.freedesktop.systemd1.JobTypeNotApplicable"
#define BUS_ERROR_NO_ISOLATION "org.freedesktop.systemd1.NoIsolation"
#define BUS_ERROR_SHUTTING_DOWN "org.freedesktop.systemd1.ShuttingDown"
return r;
if (target_info->type == UNIT_FILE_TYPE_MASKED)
return -ESHUTDOWN;
+ if (unit_file_is_generated(&paths, target_info->path))
+ return -EADDRNOTAVAIL;
assert(target_info->type == UNIT_FILE_TYPE_REGULAR);
return r;
if (i->type == UNIT_FILE_TYPE_MASKED)
return -ESHUTDOWN;
+ if (unit_file_is_generated(&paths, i->path))
+ return -EADDRNOTAVAIL;
assert(i->type == UNIT_FILE_TYPE_REGULAR);
return r;
if (i->type == UNIT_FILE_TYPE_MASKED)
return -ESHUTDOWN;
+ if (unit_file_is_generated(&paths, i->path))
+ return -EADDRNOTAVAIL;
assert(i->type == UNIT_FILE_TYPE_REGULAR);
}
return r;
if (i->type == UNIT_FILE_TYPE_MASKED)
return -ESHUTDOWN;
+ if (unit_file_is_generated(&paths, i->path))
+ return -EADDRNOTAVAIL;
path = strjoina(config_path, "/" SPECIAL_DEFAULT_TARGET);
if (i->type == UNIT_FILE_TYPE_MASKED)
return -ESHUTDOWN;
+ if (unit_file_is_generated(paths, i->path))
+ return -EADDRNOTAVAIL;
} else
r = install_info_discover(scope, minus, root_dir, paths, name, SEARCH_FOLLOW_CONFIG_SYMLINKS, &i);
if (r == -ESHUTDOWN)
return log_error_errno(r, "Unit file is masked.");
+ if (r == -EADDRNOTAVAIL)
+ return log_error_errno(r, "Unit file is generated.");
if (r < 0)
return log_error_errno(r, "Operation failed: %m");
r = unit_file_add_dependency(arg_scope, arg_runtime, arg_root, names, target, dep, arg_force, &changes, &n_changes);
if (r == -ESHUTDOWN)
return log_error_errno(r, "Unit file is masked.");
+ if (r == -EADDRNOTAVAIL)
+ return log_error_errno(r, "Unit file is generated.");
if (r < 0)
return log_error_errno(r, "Can't add dependency: %m");