X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=contrib%2Fdocker%2Frootfs_prefix%2Frootfs_prefix.c;h=c27a67afd12eeebfcc94dfba288c5a464bbe4373;hb=a405225945b75555dfbf515226e7cad3322d0b66;hp=d41f06257f14139d798a2bf74b80738283301e7b;hpb=eec0cd9ca51c5c132ed09fc4699c02f3bd12d748;p=collectd.git diff --git a/contrib/docker/rootfs_prefix/rootfs_prefix.c b/contrib/docker/rootfs_prefix/rootfs_prefix.c index d41f0625..c27a67af 100644 --- a/contrib/docker/rootfs_prefix/rootfs_prefix.c +++ b/contrib/docker/rootfs_prefix/rootfs_prefix.c @@ -1,63 +1,64 @@ #define _GNU_SOURCE -#include -#include +#include #include -#include #include -#include +#include +#include +#include #define PREFIX "/rootfs" #define BUFSIZE 256 const char *add_prefix(const char *orig, char *prefixed) { - int status; - int errno; - - if ((strncmp(orig, "/proc", 5) == 0) || - (strncmp(orig, "/sys", 4) == 0)) { - - status = snprintf(prefixed, BUFSIZE, "%s%s", PREFIX, orig); - if ((unsigned int)status >= BUFSIZE) { - error(status, ENAMETOOLONG, "'%s' got truncated when adding '%s' prefix: '%s'", - orig, PREFIX, prefixed); - return orig; - } else if (status < 1) { - error(status, errno, "adding '%s' prefix to file path failed: '%s' -> '%s'", - PREFIX, orig, prefixed); - return orig; - } else { - return (const char*) prefixed; - } - - } else { - return orig; - } + int status; + int errno; + + if ((strncmp(orig, "/proc", 5) == 0) || (strncmp(orig, "/sys", 4) == 0)) { + + status = snprintf(prefixed, BUFSIZE, "%s%s", PREFIX, orig); + if ((unsigned int)status >= BUFSIZE) { + error(status, ENAMETOOLONG, + "'%s' got truncated when adding '%s' prefix: '%s'", orig, PREFIX, + prefixed); + return orig; + } else if (status < 1) { + error(status, errno, + "adding '%s' prefix to file path failed: '%s' -> '%s'", PREFIX, + orig, prefixed); + return orig; + } else { + return (const char *)prefixed; + } + + } else { + return orig; + } } FILE *fopen(const char *path, const char *mode) { - char filename[BUFSIZE] = "\0"; + char filename[BUFSIZE] = "\0"; - FILE *(*original_fopen)(const char*, const char*); - original_fopen = dlsym(RTLD_NEXT, "fopen"); + FILE *(*original_fopen)(const char *, const char *); + original_fopen = dlsym(RTLD_NEXT, "fopen"); - return (*original_fopen)(add_prefix(path, filename), mode); + return (*original_fopen)(add_prefix(path, filename), mode); } DIR *opendir(const char *name) { - char filename[BUFSIZE] = "\0"; + char filename[BUFSIZE] = "\0"; - DIR *(*original_opendir)(const char*); - original_opendir = dlsym(RTLD_NEXT, "opendir"); + DIR *(*original_opendir)(const char *); + original_opendir = dlsym(RTLD_NEXT, "opendir"); - return (*original_opendir)(add_prefix(name, filename)); + return (*original_opendir)(add_prefix(name, filename)); } int *open(const char *pathname, int flags) { - char filename[BUFSIZE] = "\0"; + char filename[BUFSIZE] = "\0"; - int *(*original_open)(const char*, int); - original_open = dlsym(RTLD_NEXT, "open"); + int *(*original_open)(const char *, int); + original_open = dlsym(RTLD_NEXT, "open"); - return (*original_open)(add_prefix(pathname, filename), flags); + return (*original_open)(add_prefix(pathname, filename), flags); }