mirror of
https://github.com/systemd/systemd.git
synced 2024-10-28 03:25:31 +03:00
install: append .service when enable/disable... is called
https://bugzilla.redhat.com/show_bug.cgi?id=856975
This commit is contained in:
parent
2fbe635a83
commit
37370d0cbe
@ -3551,6 +3551,28 @@ finish:
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int mangle_names(char **original_names, char ***mangled_names) {
|
||||||
|
char **names_it = NULL;
|
||||||
|
char **name = NULL;
|
||||||
|
|
||||||
|
(*mangled_names) = new(char*, strv_length(original_names)+1);
|
||||||
|
if(!(*mangled_names))
|
||||||
|
return log_oom();
|
||||||
|
|
||||||
|
names_it = *mangled_names;
|
||||||
|
|
||||||
|
STRV_FOREACH(name, original_names) {
|
||||||
|
char *n = unit_name_mangle(*name);
|
||||||
|
(*names_it) = n ? n : strdup(*name);
|
||||||
|
if(!(*names_it))
|
||||||
|
return log_oom();
|
||||||
|
names_it++;
|
||||||
|
}
|
||||||
|
*names_it = NULL;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int enable_unit(DBusConnection *bus, char **args) {
|
static int enable_unit(DBusConnection *bus, char **args) {
|
||||||
const char *verb = args[0];
|
const char *verb = args[0];
|
||||||
UnitFileChange *changes = NULL;
|
UnitFileChange *changes = NULL;
|
||||||
@ -3559,6 +3581,7 @@ static int enable_unit(DBusConnection *bus, char **args) {
|
|||||||
DBusMessage *m = NULL, *reply = NULL;
|
DBusMessage *m = NULL, *reply = NULL;
|
||||||
int r;
|
int r;
|
||||||
DBusError error;
|
DBusError error;
|
||||||
|
char **mangled_names = NULL;
|
||||||
|
|
||||||
r = enable_sysv_units(args);
|
r = enable_sysv_units(args);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
@ -3644,7 +3667,11 @@ static int enable_unit(DBusConnection *bus, char **args) {
|
|||||||
|
|
||||||
dbus_message_iter_init_append(m, &iter);
|
dbus_message_iter_init_append(m, &iter);
|
||||||
|
|
||||||
r = bus_append_strv_iter(&iter, args+1);
|
r = mangle_names(args+1, &mangled_names);
|
||||||
|
if(r < 0)
|
||||||
|
goto finish;
|
||||||
|
|
||||||
|
r = bus_append_strv_iter(&iter, mangled_names);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
log_error("Failed to append unit files.");
|
log_error("Failed to append unit files.");
|
||||||
goto finish;
|
goto finish;
|
||||||
@ -3744,6 +3771,9 @@ finish:
|
|||||||
unit_file_changes_free(changes, n_changes);
|
unit_file_changes_free(changes, n_changes);
|
||||||
|
|
||||||
dbus_error_free(&error);
|
dbus_error_free(&error);
|
||||||
|
|
||||||
|
strv_free(mangled_names);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user