aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy
diff options
context:
space:
mode:
authorMax Audron <me@audron.dev>2026-02-22 14:16:20 +0100
committerMax Audron <me@audron.dev>2026-02-22 14:16:20 +0100
commit2af049dbab329ba049d137c7fc3a9c3aed6a780e (patch)
treeddd5c3057404c95656e2f3b39f58db6d1d655250 /src/message/signalproxy
parentNetworkList and signalproxy objects error handling (diff)
add error for unkown sync message slot_name
Diffstat (limited to 'src/message/signalproxy')
-rw-r--r--src/message/signalproxy/mod.rs6
-rw-r--r--src/message/signalproxy/objects/aliasmanager.rs2
-rw-r--r--src/message/signalproxy/objects/buffersyncer.rs22
-rw-r--r--src/message/signalproxy/objects/bufferviewconfig.rs7
-rw-r--r--src/message/signalproxy/objects/bufferviewmanager.rs12
-rw-r--r--src/message/signalproxy/objects/certmanager.rs4
-rw-r--r--src/message/signalproxy/objects/coreinfo.rs7
-rw-r--r--src/message/signalproxy/objects/highlightrulemanager.rs4
-rw-r--r--src/message/signalproxy/objects/identity.rs2
-rw-r--r--src/message/signalproxy/objects/ignorelistmanager.rs4
-rw-r--r--src/message/signalproxy/objects/ircchannel.rs2
-rw-r--r--src/message/signalproxy/objects/ircuser.rs2
-rw-r--r--src/message/signalproxy/objects/mod.rs4
-rw-r--r--src/message/signalproxy/objects/network.rs4
-rw-r--r--src/message/signalproxy/objects/networkconfig.rs9
15 files changed, 49 insertions, 42 deletions
diff --git a/src/message/signalproxy/mod.rs b/src/message/signalproxy/mod.rs
index 727fd06..eb64dad 100644
--- a/src/message/signalproxy/mod.rs
+++ b/src/message/signalproxy/mod.rs
@@ -99,7 +99,8 @@ pub trait Syncable {
/// Send a SyncMessage.
fn send_sync(&self, function: &str, params: VariantList) -> Result<()> {
crate::message::signalproxy::SYNC_PROXY
- .get().ok_or(SyncProxyError::NotInitialized)?
+ .get()
+ .ok_or(SyncProxyError::NotInitialized)?
.sync(Self::CLASS, None, function, params)?;
Ok(())
}
@@ -107,7 +108,8 @@ pub trait Syncable {
/// Send a RpcCall
fn send_rpc(&self, function: &str, params: VariantList) -> Result<()> {
crate::message::signalproxy::SYNC_PROXY
- .get().ok_or(SyncProxyError::NotInitialized)?
+ .get()
+ .ok_or(SyncProxyError::NotInitialized)?
.rpc(function, params);
Ok(())
}
diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs
index df60987..2e2610c 100644
--- a/src/message/signalproxy/objects/aliasmanager.rs
+++ b/src/message/signalproxy/objects/aliasmanager.rs
@@ -53,7 +53,7 @@ impl StatefulSyncableServer for AliasManager {
.pop()
.ok_or(crate::ProtocolError::MissingSyncMessageParams)?,
)?)),
- _ => Ok(()),
+ unknown => Err(crate::ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/buffersyncer.rs b/src/message/signalproxy/objects/buffersyncer.rs
index 5e8b8e7..4fd0318 100644
--- a/src/message/signalproxy/objects/buffersyncer.rs
+++ b/src/message/signalproxy/objects/buffersyncer.rs
@@ -3,7 +3,7 @@ use std::collections::HashMap;
use crate::{
message::{Class, Syncable},
primitive::{BufferId, MessageType, MsgId},
- Result,
+ ProtocolError, Result,
};
use libquassel_derive::{sync, NetworkList, NetworkMap};
@@ -57,7 +57,7 @@ impl BufferSyncer {
#[cfg(feature = "server")]
return sync!("markBufferAsRead", [id]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -87,7 +87,7 @@ impl BufferSyncer {
#[cfg(feature = "server")]
return sync!("mergeBuffersPermanently", [source, target]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -101,7 +101,7 @@ impl BufferSyncer {
#[cfg(feature = "server")]
return sync!("removeBuffer", [id]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -112,7 +112,7 @@ impl BufferSyncer {
pub fn rename_buffer(&mut self, id: i32, name: String) -> Result<()> {
#[cfg(feature = "server")]
return sync!("renameBuffer", [id, name]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -122,7 +122,7 @@ impl BufferSyncer {
#[cfg(feature = "server")]
return sync!("setBufferActivity", [id, activity.bits()]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -132,7 +132,7 @@ impl BufferSyncer {
#[cfg(feature = "server")]
return sync!("setHighlightCount", [id, count]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -142,7 +142,7 @@ impl BufferSyncer {
#[cfg(feature = "server")]
return sync!("setHighlightCount", [id, msg_id]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -152,7 +152,7 @@ impl BufferSyncer {
#[cfg(feature = "server")]
return sync!("setHighlightCount", [id, msg_id]);
-
+
#[cfg(feature = "client")]
return Ok(());
}
@@ -176,7 +176,7 @@ impl crate::message::StatefulSyncableClient for BufferSyncer {
"setHighlightCount" => self.set_highlight_count(get_param!(msg), get_param!(msg)),
"setLastSeenMsg" => self.set_last_seen_msg(get_param!(msg), get_param!(msg)),
"setMarkerLine" => self.set_marker_line(get_param!(msg), get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
@@ -197,7 +197,7 @@ impl crate::message::StatefulSyncableServer for BufferSyncer {
"requestRenameBuffer" => self.rename_buffer(get_param!(msg), get_param!(msg)),
"requestSetLastSeenMsg" => self.set_last_seen_msg(get_param!(msg), get_param!(msg)),
"requestSetMarkerLine" => self.set_marker_line(get_param!(msg), get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/bufferviewconfig.rs b/src/message/signalproxy/objects/bufferviewconfig.rs
index 9c7f6fc..dd3516b 100644
--- a/src/message/signalproxy/objects/bufferviewconfig.rs
+++ b/src/message/signalproxy/objects/bufferviewconfig.rs
@@ -8,7 +8,7 @@ use crate::message::StatefulSyncableServer;
use crate::message::{Class, Syncable};
use crate::primitive::{BufferId, NetworkId, VariantList};
-use crate::{Result, SyncProxyError};
+use crate::{ProtocolError, Result, SyncProxyError};
#[derive(Debug, Default, Clone, PartialEq, NetworkList, NetworkMap)]
pub struct BufferViewConfig {
@@ -157,7 +157,7 @@ impl StatefulSyncableClient for BufferViewConfig {
),
"removeBuffer" => self.remove_buffer(msg.params.remove(0).try_into()?),
"removeBufferPermanently" => self.remove_buffer_permanently(msg.params.remove(0).try_into()?),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
@@ -193,8 +193,9 @@ impl StatefulSyncableServer for BufferViewConfig {
"setNetworkId" => self.network_id = msg.params.remove(0).try_into()?,
"setShowSearch" => self.show_search = msg.params.remove(0).try_into()?,
"setSortAlphabetically" => self.sort_alphabetically = msg.params.remove(0).try_into()?,
- _ => (),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string()))?,
}
+
Ok(())
}
}
diff --git a/src/message/signalproxy/objects/bufferviewmanager.rs b/src/message/signalproxy/objects/bufferviewmanager.rs
index 1ecac4c..341fec2 100644
--- a/src/message/signalproxy/objects/bufferviewmanager.rs
+++ b/src/message/signalproxy/objects/bufferviewmanager.rs
@@ -10,6 +10,7 @@ use crate::message::StatefulSyncableServer;
use crate::message::{NetworkMap, Syncable};
use crate::primitive::{Variant, VariantList, VariantMap};
+use crate::ProtocolError;
use crate::Result;
use super::BufferViewConfig;
@@ -94,7 +95,7 @@ impl StatefulSyncableClient for BufferViewManager {
self.add_buffer_view_config(msg.params.remove(0).try_into()?)
}
"deleteBufferViewConfig" => self.delete_buffer_view_config(msg.params.remove(0).try_into()?),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
@@ -108,23 +109,24 @@ impl StatefulSyncableServer for BufferViewManager {
match msg.slot_name.as_str() {
"requestCreateBufferView" => self.add_buffer_view_config(BufferViewConfig::from_network_map(
&mut msg.params.remove(0).try_into()?,
- ))?,
+ )),
"requestCreateBufferViews" => {
let views: VariantList = msg.params.remove(0).try_into()?;
for view in views.into_iter() {
self.add_buffer_view_config(BufferViewConfig::from_network_map(&mut view.try_into()?))?
}
+ Ok(())
}
- "requestDeleteBufferView" => self.delete_buffer_view_config(msg.params.remove(0).try_into()?)?,
+ "requestDeleteBufferView" => self.delete_buffer_view_config(msg.params.remove(0).try_into()?),
"requestDeleteBufferViews" => {
let ids: VariantList = msg.params.remove(0).try_into()?;
for id in ids.into_iter() {
self.delete_buffer_view_config(id.try_into()?)?
}
+ Ok(())
}
- _ => (),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
- Ok(())
}
}
diff --git a/src/message/signalproxy/objects/certmanager.rs b/src/message/signalproxy/objects/certmanager.rs
index 240db8d..e3ea4fe 100644
--- a/src/message/signalproxy/objects/certmanager.rs
+++ b/src/message/signalproxy/objects/certmanager.rs
@@ -28,7 +28,7 @@ impl CertManager {
self.send_sync("setSslKey", vec![Variant::ByteArray(key.clone())])?;
self.ssl_key = key;
-
+
Ok(())
}
}
@@ -42,7 +42,7 @@ impl crate::message::StatefulSyncableClient for CertManager {
match msg.slot_name.as_str() {
"setSslCert" => self.set_ssl_cert(get_param!(msg)),
"setSslKey" => self.set_ssl_key(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(crate::ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/coreinfo.rs b/src/message/signalproxy/objects/coreinfo.rs
index bde4217..c901f91 100644
--- a/src/message/signalproxy/objects/coreinfo.rs
+++ b/src/message/signalproxy/objects/coreinfo.rs
@@ -32,7 +32,7 @@ impl crate::message::StatefulSyncableClient for CoreInfo {
#[allow(clippy::single_match)]
match msg.slot_name.as_str() {
"setCoreData" => self.set_core_data(CoreData::from_network_map(&mut get_param!(msg))),
- _ => Ok(()),
+ unknown => Err(crate::ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
@@ -48,10 +48,7 @@ impl crate::message::StatefulSyncableClient for CoreInfo {
#[cfg(feature = "server")]
impl crate::message::StatefulSyncableServer for CoreInfo {
/// Not Implemented
- fn request_update(
- &mut self,
- mut _param: <CoreInfo as NetworkMap>::Item,
- ) -> Result<()>
+ fn request_update(&mut self, mut _param: <CoreInfo as NetworkMap>::Item) -> Result<()>
where
Self: Sized,
{
diff --git a/src/message/signalproxy/objects/highlightrulemanager.rs b/src/message/signalproxy/objects/highlightrulemanager.rs
index aa9fe25..948f08a 100644
--- a/src/message/signalproxy/objects/highlightrulemanager.rs
+++ b/src/message/signalproxy/objects/highlightrulemanager.rs
@@ -168,7 +168,7 @@ impl StatefulSyncableClient for HighlightRuleManager {
}),
"setHighlightNick" => self.set_highlight_nick(get_param!(msg)),
"setNicksCaseSensitive" => self.set_nicks_case_sensitive(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
@@ -194,7 +194,7 @@ impl StatefulSyncableServer for HighlightRuleManager {
}),
"requestSetHighlightNick" => self.set_highlight_nick(get_param!(msg)),
"requestSetNicksCaseSensitive" => self.set_nicks_case_sensitive(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/identity.rs b/src/message/signalproxy/objects/identity.rs
index 57cd588..f12e882 100644
--- a/src/message/signalproxy/objects/identity.rs
+++ b/src/message/signalproxy/objects/identity.rs
@@ -124,7 +124,7 @@ impl StatefulSyncableClient for Identity {
"setPartReason" => self.set_part_reason(get_param!(msg)),
"setQuitReason" => self.set_quit_reason(get_param!(msg)),
"setRealName" => self.set_real_name(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(crate::ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/ignorelistmanager.rs b/src/message/signalproxy/objects/ignorelistmanager.rs
index 5a38fd0..4fe5f63 100644
--- a/src/message/signalproxy/objects/ignorelistmanager.rs
+++ b/src/message/signalproxy/objects/ignorelistmanager.rs
@@ -149,7 +149,7 @@ impl crate::message::StatefulSyncableClient for IgnoreListManager {
let rule: String = get_param!(msg);
self.toggle_ignore_rule(&rule)
}
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
@@ -178,7 +178,7 @@ impl crate::message::StatefulSyncableServer for IgnoreListManager {
let rule: String = get_param!(msg);
self.toggle_ignore_rule(&rule)
}
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/ircchannel.rs b/src/message/signalproxy/objects/ircchannel.rs
index d160ac3..2f88cb5 100644
--- a/src/message/signalproxy/objects/ircchannel.rs
+++ b/src/message/signalproxy/objects/ircchannel.rs
@@ -204,7 +204,7 @@ impl crate::message::StatefulSyncableClient for IrcChannel {
"setPassword" => self.set_password(get_param!(msg)),
"setTopic" => self.set_topic(get_param!(msg)),
"setUserModes" => self.set_user_modes(get_param!(msg), get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(crate::ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
diff --git a/src/message/signalproxy/objects/ircuser.rs b/src/message/signalproxy/objects/ircuser.rs
index e9de178..a35e57d 100644
--- a/src/message/signalproxy/objects/ircuser.rs
+++ b/src/message/signalproxy/objects/ircuser.rs
@@ -157,7 +157,7 @@ impl crate::message::StatefulSyncableClient for IrcUser {
"setUserModes" => self.set_user_modes(get_param!(msg)),
"setWhoisServiceReply" => self.set_whois_service_reply(get_param!(msg)),
"updateHostmask" => self.update_hostmask(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(crate::ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/mod.rs b/src/message/signalproxy/objects/mod.rs
index 4bde771..19a8dd1 100644
--- a/src/message/signalproxy/objects/mod.rs
+++ b/src/message/signalproxy/objects/mod.rs
@@ -125,7 +125,9 @@ impl Types {
"CertManager" => Types::CertManager(Box::new(CertManager::from_network_list(input).unwrap())),
"Network" => Types::Network(Box::new(Network::from_network_list(input).unwrap())),
"NetworkInfo" => Types::NetworkInfo(Box::new(NetworkInfo::from_network_list(input).unwrap())),
- "NetworkConfig" => Types::NetworkConfig(Box::new(NetworkConfig::from_network_list(input).unwrap())),
+ "NetworkConfig" => {
+ Types::NetworkConfig(Box::new(NetworkConfig::from_network_list(input).unwrap()))
+ }
"IrcChannel" => Types::IrcChannel(Box::new(IrcChannel::from_network_list(input).unwrap())),
_ => Types::Unknown(Box::new(input.to_owned())),
}
diff --git a/src/message/signalproxy/objects/network.rs b/src/message/signalproxy/objects/network.rs
index 5c5c0c6..c5cdd1a 100644
--- a/src/message/signalproxy/objects/network.rs
+++ b/src/message/signalproxy/objects/network.rs
@@ -281,7 +281,7 @@ impl crate::message::StatefulSyncableClient for Network {
"setUseCustomMessageRate" => self.network_info.set_use_custom_message_rate(get_param!(msg)),
"setUseRandomServer" => self.network_info.set_use_random_server(get_param!(msg)),
"setUseSasl" => self.network_info.set_use_sasl(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
@@ -299,7 +299,7 @@ impl crate::message::StatefulSyncableServer for Network {
let mut map = VariantMap::try_from(msg.params.remove(0))?;
self.set_network_info(NetworkInfo::from_network_map(&mut map))
}
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
diff --git a/src/message/signalproxy/objects/networkconfig.rs b/src/message/signalproxy/objects/networkconfig.rs
index 871e387..49e6914 100644
--- a/src/message/signalproxy/objects/networkconfig.rs
+++ b/src/message/signalproxy/objects/networkconfig.rs
@@ -1,6 +1,9 @@
use libquassel_derive::{NetworkList, NetworkMap, Setters};
-use crate::message::{Class, Syncable};
+use crate::{
+ message::{Class, Syncable},
+ ProtocolError,
+};
#[derive(Debug, Default, Clone, PartialEq, NetworkList, NetworkMap, Setters)]
pub struct NetworkConfig {
@@ -41,7 +44,7 @@ impl crate::message::StatefulSyncableClient for NetworkConfig {
"setPingInterval" => self.set_ping_interval(get_param!(msg)),
"setPingTimeoutEnabled" => self.set_ping_timeout_enabled(get_param!(msg)),
"setStandardCtcp" => self.set_standard_ctcp(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}
@@ -61,7 +64,7 @@ impl crate::message::StatefulSyncableServer for NetworkConfig {
"requestSetPingInterval" => self.set_ping_interval(get_param!(msg)),
"requestSetPingTimeoutEnabled" => self.set_ping_timeout_enabled(get_param!(msg)),
"requestSetStandardCtcp" => self.set_standard_ctcp(get_param!(msg)),
- _ => Ok(()),
+ unknown => Err(ProtocolError::UnknownMsgSlotName(unknown.to_string())),
}
}
}