[INFO] crate mtcp 0.1.0 is already in cache [INFO] extracting crate mtcp 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/mtcp/0.1.0 [INFO] extracting crate mtcp 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mtcp/0.1.0 [INFO] validating manifest of mtcp-0.1.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mtcp-0.1.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mtcp-0.1.0 [INFO] finished frobbing mtcp-0.1.0 [INFO] frobbed toml for mtcp-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/mtcp/0.1.0/Cargo.toml [INFO] started frobbing mtcp-0.1.0 [INFO] finished frobbing mtcp-0.1.0 [INFO] frobbed toml for mtcp-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mtcp/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting mtcp-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/mtcp/0.1.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] e1baf1ce5243f40b8d1eac7729401c4a97f5e57067ba8032ee84bb831978f08c [INFO] running `"docker" "start" "-a" "e1baf1ce5243f40b8d1eac7729401c4a97f5e57067ba8032ee84bb831978f08c"` [INFO] [stderr] Compiling mtcp v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: use of deprecated item 'gcc::Config': gcc::Config has been renamed to gcc::Build [INFO] [stderr] --> build.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | gcc::Config::new() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'gcc::Config': gcc::Config has been renamed to gcc::Build [INFO] [stderr] --> build.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | gcc::Config::new() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'gcc::Build::new': crate has been renamed to `cc`, the `gcc` name is not maintained [INFO] [stderr] --> build.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | gcc::Config::new() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'gcc::Build::new': crate has been renamed to `cc`, the `gcc` name is not maintained [INFO] [stderr] --> build.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | gcc::Config::new() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: cbits/checksum.c: In function 'ip_checksum_1': [INFO] [stderr] warning: cbits/checksum.c:14:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] [INFO] [stderr] warning: for (i = 0; i < size - 1; i += 2) [INFO] [stderr] warning: ^ [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/platform/connect.rs:47:33 [INFO] [stderr] | [INFO] [stderr] 47 | tcp_input_stream: tcp_input_stream, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_input_stream` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/platform/connect.rs:48:33 [INFO] [stderr] | [INFO] [stderr] 48 | tcp_output_stream: tcp_output_stream, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_output_stream` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:65:17 [INFO] [stderr] | [INFO] [stderr] 65 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | tracker: tracker, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `tracker` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `buffer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:328:29 [INFO] [stderr] | [INFO] [stderr] 328 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:329:29 [INFO] [stderr] | [INFO] [stderr] 329 | seq: seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:357:29 [INFO] [stderr] | [INFO] [stderr] 357 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:389:29 [INFO] [stderr] | [INFO] [stderr] 389 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:494:29 [INFO] [stderr] | [INFO] [stderr] 494 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:725:21 [INFO] [stderr] | [INFO] [stderr] 725 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/socket_state_machine.rs:189:25 [INFO] [stderr] | [INFO] [stderr] 189 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | tcp_socket_receiver: tcp_socket_receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_socket_receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | udp_dns_socket_receiver: udp_dns_socket_receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `udp_dns_socket_receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | tun_in_sender: tun_in_sender, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tun_in_sender` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | tun_out_receiver: tun_out_receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tun_out_receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | tun_out_sender: tun_out_sender, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tun_out_sender` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/payload.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | socket_addr: socket_addr, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `socket_addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `output` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | send: send, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:93:17 [INFO] [stderr] | [INFO] [stderr] 93 | receive: receive, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `receive` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | socket_addr: socket_addr, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `socket_addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `output` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:114:17 [INFO] [stderr] | [INFO] [stderr] 114 | send: send, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:115:17 [INFO] [stderr] | [INFO] [stderr] 115 | receive: receive, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `receive` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | source_port: source_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | destination_port: destination_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:192:17 [INFO] [stderr] | [INFO] [stderr] 192 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:193:17 [INFO] [stderr] | [INFO] [stderr] 193 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:157:21 [INFO] [stderr] | [INFO] [stderr] 157 | source_port: source_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:158:21 [INFO] [stderr] | [INFO] [stderr] 158 | destination_port: destination_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:159:21 [INFO] [stderr] | [INFO] [stderr] 159 | sequence_number: sequence_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sequence_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:160:21 [INFO] [stderr] | [INFO] [stderr] 160 | acknowledgment_number: acknowledgment_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `acknowledgment_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:161:21 [INFO] [stderr] | [INFO] [stderr] 161 | data_offset_and_reserved: data_offset_and_reserved, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data_offset_and_reserved` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:163:21 [INFO] [stderr] | [INFO] [stderr] 163 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:165:21 [INFO] [stderr] | [INFO] [stderr] 165 | urgent_pointer: urgent_pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `urgent_pointer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | source_port: source_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:206:13 [INFO] [stderr] | [INFO] [stderr] 206 | destination_port: destination_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | sequence_number: sequence_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sequence_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:208:13 [INFO] [stderr] | [INFO] [stderr] 208 | acknowledgment_number: acknowledgment_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `acknowledgment_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:209:13 [INFO] [stderr] | [INFO] [stderr] 209 | data_offset_and_reserved: data_offset_and_reserved, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data_offset_and_reserved` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | checksum: checksum, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `checksum` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | urgent_pointer: urgent_pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `urgent_pointer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:375:17 [INFO] [stderr] | [INFO] [stderr] 375 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:695:17 [INFO] [stderr] | [INFO] [stderr] 695 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:696:17 [INFO] [stderr] | [INFO] [stderr] 696 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:700:13 [INFO] [stderr] | [INFO] [stderr] 700 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:701:13 [INFO] [stderr] | [INFO] [stderr] 701 | packet: packet, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `packet` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:763:17 [INFO] [stderr] | [INFO] [stderr] 763 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:764:17 [INFO] [stderr] | [INFO] [stderr] 764 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/platform/connect.rs:47:33 [INFO] [stderr] | [INFO] [stderr] 47 | tcp_input_stream: tcp_input_stream, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_input_stream` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/platform/connect.rs:48:33 [INFO] [stderr] | [INFO] [stderr] 48 | tcp_output_stream: tcp_output_stream, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_output_stream` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:65:17 [INFO] [stderr] | [INFO] [stderr] 65 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | tracker: tracker, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `tracker` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `buffer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:328:29 [INFO] [stderr] | [INFO] [stderr] 328 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:329:29 [INFO] [stderr] | [INFO] [stderr] 329 | seq: seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:357:29 [INFO] [stderr] | [INFO] [stderr] 357 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:389:29 [INFO] [stderr] | [INFO] [stderr] 389 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:494:29 [INFO] [stderr] | [INFO] [stderr] 494 | source_seq: source_seq, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/tcp_state_machine.rs:725:21 [INFO] [stderr] | [INFO] [stderr] 725 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/socket_state_machine.rs:189:25 [INFO] [stderr] | [INFO] [stderr] 189 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | tcp_socket_receiver: tcp_socket_receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_socket_receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | udp_dns_socket_receiver: udp_dns_socket_receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `udp_dns_socket_receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | tun_in_sender: tun_in_sender, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tun_in_sender` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | tun_out_receiver: tun_out_receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tun_out_receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | tun_out_sender: tun_out_sender, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tun_out_sender` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/core.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/payload.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | socket_addr: socket_addr, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `socket_addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `output` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | send: send, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:93:17 [INFO] [stderr] | [INFO] [stderr] 93 | receive: receive, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `receive` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | socket_addr: socket_addr, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `socket_addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `output` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:114:17 [INFO] [stderr] | [INFO] [stderr] 114 | send: send, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/stream.rs:115:17 [INFO] [stderr] | [INFO] [stderr] 115 | receive: receive, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `receive` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | source_port: source_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | destination_port: destination_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:192:17 [INFO] [stderr] | [INFO] [stderr] 192 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:193:17 [INFO] [stderr] | [INFO] [stderr] 193 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/udp.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:157:21 [INFO] [stderr] | [INFO] [stderr] 157 | source_port: source_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:158:21 [INFO] [stderr] | [INFO] [stderr] 158 | destination_port: destination_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:159:21 [INFO] [stderr] | [INFO] [stderr] 159 | sequence_number: sequence_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sequence_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:160:21 [INFO] [stderr] | [INFO] [stderr] 160 | acknowledgment_number: acknowledgment_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `acknowledgment_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:161:21 [INFO] [stderr] | [INFO] [stderr] 161 | data_offset_and_reserved: data_offset_and_reserved, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data_offset_and_reserved` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:163:21 [INFO] [stderr] | [INFO] [stderr] 163 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:165:21 [INFO] [stderr] | [INFO] [stderr] 165 | urgent_pointer: urgent_pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `urgent_pointer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | source_port: source_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `source_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:206:13 [INFO] [stderr] | [INFO] [stderr] 206 | destination_port: destination_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | sequence_number: sequence_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sequence_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:208:13 [INFO] [stderr] | [INFO] [stderr] 208 | acknowledgment_number: acknowledgment_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `acknowledgment_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:209:13 [INFO] [stderr] | [INFO] [stderr] 209 | data_offset_and_reserved: data_offset_and_reserved, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data_offset_and_reserved` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | checksum: checksum, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `checksum` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | urgent_pointer: urgent_pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `urgent_pointer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:375:17 [INFO] [stderr] | [INFO] [stderr] 375 | payload: payload, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `payload` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:695:17 [INFO] [stderr] | [INFO] [stderr] 695 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:696:17 [INFO] [stderr] | [INFO] [stderr] 696 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:700:13 [INFO] [stderr] | [INFO] [stderr] 700 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:701:13 [INFO] [stderr] | [INFO] [stderr] 701 | packet: packet, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `packet` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:763:17 [INFO] [stderr] | [INFO] [stderr] 763 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/socket/tcp.rs:764:17 [INFO] [stderr] | [INFO] [stderr] 764 | destination: destination, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/handler/http_proxy/app/mod.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | pub mod app; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handler/http_proxy/udp.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | dns_socket_addr [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handler/http_proxy/udp.rs:48:35 [INFO] [stderr] | [INFO] [stderr] 48 | let dns_socket_addr = SocketAddr::new(server.dns, server.dns_port); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handler/http_proxy/server.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | default_server [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handler/http_proxy/server.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / Server { [INFO] [stderr] 40 | | name: String::from("default"), [INFO] [stderr] 41 | | socket_addr: FromStr::from_str("127.0.0.1:3148").unwrap(), [INFO] [stderr] 42 | | dns: FromStr::from_str("8.8.8.8").unwrap(), [INFO] [stderr] 43 | | dns_port: 53, [INFO] [stderr] 44 | | is_local_dns: false, [INFO] [stderr] 45 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/core/tcp_state_machine.rs:499:20 [INFO] [stderr] | [INFO] [stderr] 499 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 500 | | if state.window.pivot == state.seq { [INFO] [stderr] 501 | | debug!("fin wait 1: move to fin wait 2"); [INFO] [stderr] 502 | | let new_state = [INFO] [stderr] ... | [INFO] [stderr] 513 | | } [INFO] [stderr] 514 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 499 | } else if state.window.pivot == state.seq { [INFO] [stderr] 500 | debug!("fin wait 1: move to fin wait 2"); [INFO] [stderr] 501 | let new_state = [INFO] [stderr] 502 | FinWait2 { [INFO] [stderr] 503 | seq: state.seq, [INFO] [stderr] 504 | window: state.window, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/core/tcp_event_loop.rs:321:16 [INFO] [stderr] | [INFO] [stderr] 321 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 322 | | if tcp.packet.header.has_flag(ControlBit::SYN) { [INFO] [stderr] 323 | | // debug!("tcp event, add listen tcp: {:#?}", tcp.connection); [INFO] [stderr] 324 | | match listen(&tcp, &tun_drain) { [INFO] [stderr] ... | [INFO] [stderr] 342 | | } [INFO] [stderr] 343 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 321 | } else if tcp.packet.header.has_flag(ControlBit::SYN) { [INFO] [stderr] 322 | // debug!("tcp event, add listen tcp: {:#?}", tcp.connection); [INFO] [stderr] 323 | match listen(&tcp, &tun_drain) { [INFO] [stderr] 324 | Some((connection, tcb)) => { [INFO] [stderr] 325 | tcbs.insert(connection, tcb); [INFO] [stderr] 326 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/core/mod.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub mod core; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/udp.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | udp_header [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/udp.rs:99:26 [INFO] [stderr] | [INFO] [stderr] 99 | let udp_header = UDP_Header [INFO] [stderr] | __________________________^ [INFO] [stderr] 100 | | { [INFO] [stderr] 101 | | source_port: u16::from_be(udp_raw.source_port), [INFO] [stderr] 102 | | destination_port: u16::from_be(udp_raw.destination_port), [INFO] [stderr] 103 | | length: u16::from_be(udp_raw.length), [INFO] [stderr] 104 | | checksum: u16::from_be(udp_raw.checksum), [INFO] [stderr] 105 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/udp.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | udp [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/udp.rs:146:19 [INFO] [stderr] | [INFO] [stderr] 146 | let udp = UDP_Packet [INFO] [stderr] | ___________________^ [INFO] [stderr] 147 | | { [INFO] [stderr] 148 | | header: udp_header, [INFO] [stderr] 149 | | payload: payload, [INFO] [stderr] 150 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/udp.rs:298:9 [INFO] [stderr] | [INFO] [stderr] 298 | buffer [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/udp.rs:288:22 [INFO] [stderr] | [INFO] [stderr] 288 | let buffer = build_ip_buffer [INFO] [stderr] | ______________________^ [INFO] [stderr] 289 | | ( [INFO] [stderr] 290 | | &ip_connection, [INFO] [stderr] 291 | | IpProtocol::User_Datagram, [INFO] [stderr] 292 | | &udp_buffer, [INFO] [stderr] 293 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/tcp.rs:262:9 [INFO] [stderr] | [INFO] [stderr] 262 | tcp_header [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/tcp.rs:250:13 [INFO] [stderr] | [INFO] [stderr] 250 | / TCP_Header { [INFO] [stderr] 251 | | source_port: u16::from_be(tcp_raw.source_port), [INFO] [stderr] 252 | | destination_port: u16::from_be(tcp_raw.destination_port), [INFO] [stderr] 253 | | sequence_number: u32::from_be(tcp_raw.sequence_number), [INFO] [stderr] ... | [INFO] [stderr] 258 | | ..tcp_raw [INFO] [stderr] 259 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/tcp.rs:378:9 [INFO] [stderr] | [INFO] [stderr] 378 | tcp_packet [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/tcp.rs:373:13 [INFO] [stderr] | [INFO] [stderr] 373 | / TCP_Packet { [INFO] [stderr] 374 | | header: tcp_header, [INFO] [stderr] 375 | | payload: payload, [INFO] [stderr] 376 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/tcp.rs:773:9 [INFO] [stderr] | [INFO] [stderr] 773 | ip_buffer [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/tcp.rs:768:25 [INFO] [stderr] | [INFO] [stderr] 768 | let ip_buffer = build_ip_buffer(&ip_connection, IpProtocol::TCP, &tcp_buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/http_proxy_app.rs:39:15 [INFO] [stderr] | [INFO] [stderr] 39 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/handler/http_proxy/app/mod.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | pub mod app; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handler/http_proxy/udp.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | dns_socket_addr [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handler/http_proxy/udp.rs:48:35 [INFO] [stderr] | [INFO] [stderr] 48 | let dns_socket_addr = SocketAddr::new(server.dns, server.dns_port); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handler/http_proxy/server.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | default_server [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handler/http_proxy/server.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / Server { [INFO] [stderr] 40 | | name: String::from("default"), [INFO] [stderr] 41 | | socket_addr: FromStr::from_str("127.0.0.1:3148").unwrap(), [INFO] [stderr] 42 | | dns: FromStr::from_str("8.8.8.8").unwrap(), [INFO] [stderr] 43 | | dns_port: 53, [INFO] [stderr] 44 | | is_local_dns: false, [INFO] [stderr] 45 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/core/tcp_state_machine.rs:499:20 [INFO] [stderr] | [INFO] [stderr] 499 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 500 | | if state.window.pivot == state.seq { [INFO] [stderr] 501 | | debug!("fin wait 1: move to fin wait 2"); [INFO] [stderr] 502 | | let new_state = [INFO] [stderr] ... | [INFO] [stderr] 513 | | } [INFO] [stderr] 514 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 499 | } else if state.window.pivot == state.seq { [INFO] [stderr] 500 | debug!("fin wait 1: move to fin wait 2"); [INFO] [stderr] 501 | let new_state = [INFO] [stderr] 502 | FinWait2 { [INFO] [stderr] 503 | seq: state.seq, [INFO] [stderr] 504 | window: state.window, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/core/tcp_event_loop.rs:321:16 [INFO] [stderr] | [INFO] [stderr] 321 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 322 | | if tcp.packet.header.has_flag(ControlBit::SYN) { [INFO] [stderr] 323 | | // debug!("tcp event, add listen tcp: {:#?}", tcp.connection); [INFO] [stderr] 324 | | match listen(&tcp, &tun_drain) { [INFO] [stderr] ... | [INFO] [stderr] 342 | | } [INFO] [stderr] 343 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 321 | } else if tcp.packet.header.has_flag(ControlBit::SYN) { [INFO] [stderr] 322 | // debug!("tcp event, add listen tcp: {:#?}", tcp.connection); [INFO] [stderr] 323 | match listen(&tcp, &tun_drain) { [INFO] [stderr] 324 | Some((connection, tcb)) => { [INFO] [stderr] 325 | tcbs.insert(connection, tcb); [INFO] [stderr] 326 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/core/mod.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub mod core; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/udp.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | udp_header [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/udp.rs:99:26 [INFO] [stderr] | [INFO] [stderr] 99 | let udp_header = UDP_Header [INFO] [stderr] | __________________________^ [INFO] [stderr] 100 | | { [INFO] [stderr] 101 | | source_port: u16::from_be(udp_raw.source_port), [INFO] [stderr] 102 | | destination_port: u16::from_be(udp_raw.destination_port), [INFO] [stderr] 103 | | length: u16::from_be(udp_raw.length), [INFO] [stderr] 104 | | checksum: u16::from_be(udp_raw.checksum), [INFO] [stderr] 105 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/udp.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | udp [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/udp.rs:146:19 [INFO] [stderr] | [INFO] [stderr] 146 | let udp = UDP_Packet [INFO] [stderr] | ___________________^ [INFO] [stderr] 147 | | { [INFO] [stderr] 148 | | header: udp_header, [INFO] [stderr] 149 | | payload: payload, [INFO] [stderr] 150 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/udp.rs:298:9 [INFO] [stderr] | [INFO] [stderr] 298 | buffer [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/udp.rs:288:22 [INFO] [stderr] | [INFO] [stderr] 288 | let buffer = build_ip_buffer [INFO] [stderr] | ______________________^ [INFO] [stderr] 289 | | ( [INFO] [stderr] 290 | | &ip_connection, [INFO] [stderr] 291 | | IpProtocol::User_Datagram, [INFO] [stderr] 292 | | &udp_buffer, [INFO] [stderr] 293 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/tcp.rs:262:9 [INFO] [stderr] | [INFO] [stderr] 262 | tcp_header [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/tcp.rs:250:13 [INFO] [stderr] | [INFO] [stderr] 250 | / TCP_Header { [INFO] [stderr] 251 | | source_port: u16::from_be(tcp_raw.source_port), [INFO] [stderr] 252 | | destination_port: u16::from_be(tcp_raw.destination_port), [INFO] [stderr] 253 | | sequence_number: u32::from_be(tcp_raw.sequence_number), [INFO] [stderr] ... | [INFO] [stderr] 258 | | ..tcp_raw [INFO] [stderr] 259 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/tcp.rs:378:9 [INFO] [stderr] | [INFO] [stderr] 378 | tcp_packet [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/tcp.rs:373:13 [INFO] [stderr] | [INFO] [stderr] 373 | / TCP_Packet { [INFO] [stderr] 374 | | header: tcp_header, [INFO] [stderr] 375 | | payload: payload, [INFO] [stderr] 376 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/structure/socket/tcp.rs:773:9 [INFO] [stderr] | [INFO] [stderr] 773 | ip_buffer [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/structure/socket/tcp.rs:768:25 [INFO] [stderr] | [INFO] [stderr] 768 | let ip_buffer = build_ip_buffer(&ip_connection, IpProtocol::TCP, &tcp_buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/http_proxy_app.rs:39:15 [INFO] [stderr] | [INFO] [stderr] 39 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] error: this public function dereferences a raw pointer but is not marked `unsafe` [INFO] [stderr] --> src/helper.rs:34:28 [INFO] [stderr] | [INFO] [stderr] 34 | unsafe { ip_checksum_1(vdata, source_length) } [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::not_unsafe_ptr_arg_deref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#not_unsafe_ptr_arg_deref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/helper.rs:55:11 [INFO] [stderr] | [INFO] [stderr] 55 | array.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match connect_server(stream, None) { [INFO] [stderr] 55 | | Some(connection) => { [INFO] [stderr] 56 | | debug!("got connection: {:#?}", connection); [INFO] [stderr] 57 | | [INFO] [stderr] ... | [INFO] [stderr] 76 | | None => {} [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | if let Some(connection) = connect_server(stream, None) { [INFO] [stderr] 55 | debug!("got connection: {:#?}", connection); [INFO] [stderr] 56 | [INFO] [stderr] 57 | let inbox_receiver_tcp_stream = connection.tcp_input_stream; [INFO] [stderr] 58 | let outbox_sender_tcp_stream = connection.tcp_output_stream; [INFO] [stderr] 59 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | / match inbox_sender.send(None) { [INFO] [stderr] 116 | | Err(err) => { [INFO] [stderr] 117 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 118 | | return; [INFO] [stderr] 119 | | } [INFO] [stderr] 120 | | _ => {} [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 115 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 116 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 117 | return; [INFO] [stderr] 118 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:149:21 [INFO] [stderr] | [INFO] [stderr] 149 | / match inbox_sender.send(None) { [INFO] [stderr] 150 | | Err(err) => { [INFO] [stderr] 151 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 152 | | return; [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | _ => {} [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 149 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 150 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 151 | return; [INFO] [stderr] 152 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:186:25 [INFO] [stderr] | [INFO] [stderr] 186 | / match outbox_sender_tcp_stream.write_all(&payload) { [INFO] [stderr] 187 | | Err(err) => { [INFO] [stderr] 188 | | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 189 | | // continue; [INFO] [stderr] ... | [INFO] [stderr] 193 | | _ => {} [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 186 | if let Err(err) = outbox_sender_tcp_stream.write_all(&payload) { [INFO] [stderr] 187 | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 188 | // continue; [INFO] [stderr] 189 | // break will force client to reset [INFO] [stderr] 190 | break; [INFO] [stderr] 191 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:238:17 [INFO] [stderr] | [INFO] [stderr] 238 | sleep_time = sleep_time + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sleep_time += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:252:17 [INFO] [stderr] | [INFO] [stderr] 252 | / match inbox_sender.send(None) { [INFO] [stderr] 253 | | Err(err) => { [INFO] [stderr] 254 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 255 | | return; [INFO] [stderr] 256 | | } [INFO] [stderr] 257 | | _ => {} [INFO] [stderr] 258 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 252 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 253 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 254 | return; [INFO] [stderr] 255 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:268:17 [INFO] [stderr] | [INFO] [stderr] 268 | / match inbox_sender.send(Some(msg)) { [INFO] [stderr] 269 | | Err(err) => { [INFO] [stderr] 270 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 271 | | return; [INFO] [stderr] ... | [INFO] [stderr] 274 | | [INFO] [stderr] 275 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 268 | if let Err(err) = inbox_sender.send(Some(msg)) { [INFO] [stderr] 269 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 270 | return; [INFO] [stderr] 271 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:281:17 [INFO] [stderr] | [INFO] [stderr] 281 | / match inbox_sender.send(None) { [INFO] [stderr] 282 | | Err(err) => { [INFO] [stderr] 283 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 284 | | return; [INFO] [stderr] 285 | | } [INFO] [stderr] 286 | | _ => {} [INFO] [stderr] 287 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 281 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 282 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 283 | return; [INFO] [stderr] 284 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | / match connect_server(stream, None) { [INFO] [stderr] 58 | | Some(connection) => { [INFO] [stderr] 59 | | debug!("got connection: {:#?}", connection); [INFO] [stderr] 60 | | [INFO] [stderr] ... | [INFO] [stderr] 85 | | None => {} [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 57 | if let Some(connection) = connect_server(stream, None) { [INFO] [stderr] 58 | debug!("got connection: {:#?}", connection); [INFO] [stderr] 59 | [INFO] [stderr] 60 | let inbox_receiver_tcp_stream = connection.tcp_input_stream; [INFO] [stderr] 61 | let outbox_sender_tcp_stream = connection.tcp_output_stream; [INFO] [stderr] 62 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:123:21 [INFO] [stderr] | [INFO] [stderr] 123 | / match inbox_sender.send(None) { [INFO] [stderr] 124 | | Err(err) => { [INFO] [stderr] 125 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 126 | | return; [INFO] [stderr] 127 | | } [INFO] [stderr] 128 | | _ => {} [INFO] [stderr] 129 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 123 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 124 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 125 | return; [INFO] [stderr] 126 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:157:21 [INFO] [stderr] | [INFO] [stderr] 157 | / match inbox_sender.send(None) { [INFO] [stderr] 158 | | Err(err) => { [INFO] [stderr] 159 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 160 | | return; [INFO] [stderr] 161 | | } [INFO] [stderr] 162 | | _ => {} [INFO] [stderr] 163 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 157 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 158 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 159 | return; [INFO] [stderr] 160 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:188:21 [INFO] [stderr] | [INFO] [stderr] 188 | / match outbox_sender_tcp_stream.write_all(&tcp_dns_request) { [INFO] [stderr] 189 | | Err(err) => { [INFO] [stderr] 190 | | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 191 | | // continue; [INFO] [stderr] ... | [INFO] [stderr] 195 | | _ => {} [INFO] [stderr] 196 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 188 | if let Err(err) = outbox_sender_tcp_stream.write_all(&tcp_dns_request) { [INFO] [stderr] 189 | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 190 | // continue; [INFO] [stderr] 191 | // break will force client to reset [INFO] [stderr] 192 | return; [INFO] [stderr] 193 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:215:13 [INFO] [stderr] | [INFO] [stderr] 215 | / match inbox_sender.send(None) { [INFO] [stderr] 216 | | Err(err) => { [INFO] [stderr] 217 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 218 | | return; [INFO] [stderr] 219 | | } [INFO] [stderr] 220 | | _ => {} [INFO] [stderr] 221 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 216 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 217 | return; [INFO] [stderr] 218 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | / match inbox_sender.send(Some(tcp_dns_response)) { [INFO] [stderr] 232 | | Err(err) => { [INFO] [stderr] 233 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 234 | | return; [INFO] [stderr] ... | [INFO] [stderr] 237 | | } [INFO] [stderr] 238 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 231 | if let Err(err) = inbox_sender.send(Some(tcp_dns_response)) { [INFO] [stderr] 232 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 233 | return; [INFO] [stderr] 234 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | / match inbox_sender.send(None) { [INFO] [stderr] 245 | | Err(err) => { [INFO] [stderr] 246 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 247 | | return; [INFO] [stderr] 248 | | } [INFO] [stderr] 249 | | _ => {} [INFO] [stderr] 250 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 244 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 245 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 246 | return; [INFO] [stderr] 247 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this public function dereferences a raw pointer but is not marked `unsafe` [INFO] [stderr] --> src/helper.rs:34:28 [INFO] [stderr] | [INFO] [stderr] 34 | unsafe { ip_checksum_1(vdata, source_length) } [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::not_unsafe_ptr_arg_deref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#not_unsafe_ptr_arg_deref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/helper.rs:55:11 [INFO] [stderr] | [INFO] [stderr] 55 | array.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | / match inbox_sender.send(None) { [INFO] [stderr] 314 | | Err(err) => { [INFO] [stderr] 315 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 316 | | return; [INFO] [stderr] 317 | | } [INFO] [stderr] 318 | | _ => {} [INFO] [stderr] 319 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 313 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 314 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 315 | return; [INFO] [stderr] 316 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | / match inbox_sender.send(None) { [INFO] [stderr] 354 | | Err(err) => { [INFO] [stderr] 355 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 356 | | return; [INFO] [stderr] 357 | | } [INFO] [stderr] 358 | | _ => {} [INFO] [stderr] 359 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 353 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 354 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 355 | return; [INFO] [stderr] 356 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/tun_file_descriptor.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | / match tun_in_sender.send(Some(received)) { [INFO] [stderr] 53 | | Err(err) => { [INFO] [stderr] 54 | | error!("Failed to send to tun_in sender: {:#?}", err); [INFO] [stderr] 55 | | break; [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | _ => {} [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 52 | if let Err(err) = tun_in_sender.send(Some(received)) { [INFO] [stderr] 53 | error!("Failed to send to tun_in sender: {:#?}", err); [INFO] [stderr] 54 | break; [INFO] [stderr] 55 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/tun_file_descriptor.rs:75:25 [INFO] [stderr] | [INFO] [stderr] 75 | / match tun_out.write(&buffer) { [INFO] [stderr] 76 | | Err(err) => { [INFO] [stderr] 77 | | error!("Failed to write to file struct {:#?}", err); [INFO] [stderr] 78 | | break; [INFO] [stderr] 79 | | } [INFO] [stderr] 80 | | _ => {} [INFO] [stderr] 81 | | }; [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 75 | if let Err(err) = tun_out.write(&buffer) { [INFO] [stderr] 76 | error!("Failed to write to file struct {:#?}", err); [INFO] [stderr] 77 | break; [INFO] [stderr] 78 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/tun_file_descriptor.rs:84:25 [INFO] [stderr] | [INFO] [stderr] 84 | / match kill_send.send(()) { [INFO] [stderr] 85 | | Err(err) => { [INFO] [stderr] 86 | | error!("Failed to kill tun in thread {:#?}", err); [INFO] [stderr] 87 | | } [INFO] [stderr] 88 | | _ => {} [INFO] [stderr] 89 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 84 | if let Err(err) = kill_send.send(()) { [INFO] [stderr] 85 | error!("Failed to kill tun in thread {:#?}", err); [INFO] [stderr] 86 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match connect_server(stream, None) { [INFO] [stderr] 55 | | Some(connection) => { [INFO] [stderr] 56 | | debug!("got connection: {:#?}", connection); [INFO] [stderr] 57 | | [INFO] [stderr] ... | [INFO] [stderr] 76 | | None => {} [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | if let Some(connection) = connect_server(stream, None) { [INFO] [stderr] 55 | debug!("got connection: {:#?}", connection); [INFO] [stderr] 56 | [INFO] [stderr] 57 | let inbox_receiver_tcp_stream = connection.tcp_input_stream; [INFO] [stderr] 58 | let outbox_sender_tcp_stream = connection.tcp_output_stream; [INFO] [stderr] 59 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/connect.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / match tcp_input_stream.try_clone() { [INFO] [stderr] 40 | | Ok(tcp_output_stream) => { [INFO] [stderr] 41 | | match tcp_input_stream.set_read_timeout(timeout) [INFO] [stderr] 42 | | .and(tcp_output_stream. [INFO] [stderr] ... | [INFO] [stderr] 60 | | _ => () [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 39 | if let Ok(tcp_output_stream) = tcp_input_stream.try_clone() { [INFO] [stderr] 40 | match tcp_input_stream.set_read_timeout(timeout) [INFO] [stderr] 41 | .and(tcp_output_stream. [INFO] [stderr] 42 | set_write_timeout(timeout)) { [INFO] [stderr] 43 | Ok(_) => { [INFO] [stderr] 44 | let server_connection = [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | / match inbox_sender.send(None) { [INFO] [stderr] 116 | | Err(err) => { [INFO] [stderr] 117 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 118 | | return; [INFO] [stderr] 119 | | } [INFO] [stderr] 120 | | _ => {} [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 115 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 116 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 117 | return; [INFO] [stderr] 118 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/core/tcp_state_machine.rs:125:26 [INFO] [stderr] | [INFO] [stderr] 125 | let connection = tcp.connection.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `tcp.connection` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:149:21 [INFO] [stderr] | [INFO] [stderr] 149 | / match inbox_sender.send(None) { [INFO] [stderr] 150 | | Err(err) => { [INFO] [stderr] 151 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 152 | | return; [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | _ => {} [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 149 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 150 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 151 | return; [INFO] [stderr] 152 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:186:25 [INFO] [stderr] | [INFO] [stderr] 186 | / match outbox_sender_tcp_stream.write_all(&payload) { [INFO] [stderr] 187 | | Err(err) => { [INFO] [stderr] 188 | | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 189 | | // continue; [INFO] [stderr] ... | [INFO] [stderr] 193 | | _ => {} [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 186 | if let Err(err) = outbox_sender_tcp_stream.write_all(&payload) { [INFO] [stderr] 187 | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 188 | // continue; [INFO] [stderr] 189 | // break will force client to reset [INFO] [stderr] 190 | break; [INFO] [stderr] 191 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:238:17 [INFO] [stderr] | [INFO] [stderr] 238 | sleep_time = sleep_time + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sleep_time += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:252:17 [INFO] [stderr] | [INFO] [stderr] 252 | / match inbox_sender.send(None) { [INFO] [stderr] 253 | | Err(err) => { [INFO] [stderr] 254 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 255 | | return; [INFO] [stderr] 256 | | } [INFO] [stderr] 257 | | _ => {} [INFO] [stderr] 258 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 252 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 253 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 254 | return; [INFO] [stderr] 255 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:268:17 [INFO] [stderr] | [INFO] [stderr] 268 | / match inbox_sender.send(Some(msg)) { [INFO] [stderr] 269 | | Err(err) => { [INFO] [stderr] 270 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 271 | | return; [INFO] [stderr] ... | [INFO] [stderr] 274 | | [INFO] [stderr] 275 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 268 | if let Err(err) = inbox_sender.send(Some(msg)) { [INFO] [stderr] 269 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 270 | return; [INFO] [stderr] 271 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/tcp.rs:281:17 [INFO] [stderr] | [INFO] [stderr] 281 | / match inbox_sender.send(None) { [INFO] [stderr] 282 | | Err(err) => { [INFO] [stderr] 283 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 284 | | return; [INFO] [stderr] 285 | | } [INFO] [stderr] 286 | | _ => {} [INFO] [stderr] 287 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 281 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 282 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 283 | return; [INFO] [stderr] 284 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | / match connect_server(stream, None) { [INFO] [stderr] 58 | | Some(connection) => { [INFO] [stderr] 59 | | debug!("got connection: {:#?}", connection); [INFO] [stderr] 60 | | [INFO] [stderr] ... | [INFO] [stderr] 85 | | None => {} [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 57 | if let Some(connection) = connect_server(stream, None) { [INFO] [stderr] 58 | debug!("got connection: {:#?}", connection); [INFO] [stderr] 59 | [INFO] [stderr] 60 | let inbox_receiver_tcp_stream = connection.tcp_input_stream; [INFO] [stderr] 61 | let outbox_sender_tcp_stream = connection.tcp_output_stream; [INFO] [stderr] 62 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:123:21 [INFO] [stderr] | [INFO] [stderr] 123 | / match inbox_sender.send(None) { [INFO] [stderr] 124 | | Err(err) => { [INFO] [stderr] 125 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 126 | | return; [INFO] [stderr] 127 | | } [INFO] [stderr] 128 | | _ => {} [INFO] [stderr] 129 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 123 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 124 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 125 | return; [INFO] [stderr] 126 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:157:21 [INFO] [stderr] | [INFO] [stderr] 157 | / match inbox_sender.send(None) { [INFO] [stderr] 158 | | Err(err) => { [INFO] [stderr] 159 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 160 | | return; [INFO] [stderr] 161 | | } [INFO] [stderr] 162 | | _ => {} [INFO] [stderr] 163 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 157 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 158 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 159 | return; [INFO] [stderr] 160 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:188:21 [INFO] [stderr] | [INFO] [stderr] 188 | / match outbox_sender_tcp_stream.write_all(&tcp_dns_request) { [INFO] [stderr] 189 | | Err(err) => { [INFO] [stderr] 190 | | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 191 | | // continue; [INFO] [stderr] ... | [INFO] [stderr] 195 | | _ => {} [INFO] [stderr] 196 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 188 | if let Err(err) = outbox_sender_tcp_stream.write_all(&tcp_dns_request) { [INFO] [stderr] 189 | debug!("Err in stream write all {:#?}", err); [INFO] [stderr] 190 | // continue; [INFO] [stderr] 191 | // break will force client to reset [INFO] [stderr] 192 | return; [INFO] [stderr] 193 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:215:13 [INFO] [stderr] | [INFO] [stderr] 215 | / match inbox_sender.send(None) { [INFO] [stderr] 216 | | Err(err) => { [INFO] [stderr] 217 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 218 | | return; [INFO] [stderr] 219 | | } [INFO] [stderr] 220 | | _ => {} [INFO] [stderr] 221 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 216 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 217 | return; [INFO] [stderr] 218 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | / match inbox_sender.send(Some(tcp_dns_response)) { [INFO] [stderr] 232 | | Err(err) => { [INFO] [stderr] 233 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 234 | | return; [INFO] [stderr] ... | [INFO] [stderr] 237 | | } [INFO] [stderr] 238 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 231 | if let Err(err) = inbox_sender.send(Some(tcp_dns_response)) { [INFO] [stderr] 232 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 233 | return; [INFO] [stderr] 234 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core/tcp_event_loop.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | let ref mut tcbs = state.tcbs; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let tcbs = &mut state.tcbs;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/core/tcp_event_loop.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 50 | || // debug!("Process message: found key: {:#?}, state: {:#?}", [INFO] [stderr] 51 | || // connection, [INFO] [stderr] 52 | || // tcb.state, [INFO] [stderr] ... || [INFO] [stderr] 107 | || [INFO] [stderr] 108 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(tcb) = tcbs.get_mut(&connection) { ... }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | / match inbox_sender.send(None) { [INFO] [stderr] 245 | | Err(err) => { [INFO] [stderr] 246 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 247 | | return; [INFO] [stderr] 248 | | } [INFO] [stderr] 249 | | _ => {} [INFO] [stderr] 250 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 244 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 245 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 246 | return; [INFO] [stderr] 247 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core/tcp_event_loop.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | let ref mut tcbs = state.tcbs; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let tcbs = &mut state.tcbs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/core/tcp_event_loop.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | / if tcbs.contains_key(&connection) { [INFO] [stderr] 130 | | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] 131 | | [INFO] [stderr] 132 | | // debug!("Process tcb: found key: {:#?}, state: {:#?}", [INFO] [stderr] ... | [INFO] [stderr] 342 | | } [INFO] [stderr] 343 | | } [INFO] [stderr] | |_________^ help: consider using: `tcbs.entry(connection)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/core/tcp_event_loop.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 131 | || [INFO] [stderr] 132 | || // debug!("Process tcb: found key: {:#?}, state: {:#?}", [INFO] [stderr] 133 | || // connection, [INFO] [stderr] ... || [INFO] [stderr] 319 | || } [INFO] [stderr] 320 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(tcb) = tcbs.get_mut(&connection) { ... }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/core/tcp_event_loop.rs:130:43 [INFO] [stderr] | [INFO] [stderr] 130 | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 131 | | [INFO] [stderr] 132 | | // debug!("Process tcb: found key: {:#?}, state: {:#?}", [INFO] [stderr] 133 | | // connection, [INFO] [stderr] ... | [INFO] [stderr] 319 | | } [INFO] [stderr] 320 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | / match inbox_sender.send(None) { [INFO] [stderr] 314 | | Err(err) => { [INFO] [stderr] 315 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 316 | | return; [INFO] [stderr] 317 | | } [INFO] [stderr] 318 | | _ => {} [INFO] [stderr] 319 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 313 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 314 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 315 | return; [INFO] [stderr] 316 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/handler/http_proxy/udp.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | / match inbox_sender.send(None) { [INFO] [stderr] 354 | | Err(err) => { [INFO] [stderr] 355 | | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 356 | | return; [INFO] [stderr] 357 | | } [INFO] [stderr] 358 | | _ => {} [INFO] [stderr] 359 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 353 | if let Err(err) = inbox_sender.send(None) { [INFO] [stderr] 354 | debug!("TCP Err in client inbox producer send {:#?}", err); [INFO] [stderr] 355 | return; [INFO] [stderr] 356 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/core/tcp_event_loop.rs:324:17 [INFO] [stderr] | [INFO] [stderr] 324 | / match listen(&tcp, &tun_drain) { [INFO] [stderr] 325 | | Some((connection, tcb)) => { [INFO] [stderr] 326 | | tcbs.insert(connection, tcb); [INFO] [stderr] 327 | | } [INFO] [stderr] 328 | | _ => {} [INFO] [stderr] 329 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 324 | if let Some((connection, tcb)) = listen(&tcp, &tun_drain) { [INFO] [stderr] 325 | tcbs.insert(connection, tcb); [INFO] [stderr] 326 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core/garbage_collector.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | let ref mut tcbs = state.tcbs; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let tcbs = &mut state.tcbs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/tun_file_descriptor.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | / match tun_in_sender.send(Some(received)) { [INFO] [stderr] 53 | | Err(err) => { [INFO] [stderr] 54 | | error!("Failed to send to tun_in sender: {:#?}", err); [INFO] [stderr] 55 | | break; [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | _ => {} [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 52 | if let Err(err) = tun_in_sender.send(Some(received)) { [INFO] [stderr] 53 | error!("Failed to send to tun_in sender: {:#?}", err); [INFO] [stderr] 54 | break; [INFO] [stderr] 55 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/tun_file_descriptor.rs:75:25 [INFO] [stderr] | [INFO] [stderr] 75 | / match tun_out.write(&buffer) { [INFO] [stderr] 76 | | Err(err) => { [INFO] [stderr] 77 | | error!("Failed to write to file struct {:#?}", err); [INFO] [stderr] 78 | | break; [INFO] [stderr] 79 | | } [INFO] [stderr] 80 | | _ => {} [INFO] [stderr] 81 | | }; [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 75 | if let Err(err) = tun_out.write(&buffer) { [INFO] [stderr] 76 | error!("Failed to write to file struct {:#?}", err); [INFO] [stderr] 77 | break; [INFO] [stderr] 78 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/tun_file_descriptor.rs:84:25 [INFO] [stderr] | [INFO] [stderr] 84 | / match kill_send.send(()) { [INFO] [stderr] 85 | | Err(err) => { [INFO] [stderr] 86 | | error!("Failed to kill tun in thread {:#?}", err); [INFO] [stderr] 87 | | } [INFO] [stderr] 88 | | _ => {} [INFO] [stderr] 89 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 84 | if let Err(err) = kill_send.send(()) { [INFO] [stderr] 85 | error!("Failed to kill tun in thread {:#?}", err); [INFO] [stderr] 86 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/connect.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / match tcp_input_stream.try_clone() { [INFO] [stderr] 40 | | Ok(tcp_output_stream) => { [INFO] [stderr] 41 | | match tcp_input_stream.set_read_timeout(timeout) [INFO] [stderr] 42 | | .and(tcp_output_stream. [INFO] [stderr] ... | [INFO] [stderr] 60 | | _ => () [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 39 | if let Ok(tcp_output_stream) = tcp_input_stream.try_clone() { [INFO] [stderr] 40 | match tcp_input_stream.set_read_timeout(timeout) [INFO] [stderr] 41 | .and(tcp_output_stream. [INFO] [stderr] 42 | set_write_timeout(timeout)) { [INFO] [stderr] 43 | Ok(_) => { [INFO] [stderr] 44 | let server_connection = [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/core/core.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | / match feeder.receive.recv() { [INFO] [stderr] 171 | | Ok(Some(response)) => { [INFO] [stderr] 172 | | [INFO] [stderr] 173 | | // debug!("driver udp response {} \n {:#?}", [INFO] [stderr] ... | [INFO] [stderr] 186 | | _ => {} [INFO] [stderr] 187 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 170 | if let Ok(Some(response)) = feeder.receive.recv() { [INFO] [stderr] 171 | [INFO] [stderr] 172 | // debug!("driver udp response {} \n {:#?}", [INFO] [stderr] 173 | // response.len(), [INFO] [stderr] 174 | // String::from_utf8_lossy(&response)); [INFO] [stderr] 175 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/core/tcp_state_machine.rs:125:26 [INFO] [stderr] | [INFO] [stderr] 125 | let connection = tcp.connection.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `tcp.connection` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*const u8`) to a reference type (`&structure::socket::udp::UDP_Header`) [INFO] [stderr] --> src/structure/socket/udp.rs:96:45 [INFO] [stderr] | [INFO] [stderr] 96 | let udp_ref: &UDP_Header = unsafe { transmute(buffer.as_ptr()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(buffer.as_ptr() as *const structure::socket::udp::UDP_Header)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/structure/socket/udp.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn build(&self) -> Vec { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/structure/socket/tcp.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / pub fn new [INFO] [stderr] 132 | | ( [INFO] [stderr] 133 | | source: IpAddr, [INFO] [stderr] 134 | | destination: IpAddr, [INFO] [stderr] ... | [INFO] [stderr] 214 | | } [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/structure/socket/tcp.rs:225:9 [INFO] [stderr] | [INFO] [stderr] 225 | / flags.into_iter() [INFO] [stderr] 226 | | .filter(|&x| (((*x) as u8) & self.control_bits) > 0) [INFO] [stderr] 227 | | .map(|&x| x) [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 225 | flags.into_iter() [INFO] [stderr] 226 | .filter(|&x| (((*x) as u8) & self.control_bits) > 0).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/structure/socket/tcp.rs:225:15 [INFO] [stderr] | [INFO] [stderr] 225 | flags.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*const u8`) to a reference type (`&structure::socket::tcp::TCP_Header`) [INFO] [stderr] --> src/structure/socket/tcp.rs:246:45 [INFO] [stderr] | [INFO] [stderr] 246 | let tcp_ref: &TCP_Header = unsafe { transmute(buffer.as_ptr()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(buffer.as_ptr() as *const structure::socket::tcp::TCP_Header)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/structure/socket/tcp.rs:425:59 [INFO] [stderr] | [INFO] [stderr] 425 | let bounded = seq.wrapping_sub(self.pivot) <= self.size as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(self.size)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/structure/socket/tcp.rs:537:50 [INFO] [stderr] | [INFO] [stderr] 537 | else if buffer_from_last_sent.is_empty() { [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 538 | | // debug!("buffer is emtpy"); [INFO] [stderr] 539 | | vec![] [INFO] [stderr] 540 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/structure/socket/tcp.rs:533:70 [INFO] [stderr] | [INFO] [stderr] 533 | if last_sent_as_buffer_index >= self.last_ack_window as usize{ [INFO] [stderr] | ______________________________________________________________________^ [INFO] [stderr] 534 | | vec![] [INFO] [stderr] 535 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core/tcp_event_loop.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | let ref mut tcbs = state.tcbs; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let tcbs = &mut state.tcbs;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/core/tcp_event_loop.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 50 | || // debug!("Process message: found key: {:#?}, state: {:#?}", [INFO] [stderr] 51 | || // connection, [INFO] [stderr] 52 | || // tcb.state, [INFO] [stderr] ... || [INFO] [stderr] 107 | || [INFO] [stderr] 108 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(tcb) = tcbs.get_mut(&connection) { ... }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/structure/socket/tcp.rs:776:5 [INFO] [stderr] | [INFO] [stderr] 776 | / pub fn build [INFO] [stderr] 777 | | ( [INFO] [stderr] 778 | | source: IpAddr, [INFO] [stderr] 779 | | destination: IpAddr, [INFO] [stderr] ... | [INFO] [stderr] 808 | | tcp_packet.build() [INFO] [stderr] 809 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core/tcp_event_loop.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | let ref mut tcbs = state.tcbs; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let tcbs = &mut state.tcbs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/core/tcp_event_loop.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | / if tcbs.contains_key(&connection) { [INFO] [stderr] 130 | | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] 131 | | [INFO] [stderr] 132 | | // debug!("Process tcb: found key: {:#?}, state: {:#?}", [INFO] [stderr] ... | [INFO] [stderr] 342 | | } [INFO] [stderr] 343 | | } [INFO] [stderr] | |_________^ help: consider using: `tcbs.entry(connection)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/core/tcp_event_loop.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 131 | || [INFO] [stderr] 132 | || // debug!("Process tcb: found key: {:#?}, state: {:#?}", [INFO] [stderr] 133 | || // connection, [INFO] [stderr] ... || [INFO] [stderr] 319 | || } [INFO] [stderr] 320 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(tcb) = tcbs.get_mut(&connection) { ... }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/core/tcp_event_loop.rs:130:43 [INFO] [stderr] | [INFO] [stderr] 130 | tcbs.get_mut(&connection).map(|tcb| { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 131 | | [INFO] [stderr] 132 | | // debug!("Process tcb: found key: {:#?}, state: {:#?}", [INFO] [stderr] 133 | | // connection, [INFO] [stderr] ... | [INFO] [stderr] 319 | | } [INFO] [stderr] 320 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*const u8`) to a reference type (`&structure::ip::v4::Ipv4Raw`) [INFO] [stderr] --> src/structure/ip/v4.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | let ip_ref: &Ipv4Raw = unsafe { transmute(buffer.as_ptr()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(buffer.as_ptr() as *const structure::ip::v4::Ipv4Raw)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/core/tcp_event_loop.rs:324:17 [INFO] [stderr] | [INFO] [stderr] 324 | / match listen(&tcp, &tun_drain) { [INFO] [stderr] 325 | | Some((connection, tcb)) => { [INFO] [stderr] 326 | | tcbs.insert(connection, tcb); [INFO] [stderr] 327 | | } [INFO] [stderr] 328 | | _ => {} [INFO] [stderr] 329 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 324 | if let Some((connection, tcb)) = listen(&tcp, &tun_drain) { [INFO] [stderr] 325 | tcbs.insert(connection, tcb); [INFO] [stderr] 326 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core/garbage_collector.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | let ref mut tcbs = state.tcbs; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let tcbs = &mut state.tcbs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/core/core.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | / match feeder.receive.recv() { [INFO] [stderr] 171 | | Ok(Some(response)) => { [INFO] [stderr] 172 | | [INFO] [stderr] 173 | | // debug!("driver udp response {} \n {:#?}", [INFO] [stderr] ... | [INFO] [stderr] 186 | | _ => {} [INFO] [stderr] 187 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 170 | if let Ok(Some(response)) = feeder.receive.recv() { [INFO] [stderr] 171 | [INFO] [stderr] 172 | // debug!("driver udp response {} \n {:#?}", [INFO] [stderr] 173 | // response.len(), [INFO] [stderr] 174 | // String::from_utf8_lossy(&response)); [INFO] [stderr] 175 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] The following warnings were emitted during compilation: [INFO] [stderr] [INFO] [stderr] warning: cbits/checksum.c: In function 'ip_checksum_1': [INFO] [stderr] warning: cbits/checksum.c:14:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] [INFO] [stderr] warning: for (i = 0; i < size - 1; i += 2) [INFO] [stderr] warning: ^ [INFO] [stderr] [INFO] [stderr] error: Could not compile `mtcp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: transmute from a pointer type (`*const u8`) to a reference type (`&structure::socket::udp::UDP_Header`) [INFO] [stderr] --> src/structure/socket/udp.rs:96:45 [INFO] [stderr] | [INFO] [stderr] 96 | let udp_ref: &UDP_Header = unsafe { transmute(buffer.as_ptr()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(buffer.as_ptr() as *const structure::socket::udp::UDP_Header)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/structure/socket/udp.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn build(&self) -> Vec { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/structure/socket/tcp.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / pub fn new [INFO] [stderr] 132 | | ( [INFO] [stderr] 133 | | source: IpAddr, [INFO] [stderr] 134 | | destination: IpAddr, [INFO] [stderr] ... | [INFO] [stderr] 214 | | } [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/structure/socket/tcp.rs:225:9 [INFO] [stderr] | [INFO] [stderr] 225 | / flags.into_iter() [INFO] [stderr] 226 | | .filter(|&x| (((*x) as u8) & self.control_bits) > 0) [INFO] [stderr] 227 | | .map(|&x| x) [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 225 | flags.into_iter() [INFO] [stderr] 226 | .filter(|&x| (((*x) as u8) & self.control_bits) > 0).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/structure/socket/tcp.rs:225:15 [INFO] [stderr] | [INFO] [stderr] 225 | flags.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*const u8`) to a reference type (`&structure::socket::tcp::TCP_Header`) [INFO] [stderr] --> src/structure/socket/tcp.rs:246:45 [INFO] [stderr] | [INFO] [stderr] 246 | let tcp_ref: &TCP_Header = unsafe { transmute(buffer.as_ptr()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(buffer.as_ptr() as *const structure::socket::tcp::TCP_Header)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/structure/socket/tcp.rs:425:59 [INFO] [stderr] | [INFO] [stderr] 425 | let bounded = seq.wrapping_sub(self.pivot) <= self.size as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(self.size)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/structure/socket/tcp.rs:537:50 [INFO] [stderr] | [INFO] [stderr] 537 | else if buffer_from_last_sent.is_empty() { [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 538 | | // debug!("buffer is emtpy"); [INFO] [stderr] 539 | | vec![] [INFO] [stderr] 540 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/structure/socket/tcp.rs:533:70 [INFO] [stderr] | [INFO] [stderr] 533 | if last_sent_as_buffer_index >= self.last_ack_window as usize{ [INFO] [stderr] | ______________________________________________________________________^ [INFO] [stderr] 534 | | vec![] [INFO] [stderr] 535 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/structure/socket/tcp.rs:776:5 [INFO] [stderr] | [INFO] [stderr] 776 | / pub fn build [INFO] [stderr] 777 | | ( [INFO] [stderr] 778 | | source: IpAddr, [INFO] [stderr] 779 | | destination: IpAddr, [INFO] [stderr] ... | [INFO] [stderr] 808 | | tcp_packet.build() [INFO] [stderr] 809 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*const u8`) to a reference type (`&structure::ip::v4::Ipv4Raw`) [INFO] [stderr] --> src/structure/ip/v4.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | let ip_ref: &Ipv4Raw = unsafe { transmute(buffer.as_ptr()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(buffer.as_ptr() as *const structure::ip::v4::Ipv4Raw)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] The following warnings were emitted during compilation: [INFO] [stderr] [INFO] [stderr] warning: cbits/checksum.c: In function 'ip_checksum_1': [INFO] [stderr] warning: cbits/checksum.c:14:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] [INFO] [stderr] warning: for (i = 0; i < size - 1; i += 2) [INFO] [stderr] warning: ^ [INFO] [stderr] [INFO] [stderr] error: Could not compile `mtcp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "e1baf1ce5243f40b8d1eac7729401c4a97f5e57067ba8032ee84bb831978f08c"` [INFO] running `"docker" "rm" "-f" "e1baf1ce5243f40b8d1eac7729401c4a97f5e57067ba8032ee84bb831978f08c"` [INFO] [stdout] e1baf1ce5243f40b8d1eac7729401c4a97f5e57067ba8032ee84bb831978f08c