size_t hop1, hop2, hop3;
size_t len1, len2;
std::string rv;
- if (ip.sa.sa_family == AF_INET6)
+ if (ip.family() == AF_INET6)
{
bindata = std::string((const char*)ip.in6.sin6_addr.s6_addr, 16);
hop1 = 8;
}
else
{
- if (ip.sa.sa_family == AF_INET6)
+ if (ip.family() == AF_INET6)
{
rv.append(InspIRCd::Format(".%02x%02x.%02x%02x%s",
ip.in6.sin6_addr.s6_addr[2], ip.in6.sin6_addr.s6_addr[3],
suffix = tag->getString("suffix", ".IP");
std::string modestr = tag->getString("mode");
- if (modestr == "half")
+ if (stdalgo::string::equalsci(modestr, "half"))
{
mode = MODE_HALF_CLOAK;
- domainparts = tag->getInt("domainparts", 3, 1, 10);
+ domainparts = tag->getUInt("domainparts", 3, 1, 10);
}
- else if (modestr == "full")
+ else if (stdalgo::string::equalsci(modestr, "full"))
mode = MODE_OPAQUE;
else
throw ModuleException("Bad value for <cloak:mode>; must be half or full");
if (cloak)
return;
+ // TODO: decide how we are going to cloak AF_UNIX hostnames.
+ if (dest->client_sa.family() != AF_INET && dest->client_sa.family() != AF_INET6)
+ return;
+
cu.ext.set(dest, GenCloak(dest->client_sa, dest->GetIPString(), dest->GetRealHost()));
}
};