aboutsummaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar Sadie Powell2022-01-21 15:53:04 +0000
committerGravatar Sadie Powell2022-01-21 16:36:43 +0000
commita51d044c82d2e39a2d9a79dd2ce181ef7bd32b02 (patch)
tree3df8fc518ec12122c4096431d521d9deef58b5b0 /src/modules
parentFix aliases which require routing to be broadcast out. (diff)
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.
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_anticaps.cpp2
-rw-r--r--src/modules/m_chanhistory.cpp2
-rw-r--r--src/modules/m_conn_join.cpp2
-rw-r--r--src/modules/m_joinflood.cpp2
-rw-r--r--src/modules/m_messageflood.cpp2
-rw-r--r--src/modules/m_nickflood.cpp2
-rw-r--r--src/modules/m_sasl.cpp2
-rw-r--r--src/modules/m_services_account.cpp7
8 files changed, 8 insertions, 13 deletions
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)