From cf5de44a6784fc5cfaf5a32808c594bee4d26060 Mon Sep 17 00:00:00 2001 From: Matthias Wachs Date: Wed, 14 Dec 2011 13:31:59 +0000 Subject: [PATCH] adding detection for AF_UNIX --- src/ats/ats_api_scheduling.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/ats/ats_api_scheduling.c b/src/ats/ats_api_scheduling.c index 7ac53f12f..8ee3fcee3 100644 --- a/src/ats/ats_api_scheduling.c +++ b/src/ats/ats_api_scheduling.c @@ -761,6 +761,11 @@ GNUNET_ATS_address_get_type (struct GNUNET_ATS_SchedulingHandle * sh, const stru struct ATS_Network * cur = sh->net_head; int type = GNUNET_ATS_NET_UNSPECIFIED; + if (addr->sa_family == AF_UNIX) + { + type = GNUNET_ATS_NET_LOOPBACK; + } + /* IPv4 loopback check */ if (addr->sa_family == AF_INET) { @@ -830,10 +835,31 @@ GNUNET_ATS_address_get_type (struct GNUNET_ATS_SchedulingHandle * sh, const stru cur = cur->next; } - /* local network found for this address, default: WAN */ + /* no local network found for this address, default: WAN */ if (type == GNUNET_ATS_NET_UNSPECIFIED) type = GNUNET_ATS_NET_WAN; +#if VERBOSE + char * range; + switch (type) { + case GNUNET_ATS_NET_WAN: + range = "WAN"; + break; + case GNUNET_ATS_NET_LAN: + range = "LAN"; + break; + case GNUNET_ATS_NET_LOOPBACK: + range = "LOOPBACK"; + break; + default: + + break; + } + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "`%s' is in network `%s'\n", + GNUNET_a2s ((const struct sockaddr *) addr, addrlen), + range); +#endif + ats.type = htonl (GNUNET_ATS_NETWORK_TYPE); ats.value = htonl (type); return ats; -- 2.25.1