diff options
author | Florian Dold <florian@dold.me> | 2021-07-29 20:21:48 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-07-29 20:21:48 +0200 |
commit | 1cf24fd82adebf83ac0b01fc3a4b7de2322e075a (patch) | |
tree | a8492fbb4d4f3cecd129478280993548da9e2d33 /src/util | |
parent | afefba9c9a35dc3d9ae8c188062a16d5a25eaece (diff) | |
download | gnunet-1cf24fd82adebf83ac0b01fc3a4b7de2322e075a.tar.gz gnunet-1cf24fd82adebf83ac0b01fc3a4b7de2322e075a.zip |
-fix return value of GNUNET_disk_glob
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/disk.c | 17 |
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 | ||