diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-03-28 14:07:42 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-03-28 14:07:42 +0000 |
commit | 87d828d4d8615c4958684f225c3917ff7516519b (patch) | |
tree | e8c6ef0d3952f3fc939a8c6954c4b3953024175e /src | |
parent | 5649e3ad7dd87a419d0b257ed2a357adfcf1a372 (diff) | |
download | gnunet-87d828d4d8615c4958684f225c3917ff7516519b.tar.gz gnunet-87d828d4d8615c4958684f225c3917ff7516519b.zip |
-add timeout
Diffstat (limited to 'src')
-rw-r--r-- | src/fs/test_fs_search.c | 35 |
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 | ||
53 | static struct GNUNET_FS_PublishContext *publish; | 53 | static struct GNUNET_FS_PublishContext *publish; |
54 | 54 | ||
55 | static GNUNET_SCHEDULER_TaskIdentifier timeout_task; | ||
56 | |||
57 | static int err; | ||
58 | |||
55 | 59 | ||
56 | static void | 60 | static void |
57 | abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 61 | abort_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 | |||
70 | static void | ||
71 | abort_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 | ||
64 | static void | 89 | static void |
65 | abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 90 | abort_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 */ |