From 630b1368331ef0034b343bd2f00b116c8cd90391 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 4 Oct 2026 17:49:16 +0200 Subject: Fix some warnings --- xmpp-vala/src/core/stanza_node.vala | 92 ++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 42 deletions(-) (limited to 'xmpp-vala/src/core/stanza_node.vala') diff --git a/xmpp-vala/src/core/stanza_node.vala b/xmpp-vala/src/core/stanza_node.vala index f44657f1..7a68da62 100644 --- a/xmpp-vala/src/core/stanza_node.vala +++ b/xmpp-vala/src/core/stanza_node.vala @@ -18,54 +18,62 @@ public abstract class StanzaEntry { public string? encoded_val { owned get { if (val == null) return null; - return ENCODABLE_VALUE_CHARS.replace_eval(val, -1, 0, 0, (match_info, result_builder) => { - int start; - match_info.fetch_pos(0, out start, null); - unowned string src = match_info.get_string(); - switch (src[start]) { - case '&': result_builder.append("&"); break; - case '"': result_builder.append("""); break; - case '\'': result_builder.append("'"); break; - case '<': result_builder.append("<"); break; - case '>': result_builder.append(">"); break; - default: error("Unreachable"); break; - } - return false; - }); + try { + return ENCODABLE_VALUE_CHARS.replace_eval(val, -1, 0, 0, (match_info, result_builder) => { + int start; + match_info.fetch_pos(0, out start, null); + unowned string src = match_info.get_string(); + switch (src[start]) { + case '&': result_builder.append("&"); break; + case '"': result_builder.append("""); break; + case '\'': result_builder.append("'"); break; + case '<': result_builder.append("<"); break; + case '>': result_builder.append(">"); break; + default: error("Unreachable"); break; + } + return false; + }); + } catch (RegexError e) { + error("Error encoding entities in string \"%s\": %s", val, e.message); + } } set { if (value == null) { val = null; return; } - val = DECODABLE_VALUE_SEQUENCES.replace_eval(value, -1, 0, 0, (match_info, result_builder) => { - int start, end; - match_info.fetch_pos(0, out start, out end); - unowned string src = match_info.get_string(); - switch (src[start+1]) { - case 'g': result_builder.append_c('>'); break; - case 'l': result_builder.append_c('<'); break; - case 'q': result_builder.append_c('"'); break; - case 'a': - switch (src[start+2]) { - case 'p': result_builder.append_c('\''); break; - case 'm': result_builder.append_c('&'); break; - default: critical("Invalid encoding: %s in %s", match_info.fetch(0), src); break; - } - break; - case '#': - unichar num = -1; - if (src[start+2] == 'x') { - src.substring(start+3, start-end-3).scanf("%x", &num); - } else { - num = int.parse(src.substring(start+2, start-end-2)); - } - result_builder.append_unichar(num); - break; - default: critical("Invalid encoding: %s in %s", match_info.fetch(0), src); break; - } - return false; - }); + try { + val = DECODABLE_VALUE_SEQUENCES.replace_eval(value, -1, 0, 0, (match_info, result_builder) => { + int start, end; + match_info.fetch_pos(0, out start, out end); + unowned string src = match_info.get_string(); + switch (src[start + 1]) { + case 'g': result_builder.append_c('>'); break; + case 'l': result_builder.append_c('<'); break; + case 'q': result_builder.append_c('"'); break; + case 'a': + switch (src[start + 2]) { + case 'p': result_builder.append_c('\''); break; + case 'm': result_builder.append_c('&'); break; + default: critical("Invalid encoding: %s in %s", match_info.fetch(0), src); break; + } + break; + case '#': + unichar num = -1; + if (src[start + 2] == 'x') { + src.substring(start + 3, start - end - 3).scanf("%x", &num); + } else { + num = int.parse(src.substring(start + 2, start - end - 2)); + } + result_builder.append_unichar(num); + break; + default: critical("Invalid encoding: %s in %s", match_info.fetch(0), src); break; + } + return false; + }); + } catch (RegexError e) { + error("Error decoding entities in string \"%s\": %s", value, e.message); + } } } -- cgit v1.3 From 3e136fc57a2e509e5a4dd265a798b196205b0a80 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 4 Oct 2026 22:02:19 +0200 Subject: Fix more warnings --- libdino/src/service/avatar_manager.vala | 2 +- main/meson.build | 2 +- plugins/omemo/meson.build | 51 --------------------- xmpp-vala/src/core/stanza_node.vala | 2 +- xmpp-vala/src/core/stanza_reader.vala | 11 ++++- xmpp-vala/src/file_content_type.vala | 8 +++- xmpp-vala/src/module/xep/0004_data_forms.vala | 5 -- .../module/xep/0030_service_discovery/module.vala | 17 +++++-- xmpp-vala/src/module/xep/0084_user_avatars.vala | 9 ++-- .../xep/0261_jingle_in_band_bytestreams.vala | 4 -- xmpp-vala/src/module/xep/0272_muji.vala | 10 ++-- .../src/module/xep/0363_http_file_upload.vala | 36 ++++++++------- .../module/xep/0388_extensible_sasl_profile.vala | 24 ++++++---- .../module/xep/0392_consistent_color/hsluv.vala | 53 ++++++++++------------ xmpp-vala/src/module/xep/0410_muc_self_ping.vala | 18 +++++--- .../src/module/xep/0425_message_moderation.vala | 18 +++++--- .../module/xep/0447_stateless_file_sharing.vala | 2 +- .../0490_message_displayed_synchronization.vala | 37 ++++++++++----- xmpp-vala/tests/color.vala | 20 ++++---- xmpp-vala/tests/common.vala | 12 ++--- xmpp-vala/tests/weak_map.vala | 8 ++-- 21 files changed, 171 insertions(+), 178 deletions(-) delete mode 100644 plugins/omemo/meson.build (limited to 'xmpp-vala/src/core/stanza_node.vala') diff --git a/libdino/src/service/avatar_manager.vala b/libdino/src/service/avatar_manager.vala index ac4971ef..7f69f508 100644 --- a/libdino/src/service/avatar_manager.vala +++ b/libdino/src/service/avatar_manager.vala @@ -142,7 +142,7 @@ public class AvatarManager : StreamInteractionModule, Object { public void unset_avatar(Account account) { XmppStream stream = stream_interactor.get_stream(account); if (stream == null) return; - Xmpp.Xep.UserAvatars.unset_avatar(stream); + Xmpp.Xep.UserAvatars.unset_avatar(stream, get_avatar_hash(account, account.bare_jid)); } private void on_account_added(Account account) { diff --git a/main/meson.build b/main/meson.build index cdefcbf7..d9f56e81 100644 --- a/main/meson.build +++ b/main/meson.build @@ -142,7 +142,7 @@ if get_option('rtp').allowed() and dep_gstreamer.found() and dep_gstreamer_app.f voice_sources = files( 'src/plugins/rtp/voice_processor_native.cpp', ) - voice_c_args = c_args + voice_c_args = ['-DG_LOG_DOMAIN="dino"'] if dep_webrtc_audio_processing.version().version_compare('>=2.0') voice_c_args += ['-DWEBRTC2'] elif dep_webrtc_audio_processing.version().version_compare('>=1.0') diff --git a/plugins/omemo/meson.build b/plugins/omemo/meson.build deleted file mode 100644 index 70279946..00000000 --- a/plugins/omemo/meson.build +++ /dev/null @@ -1,51 +0,0 @@ -subdir('po') -dependencies = [ - dep_libadwaita, - dep_dino, - dep_gee, - dep_glib, - dep_gmodule, - dep_gtk4, - dep_libomemo_c, - dep_m, - dep_xmpp_vala, -] -sources = files( -) -sources += gnome.compile_resources( - 'resources', - 'data/gresource.xml', - source_dir: 'data', -) -c_args = vala_c_args + [ - '-DG_LOG_DOMAIN="OMEMO"', - '-DGETTEXT_PACKAGE="dino-omemo"', - '-DLOCALE_INSTALL_DIR="@0@"'.format(get_option('prefix') / get_option('localedir')), -] -vala_args = [ - '--vapidir', meson.current_source_dir() / 'vapi', - # This is to build internal vapi for tests - '--header', meson.current_build_dir() / 'omemo.h', - '--internal-vapi', meson.current_build_dir() / 'omemo-internal.vapi', - '--internal-header', meson.current_build_dir() / 'omemo-internal.h', -] -lib_omemo = shared_library('omemo', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath) -dep_omemo = declare_dependency(link_with: lib_omemo, include_directories: include_directories('.')) -# This is to use the internal vapi instead of the regular -vapi_omemo_internal = custom_target('omemo-internal-vapi', command: [find_program('touch'), meson.current_build_dir() / 'omemo-internal.vapi'], output: ['omemo-internal.vapi'], depends: lib_omemo) -dep_omemo_internal = declare_dependency(link_args: [lib_omemo.full_path()], include_directories: include_directories('.', 'src'), sources: [vapi_omemo_internal]) - -test_sources = [ - 'tests/native/common.vala', - 'tests/native/testcase.vala', - - 'tests/native/curve25519.vala', - 'tests/native/hkdf.vala', - 'tests/native/session_builder.vala', -] -test_vala_args = [ - '--vapidir', meson.current_source_dir() / 'vapi', -] - -exe_omemo_test = executable('omemo-test', test_sources, c_args: c_args, vala_args: test_vala_args, dependencies: dependencies + dep_omemo_internal, build_rpath: '$ORIGIN', install: false) -test('Tests for omemo', exe_omemo_test) diff --git a/xmpp-vala/src/core/stanza_node.vala b/xmpp-vala/src/core/stanza_node.vala index 7a68da62..56f857d4 100644 --- a/xmpp-vala/src/core/stanza_node.vala +++ b/xmpp-vala/src/core/stanza_node.vala @@ -29,7 +29,7 @@ public abstract class StanzaEntry { case '\'': result_builder.append("'"); break; case '<': result_builder.append("<"); break; case '>': result_builder.append(">"); break; - default: error("Unreachable"); break; + default: error("Unreachable"); } return false; }); diff --git a/xmpp-vala/src/core/stanza_reader.vala b/xmpp-vala/src/core/stanza_reader.vala index ff512497..4828600d 100644 --- a/xmpp-vala/src/core/stanza_reader.vala +++ b/xmpp-vala/src/core/stanza_reader.vala @@ -38,8 +38,15 @@ public class StanzaReader { if (cancellable != null && cancellable.is_cancelled()) throw new IOError.CANCELLED("Input stream is canceled."); try { buffer_fill = (int) yield ((!)input).read_async(buffer, GLib.Priority.DEFAULT, cancellable); - } catch (TlsError.EOF e) { - throw new IOError.CLOSED("End of TLS stream reached"); + } catch (Error e) { + if (e is IOError) { + throw (IOError) e; + } else if (e is TlsError.EOF) { + // The error can be TlsError.EOF instead of IOError.CLOSED, fixing that + throw new IOError.CLOSED("End of TLS stream reached"); + } else { + throw new IOError.FAILED("Unknown error: %s", e.message); + } } if (buffer_fill == 0) throw new IOError.CLOSED("End of input stream reached."); buffer_pos = 0; diff --git a/xmpp-vala/src/file_content_type.vala b/xmpp-vala/src/file_content_type.vala index 3656435e..bae493f6 100644 --- a/xmpp-vala/src/file_content_type.vala +++ b/xmpp-vala/src/file_content_type.vala @@ -14,8 +14,12 @@ namespace Xmpp { } public FileContentType.from_file(File file) { - FileInfo file_info = file.query_info("*", FileQueryInfoFlags.NONE); - this.from_file_info(file_info); + try { + FileInfo file_info = file.query_info("*", FileQueryInfoFlags.NONE); + this.from_file_info(file_info); + } catch (Error e) { + warning("Failed reading file content type: %s", e.message); + } } public string? get_mime_type() { diff --git a/xmpp-vala/src/module/xep/0004_data_forms.vala b/xmpp-vala/src/module/xep/0004_data_forms.vala index f481e174..6c16a53d 100644 --- a/xmpp-vala/src/module/xep/0004_data_forms.vala +++ b/xmpp-vala/src/module/xep/0004_data_forms.vala @@ -83,11 +83,6 @@ public class DataForm { value_node.put_node(new StanzaNode.text(val)); } - internal void add_value_string(string val) { - StanzaNode node = new StanzaNode.build("value"); - node.put_node(new StanzaNode.text(val)); - } - internal Gee.List