]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-id128: split the logic obtaining invocation ID from sd_id128_get_invocation()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 6 Feb 2019 13:39:12 +0000 (14:39 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 15 Mar 2019 09:53:23 +0000 (18:53 +0900)
src/libsystemd/sd-id128/sd-id128.c

index e72af1593cd7c857652df7e3c3231b0f85324502..6c7165eb93949ad6c678c9cac13c1a22f5301358 100644 (file)
@@ -215,6 +215,18 @@ static int get_invocation_from_keyring(sd_id128_t *ret) {
         return 1;
 }
 
+static int get_invocation_from_environment(sd_id128_t *ret) {
+        const char *e;
+
+        assert(ret);
+
+        e = secure_getenv("INVOCATION_ID");
+        if (!e)
+                return -ENXIO;
+
+        return sd_id128_from_string(e, ret);
+}
+
 _public_ int sd_id128_get_invocation(sd_id128_t *ret) {
         static thread_local sd_id128_t saved_invocation_id = {};
         int r;
@@ -237,13 +249,7 @@ _public_ int sd_id128_get_invocation(sd_id128_t *ret) {
                         return r;
 
                 if (r == 0) {
-                        const char *e;
-
-                        e = secure_getenv("INVOCATION_ID");
-                        if (!e)
-                                return -ENXIO;
-
-                        r = sd_id128_from_string(e, &saved_invocation_id);
+                        r = get_invocation_from_environment(&saved_invocation_id);
                         if (r < 0)
                                 return r;
                 }