#define DHT_GNS_REPLICATION_LEVEL 5
#define GNUNET_GNS_MAX_PARALLEL_LOOKUPS 500
+#define GNUNET_GNS_MAX_NS_TASKS 500
/*
* DLL to hold the authority chain
*/
struct ResolverHandle
{
+
+ /* DLL */
+ struct ResolverHandle *next;
+
+ /* DLL */
+ struct ResolverHandle *prev;
+
+ /* Last record data found */
+ struct GNUNET_NAMESTORE_RecordData rd;
+
+ /* Number of last record data found */
+ unsigned int rd_count;
+
/* The name to resolve */
char name[MAX_DNS_NAME_LENGTH];
*/
unsigned long long id;
+ /**
+ * Pending Namestore task
+ */
+ struct GNUNET_NAMESTORE_QueueEntry *namestore_task;
+
};
{
/* the name to look up authority for */
char name[MAX_DNS_NAME_LENGTH];
+
+ /* the result */
+ char result[MAX_DNS_NAME_LENGTH];
/* Method to call on result */
GetAuthorityResultProcessor proc;
/* timeout task for lookup */
GNUNET_SCHEDULER_TaskIdentifier timeout;
- /* Head of the authority list */
- struct AuthorityChain *ahead;
+ /* Authority to shorten */
+ struct AuthorityChain *auth;
+
+ /* handle to namestore request */
+ struct GNUNET_NAMESTORE_QueueEntry* namestore_task;
+};
+
+/**
+ * Namestore queue entries in background
+ */
+struct NamestoreBGTask
+{
+ /* node in heap */
+ struct GNUNET_CONTAINER_HeapNode *node;
+
+ /* queue entry */
+ struct GNUNET_NAMESTORE_QueueEntry *qe;
};
/**
* @param nh handle to the namestore
* @param dh handle to the dht
* @param lz the local zone
- * @param cfg configuration handle
+ * @param c configuration handle
* @param max_bg_queries maximum amount of background queries
* @param ignore_pending ignore records that still require user confirmation
* on lookup
gns_resolver_init(struct GNUNET_NAMESTORE_Handle *nh,
struct GNUNET_DHT_Handle *dh,
struct GNUNET_CRYPTO_ShortHashCode lz,
- const struct GNUNET_CONFIGURATION_Handle *cfg,
+ const struct GNUNET_CONFIGURATION_Handle *c,
unsigned long long max_bg_queries,
int ignore_pending);