]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Install: correctly report symlink creations 3016/head
authorMartin Pitt <martin.pitt@ubuntu.com>
Mon, 11 Apr 2016 19:03:29 +0000 (21:03 +0200)
committerMartin Pitt <martin.pitt@ubuntu.com>
Mon, 11 Apr 2016 19:03:29 +0000 (21:03 +0200)
All callers of create_symlink(), such as install_info_symlink_wants(), expect
that to return > 0 if it actually did something, and then return that number.
unit_file_enable() uses that to determine if any action was done
(carries_install_info != 0) and if not, show a "The unit files have no
[Install] section" warning.

Return 1 instead of 0 in the two code paths of create_symlink() when the link
was created or replaced with a new value.

This fixes getting a bogus "No [Install] section" warning when enabling a unit
with full path, like "systemctl enable /some/path/myunit.service".

src/shared/install.c

index ef8f485cae7d1fd479ef1f8988b2b060b546dd0a..0f08137f19e81ced7166eaa8e73b57e34954d941 100644 (file)
@@ -294,7 +294,7 @@ static int create_symlink(
 
         if (symlink(old_path, new_path) >= 0) {
                 unit_file_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
-                return 0;
+                return 1;
         }
 
         if (errno != EEXIST)
@@ -317,7 +317,7 @@ static int create_symlink(
         unit_file_changes_add(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
         unit_file_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
 
-        return 0;
+        return 1;
 }
 
 static int mark_symlink_for_removal(