diff options
| author | frosty <frostinator33@airmail.cc> | 2026-10-26 10:21:57 -0400 |
|---|---|---|
| committer | frosty <frostinator33@airmail.cc> | 2026-10-26 10:21:57 -0400 |
| commit | 74aecd8b0986d07b50b7ce310d64e645b8b54e38 (patch) | |
| tree | 560e6434f183eb54cd779936f3a4c9575146a066 /xmpp-vala/src/module/xep/0363_http_file_upload.vala | |
| parent | 3d7e90d401da02d430a87db0ec7e1db3a6f1a68f (diff) | |
| parent | 4436001bb361ad4f9e4e05819214ecf0ea77c063 (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.vala | 30 |
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); } } |
