Send ping XEP-0199

[?]
Mar 8, 2019, 8:34 PM
5GINRCKLDLAQ7J32MLENDUBXZTVSLGPJFARMHUPKSRXVBT75BG3QC

Dependencies

  • [2] DISBBP3I Update dependencies
  • [3] HU3NZX5Z Process self-presence via new processing code
  • [4] X6L47BHQ Use different structure for established xmpp connection
  • [5] WBU7UOQW Read chatroom from config
  • [6] 5IKA4GO7 Rename xmpp client field from "inner" to "client"
  • [7] OGMBXBKP Move online to XmppConnection
  • [8] ACXUIS63 Update dependecies
  • [9] IK3YDPTY Update deps
  • [10] V5HDBSZM Use jid for receiver address
  • [11] RGOSS73U Convert self-presence to xmpp_parser's type
  • [12] AA2ZWGRL Enter to MUC
  • [13] VS6AHRWI Move XMPP to separate dir
  • [14] FVVPKFTL Initial commit
  • [15] EOHEZXX3 Move request processing to structure
  • [16] NDDQQP2P Update deps
  • [17] VW7NVWAG Leave MUC properly
  • [18] QYY3KRGL Use failure instead Box<dyn Error>
  • [19] 2VZBEEXA Messages fixed
  • [20] 5OBTKGDL Update deps
  • [21] 37OMJ4CK Send MUC message
  • [22] 5Y6YJ6UH Add shutdown function to make actions before offline
  • [23] L3D22A5J Prepare to check incoming presence
  • [24] YZVEEOYT Update dependencies
  • [25] ZI4GJ72V Add message to xmpp command
  • [26] OB3HA2MD Use Client::new_with_jid to parse jid only once
  • [27] J7VX56FW ToDo
  • [28] AYQZ2UIA Update deps
  • [*] FV6BJ5K6 Send self-presence and store account info in Rc so it willbe used in some future in parallel
  • [*] HKSQO7JZ Enable hyper http server and configuration

