#include "gnunet_dnsparser_lib.h"
#include "gnunet_gns_service.h"
-#define ZONE_PUT_WAIT_TIME GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30)
+#define ZONE_PUT_WAIT_TIME GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 10)
/* If number of peers not in config file, use this number */
#define DEFAULT_NUM_PEERS 2
/* Timeout for entire testcase */
-#define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_MINUTES, 5)
+#define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30)
/* Global return value (0 for success, anything else for failure) */
static int ok;
struct GNUNET_TESTBED_Peer **cpeers;
struct GNUNET_GNS_Handle *gh;
+struct GNUNET_GNS_LookupRequest *lookup_handle;
struct GNUNET_TESTBED_Operation *get_cfg_ops[3];
struct GNUNET_TESTBED_Operation *connect_ops[3];
struct GNUNET_CONFIGURATION_Handle *cfg_handles[3];
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
GNUNET_NAMESTORE_disconnect(nh[c]);
nh[c] = NULL;
}
+
if (NULL != get_cfg_ops[c])
{
GNUNET_TESTBED_operation_cancel(get_cfg_ops[c]);
cfg_handles[c] = 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_GNS_disconnect(gh);
+ gh = NULL;
}
-
+
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Test failed \n");
GNUNET_break (0);
GNUNET_SCHEDULER_shutdown ();
}
}
+ if (NULL != gh)
+ {
+ GNUNET_GNS_disconnect(gh);
+ gh = NULL;
+ }
+
if (0 == ok)
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Test ended successful\n");
else
}
}
}
- GNUNET_GNS_disconnect(gh);
- gh = NULL;
end_now ();
}
{
fprintf (stderr, "\n");
wait_task = GNUNET_SCHEDULER_NO_TASK;
- GNUNET_GNS_lookup(gh, TEST_DOMAIN, GNUNET_GNS_RECORD_A,
+ lookup_handle = GNUNET_GNS_lookup(gh, TEST_DOMAIN, GNUNET_GNS_RECORD_A,
GNUNET_NO,
NULL,
&on_lookup_result, TEST_DOMAIN);
setup_dave (const struct GNUNET_CONFIGURATION_Handle * cfg)
{
char* keyfile;
- char* source;
struct GNUNET_CRYPTO_RsaPrivateKey *key;
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded 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_handles[0], "gns",
+ GNUNET_assert (NULL != cfg);
+ if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
"ZONEKEY",
&keyfile))
{
return GNUNET_SYSERR;
}
- GNUNET_asprintf (&source, "zonefiles%s%s", DIR_SEPARATOR_STR, "test_zonekey");
- if (GNUNET_OK == GNUNET_DISK_file_test (source))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Copy `%s' to `%s'\n", source, keyfile);
- GNUNET_DISK_file_copy (source, keyfile);
- }
- else
- GNUNET_break (0);
- GNUNET_free (source);
-
key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
if (NULL == key)
{
GNUNET_CRYPTO_rsa_key_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;
}
setup_bob (const struct GNUNET_CONFIGURATION_Handle * cfg)
{
char* keyfile;
- char* source;
struct GNUNET_CRYPTO_RsaPrivateKey *key;
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pkey;
struct GNUNET_NAMESTORE_RecordData rd;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up bob\n");
GNUNET_assert (NULL != cfg);
- cfg_handles[1] = GNUNET_CONFIGURATION_dup (cfg);
- if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg_handles[1], "gns",
+ if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
"ZONEKEY",
&keyfile))
{
return GNUNET_SYSERR;
}
- GNUNET_asprintf (&source, "zonefiles%s%s", DIR_SEPARATOR_STR, "OEFL7A4VEF1B40QLEMTG5D8G1CN6EN16QUSG5R2DT71GRJN34LSG.zkey");
- if (GNUNET_OK == GNUNET_DISK_file_test (source))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Copy `%s' to `%s'\n", source, keyfile);
- GNUNET_DISK_file_copy (source, keyfile);
- }
- else
- GNUNET_break (0);
- GNUNET_free (source);
-
-
key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
if (NULL == key)
{
return GNUNET_SYSERR;
}
- nh[1] = GNUNET_NAMESTORE_connect (cfg_handles[1]);
+ nh[1] = GNUNET_NAMESTORE_connect (cfg);
if (NULL == nh[1])
{
GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to namestore\n");
GNUNET_free (keyfile);
return GNUNET_SYSERR;
}
-
+
GNUNET_CRYPTO_rsa_key_get_public (key, &pkey);
GNUNET_CRYPTO_short_hash(&pkey, sizeof(pkey), &bob_hash);
GNUNET_CRYPTO_rsa_key_free(key);
GNUNET_free(keyfile);
+ bob_is_setup = GNUNET_YES;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up bob done\n");
return GNUNET_OK;
}
setup_alice (const struct GNUNET_CONFIGURATION_Handle * cfg)
{
char* keyfile;
- char* source;
struct GNUNET_CRYPTO_RsaPrivateKey *key;
struct GNUNET_NAMESTORE_RecordData rd;
GNUNET_assert (NULL != cfg);
- cfg_handles[2] = GNUNET_CONFIGURATION_dup (cfg);
- if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg_handles[2], "gns",
+ if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
"ZONEKEY",
&keyfile))
{
return GNUNET_SYSERR;
}
- GNUNET_asprintf (&source, "zonefiles%s%s", DIR_SEPARATOR_STR, "188JSUMKEF25GVU8TTV0PBNNN8JVCPUEDFV1UHJJU884JD25V0T0.zkey");
- if (GNUNET_OK == GNUNET_DISK_file_test (source))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Copy `%s' to `%s'\n", source, keyfile);
- GNUNET_DISK_file_copy (source, keyfile);
- }
- else
- GNUNET_break (0);
- GNUNET_free (source);
-
key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
if (NULL == key)
{
GNUNET_NAMESTORE_record_create (nh[2], key, "bob", &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 namestore\n");
+ GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to gns\n");
GNUNET_CRYPTO_rsa_key_free (key);
GNUNET_free (keyfile);
return GNUNET_SYSERR;
GNUNET_CRYPTO_rsa_key_free (key);
GNUNET_free (keyfile);
+ alice_is_setup = GNUNET_YES;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting up alice done\n");
return GNUNET_OK;
}
{
int res;
- if (get_cfg_ops[0] == op)
+ 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);
+
+ 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);
{
connect_peers ();
}
- }
+ }*/
}