ats service, interaction with 'connecivity' API More...
#include "platform.h"
#include "gnunet-service-ats.h"
#include "gnunet-service-ats_addresses.h"
#include "gnunet-service-ats_connectivity.h"
#include "gnunet-service-ats_plugins.h"
#include "ats.h"
Go to the source code of this file.
Data Structures | |
struct | ConnectionRequest |
Active connection requests. More... | |
Functions | |
unsigned int | GAS_connectivity_has_peer (void *cls, const struct GNUNET_PeerIdentity *peer) |
Is the given peer in the list of peers for which we have an address request? More... | |
void | GAS_handle_request_address (struct GNUNET_SERVICE_Client *client, const struct RequestAddressMessage *msg) |
Handle GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS messages from clients. More... | |
static int | free_matching_requests (void *cls, const struct GNUNET_PeerIdentity *pid, void *value) |
Free the connection request from the map if the closure matches the client. More... | |
void | GAS_handle_request_address_cancel (struct GNUNET_SERVICE_Client *client, const struct RequestAddressMessage *msg) |
Handle GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL messages from clients. More... | |
void | GAS_connectivity_remove_client (struct GNUNET_SERVICE_Client *client) |
Unregister a client (which may have been a connectivity client, but this is not assured). More... | |
void | GAS_connectivity_init () |
Shutdown connectivity subsystem. More... | |
static int | free_request (void *cls, const struct GNUNET_PeerIdentity *pid, void *value) |
Free the connection request from the map. More... | |
void | GAS_connectivity_done () |
Shutdown connectivity subsystem. More... | |
Variables | |
static struct GNUNET_CONTAINER_MultiPeerMap * | connection_requests |
Address suggestion requests by peer. More... | |
ats service, interaction with 'connecivity' API
Definition in file gnunet-service-ats_connectivity.c.
unsigned int GAS_connectivity_has_peer | ( | void * | cls, |
const struct GNUNET_PeerIdentity * | peer | ||
) |
Is the given peer in the list of peers for which we have an address request?
cls | unused, NULL |
peer | peer to query for |
Definition at line 64 of file gnunet-service-ats_connectivity.c.
References connection_requests, GNUNET_CONTAINER_multipeermap_contains(), and peer.
Referenced by GAS_plugin_init().
void GAS_handle_request_address | ( | struct GNUNET_SERVICE_Client * | client, |
const struct RequestAddressMessage * | msg | ||
) |
Handle GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS messages from clients.
Handle 'request address' messages from clients.
client | client that sent the request |
msg | the request message |
Definition at line 82 of file gnunet-service-ats_connectivity.c.
References ConnectionRequest::client, connection_requests, GAS_plugin_request_connect_start(), GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE, GNUNET_CONTAINER_multipeermap_put(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_new, and msg.
Referenced by handle_request_address().
|
static |
Free the connection request from the map if the closure matches the client.
cls | the client to match |
pid | peer for which the request was made |
value | the struct ConnectionRequest |
Definition at line 111 of file gnunet-service-ats_connectivity.c.
References ConnectionRequest::client, connection_requests, GAS_plugin_request_connect_stop(), GNUNET_assert, GNUNET_CONTAINER_multipeermap_remove(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_i2s(), GNUNET_log, GNUNET_OK, GNUNET_YES, pid, and value.
Referenced by free_request(), GAS_connectivity_remove_client(), and GAS_handle_request_address_cancel().
void GAS_handle_request_address_cancel | ( | struct GNUNET_SERVICE_Client * | client, |
const struct RequestAddressMessage * | msg | ||
) |
Handle GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL messages from clients.
Cancel 'request address' messages from clients.
client | the client that sent the request |
msg | the request message |
Definition at line 142 of file gnunet-service-ats_connectivity.c.
References ConnectionRequest::client, connection_requests, free_matching_requests(), GNUNET_break, GNUNET_CONTAINER_multipeermap_get_multiple(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, and msg.
Referenced by handle_request_address_cancel().
void GAS_connectivity_remove_client | ( | struct GNUNET_SERVICE_Client * | client | ) |
Unregister a client (which may have been a connectivity client, but this is not assured).
client | handle of the (now dead) client |
Definition at line 163 of file gnunet-service-ats_connectivity.c.
References ConnectionRequest::client, connection_requests, free_matching_requests(), and GNUNET_CONTAINER_multipeermap_iterate().
Referenced by client_disconnect_cb().
void GAS_connectivity_init | ( | void | ) |
Shutdown connectivity subsystem.
Initialize connectivity subsystem.
Definition at line 176 of file gnunet-service-ats_connectivity.c.
References connection_requests, GNUNET_CONTAINER_multipeermap_create(), and GNUNET_NO.
Referenced by run().
|
static |
Free the connection request from the map.
cls | NULL |
pid | peer for which the request was made |
value | the struct ConnectionRequest |
Definition at line 193 of file gnunet-service-ats_connectivity.c.
References ConnectionRequest::client, free_matching_requests(), GNUNET_OK, pid, and value.
Referenced by GAS_connectivity_done().
void GAS_connectivity_done | ( | void | ) |
Shutdown connectivity subsystem.
Definition at line 210 of file gnunet-service-ats_connectivity.c.
References connection_requests, free_request(), GAS_plugin_solver_lock(), GAS_plugin_solver_unlock(), GNUNET_CONTAINER_multipeermap_destroy(), and GNUNET_CONTAINER_multipeermap_iterate().
Referenced by cleanup_task(), and run().
|
static |
Address suggestion requests by peer.
Definition at line 52 of file gnunet-service-ats_connectivity.c.
Referenced by free_matching_requests(), GAS_connectivity_done(), GAS_connectivity_has_peer(), GAS_connectivity_init(), GAS_connectivity_remove_client(), GAS_handle_request_address(), and GAS_handle_request_address_cancel().