*/
char public_key[128];
+ struct GNUNET_CRYPTO_EcdsaPublicKey pub;
+
};
/**
{
struct Request *request = cls;
struct GNUNET_GNSRECORD_Data r;
- struct GNUNET_CRYPTO_EcdsaPublicKey pub;
-
request->qe = NULL;
- if (NULL != name)
+
+ if (0 != rd_count)
{
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
_("Found existing name `%s' for the given key\n"),
run_httpd_now ();
return;
}
- GNUNET_CRYPTO_ecdsa_key_get_public (zone_key,
- &pub);
- r.data = &pub;
- r.data_size = sizeof (pub);
+ if (NULL == zone_key)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Error when mapping zone to name\n"));
+ request->phase = RP_FAIL;
+ run_httpd_now ();
+ return;
+ }
+
+ r.data = &request->pub;
+ r.data_size = sizeof (request->pub);
r.expiration_time = UINT64_MAX;
r.record_type = GNUNET_GNSRECORD_TYPE_PKEY;
r.flags = GNUNET_GNSRECORD_RF_NONE;
const struct GNUNET_GNSRECORD_Data *rd)
{
struct Request *request = cls;
- struct GNUNET_CRYPTO_EcdsaPublicKey pub;
request->qe = NULL;
- if (NULL == label)
+ if (0 == rd_count)
{
- request->zi = NULL;
+
if (GNUNET_OK !=
GNUNET_CRYPTO_ecdsa_public_key_from_string (request->public_key,
strlen (request->public_key),
- &pub))
+ &request->pub))
{
GNUNET_break (0);
request->phase = RP_FAIL;
}
request->qe = GNUNET_NAMESTORE_zone_to_name (ns,
&fcfs_zone_pkey,
- &pub,
+ &request->pub,
&zone_to_name_cb,
request);
return;
}
- if (0 != strcmp (label,
- request->domain_name))
- {
- GNUNET_NAMESTORE_zone_iterator_next (request->zi);
- return;
- }
- GNUNET_NAMESTORE_zone_iteration_stop (request->zi);
- request->zi = NULL;
GNUNET_break (0 != rd_count);
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
_("Found %u existing records for domain `%s'\n"),
request = *ptr;
if (NULL == request)
{
- request = GNUNET_malloc (sizeof (struct Request));
+ request = GNUNET_new (struct Request);
*ptr = request;
request->pp = MHD_create_post_processor (connection, 1024,
&post_iterator, request);
request, connection);
}
request->phase = RP_LOOKUP;
- /* FIXME: would be nice to have a more efficient API for this */
- request->zi = GNUNET_NAMESTORE_zone_iteration_start (ns,
- &fcfs_zone_pkey,
- &lookup_block_processor,
- request);
+ request->qe = GNUNET_NAMESTORE_records_lookup (ns,
+ &fcfs_zone_pkey,
+ request->domain_name,
+ &lookup_block_processor,
+ request);
break;
case RP_LOOKUP:
break;
}
identity = GNUNET_IDENTITY_connect (cfg,
NULL, NULL);
+ if (NULL == identity)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Failed to connect to identity\n"));
+ return;
+ }
id_op = GNUNET_IDENTITY_get (identity, "fcfsd",
&identity_cb, NULL);
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,