summaryrefslogtreecommitdiff
path: root/src/users.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-11-01 17:32:19 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-11-01 17:32:19 +0000
commit73de881eafbd3d201ce4be472bd35349773d74bd (patch)
tree1c0968f9ee4fce1adc71895ff621cac8908d77c2 /src/users.cpp
parentbfe4bf12b1a185b9903921295696ec1ce4642f57 (diff)
Merge commit 'ddg/out-12'
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10778 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/users.cpp')
-rw-r--r--src/users.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/users.cpp b/src/users.cpp
index 848f2a1eb..c6f5e498f 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -1254,8 +1254,12 @@ const char* User::GetIPString()
/* IP addresses starting with a : on irc are a Bad Thing (tm) */
if (*buf == ':')
{
- strlcpy(&temp[1], buf, sizeof(temp) - 1);
- *temp = '0';
+ if (!strncmp(buf, "::ffff:", 7) && isdigit(buf[7])) {
+ strlcpy(temp, buf+7, sizeof(temp) - 1);
+ } else {
+ strlcpy(&temp[1], buf, sizeof(temp) - 1);
+ *temp = '0';
+ }
this->cachedip = temp;
return temp;
}