From: Christian Grothoff Date: Mon, 10 Oct 2011 11:54:09 +0000 (+0000) Subject: cleaner X-Git-Tag: initial-import-from-subversion-38251~16672 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=78659ecd60209b7bd0e4ed6060bc0e8c33247b37;p=oweals%2Fgnunet.git cleaner --- diff --git a/src/core/gnunet-service-core.h b/src/core/gnunet-service-core.h index 10d2cd534..2d5156efe 100644 --- a/src/core/gnunet-service-core.h +++ b/src/core/gnunet-service-core.h @@ -82,11 +82,6 @@ struct GSC_ClientActiveRequest */ int was_solicited; - /** - * Is corking allowed (set only once we have the real message). - */ - int cork; - /** * How many bytes does the client intend to send? */ diff --git a/src/core/gnunet-service-core_clients.c b/src/core/gnunet-service-core_clients.c index f30a3ba4b..c9eb587b5 100644 --- a/src/core/gnunet-service-core_clients.c +++ b/src/core/gnunet-service-core_clients.c @@ -350,6 +350,25 @@ handle_client_send_request (void *cls, struct GNUNET_SERVER_Client *client, } +/** + * Closure for the 'client_tokenizer_callback'. + */ +struct TokenizerContext +{ + + /** + * Active request handle for the message. + */ + struct GSC_ClientActiveRequest *car; + + /** + * Is corking allowed (set only once we have the real message). + */ + int cork; + +}; + + /** * Handle CORE_SEND request. * @@ -363,7 +382,7 @@ handle_client_send (void *cls, struct GNUNET_SERVER_Client *client, { const struct SendMessage *sm; struct GSC_Client *c; - struct GSC_ClientActiveRequest *car; + struct TokenizerContext tc; uint16_t msize; msize = ntohs (message->size); @@ -385,8 +404,8 @@ handle_client_send (void *cls, struct GNUNET_SERVER_Client *client, GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); return; } - car = GNUNET_CONTAINER_multihashmap_get (c->requests, &sm->peer.hashPubKey); - if (NULL == car) + tc.car = GNUNET_CONTAINER_multihashmap_get (c->requests, &sm->peer.hashPubKey); + if (NULL == tc.car) { /* client did not request transmission first! */ GNUNET_break (0); @@ -396,17 +415,17 @@ handle_client_send (void *cls, struct GNUNET_SERVER_Client *client, GNUNET_assert (GNUNET_YES == GNUNET_CONTAINER_multihashmap_remove (c->requests, &sm->peer.hashPubKey, - car)); - car->cork = ntohl (sm->cork); + tc.car)); + tc.cork = ntohl (sm->cork); GNUNET_SERVER_mst_receive (client_mst, - car, + &tc, (const char*) &sm[1], msize, GNUNET_YES, GNUNET_NO); if (0 != - memcmp (&car->target, &GSC_my_identity, sizeof (struct GNUNET_PeerIdentity))) - GSC_SESSIONS_dequeue_request (car); - GNUNET_free (car); + memcmp (&tc.car->target, &GSC_my_identity, sizeof (struct GNUNET_PeerIdentity))) + GSC_SESSIONS_dequeue_request (tc.car); + GNUNET_free (tc.car); GNUNET_SERVER_receive_done (client, GNUNET_OK); } @@ -425,7 +444,8 @@ static void client_tokenizer_callback (void *cls, void *client, const struct GNUNET_MessageHeader *message) { - struct GSC_ClientActiveRequest *car = client; + struct TokenizerContext *tc = cls; + struct GSC_ClientActiveRequest *car = tc->car; if (0 == memcmp (&car->target, &GSC_my_identity, sizeof (struct GNUNET_PeerIdentity))) @@ -442,7 +462,7 @@ client_tokenizer_callback (void *cls, void *client, GNUNET_CORE_OPTION_SEND_HDR_INBOUND | GNUNET_CORE_OPTION_SEND_HDR_OUTBOUND); } else - GSC_SESSIONS_transmit (car, message, car->cork); + GSC_SESSIONS_transmit (car, message, tc->cork); }