Refactor, add new helper fn paste() to concat directory compoents

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2021-02-26 10:32:54 +01:00
committed by Jacques de Laval
parent 6f06c432ec
commit a1f79e263a
5 changed files with 19 additions and 8 deletions
+3 -3
View File
@@ -67,8 +67,8 @@ static void pidfile_update_conds(char *dir, char *name, uint32_t mask)
char fn[PATH_MAX];
svc_t *svc;
_d("Got dir: %s, name: %s, mask: %08x", dir, name, mask);
snprintf(fn, sizeof(fn), "%s%s%s", dir, fisslashdir(dir) ? "" : "/", name);
paste(fn, sizeof(fn), dir, name);
_d("path: %s, mask: %08x", fn, mask);
if (fnmatch("*\\.pid", fn, 0) && fnmatch("*/pid", fn, 0))
return;
@@ -131,7 +131,7 @@ static void pidfile_handle_dir(struct iwatch *iw, char *dir, char *name, int mas
char path[strlen(dir) + strlen(name) + 2];
struct iwatch_path *iwp;
snprintf(path, sizeof(path), "%s%s%s", dir, fisslashdir(dir) ? "" : "/", name);
paste(path, sizeof(path), dir, name);
_d("path: %s", path);
iwp = iwatch_find_by_path(iw, path);
+1 -1
View File
@@ -775,7 +775,7 @@ static int do_change(char *dir, char *name, uint32_t mask)
char fn[strlen(dir) + strlen(name) + 2];
struct conf_change *node;
snprintf(fn, sizeof(fn), "%s%s%s", dir, fisslashdir(dir) ? "" : "/", name);
paste(fn, sizeof(fn), dir, name);
_d("path: %s mask: %08x", fn, mask);
node = conf_find(fn);
+3 -3
View File
@@ -441,20 +441,20 @@ int run_parts(char *dir, char *cmd)
}
for (i = 0; i < num; i++) {
const char *name = e[i]->d_name;
char path[strlen(dir) + strlen(name) + 2];
struct stat st;
char path[512];
char *argv[4] = {
"sh",
"-c",
path,
NULL
};
char *name = e[i]->d_name;
pid_t pid = 0;
int status;
int exit_status;
snprintf(path, sizeof(path), "%s%s%s", dir, fisslashdir(dir) ? "" : "/", name);
paste(path, sizeof(path), dir, name);
if (stat(path, &st)) {
_d("Failed stat(%s): %s", path, strerror(errno));
continue;
+11
View File
@@ -103,6 +103,17 @@ static inline int create(char *path, mode_t mode, uid_t uid, gid_t gid)
return 0;
}
/* paste dir/file into buf */
static inline int paste(char *buf, size_t len, const char *dir, const char *file)
{
if (!dir)
dir = "";
if (!file)
file = "";
return snprintf(buf, len, "%s%s%s", dir, fisslashdir(dir) ? "" : "/", file);
}
int ismnt (char *file, char *dir, char *mode);
int fismnt (char *dir);
+1 -1
View File
@@ -62,7 +62,7 @@ static inline char *pid_runpath(const char *file, char *path, size_t len)
else if (!strncmp(file, "/run/", 5))
file += 5;
rc = snprintf(path, len, "%s/%s", prefix, file);
rc = paste(path, len, prefix, file);
if (rc < 0 || (size_t)rc >= len)
_e("File path '%s' truncated, should end with '%s'", path, file);