aboutsummaryrefslogtreecommitdiff
path: root/src/fs/test_fs_search.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-08-15 21:46:35 +0000
committerChristian Grothoff <christian@grothoff.org>2011-08-15 21:46:35 +0000
commit502af2167f7c218366666ca4944bd7cc54b5b19a (patch)
treea91fec5cc9769d260640bd91c6633cb9cf395524 /src/fs/test_fs_search.c
parent03af5a603b7cc53432249d5854cd412aa90dde0d (diff)
downloadgnunet-502af2167f7c218366666ca4944bd7cc54b5b19a.tar.gz
gnunet-502af2167f7c218366666ca4944bd7cc54b5b19a.zip
indentation
Diffstat (limited to 'src/fs/test_fs_search.c')
-rw-r--r--src/fs/test_fs_search.c234
1 files changed, 111 insertions, 123 deletions
diff --git a/src/fs/test_fs_search.c b/src/fs/test_fs_search.c
index a1f3208ef..878624c73 100644
--- a/src/fs/test_fs_search.c
+++ b/src/fs/test_fs_search.c
@@ -45,13 +45,13 @@
45 45
46/** 46/**
47 * How long should our test-content live? 47 * How long should our test-content live?
48 */ 48 */
49#define LIFETIME GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 15) 49#define LIFETIME GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 15)
50 50
51struct PeerContext 51struct PeerContext
52{ 52{
53 struct GNUNET_CONFIGURATION_Handle *cfg; 53 struct GNUNET_CONFIGURATION_Handle *cfg;
54 struct GNUNET_PeerIdentity id; 54 struct GNUNET_PeerIdentity id;
55#if START_ARM 55#if START_ARM
56 struct GNUNET_OS_Process *arm_proc; 56 struct GNUNET_OS_Process *arm_proc;
57#endif 57#endif
@@ -69,8 +69,7 @@ static struct GNUNET_FS_PublishContext *publish;
69 69
70 70
71static void 71static void
72abort_publish_task (void *cls, 72abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
73 const struct GNUNET_SCHEDULER_TaskContext *tc)
74{ 73{
75 GNUNET_FS_publish_stop (publish); 74 GNUNET_FS_publish_stop (publish);
76 publish = NULL; 75 publish = NULL;
@@ -78,8 +77,7 @@ abort_publish_task (void *cls,
78 77
79 78
80static void 79static void
81abort_search_task (void *cls, 80abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
82 const struct GNUNET_SCHEDULER_TaskContext *tc)
83{ 81{
84 if (search != NULL) 82 if (search != NULL)
85 GNUNET_FS_search_stop (search); 83 GNUNET_FS_search_stop (search);
@@ -88,94 +86,90 @@ abort_search_task (void *cls,
88 86
89 87
90static void * 88static void *
91progress_cb (void *cls, 89progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *event)
92 const struct GNUNET_FS_ProgressInfo *event) 90{
93{
94 const char *keywords[] = { 91 const char *keywords[] = {
95 "down_foo" 92 "down_foo"
96 }; 93 };
97 struct GNUNET_FS_Uri *kuri; 94 struct GNUNET_FS_Uri *kuri;
98 95
99 switch (event->status) 96 switch (event->status)
100 { 97 {
101 case GNUNET_FS_STATUS_PUBLISH_PROGRESS: 98 case GNUNET_FS_STATUS_PUBLISH_PROGRESS:
102#if VERBOSE 99#if VERBOSE
103 printf ("Publish is progressing (%llu/%llu at level %u off %llu)...\n", 100 printf ("Publish is progressing (%llu/%llu at level %u off %llu)...\n",
104 (unsigned long long) event->value.publish.completed, 101 (unsigned long long) event->value.publish.completed,
105 (unsigned long long) event->value.publish.size, 102 (unsigned long long) event->value.publish.size,
106 event->value.publish.specifics.progress.depth, 103 event->value.publish.specifics.progress.depth,
107 (unsigned long long) event->value.publish.specifics.progress.offset); 104 (unsigned long long) event->value.publish.specifics.
108#endif 105 progress.offset);
109 break; 106#endif
110 case GNUNET_FS_STATUS_PUBLISH_COMPLETED: 107 break;
111 kuri = GNUNET_FS_uri_ksk_create_from_args (1, keywords); 108 case GNUNET_FS_STATUS_PUBLISH_COMPLETED:
112 start = GNUNET_TIME_absolute_get (); 109 kuri = GNUNET_FS_uri_ksk_create_from_args (1, keywords);
113 search = GNUNET_FS_search_start (fs, 110 start = GNUNET_TIME_absolute_get ();
114 kuri, 111 search = GNUNET_FS_search_start (fs,
115 1, 112 kuri,
116 GNUNET_FS_SEARCH_OPTION_NONE, 113 1, GNUNET_FS_SEARCH_OPTION_NONE, "search");
117 "search"); 114 GNUNET_FS_uri_destroy (kuri);
118 GNUNET_FS_uri_destroy (kuri); 115 GNUNET_assert (search != NULL);
119 GNUNET_assert (search != NULL); 116 break;
120 break; 117 case GNUNET_FS_STATUS_SEARCH_RESULT:
121 case GNUNET_FS_STATUS_SEARCH_RESULT:
122#if VERBOSE 118#if VERBOSE
123 printf ("Search complete.\n"); 119 printf ("Search complete.\n");
124#endif 120#endif
125 GNUNET_SCHEDULER_add_continuation (&abort_search_task, 121 GNUNET_SCHEDULER_add_continuation (&abort_search_task,
126 NULL, 122 NULL,
127 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 123 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
128 break; 124 break;
129 case GNUNET_FS_STATUS_PUBLISH_ERROR: 125 case GNUNET_FS_STATUS_PUBLISH_ERROR:
130 fprintf (stderr, 126 fprintf (stderr,
131 "Error publishing file: %s\n", 127 "Error publishing file: %s\n",
132 event->value.publish.specifics.error.message); 128 event->value.publish.specifics.error.message);
133 GNUNET_break (0); 129 GNUNET_break (0);
134 GNUNET_SCHEDULER_add_continuation (&abort_publish_task, 130 GNUNET_SCHEDULER_add_continuation (&abort_publish_task,
135 NULL, 131 NULL,
136 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 132 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
137 break; 133 break;
138 case GNUNET_FS_STATUS_SEARCH_ERROR: 134 case GNUNET_FS_STATUS_SEARCH_ERROR:
139 fprintf (stderr, 135 fprintf (stderr,
140 "Error searching file: %s\n", 136 "Error searching file: %s\n",
141 event->value.search.specifics.error.message); 137 event->value.search.specifics.error.message);
142 GNUNET_SCHEDULER_add_continuation (&abort_search_task, 138 GNUNET_SCHEDULER_add_continuation (&abort_search_task,
143 NULL, 139 NULL,
144 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 140 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
145 break; 141 break;
146 case GNUNET_FS_STATUS_PUBLISH_START: 142 case GNUNET_FS_STATUS_PUBLISH_START:
147 GNUNET_assert (0 == strcmp ("publish-context", event->value.publish.cctx)); 143 GNUNET_assert (0 == strcmp ("publish-context", event->value.publish.cctx));
148 GNUNET_assert (NULL == event->value.publish.pctx); 144 GNUNET_assert (NULL == event->value.publish.pctx);
149 GNUNET_assert (FILESIZE == event->value.publish.size); 145 GNUNET_assert (FILESIZE == event->value.publish.size);
150 GNUNET_assert (0 == event->value.publish.completed); 146 GNUNET_assert (0 == event->value.publish.completed);
151 GNUNET_assert (1 == event->value.publish.anonymity); 147 GNUNET_assert (1 == event->value.publish.anonymity);
152 break; 148 break;
153 case GNUNET_FS_STATUS_PUBLISH_STOPPED: 149 case GNUNET_FS_STATUS_PUBLISH_STOPPED:
154 GNUNET_assert (publish == event->value.publish.pc); 150 GNUNET_assert (publish == event->value.publish.pc);
155 GNUNET_assert (FILESIZE == event->value.publish.size); 151 GNUNET_assert (FILESIZE == event->value.publish.size);
156 GNUNET_assert (1 == event->value.publish.anonymity); 152 GNUNET_assert (1 == event->value.publish.anonymity);
157 GNUNET_FS_stop (fs); 153 GNUNET_FS_stop (fs);
158 fs = NULL; 154 fs = NULL;
159 break; 155 break;
160 case GNUNET_FS_STATUS_SEARCH_START: 156 case GNUNET_FS_STATUS_SEARCH_START:
161 GNUNET_assert (search == NULL); 157 GNUNET_assert (search == NULL);
162 GNUNET_assert (0 == strcmp ("search", event->value.search.cctx)); 158 GNUNET_assert (0 == strcmp ("search", event->value.search.cctx));
163 GNUNET_assert (1 == event->value.search.anonymity); 159 GNUNET_assert (1 == event->value.search.anonymity);
164 break; 160 break;
165 case GNUNET_FS_STATUS_SEARCH_RESULT_STOPPED: 161 case GNUNET_FS_STATUS_SEARCH_RESULT_STOPPED:
166 break; 162 break;
167 case GNUNET_FS_STATUS_SEARCH_STOPPED: 163 case GNUNET_FS_STATUS_SEARCH_STOPPED:
168 GNUNET_assert (search == event->value.search.sc); 164 GNUNET_assert (search == event->value.search.sc);
169 GNUNET_SCHEDULER_add_continuation (&abort_publish_task, 165 GNUNET_SCHEDULER_add_continuation (&abort_publish_task,
170 NULL, 166 NULL,
171 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 167 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
172 break; 168 break;
173 default: 169 default:
174 fprintf (stderr, 170 fprintf (stderr, "Unexpected event: %d\n", event->status);
175 "Unexpected event: %d\n", 171 break;
176 event->status); 172 }
177 break;
178 }
179 return NULL; 173 return NULL;
180} 174}
181 175
@@ -186,11 +180,11 @@ setup_peer (struct PeerContext *p, const char *cfgname)
186 p->cfg = GNUNET_CONFIGURATION_create (); 180 p->cfg = GNUNET_CONFIGURATION_create ();
187#if START_ARM 181#if START_ARM
188 p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", 182 p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm",
189 "gnunet-service-arm", 183 "gnunet-service-arm",
190#if VERBOSE 184#if VERBOSE
191 "-L", "DEBUG", 185 "-L", "DEBUG",
192#endif 186#endif
193 "-c", cfgname, NULL); 187 "-c", cfgname, NULL);
194#endif 188#endif
195 GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (p->cfg, cfgname)); 189 GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (p->cfg, cfgname));
196} 190}
@@ -201,16 +195,17 @@ stop_arm (struct PeerContext *p)
201{ 195{
202#if START_ARM 196#if START_ARM
203 if (NULL != p->arm_proc) 197 if (NULL != p->arm_proc)
204 { 198 {
205 if (0 != GNUNET_OS_process_kill (p->arm_proc, SIGTERM)) 199 if (0 != GNUNET_OS_process_kill (p->arm_proc, SIGTERM))
206 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); 200 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
207 if (GNUNET_OS_process_wait(p->arm_proc) != GNUNET_OK) 201 if (GNUNET_OS_process_wait (p->arm_proc) != GNUNET_OK)
208 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid"); 202 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
209 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 203 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
210 "ARM process %u stopped\n", GNUNET_OS_process_get_pid (p->arm_proc)); 204 "ARM process %u stopped\n",
211 GNUNET_OS_process_close (p->arm_proc); 205 GNUNET_OS_process_get_pid (p->arm_proc));
212 p->arm_proc = NULL; 206 GNUNET_OS_process_close (p->arm_proc);
213 } 207 p->arm_proc = NULL;
208 }
214#endif 209#endif
215 GNUNET_CONFIGURATION_destroy (p->cfg); 210 GNUNET_CONFIGURATION_destroy (p->cfg);
216} 211}
@@ -219,8 +214,7 @@ stop_arm (struct PeerContext *p)
219static void 214static void
220run (void *cls, 215run (void *cls,
221 char *const *args, 216 char *const *args,
222 const char *cfgfile, 217 const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
223 const struct GNUNET_CONFIGURATION_Handle *cfg)
224{ 218{
225 const char *keywords[] = { 219 const char *keywords[] = {
226 "down_foo", 220 "down_foo",
@@ -235,12 +229,10 @@ run (void *cls,
235 229
236 setup_peer (&p1, "test_fs_search_data.conf"); 230 setup_peer (&p1, "test_fs_search_data.conf");
237 fs = GNUNET_FS_start (cfg, 231 fs = GNUNET_FS_start (cfg,
238 "test-fs-search", 232 "test-fs-search",
239 &progress_cb, 233 &progress_cb,
240 NULL, 234 NULL, GNUNET_FS_FLAGS_NONE, GNUNET_FS_OPTIONS_END);
241 GNUNET_FS_FLAGS_NONE, 235 GNUNET_assert (NULL != fs);
242 GNUNET_FS_OPTIONS_END);
243 GNUNET_assert (NULL != fs);
244 buf = GNUNET_malloc (FILESIZE); 236 buf = GNUNET_malloc (FILESIZE);
245 for (i = 0; i < FILESIZE; i++) 237 for (i = 0; i < FILESIZE; i++)
246 buf[i] = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 256); 238 buf[i] = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 256);
@@ -251,21 +243,18 @@ run (void *cls,
251 bo.replication_level = 0; 243 bo.replication_level = 0;
252 bo.expiration_time = GNUNET_TIME_relative_to_absolute (LIFETIME); 244 bo.expiration_time = GNUNET_TIME_relative_to_absolute (LIFETIME);
253 fi = GNUNET_FS_file_information_create_from_data (fs, 245 fi = GNUNET_FS_file_information_create_from_data (fs,
254 "publish-context", 246 "publish-context",
255 FILESIZE, 247 FILESIZE,
256 buf, 248 buf,
257 kuri, 249 kuri, meta, GNUNET_NO, &bo);
258 meta,
259 GNUNET_NO,
260 &bo);
261 GNUNET_FS_uri_destroy (kuri); 250 GNUNET_FS_uri_destroy (kuri);
262 GNUNET_CONTAINER_meta_data_destroy (meta); 251 GNUNET_CONTAINER_meta_data_destroy (meta);
263 GNUNET_assert (NULL != fi); 252 GNUNET_assert (NULL != fi);
264 start = GNUNET_TIME_absolute_get (); 253 start = GNUNET_TIME_absolute_get ();
265 publish = GNUNET_FS_publish_start (fs, 254 publish = GNUNET_FS_publish_start (fs,
266 fi, 255 fi,
267 NULL, NULL, NULL, 256 NULL, NULL, NULL,
268 GNUNET_FS_PUBLISH_OPTION_NONE); 257 GNUNET_FS_PUBLISH_OPTION_NONE);
269 GNUNET_assert (publish != NULL); 258 GNUNET_assert (publish != NULL);
270} 259}
271 260
@@ -273,7 +262,7 @@ run (void *cls,
273int 262int
274main (int argc, char *argv[]) 263main (int argc, char *argv[])
275{ 264{
276 char *const argvx[] = { 265 char *const argvx[] = {
277 "test-fs-search", 266 "test-fs-search",
278 "-c", 267 "-c",
279 "test_fs_search_data.conf", 268 "test_fs_search_data.conf",
@@ -286,16 +275,15 @@ main (int argc, char *argv[])
286 GNUNET_GETOPT_OPTION_END 275 GNUNET_GETOPT_OPTION_END
287 }; 276 };
288 277
289 GNUNET_log_setup ("test_fs_search", 278 GNUNET_log_setup ("test_fs_search",
290#if VERBOSE 279#if VERBOSE
291 "DEBUG", 280 "DEBUG",
292#else 281#else
293 "WARNING", 282 "WARNING",
294#endif 283#endif
295 NULL); 284 NULL);
296 GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, 285 GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1,
297 argvx, "test-fs-search", 286 argvx, "test-fs-search", "nohelp", options, &run, NULL);
298 "nohelp", options, &run, NULL);
299 stop_arm (&p1); 287 stop_arm (&p1);
300 GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-search/"); 288 GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-search/");
301 return 0; 289 return 0;