/*
This file is part of GNUnet.
- (C) 2012 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2012 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
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.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file namestore/test_namestore_api_lookup_shadow_filter.c
#define TEST_SHADOW_RECORD_DATA 'b'
#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 100)
-#define EXPIRATION GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 2)
+#define EXPIRATION GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
static struct GNUNET_NAMESTORE_Handle *nsh;
static struct GNUNET_NAMECACHE_Handle *nch;
-static GNUNET_SCHEDULER_TaskIdentifier endbadly_task;
+static struct GNUNET_SCHEDULER_Task * endbadly_task;
-static GNUNET_SCHEDULER_TaskIdentifier delayed_lookup_task;
+static struct GNUNET_SCHEDULER_Task * delayed_lookup_task;
static struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey;
static struct GNUNET_CRYPTO_EcdsaPublicKey pubkey;
+static char *directory;
+
static void
cleanup ()
{
* Re-establish the connection to the service.
*
* @param cls handle to use to re-connect.
- * @param tc scheduler context
*/
static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
{
- if (GNUNET_SCHEDULER_NO_TASK != delayed_lookup_task)
+ if (NULL != delayed_lookup_task)
{
GNUNET_SCHEDULER_cancel (delayed_lookup_task);
- delayed_lookup_task = GNUNET_SCHEDULER_NO_TASK;
+ delayed_lookup_task = NULL;
}
if (NULL != nsqe)
{
static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
{
cleanup ();
res = 0;
{
/* Expecting active record */
memset (rd_cmp_data, TEST_RECORD_DATA, TEST_RECORD_DATALEN);
- GNUNET_assert (TEST_RECORD_TYPE == rd[0].record_type);
- GNUNET_assert (TEST_RECORD_DATALEN == rd[0].data_size);
- GNUNET_assert (0 == memcmp (&rd_cmp_data, rd[0].data, TEST_RECORD_DATALEN));
- GNUNET_assert (0 == (GNUNET_GNSRECORD_RF_SHADOW_RECORD & rd[0].flags));
+ if (TEST_RECORD_TYPE != rd[0].record_type)
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
+ if (TEST_RECORD_DATALEN != rd[0].data_size)
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
+ if (0 != memcmp (&rd_cmp_data, rd[0].data, TEST_RECORD_DATALEN))
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
+ if (0 != (GNUNET_GNSRECORD_RF_SHADOW_RECORD & rd[0].flags))
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Block was decrypted successfully with active record\n");
}
{
/* Expecting shadow record but without shadow flag*/
memset (rd_cmp_data, TEST_SHADOW_RECORD_DATA, TEST_RECORD_DATALEN);
- GNUNET_assert (TEST_RECORD_TYPE == rd[0].record_type);
- GNUNET_assert (TEST_RECORD_DATALEN == rd[0].data_size);
- GNUNET_assert (0 == memcmp (&rd_cmp_data, rd[0].data, TEST_RECORD_DATALEN));
- GNUNET_assert (0 == (GNUNET_GNSRECORD_RF_SHADOW_RECORD & rd[0].flags));
+ if (TEST_RECORD_TYPE != rd[0].record_type)
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
+ if (TEST_RECORD_DATALEN != rd[0].data_size)
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
+ if (0 != memcmp (&rd_cmp_data, rd[0].data, TEST_RECORD_DATALEN))
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
+ if (0 != (GNUNET_GNSRECORD_RF_SHADOW_RECORD & rd[0].flags))
+ {
+ GNUNET_SCHEDULER_add_now (&endbadly, NULL);
+ GNUNET_break (0);
+ return;
+ }
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Block was decrypted successfully with former shadow record \n");
GNUNET_SCHEDULER_add_now (&end, NULL );
ncqe = NULL;
ncqe_shadow = NULL;
- if (endbadly_task != GNUNET_SCHEDULER_NO_TASK)
+ if (endbadly_task != NULL)
{
GNUNET_SCHEDULER_cancel (endbadly_task);
- endbadly_task = GNUNET_SCHEDULER_NO_TASK;
+ endbadly_task = NULL;
}
if (NULL == block)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Namestore returned no block\n"));
- if (endbadly_task != GNUNET_SCHEDULER_NO_TASK)
+ if (endbadly_task != NULL)
GNUNET_SCHEDULER_cancel (endbadly_task);
endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
return;
&pubkey, TEST_NAME, &rd_decrypt_cb, expected_rd));
}
+
static void
-name_lookup_shadow (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+name_lookup_shadow (void *cls)
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Performing lookup for shadow record \n");
- delayed_lookup_task = GNUNET_SCHEDULER_NO_TASK;
+ delayed_lookup_task = NULL;
ncqe_shadow = GNUNET_NAMECACHE_lookup_block (nch, &derived_hash,
&name_lookup_active_proc, &records[1]);
}
ncqe = GNUNET_NAMECACHE_lookup_block (nch, &derived_hash,
&name_lookup_active_proc, &records[0]);
- delayed_lookup_task = GNUNET_SCHEDULER_add_delayed (EXPIRATION, &name_lookup_shadow, NULL);
+ delayed_lookup_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (EXPIRATION, 2), &name_lookup_shadow, NULL);
}
{
char *hostkey_file;
+ 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);
GNUNET_asprintf (&hostkey_file,
"test_namestore_api.conf",
&run,
NULL))
- return 1;
+ {
+ res = 1;
+ }
+ if (NULL != directory)
+ {
+ GNUNET_DISK_directory_remove (directory);
+ GNUNET_free (directory);
+ }
return res;
}