mirror of
https://github.com/TakeV-Lambda/dino.git
synced 2024-11-25 08:24:19 +00:00
OMEMO: Make device list public
This commit is contained in:
parent
e0ece2aa62
commit
95fefaff51
1 changed files with 9 additions and 6 deletions
|
@ -78,7 +78,9 @@ public class StreamModule : XmppStreamModule {
|
||||||
if (!am_on_devicelist) {
|
if (!am_on_devicelist) {
|
||||||
debug("Not on device list, adding id");
|
debug("Not on device list, adding id");
|
||||||
node.put_node(new StanzaNode.build("device", NS_URI).put_attribute("id", store.local_registration_id.to_string()));
|
node.put_node(new StanzaNode.build("device", NS_URI).put_attribute("id", store.local_registration_id.to_string()));
|
||||||
stream.get_module(Pubsub.Module.IDENTITY).publish.begin(stream, jid, NODE_DEVICELIST, id, node);
|
stream.get_module(Pubsub.Module.IDENTITY).publish.begin(stream, jid, NODE_DEVICELIST, id, node, null, true, () => {
|
||||||
|
try_make_node_public.begin(stream, NODE_DEVICELIST);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
publish_bundles_if_needed(stream, jid);
|
publish_bundles_if_needed(stream, jid);
|
||||||
}
|
}
|
||||||
|
@ -298,19 +300,20 @@ public class StreamModule : XmppStreamModule {
|
||||||
}
|
}
|
||||||
bundle.put_node(prekeys);
|
bundle.put_node(prekeys);
|
||||||
|
|
||||||
yield stream.get_module(Pubsub.Module.IDENTITY).publish(stream, null, @"$NODE_BUNDLES:$device_id", "1", bundle);
|
string node_id = @"$NODE_BUNDLES:$device_id";
|
||||||
yield try_make_bundle_public(stream, device_id);
|
yield stream.get_module(Pubsub.Module.IDENTITY).publish(stream, null, node_id, "1", bundle);
|
||||||
|
yield try_make_node_public(stream, node_id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void try_make_bundle_public(XmppStream stream, int32 device_id) {
|
private async void try_make_node_public(XmppStream stream, string node_id) {
|
||||||
DataForms.DataForm? data_form = yield stream.get_module(Pubsub.Module.IDENTITY).request_node_config(stream, null, @"$NODE_BUNDLES:$device_id");
|
DataForms.DataForm? data_form = yield stream.get_module(Pubsub.Module.IDENTITY).request_node_config(stream, null, node_id);
|
||||||
if (data_form == null) return;
|
if (data_form == null) return;
|
||||||
|
|
||||||
foreach (DataForms.DataForm.Field field in data_form.fields) {
|
foreach (DataForms.DataForm.Field field in data_form.fields) {
|
||||||
if (field.var == "pubsub#access_model" && field.get_value_string() != Pubsub.ACCESS_MODEL_OPEN) {
|
if (field.var == "pubsub#access_model" && field.get_value_string() != Pubsub.ACCESS_MODEL_OPEN) {
|
||||||
field.set_value_string(Pubsub.ACCESS_MODEL_OPEN);
|
field.set_value_string(Pubsub.ACCESS_MODEL_OPEN);
|
||||||
yield stream.get_module(Pubsub.Module.IDENTITY).submit_node_config(stream, data_form, @"$NODE_BUNDLES:$device_id");
|
yield stream.get_module(Pubsub.Module.IDENTITY).submit_node_config(stream, data_form, node_id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue