[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r29663 - gnunet/src/gns
From: |
gnunet |
Subject: |
[GNUnet-SVN] r29663 - gnunet/src/gns |
Date: |
Fri, 27 Sep 2013 17:34:31 +0200 |
Author: schanzen
Date: 2013-09-27 17:34:31 +0200 (Fri, 27 Sep 2013)
New Revision: 29663
Removed:
gnunet/src/gns/test_gns_dht_default.conf
gnunet/src/gns/test_gns_dht_delegated_lookup.c
gnunet/src/gns/test_gns_dht_three_peers.c
Log:
-cleanup
Deleted: gnunet/src/gns/test_gns_dht_default.conf
===================================================================
--- gnunet/src/gns/test_gns_dht_default.conf 2013-09-27 15:33:11 UTC (rev
29662)
+++ gnunet/src/gns/test_gns_dht_default.conf 2013-09-27 15:34:31 UTC (rev
29663)
@@ -1,87 +0,0 @@
address@hidden@ test_gns_defaults.conf
-[PATHS]
-SERVICEHOME = /tmp/test-gnunet-gns-dht/
-
-[transport-tcp]
-PORT = 22568
-
-[dht]
-UNIXPATH = /tmp/gnunet-service-dht.sock
-AUTOSTART = YES
-ACCEPT_FROM6 = ::1;
-ACCEPT_FROM = 127.0.0.1;
-HOSTNAME = localhost
-PORT = 2102
-BINARY = gnunet-service-dht
-
-[dhtcache]
-QUOTA = 1 MB
-DATABASE = heap
-
-[arm]
-PORT = 22566
-DEFAULTSERVICES = core dht namestore gns
-UNIXPATH = /tmp/gnunet-default-service-arm.sock
-
-[statistics]
-PORT = 22567
-UNIXPATH = /tmp/gnunet-default-service-statistics.sock
-
-[resolver]
-PORT = 22564
-UNIXPATH = /tmp/gnunet-default-service-resolver.sock
-
-[peerinfo]
-PORT = 22569
-UNIXPATH = /tmp/gnunet-default-service-peerinfo.sock
-
-[transport]
-PORT = 22565
-UNIXPATH = /tmp/gnunet-default-service-transport.sock
-
-[core]
-PORT = 22570
-UNIXPATH = /tmp/gnunet-default-service-core.sock
-USE_EPHEMERAL_KEYS = NO
-
-[ats]
-PORT = 22571
-UNIXPATH = /tmp/gnunet-default-service-ats.sock
-
-[dns]
-UNIXPATH = /tmp/gnunet-default-service-dns.sock
-PORT = 22369
-AUTOSTART = YES
-DNS_EXIT = 8.8.8.8
-
-[gns]
-PORT = 22370
-#PREFIX = valgrind -v --leak-check=full --track-origins=yes
-AUTOSTART = YES
-BINARY = gnunet-service-gns
-ZONEKEY = $SERVICEHOME/.hostkey
-HIJACK_DNS = NO
-UNIXPATH = /tmp/gnunet-service-gns-default.sock
-HOME = $SERVICEHOME
-AUTO_IMPORT_PKEY = NO
-MAX_PARALLEL_BACKGROUND_QUERIES = 10
-DEFAULT_LOOKUP_TIMEOUT = 10 s
-RECORD_PUT_INTERVAL = 2 s
-
-[namestore]
-PORT = 22371
-AUTOSTART = YES
-UNIXPATH = /tmp/gnunet-service-namestore-default.sock
-UNIX_MATCH_UID = YES
-UNIX_MATCH_GID = YES
-HOSTNAME = localhost
-HOME = $SERVICEHOME
-BINARY = gnunet-service-namestore
-ACCEPT_FROM = 127.0.0.1;
-ACCEPT_FROM6 = ::1;
-DATABASE = sqlite
-ZONEFILE_DIRECTORY = $SERVICEHOME
-
-[namestore-sqlite]
-FILENAME = $SERVICEHOME/sqlite-default.db
-
Deleted: gnunet/src/gns/test_gns_dht_delegated_lookup.c
===================================================================
--- gnunet/src/gns/test_gns_dht_delegated_lookup.c 2013-09-27 15:33:11 UTC
(rev 29662)
+++ gnunet/src/gns/test_gns_dht_delegated_lookup.c 2013-09-27 15:34:31 UTC
(rev 29663)
@@ -1,371 +0,0 @@
-/*
- This file is part of GNUnet.
- (C) 2009 Christian Grothoff (and other contributing authors)
-
- 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 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.
-
- 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., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-/**
- * @file gns/test_gns_dht_delegated_lookup.c
- * @brief test for record lookup via DHT
- *
- */
-#include "platform.h"
-#include "gnunet_testing_lib.h"
-#include "gnunet_core_service.h"
-#include "block_gns.h"
-#include "gnunet_signatures.h"
-#include "gnunet_namestore_service.h"
-#include "../namestore/namestore.h"
-#include "gnunet_dnsparser_lib.h"
-#include "gnunet_dht_service.h"
-#include "gnunet_gns_service.h"
-
-/* Timeout for entire testcase */
-#define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 20)
-
-/* Timeout for entire testcase */
-#define DHT_DELAY GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 10)
-
-/* test records to resolve */
-#define TEST_DOMAIN "www.bob.gnu"
-#define TEST_IP "127.0.0.1"
-#define TEST_RECORD_NAME "www"
-
-#define TEST_AUTHORITY_NAME "bob"
-
-#define DHT_OPERATION_TIMEOUT GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_SECONDS, 1)
-
-#define KEYFILE_BOB
"../namestore/zonefiles/HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"
-
-/* Task handle to use to schedule test failure */
-static GNUNET_SCHEDULER_TaskIdentifier die_task;
-static GNUNET_SCHEDULER_TaskIdentifier wait_task;
-
-/* Global return value (0 for success, anything else for failure) */
-static int ok;
-
-static struct GNUNET_NAMESTORE_Handle *namestore_handle;
-
-static struct GNUNET_GNS_Handle *gns_handle;
-
-static struct GNUNET_DHT_Handle *dht_handle;
-
-static const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-static struct GNUNET_CRYPTO_EccPublicSignKey alice_pkey;
-static struct GNUNET_CRYPTO_EccPublicSignKey bob_pkey;
-static struct GNUNET_CRYPTO_EccPrivateKey *alice_key;
-static struct GNUNET_CRYPTO_EccPrivateKey *bob_key;
-
-
-/**
- * Check if the get_handle is being used, if so stop the request. Either
- * way, schedule the end_badly_cont function which actually shuts down the
- * test.
- */
-static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- die_task = GNUNET_SCHEDULER_NO_TASK;
- if (NULL != gns_handle)
- {
- GNUNET_GNS_disconnect (gns_handle);
- gns_handle = NULL;
- }
-
- if (NULL != dht_handle)
- {
- GNUNET_DHT_disconnect (dht_handle);
- dht_handle = NULL;
- }
-
- if (NULL != namestore_handle)
- {
- GNUNET_NAMESTORE_disconnect (namestore_handle);
- namestore_handle = NULL;
- }
- GNUNET_break (0);
- GNUNET_SCHEDULER_shutdown ();
- ok = 1;
-}
-
-
-static void
-end_badly_now ()
-{
-
- if (GNUNET_SCHEDULER_NO_TASK != wait_task)
- {
- GNUNET_SCHEDULER_cancel (wait_task);
- wait_task = GNUNET_SCHEDULER_NO_TASK;
- }
- GNUNET_SCHEDULER_cancel (die_task);
- die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
-}
-
-
-static void
-shutdown_task (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- GNUNET_GNS_disconnect(gns_handle);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n");
- GNUNET_SCHEDULER_shutdown ();
-}
-
-
-static void
-on_lookup_result(void *cls, uint32_t rd_count,
- const struct GNUNET_NAMESTORE_RecordData *rd)
-{
- struct in_addr a;
- int i;
- char* addr;
-
- if (GNUNET_SCHEDULER_NO_TASK != die_task)
- {
- GNUNET_SCHEDULER_cancel (die_task);
- die_task = GNUNET_SCHEDULER_NO_TASK;
- }
-
- GNUNET_NAMESTORE_disconnect (namestore_handle);
- namestore_handle = NULL;
- if (rd_count == 0)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Lookup failed, rp_filtering?\n");
- ok = 2;
- }
- else
- {
- ok = 1;
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "name: %s\n", (char*)cls);
- for (i=0; i<rd_count; i++)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "type: %d\n", rd[i].record_type);
- if (rd[i].record_type == GNUNET_DNSPARSER_TYPE_A)
- {
- memcpy(&a, rd[i].data, sizeof(a));
- addr = inet_ntoa(a);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "address: %s\n", addr);
- if (0 == strcmp(addr, TEST_IP))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
- "%s correctly resolved to %s!\n", TEST_DOMAIN, addr);
- ok = 0;
- }
- }
- else
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No resolution!\n");
- }
- }
- }
- GNUNET_DHT_disconnect (dht_handle);
- dht_handle = NULL;
-
- GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
-}
-
-
-/**
- * Function scheduled to be run on the successful start of services
- * tries to look up the dns record for TEST_DOMAIN
- */
-static void
-commence_testing (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- gns_handle = GNUNET_GNS_connect(cfg);
-
- if (NULL == gns_handle)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Failed to connect to GNS!\n");
- end_badly_now();
- return;
- }
-
- GNUNET_GNS_lookup(gns_handle, TEST_DOMAIN, GNUNET_DNSPARSER_TYPE_A,
- GNUNET_NO,
- NULL,
- &on_lookup_result, TEST_DOMAIN);
-}
-
-
-static void
-put_dht(void *cls, int32_t success, const char *emsg)
-{
- struct GNSNameRecordBlock *nrb;
- struct GNUNET_CRYPTO_ShortHashCode name_hash;
- struct GNUNET_CRYPTO_ShortHashCode zone_hash;
- struct GNUNET_HashCode xor_hash;
- struct GNUNET_HashCode name_hash_double;
- struct GNUNET_HashCode zone_hash_double;
- uint32_t rd_payload_length;
- char* nrb_data = NULL;
- struct GNUNET_CRYPTO_EccSignature *sig;
- struct GNUNET_NAMESTORE_RecordData rd;
- char* ip = TEST_IP;
- struct in_addr *web = GNUNET_malloc(sizeof(struct in_addr));
-
- rd.expiration_time = UINT64_MAX;
- GNUNET_assert(1 == inet_pton (AF_INET, ip, web));
- rd.data_size = sizeof(struct in_addr);
- rd.data = web;
- rd.record_type = GNUNET_DNSPARSER_TYPE_A;
- rd.flags = GNUNET_NAMESTORE_RF_NONE;
-
- sig = GNUNET_NAMESTORE_create_signature(bob_key,
GNUNET_TIME_UNIT_FOREVER_ABS, TEST_RECORD_NAME,
- &rd, 1);
-
- GNUNET_assert (GNUNET_OK == GNUNET_NAMESTORE_verify_signature (&bob_pkey,
-
GNUNET_TIME_UNIT_FOREVER_ABS,
-
TEST_RECORD_NAME,
- 1,
- &rd,
- sig));
- rd_payload_length = GNUNET_NAMESTORE_records_get_size (1, &rd);
- nrb = GNUNET_malloc(rd_payload_length + strlen(TEST_RECORD_NAME) + 1
- + sizeof(struct GNSNameRecordBlock));
- nrb->signature = *sig;
- nrb->public_key = bob_pkey;
- nrb->rd_count = htonl(1);
- memset(&nrb[1], 0, strlen(TEST_RECORD_NAME) + 1);
- strcpy((char*)&nrb[1], TEST_RECORD_NAME);
- nrb_data = (char*)&nrb[1];
- nrb_data += strlen(TEST_RECORD_NAME) + 1;
-
- if (-1 == GNUNET_NAMESTORE_records_serialize (1,
- &rd,
- rd_payload_length,
- nrb_data))
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Record serialization failed!\n");
- ok = 3;
- GNUNET_free (nrb);
- GNUNET_free (web);
- end_badly_now ();
- return;
- }
- GNUNET_CRYPTO_short_hash(TEST_RECORD_NAME, strlen(TEST_RECORD_NAME),
&name_hash);
- GNUNET_CRYPTO_short_hash(&bob_pkey,
- sizeof(struct GNUNET_CRYPTO_EccPublicSignKey),
- &zone_hash);
- GNUNET_CRYPTO_short_hash_double(&zone_hash, &zone_hash_double);
- GNUNET_CRYPTO_short_hash_double(&name_hash, &name_hash_double);
- GNUNET_CRYPTO_hash_xor(&zone_hash_double, &name_hash_double, &xor_hash);
-
- rd_payload_length += sizeof(struct GNSNameRecordBlock) +
- strlen(TEST_RECORD_NAME) + 1;
- GNUNET_DHT_put (dht_handle, &xor_hash,
- 0,
- GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,
- GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
- rd_payload_length,
- (char*)nrb,
- GNUNET_TIME_UNIT_FOREVER_ABS,
- DHT_OPERATION_TIMEOUT,
- NULL,
- NULL);
- GNUNET_free (web);
- GNUNET_free (nrb);
- GNUNET_free (sig);
- if (GNUNET_SCHEDULER_NO_TASK != die_task)
- {
- GNUNET_SCHEDULER_cancel (die_task);
- die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL);
- }
- wait_task = GNUNET_SCHEDULER_add_delayed(DHT_DELAY, &commence_testing, NULL);
-}
-
-
-static void
-do_check (void *cls,
- const struct GNUNET_CONFIGURATION_Handle *ccfg,
- struct GNUNET_TESTING_Peer *peer)
-{
- char* alice_keyfile;
- struct GNUNET_CRYPTO_ShortHashCode bob_hash;
-
- cfg = ccfg;
- die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL);
-
- /* put records into namestore */
- namestore_handle = GNUNET_NAMESTORE_connect(cfg);
- if (NULL == namestore_handle)
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to namestore\n");
- end_badly_now ();
- return;
- }
-
- /* dht */
- dht_handle = GNUNET_DHT_connect(cfg, 1);
- if (NULL == dht_handle)
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to dht\n");
- end_badly_now ();
- return;
- }
-
- if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
- "ZONEKEY",
- &alice_keyfile))
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
- end_badly_now ();
- return;
- }
-
- alice_key = GNUNET_CRYPTO_ecc_key_create_from_file (alice_keyfile);
- bob_key = GNUNET_CRYPTO_ecc_key_create_from_file (KEYFILE_BOB);
-
- GNUNET_free(alice_keyfile);
-
- GNUNET_CRYPTO_ecc_key_get_public_for_signature (alice_key, &alice_pkey);
- GNUNET_CRYPTO_ecc_key_get_public_for_signature (bob_key, &bob_pkey);
- GNUNET_CRYPTO_short_hash(&bob_pkey, sizeof(bob_pkey), &bob_hash);
-
- struct GNUNET_NAMESTORE_RecordData rd;
- rd.expiration_time = UINT64_MAX;
- rd.data_size = sizeof(struct GNUNET_CRYPTO_ShortHashCode);
- rd.data = &bob_hash;
- rd.record_type = GNUNET_NAMESTORE_TYPE_PKEY;
- rd.flags = GNUNET_NAMESTORE_RF_NONE;
-
- GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
- alice_key,
- TEST_AUTHORITY_NAME,
- 1, &rd,
- &put_dht,
- NULL);
-}
-
-
-int
-main (int argc, char *argv[])
-{
- ok = 1;
-
- GNUNET_log_setup ("test-gns-dht-delegated-lookup",
- "WARNING",
- NULL);
- GNUNET_TESTING_peer_run ("test-gns-dht-delegated-lookup",
"test_gns_simple_lookup.conf", &do_check, NULL);
- return ok;
-}
-
-
-/* end of test_gns_dht_delegated_lookup.c */
Deleted: gnunet/src/gns/test_gns_dht_three_peers.c
===================================================================
--- gnunet/src/gns/test_gns_dht_three_peers.c 2013-09-27 15:33:11 UTC (rev
29662)
+++ gnunet/src/gns/test_gns_dht_three_peers.c 2013-09-27 15:34:31 UTC (rev
29663)
@@ -1,675 +0,0 @@
-/*
- This file is part of GNUnet.
- (C) 2009 Christian Grothoff (and other contributing authors)
-
- 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 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.
-
- 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., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-/**
- * @file gns/test_gns_dht_threepeer.c
- * @brief tests dht lookup over 3 peers
- *
- * topology:
- * alice <----> bob <-----> dave
- *
- * alice queries for www.buddy.bob.gnu
- *
- */
-#include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_disk_lib.h"
-#include "gnunet_testing_lib.h"
-#include "gnunet_testbed_service.h"
-#include "gnunet_core_service.h"
-#include "gnunet_dht_service.h"
-#include "block_dns.h"
-#include "gnunet_signatures.h"
-#include "gnunet_namestore_service.h"
-#include "gnunet_dnsparser_lib.h"
-#include "gnunet_gns_service.h"
-
-#define ZONE_PUT_WAIT_TIME
GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 10)
-
-#define TEST_DOMAIN "www.buddy.bob.gnu"
-#define TEST_IP "1.1.1.1"
-#define TEST_DAVE_PSEU "hagbard"
-
-
-/* Timeout for entire testcase */
-#define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 60)
-#define SETUP_TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS,
60)
-
-/* Global return value (0 for success, anything else for failure) */
-static int ok;
-
-/* Task handle to use to schedule test failure */
-static GNUNET_SCHEDULER_TaskIdentifier die_task;
-
-static GNUNET_SCHEDULER_TaskIdentifier wait_task;
-
-static GNUNET_SCHEDULER_TaskIdentifier setup_task;
-
-static struct GNUNET_CRYPTO_ShortHashCode dave_hash;
-
-static struct GNUNET_CRYPTO_ShortHashCode bob_hash;
-
-static struct GNUNET_TESTBED_Peer **cpeers;
-
-static struct GNUNET_GNS_Handle *gh;
-static struct GNUNET_GNS_LookupRequest *lookup_handle;
-
-static struct GNUNET_TESTBED_Operation *get_cfg_ops[3];
-static struct GNUNET_TESTBED_Operation *topology_op;
-static struct GNUNET_CONFIGURATION_Handle *cfg_handles[3];
-static struct GNUNET_NAMESTORE_Handle *nh[3];
-
-static int dave_is_setup;
-static int bob_is_setup;
-static int alice_is_setup;
-
-/**
- * Check if the get_handle is being used, if so stop the request. Either
- * way, schedule the end_badly_cont function which actually shuts down the
- * test.
- */
-static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- die_task = GNUNET_SCHEDULER_NO_TASK;
- int c;
-
- if (GNUNET_SCHEDULER_NO_TASK != wait_task)
- {
- GNUNET_SCHEDULER_cancel (wait_task);
- wait_task = GNUNET_SCHEDULER_NO_TASK;
- }
-
- for (c = 0; c < 3; c++)
- {
- if (NULL != nh[c])
- {
- GNUNET_NAMESTORE_disconnect(nh[c]);
- nh[c] = NULL;
- }
-
- if (NULL != get_cfg_ops[c])
- {
- GNUNET_TESTBED_operation_done(get_cfg_ops[c]);
- get_cfg_ops[c] = NULL;
- }
- if (NULL != cfg_handles[c])
- {
- GNUNET_CONFIGURATION_destroy (cfg_handles[c]);
- cfg_handles[c] = NULL;
- }
- }
- if (NULL != topology_op)
- {
- GNUNET_TESTBED_operation_done (topology_op);
- topology_op = NULL;
- }
- if (NULL != lookup_handle)
- {
- GNUNET_GNS_cancel_lookup_request (lookup_handle);
- lookup_handle = NULL;
- }
- if (NULL != gh)
- {
- GNUNET_GNS_disconnect(gh);
- gh = NULL;
- }
-
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Test failed \n");
- GNUNET_SCHEDULER_shutdown ();
- ok = 1;
-}
-
-static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Finished\n");
- int c;
- if (GNUNET_SCHEDULER_NO_TASK != die_task)
- {
- GNUNET_SCHEDULER_cancel (die_task);
- die_task = GNUNET_SCHEDULER_NO_TASK;
- }
-
- for (c = 0; c < 3; c++)
- {
- if (NULL != nh[c])
- {
- GNUNET_NAMESTORE_disconnect(nh[c]);
- nh[c] = NULL;
- }
- if (NULL != cfg_handles[c])
- {
- GNUNET_CONFIGURATION_destroy (cfg_handles[c]);
- cfg_handles[c] = NULL;
- }
- }
-
- if (NULL != gh)
- {
- GNUNET_GNS_disconnect(gh);
- gh = NULL;
- }
-
- if (0 == ok)
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Test ended successful\n");
- else
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Test failed\n");
- GNUNET_SCHEDULER_shutdown ();
-}
-
-static void
-setup_end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- setup_task = GNUNET_SCHEDULER_NO_TASK;
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Timeout during setup, test failed\n");
-
- if (NULL != topology_op)
- {
- GNUNET_TESTBED_operation_done (topology_op);
- topology_op = NULL;
- }
- GNUNET_SCHEDULER_shutdown ();
- ok = GNUNET_SYSERR;
-}
-
-static void
-end_now ()
-{
- GNUNET_SCHEDULER_add_now (&end, NULL);
-}
-
-
-static void
-disconnect_ns (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-
- GNUNET_NAMESTORE_disconnect (cls);
- if (cls == nh[0])
- nh[0] = NULL;
- if (cls == nh[1])
- nh[1] = NULL;
- if (cls == nh[2])
- nh[2] = NULL;
-}
-
-
-static void
-cont_ns (void* cls, int32_t s, const char* emsg)
-{
- GNUNET_SCHEDULER_add_now (&disconnect_ns, cls);
-}
-
-static void
-on_lookup_result(void *cls, uint32_t rd_count,
- const struct GNUNET_NAMESTORE_RecordData *rd)
-{
- int i;
- char* string_val;
-
- if (rd_count == 0)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Lookup failed!\n");
- ok = 2;
- }
- else
- {
- ok = 1;
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "name: %s\n", (char*)cls);
- for (i=0; i<rd_count; i++)
- {
- string_val = GNUNET_NAMESTORE_value_to_string(rd[i].record_type,
- rd[i].data,
- rd[i].data_size);
- if (0 == strcmp(string_val, TEST_IP))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
- "%s correctly resolved to %s!\n", TEST_DOMAIN, string_val);
- ok = 0;
- }
- GNUNET_free (string_val);
- }
- }
- end_now ();
-}
-
-
-static void
-commence_testing(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- static int wait = 0;
-
- wait++;
- if ((ZONE_PUT_WAIT_TIME.rel_value_us / 1000LL / 1000LL) == wait)
- {
- fprintf (stderr, "\n");
- wait_task = GNUNET_SCHEDULER_NO_TASK;
- lookup_handle = GNUNET_GNS_lookup(gh, TEST_DOMAIN, GNUNET_DNSPARSER_TYPE_A,
- GNUNET_NO,
- NULL,
- &on_lookup_result, TEST_DOMAIN);
- if (GNUNET_SCHEDULER_NO_TASK != die_task)
- GNUNET_SCHEDULER_cancel(die_task);
- die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, "from
lookup");
- }
- else
- {
- fprintf (stderr, ".");
- wait_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
&commence_testing, NULL);
- }
-}
-
-
-void
-all_connected ()
-{
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Created all connections! Waiting for
PUTs\n");
- if (GNUNET_SCHEDULER_NO_TASK != setup_task)
- {
- GNUNET_SCHEDULER_cancel (setup_task);
- setup_task = GNUNET_SCHEDULER_NO_TASK;
- }
- wait_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
&commence_testing, NULL);
-}
-
-
-static void connect_peers ()
-{
- static int started;
- started ++;
- if (3 == started)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All peers started\n");
-
- topology_op =
- GNUNET_TESTBED_overlay_configure_topology (NULL, 3, cpeers, NULL,
- NULL,
- NULL,
-
GNUNET_TESTBED_TOPOLOGY_RING,
-
GNUNET_TESTBED_TOPOLOGY_OPTION_END);
- }
-}
-
-static int
-setup_dave (const struct GNUNET_CONFIGURATION_Handle * cfg)
-{
- char* keyfile;
- struct GNUNET_CRYPTO_EccPrivateKey *key;
- struct GNUNET_CRYPTO_EccPublicSignKey pkey;
- struct in_addr *web;
- struct GNUNET_NAMESTORE_RecordData rd;
-
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up dave\n");
- cfg_handles[0] = GNUNET_CONFIGURATION_dup (cfg);
- GNUNET_assert (NULL != cfg_handles[0]);
- if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
- "ZONEKEY",
- &keyfile))
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
- return GNUNET_SYSERR;
- }
-
- key = GNUNET_CRYPTO_ecc_key_create_from_file (keyfile);
- if (NULL == key)
- {
-
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
- GNUNET_free (keyfile);
- return GNUNET_SYSERR;
- }
- nh[0] = GNUNET_NAMESTORE_connect (cfg_handles[0]);
- if (NULL == nh[0])
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to namestore\n");
- GNUNET_free (key);
- GNUNET_free (keyfile);
- return GNUNET_SYSERR;
- }
-
- GNUNET_CRYPTO_ecc_key_get_public_for_signature (key, &pkey);
- GNUNET_CRYPTO_short_hash(&pkey, sizeof(pkey), &dave_hash);
-
- rd.expiration_time = UINT64_MAX;
-
- web = GNUNET_malloc(sizeof(struct in_addr));
- GNUNET_assert(1 == inet_pton (AF_INET, TEST_IP, web));
- rd.data_size = sizeof(struct in_addr);
- rd.data = web;
- rd.record_type = GNUNET_DNSPARSER_TYPE_A;
- rd.flags = GNUNET_NAMESTORE_RF_NONE;
-
- GNUNET_NAMESTORE_record_put_by_authority (nh[0], key, "www",
- 1, &rd,
- NULL, NULL);
-
- rd.data_size = strlen(TEST_DAVE_PSEU);
- rd.data = TEST_DAVE_PSEU;
- rd.record_type = GNUNET_NAMESTORE_TYPE_PSEU;
-
-
- GNUNET_NAMESTORE_record_put_by_authority (nh[0], key,
- GNUNET_GNS_MASTERZONE_STR,
- 1, &rd,
- &cont_ns, nh[0]);
-
- GNUNET_free(key);
- GNUNET_free(keyfile);
- GNUNET_free(web);
- dave_is_setup = GNUNET_YES;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up dave done\n");
- return GNUNET_OK;
-}
-
-static int
-setup_bob (const struct GNUNET_CONFIGURATION_Handle * cfg)
-{
- char* keyfile;
- struct GNUNET_CRYPTO_EccPrivateKey *key;
- struct GNUNET_CRYPTO_EccPublicSignKey pkey;
- struct GNUNET_NAMESTORE_RecordData rd;
-
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up bob\n");
- cfg_handles[1] = GNUNET_CONFIGURATION_dup (cfg);
- GNUNET_assert (NULL != cfg_handles[1]);
- if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
- "ZONEKEY",
- &keyfile))
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
- return GNUNET_SYSERR;
- }
-
- key = GNUNET_CRYPTO_ecc_key_create_from_file (keyfile);
- if (NULL == key)
- {
-
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
- GNUNET_free (keyfile);
- return GNUNET_SYSERR;
- }
-
- nh[1] = GNUNET_NAMESTORE_connect (cfg_handles[1]);
- if (NULL == nh[1])
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to namestore\n");
- GNUNET_free (key);
- GNUNET_free (keyfile);
- return GNUNET_SYSERR;
- }
-
- GNUNET_CRYPTO_ecc_key_get_public_for_signature (key, &pkey);
- GNUNET_CRYPTO_short_hash(&pkey, sizeof(pkey), &bob_hash);
-
- rd.expiration_time = UINT64_MAX;
- rd.data_size = sizeof(struct GNUNET_CRYPTO_ShortHashCode);
- rd.data = &dave_hash;
- rd.record_type = GNUNET_NAMESTORE_TYPE_PKEY;
- rd.flags = GNUNET_NAMESTORE_RF_NONE;
-
- GNUNET_NAMESTORE_record_put_by_authority (nh[1], key, "buddy",
- 1, &rd,
- &cont_ns, nh[1]);
-
- GNUNET_free(key);
- GNUNET_free(keyfile);
- bob_is_setup = GNUNET_YES;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up bob done\n");
- return GNUNET_OK;
-}
-
-static int
-setup_alice (const struct GNUNET_CONFIGURATION_Handle * cfg)
-{
- char* keyfile;
- struct GNUNET_CRYPTO_EccPrivateKey *key;
- struct GNUNET_NAMESTORE_RecordData rd;
-
- cfg_handles[2] = GNUNET_CONFIGURATION_dup (cfg);
- GNUNET_assert (NULL != cfg);
- if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
- "ZONEKEY",
- &keyfile))
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
- return GNUNET_SYSERR;
- }
-
- key = GNUNET_CRYPTO_ecc_key_create_from_file (keyfile);
- if (NULL == key)
- {
-
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
- GNUNET_free (keyfile);
- return GNUNET_SYSERR;
- }
-
- nh[2] = GNUNET_NAMESTORE_connect (cfg_handles[2]);
- if (NULL == nh[2])
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to namestore\n");
- GNUNET_free (key);
- GNUNET_free (keyfile);
- return GNUNET_SYSERR;
- }
-
- rd.expiration_time = UINT64_MAX;
- rd.data_size = sizeof(struct GNUNET_CRYPTO_ShortHashCode);
- rd.data = &bob_hash;
- rd.record_type = GNUNET_NAMESTORE_TYPE_PKEY;
- rd.flags = GNUNET_NAMESTORE_RF_NONE;
-
- GNUNET_NAMESTORE_record_put_by_authority (nh[2], key, "bob",
- 1, &rd,
- &cont_ns, nh[2]);
-
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up alice gns\n");
- gh = GNUNET_GNS_connect (cfg_handles[2]);
- if (NULL == gh)
- {
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to gns\n");
- GNUNET_free (key);
- GNUNET_free (keyfile);
- return GNUNET_SYSERR;
- }
-
- GNUNET_free (key);
- GNUNET_free (keyfile);
- alice_is_setup = GNUNET_YES;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up alice done\n");
- return GNUNET_OK;
-}
-
-static void
-end_badly_now ()
-{
- if (GNUNET_SCHEDULER_NO_TASK != die_task)
- GNUNET_SCHEDULER_cancel (die_task);
- die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
-}
-
-
-/**
- * Callback to be called when the requested peer information is available
- *
- * @param cb_cls the closure from GNUNET_TETSBED_peer_get_information()
- * @param op the operation this callback corresponds to
- * @param pinfo the result; will be NULL if the operation has failed
- * @param emsg error message if the operation has failed; will be NULL if the
- * operation is successfull
- */
-static void
-peerinfo_cb (void *cb_cls, struct GNUNET_TESTBED_Operation *op,
- const struct GNUNET_TESTBED_PeerInformation *pinfo,
- const char *emsg)
-{
- int res;
- GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION == pinfo->pit);
- if (GNUNET_NO == dave_is_setup)
- res = setup_dave (pinfo->result.cfg);
- else if (GNUNET_NO == bob_is_setup)
- res = setup_bob (pinfo->result.cfg);
- else
- res = setup_alice (pinfo->result.cfg);
-
- if (get_cfg_ops[0] == op)
- get_cfg_ops[0] = NULL;
- else if (get_cfg_ops[1] == op)
- get_cfg_ops[1] = NULL;
- else
- get_cfg_ops[2] = NULL;
- GNUNET_TESTBED_operation_done (op);
- op = NULL;
- if (GNUNET_SYSERR == res)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to setup peer \n");
- end_badly_now();
- }
- else
- connect_peers ();
- /*if (get_cfg_ops[0] == op)
- {
- GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION == pinfo->pit);
- res = setup_dave (pinfo->result.cfg);
- GNUNET_TESTBED_operation_done (get_cfg_ops[0]);
- get_cfg_ops[0] = NULL;
- if (GNUNET_SYSERR == res)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to setup dave \n");
- end_badly_now();
- }
- else
- {
- connect_peers ();
- }
- }
- else if (get_cfg_ops[1] == op)
- {
- GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION == pinfo->pit);
- res = setup_bob (pinfo->result.cfg);
- GNUNET_TESTBED_operation_done (get_cfg_ops[1]);
- get_cfg_ops[1] = NULL;
- if (GNUNET_SYSERR == res)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to setup dave \n");
- end_badly_now();
- }
- else
- {
- connect_peers ();
- }
- }
- else if (get_cfg_ops[2] == op)
- {
- GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION == pinfo->pit);
- res = setup_alice (pinfo->result.cfg);
- GNUNET_TESTBED_operation_done (get_cfg_ops[2]);
- get_cfg_ops[2] = NULL;
- if (GNUNET_SYSERR == res)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to setup dave \n");
- end_badly_now();
- }
- else
- {
- connect_peers ();
- }
- }*/
-}
-
-
-void testbed_master (void *cls,
- struct GNUNET_TESTBED_RunHandle *h,
- unsigned int num_peers,
- struct GNUNET_TESTBED_Peer **peers,
- unsigned int links_succeeded,
- unsigned int links_failed)
-{
- GNUNET_assert (NULL != peers);
- cpeers = peers;
-
- setup_task = GNUNET_SCHEDULER_add_delayed (SETUP_TIMEOUT, &setup_end_badly,
NULL);
-
- /* peer 0: dave */
- GNUNET_assert (NULL != peers[0]);
- get_cfg_ops[0] = GNUNET_TESTBED_peer_get_information (peers[0],
-
GNUNET_TESTBED_PIT_CONFIGURATION,
- &peerinfo_cb, NULL);
-
- /* peer 1: bob */
- GNUNET_assert (NULL != peers[1]);
- get_cfg_ops[1] = GNUNET_TESTBED_peer_get_information (peers[1],
-
GNUNET_TESTBED_PIT_CONFIGURATION,
- &peerinfo_cb, NULL );
-
- /* peer 2: alice */
- GNUNET_assert (NULL != peers[2]);
- get_cfg_ops[2] = GNUNET_TESTBED_peer_get_information (peers[2],
-
GNUNET_TESTBED_PIT_CONFIGURATION,
- &peerinfo_cb, NULL);
-
-}
-
-void testbed_controller_cb (void *cls, const struct
GNUNET_TESTBED_EventInformation *event)
-{
- static int connections = 0;
-
- switch (event->type)
- {
- case GNUNET_TESTBED_ET_OPERATION_FINISHED:
- /* This part will still be called when
- GNUNET_TESTBED_peer_get_information() succeeds. However, the code is
- now more relevant in operation completion callback */
- break;
- case GNUNET_TESTBED_ET_CONNECT:
- connections ++;
- if (connections == 3)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All peers connected\n");
- GNUNET_TESTBED_operation_done (topology_op);
- topology_op = NULL;
- all_connected ();
- }
- break;
- default:
- /* whatever ... */
- break;
- }
-}
-
-int
-main (int argc, char *argv[])
-{
- uint64_t event_mask;
- ok = 0;
- event_mask = 0;
- event_mask |= (1LL << GNUNET_TESTBED_ET_CONNECT);
- event_mask |= (1LL << GNUNET_TESTBED_ET_OPERATION_FINISHED);
- (void) GNUNET_TESTBED_test_run ("test_gns_dht_three_peers",
"test_gns_dht_default.conf",
- 3, event_mask,
- &testbed_controller_cb, NULL,
- &testbed_master, NULL);
- if (GNUNET_SYSERR == ok)
- return 1;
- return 0;
-}
-
-/* end of test_gns_dht_three_peers.c */
-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r29663 - gnunet/src/gns,
gnunet <=