Revision 1.4 |
Revision 1.6 |
Line 8 |
Line 8 |
#define VARMATCH(varname) (0 == strncmp(yytext, varname, strlen(varname))) enum svar { none, sroot, port, hands, verb, maxcon, maxdur, alog, 
|
#define VARMATCH(varname) (0 == strncmp(yytext, varname, strlen(varname))) enum svar { none, sroot, port, hands, verb, maxcon, maxdur, alog, 
|
elog, allmime, defmime, unknown };
|
elog, allmime, defmime, disnagle, indexfile, unknown };
|
int yyerror(char*); void set_var(enum svar, char*);
|
int yyerror(char*); void set_var(enum svar, char*);
|
Line 24 |
Line 24 |
int ka_max_dur; int max_handler; int verbose = 0;
|
int ka_max_dur; int max_handler; int verbose = 0;
|
|
int disable_nagle = 0;
idxfilename* index_files = NULL;
|
/* TODO: Why are these here? They should be elsewhere... */ int cow_rto_s; /* cow read/recv timeout in sec */
|
/* TODO: Why are these here? They should be elsewhere... */ int cow_rto_s; /* cow read/recv timeout in sec */
|
Line 31 |
Line 33 |
int cow_noof = 0; /* number of open files (from accept to close) */ /* Variables used for parsing config file */
|
int cow_noof = 0; /* number of open files (from accept to close) */ /* Variables used for parsing config file */
|
enum svar curvar = none;
char *filename;
char *p, value_buffer[256];
int value_len = 0;
int curline = 1;
|
static enum svar curvar = none;
static char *filename;
static char *p, value_buffer[256];
static int value_len = 0;
static int curline = 1;
|
|
static idxfilename* last_idx = NULL;
|
%} %x STRVALUE
|
%} %x STRVALUE
|
Line 58 |
Line 61 |
else if (VARMATCH("ErrorLog")) curvar = elog; else if (VARMATCH("GlobalMime")) curvar = allmime; else if (VARMATCH("DefaultMime")) curvar = defmime;
|
else if (VARMATCH("ErrorLog")) curvar = elog; else if (VARMATCH("GlobalMime")) curvar = allmime; else if (VARMATCH("DefaultMime")) curvar = defmime;
|
|
else if (VARMATCH("DisableNagle")) curvar = disnagle;
else if (VARMATCH("IndexFile")) curvar = indexfile;
|
else { curvar = unknown; yyerror("Unrecognized variable"); } }
|
else { curvar = unknown; yyerror("Unrecognized variable"); } }
|
Line 146 |
Line 151 |
void set_var(enum svar var, char* val) {
|
void set_var(enum svar var, char* val) {
|
|
idxfilename* idx;
|
switch(var) { case none: yyerror("Bare value encountered");
|
switch(var) { case none: yyerror("Bare value encountered");
|
Line 197 |
Line 204 |
case defmime: default_mime = strdup(val); break;
|
case defmime: default_mime = strdup(val); break;
|
|
case disnagle:
disable_nagle = atoi(val);
break;
case indexfile:
idx = malloc(sizeof(idxfilename));
if (idx == NULL) {
perror("Ran out of memory allocating index file records");
exit(1);
}
idx->name = strdup(val);
idx->next = NULL;
if (last_idx == NULL) {
last_idx = index_files = idx;
} else {
last_idx->next = idx;
last_idx = idx;
}
break;
|
default: yyerror("FIXME: Config file parser needs to be updated!"); }
|
default: yyerror("FIXME: Config file parser needs to be updated!"); }
|
Line 214 |
Line 239 |
return 1; }
|
return 1; }
|