| --- lib/lwres/lwconfig.c.old 2007-06-20 01:47:22.000000000 +0200 |
| +++ lib/lwres/lwconfig.c 2008-06-15 02:57:02.000000000 +0200 |
| @@ -175,13 +175,8 @@ |
| REQUIRE(buffer != NULL); |
| REQUIRE(size > 0U); |
| |
| - *p = '\0'; |
| - |
| ch = eatwhite(fp); |
| |
| - if (ch == EOF) |
| - return (EOF); |
| - |
| do { |
| *p = '\0'; |
| |
| @@ -592,23 +587,37 @@ |
| if (strlen(word) == 0U) |
| rval = LWRES_R_SUCCESS; |
| else if (strcmp(word, "nameserver") == 0) |
| - rval = lwres_conf_parsenameserver(ctx, fp); |
| + rval = (stopchar != '\n')? /* fail instantly if EOL is reached */ |
| + lwres_conf_parsenameserver(ctx, fp) |
| + : LWRES_R_FAILURE; |
| else if (strcmp(word, "lwserver") == 0) |
| - rval = lwres_conf_parselwserver(ctx, fp); |
| + rval = (stopchar != '\n')? |
| + lwres_conf_parselwserver(ctx, fp) |
| + : LWRES_R_FAILURE; |
| else if (strcmp(word, "domain") == 0) |
| - rval = lwres_conf_parsedomain(ctx, fp); |
| + rval = (stopchar != '\n')? |
| + lwres_conf_parsedomain(ctx, fp) |
| + : LWRES_R_FAILURE; |
| else if (strcmp(word, "search") == 0) |
| - rval = lwres_conf_parsesearch(ctx, fp); |
| + rval = (stopchar != '\n')? |
| + lwres_conf_parsesearch(ctx, fp) |
| + : LWRES_R_FAILURE; |
| else if (strcmp(word, "sortlist") == 0) |
| - rval = lwres_conf_parsesortlist(ctx, fp); |
| + rval = (stopchar != '\n')? |
| + lwres_conf_parsesortlist(ctx, fp) |
| + : LWRES_R_FAILURE; |
| else if (strcmp(word, "options") == 0) |
| - rval = lwres_conf_parseoption(ctx, fp); |
| + rval = (stopchar != '\n')? |
| + lwres_conf_parseoption(ctx, fp) |
| + : LWRES_R_FAILURE; |
| else { |
| /* unrecognised word. Ignore entire line */ |
| rval = LWRES_R_SUCCESS; |
| - stopchar = eatline(fp); |
| - if (stopchar == EOF) { |
| - break; |
| + if (stopchar != '\n') { /* do not eat the next line */ |
| + stopchar = eatline(fp); |
| + if (stopchar == EOF) { |
| + break; |
| + } |
| } |
| } |
| if (ret == LWRES_R_SUCCESS && rval != LWRES_R_SUCCESS) |