X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fgnunet_gns_service.h;h=73f5db5ac0a81d3252968a478affbbd2e0d1bbb0;hb=211fd52268a5ae7856273dd8d8b3b3ed427beadb;hp=029ef9f5161f0d8ad8d79e296a6bbae8df75e948;hpb=a2116a7a3c697047e60b4f188906aaac3feb01f9;p=oweals%2Fgnunet.git diff --git a/src/include/gnunet_gns_service.h b/src/include/gnunet_gns_service.h index 029ef9f51..73f5db5ac 100644 --- a/src/include/gnunet_gns_service.h +++ b/src/include/gnunet_gns_service.h @@ -22,14 +22,7 @@ * @file include/gnunet_gns_service.h * @brief API to the GNS service * @author Martin Schanzenbach - * - * TODO: - * - decide what goes into storage API and what into GNS-service API - * - decide where to pass/expose/check keys / signatures - * - are GNS private keys per peer or per user? */ - - #ifndef GNUNET_GNS_SERVICE_H #define GNUNET_GNS_SERVICE_H @@ -52,13 +45,19 @@ extern "C" struct GNUNET_GNS_Handle; /** - * Handle to control a get operation. + * Handle to control a lookup operation. */ -struct GNUNET_GNS_LookupHandle; +struct GNUNET_GNS_LookupRequest; /** - * Handle to control a shorten operation + * Handle to control a shorten operation. */ +struct GNUNET_GNS_ShortenRequest; + +/** + * Handle to control a get authority operation + */ +struct GNUNET_GNS_GetAuthRequest; /** * Record types @@ -107,9 +106,12 @@ enum GNUNET_GNS_RecordType /* struct vpn_data */ GNUNET_GNS_RECORD_VPN = GNUNET_NAMESTORE_TYPE_VPN, + + /* revocation */ GNUNET_GNS_RECORD_REV = GNUNET_NAMESTORE_TYPE_REV }; + /** * Initialize the connection with the GNS service. * @@ -137,13 +139,12 @@ GNUNET_GNS_disconnect (struct GNUNET_GNS_Handle *handle); * lookup * * @param cls closure - * @param name "name" of the original lookup * @param rd_count number of records * @param rd the records in reply */ typedef void (*GNUNET_GNS_LookupResultProcessor) (void *cls, - uint32_t rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd); + uint32_t rd_count, + const struct GNUNET_NAMESTORE_RecordData *rd); @@ -161,14 +162,15 @@ typedef void (*GNUNET_GNS_LookupResultProcessor) (void *cls, * * @return handle to the queued request */ -struct GNUNET_GNS_QueueEntry * +struct GNUNET_GNS_LookupRequest* GNUNET_GNS_lookup (struct GNUNET_GNS_Handle *handle, - const char * name, - enum GNUNET_GNS_RecordType type, - int only_cached, - struct GNUNET_CRYPTO_RsaPrivateKey *shorten_key, - GNUNET_GNS_LookupResultProcessor proc, - void *proc_cls); + const char * name, + enum GNUNET_GNS_RecordType type, + int only_cached, + struct GNUNET_CRYPTO_RsaPrivateKey *shorten_key, + GNUNET_GNS_LookupResultProcessor proc, + void *proc_cls); + /** * Perform an asynchronous lookup operation on the GNS @@ -178,22 +180,31 @@ GNUNET_GNS_lookup (struct GNUNET_GNS_Handle *handle, * @param name the name to look up * @param zone the zone to start the resolution in * @param type the GNUNET_GNS_RecordType to look for - * @param only_cached GNUNET_NO to only check locally not DHT for performance + * @param only_cached GNUNET_YES to only check locally not DHT for performance * @param shorten_key the private key of the shorten zone (can be NULL) * @param proc function to call on result * @param proc_cls closure for processor * * @return handle to the queued request */ -struct GNUNET_GNS_QueueEntry * +struct GNUNET_GNS_LookupRequest* GNUNET_GNS_lookup_zone (struct GNUNET_GNS_Handle *handle, - const char * name, - struct GNUNET_CRYPTO_ShortHashCode *zone, - enum GNUNET_GNS_RecordType type, - int only_cached, - struct GNUNET_CRYPTO_RsaPrivateKey *shorten_key, - GNUNET_GNS_LookupResultProcessor proc, - void *proc_cls); + const char * name, + struct GNUNET_CRYPTO_ShortHashCode *zone, + enum GNUNET_GNS_RecordType type, + int only_cached, + struct GNUNET_CRYPTO_RsaPrivateKey *shorten_key, + GNUNET_GNS_LookupResultProcessor proc, + void *proc_cls); + + +/** + * Cancel pending lookup request + * + * @param lr the lookup request to cancel + */ +void +GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr); /* *************** Standard API: shorten ******************* */ @@ -203,10 +214,10 @@ GNUNET_GNS_lookup_zone (struct GNUNET_GNS_Handle *handle, * called only once * * @param cls closure - * @param short_name the shortened name or NULL if no result + * @param short_name the shortened name or NULL if no result / error */ typedef void (*GNUNET_GNS_ShortenResultProcessor) (void *cls, - const char* short_name); + const char* short_name); /** @@ -220,7 +231,7 @@ typedef void (*GNUNET_GNS_ShortenResultProcessor) (void *cls, * @param proc_cls closure for processor * @return handle to the operation */ -struct GNUNET_GNS_QueueEntry * +struct GNUNET_GNS_ShortenRequest* GNUNET_GNS_shorten (struct GNUNET_GNS_Handle *handle, const char * name, struct GNUNET_CRYPTO_ShortHashCode *private_zone, @@ -241,7 +252,7 @@ GNUNET_GNS_shorten (struct GNUNET_GNS_Handle *handle, * @param proc_cls closure for processor * @return handle to the operation */ -struct GNUNET_GNS_QueueEntry * +struct GNUNET_GNS_ShortenRequest* GNUNET_GNS_shorten_zone (struct GNUNET_GNS_Handle *handle, const char * name, struct GNUNET_CRYPTO_ShortHashCode *private_zone, @@ -250,6 +261,16 @@ GNUNET_GNS_shorten_zone (struct GNUNET_GNS_Handle *handle, GNUNET_GNS_ShortenResultProcessor proc, void *proc_cls); + +/** + * Cancel pending shorten request + * + * @param sr the lookup request to cancel + */ +void +GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr); + + /* *************** Standard API: get authority ******************* */ @@ -261,7 +282,7 @@ GNUNET_GNS_shorten_zone (struct GNUNET_GNS_Handle *handle, * @param auth_name the name of the auhtority or NULL */ typedef void (*GNUNET_GNS_GetAuthResultProcessor) (void *cls, - const char* short_name); + const char* short_name); /** @@ -273,11 +294,20 @@ typedef void (*GNUNET_GNS_GetAuthResultProcessor) (void *cls, * @param proc_cls closure for processor * @return handle to the operation */ -struct GNUNET_GNS_QueueEntry * +struct GNUNET_GNS_GetAuthRequest* GNUNET_GNS_get_authority (struct GNUNET_GNS_Handle *handle, - const char * name, - GNUNET_GNS_GetAuthResultProcessor proc, - void *proc_cls); + const char * name, + GNUNET_GNS_GetAuthResultProcessor proc, + void *proc_cls); + + +/** + * Cancel pending get auth request + * + * @param gar the lookup request to cancel + */ +void +GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar); #if 0 /* keep Emacsens' auto-indent happy */ {