gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r20867 - gnunet/src/gns


From: gnunet
Subject: [GNUnet-SVN] r20867 - gnunet/src/gns
Date: Tue, 3 Apr 2012 13:45:16 +0200

Author: schanzen
Date: 2012-04-03 13:45:16 +0200 (Tue, 03 Apr 2012)
New Revision: 20867

Modified:
   gnunet/src/gns/Makefile.am
   gnunet/src/gns/gnunet-service-gns.c
   gnunet/src/gns/gnunet-service-gns_resolver.c
   gnunet/src/gns/gnunet-service-gns_resolver.h
   gnunet/src/gns/plugin_block_gns.c
   gnunet/src/gns/test_gns_dht_threepeer.c
Log:
-array of fixes, finally finished test


Modified: gnunet/src/gns/Makefile.am
===================================================================
--- gnunet/src/gns/Makefile.am  2012-04-03 08:46:59 UTC (rev 20866)
+++ gnunet/src/gns/Makefile.am  2012-04-03 11:45:16 UTC (rev 20867)
@@ -39,8 +39,8 @@
   test_gns_simple_zkey_lookup \
   test_gns_dht_delegated_lookup \
   test_gns_pseu_shorten \
-  test_gns_max_queries
-#  test_gns_dht_threepeer
+  test_gns_max_queries \
+  test_gns_dht_threepeer
 
 
 #  test_gns_simple_lookup
@@ -51,18 +51,18 @@
 plugin_LTLIBRARIES = \
   libgnunet_plugin_block_gns.la
 
-#test_gns_dht_threepeer_SOURCES = \
-#  test_gns_dht_threepeer.c
-#test_gns_dht_threepeer_LDADD = \
-#  $(top_builddir)/src/util/libgnunetutil.la \
-#  $(top_builddir)/src/namestore/libgnunetnamestore.la \
-#  $(top_builddir)/src/gns/libgnunetgns.la \
-#  $(top_builddir)/src/testing/libgnunettesting.la
-#test_gns_dht_threepeer_DEPENDENCIES = \
-#  $(top_builddir)/src/util/libgnunetutil.la \
-#  $(top_builddir)/src/namestore/libgnunetnamestore.la \
-#  $(top_builddir)/src/gns/libgnunetgns.la \
-#  $(top_builddir)/src/testing/libgnunettesting.la
+test_gns_dht_threepeer_SOURCES = \
+  test_gns_dht_threepeer.c
+test_gns_dht_threepeer_LDADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/namestore/libgnunetnamestore.la \
+  $(top_builddir)/src/gns/libgnunetgns.la \
+  $(top_builddir)/src/testing/libgnunettesting.la
+test_gns_dht_threepeer_DEPENDENCIES = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/namestore/libgnunetnamestore.la \
+  $(top_builddir)/src/gns/libgnunetgns.la \
+  $(top_builddir)/src/testing/libgnunettesting.la
 
 test_gns_simple_lookup_SOURCES = \
   test_gns_simple_lookup.c

Modified: gnunet/src/gns/gnunet-service-gns.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns.c 2012-04-03 08:46:59 UTC (rev 20866)
+++ gnunet/src/gns/gnunet-service-gns.c 2012-04-03 11:45:16 UTC (rev 20867)
@@ -142,6 +142,11 @@
  */
 static int num_public_records =  3600;
 
+/**
+ * update interval in seconds
+ */
+static unsigned long long int dht_max_update_interval;
+
 /* dht update interval FIXME define? */
 static struct GNUNET_TIME_Relative dht_update_interval;
 
@@ -253,11 +258,11 @@
   {
     GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
                "Zone iteration finished. Rescheduling put in %ds\n",
-               GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL);
+               dht_max_update_interval);
     zone_update_taskid = GNUNET_SCHEDULER_add_delayed (
                                         GNUNET_TIME_relative_multiply(
                                             GNUNET_TIME_UNIT_SECONDS,
-                                            GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL
+                                            dht_max_update_interval
                                             ),
                                             &update_zone_dht_start,
                                             NULL);
