X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdirplex%2Fconf.c;h=10d501fd351f60cb2f031ef968455b07a8c338c7;hb=7db7f6782db37193f6ba9c2c8bac38a5bfcbb114;hp=e2b1481c4d3881898e8ec58747e5627542096008;hpb=acc2d159e6f946ed6abc7c0e843a483d6478bee3;p=ashd.git diff --git a/src/dirplex/conf.c b/src/dirplex/conf.c index e2b1481..10d501f 100644 --- 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); - } else if(!strcmp(s->argv[0], "set")) { + } else if(!strcmp(s->argv[0], "set") || !strcmp(s->argv[0], "xset")) { 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); - 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; @@ -326,6 +329,8 @@ struct config **getconfigs(char *file) if(ret != NULL) free(ret); bufinit(buf); + if(!strncmp(file, "./", 2)) + file += 2; tmp = sstrdup(file); while(1) { if((p = strrchr(tmp, '/')) == NULL)