aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2020-04-24 14:19:42 +0200
committerfiaxh <git@lightrise.org>2020-04-24 14:19:42 +0200
commitf8f305efe551838c780dce4224c06bed695d8a62 (patch)
tree1e5b9f6988d0bb911a53d3234eba464873e6984b
parent1db94905ae7af1c1aed475a090dfb09e59fb2520 (diff)
downloaddino-f8f305efe551838c780dce4224c06bed695d8a62.tar.gz
dino-f8f305efe551838c780dce4224c06bed695d8a62.zip
xmpp-vala: Use more async
-rw-r--r--libdino/src/service/connection_manager.vala2
-rw-r--r--xmpp-vala/src/module/iq/module.vala10
-rw-r--r--xmpp-vala/src/module/roster/module.vala2
-rw-r--r--xmpp-vala/src/module/session.vala12
-rw-r--r--xmpp-vala/src/module/xep/0030_service_discovery/module.vala2
-rw-r--r--xmpp-vala/src/module/xep/0045_muc/module.vala52
-rw-r--r--xmpp-vala/src/module/xep/0047_in_band_bytestreams.vala2
-rw-r--r--xmpp-vala/src/module/xep/0048_bookmarks.vala33
-rw-r--r--xmpp-vala/src/module/xep/0049_private_xml_storage.vala15
-rw-r--r--xmpp-vala/src/module/xep/0065_socks5_bytestreams.vala2
-rw-r--r--xmpp-vala/src/module/xep/0077_in_band_registration.vala35
-rw-r--r--xmpp-vala/src/module/xep/0166_jingle.vala2
-rw-r--r--xmpp-vala/src/module/xep/0191_blocking_command.vala2
-rw-r--r--xmpp-vala/src/module/xep/0199_ping.vala15
-rw-r--r--xmpp-vala/src/module/xep/0280_message_carbons.vala8
-rw-r--r--xmpp-vala/src/module/xep/0313_message_archive_management.vala19
16 files changed, 90 insertions, 123 deletions
diff --git a/libdino/src/service/connection_manager.vala b/libdino/src/service/connection_manager.vala
index 000a4bfa..cd5f7384 100644
--- a/libdino/src/service/connection_manager.vala
+++ b/libdino/src/service/connection_manager.vala
@@ -223,7 +223,7 @@ public class ConnectionManager : Object {
DateTime? last_activity_was = connections[account].last_activity;
XmppStream stream = connections[account].stream;
- stream.get_module(Xep.Ping.Module.IDENTITY).send_ping(stream, account.bare_jid.domain_jid, () => {
+ stream.get_module(Xep.Ping.Module.IDENTITY).send_ping.begin(stream, account.bare_jid.domain_jid, () => {
acked = true;
if (connections[account].stream != stream) return;
change_connection_state(account, ConnectionState.CONNECTED);
diff --git a/xmpp-vala/src/module/iq/module.vala b/xmpp-vala/src/module/iq/module.vala
index 51a5f359..9deb0422 100644
--- a/xmpp-vala/src/module/iq/module.vala
+++ b/xmpp-vala/src/module/iq/module.vala
@@ -54,7 +54,7 @@ namespace Xmpp.Iq {
public override string get_ns() { return NS_URI; }
public override string get_id() { return IDENTITY.id; }
- private void on_received_iq_stanza(XmppStream stream, StanzaNode node) {
+ private async void on_received_iq_stanza(XmppStream stream, StanzaNode node) {
Iq.Stanza iq = new Iq.Stanza.from_stanza(node, stream.has_flag(Bind.Flag.IDENTITY) ? stream.get_flag(Bind.Flag.IDENTITY).my_jid : null);
if (iq.type_ == Iq.Stanza.TYPE_RESULT || iq.is_error()) {
@@ -71,9 +71,9 @@ namespace Xmpp.Iq {
Gee.List<Handler> handlers = namespaceRegistrants[children[0].ns_uri];
foreach (Handler handler in handlers) {
if (iq.type_ == Iq.Stanza.TYPE_GET) {
- handler.on_iq_get(stream, iq);
+ yield handler.on_iq_get(stream, iq);
} else if (iq.type_ == Iq.Stanza.TYPE_SET) {
- handler.on_iq_set(stream, iq);
+ yield handler.on_iq_set(stream, iq);
}
}
} else {
@@ -94,11 +94,11 @@ namespace Xmpp.Iq {
}
public interface Handler : Object {
- public virtual void on_iq_get(XmppStream stream, Iq.Stanza iq) {
+ public async virtual void on_iq_get(XmppStream stream, Iq.Stanza iq) {
Iq.Stanza bad_request = new Iq.Stanza.error(iq, new ErrorStanza.bad_request("unexpected IQ get for this namespace"));
stream.get_module(Module.IDENTITY).send_iq(stream, bad_request);
}
- public virtual void on_iq_set(XmppStream stream, Iq.Stanza iq) {
+ public async virtual void on_iq_set(XmppStream stream, Iq.Stanza iq) {
Iq.Stanza bad_request = new Iq.Stanza.error(iq, new ErrorStanza.bad_request("unexpected IQ set for this namespace"));
stream.get_module(Module.IDENTITY).send_iq(stream, bad_request);
}
diff --git a/xmpp-vala/src/module/roster/module.vala b/xmpp-vala/src/module/roster/module.vala
index 58286df8..d2ab697d 100644
--- a/xmpp-vala/src/module/roster/module.vala
+++ b/xmpp-vala/src/module/roster/module.vala
@@ -44,7 +44,7 @@ public class Module : XmppStreamModule, Iq.Handler {
roster_set(stream, item);
}
- public void on_iq_set(XmppStream stream, Iq.Stanza iq) {
+ public async void on_iq_set(XmppStream stream, Iq.Stanza iq) {
StanzaNode? query_node = iq.stanza.get_subnode("query", NS_URI);
if (query_node == null) return;
if (!iq.from.equals(stream.get_flag(Bind.Flag.IDENTITY).my_jid.bare_jid)) {
diff --git a/xmpp-vala/src/module/session.vala b/xmpp-vala/src/module/session.vala
index c9e88a27..b1436d1e 100644
--- a/xmpp-vala/src/module/session.vala
+++ b/xmpp-vala/src/module/session.vala
@@ -22,16 +22,16 @@ public class Module : XmppStreamNegotiationModule {
public override string get_ns() { return NS_URI; }
public override string get_id() { return IDENTITY.id; }
- private void on_bound_resource(XmppStream stream, Jid my_jid) {
+ private async void on_bound_resource(XmppStream stream, Jid my_jid) {
StanzaNode? session_node = stream.features.get_subnode("session", NS_URI);
if (session_node != null && session_node.get_subnode("optional", NS_URI) == null) {
stream.add_flag(new Flag());
Iq.Stanza iq = new Iq.Stanza.set(new StanzaNode.build("session", NS_URI).add_self_xmlns()) { to=stream.remote_name };
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq, (stream, iq) => {
- if (!iq.is_error()) {
- stream.get_flag(Flag.IDENTITY).finished = true;
- }
- });
+
+ Iq.Stanza result_iq = yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
+ if (!result_iq.is_error()) {
+ stream.get_flag(Flag.IDENTITY).finished = true;
+ }
}
}
}
diff --git a/xmpp-vala/src/module/xep/0030_service_discovery/module.vala b/xmpp-vala/src/module/xep/0030_service_discovery/module.vala
index e63dee74..708d5311 100644
--- a/xmpp-vala/src/module/xep/0030_service_discovery/module.vala
+++ b/xmpp-vala/src/module/xep/0030_service_discovery/module.vala
@@ -100,7 +100,7 @@ public class Module : XmppStreamModule, Iq.Handler {
return result;
}
- public void on_iq_get(XmppStream stream, Iq.Stanza iq) {
+ public async void on_iq_get(XmppStream stream, Iq.Stanza iq) {
StanzaNode? query_node = iq.stanza.get_subnode("query", NS_URI_INFO);
if (query_node != null) {
send_query_result(stream, iq);
diff --git a/xmpp-vala/src/module/xep/0045_muc/module.vala b/xmpp-vala/src/module/xep/0045_muc/module.vala
index 3434c138..f8845427 100644
--- a/xmpp-vala/src/module/xep/0045_muc/module.vala
+++ b/xmpp-vala/src/module/xep/0045_muc/module.vala
@@ -333,9 +333,9 @@ public class Module : XmppStreamModule {
Jid bare_jid = presence.from.bare_jid;
if (flag.get_enter_id(bare_jid) != null) {
- query_affiliation(stream, bare_jid, "member", null);
- query_affiliation(stream, bare_jid, "admin", null);
- query_affiliation(stream, bare_jid, "owner", null);
+ query_affiliation.begin(stream, bare_jid, "member");
+ query_affiliation.begin(stream, bare_jid, "admin");
+ query_affiliation.begin(stream, bare_jid, "owner");
flag.finish_muc_enter(bare_jid, presence.from.resourcepart);
flag.enter_futures[bare_jid].set_value(new JoinResult() {nick=presence.from.resourcepart});
@@ -437,36 +437,38 @@ public class Module : XmppStreamModule {
room_info_updated(stream, jid);
}
- public delegate void OnAffiliationResult(XmppStream stream, Gee.List<Jid> jids);
- private void query_affiliation(XmppStream stream, Jid jid, string affiliation, owned OnAffiliationResult? listener) {
+ private async Gee.List<Jid>? query_affiliation(XmppStream stream, Jid jid, string affiliation) {
Iq.Stanza iq = new Iq.Stanza.get(
new StanzaNode.build("query", NS_URI_ADMIN)
.add_self_xmlns()
.put_node(new StanzaNode.build("item", NS_URI_ADMIN)
.put_attribute("affiliation", affiliation))
) { to=jid };
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq, (stream, iq) => {
- if (iq.is_error()) return;
- StanzaNode? query_node = iq.stanza.get_subnode("query", NS_URI_ADMIN);
- if (query_node == null) return;
- Gee.List<StanzaNode> item_nodes = query_node.get_subnodes("item", NS_URI_ADMIN);
- Gee.List<Jid> ret_jids = new ArrayList<Jid>(Jid.equals_func);
- foreach (StanzaNode item in item_nodes) {
- string jid__ = item.get_attribute("jid");
- string? affiliation_ = item.get_attribute("affiliation");
- if (jid__ != null && affiliation_ != null) {
- try {
- Jid jid_ = new Jid(jid__);
- stream.get_flag(Flag.IDENTITY).set_offline_member(iq.from, jid_, parse_affiliation(affiliation_));
- ret_jids.add(jid_);
- received_occupant_jid(stream, iq.from, jid_);
- } catch (InvalidJidError e) {
- warning("Received invalid occupant jid: %s", e.message);
- }
+
+
+ Iq.Stanza iq_result = yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
+ if (iq_result.is_error()) return null;
+
+ StanzaNode? query_node = iq_result.stanza.get_subnode("query", NS_URI_ADMIN);
+ if (query_node == null) return null;
+
+ Gee.List<StanzaNode> item_nodes = query_node.get_subnodes("item", NS_URI_ADMIN);
+ Gee.List<Jid> ret_jids = new ArrayList<Jid>(Jid.equals_func);
+ foreach (StanzaNode item in item_nodes) {
+ string jid__ = item.get_attribute("jid");
+ string? affiliation_ = item.get_attribute("affiliation");
+ if (jid__ != null && affiliation_ != null) {
+ try {
+ Jid jid_ = new Jid(jid__);
+ stream.get_flag(Flag.IDENTITY).set_offline_member(iq_result.from, jid_, parse_affiliation(affiliation_));
+ ret_jids.add(jid_);
+ received_occupant_jid(stream, iq_result.from, jid_);
+ } catch (InvalidJidError e) {
+ warning("Received invalid occupant jid: %s", e.message);
}
}
- if (listener != null) listener(stream, ret_jids);
- });
+ }
+ return ret_jids;
}
private static ArrayList<int> get_status_codes(StanzaNode x_node) {
diff --git a/xmpp-vala/src/module/xep/0047_in_band_bytestreams.vala b/xmpp-vala/src/module/xep/0047_in_band_bytestreams.vala
index 9aa2d98c..1e423b49 100644
--- a/xmpp-vala/src/module/xep/0047_in_band_bytestreams.vala
+++ b/xmpp-vala/src/module/xep/0047_in_band_bytestreams.vala
@@ -18,7 +18,7 @@ public class Module : XmppStreamModule, Iq.Handler {
stream.get_module(Iq.Module.IDENTITY).unregister_from_namespace(NS_URI, this);
}
- public void on_iq_set(XmppStream stream, Iq.Stanza iq) {
+ public async void on_iq_set(XmppStream stream, Iq.Stanza iq) {
// the iq module ensures that there's only one child node
StanzaNode? node = null;
node = (node != null) ? node : iq.stanza.get_subnode("open", NS_URI);
diff --git a/xmpp-vala/src/module/xep/0048_bookmarks.vala b/xmpp-vala/src/module/xep/0048_bookmarks.vala
index daacf1a4..90a0c2e7 100644
--- a/xmpp-vala/src/module/xep/0048_bookmarks.vala
+++ b/xmpp-vala/src/module/xep/0048_bookmarks.vala
@@ -7,25 +7,21 @@ public class Module : BookmarksProvider, XmppStreamModule {
public static ModuleIdentity<Module> IDENTITY = new ModuleIdentity<Module>(NS_URI, "0048_bookmarks_module");
public async Set<Conference>? get_conferences(XmppStream stream) {
- Set<Conference> ret = new HashSet<Conference>(Conference.hash_func, Conference.equals_func);
StanzaNode get_node = new StanzaNode.build("storage", NS_URI).add_self_xmlns();
- stream.get_module(PrivateXmlStorage.Module.IDENTITY).retrieve(stream, get_node, (stream, node) => {
- if (node != null) {
- Gee.List<StanzaNode> conferences_node = node.get_subnode("storage", NS_URI).get_subnodes("conference", NS_URI);
- foreach (StanzaNode conference_node in conferences_node) {
- Conference? conference = Bookmarks1Conference.create_from_stanza_node(conference_node);
- ret.add(conference);
- }
- }
- Idle.add(get_conferences.callback);
- });
- yield;
+ StanzaNode? result_node = yield stream.get_module(PrivateXmlStorage.Module.IDENTITY).retrieve(stream, get_node);
+ if (result_node == null) return null;
+ Set<Conference> ret = new HashSet<Conference>(Conference.hash_func, Conference.equals_func);
+ Gee.List<StanzaNode> conferences_node = result_node.get_subnode("storage", NS_URI).get_subnodes("conference", NS_URI);
+ foreach (StanzaNode conference_node in conferences_node) {
+ Conference? conference = Bookmarks1Conference.create_from_stanza_node(conference_node);
+ ret.add(conference);
+ }
return ret;
}
- private void set_conferences(XmppStream stream, Set<Conference> conferences) {
+ private async void set_conferences(XmppStream stream, Set<Conference> conferences) {
StanzaNode storage_node = (new StanzaNode.build("storage", NS_URI)).add_self_xmlns();
foreach (Conference conference in conferences) {
Bookmarks1Conference? bookmarks1conference = conference as Bookmarks1Conference;
@@ -46,15 +42,14 @@ public class Module : BookmarksProvider, XmppStreamModule {
storage_node.put_node(conference_node);
}
}
- stream.get_module(PrivateXmlStorage.Module.IDENTITY).store(stream, storage_node, (stream) => {
- stream.get_module(Module.IDENTITY).received_conferences(stream, conferences);
- });
+ yield stream.get_module(PrivateXmlStorage.Module.IDENTITY).store(stream, storage_node);
+ stream.get_module(Module.IDENTITY).received_conferences(stream, conferences);
}
public async void add_conference(XmppStream stream, Conference conference) {
Set<Conference>? conferences = yield get_conferences(stream);
conferences.add(conference);
- set_conferences(stream, conferences);
+ yield set_conferences(stream, conferences);
}
public async void replace_conference(XmppStream stream, Jid muc_jid, Conference modified_conference) {
@@ -67,13 +62,13 @@ public class Module : BookmarksProvider, XmppStreamModule {
conference.password = modified_conference.password;
}
}
- set_conferences(stream, conferences);
+ yield set_conferences(stream, conferences);
}
public async void remove_conference(XmppStream stream, Conference conference_remove) {
Set<Conference>? conferences = yield get_conferences(stream);
conferences.remove(conference_remove);
- set_conferences(stream, conferences);
+ yield set_conferences(stream, conferences);
}
public override void attach(XmppStream stream) { }
diff --git a/xmpp-vala/src/module/xep/0049_private_xml_storage.vala b/xmpp-vala/src/module/xep/0049_private_xml_storage.vala
index 5b3eb1b6..81ccde9b 100644
--- a/xmpp-vala/src/module/xep/0049_private_xml_storage.vala
+++ b/xmpp-vala/src/module/xep/0049_private_xml_storage.vala
@@ -6,22 +6,17 @@ namespace Xmpp.Xep.PrivateXmlStorage {
public class Module : XmppStreamModule {
public static ModuleIdentity<Module> IDENTITY = new ModuleIdentity<Module>(NS_URI, "0049_private_xml_storage");
- public delegate void OnSuccess(XmppStream stream);
- public void store(XmppStream stream, StanzaNode node, owned OnSuccess listener) {
+ public async void store(XmppStream stream, StanzaNode node) {
StanzaNode queryNode = new StanzaNode.build("query", NS_URI).add_self_xmlns().put_node(node);
Iq.Stanza iq = new Iq.Stanza.set(queryNode);
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq, (stream, iq) => {
- listener(stream);
- });
+ yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
}
- public delegate void OnResponse(XmppStream stream, StanzaNode? node);
- public void retrieve(XmppStream stream, StanzaNode node, owned OnResponse listener) {
+ public async StanzaNode? retrieve(XmppStream stream, StanzaNode node) {
StanzaNode queryNode = new StanzaNode.build("query", NS_URI).add_self_xmlns().put_node(node);
Iq.Stanza iq = new Iq.Stanza.get(queryNode);
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq, (stream, iq) => {
- listener(stream, iq.stanza.get_subnode("query", NS_URI));
- });
+ Iq.Stanza iq_result = yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
+ return iq_result.stanza.get_subnode("query", NS_URI);
}
public override void attach(XmppStream stream) { }
diff --git a/xmpp-vala/src/module/xep/0065_socks5_bytestreams.vala b/xmpp-vala/src/module/xep/0065_socks5_bytestreams.vala
index 2631040d..bdc54879 100644
--- a/xmpp-vala/src/module/xep/0065_socks5_bytestreams.vala
+++ b/xmpp-vala/src/module/xep/0065_socks5_bytestreams.vala
@@ -27,7 +27,7 @@ public class Module : XmppStreamModule, Iq.Handler {
}
public override void detach(XmppStream stream) { }
- public void on_iq_set(XmppStream stream, Iq.Stanza iq) { }
+ public async void on_iq_set(XmppStream stream, Iq.Stanza iq) { }
public Gee.List<Proxy> get_proxies(XmppStream stream) {
return stream.get_flag(Flag.IDENTITY).proxies;
diff --git a/xmpp-vala/src/module/xep/0077_in_band_registration.vala b/xmpp-vala/src/module/xep/0077_in_band_registration.vala
index f7bfeb26..c67ef987 100644
--- a/xmpp-vala/src/module/xep/0077_in_band_registration.vala
+++ b/xmpp-vala/src/module/xep/0077_in_band_registration.vala
@@ -8,34 +8,27 @@ public class Module : XmppStreamNegotiationModule {
public static ModuleIdentity<Module> IDENTITY = new ModuleIdentity<Module>(NS_URI, "0077_in_band_registration");
public async Form? get_from_server(XmppStream stream, Jid jid) {
- Iq.Stanza request_form_iq = new Iq.Stanza.get(new StanzaNode.build("query", NS_URI).add_self_xmlns());
+ StanzaNode query_node = new StanzaNode.build("query", NS_URI).add_self_xmlns();
+ Iq.Stanza request_form_iq = new Iq.Stanza.get(query_node) { to=jid };
request_form_iq.to = jid;
SourceFunc callback = get_from_server.callback;
- Form? form = null;
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, request_form_iq, (stream, response_iq) => {
- form = new Form.from_node(stream, response_iq);
- Idle.add((owned)callback);
- });
- yield;
- return form;
+
+ Iq.Stanza iq_result = yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, request_form_iq);
+ return new Form.from_node(stream, iq_result);
}
public async string? submit_to_server(XmppStream stream, Jid jid, Form form) {
StanzaNode query_node = new StanzaNode.build("query", NS_URI).add_self_xmlns();
query_node.put_node(form.get_submit_node());
- Iq.Stanza iq = new Iq.Stanza.set(query_node);
- iq.to = jid;
- string? error_message = null;
- SourceFunc callback = submit_to_server.callback;
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq, (stream, response_iq) => {
- if (response_iq.is_error()) {
- ErrorStanza? error_stanza = response_iq.get_error();
- error_message = error_stanza.text ?? "Error";
- }
- Idle.add((owned)callback);
- });
- yield;
- return error_message;
+ Iq.Stanza iq = new Iq.Stanza.set(query_node) { to=jid };
+
+ Iq.Stanza iq_result = yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
+ if (iq_result.is_error()) {
+ ErrorStanza? error_stanza = iq_result.get_error();
+ return error_stanza.text ?? "Error";
+ }
+
+ return null;
}
public override bool mandatory_outstanding(XmppStream stream) { return false; }
diff --git a/xmpp-vala/src/module/xep/0166_jingle.vala b/xmpp-vala/src/module/xep/0166_jingle.vala
index 7274c757..15c310bd 100644
--- a/xmpp-vala/src/module/xep/0166_jingle.vala
+++ b/xmpp-vala/src/module/xep/0166_jingle.vala
@@ -295,7 +295,7 @@ public class Module : XmppStreamModule, Iq.Handler {
current_stream.get_flag(Flag.IDENTITY).remove_session(sid);
}
- public void on_iq_set(XmppStream stream, Iq.Stanza iq) {
+ public async void on_iq_set(XmppStream stream, Iq.Stanza iq) {
try {
handle_iq_set(stream, iq);
} catch (IqError e) {
diff --git a/xmpp-vala/src/module/xep/0191_blocking_command.vala b/xmpp-vala/src/module/xep/0191_blocking_command.vala
index fbedc8b3..be312581 100644
--- a/xmpp-vala/src/module/xep/0191_blocking_command.vala
+++ b/xmpp-vala/src/module/xep/0191_blocking_command.vala
@@ -45,7 +45,7 @@ public class Module : XmppStreamModule, Iq.Handler {
return stream.has_flag(Flag.IDENTITY);
}
- private void on_iq_set(XmppStream stream, Iq.Stanza iq) {
+ private async void on_iq_set(XmppStream stream, Iq.Stanza iq) {
StanzaNode? block_node = iq.stanza.get_subnode("block", NS_URI);
StanzaNode? unblock_node = iq.stanza.get_subnode("unblock", NS_URI);
Gee.List<string> jids;
diff --git a/xmpp-vala/src/module/xep/0199_ping.vala b/xmpp-vala/src/module/xep/0199_ping.vala
index 07ee8ec8..12997f32 100644
--- a/xmpp-vala/src/module/xep/0199_ping.vala
+++ b/xmpp-vala/src/module/xep/0199_ping.vala
@@ -6,13 +6,10 @@ namespace Xmpp.Xep.Ping {
public class Module : XmppStreamModule, Iq.Handler {
public static ModuleIdentity<Module> IDENTITY = new ModuleIdentity<Module>(NS_URI, "0199_ping");
- public delegate void OnResult(XmppStream stream);
- public void send_ping(XmppStream stream, Jid jid, owned OnResult? listener) {
- Iq.Stanza iq = new Iq.Stanza.get(new StanzaNode.build("ping", NS_URI).add_self_xmlns());
- iq.to = jid;
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq, (stream) => {
- if (listener != null) listener(stream);
- });
+ public async void send_ping(XmppStream stream, Jid jid) {
+ StanzaNode ping_node = new StanzaNode.build("ping", NS_URI).add_self_xmlns();
+ Iq.Stanza iq = new Iq.Stanza.get(ping_node) { to=jid };
+ yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
}
public override void attach(XmppStream stream) {
@@ -25,8 +22,8 @@ namespace Xmpp.Xep.Ping {
stream.get_module(ServiceDiscovery.Module.IDENTITY).remove_feature(stream, NS_URI);
}
- public void on_iq_get(XmppStream stream, Iq.Stanza iq) {
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, new Iq.Stanza.result(iq));
+ public async void on_iq_get(XmppStream stream, Iq.Stanza iq) {
+ yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, new Iq.Stanza.result(iq));
}
public override string get_ns() { return NS_URI; }
diff --git a/xmpp-vala/src/module/xep/0280_message_carbons.vala b/xmpp-vala/src/module/xep/0280_message_carbons.vala
index 8d45ad38..cfc95262 100644
--- a/xmpp-vala/src/module/xep/0280_message_carbons.vala
+++ b/xmpp-vala/src/module/xep/0280_message_carbons.vala
@@ -7,14 +7,14 @@ public class Module : XmppStreamModule {
private ReceivedPipelineListener received_pipeline_listener = new ReceivedPipelineListener();
- public void enable(XmppStream stream) {
+ public async void enable(XmppStream stream) {
Iq.Stanza iq = new Iq.Stanza.set(new StanzaNode.build("enable", NS_URI).add_self_xmlns());
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq);
+ yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
}
- public void disable(XmppStream stream) {
+ public async void disable(XmppStream stream) {
Iq.Stanza iq = new Iq.Stanza.set(new StanzaNode.build("disable", NS_URI).add_self_xmlns());
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq);
+ yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
}
public override void attach(XmppStream stream) {
diff --git a/xmpp-vala/src/module/xep/0313_message_archive_management.vala b/xmpp-vala/src/module/xep/0313_message_archive_management.vala
index bba52702..dfb3bb7a 100644
--- a/xmpp-vala/src/module/xep/0313_message_archive_management.vala
+++ b/xmpp-vala/src/module/xep/0313_message_archive_management.vala
@@ -56,18 +56,10 @@ public class Module : XmppStreamModule {
if (stream.get_flag(Flag.IDENTITY) == null) return null;
var query_node = crate_base_query(stream, jid, query_id, start_time, end_time);
-
query_node.put_node(create_set_rsm_node(end_id));
Iq.Stanza iq = new Iq.Stanza.set(query_node);
- Iq.Stanza? result_iq = null;
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq, (stream, iq) => {
- result_iq = iq;
- Idle.add(query_archive.callback);
- });
- yield;
-
- return result_iq;
+ return yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq);
}
public override void attach(XmppStream stream) {
@@ -98,14 +90,7 @@ public class Module : XmppStreamModule {
Iq.Stanza paging_iq = new Iq.Stanza.set(query_node);
- Iq.Stanza? result_iq = null;
- stream.get_module(Iq.Module.IDENTITY).send_iq(stream, paging_iq, (stream, iq) => {
- result_iq = iq;
- Idle.add(page_through_results.callback);
- });
- yield;
-
- return result_iq;
+ return yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, paging_iq);
}
private async void query_availability(XmppStream stream) {