add fragments to v0 outgoing packets
This commit is contained in:
parent
731fa91b72
commit
58c9e43fa3
1 changed files with 45 additions and 40 deletions
|
|
@ -106,17 +106,21 @@ impl<C: Crypto> Server<C> {
|
|||
.expect("packet malformed in creation"),
|
||||
);*/
|
||||
let mut inner = conn.inner.lock().await;
|
||||
let pieces = data.chunks(1000);
|
||||
let max_piece = pieces.len() - 1;
|
||||
let mut frag_num = 1;
|
||||
for (i, piece) in pieces.enumerate() {
|
||||
let seq = inner.server_packet_counter;
|
||||
let packet = new_data_packet(
|
||||
NEED_ACK | RELIABLE,
|
||||
self.param.virtual_port,
|
||||
(&self).param.virtual_port,
|
||||
conn.addr.virtual_port,
|
||||
data,
|
||||
piece,
|
||||
inner.server_packet_counter,
|
||||
conn.session_id,
|
||||
0,
|
||||
if i == max_piece { 0 } else { frag_num },
|
||||
&mut inner.crypto_instance,
|
||||
&self.crypto,
|
||||
&(&self).crypto,
|
||||
);
|
||||
inner.server_packet_counter += 1;
|
||||
|
||||
|
|
@ -125,8 +129,6 @@ impl<C: Crypto> Server<C> {
|
|||
|
||||
inner.unacknowledged_packets.insert(seq, packet);
|
||||
|
||||
drop(inner);
|
||||
|
||||
let conn = Arc::downgrade(&conn);
|
||||
let this = Arc::downgrade(&self);
|
||||
|
||||
|
|
@ -150,6 +152,9 @@ impl<C: Crypto> Server<C> {
|
|||
break;
|
||||
}
|
||||
});
|
||||
frag_num += 1;
|
||||
}
|
||||
drop(inner);
|
||||
}
|
||||
async fn connection_thread(
|
||||
self: Arc<Self>,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue