diff --git a/Cargo.lock b/Cargo.lock index 0562121..cd656d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -563,7 +563,7 @@ dependencies = [ [[package]] name = "cyw43" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "atomic-polyfill 0.1.11", "cortex-m", @@ -571,9 +571,9 @@ dependencies = [ "defmt", "embassy-futures", "embassy-net-driver-channel", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", "embassy-time", - "embedded-hal 1.0.0-alpha.10", + "embedded-hal 1.0.0-alpha.11", "futures", "num_enum", ] @@ -581,7 +581,7 @@ dependencies = [ [[package]] name = "cyw43-pio" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "cyw43", "embassy-rp", @@ -858,12 +858,13 @@ dependencies = [ [[package]] name = "embassy-embedded-hal" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "embassy-futures", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", + "embassy-time", "embedded-hal 0.2.7", - "embedded-hal 1.0.0-alpha.10", + "embedded-hal 1.0.0-alpha.11", "embedded-hal-async", "embedded-storage", "embedded-storage-async", @@ -889,7 +890,7 @@ dependencies = [ [[package]] name = "embassy-executor" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "atomic-polyfill 1.0.2", "cortex-m", @@ -904,12 +905,12 @@ dependencies = [ [[package]] name = "embassy-futures" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" [[package]] -name = "embassy-hal-common" +name = "embassy-hal-internal" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "cortex-m", "critical-section 1.1.1", @@ -932,7 +933,7 @@ dependencies = [ [[package]] name = "embassy-macros" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "darling 0.20.1", "proc-macro2", @@ -943,14 +944,13 @@ dependencies = [ [[package]] name = "embassy-net" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "as-slice 0.2.1", "atomic-polyfill 1.0.2", "atomic-pool", - "embassy-hal-common", "embassy-net-driver", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", "embassy-time", "embedded-io", "embedded-nal-async", @@ -966,34 +966,45 @@ dependencies = [ [[package]] name = "embassy-net-driver" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" [[package]] name = "embassy-net-driver-channel" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "embassy-futures", "embassy-net-driver", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", +] + +[[package]] +name = "embassy-net-tuntap" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +dependencies = [ + "async-io", + "embassy-net-driver", + "libc", + "log", ] [[package]] name = "embassy-net-w5500" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "embassy-futures", "embassy-net-driver-channel", "embassy-time", - "embedded-hal 1.0.0-alpha.10", + "embedded-hal 1.0.0-alpha.11", "embedded-hal-async", ] [[package]] name = "embassy-rp" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "atomic-polyfill 1.0.2", "cfg-if", @@ -1003,16 +1014,17 @@ dependencies = [ "defmt", "embassy-embedded-hal", "embassy-futures", - "embassy-hal-common", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad)", + "embassy-hal-internal", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", "embassy-time", "embassy-usb-driver", "embedded-hal 0.2.7", - "embedded-hal 1.0.0-alpha.10", + "embedded-hal 1.0.0-alpha.11", "embedded-hal-async", "embedded-hal-nb", "embedded-io", "embedded-storage", + "embedded-storage-async", "fixed", "futures", "nb 1.1.0", @@ -1040,7 +1052,7 @@ dependencies = [ [[package]] name = "embassy-sync" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "cfg-if", "critical-section 1.1.1", @@ -1051,8 +1063,8 @@ dependencies = [ [[package]] name = "embassy-time" -version = "0.1.1" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +version = "0.1.2" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "atomic-polyfill 1.0.2", "cfg-if", @@ -1067,11 +1079,11 @@ dependencies = [ [[package]] name = "embassy-usb" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "embassy-futures", "embassy-net-driver-channel", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", "embassy-usb-driver", "heapless", "ssmarshal", @@ -1081,7 +1093,7 @@ dependencies = [ [[package]] name = "embassy-usb-driver" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=2eb7a67c7027c6768fa95031caf60bcd0eade1ad#2eb7a67c7027c6768fa95031caf60bcd0eade1ad" +source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" dependencies = [ "defmt", ] @@ -1098,26 +1110,26 @@ dependencies = [ [[package]] name = "embedded-hal" -version = "1.0.0-alpha.10" +version = "1.0.0-alpha.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65c4d073f5d91c66e629b216818a4c9747eeda0debedf2deda9a0a947e4e93b" +checksum = "f7724ebabcadfeb15920571dd727bc8ccde8586e52f2890bdb8182fdf42c3ff2" [[package]] name = "embedded-hal-async" -version = "0.2.0-alpha.1" +version = "0.2.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8042370aa7af48de36d5312cda14c18ed8ca6b7ce64f5a07832fedc9dc83063f" +checksum = "918285ec7b18edb024d4adc64f6f16cdc7c4d72eadfc85c3313d1e0ff40e0229" dependencies = [ - "embedded-hal 1.0.0-alpha.10", + "embedded-hal 1.0.0-alpha.11", ] [[package]] name = "embedded-hal-nb" -version = "1.0.0-alpha.2" +version = "1.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465fffd56a95bbc105c17965bca1c1d5815027b1cc6bb183bc05d04563d065c" +checksum = "a09e4c3f8a54e60803405e1cc17e36c963ab32e654f8d6bb49d48cd8116360d7" dependencies = [ - "embedded-hal 1.0.0-alpha.10", + "embedded-hal 1.0.0-alpha.11", "nb 1.1.0", ] @@ -2278,9 +2290,9 @@ dependencies = [ [[package]] name = "rp-pac" -version = "5.0.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33dd6f870a5f492dcd71c74ccb5d9b5987e43467697563c02995ed4f96f50618" +checksum = "f30f6c4c846269293db805e9c77864ff7b923395b480550df44f0868e3765337" dependencies = [ "cortex-m", "cortex-m-rt", @@ -2800,7 +2812,7 @@ dependencies = [ "embassy-time", "embassy-usb", "embassy-usb-driver", - "embedded-hal 1.0.0-alpha.10", + "embedded-hal 1.0.0-alpha.11", "embedded-hal-async", "embedded-io", "futures", @@ -2831,7 +2843,7 @@ dependencies = [ "embassy-executor 0.1.1", "embassy-futures", "embassy-net", - "embassy-net-driver", + "embassy-net-tuntap", "embassy-sync 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "embassy-time", "embedded-io", diff --git a/Cargo.toml b/Cargo.toml index b40b404..fa8b5d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -88,20 +88,21 @@ x25519-dalek = { git = "https://github.com/mkj/curve25519-dalek", branch = "suns # ed25519-dalek = { path = "/home/matt/3rd/rs/crypto/curve25519-dalek/ed25519-dalek" } # x25519-dalek = { path = "/home/matt/3rd/rs/crypto/curve25519-dalek/x25519-dalek" } -embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-usb = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } +embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-usb = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } # for cyw43 -embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } - -cyw43 = { git = "https://github.com/embassy-rs/embassy/", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -cyw43-pio = { git = "https://github.com/embassy-rs/embassy/", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } -embassy-net-w5500 = { git = "https://github.com/embassy-rs/embassy/", rev = "2eb7a67c7027c6768fa95031caf60bcd0eade1ad" } +embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-net-tuntap = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } + +cyw43 = { git = "https://github.com/embassy-rs/embassy/", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +cyw43-pio = { git = "https://github.com/embassy-rs/embassy/", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-net-w5500 = { git = "https://github.com/embassy-rs/embassy/", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } # these are mostly applicable to picow, but can't hurt generally [profile.dev] diff --git a/LICENSE b/LICENSE index 26ba5b0..5d07d85 100644 --- a/LICENSE +++ b/LICENSE @@ -8,7 +8,6 @@ MIT or Apache-2.0 license. Copyright (c) 2019-2022 Embassy project contributors embassy/demos/picow/src/wifi.rs -embassy/demos/std/src/tuntap.rs embassy/demos/picow/src/w5500.rs -- diff --git a/embassy/demos/common/src/config.rs b/embassy/demos/common/src/config.rs index 9d0bac1..2dad306 100644 --- a/embassy/demos/common/src/config.rs +++ b/embassy/demos/common/src/config.rs @@ -181,7 +181,6 @@ where let prefix = SSHDecode::dec(s)?; if prefix > 32 { // emabassy panics, so test it here - debug!("Prefix {} > 32", prefix); return Err(WireError::PacketWrong) } let gw: Option<[u8; 4]> = dec_option(s)?; diff --git a/embassy/demos/picow/Cargo.toml b/embassy/demos/picow/Cargo.toml index 5371a0f..fce77bd 100644 --- a/embassy/demos/picow/Cargo.toml +++ b/embassy/demos/picow/Cargo.toml @@ -41,7 +41,7 @@ snafu = { version = "0.7", default-features = false, features = ["rust_1_61"] } cortex-m = { version = "0.7.6", features = ["critical-section-single-core"]} cortex-m-rt = "0.7.0" -embedded-hal-1 = { package = "embedded-hal", version = "1.0.0-alpha.10" } +embedded-hal-1 = { package = "embedded-hal", version = "1.0.0-alpha.11" } embedded-hal-async = { version = "0.2.0-alpha.1" } embedded-io = { version = "0.4", features = ["async", "defmt"] } heapless = "0.7.15" diff --git a/embassy/demos/std/Cargo.toml b/embassy/demos/std/Cargo.toml index b4a2225..bd6393f 100644 --- a/embassy/demos/std/Cargo.toml +++ b/embassy/demos/std/Cargo.toml @@ -8,7 +8,7 @@ embassy-executor = { version = "0.1.0", default-features=false, features = ["lo embassy-time = { version = "0.1", default-features=false, features = ["log", "std"] } # embassy-net/nightly is required for asynch::Read/Write on TcpReader/TcpWriter embassy-net = { version = "0.1.0", features = ["tcp", "dhcpv4", "medium-ethernet", "nightly"] } -embassy-net-driver = { version = "0.1.0" } +embassy-net-tuntap = { version = "0.1.0" } embassy-sync = { version = "0.2.0" } embassy-futures = { version = "0.1.0" } atomic-polyfill = "0.1.5" diff --git a/embassy/demos/std/src/main.rs b/embassy/demos/std/src/main.rs index 71f6420..8c95432 100644 --- a/embassy/demos/std/src/main.rs +++ b/embassy/demos/std/src/main.rs @@ -8,7 +8,7 @@ use { }; use embassy_executor::{Spawner, Executor}; -use embassy_net::{Stack, StackResources, Config}; +use embassy_net::{Stack, StackResources}; use static_cell::StaticCell; use rand::rngs::OsRng; @@ -18,13 +18,11 @@ use demo_common::menu::Runner as MenuRunner; use embedded_io::asynch::Read; use embassy_sync::signal::Signal; use embassy_sync::blocking_mutex::raw::NoopRawMutex; - -use crate::tuntap::TunTapDevice; +use embassy_net_tuntap::TunTapDevice; use sunset::*; use sunset_embassy::{SSHServer, SunsetMutex}; -mod tuntap; mod setupmenu; pub(crate) use sunset_demo_embassy_common as demo_common; use crate::demo_common::singleton; @@ -47,7 +45,7 @@ async fn main_task(spawner: Spawner) { let config = &*singleton!( { let mut config = SSHConfig::new().unwrap(); - // config.set_console_pw(Some("pw")).unwrap(); + config.set_console_pw(Some("pw")).unwrap(); SunsetMutex::new(config) } ); @@ -86,7 +84,7 @@ struct StdDemo { impl DemoServer for StdDemo { type Init = (); - fn new(init: &Self::Init) -> Self { + fn new(_init: &Self::Init) -> Self { Default::default() } diff --git a/embassy/demos/std/src/setupmenu.rs b/embassy/demos/std/src/setupmenu.rs index 0519921..4995d2d 100644 --- a/embassy/demos/std/src/setupmenu.rs +++ b/embassy/demos/std/src/setupmenu.rs @@ -96,32 +96,28 @@ const AUTH_ITEM: Item = Item { }; fn enter_top(context: &mut BufOutput) { - writeln!(context, "In setup menu").unwrap(); + let _ = writeln!(context, "In setup menu").unwrap(); } fn enter_auth(context: &mut BufOutput) { - writeln!(context, "In auth menu").unwrap(); + let _ = writeln!(context, "In auth menu").unwrap(); } fn do_auth_show(_item: &Item, _args: &[&str], context: &mut BufOutput) { - writeln!(context, "auth key"); + let _ = writeln!(context, "auth key"); } fn do_auth_key(_item: &Item, _args: &[&str], context: &mut BufOutput) { - writeln!(context, "auth key"); + let _ = writeln!(context, "auth key"); } fn do_auth_pw(_item: &Item, _args: &[&str], context: &mut BufOutput) { - writeln!(context, "this is auth pw"); + let _ = writeln!(context, "this is auth pw"); } -fn do_gpio_show(_item: &Item, _args: &[&str], context: &mut BufOutput) { - writeln!(context, "gpio show here"); -} - -fn do_erase_config(_item: &Item, args: &[&str], context: &mut BufOutput) { +fn do_erase_config(_item: &Item, _args: &[&str], _context: &mut BufOutput) { } fn do_about(_item: &Item, _args: &[&str], context: &mut BufOutput) { - writeln!(context, "Sunset SSH, USB serial\nMatt Johnston \n"); + let _ = writeln!(context, "Sunset SSH, USB serial\nMatt Johnston \n"); } diff --git a/embassy/demos/std/src/tuntap.rs b/embassy/demos/std/src/tuntap.rs deleted file mode 100644 index 7a790ad..0000000 --- a/embassy/demos/std/src/tuntap.rs +++ /dev/null @@ -1,227 +0,0 @@ -// From https://github.com/embassy-rs/embassy/blob/master/examples/std/src/tuntap.rs -// Copyright (c) 2019-2022 Embassy project contributors -// MIT or Apache-2.0 license -use std::io; -use std::io::{Read, Write}; -use std::os::unix::io::{AsRawFd, RawFd}; -use std::task::Context; - -use async_io::Async; -use embassy_net_driver::{self, Capabilities, Driver, LinkState}; -use log::*; - -pub const SIOCGIFMTU: libc::c_ulong = 0x8921; -pub const _SIOCGIFINDEX: libc::c_ulong = 0x8933; -pub const _ETH_P_ALL: libc::c_short = 0x0003; -pub const TUNSETIFF: libc::c_ulong = 0x400454CA; -pub const _IFF_TUN: libc::c_int = 0x0001; -pub const IFF_TAP: libc::c_int = 0x0002; -pub const IFF_NO_PI: libc::c_int = 0x1000; - -const ETHERNET_HEADER_LEN: usize = 14; - -#[repr(C)] -#[derive(Debug)] -struct ifreq { - ifr_name: [libc::c_char; libc::IF_NAMESIZE], - ifr_data: libc::c_int, /* ifr_ifindex or ifr_mtu */ -} - -fn ifreq_for(name: &str) -> ifreq { - let mut ifreq = ifreq { - ifr_name: [0; libc::IF_NAMESIZE], - ifr_data: 0, - }; - for (i, byte) in name.as_bytes().iter().enumerate() { - ifreq.ifr_name[i] = *byte as libc::c_char - } - ifreq -} - -fn ifreq_ioctl(lower: libc::c_int, ifreq: &mut ifreq, cmd: libc::c_ulong) -> io::Result { - unsafe { - let res = libc::ioctl(lower, cmd as _, ifreq as *mut ifreq); - if res == -1 { - return Err(io::Error::last_os_error()); - } - } - - Ok(ifreq.ifr_data) -} - -#[derive(Debug)] -pub struct TunTap { - fd: libc::c_int, - mtu: usize, -} - -impl AsRawFd for TunTap { - fn as_raw_fd(&self) -> RawFd { - self.fd - } -} - -impl TunTap { - pub fn new(name: &str) -> io::Result { - unsafe { - let fd = libc::open( - "/dev/net/tun\0".as_ptr() as *const libc::c_char, - libc::O_RDWR | libc::O_NONBLOCK, - ); - if fd == -1 { - return Err(io::Error::last_os_error()); - } - - let mut ifreq = ifreq_for(name); - ifreq.ifr_data = IFF_TAP | IFF_NO_PI; - ifreq_ioctl(fd, &mut ifreq, TUNSETIFF)?; - - let socket = libc::socket(libc::AF_INET, libc::SOCK_DGRAM, libc::IPPROTO_IP); - if socket == -1 { - return Err(io::Error::last_os_error()); - } - - let ip_mtu = ifreq_ioctl(socket, &mut ifreq, SIOCGIFMTU); - libc::close(socket); - let ip_mtu = ip_mtu? as usize; - - // SIOCGIFMTU returns the IP MTU (typically 1500 bytes.) - // smoltcp counts the entire Ethernet packet in the MTU, so add the Ethernet header size to it. - let mtu = ip_mtu + ETHERNET_HEADER_LEN; - - Ok(TunTap { fd, mtu }) - } - } -} - -impl Drop for TunTap { - fn drop(&mut self) { - unsafe { - libc::close(self.fd); - } - } -} - -impl io::Read for TunTap { - fn read(&mut self, buf: &mut [u8]) -> io::Result { - let len = unsafe { libc::read(self.fd, buf.as_mut_ptr() as *mut libc::c_void, buf.len()) }; - if len == -1 { - Err(io::Error::last_os_error()) - } else { - Ok(len as usize) - } - } -} - -impl io::Write for TunTap { - fn write(&mut self, buf: &[u8]) -> io::Result { - let len = unsafe { libc::write(self.fd, buf.as_ptr() as *mut libc::c_void, buf.len()) }; - if len == -1 { - Err(io::Error::last_os_error()) - } else { - Ok(len as usize) - } - } - - fn flush(&mut self) -> io::Result<()> { - Ok(()) - } -} - -pub struct TunTapDevice { - device: Async, -} - -impl TunTapDevice { - pub fn new(name: &str) -> io::Result { - Ok(Self { - device: Async::new(TunTap::new(name)?)?, - }) - } -} - -impl Driver for TunTapDevice { - type RxToken<'a> = RxToken where Self: 'a; - type TxToken<'a> = TxToken<'a> where Self: 'a; - - fn receive(&mut self, cx: &mut Context) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)> { - let mut buf = vec![0; self.device.get_ref().mtu]; - loop { - match self.device.get_mut().read(&mut buf) { - Ok(n) => { - buf.truncate(n); - return Some(( - RxToken { buffer: buf }, - TxToken { - device: &mut self.device, - }, - )); - } - Err(e) if e.kind() == io::ErrorKind::WouldBlock => { - if !self.device.poll_readable(cx).is_ready() { - return None; - } - } - Err(e) => panic!("read error: {:?}", e), - } - } - } - - fn transmit(&mut self, _cx: &mut Context) -> Option> { - Some(TxToken { - device: &mut self.device, - }) - } - - fn capabilities(&self) -> Capabilities { - let mut caps = Capabilities::default(); - caps.max_transmission_unit = self.device.get_ref().mtu; - caps - } - - fn link_state(&mut self, _cx: &mut Context) -> LinkState { - LinkState::Up - } - - fn ethernet_address(&self) -> [u8; 6] { - [0x02, 0x03, 0x04, 0x05, 0x06, 0x07] - } -} - -#[doc(hidden)] -pub struct RxToken { - buffer: Vec, -} - -impl embassy_net_driver::RxToken for RxToken { - fn consume(mut self, f: F) -> R - where - F: FnOnce(&mut [u8]) -> R, - { - f(&mut self.buffer) - } -} - -#[doc(hidden)] -pub struct TxToken<'a> { - device: &'a mut Async, -} - -impl<'a> embassy_net_driver::TxToken for TxToken<'a> { - fn consume(self, len: usize, f: F) -> R - where - F: FnOnce(&mut [u8]) -> R, - { - let mut buffer = vec![0; len]; - let result = f(&mut buffer); - - // todo handle WouldBlock with async - match self.device.get_mut().write(&buffer) { - Ok(_) => {} - Err(e) if e.kind() == io::ErrorKind::WouldBlock => info!("transmit WouldBlock"), - Err(e) => panic!("transmit error: {:?}", e), - } - - result - } -}