[INFO] updating cached repository https://github.com/david415/spray
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 26bf2fd3f33bb416a3801ec7847a478d63b9814e
[INFO] checking david415/spray against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid415%2Fspray" "/workspace/builds/worker-7/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/david415/spray on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/david415/spray
[INFO] removed path dependency pnet from git repo https://github.com/david415/spray
[INFO] finished tweaking git repo https://github.com/david415/spray
[INFO] tweaked toml for git repo https://github.com/david415/spray written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate git repo https://github.com/david415/spray already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr] warning: dependency (pnet) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions
[INFO] [stderr] warning: key `branch` is ignored for dependency (pnet). This will be considered an error in future versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr] error: the lock file /workspace/builds/worker-7/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] [stderr]     Updating git repository `https://github.com/rust-lang/getopts.git`
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr] warning: dependency (pnet) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions
[INFO] [stderr] warning: key `branch` is ignored for dependency (pnet). This will be considered an error in future versions
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] eb224db28d9c5d6e07bfb0a829f5dce458201c6472599aee0a0cba5b01ff4cc6
[INFO] running `"docker" "start" "-a" "eb224db28d9c5d6e07bfb0a829f5dce458201c6472599aee0a0cba5b01ff4cc6"`
[INFO] [stderr] warning: dependency (pnet) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions
[INFO] [stderr] warning: key `branch` is ignored for dependency (pnet). This will be considered an error in future versions
[INFO] [stderr]     Checking getopts v0.2.21 (https://github.com/rust-lang/getopts.git#a1bc6a82)
[INFO] [stderr]    Compiling pnet_packet v0.25.0
[INFO] [stderr]     Checking pnet_transport v0.25.0
[INFO] [stderr]     Checking pnet v0.25.0
[INFO] [stderr]     Checking spray v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] error[E0432]: unresolved imports `pnet::util::NetworkInterface`, `pnet::util::get_network_interfaces`
[INFO] [stderr]   --> src/main.rs:17:18
[INFO] [stderr]    |
[INFO] [stderr] 17 | use pnet::util::{NetworkInterface, MacAddr, get_network_interfaces};
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^^^^^^^ no `get_network_interfaces` in `util`
[INFO] [stderr]    |                  |
[INFO] [stderr]    |                  no `NetworkInterface` in `util`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved import `pnet::datalink::datalink_channel`
[INFO] [stderr]   --> src/main.rs:18:22
[INFO] [stderr]    |
[INFO] [stderr] 18 | use pnet::datalink::{datalink_channel, DataLinkSender};
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^^^ no `datalink_channel` in `datalink`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved import `pnet::datalink::DataLinkChannelType`
[INFO] [stderr]   --> src/main.rs:19:21
[INFO] [stderr]    |
[INFO] [stderr] 19 | use pnet::datalink::DataLinkChannelType::{Layer2};
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^ could not find `DataLinkChannelType` in `datalink`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Ipv4`
[INFO] [stderr]   --> src/main.rs:26:42
[INFO] [stderr]    |
[INFO] [stderr] 26 | use pnet::transport::TransportProtocol::{Ipv4};
[INFO] [stderr]    |                                          ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Layer3`
[INFO] [stderr]   --> src/main.rs:28:45
[INFO] [stderr]    |
[INFO] [stderr] 28 | use pnet::transport::TransportChannelType::{Layer3};
[INFO] [stderr]    |                                             ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:33:13
[INFO] [stderr]    |
[INFO] [stderr] 33 |     sender: DataLinkSender,
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataLinkSender`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:83:29
[INFO] [stderr]    |
[INFO] [stderr] 83 |     fn send_one(&mut self, &Packet);
[INFO] [stderr]    |                             ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:88:37
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn send_one(&mut self, packet: &Packet) {
[INFO] [stderr]    |                                     ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:101:37
[INFO] [stderr]     |
[INFO] [stderr] 101 |     fn send_one(&mut self, packet: &Packet) {
[INFO] [stderr]     |                                     ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:109:45
[INFO] [stderr]     |
[INFO] [stderr] 109 | fn Spray_one<S: Sender>(sender: S, packet: &Packet, repeat: u32) {
[INFO] [stderr]     |                                             ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:115:51
[INFO] [stderr]     |
[INFO] [stderr] 115 | fn compose_packet<'a>(with_ethernet: bool) -> &'a Packet {
[INFO] [stderr]     |                                                   ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `(dyn pnet::datalink::DataLinkSender + 'static)` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:37:36
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn new(device_name: String) -> EthernetPacketProbe {
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `EthernetPacketProbe`, the trait `std::marker::Sized` is not implemented for `(dyn pnet::datalink::DataLinkSender + 'static)`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `EthernetPacketProbe`
[INFO] [stderr]    = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `dyn pnet::datalink::DataLinkSender` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:55:17
[INFO] [stderr]    |
[INFO] [stderr] 55 |             Ok((tx, _)) => self.sender = tx,
[INFO] [stderr]    |                 ^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: the trait `std::marker::Sized` is not implemented for `dyn pnet::datalink::DataLinkSender`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: all local variables must have a statically known size
[INFO] [stderr]    = help: unsized locals are gated as an unstable feature
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `(dyn pnet::datalink::DataLinkSender + 'static)` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:55:28
[INFO] [stderr]    |
[INFO] [stderr] 55 |             Ok((tx, _)) => self.sender = tx,
[INFO] [stderr]    |                            ^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: the trait `std::marker::Sized` is not implemented for `(dyn pnet::datalink::DataLinkSender + 'static)`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: the left-hand-side of an assignment must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved imports `pnet::util::NetworkInterface`, `pnet::util::get_network_interfaces`
[INFO] [stderr]   --> src/main.rs:17:18
[INFO] [stderr]    |
[INFO] [stderr] 17 | use pnet::util::{NetworkInterface, MacAddr, get_network_interfaces};
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^^^^^^^ no `get_network_interfaces` in `util`
[INFO] [stderr]    |                  |
[INFO] [stderr]    |                  no `NetworkInterface` in `util`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved import `pnet::datalink::datalink_channel`
[INFO] [stderr]   --> src/main.rs:18:22
[INFO] [stderr]    |
[INFO] [stderr] 18 | use pnet::datalink::{datalink_channel, DataLinkSender};
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^^^ no `datalink_channel` in `datalink`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved import `pnet::datalink::DataLinkChannelType`
[INFO] [stderr]   --> src/main.rs:19:21
[INFO] [stderr]    |
[INFO] [stderr] 19 | use pnet::datalink::DataLinkChannelType::{Layer2};
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^ could not find `DataLinkChannelType` in `datalink`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Ipv4`
[INFO] [stderr]   --> src/main.rs:26:42
[INFO] [stderr]    |
[INFO] [stderr] 26 | use pnet::transport::TransportProtocol::{Ipv4};
[INFO] [stderr]    |                                          ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Layer3`
[INFO] [stderr]   --> src/main.rs:28:45
[INFO] [stderr]    |
[INFO] [stderr] 28 | use pnet::transport::TransportChannelType::{Layer3};
[INFO] [stderr]    |                                             ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:33:13
[INFO] [stderr]    |
[INFO] [stderr] 33 |     sender: DataLinkSender,
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataLinkSender`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:83:29
[INFO] [stderr]    |
[INFO] [stderr] 83 |     fn send_one(&mut self, &Packet);
[INFO] [stderr]    |                             ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:88:37
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn send_one(&mut self, packet: &Packet) {
[INFO] [stderr]    |                                     ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:101:37
[INFO] [stderr]     |
[INFO] [stderr] 101 |     fn send_one(&mut self, packet: &Packet) {
[INFO] [stderr]     |                                     ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:109:45
[INFO] [stderr]     |
[INFO] [stderr] 109 | fn Spray_one<S: Sender>(sender: S, packet: &Packet, repeat: u32) {
[INFO] [stderr]     |                                             ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:115:51
[INFO] [stderr]     |
[INFO] [stderr] 115 | fn compose_packet<'a>(with_ethernet: bool) -> &'a Packet {
[INFO] [stderr]     |                                                   ^^^^^^ help: use `dyn`: `dyn Packet`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/main.rs:89:35
[INFO] [stderr]    |
[INFO] [stderr] 89 |         match self.sender.send_to(packet as &EthernetPacket, None) {
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^ expected slice `[u8]`, found struct `pnet::packet::ethernet::EthernetPacket`
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected reference `&[u8]`
[INFO] [stderr]               found reference `&pnet::packet::ethernet::EthernetPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0605]: non-primitive cast: `&dyn pnet::packet::Packet` as `&pnet::packet::ethernet::EthernetPacket<'_>`
[INFO] [stderr]   --> src/main.rs:89:35
[INFO] [stderr]    |
[INFO] [stderr] 89 |         match self.sender.send_to(packet as &EthernetPacket, None) {
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_destination` found for reference `&dyn pnet::packet::Packet` in the current scope
[INFO] [stderr]    --> src/main.rs:102:61
[INFO] [stderr]     |
[INFO] [stderr] 102 |         match self.sender.send_to(packet, IpAddr::V4(packet.get_destination())) {
[INFO] [stderr]     |                                                             ^^^^^^^^^^^^^^^ method not found in `&dyn pnet::packet::Packet`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `&dyn pnet::packet::Packet: pnet::packet::Packet` is not satisfied
[INFO] [stderr]    --> src/main.rs:102:27
[INFO] [stderr]     |
[INFO] [stderr] 102 |         match self.sender.send_to(packet, IpAddr::V4(packet.get_destination())) {
[INFO] [stderr]     |                           ^^^^^^^ the trait `pnet::packet::Packet` is not implemented for `&dyn pnet::packet::Packet`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `(dyn pnet::datalink::DataLinkSender + 'static)` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:37:36
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn new(device_name: String) -> EthernetPacketProbe {
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `EthernetPacketProbe`, the trait `std::marker::Sized` is not implemented for `(dyn pnet::datalink::DataLinkSender + 'static)`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `EthernetPacketProbe`
[INFO] [stderr]    = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:126:25
[INFO] [stderr]     |
[INFO] [stderr] 126 |         packet_buffer = [0u8; ETHERNET_HEADER_LEN + IPV4_HEADER_LEN + TCP_HEADER_LEN + TCP_OPTIONS_LEN + PAYLOAD_LEN];
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an array with a fixed size of 0 elements, found one with 62 elements
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `dyn pnet::datalink::DataLinkSender` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:55:17
[INFO] [stderr]    |
[INFO] [stderr] 55 |             Ok((tx, _)) => self.sender = tx,
[INFO] [stderr]    |                 ^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: the trait `std::marker::Sized` is not implemented for `dyn pnet::datalink::DataLinkSender`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: all local variables must have a statically known size
[INFO] [stderr]    = help: unsized locals are gated as an unstable feature
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `(dyn pnet::datalink::DataLinkSender + 'static)` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:55:28
[INFO] [stderr]    |
[INFO] [stderr] 55 |             Ok((tx, _)) => self.sender = tx,
[INFO] [stderr]    |                            ^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: the trait `std::marker::Sized` is not implemented for `(dyn pnet::datalink::DataLinkSender + 'static)`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: the left-hand-side of an assignment must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:127:27
[INFO] [stderr]     |
[INFO] [stderr] 127 |         ethernet_packet = compose_test_ethernet_header(&mut packet_buffer[ETHERNET_HEADER_LEN ..]);
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `pnet::packet::ethernet::EthernetPacket`, found `&mut pnet::packet::ethernet::MutableEthernetPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:130:25
[INFO] [stderr]     |
[INFO] [stderr] 130 |         packet_buffer = [0u8; IPV4_HEADER_LEN + TCP_HEADER_LEN + TCP_OPTIONS_LEN + PAYLOAD_LEN];
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an array with a fixed size of 0 elements, found one with 48 elements
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:136:16
[INFO] [stderr]     |
[INFO] [stderr] 115 | fn compose_packet<'a>(with_ethernet: bool) -> &'a Packet {
[INFO] [stderr]     |                                               ---------- expected `&'a (dyn pnet::packet::Packet + 'a)` because of return type
[INFO] [stderr] ...
[INFO] [stderr] 136 |         return ethernet_packet;
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                expected reference, found struct `pnet::packet::ethernet::EthernetPacket`
[INFO] [stderr]     |                help: consider borrowing here: `&ethernet_packet`
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected reference `&'a (dyn pnet::packet::Packet + 'a)`
[INFO] [stderr]                   found struct `pnet::packet::ethernet::EthernetPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_control_bits` found for struct `pnet::packet::tcp::MutableTcpPacket<'_>` in the current scope
[INFO] [stderr]    --> src/main.rs:150:16
[INFO] [stderr]     |
[INFO] [stderr] 150 |     tcp_header.set_control_bits(0x18);
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^ method not found in `pnet::packet::tcp::MutableTcpPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_urgent_pointer` found for struct `pnet::packet::tcp::MutableTcpPacket<'_>` in the current scope
[INFO] [stderr]    --> src/main.rs:153:16
[INFO] [stderr]     |
[INFO] [stderr] 153 |     tcp_header.set_urgent_pointer(0x0000);
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `set_urgent_ptr`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:156:12
[INFO] [stderr]     |
[INFO] [stderr] 142 | fn compose_test_tcp_header(packet: &mut [u8]) -> &mut MutableTcpPacket {
[INFO] [stderr]     |                                                  --------------------- expected because this return type...
[INFO] [stderr] ...
[INFO] [stderr] 156 |     return tcp_header
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            expected `&mut pnet::packet::tcp::MutableTcpPacket<'_>`, found struct `pnet::packet::tcp::MutableTcpPacket`
[INFO] [stderr]     |            ...is found to be `&mut pnet::packet::tcp::MutableTcpPacket<'_>` here
[INFO] [stderr]     |            help: consider mutably borrowing here: `&mut tcp_header`
[INFO] [stderr]     |
[INFO] [stderr]     = note: to return `impl Trait`, all returned values must be of the same type
[INFO] [stderr]     = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
[INFO] [stderr]     = help: alternatively, create a new `enum` with a variant for each returned type
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/main.rs:89:35
[INFO] [stderr]    |
[INFO] [stderr] 89 |         match self.sender.send_to(packet as &EthernetPacket, None) {
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^ expected slice `[u8]`, found struct `pnet::packet::ethernet::EthernetPacket`
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected reference `&[u8]`
[INFO] [stderr]               found reference `&pnet::packet::ethernet::EthernetPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0605]: non-primitive cast: `&dyn pnet::packet::Packet` as `&pnet::packet::ethernet::EthernetPacket<'_>`
[INFO] [stderr]   --> src/main.rs:89:35
[INFO] [stderr]    |
[INFO] [stderr] 89 |         match self.sender.send_to(packet as &EthernetPacket, None) {
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_destination` found for reference `&dyn pnet::packet::Packet` in the current scope
[INFO] [stderr]    --> src/main.rs:102:61
[INFO] [stderr]     |
[INFO] [stderr] 102 |         match self.sender.send_to(packet, IpAddr::V4(packet.get_destination())) {
[INFO] [stderr]     |                                                             ^^^^^^^^^^^^^^^ method not found in `&dyn pnet::packet::Packet`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `&dyn pnet::packet::Packet: pnet::packet::Packet` is not satisfied
[INFO] [stderr]    --> src/main.rs:102:27
[INFO] [stderr]     |
[INFO] [stderr] 102 |         match self.sender.send_to(packet, IpAddr::V4(packet.get_destination())) {
[INFO] [stderr]     |                           ^^^^^^^ the trait `pnet::packet::Packet` is not implemented for `&dyn pnet::packet::Packet`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:177:12
[INFO] [stderr]     |
[INFO] [stderr] 159 | fn compose_test_ipv4_header(packet: &mut [u8]) -> &mut MutableIpv4Packet {
[INFO] [stderr]     |                                                   ---------------------- expected because this return type...
[INFO] [stderr] ...
[INFO] [stderr] 177 |     return ip_header
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            expected `&mut pnet::packet::ipv4::MutableIpv4Packet<'_>`, found struct `pnet::packet::ipv4::MutableIpv4Packet`
[INFO] [stderr]     |            ...is found to be `&mut pnet::packet::ipv4::MutableIpv4Packet<'_>` here
[INFO] [stderr]     |            help: consider mutably borrowing here: `&mut ip_header`
[INFO] [stderr]     |
[INFO] [stderr]     = note: to return `impl Trait`, all returned values must be of the same type
[INFO] [stderr]     = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
[INFO] [stderr]     = help: alternatively, create a new `enum` with a variant for each returned type
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:187:12
[INFO] [stderr]     |
[INFO] [stderr] 180 | fn compose_test_ethernet_header(packet: &mut [u8]) -> &mut MutableEthernetPacket {
[INFO] [stderr]     |                                                       -------------------------- expected because this return type...
[INFO] [stderr] ...
[INFO] [stderr] 187 |     return ethernet_header
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            expected `&mut pnet::packet::ethernet::MutableEthernetPacket<'_>`, found struct `pnet::packet::ethernet::MutableEthernetPacket`
[INFO] [stderr]     |            ...is found to be `&mut pnet::packet::ethernet::MutableEthernetPacket<'_>` here
[INFO] [stderr]     |            help: consider mutably borrowing here: `&mut ethernet_header`
[INFO] [stderr]     |
[INFO] [stderr]     = note: to return `impl Trait`, all returned values must be of the same type
[INFO] [stderr]     = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
[INFO] [stderr]     = help: alternatively, create a new `enum` with a variant for each returned type
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `(): Sender` is not satisfied
[INFO] [stderr]    --> src/main.rs:222:15
[INFO] [stderr]     |
[INFO] [stderr] 109 | fn Spray_one<S: Sender>(sender: S, packet: &Packet, repeat: u32) {
[INFO] [stderr]     |    ---------    ------ required by this bound in `Spray_one`
[INFO] [stderr] ...
[INFO] [stderr] 222 |     Spray_one(probe, packet, 33);
[INFO] [stderr]     |               ^^^^^ the trait `Sender` is not implemented for `()`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `(dyn pnet::datalink::DataLinkSender + 'static)` cannot be known at compilation time
[INFO] [stderr]    --> src/main.rs:216:9
[INFO] [stderr]     |
[INFO] [stderr] 216 |         EthernetPacketProbe::new(matches.opt_str("ethernet").unwrap());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]     |
[INFO] [stderr]     = help: within `EthernetPacketProbe`, the trait `std::marker::Sized` is not implemented for `(dyn pnet::datalink::DataLinkSender + 'static)`
[INFO] [stderr]     = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]     = note: required because it appears within the type `EthernetPacketProbe`
[INFO] [stderr]     = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 21 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0432, E0599, E0605.
[INFO] [stderr] For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] error: could not compile `spray`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:126:25
[INFO] [stderr]     |
[INFO] [stderr] 126 |         packet_buffer = [0u8; ETHERNET_HEADER_LEN + IPV4_HEADER_LEN + TCP_HEADER_LEN + TCP_OPTIONS_LEN + PAYLOAD_LEN];
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an array with a fixed size of 0 elements, found one with 62 elements
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:127:27
[INFO] [stderr]     |
[INFO] [stderr] 127 |         ethernet_packet = compose_test_ethernet_header(&mut packet_buffer[ETHERNET_HEADER_LEN ..]);
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `pnet::packet::ethernet::EthernetPacket`, found `&mut pnet::packet::ethernet::MutableEthernetPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:130:25
[INFO] [stderr]     |
[INFO] [stderr] 130 |         packet_buffer = [0u8; IPV4_HEADER_LEN + TCP_HEADER_LEN + TCP_OPTIONS_LEN + PAYLOAD_LEN];
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an array with a fixed size of 0 elements, found one with 48 elements
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:136:16
[INFO] [stderr]     |
[INFO] [stderr] 115 | fn compose_packet<'a>(with_ethernet: bool) -> &'a Packet {
[INFO] [stderr]     |                                               ---------- expected `&'a (dyn pnet::packet::Packet + 'a)` because of return type
[INFO] [stderr] ...
[INFO] [stderr] 136 |         return ethernet_packet;
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                expected reference, found struct `pnet::packet::ethernet::EthernetPacket`
[INFO] [stderr]     |                help: consider borrowing here: `&ethernet_packet`
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected reference `&'a (dyn pnet::packet::Packet + 'a)`
[INFO] [stderr]                   found struct `pnet::packet::ethernet::EthernetPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_control_bits` found for struct `pnet::packet::tcp::MutableTcpPacket<'_>` in the current scope
[INFO] [stderr]    --> src/main.rs:150:16
[INFO] [stderr]     |
[INFO] [stderr] 150 |     tcp_header.set_control_bits(0x18);
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^ method not found in `pnet::packet::tcp::MutableTcpPacket<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_urgent_pointer` found for struct `pnet::packet::tcp::MutableTcpPacket<'_>` in the current scope
[INFO] [stderr]    --> src/main.rs:153:16
[INFO] [stderr]     |
[INFO] [stderr] 153 |     tcp_header.set_urgent_pointer(0x0000);
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `set_urgent_ptr`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:156:12
[INFO] [stderr]     |
[INFO] [stderr] 142 | fn compose_test_tcp_header(packet: &mut [u8]) -> &mut MutableTcpPacket {
[INFO] [stderr]     |                                                  --------------------- expected because this return type...
[INFO] [stderr] ...
[INFO] [stderr] 156 |     return tcp_header
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            expected `&mut pnet::packet::tcp::MutableTcpPacket<'_>`, found struct `pnet::packet::tcp::MutableTcpPacket`
[INFO] [stderr]     |            ...is found to be `&mut pnet::packet::tcp::MutableTcpPacket<'_>` here
[INFO] [stderr]     |            help: consider mutably borrowing here: `&mut tcp_header`
[INFO] [stderr]     |
[INFO] [stderr]     = note: to return `impl Trait`, all returned values must be of the same type
[INFO] [stderr]     = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
[INFO] [stderr]     = help: alternatively, create a new `enum` with a variant for each returned type
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:177:12
[INFO] [stderr]     |
[INFO] [stderr] 159 | fn compose_test_ipv4_header(packet: &mut [u8]) -> &mut MutableIpv4Packet {
[INFO] [stderr]     |                                                   ---------------------- expected because this return type...
[INFO] [stderr] ...
[INFO] [stderr] 177 |     return ip_header
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            expected `&mut pnet::packet::ipv4::MutableIpv4Packet<'_>`, found struct `pnet::packet::ipv4::MutableIpv4Packet`
[INFO] [stderr]     |            ...is found to be `&mut pnet::packet::ipv4::MutableIpv4Packet<'_>` here
[INFO] [stderr]     |            help: consider mutably borrowing here: `&mut ip_header`
[INFO] [stderr]     |
[INFO] [stderr]     = note: to return `impl Trait`, all returned values must be of the same type
[INFO] [stderr]     = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
[INFO] [stderr]     = help: alternatively, create a new `enum` with a variant for each returned type
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/main.rs:187:12
[INFO] [stderr]     |
[INFO] [stderr] 180 | fn compose_test_ethernet_header(packet: &mut [u8]) -> &mut MutableEthernetPacket {
[INFO] [stderr]     |                                                       -------------------------- expected because this return type...
[INFO] [stderr] ...
[INFO] [stderr] 187 |     return ethernet_header
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            expected `&mut pnet::packet::ethernet::MutableEthernetPacket<'_>`, found struct `pnet::packet::ethernet::MutableEthernetPacket`
[INFO] [stderr]     |            ...is found to be `&mut pnet::packet::ethernet::MutableEthernetPacket<'_>` here
[INFO] [stderr]     |            help: consider mutably borrowing here: `&mut ethernet_header`
[INFO] [stderr]     |
[INFO] [stderr]     = note: to return `impl Trait`, all returned values must be of the same type
[INFO] [stderr]     = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
[INFO] [stderr]     = help: alternatively, create a new `enum` with a variant for each returned type
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `(): Sender` is not satisfied
[INFO] [stderr]    --> src/main.rs:222:15
[INFO] [stderr]     |
[INFO] [stderr] 109 | fn Spray_one<S: Sender>(sender: S, packet: &Packet, repeat: u32) {
[INFO] [stderr]     |    ---------    ------ required by this bound in `Spray_one`
[INFO] [stderr] ...
[INFO] [stderr] 222 |     Spray_one(probe, packet, 33);
[INFO] [stderr]     |               ^^^^^ the trait `Sender` is not implemented for `()`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `(dyn pnet::datalink::DataLinkSender + 'static)` cannot be known at compilation time
[INFO] [stderr]    --> src/main.rs:216:9
[INFO] [stderr]     |
[INFO] [stderr] 216 |         EthernetPacketProbe::new(matches.opt_str("ethernet").unwrap());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]     |
[INFO] [stderr]     = help: within `EthernetPacketProbe`, the trait `std::marker::Sized` is not implemented for `(dyn pnet::datalink::DataLinkSender + 'static)`
[INFO] [stderr]     = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]     = note: required because it appears within the type `EthernetPacketProbe`
[INFO] [stderr]     = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 21 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0432, E0599, E0605.
[INFO] [stderr] For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] error: could not compile `spray`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "eb224db28d9c5d6e07bfb0a829f5dce458201c6472599aee0a0cba5b01ff4cc6"`
[INFO] running `"docker" "rm" "-f" "eb224db28d9c5d6e07bfb0a829f5dce458201c6472599aee0a0cba5b01ff4cc6"`
[INFO] [stdout] eb224db28d9c5d6e07bfb0a829f5dce458201c6472599aee0a0cba5b01ff4cc6
