Reorganize roster processing. Output roster
[?]
Dec 30, 2018, 10:46 AM
HOAZX2PBYRX3B7CPCOGROLLBEUJT44SYBRNYTJMAPFJSQRYDAKMQCDependencies
- [2]
PFC7OJQFQuery roster - [3]
HU3NZX5ZProcess self-presence via new processing code - [*]
VS6AHRWIMove XMPP to separate dir - [*]
FV6BJ5K6Send self-presence and store account info in Rc so it willbe used in some future in parallel - [*]
XGP44R5HRework stopping xmpp connection
Change contents
- edit in src/xmpp/mod.rs at line 9[6.434][7.72]
const ID_GET_ROSTER: &str = "id_get_roster0"; - edit in src/xmpp/mod.rs at line 203
fn process_initial_roster(&mut self, event: Event) -> Result<bool, failure::Error> {if let Event::Stanza(s) = event {use try_from::TryInto;match s.try_into() as Result<xmpp_parsers::iq::Iq, _> {Ok(iq) => {if let Some(id) = iq.id {if id == ID_GET_ROSTER {match iq.payload {xmpp_parsers::iq::IqType::Error(_e) => {Err(format_err!("Get error instead of roster"))}xmpp_parsers::iq::IqType::Result(Some(result)) => {match result.try_into()as Result<xmpp_parsers::roster::Roster, _>{Ok(roster) => {info!("Got roster:");for i in roster.items {info!(" >>> {:?}", i);}Ok(true)}Err(e) => Err(format_err!("Cann't parse roster: {}", e)),}}_ => Err(format_err!("Unknown result of roster")),}} else {Ok(false)}} else {Err(format_err!("Iq stanza without id"))}}Err(_e) => Ok(false),}} else {Err(format_err!("Wrong event while waiting roster"))}} - edit in src/xmpp/mod.rs at line 257
let id_get_roster: String = "id_get_roster0".to_string(); - replacement in src/xmpp/mod.rs at line 258
let get_roster = stanzas::make_get_roster(&id_get_roster);let get_roster = stanzas::make_get_roster(ID_GET_ROSTER); - replacement in src/xmpp/mod.rs at line 273
.processing(move |_conn, event| {if let Event::Stanza(s) = event {use try_from::TryInto;match s.try_into() as Result<xmpp_parsers::iq::Iq, _> {Ok(iq) => {if let Some(id) = iq.id {if id == id_get_roster {match iq.payload {xmpp_parsers::iq::IqType::Error(_e) => {Err(format_err!("Get error instead of roster"))}_ => Ok(true),}} else {Ok(false)}} else {Err(format_err!("Iq stanza without id"))}}Err(_e) => Ok(false),}} else {Err(format_err!("Wrong event while waiting roster"))}},stop_future,).processing(XmppConnection::process_initial_roster, stop_future)