dirplex, patplex: Added ability to set arbitrary headers based on match.
[ashd.git] / src / dirplex / dirplex.h
... / ...
CommitLineData
1#ifndef _ASH_DIRPLEX_H
2#define _ASH_DIRPLEX_H
3
4#define PAT_BASENAME 0
5#define PAT_PATHNAME 1
6#define PAT_ALL 2
7#define PAT_DEFAULT 3
8#define PAT_LOCAL 4
9
10#define PT_FILE 0
11#define PT_DIR 1
12
13struct config {
14 struct config *next, *prev;
15 char *path;
16 time_t mtime, lastck;
17 struct child *children;
18 struct pattern *patterns;
19 char **index;
20 char *capture;
21};
22
23struct rule {
24 int type;
25 char **patterns;
26};
27
28struct headmod {
29 struct headmod *next;
30 char *name, *value;
31};
32
33struct pattern {
34 struct pattern *next;
35 int type;
36 struct headmod *headers;
37 char *childnm;
38 char **fchild;
39 struct rule **rules;
40};
41
42struct child *getchild(struct config *cf, char *name);
43struct config *readconfig(char *file);
44struct config *getconfig(char *path);
45struct config **getconfigs(char *file);
46struct child *findchild(char *file, char *name, struct config **cf);
47struct pattern *findmatch(char *file, int trydefault, int dir);
48void modheaders(struct hthead *req, struct pattern *pat);
49
50extern time_t now;
51extern struct child *notfound;
52extern struct config *gconfig, *lconfig;
53
54#endif