aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0363_http_file_upload.vala
diff options
context:
space:
mode:
authorfrosty <frostinator33@airmail.cc>2026-10-26 10:21:57 -0400
committerfrosty <frostinator33@airmail.cc>2026-10-26 10:21:57 -0400
commit74aecd8b0986d07b50b7ce310d64e645b8b54e38 (patch)
tree560e6434f183eb54cd779936f3a4c9575146a066 /xmpp-vala/src/module/xep/0363_http_file_upload.vala
parent3d7e90d401da02d430a87db0ec7e1db3a6f1a68f (diff)
parent4436001bb361ad4f9e4e05819214ecf0ea77c063 (diff)
Merge 'upstream/master'
Diffstat (limited to 'xmpp-vala/src/module/xep/0363_http_file_upload.vala')
-rw-r--r--xmpp-vala/src/module/xep/0363_http_file_upload.vala30
1 files changed, 17 insertions, 13 deletions
diff --git a/xmpp-vala/src/module/xep/0363_http_file_upload.vala b/xmpp-vala/src/module/xep/0363_http_file_upload.vala
index cba422ba..bd82109b 100644
--- a/xmpp-vala/src/module/xep/0363_http_file_upload.vala
+++ b/xmpp-vala/src/module/xep/0363_http_file_upload.vala
@@ -117,24 +117,28 @@ public class Module : XmppStreamModule {
public override string get_id() { return IDENTITY.id; }
private async void query_availability(XmppStream stream) {
- ServiceDiscovery.InfoResult? info_result = yield stream.get_module(ServiceDiscovery.Module.IDENTITY).request_info(stream, stream.remote_name);
- bool available = check_ns_in_info(stream, stream.remote_name, info_result);
- if (!available) {
- ServiceDiscovery.ItemsResult? items_result = yield stream.get_module(ServiceDiscovery.Module.IDENTITY).request_items(stream, stream.remote_name);
- if (items_result == null) return;
+ try {
+ ServiceDiscovery.InfoResult? info_result = yield stream.get_module(ServiceDiscovery.Module.IDENTITY).request_info(stream, stream.remote_name);
+ bool available = check_ns_in_info(stream, stream.remote_name, info_result);
+ if (!available) {
+ ServiceDiscovery.ItemsResult? items_result = yield stream.get_module(ServiceDiscovery.Module.IDENTITY).request_items(stream, stream.remote_name);
+ if (items_result == null) return;
- for (int i = 0; i < 2; i++) {
- foreach (Xep.ServiceDiscovery.Item item in items_result.items) {
+ for (int i = 0; i < 2; i++) {
+ foreach (Xep.ServiceDiscovery.Item item in items_result.items) {
- // First try the promising items and only afterwards all the others
- bool promising_upload_item = item.jid.to_string().has_prefix("upload");
- if ((i == 0 && !promising_upload_item) || (i == 1) && promising_upload_item) continue;
+ // First try the promising items and only afterwards all the others
+ bool promising_upload_item = item.jid.to_string().has_prefix("upload");
+ if ((i == 0 && !promising_upload_item) || (i == 1) && promising_upload_item) continue;
- ServiceDiscovery.InfoResult? info_result2 = yield stream.get_module(ServiceDiscovery.Module.IDENTITY).request_info(stream, item.jid);
- bool available2 = check_ns_in_info(stream, item.jid, info_result2);
- if (available2) return;
+ ServiceDiscovery.InfoResult? info_result2 = yield stream.get_module(ServiceDiscovery.Module.IDENTITY).request_info(stream, item.jid);
+ bool available2 = check_ns_in_info(stream, item.jid, info_result2);
+ if (available2) return;
+ }
}
}
+ } catch (IOError e) {
+ warning("Error querying file upload availability: %s", e.message);
}
}