@@ -324,6 +329,9 @@
   GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
              "putting records for %s under key: %s with size %d\n",
              name, (char*)&xor_hash_string, rd_payload_length);
+  
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
+             "DHT req to %d\n", DHT_OPERATION_TIMEOUT.rel_value);
 
   GNUNET_DHT_put (dht_handle, &xor_hash,
                   DHT_GNS_REPLICATION_LEVEL,
@@ -363,20 +371,20 @@
   {
     dht_update_interval = GNUNET_TIME_relative_multiply(
                                             GNUNET_TIME_UNIT_SECONDS,
-                                            
GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL);
+                                            dht_max_update_interval);
     GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
                "No records in db. Adjusted DHT update interval to %ds\n",
-               GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL);
+               dht_max_update_interval);
   }
   else
   {
     
     dht_update_interval = GNUNET_TIME_relative_multiply(
-                                                      GNUNET_TIME_UNIT_SECONDS,
-                                                     
(3600/num_public_records));
+                                  GNUNET_TIME_UNIT_SECONDS,
+                                  
(dht_max_update_interval/num_public_records));
     GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
                "Adjusted DHT update interval to %ds!\n",
-               (3600/num_public_records));
+               (dht_max_update_interval/num_public_records));
   }
 
   /* start counting again */
@@ -567,6 +575,7 @@
   char name[MAX_DNS_NAME_LENGTH];
   char* nameptr = name;
 
+
   if (ntohs (message->size) < sizeof (struct GNUNET_GNS_ClientGetAuthMessage))
   {
     GNUNET_break_op (0);
@@ -819,8 +828,20 @@
 
   }
 
+  dht_max_update_interval = GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL;
+
   if (GNUNET_OK ==
       GNUNET_CONFIGURATION_get_value_number (c, "gns",
+                                             "DHT_MAX_UPDATE_INTERVAL",
+                                             &dht_max_update_interval))
+  {
+    GNUNET_log(GNUNET_ERROR_TYPE_INFO,
+               "DHT zone update interval: %d\n",
+               dht_max_update_interval);
+  }
+
+  if (GNUNET_OK ==
+      GNUNET_CONFIGURATION_get_value_number (c, "gns",
                                             "MAX_PARALLEL_BACKGROUND_QUERIES",
                                             &max_parallel_bg_queries))
   {
@@ -854,7 +875,8 @@
    * handle to the dht
    */
   dht_handle = GNUNET_DHT_connect(c,
-                          max_parallel_bg_queries); //FIXME get ht_len from cfg
+                       //max_parallel_bg_queries); //FIXME get ht_len from cfg
+                       1024);
 
   if (NULL == dht_handle)
   {

Modified: gnunet/src/gns/gnunet-service-gns_resolver.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns_resolver.c        2012-04-03 08:46:59 UTC 
(rev 20866)
+++ gnunet/src/gns/gnunet-service-gns_resolver.c        2012-04-03 11:45:16 UTC 
(rev 20867)
@@ -38,7 +38,6 @@
 #include "gns.h"
 #include "gnunet-service-gns_resolver.h"
 
-#define DHT_OPERATION_TIMEOUT  GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_SECONDS, 3)
 #define DHT_LOOKUP_TIMEOUT DHT_OPERATION_TIMEOUT
 #define DHT_GNS_REPLICATION_LEVEL 5
 #define MAX_DNS_LABEL_LENGTH 63

Modified: gnunet/src/gns/gnunet-service-gns_resolver.h
===================================================================
--- gnunet/src/gns/gnunet-service-gns_resolver.h        2012-04-03 08:46:59 UTC 
(rev 20866)
+++ gnunet/src/gns/gnunet-service-gns_resolver.h        2012-04-03 11:45:16 UTC 
(rev 20867)
@@ -4,7 +4,7 @@
 #include "gns.h"
 #include "gnunet_dht_service.h"
 
-#define DHT_OPERATION_TIMEOUT  GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_SECONDS, 3)
+#define DHT_OPERATION_TIMEOUT  GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_SECONDS, 60)
 #define GNUNET_GNS_DEFAULT_LOOKUP_TIMEOUT \
   GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10)
 #define DHT_LOOKUP_TIMEOUT DHT_OPERATION_TIMEOUT

