diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-07-09 14:29:34 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-07-09 14:29:34 +0000 |
commit | 03374cc39814fa4bfb8d96e1165c688c44d8342f (patch) | |
tree | ed772250c49b39d82b9708ec8df0ee3e07e366d1 /src/namestore/test_namestore_api_zone_iteration_specific_zone.c | |
parent | 0c13a1e6fb0baffd83d413f313742a5f2b420297 (diff) | |
download | gnunet-03374cc39814fa4bfb8d96e1165c688c44d8342f.tar.gz gnunet-03374cc39814fa4bfb8d96e1165c688c44d8342f.zip |
make namestore API less brittle/sublte to use
Diffstat (limited to 'src/namestore/test_namestore_api_zone_iteration_specific_zone.c')
-rw-r--r-- | src/namestore/test_namestore_api_zone_iteration_specific_zone.c | 162 |
1 files changed, 104 insertions, 58 deletions
diff --git a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c index 1a0279f50..c5ae927b0 100644 --- a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c +++ b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c | |||
@@ -156,30 +156,21 @@ end (void *cls) | |||
156 | 156 | ||
157 | 157 | ||
158 | static void | 158 | static void |
159 | fail_cb (void *cls) | ||
160 | { | ||
161 | GNUNET_assert (0); | ||
162 | } | ||
163 | |||
164 | |||
165 | static void | ||
159 | zone_proc (void *cls, | 166 | zone_proc (void *cls, |
160 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, | 167 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, |
161 | const char *label, | 168 | const char *label, |
162 | unsigned int rd_count, | 169 | unsigned int rd_count, |
163 | const struct GNUNET_GNSRECORD_Data *rd) | 170 | const struct GNUNET_GNSRECORD_Data *rd) |
164 | { | 171 | { |
165 | int failed = GNUNET_NO; | 172 | int failed = GNUNET_NO; |
166 | if ((zone == NULL) && (label == NULL)) | ||
167 | { | ||
168 | GNUNET_break (2 == returned_records); | ||
169 | if (2 == returned_records) | ||
170 | { | ||
171 | res = 0; /* Last iteraterator callback, we are done */ | ||
172 | zi = NULL; | ||
173 | } | ||
174 | else | ||
175 | res = 1; | ||
176 | 173 | ||
177 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
178 | "Received last result, iteration done after receing %u results\n", | ||
179 | returned_records ); | ||
180 | GNUNET_SCHEDULER_add_now (&end, NULL); | ||
181 | return; | ||
182 | } | ||
183 | GNUNET_assert (NULL != zone); | 174 | GNUNET_assert (NULL != zone); |
184 | if (0 == memcmp (zone, | 175 | if (0 == memcmp (zone, |
185 | privkey, | 176 | privkey, |
@@ -258,6 +249,25 @@ zone_proc (void *cls, | |||
258 | 249 | ||
259 | 250 | ||
260 | static void | 251 | static void |
252 | zone_proc_end (void *cls) | ||
253 | { | ||
254 | GNUNET_break (2 == returned_records); | ||
255 | if (2 == returned_records) | ||
256 | { | ||
257 | res = 0; /* Last iteraterator callback, we are done */ | ||
258 | zi = NULL; | ||
259 | } | ||
260 | else | ||
261 | res = 1; | ||
262 | |||
263 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
264 | "Received last result, iteration done after receing %u results\n", | ||
265 | returned_records); | ||
266 | GNUNET_SCHEDULER_add_now (&end, NULL); | ||
267 | } | ||
268 | |||
269 | |||
270 | static void | ||
261 | put_cont (void *cls, int32_t success, const char *emsg) | 271 | put_cont (void *cls, int32_t success, const char *emsg) |
262 | { | 272 | { |
263 | static int c = 0; | 273 | static int c = 0; |
@@ -288,8 +298,12 @@ put_cont (void *cls, int32_t success, const char *emsg) | |||
288 | "All records created, starting iteration over all zones \n"); | 298 | "All records created, starting iteration over all zones \n"); |
289 | zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, | 299 | zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, |
290 | privkey, | 300 | privkey, |
301 | &fail_cb, | ||
302 | NULL, | ||
291 | &zone_proc, | 303 | &zone_proc, |
292 | NULL); | 304 | NULL, |
305 | &zone_proc_end, | ||
306 | NULL); | ||
293 | if (zi == NULL) | 307 | if (zi == NULL) |
294 | { | 308 | { |
295 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 309 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
@@ -336,42 +350,55 @@ empty_zone_proc (void *cls, | |||
336 | unsigned int rd_count, | 350 | unsigned int rd_count, |
337 | const struct GNUNET_GNSRECORD_Data *rd) | 351 | const struct GNUNET_GNSRECORD_Data *rd) |
338 | { | 352 | { |
339 | char *hostkey_file; | ||
340 | |||
341 | GNUNET_assert (nsh == cls); | 353 | GNUNET_assert (nsh == cls); |
342 | if (NULL != zone) | 354 | if (NULL != zone) |
343 | { | 355 | { |
344 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 356 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
345 | _("Expected empty zone but received zone private key\n")); | 357 | _("Expected empty zone but received zone private key\n")); |
346 | GNUNET_break (0); | 358 | GNUNET_break (0); |
347 | if (endbadly_task != NULL) | 359 | if (endbadly_task != NULL) |
348 | GNUNET_SCHEDULER_cancel (endbadly_task); | 360 | GNUNET_SCHEDULER_cancel (endbadly_task); |
349 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | 361 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); |
350 | return; | 362 | return; |
351 | } | 363 | } |
352 | if ((NULL != label) || (NULL != rd) || (0 != rd_count)) | 364 | if ((NULL != label) || (NULL != rd) || (0 != rd_count)) |
353 | { | 365 | { |
354 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 366 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
355 | _("Expected no zone content but received data\n")); | 367 | _("Expected no zone content but received data\n")); |
356 | GNUNET_break (0); | 368 | GNUNET_break (0); |
357 | if (endbadly_task != NULL) | 369 | if (endbadly_task != NULL) |
358 | GNUNET_SCHEDULER_cancel (endbadly_task); | 370 | GNUNET_SCHEDULER_cancel (endbadly_task); |
359 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | 371 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); |
360 | return; | 372 | return; |
361 | } | 373 | } |
374 | GNUNET_assert (0); | ||
375 | } | ||
362 | 376 | ||
363 | 377 | ||
378 | static void | ||
379 | empty_zone_proc_end (void *cls) | ||
380 | { | ||
381 | char *hostkey_file; | ||
382 | |||
364 | zi = NULL; | 383 | zi = NULL; |
365 | GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, | 384 | GNUNET_asprintf (&hostkey_file, |
366 | "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); | 385 | "zonefiles%s%s", |
367 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); | 386 | DIR_SEPARATOR_STR, |
368 | privkey = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file); | 387 | "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); |
388 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
389 | "Using zonekey file `%s'\n", | ||
390 | hostkey_file); | ||
391 | privkey = GNUNET_CRYPTO_ecdsa_key_create_from_file (hostkey_file); | ||
369 | GNUNET_free (hostkey_file); | 392 | GNUNET_free (hostkey_file); |
370 | GNUNET_assert (privkey != NULL); | 393 | GNUNET_assert (privkey != NULL); |
371 | 394 | ||
372 | GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, | 395 | GNUNET_asprintf(&hostkey_file, |
373 | "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"); | 396 | "zonefiles%s%s", |
374 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); | 397 | DIR_SEPARATOR_STR, |
398 | "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"); | ||
399 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
400 | "Using zonekey file `%s' \n", | ||
401 | hostkey_file); | ||
375 | privkey2 = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file); | 402 | privkey2 = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file); |
376 | GNUNET_free (hostkey_file); | 403 | GNUNET_free (hostkey_file); |
377 | GNUNET_assert (privkey2 != NULL); | 404 | GNUNET_assert (privkey2 != NULL); |
@@ -380,25 +407,39 @@ empty_zone_proc (void *cls, | |||
380 | "Created record 1\n"); | 407 | "Created record 1\n"); |
381 | 408 | ||
382 | GNUNET_asprintf(&s_name_1, "dummy1"); | 409 | GNUNET_asprintf(&s_name_1, "dummy1"); |
383 | s_rd_1 = create_record(1); | 410 | s_rd_1 = create_record (1); |
384 | GNUNET_NAMESTORE_records_store(nsh, privkey, s_name_1, | 411 | GNUNET_NAMESTORE_records_store (nsh, |
385 | 1, s_rd_1, &put_cont, NULL); | 412 | privkey, |
413 | s_name_1, | ||
414 | 1, | ||
415 | s_rd_1, | ||
416 | &put_cont, | ||
417 | NULL); | ||
386 | 418 | ||
387 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 419 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
388 | "Created record 2 \n"); | 420 | "Created record 2 \n"); |
389 | GNUNET_asprintf(&s_name_2, "dummy2"); | 421 | GNUNET_asprintf(&s_name_2, "dummy2"); |
390 | s_rd_2 = create_record(1); | 422 | s_rd_2 = create_record (1); |
391 | GNUNET_NAMESTORE_records_store(nsh, privkey, s_name_2, | 423 | GNUNET_NAMESTORE_records_store (nsh, |
392 | 1, s_rd_2, &put_cont, NULL); | 424 | privkey, |
425 | s_name_2, | ||
426 | 1, | ||
427 | s_rd_2, | ||
428 | &put_cont, | ||
429 | NULL); | ||
393 | 430 | ||
394 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 431 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
395 | "Created record 3\n"); | 432 | "Created record 3\n"); |
396 | 433 | ||
397 | /* name in different zone */ | 434 | /* name in different zone */ |
398 | GNUNET_asprintf(&s_name_3, "dummy3"); | 435 | GNUNET_asprintf(&s_name_3, "dummy3"); |
399 | s_rd_3 = create_record(1); | 436 | s_rd_3 = create_record (1); |
400 | GNUNET_NAMESTORE_records_store(nsh, privkey2, s_name_3, | 437 | GNUNET_NAMESTORE_records_store (nsh, |
401 | 1, s_rd_3, &put_cont, NULL); | 438 | privkey2, |
439 | s_name_3, | ||
440 | 1, s_rd_3, | ||
441 | &put_cont, | ||
442 | NULL); | ||
402 | } | 443 | } |
403 | 444 | ||
404 | 445 | ||
@@ -423,7 +464,12 @@ run (void *cls, | |||
423 | /* first, iterate over empty namestore */ | 464 | /* first, iterate over empty namestore */ |
424 | zi = GNUNET_NAMESTORE_zone_iteration_start (nsh, | 465 | zi = GNUNET_NAMESTORE_zone_iteration_start (nsh, |
425 | NULL, | 466 | NULL, |
426 | &empty_zone_proc, nsh); | 467 | &fail_cb, |
468 | NULL, | ||
469 | &empty_zone_proc, | ||
470 | nsh, | ||
471 | &empty_zone_proc_end, | ||
472 | nsh); | ||
427 | if (NULL == zi) | 473 | if (NULL == zi) |
428 | { | 474 | { |
429 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 475 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |