From 9abf8f6869bc35c76bdfa86416012d4e7f0dda78 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Fri, 24 Apr 2026 11:09:10 +0200 Subject: Add support for Sasl2 + Bind2 --- libdino/src/service/connection_manager.vala | 5 +++-- libdino/src/service/module_manager.vala | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'libdino/src/service') diff --git a/libdino/src/service/connection_manager.vala b/libdino/src/service/connection_manager.vala index c8b5c4ed..5e92dec9 100644 --- a/libdino/src/service/connection_manager.vala +++ b/libdino/src/service/connection_manager.vala @@ -231,12 +231,13 @@ public class ConnectionManager : Object { stream.attached_modules.connect((stream) => { stream_attached_modules(account, stream); change_connection_state(account, ConnectionState.CONNECTED); - -// stream.get_module(Xep.Muji.Module.IDENTITY).join_call(stream, new Jid("test@muc.poez.io"), true); }); stream.get_module(Sasl.Module.IDENTITY).received_auth_failure.connect((stream, node) => { set_connection_error(account, new ConnectionError(ConnectionError.Source.SASL, null)); }); + stream.get_module(Xep.ExtensibleSaslProfile.Module.IDENTITY).received_auth_failure.connect((stream, node) => { + set_connection_error(account, new ConnectionError(ConnectionError.Source.SASL, null)); + }); string connection_uuid = connections[account].uuid; stream.received_node.connect(() => { diff --git a/libdino/src/service/module_manager.vala b/libdino/src/service/module_manager.vala index 64be76e1..127f2d93 100644 --- a/libdino/src/service/module_manager.vala +++ b/libdino/src/service/module_manager.vala @@ -46,8 +46,19 @@ public class ModuleManager { lock(module_map) { module_map[account] = new ArrayList(); module_map[account].add(new Iq.Module()); + + var sasl2_module = new Xep.ExtensibleSaslProfile.Module(account.bare_jid.localpart, account.password); + module_map[account].add(sasl2_module); module_map[account].add(new Sasl.Module(account.bare_jid.to_string(), account.password)); module_map[account].add(new Xep.StreamManagement.Module()); + + var bind2_sasl2_activation = new Xep.Bind2.Sasl2Activation(); + bind2_sasl2_activation.inline_activation_providers[Xep.MessageCarbons.NS_URI] = new Xep.MessageCarbons.Bind2Activation(); + bind2_sasl2_activation.inline_activation_providers[Xep.StreamManagement.NS_URI] = new Xep.StreamManagement.Bind2Activation(); + + sasl2_module.inline_activation_providers[Xep.Bind2.NS_URI] = bind2_sasl2_activation; + sasl2_module.inline_activation_providers[Xep.StreamManagement.NS_URI] = new Xep.StreamManagement.Sasl2Activation(); + module_map[account].add(new Bind.Module(account.resourcepart)); module_map[account].add(new Session.Module()); module_map[account].add(new Roster.Module()); -- cgit v1.3