Change contents

  • edit in src/xmpp/stanzas.rs at line 4
    [3.57]
    [30.57]
    use xmpp_parsers::ping::Ping;
  • edit in src/xmpp/stanzas.rs at line 68
    [3.254]
    [3.254]
    }
    pub fn make_muc_presence_leave(from: xmpp_parsers::Jid, to: xmpp_parsers::Jid) -> Element {
    let mut presence = Presence::new(PresenceType::Unavailable);
    presence.from = Some(from);
    presence.to = Some(to);
    presence.into()
    }
    pub fn make_ping(id: &str, from: xmpp_parsers::Jid) -> Element {
    let mut ping = Iq::from_get(Ping);
    ping.id = Some(id.to_string());
    ping.to = Some(from.clone().into_domain_jid());
    ping.from = Some(from);
    ping.into()
  • edit in src/xmpp/mod.rs at line 614
    [3.755]
    [3.23186]
    XmppCommand::Ping => {
    self.state.data.counter += 1;
    let id_ping = format!("id_ping{}", self.state.data.counter);
    let ping = stanzas::make_ping(&id_ping, self.state.client.jid.clone());
    self.state.data.send_queue.push_back(ping);
    }
  • edit in src/xmpp/mod.rs at line 621
    [3.23196]
    [3.12359]
    }
    fn shutdown(self) -> impl Future<Item = (), Error = failure::Error> {
    info!("Shutdown connection");
    let XmppConnection { account, state } = self;
    stream::iter_ok(
    state
    .data
    .mucs
    .values()
    .map(std::clone::Clone::clone)
    .collect::<Vec<_>>(),
    )
    .fold(state, move |XmppState { client, data }, muc_jid| {
    let muc_presence =
    stanzas::make_muc_presence_leave(account.jid.clone(), muc_jid.clone());
    info!("Sending muc leave presence... {:?}", muc_presence);
    use tokio::prelude::Sink;
    client
    .send(Packet::Stanza(muc_presence))
    .map_err(|e| {
    error!("Error on send muc presence: {}", e);
    e
    })
    .and_then(|client| future::ok(XmppState { client, data }))
    })
    .map(|_| ())
  • edit in src/xmpp/mod.rs at line 707
    [3.1994]
    [3.13871]
    Ping,
  • replacement in src/xmpp/mod.rs at line 757
    [3.24278][2.0:85]()
    future::err(format_err!("Command receiver is gone"))
    [3.24278]
    [3.24363]
    error!("Command receiver is gone");
    future::ok(future::Loop::Break(Some(conn)))
  • replacement in src/xmpp/mod.rs at line 771
    [3.24895][2.86:154]()
    future::ok(future::Loop::Break(()))
    [3.24895]
    [3.24963]
    future::ok(future::Loop::Break(Some(conn)))
  • replacement in src/xmpp/mod.rs at line 774
    [3.25019][2.155:245]()
    Err(_) => future::err(format_err!("Command receiver is broken")),
    [3.25019]
    [3.25109]
    Err(_) => {
    error!("Command receiver is broken");
    future::ok(future::Loop::Break(Some(conn)))
    }
  • replacement in src/xmpp/mod.rs at line 800
    [3.26249][2.246:314]()
    future::ok(future::Loop::Break(()))
    [3.26249]
    [3.26317]
    future::ok(future::Loop::Break(None))
  • edit in src/xmpp/mod.rs at line 808
    [3.6451]
    [3.7379]
    .and_then(|opt_conn| {
    if let Some(conn) = opt_conn {
    Box::new(conn.shutdown()) as Box<dyn Future<Item = (), Error = _>>
    } else {
    Box::new(future::ok(()))
    }
    })
  • replacement in src/main.rs at line 67
    [2.414][3.14673:14764](),[3.14673][3.14673:14764](),[3.14764][2.415:478](),[2.478][3.14844:14867](),[3.14844][3.14844:14867]()
    .and_then(|s| {
    std::str::FromStr::from_str(s)
    .map_err(std::convert::Into::into)
    })
    [2.414]
    [3.14867]
    .and_then(|s| std::str::FromStr::from_str(s).map_err(std::convert::Into::into))
  • replacement in src/main.rs at line 229
    [3.5155][3.18717:18761]()
    .serve(MakeServiceCmd { cmd_send })
    [3.5155]
    [3.5935]
    .serve(MakeServiceCmd {
    cmd_send: cmd_send.clone(),
    })
  • edit in src/main.rs at line 237
    [3.6049]
    [3.5562]
    if let Some(ping) = config.account.ping {
    let ping = tokio::timer::Interval::new_interval(std::time::Duration::from_secs(ping));
    rt.spawn(
    ping.map_err(|e| {
    error!("Ping error: {}", e);
    })
    .for_each(move |_| {
    cmd_send
    .clone()
    .send(XmppCommand::Ping)
    .map_err(|e| {
    error!("Ping command error: {}", e);
    })
    .map(|_| ())
    })
    .select(
    ctrl_c
    .clone()
    .map(|_| ())
    .map_err(|e| error!("ping server error: {}", e)),
    )
    .map(|_| ())
    .map_err(|_| ()),
    );
    }
  • edit in src/config.rs at line 0
    [31.1396]
    [31.1397]
    use std::collections::HashMap;
  • edit in src/config.rs at line 10
    [31.1549]
    [31.1549]
    #[serde(default, deserialize_with = "deserialize_jid_map")]
    pub chatrooms: HashMap<String, xmpp_parsers::Jid>,
    pub ping: Option<u64>,
  • edit in src/config.rs at line 39
    [3.19119]
    [31.1943]
    }
    fn deserialize_jid_map<'de, D>(
    deserializer: D,
    ) -> Result<HashMap<String, xmpp_parsers::Jid>, D::Error>
    where
    D: serde::Deserializer<'de>,
    {
    use serde::Deserialize;
    let s = HashMap::<String, String>::deserialize(deserializer)?;
    let size = s.len();
    s.into_iter()
    .map(|(k, v)| (k, std::str::FromStr::from_str(&v)))
    .take_while(|(_k, r)| r.is_ok())
    .fold(Ok(HashMap::with_capacity(size)), |res, (k, r)| match res {
    Ok(mut res) => match r {
    Ok(v) => {
    res.insert(k, v);
    Ok(res)
    }
    Err(e) => Err(e),
    },
    Err(e) => Err(e),
    })
    .map_err(serde::de::Error::custom)
  • replacement in Cargo.lock at line 7
    [3.19377][2.1042:1114]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19377]
    [3.19449]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 44
    [3.8093][2.1209:1281]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8093]
    [3.8165]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 61
    [3.19862][2.1302:1447]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19862]
    [3.19935]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 73
    [2.1518][2.1518:1590]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.1518]
    [3.9778]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 131
    [3.11081][2.1610:1629]()
    version = "0.4.12"
    [3.11081]
    [3.11100]
    version = "0.4.11"
  • replacement in Cargo.lock at line 150
    [3.11580][2.1650:1668]()
    version = "0.1.7"
    [3.11580]
    [3.11598]
    version = "0.1.6"
  • replacement in Cargo.lock at line 191
    [3.13233][2.1669:1741]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13233]
    [3.13305]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 199
    [3.16505][2.1742:1814]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16505]
    [3.21506]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 217
    [3.22853][2.1834:1907]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.22853]
    [3.22854]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 237
    [3.7801][2.2210:2283]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.7801]
    [2.2283]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 273
    [3.15926][2.2382:2455]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.15926]
    [3.7897]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 278
    [3.7932][2.2456:2474]()
    version = "0.6.1"
    [3.7932]
    [3.7950]
    version = "0.6.0"
  • replacement in Cargo.lock at line 312
    [3.23830][2.2704:2776]()
    "syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.23830]
    [3.8623]
    "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 395
    [3.24215][2.2943:3016]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.24215]
    [3.19836]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 420
    [3.20551][2.3167:3239]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20551]
    [3.20623]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 429
    [3.20827][2.3260:3333]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20827]
    [3.20900]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 452
    [3.21499][2.3355:3428]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.21499]
    [3.21572]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 494
    [3.23535][2.3899:3971]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.23535]
    [3.23607]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 551
    [3.25316][2.3991:4010]()
    version = "0.2.50"
    [3.25316]
    [3.25335]
    version = "0.2.49"
  • replacement in Cargo.lock at line 573
    [3.25934][2.4011:4084]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.25934]
    [3.26007]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 639
    [3.10535][2.4414:4486]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.10535]
    [3.10607]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 653
    [3.29191][2.4487:4559]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29191]
    [3.29263]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 674
    [2.4638][2.4638:4710]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.4638]
    [3.10901]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 690
    [3.30809][2.5020:5165]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30809]
    [3.30954]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 723
    [3.31827][2.5205:5277]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31827]
    [3.31899]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 737
    [3.32108][2.5299:5372]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.32108]
    [3.32181]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 740
    [2.5451][2.5451:5523]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.5451]
    [2.5523]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 755
    [2.5693][2.5693:5765]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.5693]
    [3.32888]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 783
    [3.33693][2.5847:5919]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33693]
    [3.28433]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 892
    [3.29802][2.6170:6242]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29802]
    [3.29874]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 903
    [3.30044][2.6243:6315]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30044]
    [3.30116]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 909
    [3.30349][2.6316:6390]()
    "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30349]
    [2.6390]
    "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 958
    [3.31079][2.6466:6538]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31079]
    [3.31151]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 965
    [3.31332][2.6539:6557]()
    version = "0.1.3"
    [3.31332]
    [3.31350]
    version = "0.1.2"
  • replacement in Cargo.lock at line 970
    [3.31587][2.6558:6630]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31587]
    [3.31659]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1077
    [3.32831][2.6974:7048]()
    "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.32831]
    [3.32905]
    "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1103
    [3.42985][2.7148:7220]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42985]
    [3.33140]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1114
    [3.43379][2.7221:7293]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43379]
    [3.43451]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1135
    [3.43904][2.7294:7371]()
    "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43904]
    [3.33402]
    "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1163
    [3.34279][2.7714:7786]()
    "syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.34279]
    [3.45361]
    "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1216
    [3.35373][2.8140:8212]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.35373]
    [3.47294]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1239
    [3.47862][2.8232:8377]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.47862]
    [3.35556]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1308
    [3.50268][2.8619:8639]()
    version = "0.15.28"
    [3.50268]
    [3.50288]
    version = "0.15.27"
  • replacement in Cargo.lock at line 1331
    [3.36561][2.8640:8712]()
    "syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.36561]
    [3.51171]
    "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1340
    [3.51382][2.8732:8877]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51382]
    [3.36725]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1371
    [3.52519][2.8878:8950]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.52519]
    [3.37042]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1397
    [3.53311][2.9030:9102]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53311]
    [3.37216]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1407
    [3.53668][2.9123:9196]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53668]
    [3.53741]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1438
    [3.55160][2.9756:9829]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.55160]
    [3.55233]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1476
    [3.56400][2.10126:10199]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.56400]
    [3.56473]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1505
    [3.57725][2.10529:10601]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57725]
    [3.57797]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1529
    [3.58464][2.10928:11001]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.58464]
    [3.58537]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1579
    [3.60529][2.11498:11571]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.60529]
    [3.60602]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1593
    [3.61186][2.11729:11802]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.61186]
    [3.61259]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1596
    [3.61406][2.11803:11875]()
    "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.61406]
    [3.21258]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1610
    [3.62062][2.12033:12106]()
    "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.62062]
    [3.62135]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1663
    [3.65122][2.12722:12795]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.65122]
    [3.42670]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1686
    [3.43090][2.13024:13097]()
    "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43090]
    [3.43163]
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1891
    [3.46060][2.13641:13790]()
    "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
    [3.46060]
    [3.74545]
    "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa"
  • replacement in Cargo.lock at line 1894
    [2.13937][2.13937:14086]()
    "checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4"
    [2.13937]
    [3.74987]
    "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
  • replacement in Cargo.lock at line 1908
    [2.14560][2.14560:14713]()
    "checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a"
    [2.14560]
    [3.77462]
    "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e"
  • replacement in Cargo.lock at line 1940
    [3.25998][2.15169:15317]()
    "checksum libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1"
    [3.25998]
    [3.82015]
    "checksum libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)" = "413f3dfc802c5dc91dc570b05125b6cda9855edfaa9825c9849807876376e70e"
  • replacement in Cargo.lock at line 1989
    [3.52480][2.16249:16399]()
    "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
    [3.52480]
    [2.16399]
    "checksum rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7c690732391ae0abafced5015ffb53656abfaec61b342290e5eb56b286a679d"
  • replacement in Cargo.lock at line 2028
    [3.94685][2.17620:17768]()
    "checksum syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)" = "218aa5a01ab9805df6e9e48074c8d88f317cc9660b1ad6c3dabac2d627d185d6"
    [3.94685]
    [3.94833]
    "checksum syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)" = "525bd55255f03c816e5d7f615587bd13030c7103354fadb104993dcee6a788ec"