X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fats%2Fgnunet-service-ats_performance.c;h=f0986959c4180d689f8cf1ce84a447cdda718b6e;hb=bace3fe85e0dccc59a1d2352e028021e528608b5;hp=585de6669837c7d7d5f60cc841bfc1f1bbe2418d;hpb=f6db768224fa34e874bc8a20019916a64816e92d;p=oweals%2Fgnunet.git diff --git a/src/ats/gnunet-service-ats_performance.c b/src/ats/gnunet-service-ats_performance.c index 585de6669..f0986959c 100644 --- a/src/ats/gnunet-service-ats_performance.c +++ b/src/ats/gnunet-service-ats_performance.c @@ -124,11 +124,11 @@ void 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); } @@ -225,7 +225,6 @@ GAS_performance_notify_all_clients (const struct GNUNET_PeerIdentity *peer, 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) { @@ -314,13 +313,13 @@ GAS_performance_add_client (struct GNUNET_SERVER_Client *client, 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, @@ -333,7 +332,6 @@ static void transmit_req_addr (struct AddressIteration *ai, struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in) { - struct GNUNET_ATS_Information *atsp; struct PeerInformationMessage *msg; char *addrp; @@ -455,6 +453,7 @@ req_addr_peer_it (void *cls, } } + /** * Handle 'address list request' messages from clients. * @@ -505,10 +504,24 @@ GAS_handle_request_address_list (void *cls, struct GNUNET_SERVER_Client *client, 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; @@ -569,7 +582,7 @@ GAS_handle_reservation_request (void *cls, struct GNUNET_SERVER_Client *client, "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);