CVS diff for config.l between 1.6 and 1.1:

Revision 1.1 Revision 1.6
Line 3 Line 3
#include "cow_config.h" 
#include "defines.h" 
 
#include "cow_config.h" 
#include "defines.h" 
 
 
#undef realloc
 
#define VARMATCH(varname) (0 == strncmp(yytext, varname, strlen(varname))) 
#define VARMATCH(varname) (0 == strncmp(yytext, varname, strlen(varname))) 
    enum svar { none, sroot, port, hands, verb, maxcon, maxdur, unknown }; 
    enum svar { none, sroot, port, hands, verb, maxcon, maxdur, alog,
 
                elog, allmime, defmime, disnagle, indexfile, unknown };
 
int yyerror(char*); 
void set_var(enum svar, char*); 
 
/* Variables that can actually be set by config file */ 
char *server_root = NULL;
 
int yyerror(char*); 
void set_var(enum svar, char*); 
 
/* Variables that can actually be set by config file */ 
char *server_root = NULL;
 
    char *access_log = NULL;
    char *error_log = NULL;
    char *global_mime = NULL;
    char *default_mime = NULL; 
    int server_port = 0; 
int ka_max_con; 
int ka_max_dur; 
int max_handler; 
int verbose = 0;
    int server_port = 0; 
int ka_max_con; 
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 24 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 47 Line 57
                    else if (VARMATCH("Verbose"))           curvar = verb; 
else if (VARMATCH("KeepAliveMaxConn")) curvar = maxcon; 
else if (VARMATCH("KeepAliveMaxDur")) curvar = maxdur; 
                    else if (VARMATCH("Verbose"))           curvar = verb; 
else if (VARMATCH("KeepAliveMaxConn")) curvar = maxcon; 
else if (VARMATCH("KeepAliveMaxDur")) curvar = maxdur; 
 
                    else if (VARMATCH("AccessLog"))         curvar = alog;
                    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 79 Line 95
 
[^\n\"]+ { 
set_var(curvar, yytext); 
 
[^\n\"]+ { 
set_var(curvar, yytext); 
                    //char* vptr = yytext;
                    //while (*vptr != '\0')
                    //    if (value_len < sizeof(value_buffer)-1)
                    //        *(p++) = *(vptr++)
                    //    else {
                    //        yyerror("String value too long");
                    //        *p = '\0';
                    //        break;
                    //    } 
 


 


 
Line 101 Line 108
 * all required variables were set properly. 
*/ 
void read_config_files(char* cfgfilename) { 
 * all required variables were set properly. 
*/ 
void read_config_files(char* cfgfilename) { 
 
    struct stat confstat;
 
    /* Set default values before parsing config file */ 
ka_max_con = KA_MAX_CON; 
ka_max_dur = KA_MAX_DUR; 
    /* Set default values before parsing config file */ 
ka_max_con = KA_MAX_CON; 
ka_max_dur = KA_MAX_DUR; 
Line 119 Line 128
    if (cfgfilename != NULL) { 
yyin = fopen(cfgfilename, "r"); 
filename = cfgfilename; 
    if (cfgfilename != NULL) { 
yyin = fopen(cfgfilename, "r"); 
filename = cfgfilename; 
 
    } else if (0 == stat("/etc/cow.conf", &confstat)) {
        yyin = fopen("/etc/cow.conf", "r");
        filename = "/etc/cow.conf";
    } else if (0 == stat("/usr/local/etc/cow.conf", &confstat)) {
        yyin = fopen("/usr/local/etc/cow.conf", "r");
        filename = "/usr/local/etc/cow.conf"; 
    } else { 
yyin = fopen("cow.conf", "r");
    } else { 
yyin = fopen("cow.conf", "r");
        filename = "cow.conf"; 
        filename = "./cow.conf"; 

 
if (yyin == NULL) { 

 
if (yyin == NULL) { 
Line 136 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 175 Line 192
        case verb: 
verbose = atoi(val); 
break; 
        case verb: 
verbose = atoi(val); 
break; 
 
        case alog:
            access_log = strdup(val);
            break;
        case elog:
            error_log = strdup(val);
            break;
        case allmime:
            global_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 192 Line 239
    return 1; 

 
    return 1; 

 


Legend
Lines deleted from 1.6  
Lines Modified
  Lines added in revision 1.1