rustdesk лет назад: 3
Родитель
Сommit
e2f4962ba8

+ 6 - 0
.vscode/settings.json

@@ -0,0 +1,6 @@
1
+{
2
+    "rust.checkWith": "clippy",
3
+    "rust.formatOnSave": true,
4
+    "rust.checkOnSave": true,
5
+    "rust.useNewErrorFormat": true
6
+}

+ 1 - 1
libs/hbb_common/build.rs

@@ -6,7 +6,7 @@ fn main() {
6 6
     protobuf_codegen::Codegen::new()
7 7
         .pure()
8 8
         .out_dir(out_dir)
9
-        .inputs(&["protos/rendezvous.proto", "protos/message.proto"])
9
+        .inputs(["protos/rendezvous.proto", "protos/message.proto"])
10 10
         .include("protos")
11 11
         .customize(protobuf_codegen::Customize::default().tokio_bytes(true))
12 12
         .run()

+ 20 - 20
libs/hbb_common/src/bytes_codec.rs

@@ -143,32 +143,32 @@ mod tests {
143 143
         let mut buf = BytesMut::new();
144 144
         let mut bytes: Vec<u8> = Vec::new();
145 145
         bytes.resize(0x3F, 1);
146
-        assert!(!codec.encode(bytes.into(), &mut buf).is_err());
146
+        assert!(codec.encode(bytes.into(), &mut buf).is_ok());
147 147
         let buf_saved = buf.clone();
148 148
         assert_eq!(buf.len(), 0x3F + 1);
149 149
         if let Ok(Some(res)) = codec.decode(&mut buf) {
150 150
             assert_eq!(res.len(), 0x3F);
151 151
             assert_eq!(res[0], 1);
152 152
         } else {
153
-            assert!(false);
153
+            panic!();
154 154
         }
155 155
         let mut codec2 = BytesCodec::new();
156 156
         let mut buf2 = BytesMut::new();
157 157
         if let Ok(None) = codec2.decode(&mut buf2) {
158 158
         } else {
159
-            assert!(false);
159
+            panic!();
160 160
         }
161 161
         buf2.extend(&buf_saved[0..1]);
162 162
         if let Ok(None) = codec2.decode(&mut buf2) {
163 163
         } else {
164
-            assert!(false);
164
+            panic!();
165 165
         }
166 166
         buf2.extend(&buf_saved[1..]);
167 167
         if let Ok(Some(res)) = codec2.decode(&mut buf2) {
168 168
             assert_eq!(res.len(), 0x3F);
169 169
             assert_eq!(res[0], 1);
170 170
         } else {
171
-            assert!(false);
171
+            panic!();
172 172
         }
173 173
     }
174 174
 
@@ -177,21 +177,21 @@ mod tests {
177 177
         let mut codec = BytesCodec::new();
178 178
         let mut buf = BytesMut::new();
179 179
         let mut bytes: Vec<u8> = Vec::new();
180
-        assert!(!codec.encode("".into(), &mut buf).is_err());
180
+        assert!(codec.encode("".into(), &mut buf).is_ok());
181 181
         assert_eq!(buf.len(), 1);
182 182
         bytes.resize(0x3F + 1, 2);
183
-        assert!(!codec.encode(bytes.into(), &mut buf).is_err());
183
+        assert!(codec.encode(bytes.into(), &mut buf).is_ok());
184 184
         assert_eq!(buf.len(), 0x3F + 2 + 2);
185 185
         if let Ok(Some(res)) = codec.decode(&mut buf) {
186 186
             assert_eq!(res.len(), 0);
187 187
         } else {
188
-            assert!(false);
188
+            panic!();
189 189
         }
190 190
         if let Ok(Some(res)) = codec.decode(&mut buf) {
191 191
             assert_eq!(res.len(), 0x3F + 1);
192 192
             assert_eq!(res[0], 2);
193 193
         } else {
194
-            assert!(false);
194
+            panic!();
195 195
         }
196 196
     }
197 197
 
@@ -201,13 +201,13 @@ mod tests {
201 201
         let mut buf = BytesMut::new();
202 202
         let mut bytes: Vec<u8> = Vec::new();
203 203
         bytes.resize(0x3F - 1, 3);
204
-        assert!(!codec.encode(bytes.into(), &mut buf).is_err());
204
+        assert!(codec.encode(bytes.into(), &mut buf).is_ok());
205 205
         assert_eq!(buf.len(), 0x3F + 1 - 1);
206 206
         if let Ok(Some(res)) = codec.decode(&mut buf) {
207 207
             assert_eq!(res.len(), 0x3F - 1);
208 208
             assert_eq!(res[0], 3);
209 209
         } else {
210
-            assert!(false);
210
+            panic!();
211 211
         }
212 212
     }
213 213
     #[test]
@@ -216,13 +216,13 @@ mod tests {
216 216
         let mut buf = BytesMut::new();
217 217
         let mut bytes: Vec<u8> = Vec::new();
218 218
         bytes.resize(0x3FFF, 4);
219
-        assert!(!codec.encode(bytes.into(), &mut buf).is_err());
219
+        assert!(codec.encode(bytes.into(), &mut buf).is_ok());
220 220
         assert_eq!(buf.len(), 0x3FFF + 2);
221 221
         if let Ok(Some(res)) = codec.decode(&mut buf) {
222 222
             assert_eq!(res.len(), 0x3FFF);
223 223
             assert_eq!(res[0], 4);
224 224
         } else {
225
-            assert!(false);
225
+            panic!();
226 226
         }
227 227
     }
228 228
 
@@ -232,13 +232,13 @@ mod tests {
232 232
         let mut buf = BytesMut::new();
233 233
         let mut bytes: Vec<u8> = Vec::new();
234 234
         bytes.resize(0x3FFFFF, 5);
235
-        assert!(!codec.encode(bytes.into(), &mut buf).is_err());
235
+        assert!(codec.encode(bytes.into(), &mut buf).is_ok());
236 236
         assert_eq!(buf.len(), 0x3FFFFF + 3);
237 237
         if let Ok(Some(res)) = codec.decode(&mut buf) {
238 238
             assert_eq!(res.len(), 0x3FFFFF);
239 239
             assert_eq!(res[0], 5);
240 240
         } else {
241
-            assert!(false);
241
+            panic!();
242 242
         }
243 243
     }
244 244
 
@@ -248,33 +248,33 @@ mod tests {
248 248
         let mut buf = BytesMut::new();
249 249
         let mut bytes: Vec<u8> = Vec::new();
250 250
         bytes.resize(0x3FFFFF + 1, 6);
251
-        assert!(!codec.encode(bytes.into(), &mut buf).is_err());
251
+        assert!(codec.encode(bytes.into(), &mut buf).is_ok());
252 252
         let buf_saved = buf.clone();
253 253
         assert_eq!(buf.len(), 0x3FFFFF + 4 + 1);
254 254
         if let Ok(Some(res)) = codec.decode(&mut buf) {
255 255
             assert_eq!(res.len(), 0x3FFFFF + 1);
256 256
             assert_eq!(res[0], 6);
257 257
         } else {
258
-            assert!(false);
258
+            panic!();
259 259
         }
260 260
         let mut codec2 = BytesCodec::new();
261 261
         let mut buf2 = BytesMut::new();
262 262
         buf2.extend(&buf_saved[0..1]);
263 263
         if let Ok(None) = codec2.decode(&mut buf2) {
264 264
         } else {
265
-            assert!(false);
265
+            panic!();
266 266
         }
267 267
         buf2.extend(&buf_saved[1..6]);
268 268
         if let Ok(None) = codec2.decode(&mut buf2) {
269 269
         } else {
270
-            assert!(false);
270
+            panic!();
271 271
         }
272 272
         buf2.extend(&buf_saved[6..]);
273 273
         if let Ok(Some(res)) = codec2.decode(&mut buf2) {
274 274
             assert_eq!(res.len(), 0x3FFFFF + 1);
275 275
             assert_eq!(res[0], 6);
276 276
         } else {
277
-            assert!(false);
277
+            panic!();
278 278
         }
279 279
     }
280 280
 }

