From 667d2b263f77a12127efbd0824eeb87b3b10fb61 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 25 May 2019 02:19:26 +0200 Subject: speed up ego creation/deletion --- src/identity/gnunet-identity.c | 7 +- src/identity/identity_api.c | 337 +++++++++++++++-------------------------- 2 files changed, 126 insertions(+), 218 deletions(-) diff --git a/src/identity/gnunet-identity.c b/src/identity/gnunet-identity.c index 635c59efd..e22ac9106 100644 --- a/src/identity/gnunet-identity.c +++ b/src/identity/gnunet-identity.c @@ -327,7 +327,12 @@ run (void *cls, fprintf (stderr, "Option -s requires option -e to be specified as well.\n"); return; } - sh = GNUNET_IDENTITY_connect (cfg, &print_ego, NULL); + sh = GNUNET_IDENTITY_connect (cfg, + (monitor | list) || (NULL != set_ego) || + (NULL != set_subsystem) + ? &print_ego + : NULL, + NULL); if (NULL != delete_ego) delete_op = GNUNET_IDENTITY_delete (sh, delete_ego, &delete_finished, &delete_op); diff --git a/src/identity/identity_api.c b/src/identity/identity_api.c index f16500ab5..6cf1b65ca 100644 --- a/src/identity/identity_api.c +++ b/src/identity/identity_api.c @@ -11,7 +11,7 @@ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . @@ -30,7 +30,7 @@ #include "gnunet_identity_service.h" #include "identity.h" -#define LOG(kind,...) GNUNET_log_from (kind, "identity-api",__VA_ARGS__) +#define LOG(kind, ...) GNUNET_log_from (kind, "identity-api", __VA_ARGS__) /** * Handle for an ego. @@ -102,7 +102,7 @@ struct GNUNET_IDENTITY_Operation * Private key to return to @e create_cont, or NULL. */ struct GNUNET_CRYPTO_EcdsaPrivateKey *pk; - + /** * Continuation to invoke with the result of the transmission for * 'get' operations (@e cont and @a create_cont will be NULL in this case). @@ -113,7 +113,6 @@ struct GNUNET_IDENTITY_Operation * Closure for @e cont or @e cb. */ void *cls; - }; @@ -172,7 +171,6 @@ struct GNUNET_IDENTITY_Handle * Are we polling for incoming messages right now? */ int in_receive; - }; @@ -189,12 +187,10 @@ GNUNET_IDENTITY_ego_get_anonymous () if (NULL != anon.pk) return &anon; - anon.pk = (struct GNUNET_CRYPTO_EcdsaPrivateKey *) GNUNET_CRYPTO_ecdsa_key_get_anonymous (); - GNUNET_CRYPTO_ecdsa_key_get_public (anon.pk, - &pub); - GNUNET_CRYPTO_hash (&pub, - sizeof (pub), - &anon.id); + anon.pk = (struct GNUNET_CRYPTO_EcdsaPrivateKey *) + GNUNET_CRYPTO_ecdsa_key_get_anonymous (); + GNUNET_CRYPTO_ecdsa_key_get_public (anon.pk, &pub); + GNUNET_CRYPTO_hash (&pub, sizeof (pub), &anon.id); return &anon; } @@ -217,24 +213,17 @@ reconnect (void *cls); * @return #GNUNET_OK (continue to iterate) */ static int -free_ego (void *cls, - const struct GNUNET_HashCode *key, - void *value) +free_ego (void *cls, const struct GNUNET_HashCode *key, void *value) { struct GNUNET_IDENTITY_Handle *h = cls; struct GNUNET_IDENTITY_Ego *ego = value; if (NULL != h->cb) - h->cb (h->cb_cls, - ego, - &ego->ctx, - NULL); + h->cb (h->cb_cls, ego, &ego->ctx, NULL); GNUNET_free (ego->pk); GNUNET_free (ego->name); GNUNET_assert (GNUNET_YES == - GNUNET_CONTAINER_multihashmap_remove (h->egos, - key, - value)); + GNUNET_CONTAINER_multihashmap_remove (h->egos, key, value)); GNUNET_free (ego); return GNUNET_OK; } @@ -259,35 +248,24 @@ reschedule_connect (struct GNUNET_IDENTITY_Handle *h) } while (NULL != (op = h->op_head)) { - GNUNET_CONTAINER_DLL_remove (h->op_head, - h->op_tail, - op); + GNUNET_CONTAINER_DLL_remove (h->op_head, h->op_tail, op); if (NULL != op->cont) - op->cont (op->cls, - "Error in communication with the identity service"); + op->cont (op->cls, "Error in communication with the identity service"); else if (NULL != op->cb) - op->cb (op->cls, - NULL, - NULL, - NULL); + op->cb (op->cls, NULL, NULL, NULL); else if (NULL != op->create_cont) op->create_cont (op->cls, - NULL, - "Failed to communicate with the identity service"); + NULL, + "Failed to communicate with the identity service"); GNUNET_free_non_null (op->pk); GNUNET_free (op); } - GNUNET_CONTAINER_multihashmap_iterate (h->egos, - &free_ego, - h); + GNUNET_CONTAINER_multihashmap_iterate (h->egos, &free_ego, h); LOG (GNUNET_ERROR_TYPE_DEBUG, "Scheduling task to reconnect to identity service in %s.\n", - GNUNET_STRINGS_relative_time_to_string (h->reconnect_delay, - GNUNET_YES)); + GNUNET_STRINGS_relative_time_to_string (h->reconnect_delay, GNUNET_YES)); h->reconnect_task = - GNUNET_SCHEDULER_add_delayed (h->reconnect_delay, - &reconnect, - h); + GNUNET_SCHEDULER_add_delayed (h->reconnect_delay, &reconnect, h); h->reconnect_delay = GNUNET_TIME_STD_BACKOFF (h->reconnect_delay); } @@ -301,8 +279,7 @@ reschedule_connect (struct GNUNET_IDENTITY_Handle *h) * @param error error code */ static void -mq_error_handler (void *cls, - enum GNUNET_MQ_Error error) +mq_error_handler (void *cls, enum GNUNET_MQ_Error error) { struct GNUNET_IDENTITY_Handle *h = cls; @@ -319,8 +296,7 @@ mq_error_handler (void *cls, * @return #GNUNET_OK if the message is well-formed */ static int -check_identity_result_code (void *cls, - const struct ResultCodeMessage *rcm) +check_identity_result_code (void *cls, const struct ResultCodeMessage *rcm) { uint16_t size = ntohs (rcm->header.size) - sizeof (*rcm); const char *str = (const char *) &rcm[1]; @@ -343,8 +319,7 @@ check_identity_result_code (void *cls, * @param rcm result message received */ static void -handle_identity_result_code (void *cls, - const struct ResultCodeMessage *rcm) +handle_identity_result_code (void *cls, const struct ResultCodeMessage *rcm) { struct GNUNET_IDENTITY_Handle *h = cls; struct GNUNET_IDENTITY_Operation *op; @@ -358,18 +333,13 @@ handle_identity_result_code (void *cls, reschedule_connect (h); return; } - GNUNET_CONTAINER_DLL_remove (h->op_head, - h->op_tail, - op); + GNUNET_CONTAINER_DLL_remove (h->op_head, h->op_tail, op); if (NULL != op->cont) - op->cont (op->cls, - str); + op->cont (op->cls, str); else if (NULL != op->cb) op->cb (op->cls, NULL, NULL, NULL); else if (NULL != op->create_cont) - op->create_cont (op->cls, - (NULL == str) ? op->pk : NULL, - str); + op->create_cont (op->cls, (NULL == str) ? op->pk : NULL, str); GNUNET_free_non_null (op->pk); GNUNET_free (op); } @@ -383,16 +353,14 @@ handle_identity_result_code (void *cls, * @return #GNUNET_OK if the message is well-formed */ static int -check_identity_update (void *cls, - const struct UpdateMessage *um) +check_identity_update (void *cls, const struct UpdateMessage *um) { uint16_t size = ntohs (um->header.size); uint16_t name_len = ntohs (um->name_len); const char *str = (const char *) &um[1]; - if ( (size != name_len + sizeof (struct UpdateMessage)) || - ( (0 != name_len) && - ('\0' != str[name_len - 1])) ) + if ((size != name_len + sizeof (struct UpdateMessage)) || + ((0 != name_len) && ('\0' != str[name_len - 1]))) { GNUNET_break (0); return GNUNET_SYSERR; @@ -408,8 +376,7 @@ check_identity_update (void *cls, * @param um message received */ static void -handle_identity_update (void *cls, - const struct UpdateMessage *um) +handle_identity_update (void *cls, const struct UpdateMessage *um) { struct GNUNET_IDENTITY_Handle *h = cls; uint16_t name_len = ntohs (um->name_len); @@ -422,19 +389,12 @@ handle_identity_update (void *cls, { /* end of initial list of data */ if (NULL != h->cb) - h->cb (h->cb_cls, - NULL, - NULL, - NULL); + h->cb (h->cb_cls, NULL, NULL, NULL); return; } - GNUNET_CRYPTO_ecdsa_key_get_public (&um->private_key, - &pub); - GNUNET_CRYPTO_hash (&pub, - sizeof (pub), - &id); - ego = GNUNET_CONTAINER_multihashmap_get (h->egos, - &id); + GNUNET_CRYPTO_ecdsa_key_get_public (&um->private_key, &pub); + GNUNET_CRYPTO_hash (&pub, sizeof (pub), &id); + ego = GNUNET_CONTAINER_multihashmap_get (h->egos, &id); if (NULL == ego) { /* ego was created */ @@ -451,18 +411,18 @@ handle_identity_update (void *cls, ego->name = GNUNET_strdup (str); ego->id = id; GNUNET_assert (GNUNET_YES == - GNUNET_CONTAINER_multihashmap_put (h->egos, - &ego->id, - ego, - GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); + GNUNET_CONTAINER_multihashmap_put ( + h->egos, + &ego->id, + ego, + GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); } if (NULL == str) { /* ego was deleted */ - GNUNET_assert (GNUNET_YES == - GNUNET_CONTAINER_multihashmap_remove (h->egos, - &ego->id, - ego)); + GNUNET_assert (GNUNET_YES == GNUNET_CONTAINER_multihashmap_remove (h->egos, + &ego->id, + ego)); } else { @@ -472,10 +432,7 @@ handle_identity_update (void *cls, } /* inform application about change */ if (NULL != h->cb) - h->cb (h->cb_cls, - ego, - &ego->ctx, - str); + h->cb (h->cb_cls, ego, &ego->ctx, str); /* complete deletion */ if (NULL == str) { @@ -495,16 +452,13 @@ handle_identity_update (void *cls, * @return #GNUNET_OK if the message is well-formed */ static int -check_identity_set_default (void *cls, - const struct SetDefaultMessage *sdm) +check_identity_set_default (void *cls, const struct SetDefaultMessage *sdm) { uint16_t size = ntohs (sdm->header.size) - sizeof (*sdm); uint16_t name_len = ntohs (sdm->name_len); const char *str = (const char *) &sdm[1]; - if ( (size != name_len) || - ( (0 != name_len) && - ('\0' != str[name_len - 1]) ) ) + if ((size != name_len) || ((0 != name_len) && ('\0' != str[name_len - 1]))) { GNUNET_break (0); return GNUNET_SYSERR; @@ -522,8 +476,7 @@ check_identity_set_default (void *cls, * @param sdm message received */ static void -handle_identity_set_default (void *cls, - const struct SetDefaultMessage *sdm) +handle_identity_set_default (void *cls, const struct SetDefaultMessage *sdm) { struct GNUNET_IDENTITY_Handle *h = cls; struct GNUNET_IDENTITY_Operation *op; @@ -531,13 +484,9 @@ handle_identity_set_default (void *cls, struct GNUNET_HashCode id; struct GNUNET_IDENTITY_Ego *ego; - GNUNET_CRYPTO_ecdsa_key_get_public (&sdm->private_key, - &pub); - GNUNET_CRYPTO_hash (&pub, - sizeof (pub), - &id); - ego = GNUNET_CONTAINER_multihashmap_get (h->egos, - &id); + GNUNET_CRYPTO_ecdsa_key_get_public (&sdm->private_key, &pub); + GNUNET_CRYPTO_hash (&pub, sizeof (pub), &id); + ego = GNUNET_CONTAINER_multihashmap_get (h->egos, &id); if (NULL == ego) { GNUNET_break (0); @@ -553,14 +502,9 @@ handle_identity_set_default (void *cls, } GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received SET_DEFAULT message from identity service\n"); - GNUNET_CONTAINER_DLL_remove (h->op_head, - h->op_tail, - op); + GNUNET_CONTAINER_DLL_remove (h->op_head, h->op_tail, op); if (NULL != op->cb) - op->cb (op->cls, - ego, - &ego->ctx, - ego->name); + op->cb (op->cls, ego, &ego->ctx, ego->name); GNUNET_free (op); } @@ -574,39 +518,35 @@ static void reconnect (void *cls) { struct GNUNET_IDENTITY_Handle *h = cls; - struct GNUNET_MQ_MessageHandler handlers[] = { - GNUNET_MQ_hd_var_size (identity_result_code, - GNUNET_MESSAGE_TYPE_IDENTITY_RESULT_CODE, - struct ResultCodeMessage, - h), - GNUNET_MQ_hd_var_size (identity_update, - GNUNET_MESSAGE_TYPE_IDENTITY_UPDATE, - struct UpdateMessage, - h), - GNUNET_MQ_hd_var_size (identity_set_default, - GNUNET_MESSAGE_TYPE_IDENTITY_SET_DEFAULT, - struct SetDefaultMessage, - h), - GNUNET_MQ_handler_end () - }; + struct GNUNET_MQ_MessageHandler handlers[] = + {GNUNET_MQ_hd_var_size (identity_result_code, + GNUNET_MESSAGE_TYPE_IDENTITY_RESULT_CODE, + struct ResultCodeMessage, + h), + GNUNET_MQ_hd_var_size (identity_update, + GNUNET_MESSAGE_TYPE_IDENTITY_UPDATE, + struct UpdateMessage, + h), + GNUNET_MQ_hd_var_size (identity_set_default, + GNUNET_MESSAGE_TYPE_IDENTITY_SET_DEFAULT, + struct SetDefaultMessage, + h), + GNUNET_MQ_handler_end ()}; struct GNUNET_MQ_Envelope *env; struct GNUNET_MessageHeader *msg; h->reconnect_task = NULL; - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Connecting to identity service.\n"); + LOG (GNUNET_ERROR_TYPE_DEBUG, "Connecting to identity service.\n"); GNUNET_assert (NULL == h->mq); - h->mq = GNUNET_CLIENT_connect (h->cfg, - "identity", - handlers, - &mq_error_handler, - h); + h->mq = + GNUNET_CLIENT_connect (h->cfg, "identity", handlers, &mq_error_handler, h); if (NULL == h->mq) return; - env = GNUNET_MQ_msg (msg, - GNUNET_MESSAGE_TYPE_IDENTITY_START); - GNUNET_MQ_send (h->mq, - env); + if (NULL != h->cb) + { + env = GNUNET_MQ_msg (msg, GNUNET_MESSAGE_TYPE_IDENTITY_START); + GNUNET_MQ_send (h->mq, env); + } } @@ -620,8 +560,8 @@ reconnect (void *cls) */ struct GNUNET_IDENTITY_Handle * GNUNET_IDENTITY_connect (const struct GNUNET_CONFIGURATION_Handle *cfg, - GNUNET_IDENTITY_Callback cb, - void *cb_cls) + GNUNET_IDENTITY_Callback cb, + void *cb_cls) { struct GNUNET_IDENTITY_Handle *h; @@ -661,10 +601,9 @@ GNUNET_IDENTITY_ego_get_private_key (const struct GNUNET_IDENTITY_Ego *ego) */ void GNUNET_IDENTITY_ego_get_public_key (const struct GNUNET_IDENTITY_Ego *ego, - struct GNUNET_CRYPTO_EcdsaPublicKey *pk) + struct GNUNET_CRYPTO_EcdsaPublicKey *pk) { - GNUNET_CRYPTO_ecdsa_key_get_public (ego->pk, - pk); + GNUNET_CRYPTO_ecdsa_key_get_public (ego->pk, pk); } @@ -680,9 +619,9 @@ GNUNET_IDENTITY_ego_get_public_key (const struct GNUNET_IDENTITY_Ego *ego, */ struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_get (struct GNUNET_IDENTITY_Handle *h, - const char *service_name, - GNUNET_IDENTITY_Callback cb, - void *cb_cls) + const char *service_name, + GNUNET_IDENTITY_Callback cb, + void *cb_cls) { struct GNUNET_IDENTITY_Operation *op; struct GNUNET_MQ_Envelope *env; @@ -701,19 +640,13 @@ GNUNET_IDENTITY_get (struct GNUNET_IDENTITY_Handle *h, op->h = h; op->cb = cb; op->cls = cb_cls; - GNUNET_CONTAINER_DLL_insert_tail (h->op_head, - h->op_tail, - op); - env = GNUNET_MQ_msg_extra (gdm, - slen, - GNUNET_MESSAGE_TYPE_IDENTITY_GET_DEFAULT); + GNUNET_CONTAINER_DLL_insert_tail (h->op_head, h->op_tail, op); + env = + GNUNET_MQ_msg_extra (gdm, slen, GNUNET_MESSAGE_TYPE_IDENTITY_GET_DEFAULT); gdm->name_len = htons (slen); gdm->reserved = htons (0); - GNUNET_memcpy (&gdm[1], - service_name, - slen); - GNUNET_MQ_send (h->mq, - env); + GNUNET_memcpy (&gdm[1], service_name, slen); + GNUNET_MQ_send (h->mq, env); return op; } @@ -730,10 +663,10 @@ GNUNET_IDENTITY_get (struct GNUNET_IDENTITY_Handle *h, */ struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_set (struct GNUNET_IDENTITY_Handle *h, - const char *service_name, - struct GNUNET_IDENTITY_Ego *ego, - GNUNET_IDENTITY_Continuation cont, - void *cont_cls) + const char *service_name, + struct GNUNET_IDENTITY_Ego *ego, + GNUNET_IDENTITY_Continuation cont, + void *cont_cls) { struct GNUNET_IDENTITY_Operation *op; struct GNUNET_MQ_Envelope *env; @@ -752,20 +685,14 @@ GNUNET_IDENTITY_set (struct GNUNET_IDENTITY_Handle *h, op->h = h; op->cont = cont; op->cls = cont_cls; - GNUNET_CONTAINER_DLL_insert_tail (h->op_head, - h->op_tail, - op); - env = GNUNET_MQ_msg_extra (sdm, - slen, - GNUNET_MESSAGE_TYPE_IDENTITY_SET_DEFAULT); + GNUNET_CONTAINER_DLL_insert_tail (h->op_head, h->op_tail, op); + env = + GNUNET_MQ_msg_extra (sdm, slen, GNUNET_MESSAGE_TYPE_IDENTITY_SET_DEFAULT); sdm->name_len = htons (slen); sdm->reserved = htons (0); sdm->private_key = *ego->pk; - GNUNET_memcpy (&sdm[1], - service_name, - slen); - GNUNET_MQ_send (h->mq, - env); + GNUNET_memcpy (&sdm[1], service_name, slen); + GNUNET_MQ_send (h->mq, env); return op; } @@ -781,9 +708,9 @@ GNUNET_IDENTITY_set (struct GNUNET_IDENTITY_Handle *h, */ struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *h, - const char *name, - GNUNET_IDENTITY_CreateContinuation cont, - void *cont_cls) + const char *name, + GNUNET_IDENTITY_CreateContinuation cont, + void *cont_cls) { struct GNUNET_IDENTITY_Operation *op; struct GNUNET_MQ_Envelope *env; @@ -803,22 +730,15 @@ GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *h, op->h = h; op->create_cont = cont; op->cls = cont_cls; - GNUNET_CONTAINER_DLL_insert_tail (h->op_head, - h->op_tail, - op); - env = GNUNET_MQ_msg_extra (crm, - slen, - GNUNET_MESSAGE_TYPE_IDENTITY_CREATE); + GNUNET_CONTAINER_DLL_insert_tail (h->op_head, h->op_tail, op); + env = GNUNET_MQ_msg_extra (crm, slen, GNUNET_MESSAGE_TYPE_IDENTITY_CREATE); crm->name_len = htons (slen); crm->reserved = htons (0); pk = GNUNET_CRYPTO_ecdsa_key_create (); crm->private_key = *pk; op->pk = pk; - GNUNET_memcpy (&crm[1], - name, - slen); - GNUNET_MQ_send (h->mq, - env); + GNUNET_memcpy (&crm[1], name, slen); + GNUNET_MQ_send (h->mq, env); return op; } @@ -835,10 +755,10 @@ GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *h, */ struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_rename (struct GNUNET_IDENTITY_Handle *h, - const char *old_name, - const char *new_name, - GNUNET_IDENTITY_Continuation cb, - void *cb_cls) + const char *old_name, + const char *new_name, + GNUNET_IDENTITY_Continuation cb, + void *cb_cls) { struct GNUNET_IDENTITY_Operation *op; struct GNUNET_MQ_Envelope *env; @@ -851,9 +771,10 @@ GNUNET_IDENTITY_rename (struct GNUNET_IDENTITY_Handle *h, return NULL; slen_old = strlen (old_name) + 1; slen_new = strlen (new_name) + 1; - if ( (slen_old >= GNUNET_MAX_MESSAGE_SIZE) || - (slen_new >= GNUNET_MAX_MESSAGE_SIZE) || - (slen_old + slen_new >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct RenameMessage)) ) + if ((slen_old >= GNUNET_MAX_MESSAGE_SIZE) || + (slen_new >= GNUNET_MAX_MESSAGE_SIZE) || + (slen_old + slen_new >= + GNUNET_MAX_MESSAGE_SIZE - sizeof (struct RenameMessage))) { GNUNET_break (0); return NULL; @@ -862,23 +783,16 @@ GNUNET_IDENTITY_rename (struct GNUNET_IDENTITY_Handle *h, op->h = h; op->cont = cb; op->cls = cb_cls; - GNUNET_CONTAINER_DLL_insert_tail (h->op_head, - h->op_tail, - op); + GNUNET_CONTAINER_DLL_insert_tail (h->op_head, h->op_tail, op); env = GNUNET_MQ_msg_extra (grm, slen_old + slen_new, GNUNET_MESSAGE_TYPE_IDENTITY_RENAME); grm->old_name_len = htons (slen_old); grm->new_name_len = htons (slen_new); dst = (char *) &grm[1]; - GNUNET_memcpy (dst, - old_name, - slen_old); - GNUNET_memcpy (&dst[slen_old], - new_name, - slen_new); - GNUNET_MQ_send (h->mq, - env); + GNUNET_memcpy (dst, old_name, slen_old); + GNUNET_memcpy (&dst[slen_old], new_name, slen_new); + GNUNET_MQ_send (h->mq, env); return op; } @@ -894,9 +808,9 @@ GNUNET_IDENTITY_rename (struct GNUNET_IDENTITY_Handle *h, */ struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_delete (struct GNUNET_IDENTITY_Handle *h, - const char *name, - GNUNET_IDENTITY_Continuation cb, - void *cb_cls) + const char *name, + GNUNET_IDENTITY_Continuation cb, + void *cb_cls) { struct GNUNET_IDENTITY_Operation *op; struct GNUNET_MQ_Envelope *env; @@ -915,19 +829,12 @@ GNUNET_IDENTITY_delete (struct GNUNET_IDENTITY_Handle *h, op->h = h; op->cont = cb; op->cls = cb_cls; - GNUNET_CONTAINER_DLL_insert_tail (h->op_head, - h->op_tail, - op); - env = GNUNET_MQ_msg_extra (gdm, - slen, - GNUNET_MESSAGE_TYPE_IDENTITY_DELETE); + GNUNET_CONTAINER_DLL_insert_tail (h->op_head, h->op_tail, op); + env = GNUNET_MQ_msg_extra (gdm, slen, GNUNET_MESSAGE_TYPE_IDENTITY_DELETE); gdm->name_len = htons (slen); gdm->reserved = htons (0); - GNUNET_memcpy (&gdm[1], - name, - slen); - GNUNET_MQ_send (h->mq, - env); + GNUNET_memcpy (&gdm[1], name, slen); + GNUNET_MQ_send (h->mq, env); return op; } @@ -972,18 +879,14 @@ GNUNET_IDENTITY_disconnect (struct GNUNET_IDENTITY_Handle *h) } if (NULL != h->egos) { - GNUNET_CONTAINER_multihashmap_iterate (h->egos, - &free_ego, - h); + GNUNET_CONTAINER_multihashmap_iterate (h->egos, &free_ego, h); GNUNET_CONTAINER_multihashmap_destroy (h->egos); h->egos = NULL; } while (NULL != (op = h->op_head)) { GNUNET_break (NULL == op->cont); - GNUNET_CONTAINER_DLL_remove (h->op_head, - h->op_tail, - op); + GNUNET_CONTAINER_DLL_remove (h->op_head, h->op_tail, op); GNUNET_free_non_null (op->pk); GNUNET_free (op); } -- cgit v1.2.3