mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-05 03:53:44 +02:00
ran cargo fmt
This commit is contained in:
parent
c27d7c8111
commit
1163a41e41
2 changed files with 8 additions and 5 deletions
|
@ -1,8 +1,8 @@
|
||||||
use std::cell::UnsafeCell;
|
use std::cell::UnsafeCell;
|
||||||
use std::mem::{needs_drop, size_of, zeroed, MaybeUninit};
|
use std::mem::{needs_drop, size_of, zeroed, MaybeUninit};
|
||||||
use std::ptr::slice_from_raw_parts;
|
use std::ptr::slice_from_raw_parts;
|
||||||
use std::sync::RwLock;
|
|
||||||
use std::sync::atomic::{AtomicU64, Ordering};
|
use std::sync::atomic::{AtomicU64, Ordering};
|
||||||
|
use std::sync::RwLock;
|
||||||
|
|
||||||
/// Fast packet defragmenter
|
/// Fast packet defragmenter
|
||||||
pub struct Fragged<Fragment, const MAX_FRAGMENTS: usize> {
|
pub struct Fragged<Fragment, const MAX_FRAGMENTS: usize> {
|
||||||
|
@ -47,7 +47,7 @@ impl<Fragment, const MAX_FRAGMENTS: usize> Fragged<Fragment, MAX_FRAGMENTS> {
|
||||||
Self {
|
Self {
|
||||||
counter_want: RwLock::new((0, 0)),
|
counter_want: RwLock::new((0, 0)),
|
||||||
have: AtomicU64::new(0),
|
have: AtomicU64::new(0),
|
||||||
frags: unsafe {zeroed()},
|
frags: unsafe { zeroed() },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +95,6 @@ impl<Fragment, const MAX_FRAGMENTS: usize> Fragged<Fragment, MAX_FRAGMENTS> {
|
||||||
if got & r_want > 0 && 1u64.wrapping_shl(fragment_count as u32) - 1 == r_want {
|
if got & r_want > 0 && 1u64.wrapping_shl(fragment_count as u32) - 1 == r_want {
|
||||||
let have = self.have.fetch_or(got, Ordering::Relaxed);
|
let have = self.have.fetch_or(got, Ordering::Relaxed);
|
||||||
if have & got == 0 {
|
if have & got == 0 {
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
(*self.frags.get()).get_unchecked_mut(fragment_no as usize).write(fragment);
|
(*self.frags.get()).get_unchecked_mut(fragment_no as usize).write(fragment);
|
||||||
}
|
}
|
||||||
|
|
|
@ -460,8 +460,12 @@ impl<Application: ApplicationLayer> Context<Application> {
|
||||||
if session.check_receive_window(incoming_counter) {
|
if session.check_receive_window(incoming_counter) {
|
||||||
let (assembled_packet, incoming_packet_buf_arr);
|
let (assembled_packet, incoming_packet_buf_arr);
|
||||||
let incoming_packet = if fragment_count > 1 {
|
let incoming_packet = if fragment_count > 1 {
|
||||||
assembled_packet = session.defrag[(incoming_counter as usize) % COUNTER_WINDOW_MAX_OOO]
|
assembled_packet = session.defrag[(incoming_counter as usize) % COUNTER_WINDOW_MAX_OOO].assemble(
|
||||||
.assemble(incoming_counter, incoming_physical_packet_buf, fragment_no, fragment_count);
|
incoming_counter,
|
||||||
|
incoming_physical_packet_buf,
|
||||||
|
fragment_no,
|
||||||
|
fragment_count,
|
||||||
|
);
|
||||||
if let Some(assembled_packet) = assembled_packet.as_ref() {
|
if let Some(assembled_packet) = assembled_packet.as_ref() {
|
||||||
assembled_packet.as_ref()
|
assembled_packet.as_ref()
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue