mirror of
https://github.com/troglobit/finit.git
synced 2026-11-01 13:10:32 +00:00
Fix #100: Adjust path to COND_RECONF /var/run symlink may be missing
On systems with the new /run hierarchy the compat symlink from /var/run may be missing, or not yet be set up by bootmisc.so. This patch adds a layer of safety to the condition layer, both set and get cond ops now perform an adjustmed of the condition path if needed. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
1 parent
90249e50ef
commit
dc7039b8d8
3 files changed
+26
-5
No files matched your search
@@ -34,7 +34,17 @@ char *pid_file (svc_t *svc);
|
||||
int pid_file_create (svc_t *svc);
|
||||
int pid_file_parse (svc_t *svc, char *arg);
|
||||
|
||||
static inline char *pid_runpath(char *file, char *path, size_t len)
|
||||
/**
|
||||
* pid_runpath - Adjust /var/run --> /run path depending on system
|
||||
* @file: Path to file in /run/path or /var/run/path
|
||||
* @path: Pointer to buffer to write correct path
|
||||
* @len: Length, in bytes, of @path buffer
|
||||
*
|
||||
* Returns:
|
||||
* Always returns a valid pointer, which can be either @path with a /run
|
||||
* or /var/run prefix to @file, or it may be @file if the prefix is OK.
|
||||
*/
|
||||
static inline char *pid_runpath(const char *file, char *path, size_t len)
|
||||
{
|
||||
static int unknown = 1;
|
||||
static char *prefix = "/var/run";
|
||||
@@ -45,6 +55,9 @@ static inline char *pid_runpath(char *file, char *path, size_t len)
|
||||
unknown = 0;
|
||||
}
|
||||
|
||||
if (!strncmp(file, prefix, strlen(prefix)))
|
||||
return (char *)file;
|
||||
|
||||
if (!strncmp(file, "/var/run/", 9))
|
||||
file += 9;
|
||||
else if (!strncmp(file, "/run/", 5))
|
||||
|
||||
Reference in new issue
Block a user