[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r26502 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r26502 - gnunet/src/ats |
Date: |
Tue, 19 Mar 2013 17:48:38 +0100 |
Author: wachs
Date: 2013-03-19 17:48:38 +0100 (Tue, 19 Mar 2013)
New Revision: 26502
Modified:
gnunet/src/ats/gnunet-service-ats_addresses.c
gnunet/src/ats/gnunet-service-ats_performance.c
Log:
changes
Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c 2013-03-19 16:34:45 UTC
(rev 26501)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c 2013-03-19 16:48:38 UTC
(rev 26502)
@@ -399,39 +399,56 @@
struct ATS_Address *dest)
{
int i;
+ int change = GNUNET_NO;
int res = 0;
for (i = 0; i < ats_count; i++)
switch (ntohl (src[i].type))
{
case GNUNET_ATS_UTILIZATION_UP:
+ if (dest->atsp_utilization_out.value__ != src[i].value)
+ change = GNUNET_YES;
dest->atsp_utilization_out.value__ = src[i].value;
res ++;
break;
case GNUNET_ATS_UTILIZATION_DOWN:
+ if (dest->atsp_utilization_in.value__ != src[i].value)
+ change = GNUNET_YES;
dest->atsp_utilization_in.value__ = src[i].value;
res ++;
break;
case GNUNET_ATS_QUALITY_NET_DELAY:
+ if (dest->atsp_latency.rel_value != src[i].value)
+ change = GNUNET_YES;
dest->atsp_latency.rel_value = ntohl (src[i].value);
res ++;
break;
case GNUNET_ATS_QUALITY_NET_DISTANCE:
+ if (dest->atsp_distance!= src[i].value)
+ change = GNUNET_YES;
dest->atsp_distance = ntohl (src[i].value);
res ++;
break;
case GNUNET_ATS_COST_WAN:
+ if (dest->atsp_cost_wan != src[i].value)
+ change = GNUNET_YES;
dest->atsp_cost_wan = ntohl (src[i].value);
res ++;
break;
case GNUNET_ATS_COST_LAN:
+ if (dest->atsp_cost_lan != src[i].value)
+ change = GNUNET_YES;
dest->atsp_cost_lan = ntohl (src[i].value);
res ++;
break;
case GNUNET_ATS_COST_WLAN:
+ if (dest->atsp_cost_wlan != src[i].value)
+ change = GNUNET_YES;
dest->atsp_cost_wlan = ntohl (src[i].value);
res ++;
break;
case GNUNET_ATS_NETWORK_TYPE:
+ if (dest->atsp_network_type != src[i].value)
+ change = GNUNET_YES;
dest->atsp_network_type = ntohl (src[i].value);
res ++;
break;
@@ -443,6 +460,14 @@
GNUNET_break (0);
break;
}
+ if (GNUNET_YES == change)
+ {
+ struct GNUNET_ATS_Information *destats;
+ int ats_count;
+ ats_count = assemble_ats_information (dest, &destats);
+ GAS_handle_performance_update (&dest->peer, destats, ats_count);
+ GNUNET_free (destats);
+ }
return res;
}
Modified: gnunet/src/ats/gnunet-service-ats_performance.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_performance.c 2013-03-19 16:34:45 UTC
(rev 26501)
+++ gnunet/src/ats/gnunet-service-ats_performance.c 2013-03-19 16:48:38 UTC
(rev 26502)
@@ -532,11 +532,29 @@
struct PerformanceClient *cur;
struct PerformanceMonitorClient *curm;
struct MonitorResponseMessage *mrm;
+ size_t msglen;
+
+
+ msglen = sizeof (struct MonitorResponseMessage) +
+ ats_count * sizeof (struct
GNUNET_ATS_Information);
+ mrm = GNUNET_malloc (msglen);
+
+ mrm->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_MONITOR_RESPONSE);
+ mrm->header.size = htons (msglen);
+ mrm->ats_count = htonl (ats_count);
+ mrm->peer = *peer;
+
for (cur = pc_head; NULL != cur; cur = cur->next)
for (curm = cur->pm_head; NULL != curm; curm = curm->next)
{
/* Notify client about update */
+ mrm->id = curm->id;
+ GNUNET_SERVER_notification_context_unicast (nc,
+ cur->client,
+ (struct GNUNET_MessageHeader *) &mrm,
+ GNUNET_YES);
}
+ GNUNET_free (mrm);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r26502 - gnunet/src/ats,
gnunet <=