From 07caa485451a7a6ae4354d65cfe3b84563ef4c20 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Tue, 4 Sep 2001 00:18:07 +0000 Subject: [PATCH] Add better fgets() handling --- servers/slapd/back-shell/result.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/servers/slapd/back-shell/result.c b/servers/slapd/back-shell/result.c index 113439b62a..f2dd0e4593 100644 --- a/servers/slapd/back-shell/result.c +++ b/servers/slapd/back-shell/result.c @@ -9,6 +9,7 @@ #include +#include #include #include #include @@ -38,13 +39,29 @@ read_and_send_results( buf[0] = '\0'; bsize = BUFSIZ; bp = buf; - while ( fgets( line, sizeof(line), fp ) != NULL ) { + while ( !feof(fp) ) { + errno = 0; + if ( fgets( line, sizeof(line), fp ) == NULL ) { + if ( errno == EINTR ) continue; + + Debug( LDAP_DEBUG_ANY, "shell: fgets failed: %s (%d)\n", + strerror(errno), errno, 0 ); + break; + } + Debug( LDAP_DEBUG_SHELL, "shell search reading line (%s)\n", line, 0, 0 ); + + /* ignore lines beginning with # (LDIFv1 comments) */ + if ( *line == '#' ) { + continue; + } + /* ignore lines beginning with DEBUG: */ if ( strncasecmp( line, "DEBUG:", 6 ) == 0 ) { continue; } + len = strlen( line ); while ( bp + len - buf > bsize ) { size_t offset = bp - buf; -- 2.47.2