From 459944eaa35223f2094a9f61c04dea48e58b6367 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Thu, 2 Dec 2021 18:40:38 +0100 Subject: add certmanager impl --- src/message/signalproxy/objects/certmanager.rs | 62 ++++++++++++++++++-------- 1 file changed, 43 insertions(+), 19 deletions(-) (limited to 'src/message/signalproxy/objects') diff --git a/src/message/signalproxy/objects/certmanager.rs b/src/message/signalproxy/objects/certmanager.rs index d105fcf..c82d06c 100644 --- a/src/message/signalproxy/objects/certmanager.rs +++ b/src/message/signalproxy/objects/certmanager.rs @@ -1,26 +1,50 @@ -use libquassel_derive::NetworkList; +use libquassel_derive::{NetworkList, NetworkMap}; -#[derive(Debug, Clone, PartialEq, NetworkList)] +use crate::message::Syncable; +#[allow(unused_imports)] +use crate::primitive::Variant; + +#[derive(Debug, Clone, PartialEq, NetworkList, NetworkMap)] pub struct CertManager { #[network(rename = "sslKey", variant = "ByteArray")] pub ssl_key: String, #[network(rename = "sslCert", variant = "ByteArray")] pub ssl_cert: String, - // // C->S calls - - // /** - // * Replaces all properties of the object with the content of the - // * "properties" parameter. This parameter is in network representation. - // */ - // requestUpdate(properties: QVariantMap) - - // // S->C calls - - // setSslCert(encoded: QByteBuffer | null) - // setSslKey(encoded: QByteBuffer | null) - // /** - // * Replaces all properties of the object with the content of the - // * "properties" parameter. This parameter is in network representation. - // */ - // update(properties: QVariantMap) +} + +impl CertManager { + pub fn set_ssl_cert(&mut self, cert: String) { + #[cfg(feature = "server")] + self.send_sync("setSslCert", vec![Variant::ByteArray(cert.clone())]); + + self.ssl_cert = cert; + } + + pub fn set_ssl_key(&mut self, key: String) { + #[cfg(feature = "server")] + self.send_sync("setSslKey", vec![Variant::ByteArray(key.clone())]); + + self.ssl_key = key; + } +} + +#[cfg(feature = "client")] +impl crate::message::StatefulSyncableClient for CertManager { + fn sync_custom(&mut self, mut msg: crate::message::SyncMessage) + where + Self: Sized, + { + match msg.slot_name.as_str() { + "setSslCert" => self.set_ssl_cert(get_param!(msg)), + "setSslKey" => self.set_ssl_key(get_param!(msg)), + _ => (), + } + } +} + +#[cfg(feature = "server")] +impl crate::message::StatefulSyncableServer for CertManager {} + +impl Syncable for CertManager { + const CLASS: &'static str = "CertManager"; } -- cgit v1.2.3 log/src/message/handshake?showmsg=1&follow=1'>handshake/clientinit.rs (unfollow)
Commit message (Collapse)AuthorLines
9 daysimprove network from_network_list implMax Audron-100/+8
it makes a lot more sense to convert the VariantList to a VariantMap first, as we then don't have to iterate ove the whole thing a few times, and we can simply use the from_network_map impl to convert it to the types object still need to make this change for other types
9 daysNetworkMap error handlingMax Audron-158/+153
9 daysadd more git remotesmasterMax Audron-0/+13
9 daysadd error for unkown sync message slot_nameMax Audron-43/+51
9 daysNetworkList and signalproxy objects error handlingMax Audron-504/+693
10 daysSyncable trait error handlingMax Audron-91/+152
10 dayshandshare and signalproxy/rpccall error handlingMax Audron-91/+165
10 daysuse ProtocolError for From deriveMax Audron-7/+7
10 daysclean up clippy lintsMax Audron-259/+242
10 daysreplace all match_variant instances with try_intoMax Audron-134/+111
the match_variant macro was unclear, unreadable and no longer needed as we have automaticly derived from implementations for all Variant enum fields now
2025-07-27remove old readme.orgMax Audron-35/+0
2025-07-27temporarly fix nested network repr parsing for variant typesMax Audron-39/+39
2025-07-27fix sessioninit message wrongly using NetworkMap to convert a fieldMax Audron-4/+5
2025-03-03update roadmapMax Audron-2/+10
2025-03-01implement rpc callsMax Audron-64/+762
2025-03-01add UserType implementation for required signalproxy objectsMax Audron-13/+131
2025-03-01remove old quassel attributes from derive macrosMax Audron-37/+36
this was used across the different derive macros and already replace by macro specific network and setter attributes.
2025-02-27extend docs and reorganize filesMax Audron-1281/+321
2025-02-26implement NetworkId UserTypeMax Audron-108/+196
2025-02-26implement IdentityIdMax Audron-8/+79
2025-02-26refactor variant deserializationMax Audron-123/+59
2025-02-26refactor deserialize and serializevariant traitMax Audron-90/+80
move stuff around a bit to sepperate it out for deserializevariant
2025-02-26refactor variant serialization codeMax Audron-256/+405
Factored out a lot of the serialization of variants into trait's that have auto impl so code duplication is much reduced
2025-02-26add MsgId and BufferId to objects where neededMax Audron-141/+157
some objects where still handling BufferId or MsgId as their raw types which lead to errors now that the Types are properly parsed in the varinats
2025-02-25enable transparent repr for msgid and bufferidMax Audron-0/+2
2025-02-25Implement BacklogManagerTobias Deiminger-59/+113
2025-02-25Use BufferId in BufferInfoTobias Deiminger-10/+11
2025-02-25Use BufferId in VariantTobias Deiminger-2/+33
2025-02-25Add BufferId as Rust typeTobias Deiminger-0/+39
Up to now it was represented as i32. If we introduce a newtype for it, we can handle it idiomatically as dedicated Variant::BufferId variant (instead of having it mashed into Variant::UserType).
2025-02-25Use MsgId in MessageTobias Deiminger-18/+6
2025-02-25Use MsgId in VariantTobias Deiminger-20/+37
2025-02-25Add MsgId as Rust typeTobias Deiminger-0/+56
Up to now it was handled implicitely in Variant::UserType. Making it an explicit type allows to centralize the i32/i64 cfg dependency and to use the type for arguments in signalproxy::objects functions.
2025-02-24added session manager comments and log messageMax Audron-1/+3
2025-02-23add identity syncable to SessionManagerMax Audron-1/+8
2025-02-23add syncables for IrcUserMax Audron-2/+53
2025-02-23move network config to it's own file and impl it's syncMax Audron-23/+84
2025-02-23add basic network syncablesMax Audron-39/+420
2025-02-23clean up unused_import and unused_variables a bitMax Audron-2/+8
2025-02-23fix server feature errorsMax Audron-28/+23
2025-02-23fix ircchannel and maplist network representationMax Audron-154/+137
2025-02-22replace deprecated failure crate with thiserrorMax Audron-278/+194
this changes the public API in that all our methods now return a proper ProtocolError crate. Needed change anyways to properly deal with all our errors in the long run. Will still need to do a pass through the crate to remove all existing unwraps where it makes sense.
2025-02-22update dependencies and fix errorsMax Audron-508/+332
2025-02-22update flakeMax Audron-94/+117
2024-05-22add todos to readmeMax Audron-16/+35