From a51d044c82d2e39a2d9a79dd2ce181ef7bd32b02 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Fri, 21 Jan 2022 15:53:04 +0000 Subject: Fix various edge cases in extensible synchronisation. - Fix not forwarding the accountid extensible if it is set. - Rename the variadic Set() overload to SetFwd(). - Re-add the `const T&` overload of Set(). - Move `bool synced` to SimpleExtItem from StringExtItem. - Only sync extensibles if their instance is marked as syncable. --- src/modules/m_anticaps.cpp | 2 +- src/modules/m_chanhistory.cpp | 2 +- src/modules/m_conn_join.cpp | 2 +- src/modules/m_joinflood.cpp | 2 +- src/modules/m_messageflood.cpp | 2 +- src/modules/m_nickflood.cpp | 2 +- src/modules/m_sasl.cpp | 2 +- src/modules/m_services_account.cpp | 7 +------ 8 files changed, 8 insertions(+), 13 deletions(-) (limited to 'src/modules') diff --git a/src/modules/m_anticaps.cpp b/src/modules/m_anticaps.cpp index 1f6ff0747..3d8f2c8ba 100644 --- a/src/modules/m_anticaps.cpp +++ b/src/modules/m_anticaps.cpp @@ -120,7 +120,7 @@ class AntiCapsMode final return MODEACTION_DENY; } - ext.Set(channel, method, minlen, percent); + ext.SetFwd(channel, method, minlen, percent); return MODEACTION_ALLOW; } diff --git a/src/modules/m_chanhistory.cpp b/src/modules/m_chanhistory.cpp index ab95da200..32768a0b2 100644 --- a/src/modules/m_chanhistory.cpp +++ b/src/modules/m_chanhistory.cpp @@ -125,7 +125,7 @@ class HistoryMode final } else { - ext.Set(channel, len, time); + ext.SetFwd(channel, len, time); } return MODEACTION_ALLOW; } diff --git a/src/modules/m_conn_join.cpp b/src/modules/m_conn_join.cpp index fdf20ab24..4185c7987 100644 --- a/src/modules/m_conn_join.cpp +++ b/src/modules/m_conn_join.cpp @@ -112,7 +112,7 @@ class ModuleConnJoin final if (!chandelay) JoinChannels(localuser, chanlist); else - ext.Set(localuser, localuser, ext, chanlist, chandelay); + ext.SetFwd(localuser, localuser, ext, chanlist, chandelay); } }; diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp index ae29811e3..2fff26377 100644 --- a/src/modules/m_joinflood.cpp +++ b/src/modules/m_joinflood.cpp @@ -123,7 +123,7 @@ class JoinFlood final return MODEACTION_DENY; } - ext.Set(channel, nsecs, njoins); + ext.SetFwd(channel, nsecs, njoins); return MODEACTION_ALLOW; } diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index a71497f70..65d7dfba7 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -97,7 +97,7 @@ class MsgFlood final return MODEACTION_DENY; } - ext.Set(channel, ban, nsecs, nlines); + ext.SetFwd(channel, ban, nsecs, nlines); return MODEACTION_ALLOW; } diff --git a/src/modules/m_nickflood.cpp b/src/modules/m_nickflood.cpp index 9475d8077..14c238947 100644 --- a/src/modules/m_nickflood.cpp +++ b/src/modules/m_nickflood.cpp @@ -112,7 +112,7 @@ class NickFlood final return MODEACTION_DENY; } - ext.Set(channel, nsecs, nnicks); + ext.SetFwd(channel, nsecs, nnicks); return MODEACTION_ALLOW; } diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp index 05653a927..122b34b43 100644 --- a/src/modules/m_sasl.cpp +++ b/src/modules/m_sasl.cpp @@ -345,7 +345,7 @@ class CommandAuthenticate final SaslAuthenticator *sasl = authExt.Get(user); if (!sasl) - authExt.Set(user, user, parameters[0], sslapi); + authExt.SetFwd(user, user, parameters[0], sslapi); else if (sasl->SendClientMessage(parameters) == false) // IAL abort extension --nenolod { sasl->AnnounceState(); diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 8a97a83eb..b5d5f22a6 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -103,11 +103,6 @@ class AccountExtItemImpl final { } - void FromInternal(Extensible* container, const std::string& value) noexcept override - { - StringExtItem::FromInternal(container, value); - } - void FromNetwork(Extensible* container, const std::string& value) noexcept override { StringExtItem::FromNetwork(container, value); @@ -201,7 +196,7 @@ class ModuleServicesAccount final , regdeafmode(this, "regdeaf", 'R') , chanregmode(this) , userregmode(this) - , accountid(this, "accountid", ExtensionType::USER) + , accountid(this, "accountid", ExtensionType::USER, true) , accountname(this) , accountextban(this, accountname) , unauthedextban(this, accountname) -- cgit v1.3.1-10-gc9f91