Modified: gnunet/src/gns/plugin_block_gns.c
===================================================================
--- gnunet/src/gns/plugin_block_gns.c   2012-04-03 08:46:59 UTC (rev 20866)
+++ gnunet/src/gns/plugin_block_gns.c   2012-04-03 11:45:16 UTC (rev 20867)
@@ -215,16 +215,22 @@
 {
   if (type != GNUNET_BLOCK_TYPE_GNS_NAMERECORD)
     return GNUNET_SYSERR;
-  GNUNET_HashCode name_hash;
-  GNUNET_HashCode pkey_hash;
+  struct GNUNET_CRYPTO_ShortHashCode name_hash;
+  struct GNUNET_CRYPTO_ShortHashCode pkey_hash;
+  GNUNET_HashCode name_hash_double;
+  GNUNET_HashCode pkey_hash_double;
+
   struct GNSNameRecordBlock *nrb = (struct GNSNameRecordBlock *)block;
 
-  GNUNET_CRYPTO_hash(&nrb[1], strlen((char*)&nrb[1]), &name_hash);
-  GNUNET_CRYPTO_hash(&nrb->public_key,
+  GNUNET_CRYPTO_short_hash(&nrb[1], strlen((char*)&nrb[1]), &name_hash);
+  GNUNET_CRYPTO_short_hash(&nrb->public_key,
                      sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded),
                      &pkey_hash);
+  
+  GNUNET_CRYPTO_short_hash_double(&name_hash, &name_hash_double);
+  GNUNET_CRYPTO_short_hash_double(&pkey_hash, &pkey_hash_double);
 
-  GNUNET_CRYPTO_hash_xor(&name_hash, &pkey_hash, key);
+  GNUNET_CRYPTO_hash_xor(&name_hash_double, &pkey_hash_double, key);
   
   return GNUNET_OK;
 }

Modified: gnunet/src/gns/test_gns_dht_threepeer.c
===================================================================
--- gnunet/src/gns/test_gns_dht_threepeer.c     2012-04-03 08:46:59 UTC (rev 
20866)
+++ gnunet/src/gns/test_gns_dht_threepeer.c     2012-04-03 11:45:16 UTC (rev 
20867)
@@ -43,12 +43,16 @@
 
 /* Timeout for entire testcase */
 #define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 80)
+#define ZONE_PUT_WAIT_TIME 
GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30)
 
 /* If number of peers not in config file, use this number */
 #define DEFAULT_NUM_PEERS 2
 
 #define TEST_DOMAIN "www.buddy.bob.gnunet"
 #define TEST_IP "1.1.1.1"
+#define TEST_DAVE_PSEU "hagbard"
+#define TEST_NUM_PEERS 3
+#define TEST_NUM_CON 3
 
 /* Globals */
 
@@ -101,43 +105,27 @@
 
 int bob_online, alice_online, dave_online;
 
-struct GNUNET_CONFIGURATION_Handle *cfg_alice;
+struct GNUNET_CONFIGURATION_Handle *alice_cfg;
 struct GNUNET_CONFIGURATION_Handle *cfg_bob;
 struct GNUNET_CONFIGURATION_Handle *cfg_dave;
 
