summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-02-07 17:19:12 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-02-07 17:19:12 +0000
commit8785246ab68a09c7a2cdf3c876003daebc787996 (patch)
tree2fed0180da3fddb8021ad07acb434a921dfdcb7e /src/modules
parent0b34769b9e3b9e823763cfd8bf3e2d64c2426710 (diff)
If a user connects over 4in6 (YUCK) give them an ipv4 cloak
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6533 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_cloaking.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp
index 033ac8c53..ae28075c0 100644
--- a/src/modules/m_cloaking.cpp
+++ b/src/modules/m_cloaking.cpp
@@ -176,6 +176,11 @@ class CloakUser : public ModeHandler
std::string Cloak6(const char* ip)
{
+ /* Theyre using 4in6 (YUCK). Translate as ipv4 cloak */
+ if (!strncmp(ip, "0::ffff:", 8))
+ return Cloak4(ip + 8);
+
+ /* If we get here, yes it really is an ipv6 ip */
unsigned int iv[] = { key1, key2, key3, key4 };
std::vector<std::string> hashies;
std::string item = "";