#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
* RSL_DELEGATE_NS: Found NS delegation
* RSL_DELEGATE_PKEY: Found PKEY delegation
* RSL_CNAME_FOUND: Found CNAME record
+ * RSL_PKEY_REVOKED: Found PKEY has been revoked
*/
enum ResolutionStatus
{
RSL_DELEGATE_VPN = 8,
RSL_DELEGATE_NS = 16,
RSL_DELEGATE_PKEY = 32,
- RSL_CNAME_FOUND = 64
+ RSL_CNAME_FOUND = 64,
+ RSL_PKEY_REVOKED = 128
};
/**
*/
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;
*/
struct GetPseuAuthorityHandle
{
+ /* DLL */
+ struct GetPseuAuthorityHandle *next;
+
+ /* DLL */
+ struct GetPseuAuthorityHandle *prev;
+
/* the name to store the zone under */
char name[MAX_DNS_LABEL_LENGTH];
/* 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);