mirror of
https://github.com/chatmail/core.git
synced 2026-05-19 23:06:32 +03:00
fix: add explicit limit for adding relays (5 at the moment) (#7611)
closes https://github.com/chatmail/core/issues/7608
This commit is contained in:
@@ -221,3 +221,25 @@ def test_recognize_self_address(acfactory) -> None:
|
|||||||
bob_chat.send_text("Hello!")
|
bob_chat.send_text("Hello!")
|
||||||
msg = alice.wait_for_incoming_msg().get_snapshot()
|
msg = alice.wait_for_incoming_msg().get_snapshot()
|
||||||
assert msg.chat == alice.create_chat(bob)
|
assert msg.chat == alice.create_chat(bob)
|
||||||
|
|
||||||
|
|
||||||
|
def test_transport_limit(acfactory) -> None:
|
||||||
|
"""Test transports limit."""
|
||||||
|
account = acfactory.get_online_account()
|
||||||
|
qr = acfactory.get_account_qr()
|
||||||
|
|
||||||
|
limit = 5
|
||||||
|
|
||||||
|
for _ in range(1, limit):
|
||||||
|
account.add_transport_from_qr(qr)
|
||||||
|
|
||||||
|
assert len(account.list_transports()) == limit
|
||||||
|
|
||||||
|
with pytest.raises(JsonRpcError):
|
||||||
|
account.add_transport_from_qr(qr)
|
||||||
|
|
||||||
|
second_addr = account.list_transports()[1]["addr"]
|
||||||
|
account.delete_transport(second_addr)
|
||||||
|
|
||||||
|
# test that adding a transport after deleting one works again
|
||||||
|
account.add_transport_from_qr(qr)
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ use crate::transport::{
|
|||||||
use crate::{EventType, stock_str};
|
use crate::{EventType, stock_str};
|
||||||
use crate::{chat, provider};
|
use crate::{chat, provider};
|
||||||
|
|
||||||
|
/// Maximum number of relays
|
||||||
|
/// see <https://github.com/chatmail/core/issues/7608>
|
||||||
|
pub(crate) const MAX_TRANSPORT_RELAYS: usize = 5;
|
||||||
|
|
||||||
macro_rules! progress {
|
macro_rules! progress {
|
||||||
($context:tt, $progress:expr, $comment:expr) => {
|
($context:tt, $progress:expr, $comment:expr) => {
|
||||||
assert!(
|
assert!(
|
||||||
@@ -283,6 +287,18 @@ impl Context {
|
|||||||
"To use additional relays, set the legacy option \"Settings / Advanced / Show Classic Emails\" to \"All\"."
|
"To use additional relays, set the legacy option \"Settings / Advanced / Show Classic Emails\" to \"All\"."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if self
|
||||||
|
.sql
|
||||||
|
.count("SELECT COUNT(*) FROM transports", ())
|
||||||
|
.await?
|
||||||
|
>= MAX_TRANSPORT_RELAYS
|
||||||
|
{
|
||||||
|
bail!(
|
||||||
|
"You have reached the maximum number of relays ({}).",
|
||||||
|
MAX_TRANSPORT_RELAYS
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let provider = match configure(self, param).await {
|
let provider = match configure(self, param).await {
|
||||||
|
|||||||
Reference in New Issue
Block a user