www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Renaud Waldura <rwald...@LIGOS.COM>
Subject Re: mod_log-any/1645: Tabs in CustomLog format converted to space s in log file
Date Tue, 13 Jan 1998 17:48:26 GMT

FYI, I just commented out the faulty part and it seems to be working
fine. AFAIK of course.


[util.c lines 565-571]

int
cfg_getline(char *s, int n, FILE *f) {
    register int i=0, c;

    s[0] = '\0';
    /* skip leading whitespace */
    do {
        c = getc(f);
    } while (c == '\t' || c == ' ');

    if(c == EOF)
	return 1;

    while(1) {
/***
        if((c == '\t') || (c == ' ')) {
            s[i++] = ' ';
            while((c == '\t') || (c == ' ')) 
                c = getc(f);
        }
 ***/
        if(c == CR) {
            c = getc(f);
        }
        if(c == EOF || c == 0x4 || c == LF || i == (n-1)) {
            /* blast trailing whitespace */
            while(i && (s[i-1] == ' ')) --i;
            s[i] = '\0';
	    return 0;
        }
        s[i] = c;
        ++i;
        c = getc(f);
    }
}


I also believe that skipping the leading and trailing whitespace in this
routine is useless, since, from what I've read, all code after the
initial cfg_getline() in srm_command_loop() calls getword_conf(), which
skips whitespace while respecting quotes.

IMHO, cfg_getline() should be rewritten to something just reading the
stream f and copying the resulting line to s.

--Renaud


Mime
View raw message