Skip to content

Commit 9a2093e

Browse files
committed
Remove braces that were previously needed to workaround SocketRef borrow issues.
1 parent ef213fa commit 9a2093e

File tree

9 files changed

+407
-458
lines changed

9 files changed

+407
-458
lines changed

examples/benchmark.rs

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -119,42 +119,38 @@ fn main() {
119119
}
120120

121121
// tcp:1234: emit data
122-
{
123-
let socket = iface.get_socket::<TcpSocket>(tcp1_handle);
124-
if !socket.is_open() {
125-
socket.listen(1234).unwrap();
126-
}
122+
let socket = iface.get_socket::<TcpSocket>(tcp1_handle);
123+
if !socket.is_open() {
124+
socket.listen(1234).unwrap();
125+
}
127126

128-
if socket.can_send() {
129-
if processed < AMOUNT {
130-
let length = socket
131-
.send(|buffer| {
132-
let length = cmp::min(buffer.len(), AMOUNT - processed);
133-
(length, length)
134-
})
135-
.unwrap();
136-
processed += length;
137-
}
127+
if socket.can_send() {
128+
if processed < AMOUNT {
129+
let length = socket
130+
.send(|buffer| {
131+
let length = cmp::min(buffer.len(), AMOUNT - processed);
132+
(length, length)
133+
})
134+
.unwrap();
135+
processed += length;
138136
}
139137
}
140138

141139
// tcp:1235: sink data
142-
{
143-
let socket = iface.get_socket::<TcpSocket>(tcp2_handle);
144-
if !socket.is_open() {
145-
socket.listen(1235).unwrap();
146-
}
140+
let socket = iface.get_socket::<TcpSocket>(tcp2_handle);
141+
if !socket.is_open() {
142+
socket.listen(1235).unwrap();
143+
}
147144

148-
if socket.can_recv() {
149-
if processed < AMOUNT {
150-
let length = socket
151-
.recv(|buffer| {
152-
let length = cmp::min(buffer.len(), AMOUNT - processed);
153-
(length, length)
154-
})
155-
.unwrap();
156-
processed += length;
157-
}
145+
if socket.can_recv() {
146+
if processed < AMOUNT {
147+
let length = socket
148+
.recv(|buffer| {
149+
let length = cmp::min(buffer.len(), AMOUNT - processed);
150+
(length, length)
151+
})
152+
.unwrap();
153+
processed += length;
158154
}
159155
}
160156

examples/client.rs

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,8 @@ fn main() {
5454

5555
let tcp_handle = iface.add_socket(tcp_socket);
5656

57-
{
58-
let socket = iface.get_socket::<TcpSocket>(tcp_handle);
59-
socket.connect((address, port), 49500).unwrap();
60-
}
57+
let socket = iface.get_socket::<TcpSocket>(tcp_handle);
58+
socket.connect((address, port), 49500).unwrap();
6159

6260
let mut tcp_active = false;
6361
loop {
@@ -69,43 +67,41 @@ fn main() {
6967
}
7068
}
7169

72-
{
73-
let socket = iface.get_socket::<TcpSocket>(tcp_handle);
74-
if socket.is_active() && !tcp_active {
75-
debug!("connected");
76-
} else if !socket.is_active() && tcp_active {
77-
debug!("disconnected");
78-
break;
79-
}
80-
tcp_active = socket.is_active();
81-
82-
if socket.may_recv() {
83-
let data = socket
84-
.recv(|data| {
85-
let mut data = data.to_owned();
86-
if !data.is_empty() {
87-
debug!(
88-
"recv data: {:?}",
89-
str::from_utf8(data.as_ref()).unwrap_or("(invalid utf8)")
90-
);
91-
data = data.split(|&b| b == b'\n').collect::<Vec<_>>().concat();
92-
data.reverse();
93-
data.extend(b"\n");
94-
}
95-
(data.len(), data)
96-
})
97-
.unwrap();
98-
if socket.can_send() && !data.is_empty() {
99-
debug!(
100-
"send data: {:?}",
101-
str::from_utf8(data.as_ref()).unwrap_or("(invalid utf8)")
102-
);
103-
socket.send_slice(&data[..]).unwrap();
104-
}
105-
} else if socket.may_send() {
106-
debug!("close");
107-
socket.close();
70+
let socket = iface.get_socket::<TcpSocket>(tcp_handle);
71+
if socket.is_active() && !tcp_active {
72+
debug!("connected");
73+
} else if !socket.is_active() && tcp_active {
74+
debug!("disconnected");
75+
break;
76+
}
77+
tcp_active = socket.is_active();
78+
79+
if socket.may_recv() {
80+
let data = socket
81+
.recv(|data| {
82+
let mut data = data.to_owned();
83+
if !data.is_empty() {
84+
debug!(
85+
"recv data: {:?}",
86+
str::from_utf8(data.as_ref()).unwrap_or("(invalid utf8)")
87+
);
88+
data = data.split(|&b| b == b'\n').collect::<Vec<_>>().concat();
89+
data.reverse();
90+
data.extend(b"\n");
91+
}
92+
(data.len(), data)
93+
})
94+
.unwrap();
95+
if socket.can_send() && !data.is_empty() {
96+
debug!(
97+
"send data: {:?}",
98+
str::from_utf8(data.as_ref()).unwrap_or("(invalid utf8)")
99+
);
100+
socket.send_slice(&data[..]).unwrap();
108101
}
102+
} else if socket.may_send() {
103+
debug!("close");
104+
socket.close();
109105
}
110106

111107
phy_wait(fd, iface.poll_delay(timestamp)).expect("wait error");

examples/httpclient.rs

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -76,46 +76,44 @@ fn main() {
7676
}
7777
}
7878

79-
{
80-
let socket = iface.get_socket::<TcpSocket>(tcp_handle);
79+
let socket = iface.get_socket::<TcpSocket>(tcp_handle);
8180

82-
state = match state {
83-
State::Connect if !socket.is_active() => {
84-
debug!("connecting");
85-
let local_port = 49152 + rand::random::<u16>() % 16384;
86-
socket
87-
.connect((address, url.port().unwrap_or(80)), local_port)
88-
.unwrap();
89-
State::Request
90-
}
91-
State::Request if socket.may_send() => {
92-
debug!("sending request");
93-
let http_get = "GET ".to_owned() + url.path() + " HTTP/1.1\r\n";
94-
socket.send_slice(http_get.as_ref()).expect("cannot send");
95-
let http_host = "Host: ".to_owned() + url.host_str().unwrap() + "\r\n";
96-
socket.send_slice(http_host.as_ref()).expect("cannot send");
97-
socket
98-
.send_slice(b"Connection: close\r\n")
99-
.expect("cannot send");
100-
socket.send_slice(b"\r\n").expect("cannot send");
101-
State::Response
102-
}
103-
State::Response if socket.can_recv() => {
104-
socket
105-
.recv(|data| {
106-
println!("{}", str::from_utf8(data).unwrap_or("(invalid utf8)"));
107-
(data.len(), ())
108-
})
109-
.unwrap();
110-
State::Response
111-
}
112-
State::Response if !socket.may_recv() => {
113-
debug!("received complete response");
114-
break;
115-
}
116-
_ => state,
81+
state = match state {
82+
State::Connect if !socket.is_active() => {
83+
debug!("connecting");
84+
let local_port = 49152 + rand::random::<u16>() % 16384;
85+
socket
86+
.connect((address, url.port().unwrap_or(80)), local_port)
87+
.unwrap();
88+
State::Request
11789
}
118-
}
90+
State::Request if socket.may_send() => {
91+
debug!("sending request");
92+
let http_get = "GET ".to_owned() + url.path() + " HTTP/1.1\r\n";
93+
socket.send_slice(http_get.as_ref()).expect("cannot send");
94+
let http_host = "Host: ".to_owned() + url.host_str().unwrap() + "\r\n";
95+
socket.send_slice(http_host.as_ref()).expect("cannot send");
96+
socket
97+
.send_slice(b"Connection: close\r\n")
98+
.expect("cannot send");
99+
socket.send_slice(b"\r\n").expect("cannot send");
100+
State::Response
101+
}
102+
State::Response if socket.can_recv() => {
103+
socket
104+
.recv(|data| {
105+
println!("{}", str::from_utf8(data).unwrap_or("(invalid utf8)"));
106+
(data.len(), ())
107+
})
108+
.unwrap();
109+
State::Response
110+
}
111+
State::Response if !socket.may_recv() => {
112+
debug!("received complete response");
113+
break;
114+
}
115+
_ => state,
116+
};
119117

120118
phy_wait(fd, iface.poll_delay(timestamp)).expect("wait error");
121119
}

examples/loopback.rs

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -135,46 +135,42 @@ fn main() {
135135
}
136136
}
137137

138-
{
139-
let mut socket = iface.get_socket::<TcpSocket>(server_handle);
140-
if !socket.is_active() && !socket.is_listening() {
141-
if !did_listen {
142-
debug!("listening");
143-
socket.listen(1234).unwrap();
144-
did_listen = true;
145-
}
138+
let mut socket = iface.get_socket::<TcpSocket>(server_handle);
139+
if !socket.is_active() && !socket.is_listening() {
140+
if !did_listen {
141+
debug!("listening");
142+
socket.listen(1234).unwrap();
143+
did_listen = true;
146144
}
145+
}
147146

148-
if socket.can_recv() {
149-
debug!(
150-
"got {:?}",
151-
socket.recv(|buffer| { (buffer.len(), str::from_utf8(buffer).unwrap()) })
152-
);
153-
socket.close();
154-
done = true;
155-
}
147+
if socket.can_recv() {
148+
debug!(
149+
"got {:?}",
150+
socket.recv(|buffer| { (buffer.len(), str::from_utf8(buffer).unwrap()) })
151+
);
152+
socket.close();
153+
done = true;
156154
}
157155

158-
{
159-
let mut socket = iface.get_socket::<TcpSocket>(client_handle);
160-
if !socket.is_open() {
161-
if !did_connect {
162-
debug!("connecting");
163-
socket
164-
.connect(
165-
(IpAddress::v4(127, 0, 0, 1), 1234),
166-
(IpAddress::Unspecified, 65000),
167-
)
168-
.unwrap();
169-
did_connect = true;
170-
}
156+
let mut socket = iface.get_socket::<TcpSocket>(client_handle);
157+
if !socket.is_open() {
158+
if !did_connect {
159+
debug!("connecting");
160+
socket
161+
.connect(
162+
(IpAddress::v4(127, 0, 0, 1), 1234),
163+
(IpAddress::Unspecified, 65000),
164+
)
165+
.unwrap();
166+
did_connect = true;
171167
}
168+
}
172169

173-
if socket.can_send() {
174-
debug!("sending");
175-
socket.send_slice(b"0123456789abcdef").unwrap();
176-
socket.close();
177-
}
170+
if socket.can_send() {
171+
debug!("sending");
172+
socket.send_slice(b"0123456789abcdef").unwrap();
173+
socket.close();
178174
}
179175

180176
match iface.poll_delay(clock.elapsed()) {

examples/multicast.rs

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -77,35 +77,32 @@ fn main() {
7777
}
7878
}
7979

80-
{
81-
let socket = iface.get_socket::<RawSocket>(raw_handle);
82-
83-
if socket.can_recv() {
84-
// For display purposes only - normally we wouldn't process incoming IGMP packets
85-
// in the application layer
86-
socket
87-
.recv()
88-
.and_then(Ipv4Packet::new_checked)
89-
.and_then(|ipv4_packet| IgmpPacket::new_checked(ipv4_packet.payload()))
90-
.and_then(|igmp_packet| IgmpRepr::parse(&igmp_packet))
91-
.map(|igmp_repr| println!("IGMP packet: {:?}", igmp_repr))
92-
.unwrap_or_else(|e| println!("Recv IGMP error: {:?}", e));
93-
}
80+
let socket = iface.get_socket::<RawSocket>(raw_handle);
81+
82+
if socket.can_recv() {
83+
// For display purposes only - normally we wouldn't process incoming IGMP packets
84+
// in the application layer
85+
socket
86+
.recv()
87+
.and_then(Ipv4Packet::new_checked)
88+
.and_then(|ipv4_packet| IgmpPacket::new_checked(ipv4_packet.payload()))
89+
.and_then(|igmp_packet| IgmpRepr::parse(&igmp_packet))
90+
.map(|igmp_repr| println!("IGMP packet: {:?}", igmp_repr))
91+
.unwrap_or_else(|e| println!("Recv IGMP error: {:?}", e));
9492
}
95-
{
96-
let socket = iface.get_socket::<UdpSocket>(udp_handle);
97-
if !socket.is_open() {
98-
socket.bind(MDNS_PORT).unwrap()
99-
}
10093

101-
if socket.can_recv() {
102-
socket
103-
.recv()
104-
.map(|(data, sender)| {
105-
println!("mDNS traffic: {} UDP bytes from {}", data.len(), sender)
106-
})
107-
.unwrap_or_else(|e| println!("Recv UDP error: {:?}", e));
108-
}
94+
let socket = iface.get_socket::<UdpSocket>(udp_handle);
95+
if !socket.is_open() {
96+
socket.bind(MDNS_PORT).unwrap()
97+
}
98+
99+
if socket.can_recv() {
100+
socket
101+
.recv()
102+
.map(|(data, sender)| {
103+
println!("mDNS traffic: {} UDP bytes from {}", data.len(), sender)
104+
})
105+
.unwrap_or_else(|e| println!("Recv UDP error: {:?}", e));
109106
}
110107

111108
phy_wait(fd, iface.poll_delay(timestamp)).expect("wait error");

0 commit comments

Comments
 (0)