ethernet: handle exit
This commit is contained in:
parent
3b83b6560f
commit
171ce942c3
@ -52,8 +52,8 @@ use core::mem::uninitialized;
|
||||
|
||||
// Exception: no phy::wait
|
||||
//use smoltcp::phy::wait as phy_wait;
|
||||
use smoltcp::wire::{EthernetAddress, IpAddress, IpCidr};
|
||||
use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder};
|
||||
use smoltcp::wire::{EthernetAddress, IpAddress, IpCidr, Ipv4Address};
|
||||
use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder, Routes};
|
||||
use smoltcp::socket::SocketSet;
|
||||
use smoltcp::socket::{SocketHandle, TcpSocket, TcpSocketBuffer};
|
||||
use smoltcp::time::{Duration, Instant};
|
||||
@ -259,11 +259,18 @@ fn main() -> ! {
|
||||
let mut neighbor_storage = [None; 16];
|
||||
let neighbor_cache = NeighborCache::new(&mut neighbor_storage[..]);
|
||||
|
||||
// Routes
|
||||
let default_v4_gw = Ipv4Address::new(192, 168, 1, 1);
|
||||
let mut routes_storage = [None; 8];
|
||||
let mut routes = Routes::new(&mut routes_storage[..]);
|
||||
routes.add_default_ipv4_route(default_v4_gw).unwrap();
|
||||
|
||||
// Device? _eth_dma, as it implements phy::device
|
||||
let mut iface = EthernetInterfaceBuilder::new(_eth_dma)
|
||||
.ethernet_addr(mac_addr)
|
||||
.neighbor_cache(neighbor_cache)
|
||||
.ip_addrs(&mut ip_addrs[..])
|
||||
.routes(routes)
|
||||
.finalize();
|
||||
|
||||
// SCPI configs
|
||||
@ -346,9 +353,18 @@ fn main() -> ! {
|
||||
}
|
||||
|
||||
if socket.can_recv() {
|
||||
let result = context.run(socket.recv(|buffer| {
|
||||
// let result = context.run(socket.recv(|buffer| {
|
||||
// (buffer.len(), buffer)
|
||||
// }).unwrap(), &mut buf);
|
||||
let mut data = socket.recv(|buffer| {
|
||||
(buffer.len(), buffer)
|
||||
}).unwrap(), &mut buf);
|
||||
}).unwrap();
|
||||
if str::from_utf8(data).unwrap().trim() == "quit" {
|
||||
socket.close();
|
||||
socket.abort();
|
||||
continue;
|
||||
}
|
||||
let result = context.run(data, &mut buf);
|
||||
if let Err(err) = result {
|
||||
writeln!(socket, "{}", str::from_utf8(err.get_message()).unwrap());
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user