-/**
- * Check whether peers successfully shut down.
- */
-void
-shutdown_callback (void *cls, const char *emsg)
-{
-  if (emsg != NULL)
-  {
-    if (ok == 0)
-      ok = 2;
-  }
-}
+struct GNUNET_CRYPTO_ShortHashCode bob_hash;
+struct GNUNET_CRYPTO_ShortHashCode dave_hash;
+struct GNUNET_TESTING_Daemon *alice_daemon;
+struct GNUNET_TESTING_Daemon *bob_daemon;
+struct GNUNET_TESTING_Daemon *dave_daemon;
 
+struct GNUNET_TESTING_PeerGroup *pg;
+struct GNUNET_GNS_Handle *gh;
+
 /**
  * Function scheduled to be run on the successful completion of this
  * testcase.  Specifically, called when our get request completes.
  */
 static void
-finish_testing (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+finish_testing (void *cls, const char *emsg)
 {
-  ok = 0;
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down alice!\n");
-  GNUNET_TESTING_daemon_stop (d1, TIMEOUT, &shutdown_callback, NULL,
-                              GNUNET_YES, GNUNET_NO);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down bob!\n");
-  GNUNET_TESTING_daemon_stop (d2, TIMEOUT, &shutdown_callback, NULL,
-                              GNUNET_YES, GNUNET_NO);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down dave\n");
-  GNUNET_TESTING_daemon_stop (d3, TIMEOUT, &shutdown_callback, NULL,
-                              GNUNET_YES, GNUNET_NO);
-  GNUNET_DISK_file_copy ("testdb/sqlite-alice.db.bak",
-                         "testdb/sqlite-alice.db.bak");
-  GNUNET_SCHEDULER_cancel(die_task);
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Test finished! (ret=%d)\n", ok);
 }
 
 /**
@@ -147,16 +135,7 @@
 static void
 end_badly_cont (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  if (d1 != NULL)
-    GNUNET_TESTING_daemon_stop (d1, TIMEOUT, &shutdown_callback, NULL,
-                                GNUNET_YES, GNUNET_NO);
-  if (d2 != NULL)
-    GNUNET_TESTING_daemon_stop (d2, TIMEOUT, &shutdown_callback, NULL,
-                                GNUNET_YES, GNUNET_NO);
-;
-  if (d3 != NULL)
-    GNUNET_TESTING_daemon_stop (d3, TIMEOUT, &shutdown_callback, NULL,
-                                GNUNET_YES, GNUNET_NO);
+  GNUNET_TESTING_daemons_stop (pg, TIMEOUT, &finish_testing, NULL);
 }
 
 /**
@@ -173,36 +152,61 @@
   ok = 1;
 }
 
+
 static void
-commence_testing(void)
+on_lookup_result(void *cls, uint32_t rd_count,
+                 const struct GNUNET_NAMESTORE_RecordData *rd)
 {
-  struct hostent *he;
-  struct in_addr a;
-  char* addr;
+  int i;
+  char* string_val;
+  const char* typename;
 
-  he = gethostbyname (TEST_DOMAIN);
-
-  if (he)
+  if (rd_count == 0)
   {
-    GNUNET_log(GNUNET_ERROR_TYPE_INFO, "name: %s\n", he->h_name);
-    while (*he->h_addr_list)
+    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++)
     {
-      bcopy(*he->h_addr_list++, (char *) &a, sizeof(a));
-      addr = inet_ntoa(a);
-      GNUNET_log(GNUNET_ERROR_TYPE_INFO, "address: %s\n", addr);
-      if (strcmp(addr, TEST_IP) == 0)
+      typename = GNUNET_NAMESTORE_number_to_typename (rd[i].record_type);
+      string_val = GNUNET_NAMESTORE_value_to_string(rd[i].record_type,
+                                                    rd[i].data,
+                                                    rd[i].data_size);
+      printf("Got %s record: %s\n", typename, string_val);
+      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;
+      }
     }
   }
-  else
-    ok = 1;
-  //do lookup here
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
-                                (GNUNET_TIME_UNIT_SECONDS, 30),
-                                 &finish_testing, NULL);
+  GNUNET_GNS_disconnect(gh);
+  GNUNET_SCHEDULER_cancel(die_task);
+  GNUNET_TESTING_daemons_stop (pg, TIMEOUT, &finish_testing, NULL);
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down!\n");
+
 }
 
+static void
+commence_testing(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  
 
+  gh = GNUNET_GNS_connect(alice_cfg);
+
+  GNUNET_GNS_lookup(gh, TEST_DOMAIN, GNUNET_GNS_RECORD_TYPE_A,
+                    &on_lookup_result, TEST_DOMAIN);
+  die_task =
+    GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, "from lookup");
+}
+
+
 /**
  * This function is called whenever a connection attempt is finished between 
two of
  * the started peers (started with GNUNET_TESTING_daemons_start).  The total
@@ -213,7 +217,7 @@
  * failure (peers failed to connect).
  */
 void
-notify_connect (void *cls, const struct GNUNET_PeerIdentity *first,
+daemon_connected (void *cls, const struct GNUNET_PeerIdentity *first,
                    const struct GNUNET_PeerIdentity *second, uint32_t distance,
                    const struct GNUNET_CONFIGURATION_Handle *first_cfg,
                    const struct GNUNET_CONFIGURATION_Handle *second_cfg,
@@ -248,9 +252,10 @@
                 total_connections);
 #endif
     GNUNET_SCHEDULER_cancel (die_task);
-    die_task =
-        GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, "from connect");
-    commence_testing();
+    //die_task =
+    //    GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, "from connect");
+   
+    //commence_testing();
     
   }
   else if (total_connections + failed_connections == expected_connections)
