summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/users.h7
-rw-r--r--src/users.cpp2
2 files changed, 4 insertions, 5 deletions
diff --git a/include/users.h b/include/users.h
index 6f50d0cbd..27fce6cf8 100644
--- a/include/users.h
+++ b/include/users.h
@@ -347,10 +347,9 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
/* Returns a mask that will most likely match any address the
* user will have from that location. For IP addresses, wildcards the
- * appropriate subnet mask (e.g. 35.1.1.1 -> 35.*; 128.2.1.1 -> 128.2.*);
- * for named addresses, wildcards the leftmost part of the name unless the
- * name only contains two parts. If the username begins with a ~, delete
- * it.
+ * last octet (e.g. 35.1.1.1 -> 35.1.1.*). for named addresses, wildcards
+ * the leftmost part of the name unless the name only contains two parts.
+ * If the username begins with a ~, replace with *.
*/
Anope::string Mask() const;
diff --git a/src/users.cpp b/src/users.cpp
index 25e558c5f..059b89377 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -781,7 +781,7 @@ Anope::string User::Mask() const
sockaddrs addr(mhost);
if (addr.valid() && addr.sa.sa_family == AF_INET)
{
- size_t dot = mhost.find('.');
+ size_t dot = mhost.rfind('.');
mask += mhost.substr(0, dot) + (dot == Anope::string::npos ? "" : ".*");
}
else