diff options
| author | fiaxh <git@lightrise.org> | 2025-06-13 19:38:49 +0200 |
|---|---|---|
| committer | fiaxh <git@lightrise.org> | 2025-06-13 19:40:09 +0200 |
| commit | 915b18789f002fa8f4c50fe1e626d34cc47c5c9b (patch) | |
| tree | 34fc929c3dd7543cafa971e6b86ac2d2c5b3c15d /libdino/src | |
| parent | 2e6454a92e85e87e17ce88924155d825b2b6eca3 (diff) | |
Disregard SFS fallback messages even without source attachment given a full-body fallback indication
Diffstat (limited to 'libdino/src')
| -rw-r--r-- | libdino/src/entity/message.vala | 2 | ||||
| -rw-r--r-- | libdino/src/service/stateless_file_sharing.vala | 6 | ||||
| -rw-r--r-- | libdino/src/util/send_message.vala | 5 |
3 files changed, 10 insertions, 3 deletions
diff --git a/libdino/src/entity/message.vala b/libdino/src/entity/message.vala index 7e15cfe4..4de17125 100644 --- a/libdino/src/entity/message.vala +++ b/libdino/src/entity/message.vala @@ -212,7 +212,7 @@ public class Message : Object { var fallbacks = new ArrayList<Xep.FallbackIndication.Fallback>(); foreach (string ns_uri in fallbacks_by_ns.keys) { - fallbacks.add(new Xep.FallbackIndication.Fallback(ns_uri, fallbacks_by_ns[ns_uri].to_array())); + fallbacks.add(new Xep.FallbackIndication.Fallback(ns_uri, fallbacks_by_ns[ns_uri])); } this.fallbacks = fallbacks; this.markups = markups; diff --git a/libdino/src/service/stateless_file_sharing.vala b/libdino/src/service/stateless_file_sharing.vala index 9d3c53ab..15e1ddfe 100644 --- a/libdino/src/service/stateless_file_sharing.vala +++ b/libdino/src/service/stateless_file_sharing.vala @@ -156,6 +156,12 @@ public class Dino.StatelessFileSharing : StreamInteractionModule, Object { return true; } } + + // Don't process messages that are fallback for legacy clients + if (Xep.StatelessFileSharing.is_sfs_fallback_message(stanza)) { + return true; + } + return false; } } diff --git a/libdino/src/util/send_message.vala b/libdino/src/util/send_message.vala index 8312cf17..c320bf7b 100644 --- a/libdino/src/util/send_message.vala +++ b/libdino/src/util/send_message.vala @@ -26,9 +26,10 @@ namespace Dino { out_message.body = fallback + out_message.body; // Store fallback location - var fallback_location = new Xep.FallbackIndication.FallbackLocation.partial_body(0, (int)fallback.char_count()); + var fallback_locations = new ArrayList<Xep.FallbackIndication.FallbackLocation>(); + fallback_locations.add(new Xep.FallbackIndication.FallbackLocation.partial_body(0, (int)fallback.char_count())); var fallback_list = new ArrayList<Xep.FallbackIndication.Fallback>(); - fallback_list.add(new Xep.FallbackIndication.Fallback(Xep.Replies.NS_URI, new Xep.FallbackIndication.FallbackLocation[] { fallback_location })); + fallback_list.add(new Xep.FallbackIndication.Fallback(Xep.Replies.NS_URI, fallback_locations)); out_message.set_fallbacks(fallback_list); // Adjust markups to new prefix |