@@ -260,96 +265,154 @@
         GNUNET_SCHEDULER_add_now (&end_badly,
                                   "from topology_callback (too many failed 
connections)");
   }
-  else
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Connecting peers dave, bob\n");
-    GNUNET_TESTING_daemons_connect (d3, d2, TIMEOUT, 5, 1,
-                                         &notify_connect, NULL);
-  }
 }
 
-/**
- * Set up some data, and call API PUT function
- */
-static void
-connect_ab (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+void
+all_connected(void *cls, const char *emsg)
 {
-  
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Connecting peers alice, bob\n");
-  GNUNET_TESTING_daemons_connect (d1, d2, TIMEOUT, 5, 1,
-                                         &notify_connect, NULL);
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Created all connections!  Starting next phase of testing.\n");
+  GNUNET_SCHEDULER_add_delayed (ZONE_PUT_WAIT_TIME, &commence_testing, NULL);
 }
 
+void
+ns_create_cont(void *cls, int32_t s, const char *emsg)
+{
+  GNUNET_NAMESTORE_disconnect((struct GNUNET_NAMESTORE_Handle *)cls, 0);
+}
 
 static void
-dave_started (void *cls, const struct GNUNET_PeerIdentity *id,
-                        const struct GNUNET_CONFIGURATION_Handle *cfg,
-                        struct GNUNET_TESTING_Daemon *d, const char *emsg)
+daemon_started (void *cls, const struct GNUNET_PeerIdentity *id,
+                const struct GNUNET_CONFIGURATION_Handle *cfg,
+                struct GNUNET_TESTING_Daemon *d, const char *emsg)
 {
-  if (emsg != NULL)
+  struct GNUNET_NAMESTORE_Handle *ns;
+  char* keyfile;
+  struct GNUNET_CRYPTO_RsaPrivateKey *key;
+  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pkey;
+  struct in_addr *web;
+  struct GNUNET_NAMESTORE_RecordData rd;
+
+  rd.flags = GNUNET_NAMESTORE_RF_AUTHORITY | GNUNET_NAMESTORE_RF_NONE;
+  rd.expiration = GNUNET_TIME_UNIT_FOREVER_ABS;
+  
+  if (NULL == dave_daemon)
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Failed to start daemon with error: `%s'\n", emsg);
+    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");
+      ok = -1;
+      return;
+    }
+    dave_daemon = d;
+
+    key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
+
+    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "This is now dave\n");
+    ns = GNUNET_NAMESTORE_connect(cfg);
+    
+    GNUNET_CRYPTO_rsa_key_get_public (key, &pkey);
+    GNUNET_CRYPTO_short_hash(&pkey, sizeof(pkey), &dave_hash);
+    
+    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_GNS_RECORD_TYPE_A;
+
+    GNUNET_NAMESTORE_record_create (ns, key, "www", &rd, NULL, NULL);
+
+    rd.data_size = strlen(TEST_DAVE_PSEU);
+    rd.data = TEST_DAVE_PSEU;
+    rd.record_type = GNUNET_GNS_RECORD_PSEU;
+
+    GNUNET_NAMESTORE_record_create (ns, key, "+", &rd, ns_create_cont, ns);
+
+    GNUNET_CRYPTO_rsa_key_free(key);
+    GNUNET_free(keyfile);
+    GNUNET_free(web);
+
     return;
   }
-  GNUNET_assert (id != NULL);
   
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
-                                (GNUNET_TIME_UNIT_SECONDS, 2),
-                                &connect_ab, NULL);
-}
+  
+  if (NULL == bob_daemon)
+  {
+    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");
+      ok = -1;
+      return;
+    }
+    bob_daemon = d;
 
+    key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
 
+    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "This is now bob\n");
+    ns = GNUNET_NAMESTORE_connect(cfg);
+    
+    GNUNET_CRYPTO_rsa_key_get_public (key, &pkey);
+    GNUNET_CRYPTO_short_hash(&pkey, sizeof(pkey), &bob_hash);
+    
+    rd.data_size = sizeof(struct GNUNET_CRYPTO_ShortHashCode);
+    rd.data = &dave_hash;
+    rd.record_type = GNUNET_GNS_RECORD_PKEY;
 
-static void
-bob_started (void *cls, const struct GNUNET_PeerIdentity *id,
-                        const struct GNUNET_CONFIGURATION_Handle *cfg,
-                        struct GNUNET_TESTING_Daemon *d, const char *emsg)
-{
-  if (emsg != NULL)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Failed to start daemon with error: `%s'\n", emsg);
+    GNUNET_NAMESTORE_record_create (ns, key, "buddy", &rd, ns_create_cont, ns);
+
+    GNUNET_CRYPTO_rsa_key_free(key);
+    GNUNET_free(keyfile);
+
     return;
   }
-  GNUNET_assert (id != NULL);
+
   
-  //Start bob
-  d3 = GNUNET_TESTING_daemon_start(cfg_dave, TIMEOUT, GNUNET_NO, NULL, NULL, 0,
-                                   NULL, NULL, NULL, &dave_started, NULL);
+  
+  if (NULL == alice_daemon)
+  {
 
-}
+    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");
+      ok = -1;
+      return;
+    }
+    alice_daemon = d;
+    alice_cfg = cfg;
 
