diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-01-11 21:11:51 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-01-11 21:11:51 +0000 |
commit | 5826f9d6280175acde486a1b02c93197a49396bd (patch) | |
tree | 57bab01eff235ae52062b662220a01c9dfad6142 /src/fs/fs_api.c | |
parent | 354a420bc1ddcc46b837a4e99e874195a53b7d57 (diff) | |
download | gnunet-5826f9d6280175acde486a1b02c93197a49396bd.tar.gz gnunet-5826f9d6280175acde486a1b02c93197a49396bd.zip |
fixing bug to ensure that we properly descend into deep directories for the various publish start/stop/suspend/resume event callbacks
Diffstat (limited to 'src/fs/fs_api.c')
-rw-r--r-- | src/fs/fs_api.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/fs/fs_api.c b/src/fs/fs_api.c index 2b1e51031..3c0d5bc72 100644 --- a/src/fs/fs_api.c +++ b/src/fs/fs_api.c | |||
@@ -1243,13 +1243,24 @@ fip_signal_resume (void *cls, struct GNUNET_FS_FileInformation *fi, | |||
1243 | struct GNUNET_FS_BlockOptions *bo, int *do_index, | 1243 | struct GNUNET_FS_BlockOptions *bo, int *do_index, |
1244 | void **client_info) | 1244 | void **client_info) |
1245 | { | 1245 | { |
1246 | struct GNUNET_FS_PublishContext *sc = cls; | 1246 | struct GNUNET_FS_PublishContext *pc = cls; |
1247 | struct GNUNET_FS_ProgressInfo pi; | 1247 | struct GNUNET_FS_ProgressInfo pi; |
1248 | 1248 | ||
1249 | if (GNUNET_YES == pc->skip_next_fi_callback) | ||
1250 | { | ||
1251 | pc->skip_next_fi_callback = GNUNET_NO; | ||
1252 | return GNUNET_OK; | ||
1253 | } | ||
1249 | pi.status = GNUNET_FS_STATUS_PUBLISH_RESUME; | 1254 | pi.status = GNUNET_FS_STATUS_PUBLISH_RESUME; |
1250 | pi.value.publish.specifics.resume.message = sc->fi->emsg; | 1255 | pi.value.publish.specifics.resume.message = pc->fi->emsg; |
1251 | pi.value.publish.specifics.resume.chk_uri = sc->fi->chk_uri; | 1256 | pi.value.publish.specifics.resume.chk_uri = pc->fi->chk_uri; |
1252 | *client_info = GNUNET_FS_publish_make_status_ (&pi, sc, fi, 0); | 1257 | *client_info = GNUNET_FS_publish_make_status_ (&pi, pc, fi, 0); |
1258 | if (GNUNET_YES == GNUNET_FS_meta_data_test_for_directory (meta)) | ||
1259 | { | ||
1260 | /* process entries in directory */ | ||
1261 | pc->skip_next_fi_callback = GNUNET_YES; | ||
1262 | GNUNET_FS_file_information_inspect (fi, &fip_signal_resume, pc); | ||
1263 | } | ||
1253 | return GNUNET_OK; | 1264 | return GNUNET_OK; |
1254 | } | 1265 | } |
1255 | 1266 | ||