Commit 3e4a3cbc authored by Bill Stoddard's avatar Bill Stoddard
Browse files

Fix look in htdigest. Reimplemented getline to work properly with

APR. Shuld consider adding apr_file_getline() to APR.  Should also consider
changing apr_file_getc() to return characters rather than apr_status.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89331 13f79535-47bb-0310-9956-ffa450edef68
parent 3df4e02e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
Changes with Apache 2.0.19-dev

  *) Fix htdigest. It would go into a loop in getline when adding 
     a second user. [Bill Stoddard]

  *) Win32 platforms now fully support mod_userdir options.  [Will Rowe]

  *) Automatically generate httpd.exp for AIX.
+11 −16
Original line number Diff line number Diff line
@@ -122,25 +122,21 @@ static int getline(char *s, int n, apr_file_t *f)
{
    register int i = 0;
    char ch;
    apr_status_t rv;

    while (1) {
	apr_file_getc(&ch, f);
            s[i] = ch;

	if (s[i] == CR)
	    apr_file_getc(&ch, f);
            s[i] = ch;

	if ((s[i] == 0x4) || (s[i] == LF) || (i == (n - 1))) {
    while (i < (n - 1) && 
           ((rv = apr_file_getc(&ch, f)) == APR_SUCCESS) && (ch != '\n')) {
        s[i++] = ch;
    }
    if (ch == '\n')
        s[i++] = ch;
    s[i] = '\0';
            if (apr_file_eof(f) == APR_EOF) {

    if (rv != APR_SUCCESS) 
        return 1;
            }

    return 0;
}
	++i;
    }
}

static void putline(apr_file_t *f, char *l)
{
@@ -148,7 +144,6 @@ static void putline(apr_file_t *f, char *l)

    for (x = 0; l[x]; x++)
	apr_file_putc(l[x], f);
    apr_file_putc('\n', f);
}