[INFO] cloning repository https://github.com/jakobtfr/task6-sockets-jakobtfr
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jakobtfr/task6-sockets-jakobtfr" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjakobtfr%2Ftask6-sockets-jakobtfr", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjakobtfr%2Ftask6-sockets-jakobtfr'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1ee8f495175a69786ec6da7afd8511c368871e80
[INFO] checking jakobtfr/task6-sockets-jakobtfr against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjakobtfr%2Ftask6-sockets-jakobtfr" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jakobtfr/task6-sockets-jakobtfr
[INFO] finished tweaking git repo https://github.com/jakobtfr/task6-sockets-jakobtfr
[INFO] tweaked toml for git repo https://github.com/jakobtfr/task6-sockets-jakobtfr written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jakobtfr/task6-sockets-jakobtfr on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jakobtfr/task6-sockets-jakobtfr already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a
[INFO] running `Command { std: "docker" "start" "287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.108
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.32
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling anyhow v1.0.51
[INFO] [stderr]    Compiling syn v1.0.82
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.15
[INFO] [stderr]    Compiling itertools v0.10.1
[INFO] [stderr]    Compiling hashbrown v0.11.2
[INFO] [stderr]    Compiling indexmap v1.7.0
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling bytes v1.1.0
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling fixedbitset v0.4.0
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]    Compiling regex-syntax v0.6.25
[INFO] [stderr]    Compiling unicode-segmentation v1.8.0
[INFO] [stderr]    Compiling memoffset v0.6.4
[INFO] [stderr]    Compiling petgraph v0.6.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling which v4.2.2
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling prost-build v0.9.0
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]    Compiling rand v0.8.4
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking nix v0.23.0
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]    Compiling regex v1.5.4
[INFO] [stderr]    Compiling tempfile v3.2.0
[INFO] [stderr]    Compiling prost-derive v0.9.0
[INFO] [stderr]    Compiling prost v0.9.0
[INFO] [stderr]    Compiling prost-types v0.9.0
[INFO] [stderr]    Compiling task6-sockets v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0425]: cannot find type `c_char` in this scope
[INFO] [stdout]   --> utils.rs:50:55
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout]    |                                                       ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 50 -     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout] 50 +     pub extern "C" fn connect_socket(hostname: *const char, port: c_int) -> c_int {
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these type aliases
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::os::raw::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use core::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                     ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                                     ^^^^ use of undeclared type `CStr`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `accept_connection`, `listening_socket`, `recv_msg`, and `send_msg`
[INFO] [stdout]  --> server.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use utils::{accept_connection, listening_socket, recv_msg, send_msg};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `c_char` in this scope
[INFO] [stdout]   --> utils.rs:50:55
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout]    |                                                       ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 50 -     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout] 50 +     pub extern "C" fn connect_socket(hostname: *const char, port: c_int) -> c_int {
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these type aliases
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::os::raw::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use core::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                     ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                                     ^^^^ use of undeclared type `CStr`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `recv_msg` and `send_msg`
[INFO] [stdout]  --> client.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use utils::{recv_msg, send_msg};
[INFO] [stdout]   |             ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]  --> utils.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn listening_socket(port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> utils.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> utils.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn accept_connection(sockfd: RawFd) -> nix::Result<RawFd> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn recv_msg(sockfd: RawFd) -> Result<sockets::Message, ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> utils.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]   --> server.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let num_threads = matches
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> server.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let port = matches.value_of("port").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]  --> utils.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn listening_socket(port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> utils.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> utils.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn accept_connection(sockfd: RawFd) -> nix::Result<RawFd> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn recv_msg(sockfd: RawFd) -> Result<sockets::Message, ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> utils.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]   --> client.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let num_threads = matches
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> client.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let hostname = matches
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> client.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let port = matches.value_of("port").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_messages`
[INFO] [stdout]   --> client.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let num_messages = matches
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_messages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add`
[INFO] [stdout]   --> client.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let add = matches.value_of("add").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub`
[INFO] [stdout]   --> client.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let sub = matches.value_of("sub").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_sub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `task6-sockets` (bin "server" test) due to 3 previous errors; 10 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `c_char` in this scope
[INFO] [stdout]   --> utils.rs:50:55
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout]    |                                                       ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 50 -     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout] 50 +     pub extern "C" fn connect_socket(hostname: *const char, port: c_int) -> c_int {
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these type aliases
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::os::raw::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use core::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                     ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                                     ^^^^ use of undeclared type `CStr`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `recv_msg` and `send_msg`
[INFO] [stdout]  --> client.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use utils::{recv_msg, send_msg};
[INFO] [stdout]   |             ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `c_char` in this scope
[INFO] [stdout]   --> utils.rs:50:55
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout]    |                                                       ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 50 -     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout] 50 +     pub extern "C" fn connect_socket(hostname: *const char, port: c_int) -> c_int {
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these type aliases
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::os::raw::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use core::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                     ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                                     ^^^^ use of undeclared type `CStr`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `task6-sockets` (bin "client") due to 3 previous errors; 14 warnings emitted
[INFO] [stdout] error[E0425]: cannot find type `c_char` in this scope
[INFO] [stdout]   --> utils.rs:50:55
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout]    |                                                       ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 50 -     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout] 50 +     pub extern "C" fn connect_socket(hostname: *const char, port: c_int) -> c_int {
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these type aliases
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::os::raw::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use core::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                     ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                                     ^^^^ use of undeclared type `CStr`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `accept_connection`, `listening_socket`, `recv_msg`, and `send_msg`
[INFO] [stdout]  --> server.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use utils::{accept_connection, listening_socket, recv_msg, send_msg};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]  --> utils.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn listening_socket(port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> utils.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> utils.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn accept_connection(sockfd: RawFd) -> nix::Result<RawFd> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn recv_msg(sockfd: RawFd) -> Result<sockets::Message, ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> utils.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]  --> utils.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn listening_socket(port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> utils.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> utils.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn accept_connection(sockfd: RawFd) -> nix::Result<RawFd> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn recv_msg(sockfd: RawFd) -> Result<sockets::Message, ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> utils.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `c_char` in this scope
[INFO] [stdout]   --> utils.rs:50:55
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout]    |                                                       ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 50 -     pub extern "C" fn connect_socket(hostname: *const c_char, port: c_int) -> c_int {
[INFO] [stdout] 50 +     pub extern "C" fn connect_socket(hostname: *const char, port: c_int) -> c_int {
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these type aliases
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::os::raw::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use core::ffi::c_char;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                     ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `CStr` in this scope
[INFO] [stdout]   --> utils.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let c_str: &CStr = unsafe { CStr::from_ptr(hostname) };
[INFO] [stdout]    |                                     ^^^^ use of undeclared type `CStr`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 36 +     use std::ffi::CStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]   --> client.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let num_threads = matches
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> client.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let hostname = matches
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> client.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let port = matches.value_of("port").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_messages`
[INFO] [stdout]   --> client.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let num_messages = matches
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_messages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add`
[INFO] [stdout]   --> client.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let add = matches.value_of("add").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub`
[INFO] [stdout]   --> client.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let sub = matches.value_of("sub").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_sub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `task6-sockets` (lib test) due to 3 previous errors; 7 warnings emitted
[INFO] [stderr] error: could not compile `task6-sockets` (bin "client" test) due to 3 previous errors; 14 warnings emitted
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]  --> utils.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn listening_socket(port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> utils.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> utils.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn accept_connection(sockfd: RawFd) -> nix::Result<RawFd> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn recv_msg(sockfd: RawFd) -> Result<sockets::Message, ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> utils.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]   --> server.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let num_threads = matches
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> server.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let port = matches.value_of("port").unwrap().parse::<u32>().unwrap();
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `task6-sockets` (bin "server") due to 3 previous errors; 10 warnings emitted
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]  --> utils.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn listening_socket(port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hostname`
[INFO] [stdout]   --> utils.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hostname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> utils.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn connect_socket(hostname: &str, port: u16) -> nix::Result<RawFd> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn accept_connection(sockfd: RawFd) -> nix::Result<RawFd> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn recv_msg(sockfd: RawFd) -> Result<sockets::Message, ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sockfd`
[INFO] [stdout]   --> utils.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockfd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> utils.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn send_msg(sockfd: RawFd, message: sockets::Message) -> Result<(), ()> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `task6-sockets` (lib) due to 3 previous errors; 7 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a", kill_on_drop: false }`
[INFO] [stdout] 287e8f88c89424ea5f06dc206309f5d185d549ea83b4282776eb26c750e97e6a
