Skip to content

Commit d6a601e

Browse files
committed
wg-webclient: fix cargo clippy
1 parent 74bb9ea commit d6a601e

File tree

7 files changed

+49
-48
lines changed

7 files changed

+49
-48
lines changed

wg-webclient/src/hyper_stream.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ impl hyper::rt::Read for HyperStream {
4949
let mut stream = self.stream.borrow_mut();
5050
stream.poll();
5151
if !stream.can_recv() {
52-
cx.waker().clone().wake();
52+
cx.waker().wake_by_ref();
5353
return Poll::Pending;
5454
}
5555
let write_buf = unsafe { buf.as_mut() };
@@ -77,8 +77,7 @@ impl hyper::rt::Write for HyperStream {
7777
let mut stream = self.stream.borrow_mut();
7878
match stream.write(buf) {
7979
Ok(len) => Poll::Ready(Ok(len)),
80-
Err(_) => Poll::Ready(Err(std::io::Error::new(
81-
std::io::ErrorKind::Other,
80+
Err(_) => Poll::Ready(Err(std::io::Error::other(
8281
"failed to write data",
8382
))),
8483
}
@@ -96,8 +95,7 @@ impl hyper::rt::Write for HyperStream {
9695
}
9796
match stream.flush() {
9897
Ok(_) => Poll::Ready(Ok(())),
99-
Err(err) => Poll::Ready(Err(std::io::Error::new(
100-
std::io::ErrorKind::Other,
98+
Err(err) => Poll::Ready(Err(std::io::Error::other(
10199
format!("failed to flush data: {:?}", err),
102100
))),
103101
}

wg-webclient/src/interface.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ impl<'a, Device: phy::Device + IsUp> Interface<'a, Device> {
6464
}
6565

6666
#[inline]
67-
pub fn get_socket(&self, handle: SocketHandle) -> &Socket {
67+
pub fn get_socket(&self, handle: SocketHandle) -> &Socket<'_> {
6868
self.sockets.get::<Socket>(handle)
6969
}
7070

wg-webclient/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use wasm_bindgen::prelude::*;
1313

1414
#[macro_export]
1515
macro_rules! console_log {
16-
($($t:tt)*) => (crate::utils::log(&format_args!($($t)*).to_string()))
16+
($($t:tt)*) => ($crate::utils::log(&format_args!($($t)*).to_string()))
1717
}
1818

1919
#[wasm_bindgen]

wg-webclient/src/stream.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ impl<Device: phy::Device + Clone + IsUp> Write for TcpStream<'_, Device> {
131131
#[inline]
132132
fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
133133
let mut inner_buf = self.buf.borrow_mut();
134-
Ok(inner_buf.write(buf)?)
134+
inner_buf.write(buf)
135135
}
136136

137137
#[inline]
@@ -140,7 +140,7 @@ impl<Device: phy::Device + Clone + IsUp> Write for TcpStream<'_, Device> {
140140
match self
141141
.iface
142142
.borrow_mut()
143-
.send_slice(self.handle, &mut buf[..])
143+
.send_slice(self.handle, &buf[..])
144144
{
145145
Ok(sent) => {
146146
if sent != buf.len() {
@@ -149,8 +149,7 @@ impl<Device: phy::Device + Clone + IsUp> Write for TcpStream<'_, Device> {
149149
}
150150
}
151151
Err(e) => {
152-
return Err(std::io::Error::new(
153-
std::io::ErrorKind::Other,
152+
return Err(std::io::Error::other(
154153
format!("failed to send data: {:?}", e),
155154
))
156155
}
@@ -192,8 +191,7 @@ impl<Device: phy::Device + Clone + IsUp> Read for TcpStream<'_, Device> {
192191
Ok(len) => Ok(len),
193192
Err(e) => match e {
194193
RecvError::Finished => Ok(0),
195-
RecvError::InvalidState => Err(std::io::Error::new(
196-
std::io::ErrorKind::Other,
194+
RecvError::InvalidState => Err(std::io::Error::other(
197195
"failed to recv data",
198196
)),
199197
},

wg-webclient/src/websocket.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,10 @@ where
107107
}
108108

109109
pub fn disconnect(&self) {
110-
match &*self.state.borrow_mut() {
111-
WebsocketState::Connected(state) => {
112-
let mut socket = state.stream.borrow_mut();
113-
let _ = socket.close(None);
114-
let _ = socket.flush();
115-
}
116-
_ => (),
110+
if let WebsocketState::Connected(state) = &*self.state.borrow_mut() {
111+
let mut socket = state.stream.borrow_mut();
112+
let _ = socket.close(None);
113+
let _ = socket.flush();
117114
}
118115
}
119116

@@ -167,7 +164,7 @@ fn create_setup_closure<Device>(
167164
let read: usize = match stream.read(&mut buf) {
168165
Ok(len) => len,
169166
Err(e) => {
170-
log::error!("error while reading from stream: {}", e.to_string());
167+
log::error!("error while reading from stream: {}", e);
171168
return;
172169
}
173170
};
@@ -180,13 +177,13 @@ fn create_setup_closure<Device>(
180177
return;
181178
}
182179
Err(e) => {
183-
log::error!("error while parsing response: {}", e.to_string());
180+
log::error!("error while parsing response: {}", e);
184181
return;
185182
}
186183
};
187184

188185
if let Some(accept_key) = response.headers().get("Sec-WebSocket-Accept") {
189-
if accept_key.as_bytes() != derive_accept_key(&key.as_bytes()).as_bytes() {
186+
if accept_key.as_bytes() != derive_accept_key(key.as_bytes()).as_bytes() {
190187
panic!("invalid accept key");
191188
}
192189
} else {
@@ -251,7 +248,7 @@ fn create_websocket_closure<Device>(
251248
},
252249
_ => log::error!(
253250
"error while reading from Websocket: {}",
254-
e.to_string()
251+
e
255252
),
256253
}
257254
return;

wg-webclient/src/wg_client.rs

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,28 @@ use wasm_bindgen::prelude::*;
3737
use wasm_bindgen_futures::JsFuture;
3838
use web_sys::{CustomEvent, MessageEvent, Response};
3939

40+
type EventClosure = Closure<dyn FnMut(CustomEvent)>;
41+
type EventQueue = Rc<RefCell<VecDeque<EventClosure>>>;
42+
type HyperResp = hyper::Response<hyper::body::Incoming>;
43+
type RequestFuture = Pin<Box<dyn Future<Output = hyper::Result<HyperResp>>>>;
44+
type ConnPin = Pin<Box<Connection<HyperStream, Box<Body>>>>;
45+
type RespPin = Pin<Box<HyperResp>>;
4046

4147
/// The exported client struct. It Wraps the actual Client and a Queue to keep the needed
4248
/// callbacks alive.
4349
/// Most function calls are simply passed to the wrapped object.
4450
#[wasm_bindgen]
4551
pub struct Client(
4652
WgClient,
47-
Rc<RefCell<VecDeque<Closure<dyn FnMut(CustomEvent)>>>>,
53+
EventQueue,
4854
);
4955

5056
#[wasm_bindgen]
5157
impl Client {
5258

5359
/// Creates a new Client struct by also creating the wrapped objects.
5460
#[wasm_bindgen(constructor)]
61+
#[allow(clippy::too_many_arguments)]
5562
pub fn new(
5663
secret_str: &str,
5764
peer_str: &str,
@@ -178,6 +185,7 @@ enum RequestState {
178185
impl WgClient {
179186

180187
/// Creates a new object.
188+
#[allow(clippy::too_many_arguments)]
181189
fn new(
182190
secret_str: &str,
183191
peer_str: &str,
@@ -231,7 +239,7 @@ impl WgClient {
231239
current_request: Rc::new(RefCell::new(None)),
232240
request_queue: Rc::new(RefCell::new(VecDeque::new())),
233241
pcap,
234-
internal_peer_ip: (&internal_peer_ip[0..internal_peer_ip.len() - 3]).to_string(),
242+
internal_peer_ip: internal_peer_ip[0..internal_peer_ip.len() - 3].to_string(),
235243
_polling_interval: polling_interval,
236244
username: Rc::new(RefCell::new(String::new())),
237245
password: Rc::new(RefCell::new(String::new())),
@@ -252,9 +260,9 @@ impl WgClient {
252260
let port = port as u16;
253261
let endpoint = smoltcp::wire::IpEndpoint::new(self.internal_peer_ip.parse().unwrap(), self.port);
254262
if let Err(err) = stream.connect(endpoint, port) {
255-
log::error!("Error when connecting websocket: {}", err.to_string());
263+
log::error!("Error when connecting websocket: {}", err);
256264
}
257-
let auth_header = if self.nonce.borrow().len() != 0 {
265+
let auth_header = if !self.nonce.borrow().is_empty() {
258266
Some(self.build_authentication_header("GET", "/ws"))
259267
} else {
260268
None
@@ -269,7 +277,7 @@ impl WgClient {
269277
let ha1 = md5::compute(format!("{}:{}:{}", self.username.borrow(), self.realm.borrow(), self.password.borrow()));
270278
let ha2 = md5::compute(format!("{}:{}", method, uri));
271279

272-
let this: JsValue = js_sys::global().try_into().unwrap();
280+
let this: JsValue = js_sys::global().into();
273281
let this = web_sys::WorkerGlobalScope::from(this);
274282
let crypto = this.crypto().unwrap();
275283

@@ -367,7 +375,7 @@ impl WgClient {
367375

368376
// FIXME: throw exception instead of panic
369377
if let Err(err) = stream.upgrade().unwrap().borrow_mut().connect(endpoint, out_port) {
370-
log::error!("Error connecting to endpoint {}: {}", endpoint, err.to_string());
378+
log::error!("Error connecting to endpoint {}: {}", endpoint, err);
371379
return;
372380
}
373381
*state_ref = RequestState::Started;
@@ -429,7 +437,7 @@ impl WgClient {
429437
let document = window.document().unwrap();
430438
let element = document.create_element("a").unwrap();
431439
element.set_attribute("download", "out.pcap").unwrap();
432-
element.set_attribute("href", &file.to_string()).unwrap();
440+
element.set_attribute("href", &file).unwrap();
433441
element.set_attribute("target", "_blank").unwrap();
434442
let element = wasm_bindgen::JsValue::from(element);
435443
let element = web_sys::HtmlElement::from(element);
@@ -451,7 +459,7 @@ impl WgClient {
451459

452460

453461
/// Transforms the raw tcp stream into sender and receiver objects for hyper.
454-
fn setup_connection(sender: Weak<RefCell<Option<SendRequest<Box<Body>>>>>, conn: Weak<RefCell<Option<std::pin::Pin<Box<Connection<HyperStream, Box<Body>>>>>>>, state: Weak<RefCell<RequestState>>, stream: Weak<RefCell<TcpStream<'static, WgTunDevice>>>) {
462+
fn setup_connection(sender: Weak<RefCell<Option<SendRequest<Box<Body>>>>>, conn: Weak<RefCell<Option<ConnPin>>>, state: Weak<RefCell<RequestState>>, stream: Weak<RefCell<TcpStream<'static, WgTunDevice>>>) {
455463
wasm_bindgen_futures::spawn_local(async move {
456464
let stream = HyperStream::new(stream.upgrade().unwrap().clone());
457465

@@ -470,7 +478,7 @@ fn send_http_reqeust(
470478
js_request: Rc<web_sys::Request>,
471479
url: Rc<String>,
472480
sender: Weak<RefCell<Option<SendRequest<Box<Body>>>>>,
473-
request: Weak<RefCell<Option<Pin<Box<dyn Future<Output = hyper::Result<hyper::Response<hyper::body::Incoming>>>>>>>>,
481+
request: Weak<RefCell<Option<RequestFuture>>>,
474482
state: Weak<RefCell<RequestState>>,
475483
self_cpy: WgClient,
476484
) {
@@ -502,7 +510,7 @@ fn send_http_reqeust(
502510
req = req.header(key, value);
503511
}
504512

505-
if self_cpy.nonce.borrow().len() != 0 {
513+
if !self_cpy.nonce.borrow().is_empty() {
506514
let auth_header = self_cpy.build_authentication_header(&method_str, &url);
507515
req = req.header("Authorization", auth_header);
508516
}
@@ -525,10 +533,10 @@ fn send_http_reqeust(
525533

526534
/// Polls the sending end of the hyper connection until the request is sent.
527535
fn poll_request(
528-
request: Rc<RefCell<Option<Pin<Box<dyn Future<Output = hyper::Result<hyper::Response<hyper::body::Incoming>>>>>>>>,
529-
resp: Rc<RefCell<Option<Pin<Box<hyper::Response<hyper::body::Incoming>>>>>>,
536+
request: Rc<RefCell<Option<RequestFuture>>>,
537+
resp: Rc<RefCell<Option<RespPin>>>,
530538
mut state: std::cell::RefMut<'_, RequestState>,
531-
conn: Rc<RefCell<Option<std::pin::Pin<Box<Connection<HyperStream, Box<Body>>>>>>>,
539+
conn: Rc<RefCell<Option<ConnPin>>>,
532540
) {
533541
let waker = futures::task::noop_waker();
534542
let mut cx = std::task::Context::from_waker(&waker);
@@ -556,12 +564,12 @@ fn poll_request(
556564

557565
/// Collects the raw response stream and parses it into a Response object.
558566
fn poll_response(
559-
resp: Rc<RefCell<Option<Pin<Box<hyper::Response<hyper::body::Incoming>>>>>>,
567+
resp: Rc<RefCell<Option<RespPin>>>,
560568
result: Rc<RefCell<Vec<u8>>>,
561569
mut state_ref: std::cell::RefMut<'_, RequestState>,
562570
self_cpy: WgClient,
563571
id: f64,
564-
conn: Rc<RefCell<Option<std::pin::Pin<Box<Connection<HyperStream, Box<Body>>>>>>>,
572+
conn: Rc<RefCell<Option<ConnPin>>>,
565573
) {
566574
let waker = futures::task::noop_waker();
567575
let mut cx = std::task::Context::from_waker(&waker);

wg-webclient/src/wg_device.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ pub struct WgTunDevice {
5858
socket: Rc<WebSocket>,
5959
socket_state: Rc<RefCell<WsConnectionState>>,
6060
_reset_rate_limiter_interval: Rc<IntervalHandle<JsValue>>,
61-
_onopen_closure: Rc<Closure<dyn FnMut(JsValue) -> ()>>,
62-
_onclose_closure: Rc<Closure<dyn FnMut(JsValue) -> ()>>,
63-
_onerror_closure: Rc<Closure<dyn FnMut(JsValue) -> ()>>,
64-
_onmessage_closure: Rc<Closure<dyn FnMut(MessageEvent) -> ()>>,
61+
_onopen_closure: Rc<Closure<dyn FnMut(JsValue)>>,
62+
_onclose_closure: Rc<Closure<dyn FnMut(JsValue)>>,
63+
_onerror_closure: Rc<Closure<dyn FnMut(JsValue)>>,
64+
_onmessage_closure: Rc<Closure<dyn FnMut(MessageEvent)>>,
6565
}
6666

6767
impl WgTunDevice {
@@ -151,7 +151,7 @@ fn create_onopen_closure(
151151
onopen_socket_state: Weak<RefCell<WsConnectionState>>,
152152
onopen_tun: Weak<RefCell<Tunn>>,
153153
onopen_socket: Weak<WebSocket>,
154-
) -> Closure<dyn FnMut(JsValue) -> ()> {
154+
) -> Closure<dyn FnMut(JsValue)> {
155155
Closure::<dyn FnMut(_)>::new(move |_: JsValue| {
156156
log::debug!("Parent WebSocket Opened");
157157
let onopen_socket_state = onopen_socket_state.upgrade().unwrap();
@@ -199,7 +199,7 @@ fn create_onmessage_closure(
199199
message_vec: Weak<RefCell<VecDeque<Vec<u8>>>>,
200200
message_pcap: Weak<RefCell<PcapNgWriter<Vec<u8>>>>,
201201
connect_cb: js_sys::Function,
202-
) -> Closure<dyn FnMut(MessageEvent) -> ()> {
202+
) -> Closure<dyn FnMut(MessageEvent)> {
203203
let connected = Rc::new(RefCell::new(false));
204204
Closure::<dyn FnMut(_)>::new(move |e: MessageEvent| {
205205
let data = e.data();
@@ -233,7 +233,7 @@ fn create_onmessage_closure(
233233
TunnResult::WriteToNetwork(d) => {
234234
if pcap_logging_enabled() {
235235
let pcap_strong = message_pcap.upgrade().unwrap();
236-
log_pcap_data(&pcap_strong, &d);
236+
log_pcap_data(&pcap_strong, d);
237237
}
238238
let mut connected = connected.borrow_mut();
239239
if !*connected {
@@ -256,7 +256,7 @@ fn create_onmessage_closure(
256256
{
257257
if pcap_logging_enabled() {
258258
let pcap_strong = message_pcap.upgrade().unwrap();
259-
log_pcap_data(&pcap_strong, &d);
259+
log_pcap_data(&pcap_strong, d);
260260
}
261261
let _ = message_socket.send_with_u8_array(d);
262262
}
@@ -273,7 +273,7 @@ fn create_onmessage_closure(
273273
TunnResult::WriteToTunnelV4(d, _) => {
274274
if pcap_logging_enabled() {
275275
let pcap_strong = message_pcap.upgrade().unwrap();
276-
log_pcap_data(&pcap_strong, &d);
276+
log_pcap_data(&pcap_strong, d);
277277
}
278278
let message_vec = message_vec.upgrade().unwrap();
279279
(*message_vec.borrow_mut()).push_back(d.to_vec());

0 commit comments

Comments
 (0)