summaryrefslogtreecommitdiff
path: root/src/modules/m_cloaking.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_cloaking.cpp')
-rw-r--r--src/modules/m_cloaking.cpp27
1 files changed, 6 insertions, 21 deletions
diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp
index 29a5e1421..a17577702 100644
--- a/src/modules/m_cloaking.cpp
+++ b/src/modules/m_cloaking.cpp
@@ -410,35 +410,20 @@ class ModuleCloaking : public Module
* Their ISP shouldnt go to town on subdomains, or they shouldnt have a kiddie
* vhost.
*/
-#ifdef IPV6
in6_addr testaddr;
- in_addr testaddr2;
- if ((dest->ip.sa.sa_family == AF_INET6) && (inet_pton(AF_INET6,dest->host.c_str(),&testaddr) < 1) && (hostcloak.length() <= 64))
- /* Invalid ipv6 address, and ipv6 user (resolved host) */
- b = hostcloak;
- else if ((dest->ip.sa.sa_family == AF_INET) && (inet_aton(dest->host.c_str(),&testaddr2) < 1) && (hostcloak.length() <= 64))
- /* Invalid ipv4 address, and ipv4 user (resolved host) */
- b = hostcloak;
- else
- /* Valid ipv6 or ipv4 address (not resolved) ipv4 or ipv6 user */
- b = ((!strchr(dest->host.c_str(),':')) ? cu->Cloak4(dest->host.c_str()) : cu->Cloak6(dest->host.c_str()));
-#else
- in_addr testaddr;
- if ((inet_aton(dest->host.c_str(),&testaddr) < 1) && (hostcloak.length() <= 64))
- /* Invalid ipv4 address, and ipv4 user (resolved host) */
+ if (inet_pton(dest->client_sa.sa.sa_family, dest->host.c_str(), &testaddr) < 1 && (hostcloak.length() <= 64))
+ /* not a valid address, must have been a host, so cloak as a host */
b = hostcloak;
+ else if (dest->client_sa.sa.sa_family == AF_INET6)
+ b = cu->Cloak6(dest->GetIPString());
else
- /* Valid ipv4 address (not resolved) ipv4 user */
- b = cu->Cloak4(dest->host.c_str());
-#endif
+ b = cu->Cloak4(dest->GetIPString());
}
else
{
-#ifdef IPV6
- if (dest->ip.sa.sa_family == AF_INET6)
+ if (dest->client_sa.sa.sa_family == AF_INET6)
b = cu->Cloak6(dest->GetIPString());
else
-#endif
b = cu->Cloak4(dest->GetIPString());
}