aboutsummaryrefslogtreecommitdiff
path: root/src/util/disk.c
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2013-04-22 14:42:20 +0000
committerBart Polot <bart@net.in.tum.de>2013-04-22 14:42:20 +0000
commite4048e9edf0dafbac032d36bbaf5037fec91fbf3 (patch)
tree81a410307e2aeb3bb76222b4f5c42c726cfdf397 /src/util/disk.c
parent08fd3307bed55f72f646fd0b5aeaaf77881e3889 (diff)
downloadgnunet-e4048e9edf0dafbac032d36bbaf5037fec91fbf3.tar.gz
gnunet-e4048e9edf0dafbac032d36bbaf5037fec91fbf3.zip
Allow callback to stop a DISK_scan with no error, similar to other er APIs
Diffstat (limited to 'src/util/disk.c')
-rw-r--r--src/util/disk.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/util/disk.c b/src/util/disk.c
index bef35c899..ccd930907 100644
--- a/src/util/disk.c
+++ b/src/util/disk.c
@@ -1184,6 +1184,7 @@ GNUNET_DISK_directory_scan (const char *dirName,
1184 struct dirent *finfo; 1184 struct dirent *finfo;
1185 struct stat istat; 1185 struct stat istat;
1186 int count = 0; 1186 int count = 0;
1187 int ret;
1187 char *name; 1188 char *name;
1188 char *dname; 1189 char *dname;
1189 unsigned int name_len; 1190 unsigned int name_len;
@@ -1241,11 +1242,14 @@ GNUNET_DISK_directory_scan (const char *dirName,
1241 GNUNET_snprintf (name, n_size, "%s%s%s", dname, 1242 GNUNET_snprintf (name, n_size, "%s%s%s", dname,
1242 (strcmp (dname, DIR_SEPARATOR_STR) == 1243 (strcmp (dname, DIR_SEPARATOR_STR) ==
1243 0) ? "" : DIR_SEPARATOR_STR, finfo->d_name); 1244 0) ? "" : DIR_SEPARATOR_STR, finfo->d_name);
1244 if (GNUNET_OK != callback (callback_cls, name)) 1245 ret = callback (callback_cls, name);
1246 if (GNUNET_OK != ret)
1245 { 1247 {
1246 CLOSEDIR (dinfo); 1248 CLOSEDIR (dinfo);
1247 GNUNET_free (name); 1249 GNUNET_free (name);
1248 GNUNET_free (dname); 1250 GNUNET_free (dname);
1251 if (GNUNET_NO == ret)
1252 return count;
1249 return GNUNET_SYSERR; 1253 return GNUNET_SYSERR;
1250 } 1254 }
1251 } 1255 }