[INFO] updating cached repository https://github.com/lolzballs/ntcp [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] 88c3db132aea844a3599c704c1dfcd86fc50f455 [INFO] testing lolzballs/ntcp against 1.44.0 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flolzballs%2Fntcp" "/workspace/builds/worker-2/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/lolzballs/ntcp on toolchain 1.44.0 [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/lolzballs/ntcp [INFO] removed workspace from git repo https://github.com/lolzballs/ntcp [INFO] finished tweaking git repo https://github.com/lolzballs/ntcp [INFO] tweaked toml for git repo https://github.com/lolzballs/ntcp written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/lolzballs/ntcp already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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=warn" "-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" "+1.44.0" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 3b89549ca7a14aafc69c78d87ba2d195d1b6585746dcb6b4c6eee41d1dc91e92 [INFO] running `"docker" "start" "-a" "3b89549ca7a14aafc69c78d87ba2d195d1b6585746dcb6b4c6eee41d1dc91e92"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling libc v0.2.26 [INFO] [stderr] Compiling ntcp v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:71:22 [INFO] [stderr] | [INFO] [stderr] 71 | let recvfd = try!(Self::create_recv_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | let sendfd = try!(Self::create_send_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | let ring = try!(Self::init_ringbuffer(recvfd)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/ipv4.rs:351:17 [INFO] [stderr] | [INFO] [stderr] 351 | (data[i] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp` [INFO] [stderr] --> src/platform/raw.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Instant` [INFO] [stderr] --> src/platform/raw.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::Instant; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/socket/interface.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MappedBuffer` [INFO] [stderr] --> src/socket/interface.rs:13:16 [INFO] [stderr] | [INFO] [stderr] 13 | use platform::{MappedBuffer, RawSocket}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/ipv4.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 49 | return Ok(Packet { buffer: buffer }); [INFO] [stderr] | ------------------------------------ any code following this expression is unreachable [INFO] [stderr] 50 | let len = buffer.as_ref().len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `src_addr` [INFO] [stderr] --> src/tcp.rs:387:29 [INFO] [stderr] | [INFO] [stderr] 387 | ... src_addr: &ipv4::Address, [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dst_addr` [INFO] [stderr] --> src/tcp.rs:388:29 [INFO] [stderr] | [INFO] [stderr] 388 | ... dst_addr: &ipv4::Address) [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seq` [INFO] [stderr] --> src/socket/interface.rs:332:38 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_seq` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:196:13 [INFO] [stderr] | [INFO] [stderr] 196 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:218:13 [INFO] [stderr] | [INFO] [stderr] 218 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:342:13 [INFO] [stderr] | [INFO] [stderr] 342 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/platform/raw.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | let mut header = unsafe { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | let mut buf = &mut buf[read_len..]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | let mut buf = &mut buf[..len]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_COPY` [INFO] [stderr] --> src/platform/if_packet.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const TP_STATUS_COPY: libc::c_ulong = 1 << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_LOSING` [INFO] [stderr] --> src/platform/if_packet.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const TP_STATUS_LOSING: libc::c_ulong = 1 << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ring_offset` [INFO] [stderr] --> src/platform/raw.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | ring_offset: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `RECV_BUF_LEN` [INFO] [stderr] --> src/socket/interface.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const RECV_BUF_LEN: usize = 17000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Closed` [INFO] [stderr] --> src/socket/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | Closed, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:243:32 [INFO] [stderr] | [INFO] [stderr] 243 | ... seq: ref mut seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut seq` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:244:32 [INFO] [stderr] | [INFO] [stderr] 244 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:331:33 [INFO] [stderr] | [INFO] [stderr] 331 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:332:33 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^^^^^^ help: use shorthand field pattern: `seq` [INFO] [stderr] [INFO] [stderr] warning: 58 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> src/bin/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | thread::sleep_ms(2000); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/bin/main.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | let len = socket.read(&mut buf).unwrap(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.73s [INFO] running `"docker" "inspect" "3b89549ca7a14aafc69c78d87ba2d195d1b6585746dcb6b4c6eee41d1dc91e92"` [INFO] running `"docker" "rm" "-f" "3b89549ca7a14aafc69c78d87ba2d195d1b6585746dcb6b4c6eee41d1dc91e92"` [INFO] [stdout] 3b89549ca7a14aafc69c78d87ba2d195d1b6585746dcb6b4c6eee41d1dc91e92 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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=warn" "-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" "+1.44.0" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 86477f58adafa569bd67802d4ffe5e01fb08e2ac4c47837cd3bf08ba057064d7 [INFO] running `"docker" "start" "-a" "86477f58adafa569bd67802d4ffe5e01fb08e2ac4c47837cd3bf08ba057064d7"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling ntcp v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:71:22 [INFO] [stderr] | [INFO] [stderr] 71 | let recvfd = try!(Self::create_recv_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | let sendfd = try!(Self::create_send_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | let ring = try!(Self::init_ringbuffer(recvfd)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/ipv4.rs:351:17 [INFO] [stderr] | [INFO] [stderr] 351 | (data[i] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp` [INFO] [stderr] --> src/platform/raw.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Instant` [INFO] [stderr] --> src/platform/raw.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::Instant; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/socket/interface.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MappedBuffer` [INFO] [stderr] --> src/socket/interface.rs:13:16 [INFO] [stderr] | [INFO] [stderr] 13 | use platform::{MappedBuffer, RawSocket}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/ipv4.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 49 | return Ok(Packet { buffer: buffer }); [INFO] [stderr] | ------------------------------------ any code following this expression is unreachable [INFO] [stderr] 50 | let len = buffer.as_ref().len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `src_addr` [INFO] [stderr] --> src/tcp.rs:387:29 [INFO] [stderr] | [INFO] [stderr] 387 | ... src_addr: &ipv4::Address, [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dst_addr` [INFO] [stderr] --> src/tcp.rs:388:29 [INFO] [stderr] | [INFO] [stderr] 388 | ... dst_addr: &ipv4::Address) [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seq` [INFO] [stderr] --> src/socket/interface.rs:332:38 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_seq` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:196:13 [INFO] [stderr] | [INFO] [stderr] 196 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:218:13 [INFO] [stderr] | [INFO] [stderr] 218 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:342:13 [INFO] [stderr] | [INFO] [stderr] 342 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/platform/raw.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | let mut header = unsafe { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | let mut buf = &mut buf[read_len..]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | let mut buf = &mut buf[..len]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_COPY` [INFO] [stderr] --> src/platform/if_packet.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const TP_STATUS_COPY: libc::c_ulong = 1 << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_LOSING` [INFO] [stderr] --> src/platform/if_packet.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const TP_STATUS_LOSING: libc::c_ulong = 1 << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ring_offset` [INFO] [stderr] --> src/platform/raw.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | ring_offset: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `RECV_BUF_LEN` [INFO] [stderr] --> src/socket/interface.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const RECV_BUF_LEN: usize = 17000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Closed` [INFO] [stderr] --> src/socket/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | Closed, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:243:32 [INFO] [stderr] | [INFO] [stderr] 243 | ... seq: ref mut seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut seq` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:244:32 [INFO] [stderr] | [INFO] [stderr] 244 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:331:33 [INFO] [stderr] | [INFO] [stderr] 331 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:332:33 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^^^^^^ help: use shorthand field pattern: `seq` [INFO] [stderr] [INFO] [stderr] warning: 58 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> src/bin/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | thread::sleep_ms(2000); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:71:22 [INFO] [stderr] | [INFO] [stderr] 71 | let recvfd = try!(Self::create_recv_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | let sendfd = try!(Self::create_send_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | let ring = try!(Self::init_ringbuffer(recvfd)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/ipv4.rs:351:17 [INFO] [stderr] | [INFO] [stderr] 351 | (data[i] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp` [INFO] [stderr] --> src/platform/raw.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Instant` [INFO] [stderr] --> src/platform/raw.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::Instant; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/socket/interface.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MappedBuffer` [INFO] [stderr] --> src/socket/interface.rs:13:16 [INFO] [stderr] | [INFO] [stderr] 13 | use platform::{MappedBuffer, RawSocket}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/bin/main.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | let len = socket.read(&mut buf).unwrap(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/ipv4.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 49 | return Ok(Packet { buffer: buffer }); [INFO] [stderr] | ------------------------------------ any code following this expression is unreachable [INFO] [stderr] 50 | let len = buffer.as_ref().len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `src_addr` [INFO] [stderr] --> src/tcp.rs:387:29 [INFO] [stderr] | [INFO] [stderr] 387 | ... src_addr: &ipv4::Address, [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dst_addr` [INFO] [stderr] --> src/tcp.rs:388:29 [INFO] [stderr] | [INFO] [stderr] 388 | ... dst_addr: &ipv4::Address) [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seq` [INFO] [stderr] --> src/socket/interface.rs:332:38 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_seq` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:196:13 [INFO] [stderr] | [INFO] [stderr] 196 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:218:13 [INFO] [stderr] | [INFO] [stderr] 218 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:342:13 [INFO] [stderr] | [INFO] [stderr] 342 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/platform/raw.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | let mut header = unsafe { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | let mut buf = &mut buf[read_len..]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | let mut buf = &mut buf[..len]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_COPY` [INFO] [stderr] --> src/platform/if_packet.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const TP_STATUS_COPY: libc::c_ulong = 1 << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_LOSING` [INFO] [stderr] --> src/platform/if_packet.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const TP_STATUS_LOSING: libc::c_ulong = 1 << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ring_offset` [INFO] [stderr] --> src/platform/raw.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | ring_offset: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `RECV_BUF_LEN` [INFO] [stderr] --> src/socket/interface.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const RECV_BUF_LEN: usize = 17000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Closed` [INFO] [stderr] --> src/socket/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | Closed, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:243:32 [INFO] [stderr] | [INFO] [stderr] 243 | ... seq: ref mut seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut seq` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:244:32 [INFO] [stderr] | [INFO] [stderr] 244 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:331:33 [INFO] [stderr] | [INFO] [stderr] 331 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:332:33 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^^^^^^ help: use shorthand field pattern: `seq` [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: 58 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.26s [INFO] running `"docker" "inspect" "86477f58adafa569bd67802d4ffe5e01fb08e2ac4c47837cd3bf08ba057064d7"` [INFO] running `"docker" "rm" "-f" "86477f58adafa569bd67802d4ffe5e01fb08e2ac4c47837cd3bf08ba057064d7"` [INFO] [stdout] 86477f58adafa569bd67802d4ffe5e01fb08e2ac4c47837cd3bf08ba057064d7 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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=warn" "-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" "+1.44.0" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] c4c7a5b9a635dce2fb3a75fe0ee309484259ba2282b1532eaf041d9edffb5765 [INFO] running `"docker" "start" "-a" "c4c7a5b9a635dce2fb3a75fe0ee309484259ba2282b1532eaf041d9edffb5765"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:71:22 [INFO] [stderr] | [INFO] [stderr] 71 | let recvfd = try!(Self::create_recv_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | let sendfd = try!(Self::create_send_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | let ring = try!(Self::init_ringbuffer(recvfd)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/ipv4.rs:351:17 [INFO] [stderr] | [INFO] [stderr] 351 | (data[i] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp` [INFO] [stderr] --> src/platform/raw.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Instant` [INFO] [stderr] --> src/platform/raw.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::Instant; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/socket/interface.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MappedBuffer` [INFO] [stderr] --> src/socket/interface.rs:13:16 [INFO] [stderr] | [INFO] [stderr] 13 | use platform::{MappedBuffer, RawSocket}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/ipv4.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 49 | return Ok(Packet { buffer: buffer }); [INFO] [stderr] | ------------------------------------ any code following this expression is unreachable [INFO] [stderr] 50 | let len = buffer.as_ref().len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `src_addr` [INFO] [stderr] --> src/tcp.rs:387:29 [INFO] [stderr] | [INFO] [stderr] 387 | ... src_addr: &ipv4::Address, [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dst_addr` [INFO] [stderr] --> src/tcp.rs:388:29 [INFO] [stderr] | [INFO] [stderr] 388 | ... dst_addr: &ipv4::Address) [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seq` [INFO] [stderr] --> src/socket/interface.rs:332:38 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_seq` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:196:13 [INFO] [stderr] | [INFO] [stderr] 196 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:218:13 [INFO] [stderr] | [INFO] [stderr] 218 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:342:13 [INFO] [stderr] | [INFO] [stderr] 342 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/platform/raw.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | let mut header = unsafe { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | let mut buf = &mut buf[read_len..]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | let mut buf = &mut buf[..len]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_COPY` [INFO] [stderr] --> src/platform/if_packet.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const TP_STATUS_COPY: libc::c_ulong = 1 << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_LOSING` [INFO] [stderr] --> src/platform/if_packet.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const TP_STATUS_LOSING: libc::c_ulong = 1 << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ring_offset` [INFO] [stderr] --> src/platform/raw.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | ring_offset: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `RECV_BUF_LEN` [INFO] [stderr] --> src/socket/interface.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const RECV_BUF_LEN: usize = 17000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Closed` [INFO] [stderr] --> src/socket/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | Closed, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:243:32 [INFO] [stderr] | [INFO] [stderr] 243 | ... seq: ref mut seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut seq` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:244:32 [INFO] [stderr] | [INFO] [stderr] 244 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:331:33 [INFO] [stderr] | [INFO] [stderr] 331 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:332:33 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^^^^^^ help: use shorthand field pattern: `seq` [INFO] [stderr] [INFO] [stderr] warning: 58 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:71:22 [INFO] [stderr] | [INFO] [stderr] 71 | let recvfd = try!(Self::create_recv_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | let sendfd = try!(Self::create_send_socket()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/platform/raw.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | let ring = try!(Self::init_ringbuffer(recvfd)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/ipv4.rs:351:17 [INFO] [stderr] | [INFO] [stderr] 351 | (data[i] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp` [INFO] [stderr] --> src/platform/raw.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Instant` [INFO] [stderr] --> src/platform/raw.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::Instant; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/socket/interface.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MappedBuffer` [INFO] [stderr] --> src/socket/interface.rs:13:16 [INFO] [stderr] | [INFO] [stderr] 13 | use platform::{MappedBuffer, RawSocket}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/ipv4.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 49 | return Ok(Packet { buffer: buffer }); [INFO] [stderr] | ------------------------------------ any code following this expression is unreachable [INFO] [stderr] 50 | let len = buffer.as_ref().len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `src_addr` [INFO] [stderr] --> src/tcp.rs:387:29 [INFO] [stderr] | [INFO] [stderr] 387 | ... src_addr: &ipv4::Address, [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dst_addr` [INFO] [stderr] --> src/tcp.rs:388:29 [INFO] [stderr] | [INFO] [stderr] 388 | ... dst_addr: &ipv4::Address) [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seq` [INFO] [stderr] --> src/socket/interface.rs:332:38 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_seq` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:196:13 [INFO] [stderr] | [INFO] [stderr] 196 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:218:13 [INFO] [stderr] | [INFO] [stderr] 218 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ipv4.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tcp.rs:342:13 [INFO] [stderr] | [INFO] [stderr] 342 | let mut buf = self.buffer.as_mut(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/platform/raw.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | let mut header = unsafe { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | let mut buf = &mut buf[read_len..]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket/socket.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | let mut buf = &mut buf[..len]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_COPY` [INFO] [stderr] --> src/platform/if_packet.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const TP_STATUS_COPY: libc::c_ulong = 1 << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TP_STATUS_LOSING` [INFO] [stderr] --> src/platform/if_packet.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const TP_STATUS_LOSING: libc::c_ulong = 1 << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ring_offset` [INFO] [stderr] --> src/platform/raw.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | ring_offset: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `RECV_BUF_LEN` [INFO] [stderr] --> src/socket/interface.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const RECV_BUF_LEN: usize = 17000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Closed` [INFO] [stderr] --> src/socket/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | Closed, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:243:32 [INFO] [stderr] | [INFO] [stderr] 243 | ... seq: ref mut seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut seq` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:244:32 [INFO] [stderr] | [INFO] [stderr] 244 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `ack:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:331:33 [INFO] [stderr] | [INFO] [stderr] 331 | ... ack: ref mut ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `ref mut ack` [INFO] [stderr] [INFO] [stderr] warning: the `seq:` in this pattern is redundant [INFO] [stderr] --> src/socket/interface.rs:332:33 [INFO] [stderr] | [INFO] [stderr] 332 | ... seq: seq, [INFO] [stderr] | ^^^^^^^^ help: use shorthand field pattern: `seq` [INFO] [stderr] [INFO] [stderr] warning: 58 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> src/bin/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | thread::sleep_ms(2000); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/bin/main.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | let len = socket.read(&mut buf).unwrap(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/ntcp-d9a7b71d866c7553 [INFO] [stderr] Running /opt/rustwide/target/debug/deps/main-b37b53d22d2fb09a [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Doc-tests ntcp [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "c4c7a5b9a635dce2fb3a75fe0ee309484259ba2282b1532eaf041d9edffb5765"` [INFO] running `"docker" "rm" "-f" "c4c7a5b9a635dce2fb3a75fe0ee309484259ba2282b1532eaf041d9edffb5765"` [INFO] [stdout] c4c7a5b9a635dce2fb3a75fe0ee309484259ba2282b1532eaf041d9edffb5765