X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fgetty-generator%2Fgetty-generator.c;h=4b7a60a4ecef0da55a5302df22cedf2c9da82be9;hp=85600263f9cce42a8ce8310bb5488473ad580e7b;hb=c79bb9e4e2e5b96b2ae2c432bf8b0ff9674fce60;hpb=07719a21b6425d378b36bb8d7f47ad5ec5296d28 diff --git a/src/getty-generator/getty-generator.c b/src/getty-generator/getty-generator.c index 85600263f..4b7a60a4e 100644 --- a/src/getty-generator/getty-generator.c +++ b/src/getty-generator/getty-generator.c @@ -28,6 +28,7 @@ #include "mkdir.h" #include "unit-name.h" #include "virt.h" +#include "fileio.h" static const char *arg_dest = "/tmp"; @@ -39,15 +40,14 @@ static int add_symlink(const char *fservice, const char *tservice) { assert(tservice); from = strappend(SYSTEM_DATA_UNIT_PATH "/", fservice); - to = join(arg_dest,"/getty.target.wants/", tservice, NULL); + to = strjoin(arg_dest,"/getty.target.wants/", tservice, NULL); if (!from || !to) { - log_error("Out of memory"); - r = -ENOMEM; + r = log_oom(); goto finish; } - mkdir_parents(to, 0755); + mkdir_parents_label(to, 0755); r = symlink(from, to); if (r < 0) { @@ -55,7 +55,7 @@ static int add_symlink(const char *fservice, const char *tservice) { /* In case console=hvc0 is passed this will very likely result in EEXIST */ r = 0; else { - log_error("Failed to create symlink from %s to %s: %m", from, to); + log_error("Failed to create symlink %s: %m", to); r = -errno; } } @@ -77,10 +77,8 @@ static int add_serial_getty(const char *tty) { log_debug("Automatically adding serial getty for /dev/%s.", tty); n = unit_name_replace_instance("serial-getty@.service", tty); - if (!n) { - log_error("Out of memory"); - return -ENOMEM; - } + if (!n) + return log_oom(); r = add_symlink("serial-getty@.service", n); free(n); @@ -134,7 +132,7 @@ int main(int argc, char *argv[]) { /* Automatically add in a serial getty on the kernel * console */ - if (tty_is_vc(tty)) + if (isempty(tty) || tty_is_vc(tty)) free(active); else { int k; @@ -160,7 +158,7 @@ int main(int argc, char *argv[]) { int k; if (asprintf(&p, "/sys/class/tty/%s", j) < 0) { - log_error("Out of memory"); + log_oom(); r = EXIT_FAILURE; goto finish; }