Dolda2000 GitWeb
/
ashd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dirplex: Correct config resolution for base directory.
[ashd.git]
/
src
/
dirplex
/
conf.c
diff --git
a/src/dirplex/conf.c
b/src/dirplex/conf.c
index
e2b1481
..
10d501f
100644
(file)
--- a/
src/dirplex/conf.c
+++ b/
src/dirplex/conf.c
@@
-185,13
+185,16
@@
static struct pattern *parsepattern(struct cfstate *s)
pat->childnm = sstrdup(s->argv[1]);
} else if(!strcmp(s->argv[0], "fork")) {
pat->fchild = cadup(s->argv + 1);
pat->childnm = sstrdup(s->argv[1]);
} else if(!strcmp(s->argv[0], "fork")) {
pat->fchild = cadup(s->argv + 1);
- } else if(!strcmp(s->argv[0], "set")) {
+ } else if(!strcmp(s->argv[0], "set")
|| !strcmp(s->argv[0], "xset")
) {
if(s->argc < 3) {
if(s->argc < 3) {
- flog(LOG_WARNING, "%s:%i: missing header name or pattern for `
set' directive", s->file, s->lno
);
+ flog(LOG_WARNING, "%s:%i: missing header name or pattern for `
%s' directive", s->file, s->lno, s->argv[0]
);
continue;
}
omalloc(head);
continue;
}
omalloc(head);
- head->name = sstrdup(s->argv[1]);
+ if(!strcmp(s->argv[0], "xset"))
+ head->name = sprintf2("X-Ash-%s", s->argv[1]);
+ else
+ head->name = sstrdup(s->argv[1]);
head->value = sstrdup(s->argv[2]);
head->next = pat->headers;
pat->headers = head;
head->value = sstrdup(s->argv[2]);
head->next = pat->headers;
pat->headers = head;
@@
-326,6
+329,8
@@
struct config **getconfigs(char *file)
if(ret != NULL)
free(ret);
bufinit(buf);
if(ret != NULL)
free(ret);
bufinit(buf);
+ if(!strncmp(file, "./", 2))
+ file += 2;
tmp = sstrdup(file);
while(1) {
if((p = strrchr(tmp, '/')) == NULL)
tmp = sstrdup(file);
while(1) {
if((p = strrchr(tmp, '/')) == NULL)