chiark / gitweb /
Do no isolate in case of emergency or severe problems
[elogind.git] / src / shared / specifier.c
index 599027cd47e795f7ffc42304601ccddcbf017cf4..7577c91052cd7f57e0a9c6503dc2932843510b86 100644 (file)
@@ -109,3 +109,39 @@ char *specifier_printf(const char *text, const Specifier table[], void *userdata
 char* specifier_string(char specifier, void *data, void *userdata) {
         return strdup(strempty(data));
 }
+
+char *specifier_machine_id(char specifier, void *data, void *userdata) {
+        sd_id128_t id;
+        char *buf;
+        int r;
+
+        r = sd_id128_get_machine(&id);
+        if (r < 0)
+                return NULL;
+
+        buf = new(char, 33);
+        if (!buf)
+                return NULL;
+
+        return sd_id128_to_string(id, buf);
+}
+
+char *specifier_boot_id(char specifier, void *data, void *userdata) {
+        sd_id128_t id;
+        char *buf;
+        int r;
+
+        r = sd_id128_get_boot(&id);
+        if (r < 0)
+                return NULL;
+
+        buf = new(char, 33);
+        if (!buf)
+                return NULL;
+
+        return sd_id128_to_string(id, buf);
+}
+
+char *specifier_host_name(char specifier, void *data, void *userdata) {
+        return gethostname_malloc();
+}