From e64ace4c8279084a7d168ee1f9e50156b93fa2c7 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Fri, 3 Feb 2023 09:26:31 +0000 Subject: Expose the removed away message in OnUserBack. --- src/modules/m_ircv3.cpp | 2 +- src/modules/m_spanningtree/away.cpp | 3 ++- src/modules/m_spanningtree/main.cpp | 2 +- src/modules/m_spanningtree/main.h | 2 +- src/modules/m_watch.cpp | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src/modules') diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp index e5c7908fe..dddb24140 100644 --- a/src/modules/m_ircv3.cpp +++ b/src/modules/m_ircv3.cpp @@ -175,7 +175,7 @@ public: Monitor::WriteWatchersWithCap(monitorapi, user, awayevent, joinhook.awaycap, res.GetAlreadySentId()); } - void OnUserBack(User* user) override + void OnUserBack(User* user, const std::string& message) override { // Back from away: n!u@h AWAY OnUserAway(user); diff --git a/src/modules/m_spanningtree/away.cpp b/src/modules/m_spanningtree/away.cpp index f3ab58a49..edb59b21d 100644 --- a/src/modules/m_spanningtree/away.cpp +++ b/src/modules/m_spanningtree/away.cpp @@ -42,9 +42,10 @@ CmdResult CommandAway::HandleRemote(::RemoteUser* u, Params& params) } else { + const std::string awaymsg = u->awaymsg; u->awaytime = 0; u->awaymsg.clear(); - awayevprov.Call(&Away::EventListener::OnUserBack, u); + awayevprov.Call(&Away::EventListener::OnUserBack, u, awaymsg); } return CmdResult::SUCCESS; } diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index 1e94385d5..3f5885297 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -819,7 +819,7 @@ void ModuleSpanningTree::OnUserAway(User* user) CommandAway::Builder(user).Broadcast(); } -void ModuleSpanningTree::OnUserBack(User* user) +void ModuleSpanningTree::OnUserBack(User* user, const std::string& message) { OnUserAway(user); } diff --git a/src/modules/m_spanningtree/main.h b/src/modules/m_spanningtree/main.h index e51687992..dcf09e629 100644 --- a/src/modules/m_spanningtree/main.h +++ b/src/modules/m_spanningtree/main.h @@ -201,7 +201,7 @@ public: void OnDelLine(User* u, XLine* x) override; ModResult OnStats(Stats::Context& stats) override; void OnUserAway(User* user) override; - void OnUserBack(User* user) override; + void OnUserBack(User* user, const std::string& message) override; void OnLoadModule(Module* mod) override; void OnUnloadModule(Module* mod) override; ModResult OnAcceptConnection(int newsock, ListenSocket* from, const irc::sockets::sockaddrs& client, const irc::sockets::sockaddrs& server) override; diff --git a/src/modules/m_watch.cpp b/src/modules/m_watch.cpp index 43c2d1c85..bf35580d8 100644 --- a/src/modules/m_watch.cpp +++ b/src/modules/m_watch.cpp @@ -250,7 +250,7 @@ public: SendAlert(user, user->nick, RPL_GONEAWAY, user->awaymsg.c_str(), user->awaytime); } - void OnUserBack(User* user) override + void OnUserBack(User* user, const std::string& message) override { SendAlert(user, user->nick, RPL_NOTAWAY, "is no longer away", ServerInstance->Time()); } -- cgit v1.3.1-10-gc9f91