From 3ef3047681f0813d8f1d06939eaa2ef378d99505 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Tue, 3 Nov 2015 13:08:21 +0100 Subject: Add UserManager::NextAlreadySentId() and convert all code to use it --- src/users.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/users.cpp') diff --git a/src/users.cpp b/src/users.cpp index d503844e7..258544312 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -873,7 +873,7 @@ void User::ForEachNeighbor(ForEachNeighborHandler& handler, bool include_self) FOREACH_MOD(OnBuildNeighborList, (this, include_chans, exceptions)); // Get next id, guaranteed to differ from the already_sent field of all users - const already_sent_t newid = ++LocalUser::already_sent_id; + const already_sent_t newid = ServerInstance->Users.NextAlreadySentId(); // Handle exceptions first for (std::map::const_iterator i = exceptions.begin(); i != exceptions.end(); ++i) -- cgit v1.2.3 From c89cc290fbc6d53040fc8abc6fc0b0cb637beee9 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Tue, 3 Nov 2015 13:13:00 +0100 Subject: Move already sent id rollover handling and static LocalUser::already_sent_id into UserManager --- include/usermanager.h | 5 +++++ include/users.h | 1 - src/usermanager.cpp | 16 +++++++++++++--- src/users.cpp | 2 -- 4 files changed, 18 insertions(+), 6 deletions(-) (limited to 'src/users.cpp') diff --git a/include/usermanager.h b/include/usermanager.h index 605b841bb..670e51dd5 100644 --- a/include/usermanager.h +++ b/include/usermanager.h @@ -56,6 +56,11 @@ class CoreExport UserManager : public fakederef */ LocalList local_users; + /** Last used already sent id, used when sending messages to neighbors to help determine whether the message has + * been sent to a particular user or not. See User::ForEachNeighbor() for more info. + */ + already_sent_t already_sent_id; + public: /** Constructor, initializes variables */ diff --git a/include/users.h b/include/users.h index 03540018b..fa346a329 100644 --- a/include/users.h +++ b/include/users.h @@ -720,7 +720,6 @@ class CoreExport LocalUser : public User, public insp::intrusive_list_nodealready_sent = 0; + } + } + return already_sent_id; } diff --git a/src/users.cpp b/src/users.cpp index 258544312..93fd8d065 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -26,8 +26,6 @@ #include "inspircd.h" #include "xline.h" -already_sent_t LocalUser::already_sent_id = 0; - bool User::IsNoticeMaskSet(unsigned char sm) { if (!isalpha(sm)) -- cgit v1.2.3