Leftover commands are processed via stoppable receiver

[?]
Dec 31, 2018, 7:56 PM
CP4MZO6VZHSAL2ENE7MUYUS2BJFL6EIZSHFFMT66WPQD7KHOE5ZQC

Dependencies

  • [2] QTCUURXN Add additional requirement for command stream
  • [3] OGMBXBKP Move online to XmppConnection
  • [4] PVCRPP3B Some servers don't send to in initial presence
  • [5] AYQZ2UIA Update deps
  • [6] NDDQQP2P Update deps
  • [7] 5IKA4GO7 Rename xmpp client field from "inner" to "client"
  • [8] IK3YDPTY Update deps
  • [9] PBRUH4BJ Rename optional XmppConnection to MaybeXmppConnection
  • [10] QWE26TMV update deps
  • [11] XGP44R5H Rework stopping xmpp connection
  • [12] ALP2YJIU Rename XmppState to XmppProcessState
  • [13] HU3NZX5Z Process self-presence via new processing code
  • [14] OANBCLN5 Move xmpp client into XmppState
  • [15] 4LRBIGVT Show info about xmpp errors
  • [16] VS6AHRWI Move XMPP to separate dir

Change contents

  • replacement in src/xmpp/mod.rs at line 281
    [3.12380][2.4598:4663]()
    S: stream::Stream<Item = XmppCommand, Error = ()> + 'static,
    [3.12380]
    [3.4355]
    S: stream::Stream<Item = XmppCommand> + 'static,
  • replacement in src/xmpp/mod.rs at line 314
    [3.13049][3.13049:13130](),[3.13049][3.13049:13130](),[3.13049][3.13049:13130]()
    future::ok(future::Loop::Break((None, conn.into())))
    [3.13049]
    [3.13130]
    future::ok(future::Loop::Break(()))
  • edit in src/xmpp/mod.rs at line 325
    [3.900][3.13230:13304](),[3.7426][3.969:1354](),[3.4494][3.969:1354](),[3.7323][3.969:1354](),[3.723][3.969:1354](),[3.5226][3.969:1354](),[3.13304][3.969:1354](),[3.9934][3.969:1354](),[3.969][3.969:1354](),[3.1354][3.13305:13342](),[3.9510][3.1422:1439](),[3.7495][3.1422:1439](),[3.6913][3.1422:1439](),[3.7392][3.1422:1439](),[3.13342][3.1422:1439](),[3.7242][3.1422:1439](),[3.9972][3.1422:1439](),[3.1422][3.1422:1439]()
    .and_then(|(opt_cmd_recv, _conn): (Option<S>, MaybeXmppConnection)| {
    if let Some(cmd_recv) = opt_cmd_recv {
    // process left commands
    info!("Stop accepting commands");
    Box::new(
    cmd_recv
    .for_each(|_cmd| future::ok(()))
    .map_err(|_| format_err!("cmd receiver last error")),
    ) as Box<Future<Item = (), Error = failure::Error>>
    } else {
    Box::new(future::ok(()))
    }
    })