aboutsummaryrefslogtreecommitdiff
path: root/libdino
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-04 15:43:31 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-09 16:38:02 +0200
commite1fd11775c7d275dd57d7d9202e88ac5173bbeef (patch)
tree6ae817d4a175b5ad3027541133f88590200558f9 /libdino
parent2c445501a4dc56c4a814f457a4669d79ebce0a57 (diff)
Check XmppStream against null
Most of the calls to stream_interactor.get_stream(account) were already doing null checks, but there were still some missing.
Diffstat (limited to 'libdino')
-rw-r--r--libdino/src/service/avatar_manager.vala2
-rw-r--r--libdino/src/service/blocking_manager.vala16
-rw-r--r--libdino/src/service/call_state.vala4
-rw-r--r--libdino/src/service/history_sync.vala9
4 files changed, 21 insertions, 10 deletions
diff --git a/libdino/src/service/avatar_manager.vala b/libdino/src/service/avatar_manager.vala
index b308aa2b..42425c0c 100644
--- a/libdino/src/service/avatar_manager.vala
+++ b/libdino/src/service/avatar_manager.vala
@@ -144,7 +144,7 @@ public class AvatarManager : StreamInteractionModule, Object {
}
uint8[] buffer;
pixbuf.save_to_buffer(out buffer, "png");
- XmppStream stream = stream_interactor.get_stream(account);
+ XmppStream? stream = stream_interactor.get_stream(account);
if (stream != null) {
Xmpp.Xep.UserAvatars.publish_png(stream, buffer, pixbuf.width, pixbuf.height);
}
diff --git a/libdino/src/service/blocking_manager.vala b/libdino/src/service/blocking_manager.vala
index aa07f990..4e26b001 100644
--- a/libdino/src/service/blocking_manager.vala
+++ b/libdino/src/service/blocking_manager.vala
@@ -21,22 +21,26 @@ public class BlockingManager : StreamInteractionModule, Object {
}
public bool is_blocked(Account account, Jid jid) {
- XmppStream stream = stream_interactor.get_stream(account);
+ XmppStream? stream = stream_interactor.get_stream(account);
return stream != null && stream.get_module(Xmpp.Xep.BlockingCommand.Module.IDENTITY).is_blocked(stream, jid.to_string());
}
public void block(Account account, Jid jid) {
- XmppStream stream = stream_interactor.get_stream(account);
- stream.get_module(Xmpp.Xep.BlockingCommand.Module.IDENTITY).block(stream, { jid.to_string() });
+ XmppStream? stream = stream_interactor.get_stream(account);
+ if (stream != null) {
+ stream.get_module(Xmpp.Xep.BlockingCommand.Module.IDENTITY).block(stream, { jid.to_string() });
+ }
}
public void unblock(Account account, Jid jid) {
- XmppStream stream = stream_interactor.get_stream(account);
- stream.get_module(Xmpp.Xep.BlockingCommand.Module.IDENTITY).unblock(stream, { jid.to_string() });
+ XmppStream? stream = stream_interactor.get_stream(account);
+ if (stream != null) {
+ stream.get_module(Xmpp.Xep.BlockingCommand.Module.IDENTITY).unblock(stream, { jid.to_string() });
+ }
}
public bool is_supported(Account account) {
- XmppStream stream = stream_interactor.get_stream(account);
+ XmppStream? stream = stream_interactor.get_stream(account);
return stream != null && stream.get_module(Xmpp.Xep.BlockingCommand.Module.IDENTITY).is_supported(stream);
}
}
diff --git a/libdino/src/service/call_state.vala b/libdino/src/service/call_state.vala
index 65d33557..a753fb19 100644
--- a/libdino/src/service/call_state.vala
+++ b/libdino/src/service/call_state.vala
@@ -126,7 +126,7 @@ public class Dino.CallState : Object {
call.state = Call.State.DECLINED;
if (use_cim) {
- XmppStream stream = stream_interactor.get_stream(call.account);
+ XmppStream? stream = stream_interactor.get_stream(call.account);
if (stream == null) return;
stream.get_module(Xep.CallInvites.Module.IDENTITY).send_reject(stream, cim_counterpart, cim_call_id, cim_message_type);
}
@@ -143,7 +143,7 @@ public class Dino.CallState : Object {
peers_cpy.add_all(peers.values);
if (group_call != null) {
- XmppStream stream = stream_interactor.get_stream(call.account);
+ XmppStream? stream = stream_interactor.get_stream(call.account);
if (stream != null) {
stream.get_module(Xep.Muc.Module.IDENTITY).exit(stream, group_call.muc_jid);
}
diff --git a/libdino/src/service/history_sync.vala b/libdino/src/service/history_sync.vala
index d883fd79..ef7c65e6 100644
--- a/libdino/src/service/history_sync.vala
+++ b/libdino/src/service/history_sync.vala
@@ -366,7 +366,10 @@ public class Dino.HistorySync {
* prev_page_result: null if this is the first page request
**/
private async PageRequestResult get_mam_page(Account account, Xmpp.MessageArchiveManagement.V2.MamQueryParams query_params, PageRequestResult? prev_page_result, Cancellable? cancellable = null) {
- XmppStream stream = stream_interactor.get_stream(account);
+ XmppStream? stream = stream_interactor.get_stream(account);
+ if (stream == null) {
+ return new PageRequestResult.with_result(PageResult.Error);
+ }
Xmpp.MessageArchiveManagement.QueryResult query_result = null;
if (prev_page_result == null) {
query_result = yield Xmpp.MessageArchiveManagement.V2.query_archive(stream, query_params, cancellable);
@@ -592,5 +595,9 @@ public class Dino.HistorySync {
this.query_result = query_result;
this.stanzas = stanzas;
}
+
+ public PageRequestResult.with_result(PageResult page_result) {
+ this.page_result = page_result;
+ }
}
}