diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d64dce6..e2f6228 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -3,7 +3,8 @@ on: push: branches: - main - + tags: + - "*.*.*" env: IMAGE_NAME: mirrord-agent diff --git a/CHANGELOG.md b/CHANGELOG.md index 863f61b..2785aec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ ## [Unreleased] -## 1.0.0 - 21/02/2021 +## 1.0.1 - 10/3/2022 +### Changed +* Update dependencies +* CI now builds from tag also. +## 1.0.0 - 21/02/2022 Initial release \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index fb0a122..2d525c5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.55" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd" +checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" [[package]] name = "async-stream" @@ -98,9 +98,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.1.2" +version = "3.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5177fac1ab67102d8989464efd043c6ff44191b1557ec1ddd489b4f7e1447e77" +checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123" dependencies = [ "atty", "bitflags", @@ -115,9 +115,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.1.0" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd1122e63869df2cb309f449da1ad54a7c6dfeb7c7e6ccd8e0825d9eb93bb72" +checksum = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -128,8 +128,8 @@ dependencies = [ [[package]] name = "containerd-client" -version = "0.1.2" -source = "git+https://github.com/containerd/rust-extensions#3905a44f0f38f88787eed969b0fbdf14377156f6" +version = "0.2.0" +source = "git+https://github.com/containerd/rust-extensions#6bc49c007cf93869e7d83fca4818b6aae1145b45" dependencies = [ "prost", "prost-types", @@ -245,9 +245,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "h2" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" +checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b" dependencies = [ "bytes", "fnv", @@ -484,7 +484,7 @@ dependencies = [ [[package]] name = "mirrord-agent" -version = "0.1.0" +version = "1.0.1" dependencies = [ "anyhow", "base64", @@ -539,9 +539,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" [[package]] name = "os_str_bytes" @@ -858,18 +858,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" dependencies = [ "bitflags", ] [[package]] name = "regex" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" dependencies = [ "aho-corasick", "memchr", @@ -998,18 +998,18 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" dependencies = [ "winapi-util", ] [[package]] name = "textwrap" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "tokio" @@ -1168,9 +1168,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f" +checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" dependencies = [ "cfg-if", "log", @@ -1181,9 +1181,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" +checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" dependencies = [ "proc-macro2", "quote", @@ -1192,9 +1192,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" +checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" dependencies = [ "lazy_static", ] diff --git a/Cargo.toml b/Cargo.toml index aea4dae..f4b582b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mirrord-agent" -version = "0.1.0" +version = "1.0.1" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/main.rs b/src/main.rs index be35d67..d1ec0c7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -96,7 +96,7 @@ fn prepare_sniffer(ports: &[u16]) -> Result> { let interface = interfaces .into_iter() .find(interface_names_match) - .ok_or(anyhow!("Interface not found"))?; + .ok_or_else(|| anyhow!("Interface not found"))?; let mut cap = Capture::from_device(interface)? .immediate_mode(true) @@ -144,14 +144,13 @@ impl ConnectionManager { fn handle_packet(&mut self, eth_packet: &EthernetPacket) -> Result<()> { let ip_packet = match eth_packet.get_ethertype() { - EtherTypes::Ipv4 => { - Ipv4Packet::new(eth_packet.payload()).ok_or(anyhow!("Invalid IPv4 Packet"))? - } + EtherTypes::Ipv4 => Ipv4Packet::new(eth_packet.payload()) + .ok_or_else(|| anyhow!("Invalid IPv4 Packet"))?, _ => return Err(anyhow!("Not IPv4 Packet")), }; let tcp_packet = match ip_packet.get_next_level_protocol() { IpNextHeaderProtocols::Tcp => { - TcpPacket::new(ip_packet.payload()).ok_or(anyhow!("Invalid TCP Packet"))? + TcpPacket::new(ip_packet.payload()).ok_or_else(|| anyhow!("Invalid TCP Packet"))? } _ => return Err(anyhow!("Not TCP Packet")), }; @@ -206,8 +205,8 @@ impl ConnectionManager { fn capture(mut sniffer: Capture, ports: &[u16]) -> Result<()> { let mut connection_manager = ConnectionManager::new(ports.to_owned()); while let Ok(packet) = sniffer.next() { - let packet = - EthernetPacket::new(&packet).ok_or(anyhow!("Packet is not an ethernet packet"))?; + let packet = EthernetPacket::new(&packet) + .ok_or_else(|| anyhow!("Packet is not an ethernet packet"))?; let _ = connection_manager.handle_packet(&packet); } Ok(()) @@ -220,11 +219,13 @@ async fn get_container_namespace(container_id: String) -> Result { let request = with_namespace!(request, DEFAULT_CONTAINERD_NAMESPACE); let resp = client.get(request).await?; let resp = resp.into_inner(); - let container = resp.container.ok_or(anyhow!("container not found"))?; + let container = resp + .container + .ok_or_else(|| anyhow!("container not found"))?; let spec: Spec = serde_json::from_slice( &container .spec - .ok_or(anyhow!("invalid data from containerd"))? + .ok_or_else(|| anyhow!("invalid data from containerd"))? .value, )?; let ns_path = spec @@ -232,10 +233,10 @@ async fn get_container_namespace(container_id: String) -> Result { .namespaces .iter() .find(|ns| ns.ns_type == "network") - .ok_or(anyhow!("network namespace not found"))? + .ok_or_else(|| anyhow!("network namespace not found"))? .path .as_ref() - .ok_or(anyhow!("no network namespace path"))?; + .ok_or_else(|| anyhow!("no network namespace path"))?; Ok(ns_path.to_owned()) }