diff options
author | Adam <Adam@anope.org> | 2016-12-22 20:52:43 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2016-12-22 20:52:43 -0500 |
commit | ec7ce09ef45c491ea833ca39ee2dc0ff3cdf5f90 (patch) | |
tree | d1a2a9e8f554a190ebb063719d7942c90d96c3bb | |
parent | 574c8dfbc798df444899b4907efc50a40ec6e4a4 (diff) |
Make User::Mask behave more like 1.8
-rw-r--r-- | include/users.h | 7 | ||||
-rw-r--r-- | src/users.cpp | 2 |
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 |