libe2p: Change iterate_on_dir so that it counts non-zero returns

To allow error messages to be reflected up, if the callback function
returns a non-zero value, bump a counter and return the number of
times the callback function signals an error by returning a non-zero
status code.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
bitmap-optimize
Theodore Ts'o 2007-10-22 08:25:13 -04:00
parent 1a4ce9df58
commit 14bd240b46
1 changed files with 4 additions and 3 deletions

View File

@ -27,7 +27,7 @@ int iterate_on_dir (const char * dir_name,
{
DIR * dir;
struct dirent *de, *dep;
int max_len = -1, len;
int max_len = -1, len, ret = 0;
#if HAVE_PATHCONF && defined(_PC_NAME_MAX)
max_len = pathconf(dir_name, _PC_NAME_MAX);
@ -64,9 +64,10 @@ int iterate_on_dir (const char * dir_name,
len = max_len;
#endif
memcpy(de, dep, len);
(*func) (dir_name, de, private);
if ((*func)(dir_name, de, private))
ret++;
}
free(de);
closedir(dir);
return 0;
return ret;
}