[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25001 - in gnunet/src: ats-tool include
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25001 - in gnunet/src: ats-tool include |
Date: |
Fri, 16 Nov 2012 15:11:07 +0100 |
Author: wachs
Date: 2012-11-16 15:11:07 +0100 (Fri, 16 Nov 2012)
New Revision: 25001
Modified:
gnunet/src/ats-tool/gnunet-ats.c
gnunet/src/include/gnunet_ats_service.h
Log:
print ats properties
Modified: gnunet/src/ats-tool/gnunet-ats.c
===================================================================
--- gnunet/src/ats-tool/gnunet-ats.c 2012-11-16 13:55:04 UTC (rev 25000)
+++ gnunet/src/ats-tool/gnunet-ats.c 2012-11-16 14:11:07 UTC (rev 25001)
@@ -75,17 +75,49 @@
struct PendingResolutions * pr = cls;
char *ats_str;
char *ats_tmp;
+ char *ats_prop_arr[GNUNET_ATS_PropertyCount] = GNUNET_ATS_PropertyStrings;
+ char *ats_net_arr[GNUNET_ATS_NetworkTypeCount] =
GNUNET_ATS_NetworkTypeString;
+ char *ats_prop_value;
unsigned int c;
+ uint32_t ats_type;
+ uint32_t ats_value;
+
if (NULL != address)
{
ats_str = GNUNET_strdup("");
for (c = 0; c < pr->ats_count; c++)
{
ats_tmp = ats_str;
- GNUNET_asprintf (&ats_str, "%s%u %u ", ats_tmp,
ntohl(pr->ats[c].type), ntohl(pr->ats[c].value));
+
+ ats_type = ntohl(pr->ats[c].type);
+ ats_value = ntohl(pr->ats[c].value);
+
+ if (ats_type > GNUNET_ATS_PropertyCount)
+ {
+ GNUNET_break (0);
+ continue;
+ }
+
+ switch (ats_type) {
+ case GNUNET_ATS_NETWORK_TYPE:
+ if (ats_value > GNUNET_ATS_NetworkTypeCount)
+ {
+ GNUNET_break (0);
+ continue;
+ }
+ GNUNET_asprintf (&ats_prop_value, "%s", ats_net_arr[ats_value]);
+ break;
+ default:
+ GNUNET_asprintf (&ats_prop_value, "%u", ats_value);
+ break;
+ }
+
+ GNUNET_asprintf (&ats_str, "%s%s=%s, ", ats_tmp,
ats_prop_arr[ats_type] , ats_prop_value);
GNUNET_free (ats_tmp);
+ GNUNET_free (ats_prop_value);
}
+
fprintf (stderr, _("Peer `%s' plugin `%s', address `%s', bw out: %u
Bytes/s, bw in %u Bytes/s, %s\n"),
GNUNET_i2s (&pr->address->peer), pr->address->transport_name, address,
ntohl (pr->bandwidth_out.value__), ntohl
(pr->bandwidth_in.value__),ats_str);
Modified: gnunet/src/include/gnunet_ats_service.h
===================================================================
--- gnunet/src/include/gnunet_ats_service.h 2012-11-16 13:55:04 UTC (rev
25000)
+++ gnunet/src/include/gnunet_ats_service.h 2012-11-16 14:11:07 UTC (rev
25001)
@@ -30,7 +30,21 @@
#include "gnunet_util_lib.h"
#include "gnunet_hello_lib.h"
+/**
+ * Number of network types supported by ATS
+ */
+#define GNUNET_ATS_NetworkTypeCount 5
+/**
+ * ATS network types as array initializer
+ */
+#define GNUNET_ATS_NetworkType {GNUNET_ATS_NET_UNSPECIFIED,
GNUNET_ATS_NET_LOOPBACK, GNUNET_ATS_NET_LAN, GNUNET_ATS_NET_WAN,
GNUNET_ATS_NET_WLAN}
+
+/**
+ * ATS network types as string array initializer
+ */
+#define GNUNET_ATS_NetworkTypeString {"UNSPECIFIED", "LOOPBACK", "LAN", "WAN",
"WLAN"}
+
enum GNUNET_ATS_Network_Type
{
GNUNET_ATS_NET_UNSPECIFIED = 0,
@@ -40,7 +54,19 @@
GNUNET_ATS_NET_WLAN = 4,
};
+
+
/**
+ * Number of property types supported by ATS
+ */
+#define GNUNET_ATS_PropertyCount 9
+
+/**
+ * ATS properties types as string array initializer
+ */
+#define GNUNET_ATS_PropertyStrings {"Terminator", "Utilization up",
"Utilization down", "Network type", "Delay", "Distance", "Cost WAN", "Cost
LAN", "Cost WLAN"}
+
+/**
* Enum defining all known property types for ATS Enum values are used
* in the GNUNET_ATS_Information struct as
* (key,value)-pairs.
@@ -413,14 +439,10 @@
#define GNUNET_ATS_QualityProperties {GNUNET_ATS_QUALITY_NET_DELAY,
GNUNET_ATS_QUALITY_NET_DISTANCE}
/**
- * Number of ATS quality properties
+ * ATS quality properties as string array initializer
*/
-#define GNUNET_ATS_NetworkTypeCount 5
+#define GNUNET_ATS_QualityPropertiesString {"Delay", "Distance"}
-/**
- * ATS quality properties as array initializer
- */
-#define GNUNET_ATS_NetworkType {GNUNET_ATS_NET_UNSPECIFIED,
GNUNET_ATS_NET_LOOPBACK, GNUNET_ATS_NET_LAN, GNUNET_ATS_NET_WAN,
GNUNET_ATS_NET_WLAN}
GNUNET_NETWORK_STRUCT_BEGIN
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25001 - in gnunet/src: ats-tool include,
gnunet <=