aboutsummaryrefslogtreecommitdiff
path: root/src/fs
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-03-28 14:07:42 +0000
committerChristian Grothoff <christian@grothoff.org>2013-03-28 14:07:42 +0000
commit87d828d4d8615c4958684f225c3917ff7516519b (patch)
treee8c6ef0d3952f3fc939a8c6954c4b3953024175e /src/fs
parent5649e3ad7dd87a419d0b257ed2a357adfcf1a372 (diff)
downloadgnunet-87d828d4d8615c4958684f225c3917ff7516519b.tar.gz
gnunet-87d828d4d8615c4958684f225c3917ff7516519b.zip
-add timeout
Diffstat (limited to 'src/fs')
-rw-r--r--src/fs/test_fs_search.c35
1 files changed, 32 insertions, 3 deletions
diff --git a/src/fs/test_fs_search.c b/src/fs/test_fs_search.c
index cf4a9cb41..a0fba1a9e 100644
--- a/src/fs/test_fs_search.c
+++ b/src/fs/test_fs_search.c
@@ -52,21 +52,48 @@ static struct GNUNET_FS_SearchContext *search;
52 52
53static struct GNUNET_FS_PublishContext *publish; 53static struct GNUNET_FS_PublishContext *publish;
54 54
55static GNUNET_SCHEDULER_TaskIdentifier timeout_task;
56
57static int err;
58
55 59
56static void 60static void
57abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 61abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
58{ 62{
59 GNUNET_FS_publish_stop (publish); 63 GNUNET_FS_publish_stop (publish);
60 publish = NULL; 64 publish = NULL;
65 GNUNET_SCHEDULER_cancel (timeout_task);
66 timeout_task = GNUNET_SCHEDULER_NO_TASK;
67}
68
69
70static void
71abort_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
72{
73 fprintf (stderr,
74 "Timeout\n");
75 if (NULL != publish)
76 {
77 GNUNET_FS_publish_stop (publish);
78 publish = NULL;
79 }
80 if (NULL != search)
81 {
82 GNUNET_FS_search_stop (search);
83 search = NULL;
84 }
85 err = 1;
61} 86}
62 87
63 88
64static void 89static void
65abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 90abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
66{ 91{
67 if (search != NULL) 92 if (NULL != search)
93 {
68 GNUNET_FS_search_stop (search); 94 GNUNET_FS_search_stop (search);
69 search = NULL; 95 search = NULL;
96 }
70} 97}
71 98
72 99
@@ -190,6 +217,8 @@ run (void *cls,
190 GNUNET_FS_publish_start (fs, fi, NULL, NULL, NULL, 217 GNUNET_FS_publish_start (fs, fi, NULL, NULL, NULL,
191 GNUNET_FS_PUBLISH_OPTION_NONE); 218 GNUNET_FS_PUBLISH_OPTION_NONE);
192 GNUNET_assert (publish != NULL); 219 GNUNET_assert (publish != NULL);
220 timeout_task = GNUNET_SCHEDULER_add_delayed (LIFETIME,
221 &abort_error, NULL);
193} 222}
194 223
195 224
@@ -200,7 +229,7 @@ main (int argc, char *argv[])
200 "test_fs_search_data.conf", 229 "test_fs_search_data.conf",
201 &run, NULL)) 230 &run, NULL))
202 return 1; 231 return 1;
203 return 0; 232 return err;
204} 233}
205 234
206/* end of test_fs_search.c */ 235/* end of test_fs_search.c */