/*
This file is part of GNUnet.
- Copyright (C) 2011-2015 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2011-2015 GNUnet e.V.
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ 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 <http://www.gnu.org/licenses/>.
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
/**
* Client that made the request.
*/
- struct GNUNET_SERVER_Client *client;
+ struct GNUNET_SERVICE_Client *client;
/* TODO: allow client to express a 'strength' for this request */
};
/**
* Handle #GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS messages from clients.
*
- * @param cls unused, NULL
* @param client client that sent the request
* @param message the request message
*/
void
-GAS_handle_request_address (void *cls,
- struct GNUNET_SERVER_Client *client,
- const struct GNUNET_MessageHeader *message)
+GAS_handle_request_address (struct GNUNET_SERVICE_Client *client,
+ const struct RequestAddressMessage *msg)
{
- const struct RequestAddressMessage *msg =
- (const struct RequestAddressMessage *) message;
struct ConnectionRequest *cr;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
cr,
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
GAS_plugin_request_connect_start (&msg->peer);
- GNUNET_SERVER_receive_done (client, GNUNET_OK);
}
const struct GNUNET_PeerIdentity *pid,
void *value)
{
- struct GNUNET_SERVER_Client *client = cls;
+ struct GNUNET_SERVICE_Client *client = cls;
struct ConnectionRequest *cr = value;
if (cr->client == client)
* Handle #GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL messages
* from clients.
*
- * @param cls unused, NULL
- * @param client client that sent the request
- * @param message the request message
+ * @param client the client that sent the request
+ * @param msg the request message
*/
void
-GAS_handle_request_address_cancel (void *cls,
- struct GNUNET_SERVER_Client *client,
- const struct GNUNET_MessageHeader *message)
+GAS_handle_request_address_cancel (struct GNUNET_SERVICE_Client *client,
+ const struct RequestAddressMessage *msg)
{
- const struct RequestAddressMessage *msg =
- (const struct RequestAddressMessage *) message;
-
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL message for peer %s\n",
GNUNET_i2s (&msg->peer));
&msg->peer,
&free_matching_requests,
client);
- GNUNET_SERVER_receive_done (client, GNUNET_OK);
}
* @param client handle of the (now dead) client
*/
void
-GAS_connectivity_remove_client (struct GNUNET_SERVER_Client *client)
+GAS_connectivity_remove_client (struct GNUNET_SERVICE_Client *client)
{
GNUNET_CONTAINER_multipeermap_iterate (connection_requests,
&free_matching_requests,
void
GAS_connectivity_init ()
{
- connection_requests = GNUNET_CONTAINER_multipeermap_create (32, GNUNET_NO);
+ connection_requests
+ = GNUNET_CONTAINER_multipeermap_create (32,
+ GNUNET_NO);
}
void
GAS_connectivity_done ()
{
+ GAS_plugin_solver_lock ();
GNUNET_CONTAINER_multipeermap_iterate (connection_requests,
&free_request,
NULL);
+ GAS_plugin_solver_unlock ();
GNUNET_CONTAINER_multipeermap_destroy (connection_requests);
connection_requests = NULL;
}