aboutsummaryrefslogtreecommitdiff
path: root/src/namestore/test_namestore_api_zone_iteration.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-07-09 14:29:34 +0000
committerChristian Grothoff <christian@grothoff.org>2016-07-09 14:29:34 +0000
commit03374cc39814fa4bfb8d96e1165c688c44d8342f (patch)
treeed772250c49b39d82b9708ec8df0ee3e07e366d1 /src/namestore/test_namestore_api_zone_iteration.c
parent0c13a1e6fb0baffd83d413f313742a5f2b420297 (diff)
downloadgnunet-03374cc39814fa4bfb8d96e1165c688c44d8342f.tar.gz
gnunet-03374cc39814fa4bfb8d96e1165c688c44d8342f.zip
make namestore API less brittle/sublte to use
Diffstat (limited to 'src/namestore/test_namestore_api_zone_iteration.c')
-rw-r--r--src/namestore/test_namestore_api_zone_iteration.c92
1 files changed, 64 insertions, 28 deletions
diff --git a/src/namestore/test_namestore_api_zone_iteration.c b/src/namestore/test_namestore_api_zone_iteration.c
index 070c06870..8960be55d 100644
--- a/src/namestore/test_namestore_api_zone_iteration.c
+++ b/src/namestore/test_namestore_api_zone_iteration.c
@@ -156,6 +156,32 @@ end (void *cls)
156 156
157 157
158static void 158static void
159zone_end (void *cls)
160{
161 GNUNET_break (3 == returned_records);
162 if (3 == returned_records)
163 {
164 res = 0; /* Last iteraterator callback, we are done */
165 zi = NULL;
166 }
167 else
168 res = 1;
169
170 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
171 "Received last result, iteration done after receing %u results\n",
172 returned_records);
173 GNUNET_SCHEDULER_add_now (&end, NULL);
174}
175
176
177static void
178fail_cb (void *cls)
179{
180 GNUNET_assert (0);
181}
182
183
184static void
159zone_proc (void *cls, 185zone_proc (void *cls,
160 const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, 186 const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
161 const char *label, 187 const char *label,
@@ -164,23 +190,6 @@ zone_proc (void *cls,
164{ 190{
165 int failed = GNUNET_NO; 191 int failed = GNUNET_NO;
166 192
167 if ((zone == NULL) && (label == NULL))
168 {
169 GNUNET_break (3 == returned_records);
170 if (3 == returned_records)
171 {
172 res = 0; /* Last iteraterator callback, we are done */
173 zi = NULL;
174 }
175 else
176 res = 1;
177
178 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
179 "Received last result, iteration done after receing %u results\n",
180 returned_records);
181 GNUNET_SCHEDULER_add_now (&end, NULL);
182 return;
183 }
184 GNUNET_assert (NULL != zone); 193 GNUNET_assert (NULL != zone);
185 if (0 == memcmp (zone, privkey, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey))) 194 if (0 == memcmp (zone, privkey, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
186 { 195 {
@@ -305,7 +314,11 @@ put_cont (void *cls, int32_t success, const char *emsg)
305 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All records created, starting iteration over all zones \n"); 314 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All records created, starting iteration over all zones \n");
306 zi = GNUNET_NAMESTORE_zone_iteration_start (nsh, 315 zi = GNUNET_NAMESTORE_zone_iteration_start (nsh,
307 NULL, 316 NULL,
317 &fail_cb,
318 NULL,
308 &zone_proc, 319 &zone_proc,
320 NULL,
321 &zone_end,
309 NULL); 322 NULL);
310 if (zi == NULL) 323 if (zi == NULL)
311 { 324 {
@@ -352,8 +365,6 @@ empty_zone_proc (void *cls,
352 unsigned int rd_count, 365 unsigned int rd_count,
353 const struct GNUNET_GNSRECORD_Data *rd) 366 const struct GNUNET_GNSRECORD_Data *rd)
354{ 367{
355 char *hostkey_file;
356
357 GNUNET_assert (nsh == cls); 368 GNUNET_assert (nsh == cls);
358 if (NULL != zone) 369 if (NULL != zone)
359 { 370 {
@@ -375,18 +386,31 @@ empty_zone_proc (void *cls,
375 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); 386 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
376 return; 387 return;
377 } 388 }
389 GNUNET_assert (0);
390}
378 391
379 392
393static void
394empty_zone_end (void *cls)
395{
396 char *hostkey_file;
397
380 zi = NULL; 398 zi = NULL;
381 GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, 399 GNUNET_asprintf (&hostkey_file,
382 "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); 400 "zonefiles%s%s",
383 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); 401 DIR_SEPARATOR_STR,
402 "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey");
403 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
404 "Using zonekey file `%s' \n",
405 hostkey_file);
384 privkey = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file); 406 privkey = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file);
385 GNUNET_free (hostkey_file); 407 GNUNET_free (hostkey_file);
386 GNUNET_assert (privkey != NULL); 408 GNUNET_assert (privkey != NULL);
387 409
388 GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, 410 GNUNET_asprintf (&hostkey_file,
389 "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"); 411 "zonefiles%s%s",
412 DIR_SEPARATOR_STR,
413 "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey");
390 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); 414 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file);
391 privkey2 = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file); 415 privkey2 = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file);
392 GNUNET_free (hostkey_file); 416 GNUNET_free (hostkey_file);
@@ -396,7 +420,9 @@ empty_zone_proc (void *cls,
396 420
397 GNUNET_asprintf(&s_name_1, "dummy1"); 421 GNUNET_asprintf(&s_name_1, "dummy1");
398 s_rd_1 = create_record(1); 422 s_rd_1 = create_record(1);
399 GNUNET_NAMESTORE_records_store (nsh, privkey, s_name_1, 423 GNUNET_NAMESTORE_records_store (nsh,
424 privkey,
425 s_name_1,
400 1, s_rd_1, 426 1, s_rd_1,
401 &put_cont, NULL); 427 &put_cont, NULL);
402 428
@@ -404,8 +430,12 @@ empty_zone_proc (void *cls,
404 "Created record 2 \n"); 430 "Created record 2 \n");
405 GNUNET_asprintf(&s_name_2, "dummy2"); 431 GNUNET_asprintf(&s_name_2, "dummy2");
406 s_rd_2 = create_record(1); 432 s_rd_2 = create_record(1);
407 GNUNET_NAMESTORE_records_store (nsh, privkey, s_name_2, 433 GNUNET_NAMESTORE_records_store (nsh,
408 1, s_rd_2, &put_cont, NULL); 434 privkey,
435 s_name_2,
436 1, s_rd_2,
437 &put_cont,
438 NULL);
409 439
410 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 440 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
411 "Created record 3\n"); 441 "Created record 3\n");
@@ -436,7 +466,13 @@ run (void *cls,
436 GNUNET_break (NULL != nsh); 466 GNUNET_break (NULL != nsh);
437 /* first, iterate over empty namestore */ 467 /* first, iterate over empty namestore */
438 zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, 468 zi = GNUNET_NAMESTORE_zone_iteration_start(nsh,
439 NULL, &empty_zone_proc, nsh); 469 NULL,
470 &fail_cb,
471 NULL,
472 &empty_zone_proc,
473 nsh,
474 &empty_zone_end,
475 NULL);
440 if (NULL == zi) 476 if (NULL == zi)
441 { 477 {
442 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); 478 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n");