char new_name[MAX_DNS_NAME_LENGTH];
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: dht lookup for query %s timed out.\n",
+ "GNS_PHASE_DELEGATE_DHT: dht lookup for query %s timed out.\n",
rh->authority_name);
rh->status |= TIMED_OUT;
strcpy(rh->name, new_name);
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Starting background query for %s type %d\n",
+ "GNS_PHASE_DELEGATE_DHT: Starting background query for %s type %d\n",
rh->name, rlh->record_type);
gns_resolver_lookup_record(rh->authority,
/* Prototype */
static void resolve_delegation_ns(struct ResolverHandle *rh);
+
+/**
+ * Namestore resolution for delegation finished. Processing result.
+ *
+ * @param cls the closure
+ * @param rh resolver handle
+ * @param rd_count number of results (always 0)
+ * @param rd record data (always NULL)
+ */
+static void
+handle_delegation_ns(void* cls, struct ResolverHandle *rh,
+ unsigned int rd_count,
+ const struct GNUNET_NAMESTORE_RecordData *rd);
+
+
/**
* Function called when we get a result from the dht
* for our query. Recursively tries to resolve authorities
struct GNUNET_CRYPTO_ShortHashCode zone, name_hash;
GNUNET_HashCode zone_hash_double, name_hash_double;
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "GNS_PHASE_DELEGATE: Got DHT result\n");
+ GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
+ "GNS_PHASE_DELEGATE_DHT: Got DHT result\n");
if (data == NULL)
return;
rd))
{
GNUNET_log(GNUNET_ERROR_TYPE_ERROR,
- "GNS_PHASE_DELEGATE: Error deserializing data!\n");
+ "GNS_PHASE_DELEGATE_DHT: Error deserializing data!\n");
return;
}
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Got name: %s (wanted %s)\n",
+ "GNS_PHASE_DELEGATE_DHT: Got name: %s (wanted %s)\n",
name, rh->authority_name);
for (i=0; i<num_records; i++)
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Got name: %s (wanted %s)\n",
+ "GNS_PHASE_DELEGATE_DHT: Got name: %s (wanted %s)\n",
name, rh->authority_name);
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Got type: %d (wanted %d)\n",
+ "GNS_PHASE_DELEGATE_DHT: Got type: %d (wanted %d)\n",
rd[i].record_type, GNUNET_GNS_RECORD_PKEY);
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Got data length: %d\n",
+ "GNS_PHASE_DELEGATE_DHT: Got data length: %d\n",
rd[i].data_size);
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Got flag %d\n", rd[i].flags);
+ "GNS_PHASE_DELEGATE_DHT: Got flag %d\n", rd[i].flags);
if ((strcmp(name, rh->authority_name) == 0) &&
(rd[i].record_type == GNUNET_GNS_RECORD_PKEY))
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Authority found in DHT\n");
+ "GNS_PHASE_DELEGATE_DHT: Authority found in DHT\n");
rh->answered = 1;
memcpy(&rh->authority, rd[i].data, sizeof(struct GNUNET_CRYPTO_ShortHashCode));
struct AuthorityChain *auth =
* FIXME in this case. should we ask namestore again?
*/
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Answer from DHT for %s to resolve: %s\n",
+ "GNS_PHASE_DELEGATE_DHT: Answer from DHT for %s. Yet to resolve: %s\n",
rh->authority_name, rh->name);
if (strcmp(rh->name, "") == 0)
+ {
rh->proc(rh->proc_cls, rh, 0, NULL);
+ }
else
+ {
+ rh->proc = &handle_delegation_ns;
resolve_delegation_ns(rh);
+ }
return;
}
* promote back
*/
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Adding %s back to %s\n",
+ "GNS_PHASE_DELEGATE_DHT: Adding %s back to %s\n",
rh->authority_name, rh->name);
if (strcmp(rh->name, "") == 0)
strcpy(rh->name, rh->authority_name);
rh->name, rh->authority_name); //FIXME ret
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: %s restored\n", rh->name);
+ "GNS_PHASE_DELEGATE_DHT: %s restored\n", rh->name);
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: DHT authority lookup found no match!\n");
+ "GNS_PHASE_DELEGATE_DHT: DHT authority lookup found no match!\n");
rh->proc(rh->proc_cls, rh, 0, NULL);
}
rh_heap_root->dht_heap_node = NULL;
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Replacing oldest background query for %s\n",
+ "GNS_PHASE_DELEGATE_DHT: Replacing oldest background query for %s\n",
rh_heap_root->authority_name);
rh_heap_root->proc(rh_heap_root->proc_cls,
char new_name[MAX_DNS_NAME_LENGTH];
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Got %d records from authority lookup\n",
+ "GNS_PHASE_DELEGATE_NS: Got %d records from authority lookup\n",
rd_count);
rh = (struct ResolverHandle *)cls;
{
/* simply promote back */
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Promoting %s back to name\n",
+ "GNS_PHASE_DELEGATE_NS: Promoting %s back to name\n",
rh->authority_name);
strcpy(rh->name, rh->authority_name);
}
{
/* add back to existing name */
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Adding %s back to %s\n",
+ "GNS_PHASE_DELEGATE_NS: Adding %s back to %s\n",
rh->authority_name, rh->name);
//memset(new_name, 0, strlen(rh->name) + strlen(rh->authority_name) + 2);
- strcpy(new_name, rh->name);
- strcpy(new_name+strlen(new_name), ".");
- strcpy(new_name+strlen(new_name), rh->authority_name);
+ GNUNET_snprintf(new_name, MAX_DNS_NAME_LENGTH, "%s.%s",
+ rh->name, rh->authority_name);
+ //strcpy(new_name, rh->name);
+ //strcpy(new_name+strlen(new_name), ".");
+ //strcpy(new_name+strlen(new_name), rh->authority_name);
strcpy(rh->name, new_name);
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: %s restored\n", rh->name);
+ "GNS_PHASE_DELEGATE_NS: %s restored\n", rh->name);
}
rh->proc(rh->proc_cls, rh, 0, NULL);
return;
== 0)
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: This pkey is expired.\n");
+ "GNS_PHASE_DELEGATE_NS: This pkey is expired.\n");
if (remaining_time.rel_value == 0)
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: This dht entry is expired.\n");
+ "GNS_PHASE_DELEGATE_NS: This dht entry is expired.\n");
rh->authority_chain_head->fresh = 0;
rh->proc(rh->proc_cls, rh, 0, NULL);
return;
* no answers found
*/
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Authority lookup and but no PKEY... never get here\n");
+ "GNS_PHASE_DELEGATE_NS: Authority lookup and no PKEY...\n");
rh->proc(rh->proc_cls, rh, 0, NULL);
}
resolve_delegation_ns(struct ResolverHandle *rh)
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "GNS_PHASE_DELEGATE: Resolving delegation for %s\n", rh->name);
+ "GNS_PHASE_DELEGATE_NS: Resolving delegation for %s\n", rh->name);
pop_tld(rh->name, rh->authority_name);
GNUNET_NAMESTORE_lookup_record(namestore_handle,
&rh->authority,