+    key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
 
+    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "This is now alice\n");
+    ns = GNUNET_NAMESTORE_connect(cfg);
+    
+    rd.data_size = sizeof(struct GNUNET_CRYPTO_ShortHashCode);
+    rd.data = &bob_hash;
+    rd.record_type = GNUNET_GNS_RECORD_PKEY;
 
-/**
- * Callback which is called whenever a peer is started (as a result of the
- * GNUNET_TESTING_daemons_start call.
- *
- * @param cls closure argument given to GNUNET_TESTING_daemons_start
- * @param id the GNUNET_PeerIdentity of the started peer
- * @param cfg the configuration for this specific peer (needed to connect
- *            to the DHT)
- * @param d the handle to the daemon started
- * @param emsg NULL if peer started, non-NULL on error
- */
-static void
-alice_started (void *cls, const struct GNUNET_PeerIdentity *id,
-                        const struct GNUNET_CONFIGURATION_Handle *cfg,
-                        struct GNUNET_TESTING_Daemon *d, const char *emsg)
-{
-  if (emsg != NULL)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Failed to start daemon with error: `%s'\n", emsg);
+    GNUNET_NAMESTORE_record_create (ns, key, "bob", &rd, ns_create_cont, ns);
+
+    GNUNET_CRYPTO_rsa_key_free(key);
+    GNUNET_free(keyfile);
+
+    GNUNET_TESTING_connect_topology (pg, GNUNET_TESTING_TOPOLOGY_CLIQUE,
+                                     GNUNET_TESTING_TOPOLOGY_OPTION_ALL,
+                                     0,
+                                     TIMEOUT,
+                                     3,
+                                     &all_connected, NULL);
     return;
+
   }
-  GNUNET_assert (id != NULL);
+
   
-  //Start bob
-  d2 = GNUNET_TESTING_daemon_start(cfg_bob, TIMEOUT, GNUNET_NO, NULL, NULL, 0,
-                                   NULL, NULL, NULL, &bob_started, NULL);
-  
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "This is a random guy\n");
 }
 
 static void
@@ -366,6 +429,8 @@
     return;
   }
 
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "starting\n");
+
   /* Get number of peers to start from configuration (should be two) */
   if (GNUNET_SYSERR ==
       GNUNET_CONFIGURATION_get_value_number (cfg, "testing", "num_peers",
@@ -375,22 +440,14 @@
   /* Set peers_left so we know when all peers started */
   peers_left = num_peers;
   
-  /**
-   * Modify some config options for peers
-   */
-  cfg_alice = GNUNET_CONFIGURATION_create();
-  GNUNET_CONFIGURATION_load (cfg_alice, "test_gns_dht_alice.conf");
+  bob_daemon = NULL;
+  dave_daemon = NULL;
+  alice_daemon = NULL;
 
-  cfg_bob = GNUNET_CONFIGURATION_create();
-  GNUNET_CONFIGURATION_load (cfg_bob, "test_gns_dht_bob.conf");
+  pg = GNUNET_TESTING_daemons_start (cfg, TEST_NUM_PEERS, TEST_NUM_CON,
+                                TEST_NUM_CON, TIMEOUT, NULL, NULL, 
&daemon_started, NULL,
+                                &daemon_connected, NULL, NULL);
   
-  cfg_dave = GNUNET_CONFIGURATION_create();
-  GNUNET_CONFIGURATION_load (cfg_dave, "test_gns_dht_dave.conf");
-
-  GNUNET_CONFIGURATION_load (cfg_alice, "test_gns_dht_alice.conf");
-  GNUNET_CONFIGURATION_load (cfg_bob, "test_gns_dht_bob.conf");
-  GNUNET_CONFIGURATION_load (cfg_dave, "test_gns_dht_dave.conf");
-
   /* Set up a task to end testing if peer start fails */
   die_task =
       GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
@@ -402,8 +459,8 @@
   expected_connections = 2;
   
   /* Start alice */
-  d1 = GNUNET_TESTING_daemon_start(cfg_alice, TIMEOUT, GNUNET_NO, NULL, NULL, 
0,
-                                   NULL, NULL, NULL, &alice_started, NULL);
+  //d1 = GNUNET_TESTING_daemon_start(cfg_alice, TIMEOUT, GNUNET_NO, NULL, 
NULL, 0,
+  //                                 NULL, NULL, NULL, &alice_started, NULL);
   
   
 
@@ -418,7 +475,7 @@
   /* Arguments for GNUNET_PROGRAM_run */
   char *const argv[] = { "test-gns-twopeer",    /* Name to give running binary 
*/
     "-c",
-    "test_gns_twopeer.conf",       /* Config file to use */
+    "test_gns_dht_default.conf",       /* Config file to use */
 #if VERBOSE
     "-L", "DEBUG",
 #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]