X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdirplex%2Fconf.c;h=0bfa6f4b8fe454d042cf1b1981ed5722551c5bff;hb=HEAD;hp=95f643a4ab068b031bc09ea9d9b0ed28871a3598;hpb=a0b6c27cdb8e49868ec70fb276b3eb963c5852dd;p=ashd.git diff --git a/src/dirplex/conf.c b/src/dirplex/conf.c index 95f643a..0bfa6f4 100644 --- a/src/dirplex/conf.c +++ b/src/dirplex/conf.c @@ -84,8 +84,11 @@ static void freeconfig(struct config *cf) freepattern(pat); } freeca(cf->index); + freeca(cf->dotallow); if(cf->capture != NULL) free(cf->capture); + if(cf->reparse != NULL) + free(cf->reparse); free(cf); } @@ -255,9 +258,10 @@ struct config *readconfig(char *file) cf->patterns = pat; } else if(!strcmp(s->argv[0], "index-file")) { freeca(cf->index); - cf->index = NULL; - if(s->argc > 1) - cf->index = cadup(s->argv + 1); + cf->index = cadup(s->argv + 1); + } else if(!strcmp(s->argv[0], "dot-allow")) { + freeca(cf->dotallow); + cf->dotallow = cadup(s->argv + 1); } else if(!strcmp(s->argv[0], "capture")) { if(s->argc < 2) { flog(LOG_WARNING, "%s:%i: missing argument to capture declaration", s->file, s->lno); @@ -266,9 +270,20 @@ struct config *readconfig(char *file) if(cf->capture != NULL) free(cf->capture); cf->capture = sstrdup(s->argv[1]); - cf->caproot = 1; - if((s->argc > 2) && strchr(s->argv[2], 'R')) - cf->caproot = 0; + cf->caproot = 0; + if((s->argc > 2) && strchr(s->argv[2], 'D')) + cf->caproot = 1; + } else if(!strcmp(s->argv[0], "reparse")) { + if(s->argc < 2) { + flog(LOG_WARNING, "%s:%i: missing argument to reparse declaration", s->file, s->lno); + continue; + } + if(cf->reparse != NULL) + free(cf->reparse); + cf->reparse = sstrdup(s->argv[1]); + cf->parsecomb = 0; + if((s->argc > 2) && strchr(s->argv[2], 'c')) + cf->parsecomb = 1; } else if(!strcmp(s->argv[0], "eof")) { break; } else {