GAS_performance_remove_client (struct GNUNET_SERVER_Client *client)
{
struct PerformanceClient *pc;
+
pc = find_client (client);
if (NULL == pc)
return;
GNUNET_CONTAINER_DLL_remove (pc_head, pc_tail, pc);
- GNUNET_SERVER_client_drop (client);
GNUNET_free (pc);
}
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in)
{
struct PerformanceClient *pc;
-
for (pc = pc_head; pc != NULL; pc = pc->next)
if (pc->flag == START_FLAG_PERFORMANCE_WITH_PIC)
{
pc->client = client;
pc->flag = flag;
GNUNET_SERVER_notification_context_add (nc, client);
- GNUNET_SERVER_client_keep (client);
GNUNET_CONTAINER_DLL_insert (pc_head, pc_tail, pc);
/* Send information about clients */
GAS_addresses_iterate_peers (GSA_addresses, &peer_it, pc);
}
+
static void transmit_req_addr (struct AddressIteration *ai,
const struct GNUNET_PeerIdentity *id,
const char *plugin_name,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in)
{
-
struct GNUNET_ATS_Information *atsp;
struct PeerInformationMessage *msg;
char *addrp;
}
}
+
/**
* Handle 'address list request' messages from clients.
*
void
GAS_handle_performance_update (struct GNUNET_PeerIdentity *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ const int active,
struct GNUNET_ATS_Information *ats,
- uint32_t ats_count)
+ uint32_t ats_count,
+ struct GNUNET_BANDWIDTH_Value32NBO
+ bandwidth_out,
+ struct GNUNET_BANDWIDTH_Value32NBO
+ bandwidth_in)
{
/* Notify here */
+ GAS_performance_notify_all_clients (peer,
+ plugin_name,
+ plugin_addr, plugin_addr_len,
+ active,
+ ats, ats_count,
+ bandwidth_out, bandwidth_in);
#if 0
struct PerformanceClient *cur;
"RESERVATION_REQUEST");
amount = (int32_t) ntohl (msg->amount);
res_delay = GAS_reservations_reserve (&msg->peer, amount);
- if (res_delay.rel_value > 0)
+ if (res_delay.rel_value_us > 0)
amount = 0;
result.header.size = htons (sizeof (struct ReservationResultMessage));
result.header.type = htons (GNUNET_MESSAGE_TYPE_ATS_RESERVATION_RESULT);