Directly use id for initial roster request
[?]
Jan 1, 2019, 5:54 PM
UAT5MV5OUZS4UW3ZOEMNG75WZOS6W4274FI6F65GQX3TH7KWSCXQCDependencies
- [2]
CBWCXUZZPrepare adding new items to roster - [3]
EBETRYK7Add counter for id. Check for jid in roster - [4]
UMTLHH77Process commands in the separate function - [5]
V5HDBSZMUse jid for receiver address - [6]
ALP2YJIURename XmppState to XmppProcessState - [7]
3FYEOGCIMove additional rarely changed data to separate structure - [8]
SU4DNVCBStart to processing roster data - [9]
HCCX7VW6Generate ids from counter - [10]
FWJDW3G5Allow process xmpp incoming stanzas with futures - [11]
FV6BJ5K6Send self-presence and store account info in Rc so it willbe used in some future in parallel - [12]
UIXIQHDYWait for commands via new processing code - [13]
OANBCLN5Move xmpp client into XmppState - [14]
WJNXI6Z4Fill roster - [15]
AYQZ2UIAUpdate deps - [16]
QTCUURXNAdd additional requirement for command stream - [17]
BWDUANCVSecond part of processing result is only about stop_future - [18]
4LRBIGVTShow info about xmpp errors - [19]
5IKA4GO7Rename xmpp client field from "inner" to "client" - [20]
PFC7OJQFQuery roster - [21]
VS6AHRWIMove XMPP to separate dir
Change contents
- replacement in src/xmpp/stanzas.rs at line 4
use xmpp_parsers::roster::{Item, Roster};use xmpp_parsers::roster::Roster; - edit in src/xmpp/stanzas.rs at line 17
ver: None, - edit in src/xmpp/stanzas.rs at line 19
ver: None, - edit in src/xmpp/stanzas.rs at line 22
}pub fn make_add_roster(id: &str, jid: jid::Jid) -> Element {let mut add_roster = Iq::from_set(Roster {items: vec![Item {jid,name: None,subscription: xmpp_parsers::roster::Subscription::None,groups: vec![],}],ver: None,});add_roster.id = Some(id.to_string());add_roster.into() - edit in src/xmpp/mod.rs at line 11
const ID_GET_ROSTER: &str = "id_get_roster0"; - replacement in src/xmpp/mod.rs at line 15
_counter: usize,counter: usize, - replacement in src/xmpp/mod.rs at line 253
fn process_initial_roster(&mut self, event: Event) -> Result<bool, ()> {fn process_initial_roster(&mut self, event: Event, id_init_roster: &str) -> Result<bool, ()> { - replacement in src/xmpp/mod.rs at line 259
if id == ID_GET_ROSTER {if id == id_init_roster { - replacement in src/xmpp/mod.rs at line 314
state: XmppState { client, data },state: XmppState { client, mut data }, - replacement in src/xmpp/mod.rs at line 318
let get_roster = stanzas::make_get_roster(ID_GET_ROSTER);data.counter += 1;let id_init_roster = format!("id{}", data.counter);let get_roster = stanzas::make_get_roster(&id_init_roster); - replacement in src/xmpp/mod.rs at line 335[3.7416]→[3.7416:7497](∅→∅),[3.7416]→[3.7416:7497](∅→∅),[3.7416]→[3.7416:7497](∅→∅),[3.7416]→[3.7416:7497](∅→∅),[3.7416]→[3.7416:7497](∅→∅),[3.7416]→[3.7416:7497](∅→∅),[3.7416]→[3.7416:7497](∅→∅),[3.7416]→[3.7416:7497](∅→∅)
.processing(XmppConnection::process_initial_roster, stop_future).processing(move |conn, event| conn.process_initial_roster(event, &id_init_roster),stop_future,) - replacement in src/xmpp/mod.rs at line 409
if self.state.data.roster.get(&cmd.xmpp_to).is_some() {if let Some(_jid_data) = self.state.data.roster.get(&cmd.xmpp_to) { - edit in src/xmpp/mod.rs at line 411
future::ok(self) - edit in src/xmpp/mod.rs at line 413
let XmppConnection {account,state: XmppState { client, mut data },} = self;data.counter += 1;let id_add_roster = format!("id{}", data.counter);let add_roster = stanzas::make_add_roster(&id_add_roster, cmd.xmpp_to.clone());info!("Add jid to roster... {:?}", add_roster);future::ok(XmppConnection {account,state: XmppState { client, data },}) - edit in src/xmpp/mod.rs at line 414
future::ok(self)