*
*/
#include "platform.h"
-#include "gnunet_testing_lib-new.h"
+#include "gnunet_testing_lib.h"
#include "gnunet_core_service.h"
#include "block_gns.h"
#include "gnunet_signatures.h"
#include "gnunet_dht_service.h"
#include "gnunet_gns_service.h"
-/* DEFINES */
-#define VERBOSE GNUNET_YES
-
/* Timeout for entire testcase */
#define TIMEOUT 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
-
/* test records to resolve */
-#define TEST_DOMAIN "www.alicewonderland.bobbuilder.gnunet"
+#define TEST_DOMAIN "www.alicewonderland.bobbuilder.gads"
#define TEST_IP "127.0.0.1"
#define TEST_RECORD_NAME "www"
#define TEST_AUTHORITY_BOB "bobbuilder"
#define TEST_AUTHORITY_ALICE "alicewonderland"
#define TEST_PSEU_ALICE "carol"
-#define TEST_EXPECTED_RESULT "www.carol.short.private.gnunet"
+#define TEST_EXPECTED_RESULT "www.carol.short.private.gads"
#define DHT_OPERATION_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30)
static struct GNUNET_DHT_Handle *dht_handle;
-const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded alice_pkey;
-struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded bob_pkey;
-struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded our_pkey;
-struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded priv_pkey;
-struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded short_pkey;
-struct GNUNET_CRYPTO_RsaPrivateKey *alice_key;
-struct GNUNET_CRYPTO_RsaPrivateKey *bob_key;
-struct GNUNET_CRYPTO_RsaPrivateKey *our_key;
-struct GNUNET_CRYPTO_RsaPrivateKey *priv_key;
-struct GNUNET_CRYPTO_RsaPrivateKey *short_key;
-struct GNUNET_CRYPTO_ShortHashCode alice_hash;
-struct GNUNET_CRYPTO_ShortHashCode bob_hash;
-struct GNUNET_CRYPTO_ShortHashCode our_zone;
-struct GNUNET_CRYPTO_ShortHashCode priv_zone;
-struct GNUNET_CRYPTO_ShortHashCode short_zone;
+static const struct GNUNET_CONFIGURATION_Handle *cfg;
+
+static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded alice_pkey;
+static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded bob_pkey;
+static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded our_pkey;
+static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded priv_pkey;
+static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded short_pkey;
+static struct GNUNET_CRYPTO_RsaPrivateKey *alice_key;
+static struct GNUNET_CRYPTO_RsaPrivateKey *bob_key;
+static struct GNUNET_CRYPTO_RsaPrivateKey *our_key;
+static struct GNUNET_CRYPTO_RsaPrivateKey *priv_key;
+static struct GNUNET_CRYPTO_RsaPrivateKey *short_key;
+static struct GNUNET_CRYPTO_ShortHashCode alice_hash;
+static struct GNUNET_CRYPTO_ShortHashCode bob_hash;
+static struct GNUNET_CRYPTO_ShortHashCode our_zone;
+static struct GNUNET_CRYPTO_ShortHashCode priv_zone;
+static struct GNUNET_CRYPTO_ShortHashCode short_zone;
/**
ok = 1;
}
+
static void
end_badly_now ()
{
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 ();
+}
+
/**
* Called when gns shorten finishes
*/
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);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "shorten test succeeded!\n");
}
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n");
- GNUNET_SCHEDULER_shutdown ();
+ GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
}
static void
commence_testing (void *cls, int success)
{
-
GNUNET_CRYPTO_rsa_key_free(our_key);
GNUNET_CRYPTO_rsa_key_free(bob_key);
GNUNET_CRYPTO_rsa_key_free(alice_key);
-
GNUNET_NAMESTORE_disconnect (namestore_handle);
namestore_handle = NULL;
-
gns_handle = GNUNET_GNS_connect(cfg);
if (NULL == gns_handle)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to connect to GNS!\n");
}
-
GNUNET_GNS_lookup_zone (gns_handle, TEST_DOMAIN,
&our_zone,
GNUNET_GNS_RECORD_A,
static void
-put_pseu_dht(void *cls, int success)
+put_pseu_dht (void *cls, int success)
{
struct GNSNameRecordBlock *nrb;
struct GNUNET_CRYPTO_ShortHashCode name_hash;
sig = GNUNET_NAMESTORE_create_signature(alice_key,
GNUNET_TIME_UNIT_FOREVER_ABS,
- "+",
+ GNUNET_GNS_MASTERZONE_STR,
&rd, 1);
GNUNET_assert (NULL != sig);
GNUNET_break (GNUNET_OK == GNUNET_NAMESTORE_verify_signature (&alice_pkey,
GNUNET_TIME_UNIT_FOREVER_ABS,
- "+",
+ GNUNET_GNS_MASTERZONE_STR,
1,
&rd,
sig));
rd_payload_length = GNUNET_NAMESTORE_records_get_size (1, &rd);
- nrb = GNUNET_malloc(rd_payload_length + strlen("+") + 1
+ nrb = GNUNET_malloc(rd_payload_length + strlen(GNUNET_GNS_MASTERZONE_STR) + 1
+ sizeof(struct GNSNameRecordBlock));
nrb->signature = *sig;
nrb->public_key = alice_pkey;
nrb->rd_count = htonl(1);
- memset(&nrb[1], 0, strlen("+") + 1);
- strcpy((char*)&nrb[1], "+");
+ memset(&nrb[1], 0, strlen(GNUNET_GNS_MASTERZONE_STR) + 1);
+ strcpy((char*)&nrb[1], GNUNET_GNS_MASTERZONE_STR);
nrb_data = (char*)&nrb[1];
- nrb_data += strlen("+") + 1;
+ nrb_data += strlen(GNUNET_GNS_MASTERZONE_STR) + 1;
if (-1 == GNUNET_NAMESTORE_records_serialize (1,
&rd,
end_badly_now ();
return;
}
- GNUNET_CRYPTO_short_hash("+", strlen("+"), &name_hash);
+ GNUNET_CRYPTO_short_hash(GNUNET_GNS_MASTERZONE_STR, strlen(GNUNET_GNS_MASTERZONE_STR), &name_hash);
GNUNET_CRYPTO_short_hash(&alice_pkey,
sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded),
&zone_hash);
GNUNET_CRYPTO_hash_xor(&zone_hash_double, &name_hash_double, &xor_hash);
rd_payload_length += sizeof(struct GNSNameRecordBlock) +
- strlen("+") + 1;
+ strlen(GNUNET_GNS_MASTERZONE_STR) + 1;
GNUNET_DHT_put (dht_handle, &xor_hash,
0,
- GNUNET_DHT_RO_NONE,
+ GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,
GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
rd_payload_length,
(char*)nrb,
GNUNET_free (nrb);
}
+
static void
put_www_dht(void *cls, int success)
{
GNUNET_DHT_put (dht_handle, &xor_hash,
0,
- GNUNET_DHT_RO_NONE,
+ GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,
GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
rd_payload_length,
(char*)nrb,
strlen(TEST_AUTHORITY_ALICE) + 1;
GNUNET_DHT_put (dht_handle, &xor_hash,
0,
- GNUNET_DHT_RO_NONE,
+ GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,
GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
rd_payload_length,
(char*)nrb,
GNUNET_free (nrb);
}
+
static void
fin_init_zone (void *cls, int32_t success, const char *emsg)
{
NULL);
}
+
static void
do_check (void *cls,
const struct GNUNET_CONFIGURATION_Handle *ccfg,
NULL);
}
+
int
main (int argc, char *argv[])
{
ok = 1;
-
GNUNET_log_setup ("test-gns-pseu-shorten",
-#if VERBOSE
- "DEBUG",
-#else
"WARNING",
-#endif
NULL);
GNUNET_TESTING_peer_run ("test-gns-pseu-shorten", "test_gns_simple_lookup.conf", &do_check, NULL);
return ok;