X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fnamestore%2Ftest_namestore_api_zone_iteration_nick.c;h=9df6c98cca899389cf7893982926fd19f05b82b6;hb=c60e83d3939da9f4e368c13ba3d2ea950b6c28d1;hp=395d1854f0ccfe48d6c0928a68a3912d8e01fbfe;hpb=4dc79497d7f745996068e62e973e34d220580323;p=oweals%2Fgnunet.git diff --git a/src/namestore/test_namestore_api_zone_iteration_nick.c b/src/namestore/test_namestore_api_zone_iteration_nick.c index 395d1854f..9df6c98cc 100644 --- a/src/namestore/test_namestore_api_zone_iteration_nick.c +++ b/src/namestore/test_namestore_api_zone_iteration_nick.c @@ -2,20 +2,20 @@ This file is part of GNUnet. Copyright (C) 2013 GNUnet e.V. - GNUnet is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3, or (at your - option) any later version. + GNUnet is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . - You should have received a copy of the GNU General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. + SPDX-License-Identifier: AGPL3.0-or-later */ /** * @file namestore/test_namestore_api_zone_iteration.c @@ -25,6 +25,9 @@ #include "gnunet_namestore_service.h" #include "gnunet_testing_lib.h" #include "namestore.h" +#include "gnunet_dnsparser_lib.h" + +#define TEST_RECORD_TYPE GNUNET_DNSPARSER_TYPE_TXT #define ZONE_NICK_1 "nick1" #define ZONE_NICK_2 "nick2" @@ -34,8 +37,6 @@ static struct GNUNET_NAMESTORE_Handle * nsh; -static struct GNUNET_SCHEDULER_Task * endbadly_task; - static struct GNUNET_CRYPTO_EcdsaPrivateKey * privkey; static struct GNUNET_CRYPTO_EcdsaPrivateKey * privkey2; @@ -60,7 +61,6 @@ static struct GNUNET_GNSRECORD_Data *s_rd_3; static struct GNUNET_NAMESTORE_QueueEntry *nsqe; -static char *directory; /** * Re-establish the connection to the service. @@ -69,7 +69,7 @@ static char *directory; * @param tc scheduler context */ static void -endbadly (void *cls) +end (void *cls) { if (NULL != zi) { @@ -81,9 +81,9 @@ endbadly (void *cls) GNUNET_NAMESTORE_disconnect (nsh); nsh = NULL; } - GNUNET_free_non_null(s_name_1); - GNUNET_free_non_null(s_name_2); - GNUNET_free_non_null(s_name_3); + GNUNET_free_non_null (s_name_1); + GNUNET_free_non_null (s_name_2); + GNUNET_free_non_null (s_name_3); if (s_rd_1 != NULL) { @@ -102,99 +102,50 @@ endbadly (void *cls) } if (privkey != NULL) - GNUNET_free (privkey); - privkey = NULL; - - if (privkey2 != NULL) - GNUNET_free (privkey2); - privkey2 = NULL; - res = 1; -} - - -static void -end (void *cls) -{ - if (NULL != zi) - { - GNUNET_NAMESTORE_zone_iteration_stop (zi); - zi = NULL; - } - if (endbadly_task != NULL) { - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = NULL; - } - - if (privkey != NULL) GNUNET_free (privkey); - privkey = NULL; - - if (privkey2 != NULL) - GNUNET_free (privkey2); - privkey2 = NULL; - - GNUNET_free (s_name_1); - GNUNET_free (s_name_2); - GNUNET_free (s_name_3); - if (s_rd_1 != NULL) - { - GNUNET_free ((void *)s_rd_1->data); - GNUNET_free (s_rd_1); + privkey = NULL; } - if (s_rd_2 != NULL) - { - GNUNET_free ((void *)s_rd_2->data); - GNUNET_free (s_rd_2); - } - if (s_rd_3 != NULL) + if (privkey2 != NULL) { - GNUNET_free ((void *)s_rd_3->data); - GNUNET_free (s_rd_3); + GNUNET_free (privkey2); + privkey2 = NULL; } - if (nsh != NULL) - GNUNET_NAMESTORE_disconnect (nsh); - nsh = NULL; } static int check_zone_1 (const char *label, unsigned int rd_count, - const struct GNUNET_GNSRECORD_Data *rd) + const struct GNUNET_GNSRECORD_Data *rd) { - int failed = GNUNET_NO; - int c; - for (c = 0; c< rd_count ; c++) + for (unsigned int c = 0; c< rd_count ; c++) { - if (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) - if (0 != strcmp (rd[c].data, ZONE_NICK_1)) - { - GNUNET_break (0); - return GNUNET_YES; - } + if ( (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) && + (0 != strcmp (rd[c].data, ZONE_NICK_1)) ) + { + GNUNET_break (0); + return GNUNET_YES; + } } - return failed; + return GNUNET_NO; } + static int check_zone_2 (const char *label, - unsigned int rd_count, - const struct GNUNET_GNSRECORD_Data *rd) + unsigned int rd_count, + const struct GNUNET_GNSRECORD_Data *rd) { - int failed = GNUNET_NO; - int c; - - for (c = 0; c< rd_count ; c++) + for (unsigned int c = 0; c< rd_count ; c++) { - if (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) - if (0 != strcmp (rd[c].data, ZONE_NICK_2)) - { - GNUNET_break (0); - return GNUNET_YES; - } + if ( (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) && + (0 != strcmp (rd[c].data, ZONE_NICK_2)) ) + { + GNUNET_break (0); + return GNUNET_YES; + } } - - return failed; + return GNUNET_NO; } @@ -206,7 +157,7 @@ zone_proc_end (void *cls) GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received last result, iteration done after receing %u results\n", returned_records); - GNUNET_SCHEDULER_add_now (&end, NULL); + GNUNET_SCHEDULER_shutdown (); } @@ -252,7 +203,7 @@ zone_proc (void *cls, { GNUNET_break (0); res = 1; - GNUNET_SCHEDULER_add_now (&end, NULL); + GNUNET_SCHEDULER_shutdown (); } } @@ -265,7 +216,9 @@ fail_cb (void *cls) static void -put_cont (void *cls, int32_t success, const char *emsg) +put_cont (void *cls, + int32_t success, + const char *emsg) { static int c = 0; @@ -279,9 +232,7 @@ put_cont (void *cls, int32_t success, const char *emsg) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to created records: `%s'\n", emsg); GNUNET_break (0); - if (NULL != endbadly_task) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } @@ -302,9 +253,7 @@ put_cont (void *cls, int32_t success, const char *emsg) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); GNUNET_break (0); - if (NULL != endbadly_task) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } } @@ -314,14 +263,14 @@ put_cont (void *cls, int32_t success, const char *emsg) static struct GNUNET_GNSRECORD_Data * create_record (unsigned int count) { - unsigned int c; struct GNUNET_GNSRECORD_Data * rd; - rd = GNUNET_malloc (count * sizeof (struct GNUNET_GNSRECORD_Data)); - for (c = 0; c < count; c++) + rd = GNUNET_new_array (count, + struct GNUNET_GNSRECORD_Data); + for (unsigned int c = 0; c < count; c++) { rd[c].expiration_time = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_HOURS).abs_value_us; - rd[c].record_type = 1111; + rd[c].record_type = TEST_RECORD_TYPE; rd[c].data_size = 50; rd[c].data = GNUNET_malloc(50); rd[c].flags = 0; @@ -332,7 +281,9 @@ create_record (unsigned int count) static void -nick_2_cont (void *cls, int32_t success, const char *emsg) +nick_2_cont (void *cls, + int32_t success, + const char *emsg) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Nick added : %s\n", @@ -400,9 +351,7 @@ empty_zone_proc (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Expected empty zone but received zone private key\n")); GNUNET_break (0); - if (endbadly_task != NULL) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } if ((NULL != label) || (NULL != rd) || (0 != rd_count)) @@ -410,9 +359,7 @@ empty_zone_proc (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Expected no zone content but received data\n")); GNUNET_break (0); - if (endbadly_task != NULL) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } GNUNET_assert (0); @@ -422,25 +369,18 @@ empty_zone_proc (void *cls, static void empty_zone_end (void *cls) { - char *hostkey_file; GNUNET_assert (nsh == cls); - zi = NULL; - GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, - "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); - privkey = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file); - GNUNET_free (hostkey_file); + privkey = GNUNET_CRYPTO_ecdsa_key_create (); GNUNET_assert (privkey != NULL); - - GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, - "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); - privkey2 = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file); - GNUNET_free (hostkey_file); + privkey2 = GNUNET_CRYPTO_ecdsa_key_create (); GNUNET_assert (privkey2 != NULL); - nsqe = GNUNET_NAMESTORE_set_nick (nsh, privkey, ZONE_NICK_1, &nick_1_cont, &privkey); + nsqe = GNUNET_NAMESTORE_set_nick (nsh, + privkey, + ZONE_NICK_1, + &nick_1_cont, + &privkey); if (NULL == nsqe) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -455,18 +395,10 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, struct GNUNET_TESTING_Peer *peer) { - directory = NULL; - GNUNET_assert (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_string (cfg, - "PATHS", - "GNUNET_TEST_HOME", - &directory)); - GNUNET_DISK_directory_remove (directory); - - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT, &endbadly, NULL); nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); - + GNUNET_SCHEDULER_add_shutdown (&end, + NULL); /* first, iterate over empty namestore */ zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, NULL, @@ -481,29 +413,33 @@ run (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); GNUNET_break (0); - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); } } +#include "test_common.c" + + int main (int argc, char *argv[]) { + const char *plugin_name; + char *cfg_name; + + SETUP_CFG (plugin_name, cfg_name); res = 1; if (0 != - GNUNET_TESTING_peer_run ("test-namestore-api-zone-iteration", - "test_namestore_api.conf", + GNUNET_TESTING_peer_run ("test-namestore-api-zone-iteration-nick", + cfg_name, &run, NULL)) { res = 1; } - if (NULL != directory) - { - GNUNET_DISK_directory_remove (directory); - GNUNET_free (directory); - } + GNUNET_DISK_purge_cfg_dir (cfg_name, + "GNUNET_TEST_HOME"); + GNUNET_free (cfg_name); return res; }