aboutsummaryrefslogtreecommitdiff
path: root/src/util/disk.c
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-07-29 20:21:48 +0200
committerFlorian Dold <florian@dold.me>2021-07-29 20:21:48 +0200
commit1cf24fd82adebf83ac0b01fc3a4b7de2322e075a (patch)
treea8492fbb4d4f3cecd129478280993548da9e2d33 /src/util/disk.c
parentafefba9c9a35dc3d9ae8c188062a16d5a25eaece (diff)
downloadgnunet-1cf24fd82adebf83ac0b01fc3a4b7de2322e075a.tar.gz
gnunet-1cf24fd82adebf83ac0b01fc3a4b7de2322e075a.zip
-fix return value of GNUNET_disk_glob
Diffstat (limited to 'src/util/disk.c')
-rw-r--r--src/util/disk.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/util/disk.c b/src/util/disk.c
index bc7be8960..ada35249f 100644
--- a/src/util/disk.c
+++ b/src/util/disk.c
@@ -956,6 +956,11 @@ struct GlobClosure
956 const char *glob; 956 const char *glob;
957 GNUNET_FileNameCallback cb; 957 GNUNET_FileNameCallback cb;
958 void *cls; 958 void *cls;
959
960 /**
961 * Number of files that actually matched the glob pattern.
962 */
963 int nres;
959}; 964};
960 965
961/** 966/**
@@ -984,10 +989,15 @@ glob_cb (void *cls,
984 989
985 if (glob_match (gc->glob, fn)) 990 if (glob_match (gc->glob, fn))
986 { 991 {
992 enum GNUNET_GenericReturnValue cbret;
993
987 LOG (GNUNET_ERROR_TYPE_DEBUG, 994 LOG (GNUNET_ERROR_TYPE_DEBUG,
988 "found glob match '%s'\n", 995 "found glob match '%s'\n",
989 filename); 996 filename);
990 gc->cb (gc->cls, filename); 997 gc->nres++;
998 cbret = gc->cb (gc->cls, filename);
999 if (GNUNET_OK != cbret)
1000 return cbret;
991 } 1001 }
992 return GNUNET_OK; 1002 return GNUNET_OK;
993} 1003}
@@ -1036,6 +1046,7 @@ GNUNET_DISK_glob (const char *glob_pattern,
1036 .glob = sep + 1, 1046 .glob = sep + 1,
1037 .cb = callback, 1047 .cb = callback,
1038 .cls = callback_cls, 1048 .cls = callback_cls,
1049 .nres = 0,
1039 }; 1050 };
1040 LOG (GNUNET_ERROR_TYPE_DEBUG, 1051 LOG (GNUNET_ERROR_TYPE_DEBUG,
1041 "scanning directory '%s' for glob matches on '%s'\n", 1052 "scanning directory '%s' for glob matches on '%s'\n",
@@ -1045,9 +1056,9 @@ GNUNET_DISK_glob (const char *glob_pattern,
1045 glob_cb, 1056 glob_cb,
1046 &gc 1057 &gc
1047 ); 1058 );
1059 GNUNET_free (mypat);
1060 return (ret < 0) ? ret : gc.nres;
1048 } 1061 }
1049 GNUNET_free (mypat);
1050 return ret;
1051} 1062}
1052 1063
1053 1064