Tito posted a devfsd error message fix. It's highly deprecated and will
presumably be removed eventually (use udev), but as long as it's in there. Tito says: The sense of this patch is to call: read_config_file_err: #ifdef CONFIG_DEVFSD_VERBOSE msg_logger(((optional == 0 ) && (errno == ENOENT))? DIE : NO_DIE, LOG_ERR, "read config file: %s: %m\n", path); #else if(optional == 0 && errno == ENOENT) exit(EXIT_FAILURE); #endif just after the failure of the call that set errno ( stat and fopen) to avoid false error messages.
This commit is contained in:
parent
16cd02e01e
commit
06813d066b
@ -566,40 +566,36 @@ static void read_config_file (char *path, int optional, unsigned long *event_mas
|
|||||||
#ifdef CONFIG_DEBUG
|
#ifdef CONFIG_DEBUG
|
||||||
msg_logger( NO_DIE, LOG_INFO, "read_config_file(): %s\n", path);
|
msg_logger( NO_DIE, LOG_INFO, "read_config_file(): %s\n", path);
|
||||||
#endif
|
#endif
|
||||||
if (stat (path, &statbuf) != 0 || statbuf.st_size == 0 )
|
if (stat (path, &statbuf) == 0 )
|
||||||
goto read_config_file_err;
|
|
||||||
|
|
||||||
if ( S_ISDIR (statbuf.st_mode) )
|
|
||||||
{
|
{
|
||||||
/* strip last / from dirname so we don't need to check for it later */
|
/* Don't read 0 length files: ignored */
|
||||||
while( path && path[1]!='\0' && path[strlen(path)-1] == '/')
|
/*if( statbuf.st_size == 0 )
|
||||||
path[strlen(path) -1] = '\0';
|
return;*/
|
||||||
|
if ( S_ISDIR (statbuf.st_mode) )
|
||||||
dir_operation(READ_CONFIG, path, 0, event_mask);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ( fp = fopen (path, "r") ) != NULL )
|
|
||||||
{
|
|
||||||
while (fgets (buf, STRING_LENGTH, fp) != NULL)
|
|
||||||
{
|
{
|
||||||
/* GETS(3) Linux Programmer's Manual
|
/* strip last / from dirname so we don't need to check for it later */
|
||||||
fgets() reads in at most one less than size characters from stream and
|
while( path && path[1]!='\0' && path[strlen(path)-1] == '/')
|
||||||
stores them into the buffer pointed to by s. Reading stops after an
|
path[strlen(path) -1] = '\0';
|
||||||
EOF or a newline. If a newline is read, it is stored into the buffer.
|
|
||||||
A '\0' is stored after the last character in the buffer.
|
dir_operation(READ_CONFIG, path, 0, event_mask);
|
||||||
*/
|
return;
|
||||||
/*buf[strlen (buf) - 1] = '\0';*/
|
|
||||||
/* Skip whitespace */
|
|
||||||
for (line = buf; isspace (*line); ++line)
|
|
||||||
/*VOID*/;
|
|
||||||
if (line[0] == '\0' || line[0] == '#' )
|
|
||||||
continue;
|
|
||||||
process_config_line (line, event_mask);
|
|
||||||
}
|
}
|
||||||
fclose (fp);
|
if ( ( fp = fopen (path, "r") ) != NULL )
|
||||||
errno=0;
|
{
|
||||||
}
|
while (fgets (buf, STRING_LENGTH, fp) != NULL)
|
||||||
|
{
|
||||||
|
/* Skip whitespace */
|
||||||
|
for (line = buf; isspace (*line); ++line)
|
||||||
|
/*VOID*/;
|
||||||
|
if (line[0] == '\0' || line[0] == '#' )
|
||||||
|
continue;
|
||||||
|
process_config_line (line, event_mask);
|
||||||
|
}
|
||||||
|
fclose (fp);
|
||||||
|
} else {
|
||||||
|
goto read_config_file_err;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
read_config_file_err:
|
read_config_file_err:
|
||||||
#ifdef CONFIG_DEVFSD_VERBOSE
|
#ifdef CONFIG_DEVFSD_VERBOSE
|
||||||
msg_logger(((optional == 0 ) && (errno == ENOENT))? DIE : NO_DIE, LOG_ERR, "read config file: %s: %m\n", path);
|
msg_logger(((optional == 0 ) && (errno == ENOENT))? DIE : NO_DIE, LOG_ERR, "read config file: %s: %m\n", path);
|
||||||
@ -607,6 +603,7 @@ read_config_file_err:
|
|||||||
if(optional == 0 && errno == ENOENT)
|
if(optional == 0 && errno == ENOENT)
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
} /* End Function read_config_file */
|
} /* End Function read_config_file */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user