From 13975be5892675874bea8c86d7d8140f5790e7e6 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Mon, 30 Aug 2010 12:45:04 +0200 Subject: [PATCH] dirplex: Made it easier to include configuration "modules". --- lib/cf.c | 5 +++-- src/dirplex.c | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/cf.c b/lib/cf.c index f55a620..719fcad 100644 --- a/lib/cf.c +++ b/lib/cf.c @@ -232,10 +232,11 @@ char *findstdconf(char *name) if((p2 = strrchr(p, '/')) == NULL) continue; *p2 = 0; - if(!access(t = sprintf3("%s/etc/%s", p, name), R_OK)) { + if(!access(t = sprintf2("%s/etc/%s", p, name), R_OK)) { free(path); - return(sstrdup(t)); + return(t); } + free(t); } free(path); return(NULL); diff --git a/src/dirplex.c b/src/dirplex.c index d596df0..60f0859 100644 --- a/src/dirplex.c +++ b/src/dirplex.c @@ -640,7 +640,7 @@ int main(int argc, char **argv) { int c; int nodef; - char *gcf, *lcf; + char *gcf, *lcf, *clcf; struct hthead *req; int fd; @@ -673,8 +673,18 @@ int main(int argc, char **argv) } } if(lcf != NULL) { - if((lconfig = readconfig(lcf)) == NULL) - exit(1); + if(strchr(lcf, '/') == NULL) { + if((clcf = findstdconf(sprintf3("ashd/%s", lcf))) == NULL) { + flog(LOG_ERR, "could not find requested configuration `%s'", lcf); + exit(1); + } + if((lconfig = readconfig(clcf)) == NULL) + exit(1); + free(clcf); + } else { + if((lconfig = readconfig(lcf)) == NULL) + exit(1); + } } if(chdir(argv[optind])) { flog(LOG_ERR, "could not change directory to %s: %s", argv[optind], strerror(errno)); -- 2.11.0