+ 2 - 2
libs/hbb_common/src/config.rs

@@ -525,7 +525,7 @@ impl Config {
525 525
             let mut path: PathBuf = format!("/tmp/{}", *APP_NAME.read().unwrap()).into();
526 526
             fs::create_dir(&path).ok();
527 527
             fs::set_permissions(&path, fs::Permissions::from_mode(0o0777)).ok();
528
-            path.push(format!("ipc{}", postfix));
528
+            path.push(format!("ipc{postfix}"));
529 529
             path.to_str().unwrap_or("").to_owned()
530 530
         }
531 531
     }
@@ -562,7 +562,7 @@ impl Config {
562 562
                 .unwrap_or_default();
563 563
         }
564 564
         if !rendezvous_server.contains(':') {
565
-            rendezvous_server = format!("{}:{}", rendezvous_server, RENDEZVOUS_PORT);
565
+            rendezvous_server = format!("{rendezvous_server}:{RENDEZVOUS_PORT}");
566 566
         }
567 567
         rendezvous_server
568 568
     }

+ 28 - 29
libs/hbb_common/src/lib.rs

@@ -212,8 +212,7 @@ pub fn gen_version() {
212 212
     let build_date = format!("{}", chrono::Local::now().format("%Y-%m-%d %H:%M"));
213 213
     file.write_all(
214 214
         format!(
215
-            "#[allow(dead_code)]\npub const BUILD_DATE: &str = \"{}\";",
216
-            build_date
215
+            "#[allow(dead_code)]\npub const BUILD_DATE: &str = \"{build_date}\"\n;"
217 216
         )
218 217
         .as_bytes(),
219 218
     )
@@ -342,39 +341,39 @@ mod test {
342 341
 
343 342
     #[test]
344 343
     fn test_ipv6() {
345
-        assert_eq!(is_ipv6_str("1:2:3"), true);
346
-        assert_eq!(is_ipv6_str("[ab:2:3]:12"), true);
347
-        assert_eq!(is_ipv6_str("[ABEF:2a:3]:12"), true);
348
-        assert_eq!(is_ipv6_str("[ABEG:2a:3]:12"), false);
349
-        assert_eq!(is_ipv6_str("1[ab:2:3]:12"), false);
350
-        assert_eq!(is_ipv6_str("1.1.1.1"), false);
351
-        assert_eq!(is_ip_str("1.1.1.1"), true);
352
-        assert_eq!(is_ipv6_str("1:2:"), false);
353
-        assert_eq!(is_ipv6_str("1:2::0"), true);
354
-        assert_eq!(is_ipv6_str("[1:2::0]:1"), true);
355
-        assert_eq!(is_ipv6_str("[1:2::0]:"), false);
356
-        assert_eq!(is_ipv6_str("1:2::0]:1"), false);
344
+        assert!(is_ipv6_str("1:2:3"));
345
+        assert!(is_ipv6_str("[ab:2:3]:12"));
346
+        assert!(is_ipv6_str("[ABEF:2a:3]:12"));
347
+        assert!(!is_ipv6_str("[ABEG:2a:3]:12"));
348
+        assert!(!is_ipv6_str("1[ab:2:3]:12"));
349
+        assert!(!is_ipv6_str("1.1.1.1"));
350
+        assert!(is_ip_str("1.1.1.1"));
351
+        assert!(!is_ipv6_str("1:2:"));
352
+        assert!(is_ipv6_str("1:2::0"));
353
+        assert!(is_ipv6_str("[1:2::0]:1"));
354
+        assert!(!is_ipv6_str("[1:2::0]:"));
355
+        assert!(!is_ipv6_str("1:2::0]:1"));
357 356
     }
358 357
 
359 358
     #[test]
360 359
     fn test_hostname_port() {
361
-        assert_eq!(is_domain_port_str("a:12"), false);
362
-        assert_eq!(is_domain_port_str("a.b.c:12"), false);
363
-        assert_eq!(is_domain_port_str("test.com:12"), true);
364
-        assert_eq!(is_domain_port_str("test-UPPER.com:12"), true);
365
-        assert_eq!(is_domain_port_str("some-other.domain.com:12"), true);
366
-        assert_eq!(is_domain_port_str("under_score:12"), false);
367
-        assert_eq!(is_domain_port_str("a@bc:12"), false);
368
-        assert_eq!(is_domain_port_str("1.1.1.1:12"), false);
369
-        assert_eq!(is_domain_port_str("1.2.3:12"), false);
370
-        assert_eq!(is_domain_port_str("1.2.3.45:12"), false);
371
-        assert_eq!(is_domain_port_str("a.b.c:123456"), false);
372
-        assert_eq!(is_domain_port_str("---:12"), false);
373
-        assert_eq!(is_domain_port_str(".:12"), false);
360
+        assert!(!is_domain_port_str("a:12"));
361
+        assert!(!is_domain_port_str("a.b.c:12"));
362
+        assert!(is_domain_port_str("test.com:12"));
363
+        assert!(is_domain_port_str("test-UPPER.com:12"));
364
+        assert!(is_domain_port_str("some-other.domain.com:12"));
365
+        assert!(!is_domain_port_str("under_score:12"));
366
+        assert!(!is_domain_port_str("a@bc:12"));
367
+        assert!(!is_domain_port_str("1.1.1.1:12"));
368
+        assert!(!is_domain_port_str("1.2.3:12"));
369
+        assert!(!is_domain_port_str("1.2.3.45:12"));
370
+        assert!(!is_domain_port_str("a.b.c:123456"));
371
+        assert!(!is_domain_port_str("---:12"));
372
+        assert!(!is_domain_port_str(".:12"));
374 373
         // todo: should we also check for these edge cases?
375 374
         // out-of-range port
376
-        assert_eq!(is_domain_port_str("test.com:0"), true);
377
-        assert_eq!(is_domain_port_str("test.com:98989"), true);
375
+        assert!(is_domain_port_str("test.com:0"));
376
+        assert!(is_domain_port_str("test.com:98989"));
378 377
     }
379 378
 
380 379
     #[test]

+ 24 - 24
libs/hbb_common/src/password_security.rs

@@ -192,51 +192,51 @@ mod test {
192 192
         let data = "Hello World";
193 193
         let encrypted = encrypt_str_or_original(data, version);
194 194
         let (decrypted, succ, store) = decrypt_str_or_original(&encrypted, version);
195
-        println!("data: {}", data);
196
-        println!("encrypted: {}", encrypted);
197
-        println!("decrypted: {}", decrypted);
195
+        println!("data: {data}");
196
+        println!("encrypted: {encrypted}");
197
+        println!("decrypted: {decrypted}");
198 198
         assert_eq!(data, decrypted);
199 199
         assert_eq!(version, &encrypted[..2]);
200
-        assert_eq!(succ, true);
201
-        assert_eq!(store, false);
200
+        assert!(succ);
201
+        assert!(!store);
202 202
         let (_, _, store) = decrypt_str_or_original(&encrypted, "99");
203
-        assert_eq!(store, true);
204
-        assert_eq!(decrypt_str_or_original(&decrypted, version).1, false);
203
+        assert!(store);
204
+        assert!(!decrypt_str_or_original(&decrypted, version).1);
205 205
         assert_eq!(encrypt_str_or_original(&encrypted, version), encrypted);
206 206
 
207 207
         println!("test vec");
208 208
         let data: Vec<u8> = vec![1, 2, 3, 4, 5, 6];
209 209
         let encrypted = encrypt_vec_or_original(&data, version);
210 210
         let (decrypted, succ, store) = decrypt_vec_or_original(&encrypted, version);
211
-        println!("data: {:?}", data);
212
-        println!("encrypted: {:?}", encrypted);
213
-        println!("decrypted: {:?}", decrypted);
211
+        println!("data: {data:?}");
212
+        println!("encrypted: {encrypted:?}");
213
+        println!("decrypted: {decrypted:?}");
214 214
         assert_eq!(data, decrypted);
215 215
         assert_eq!(version.as_bytes(), &encrypted[..2]);
216
-        assert_eq!(store, false);
217
-        assert_eq!(succ, true);
216
+        assert!(!store);
217
+        assert!(succ);
218 218
         let (_, _, store) = decrypt_vec_or_original(&encrypted, "99");
219
-        assert_eq!(store, true);
220
-        assert_eq!(decrypt_vec_or_original(&decrypted, version).1, false);
219
+        assert!(store);
220
+        assert!(!decrypt_vec_or_original(&decrypted, version).1);
221 221
         assert_eq!(encrypt_vec_or_original(&encrypted, version), encrypted);
222 222
 
223 223
         println!("test original");
224 224
         let data = version.to_string() + "Hello World";
225 225
         let (decrypted, succ, store) = decrypt_str_or_original(&data, version);
226 226
         assert_eq!(data, decrypted);
227
-        assert_eq!(store, true);
228
-        assert_eq!(succ, false);
227
+        assert!(store);
228
+        assert!(!succ);
229 229
         let verbytes = version.as_bytes();
230
-        let data: Vec<u8> = vec![verbytes[0] as u8, verbytes[1] as u8, 1, 2, 3, 4, 5, 6];
230
+        let data: Vec<u8> = vec![verbytes[0], verbytes[1], 1, 2, 3, 4, 5, 6];
231 231
         let (decrypted, succ, store) = decrypt_vec_or_original(&data, version);
232 232
         assert_eq!(data, decrypted);
233
-        assert_eq!(store, true);
234
-        assert_eq!(succ, false);
233
+        assert!(store);
234
+        assert!(!succ);
235 235
         let (_, succ, store) = decrypt_str_or_original("", version);
236
-        assert_eq!(store, false);
237
-        assert_eq!(succ, false);
238
-        let (_, succ, store) = decrypt_vec_or_original(&vec![], version);
239
-        assert_eq!(store, false);
240
-        assert_eq!(succ, false);
236
+        assert!(!store);
237
+        assert!(!succ);
238
+        let (_, succ, store) = decrypt_vec_or_original(&[], version);
239
+        assert!(!store);
240
+        assert!(!succ);
241 241
     }
242 242
 }

+ 11 - 11
libs/hbb_common/src/socket_client.rs

@@ -13,22 +13,22 @@ use tokio_socks::{IntoTargetAddr, TargetAddr};
13 13
 pub fn check_port<T: std::string::ToString>(host: T, port: i32) -> String {
14 14
     let host = host.to_string();
15 15
     if crate::is_ipv6_str(&host) {
16
-        if host.starts_with("[") {
16
+        if host.starts_with('[') {
17 17
             return host;
18 18
         }
19
-        return format!("[{}]:{}", host, port);
19
+        return format!("[{host}]:{port}");
20 20
     }
21
-    if !host.contains(":") {
22
-        return format!("{}:{}", host, port);
21
+    if !host.contains(':') {
22
+        return format!("{host}:{port}");
23 23
     }
24
-    return host;
24
+    host
25 25
 }
26 26
 
27 27
 #[inline]
28 28
 pub fn increase_port<T: std::string::ToString>(host: T, offset: i32) -> String {
29 29
     let host = host.to_string();
30 30
     if crate::is_ipv6_str(&host) {
31
-        if host.starts_with("[") {
31
+        if host.starts_with('[') {
32 32
             let tmp: Vec<&str> = host.split("]:").collect();
33 33
             if tmp.len() == 2 {
34 34
                 let port: i32 = tmp[1].parse().unwrap_or(0);
@@ -37,8 +37,8 @@ pub fn increase_port<T: std::string::ToString>(host: T, offset: i32) -> String {
37 37
                 }
38 38
             }
39 39
         }
40
-    } else if host.contains(":") {
41
-        let tmp: Vec<&str> = host.split(":").collect();
40
+    } else if host.contains(':') {
41
+        let tmp: Vec<&str> = host.split(':').collect();
42 42
         if tmp.len() == 2 {
43 43
             let port: i32 = tmp[1].parse().unwrap_or(0);
44 44
             if port > 0 {
@@ -46,7 +46,7 @@ pub fn increase_port<T: std::string::ToString>(host: T, offset: i32) -> String {
46 46
             }
47 47
         }
48 48
     }
49
-    return host;
49
+    host
50 50
 }
51 51
 
52 52
 pub fn test_if_valid_server(host: &str) -> String {
@@ -148,7 +148,7 @@ pub async fn query_nip_io(addr: &SocketAddr) -> ResultType<SocketAddr> {
148 148
 pub fn ipv4_to_ipv6(addr: String, ipv4: bool) -> String {
149 149
     if !ipv4 && crate::is_ipv4_str(&addr) {
150 150
         if let Some(ip) = addr.split(':').next() {
151
-            return addr.replace(ip, &format!("{}.nip.io", ip));
151
+            return addr.replace(ip, &format!("{ip}.nip.io"));
152 152
         }
153 153
     }
154 154
     addr
@@ -163,7 +163,7 @@ async fn test_target(target: &str) -> ResultType<SocketAddr> {
163 163
     tokio::net::lookup_host(target)
164 164
         .await?
165 165
         .next()
166
-        .context(format!("Failed to look up host for {}", target))
166
+        .context(format!("Failed to look up host for {target}"))
167 167
 }
168 168
 
169 169
 #[inline]

+ 1 - 1
libs/hbb_common/src/tcp.rs

@@ -100,7 +100,7 @@ impl FramedStream {
100 100
                 }
101 101
             }
102 102
         }
103
-        bail!(format!("Failed to connect to {}", remote_addr));
103
+        bail!(format!("Failed to connect to {remote_addr}"));
104 104
     }
105 105
 
106 106
     pub async fn connect<'a, 't, P, T>(

+ 0 - 1
src/lib.rs

@@ -3,5 +3,4 @@ pub use rendezvous_server::*;
3 3
 pub mod common;
4 4
 mod database;
5 5
 mod peer;
6
-#[rustfmt::skip]
7 6
 mod version;