getdata: fix configuration parser bug

When { is wrote together with a word, such as

pool{
        range 10.0.0.100 100.0.0.200;
        range ..

the parser ignored first range, resulting it to disappear from analysis.

Reported-by: Robert Viou <robert.viou@ndsu.edu>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2012-02-01 22:15:43 +01:00
parent f3181bd1e4
commit c5b12e4368
2 changed files with 7 additions and 3 deletions

1
THANKS
View file

@ -20,3 +20,4 @@ Thor Eivind Brantzeg
Ahmed AL Dakhil
Adam Ciarcinski
Rezso Gajdóczy
Robert Viou

View file

@ -332,8 +332,10 @@ void parse_config(int is_include, const char *restrict config_file,
* shared-network DSL{ ... */
if (i == 0) {
newclause = true;
continue;
} else {
break;
}
continue;
case '}':
if (quote == true) {
break;
@ -383,9 +385,10 @@ void parse_config(int is_include, const char *restrict config_file,
else if (newclause == true) {
/* Insert string end & set state */
word[i] = '\0';
newclause = false;
if (word[i - 1] != '{') {
newclause = false;
}
i = 0;
argument = is_interesting_config_clause(word);
}
/* words after range, shared-network or include */