diff --git a/config.c b/config.c index 4d15f0b3..9304900c 100644 --- a/config.c +++ b/config.c @@ -10,35 +10,36 @@ void parse_config(const char *config_file, char *cluster_name, int *node, char *conninfo) { - char *s, buff[256]; + char *s, buff[MAXLEN]; + char name[MAXLEN]; + char value[MAXLEN]; + FILE *fp = fopen (config_file, "r"); if (fp == NULL) - return; + return; /* Read next line */ while ((s = fgets (buff, sizeof buff, fp)) != NULL) { - char name[MAXLEN]; - char value[MAXLEN]; + /* Skip blank lines and comments */ + if (buff[0] == '\n' || buff[0] == '#') + continue; - /* Skip blank lines and comments */ - if (buff[0] == '\n' || buff[0] == '#') - continue; - - /* Parse name/value pair from line */ + /* Parse name/value pair from line */ parse_line(buff, name, value); - /* Copy into correct entry in parameters struct */ - if (strcmp(name, "cluster") == 0) - strncpy (cluster_name, value, MAXLEN); - else if (strcmp(name, "node") == 0) - *node = atoi(value); - else if (strcmp(name, "conninfo") == 0) - strncpy (conninfo, value, MAXLEN); - else - printf ("WARNING: %s/%s: Unknown name/value pair!\n", name, value); - } + /* Copy into correct entry in parameters struct */ + if (strncmp(name, "cluster", 7) == 0) + strncpy (cluster_name, value, MAXLEN); + else if (strncmp(name, "node", 4) == 0) + *node = atoi(value); + else if (strncmp(name, "conninfo", 8) == 0) + strncpy (conninfo, value, MAXLEN); + else + printf ("WARNING: %s/%s: Unknown name/value pair!\n", name, value); + } + /* Close file */ fclose (fp); @@ -52,12 +53,12 @@ trim (char *s) /* Trim and delimit right side */ while ( (isspace (*s2)) && (s2 >= s1) ) - s2--; + --s2; *(s2+1) = '\0'; /* Trim left side */ while ( (isspace (*s1)) && (s1 < s2) ) - s1++; + ++s1; /* Copy finished string */ strcpy (s, s1); @@ -67,14 +68,13 @@ trim (char *s) void parse_line(char *buff, char *name, char *value) { - int i; - int j; + int i = 0; + int j = 0; /* * first we find the name of the parameter */ - j = 0; - for (i = 0; i < MAXLEN; i++) + for ( ; i < MAXLEN; ++i) { if (buff[i] != '=') name[j++] = buff[i]; @@ -83,12 +83,11 @@ parse_line(char *buff, char *name, char *value) } name[j] = '\0'; - i++; /* * Now the value */ j = 0; - for ( ; i < MAXLEN; i++) + for ( ++i ; i < MAXLEN; i++) if (buff[i] == '\'') continue; else if (buff[i] != '\n') @@ -96,5 +95,5 @@ parse_line(char *buff, char *name, char *value) else break; value[j] = '\0'; - trim(value); + trim(value); }