/*
This file is part of GNUnet.
- Copyright (C) 2013-2015 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2013-2015 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
/**
* Maximum allowed result value for the scalarproduct computation.
- * DLOG will fail if the result is bigger.
+ * DLOG will fail if the result is bigger. At 1 million, the
+ * precomputation takes about 2s on a fast machine.
*/
#define MAX_RESULT (1024 * 1024)
+/**
+ * How many values should DLOG store in memory (determines baseline
+ * RAM consumption, roughly 100 bytes times the value given here).
+ * Should be about SQRT (MAX_RESULT), larger values will make the
+ * online computation faster.
+ */
+#define MAX_RAM (1024)
+
/**
* An encrypted element key-value pair.
*/
struct ClientResponseMessage *msg;
struct GNUNET_MQ_Envelope *e;
+ if (NULL == session->client_mq)
+ return; /* no client left to be notified */
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Sending session-end notification with status %d to client for session %s\n",
session->status,
ai_bi = GNUNET_CRYPTO_ecc_dlog (edc,
g_ai_bi);
gcry_mpi_point_release (g_ai_bi);
- if (MAX_RESULT == ai_bi)
+ if (INT_MAX == ai_bi)
{
/* result too big */
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
* @param tc unused
*/
static void
-shutdown_task (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Shutting down, initiating cleanup.\n");
};
cfg = c;
- edc = GNUNET_CRYPTO_ecc_dlog_prepare (MAX_RESULT /* max value */,
- 1024 /* RAM */);
+ edc = GNUNET_CRYPTO_ecc_dlog_prepare (MAX_RESULT,
+ MAX_RAM);
/* Select a random 'a' value for Alice */
GNUNET_CRYPTO_ecc_rnd_mpi (edc,
&my_privkey,
GNUNET_SCHEDULER_shutdown ();
return;
}
- GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
- &shutdown_task,
- NULL);
+ GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
+ NULL);
}