X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fgns%2Fplugin_rest_gns.c;h=1d215b6a495bf81adef75d4d82ec4953e3b0083e;hb=620bdac536dff4b17317d9d20b8a6840836d6490;hp=3cddbc2469a2754ab04266bca1201611669fbe5c;hpb=5dfc382a9f8467cd15b6a0c3a6e022fca9fc4a30;p=oweals%2Fgnunet.git diff --git a/src/gns/plugin_rest_gns.c b/src/gns/plugin_rest_gns.c index 3cddbc246..1d215b6a4 100644 --- a/src/gns/plugin_rest_gns.c +++ b/src/gns/plugin_rest_gns.c @@ -336,10 +336,9 @@ process_lookup_result (void *cls, uint32_t rd_count, * identified by the given public key and the shorten zone. * * @param pkey public key to use for the zone, can be NULL - * @param shorten_key private key used for shortening, can be NULL */ static void -lookup_with_keys (struct LookupHandle *handle, const struct GNUNET_CRYPTO_EcdsaPrivateKey *shorten_key) +lookup_with_public_key (struct LookupHandle *handle) { if (UINT32_MAX == handle->type) { @@ -354,7 +353,6 @@ lookup_with_keys (struct LookupHandle *handle, const struct GNUNET_CRYPTO_EcdsaP &handle->pkey, handle->type, handle->options, - shorten_key, &process_lookup_result, handle); } @@ -365,55 +363,6 @@ lookup_with_keys (struct LookupHandle *handle, const struct GNUNET_CRYPTO_EcdsaP } } -/** - * Method called to with the ego we are to use for shortening - * during the lookup. - * - * @param cls closure contains the public key to use - * @param ego ego handle, NULL if not found - * @param ctx context for application to store data for this ego - * (during the lifetime of this process, initially NULL) - * @param name name assigned by the user for this ego, - * NULL if the user just deleted the ego and it - * must thus no longer be used - */ -static void -identity_shorten_cb (void *cls, - struct GNUNET_IDENTITY_Ego *ego, - void **ctx, - const char *name) -{ - struct LookupHandle *handle = cls; - - handle->id_op = NULL; - if (NULL == ego) - lookup_with_keys (handle, NULL); - else - lookup_with_keys (handle, - GNUNET_IDENTITY_ego_get_private_key (ego)); -} - -/** - * Perform the actual resolution, starting with the zone - * identified by the given public key. - * - * @param pkey public key to use for the zone - */ -static void -lookup_with_public_key (struct LookupHandle *handle) -{ - handle->pkeym = handle->pkey; - GNUNET_break (NULL == handle->id_op); - handle->id_op = GNUNET_IDENTITY_get (handle->identity, - "gns-short", - &identity_shorten_cb, - handle); - if (NULL == handle->id_op) - { - GNUNET_break (0); - lookup_with_keys (handle, NULL); - } -} /** * Method called to with the ego we are to use for the lookup, @@ -444,6 +393,7 @@ identity_zone_cb (void *cls, json_decref(handle->json_root); } + /** * Method called to with the ego we are to use for the lookup, * when the ego is the one for the default master zone. @@ -473,7 +423,8 @@ identity_master_cb (void *cls, GNUNET_SCHEDULER_add_now (&do_error, handle); return; } - GNUNET_IDENTITY_ego_get_public_key (ego, &handle->pkey); + GNUNET_IDENTITY_ego_get_public_key (ego, + &handle->pkey); /* main name is our own master zone, do no look for that in the DHT */ handle->options = GNUNET_GNS_LO_LOCAL_MASTER; /* if the name is of the form 'label.gnu', never go to the DHT */ @@ -515,6 +466,7 @@ parse_url (const char *url, struct LookupHandle *handle) return GNUNET_OK; } + static void get_gns_cont (struct GNUNET_REST_RequestHandle *conndata_handle, const char* url, @@ -579,6 +531,7 @@ get_gns_cont (struct GNUNET_REST_RequestHandle *conndata_handle, { handle->pkey_str = GNUNET_CONTAINER_multihashmap_get (conndata_handle->url_param_map, &key); + GNUNET_assert (NULL != handle->pkey_str); if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_public_key_from_string (handle->pkey_str, strlen(handle->pkey_str), @@ -659,14 +612,19 @@ options_cont (struct GNUNET_REST_RequestHandle *con_handle, * @param data body of the HTTP request (optional) * @param data_size length of the body * @param proc callback function for the result - * @param proc_cls closure for callback function - * @return GNUNET_OK if request accepted + * @param proc_cls closure for @a proc + * @return #GNUNET_OK if request accepted */ static void -rest_gns_process_request(struct GNUNET_REST_RequestHandle *conndata_handle, - GNUNET_REST_ResultProcessor proc, - void *proc_cls) +rest_gns_process_request (struct GNUNET_REST_RequestHandle *conndata_handle, + GNUNET_REST_ResultProcessor proc, + void *proc_cls) { + static const struct GNUNET_REST_RequestHandler handlers[] = { + {MHD_HTTP_METHOD_GET, GNUNET_REST_API_NS_GNS, &get_gns_cont}, + {MHD_HTTP_METHOD_OPTIONS, GNUNET_REST_API_NS_GNS, &options_cont}, + GNUNET_REST_HANDLER_END + }; struct LookupHandle *handle = GNUNET_new (struct LookupHandle); struct GNUNET_REST_RequestHandlerError err; @@ -675,12 +633,6 @@ rest_gns_process_request(struct GNUNET_REST_RequestHandle *conndata_handle, handle->proc = proc; handle->rest_handle = conndata_handle; - static const struct GNUNET_REST_RequestHandler handlers[] = { - {MHD_HTTP_METHOD_GET, GNUNET_REST_API_NS_GNS, &get_gns_cont}, - {MHD_HTTP_METHOD_OPTIONS, GNUNET_REST_API_NS_GNS, &options_cont}, - GNUNET_REST_HANDLER_END - }; - if (GNUNET_NO == GNUNET_JSONAPI_handle_request (conndata_handle, handlers, &err,