|
@@ -411,11 +411,16 @@ impl<H: Hal, T: Transport> VirtIOSocket<H, T> {
|
|
|
}
|
|
|
|
|
|
fn send_packet_to_tx_queue(&mut self, header: &VirtioVsockHdr, buffer: &[u8]) -> Result {
|
|
|
- let _len = self.tx.add_notify_wait_pop(
|
|
|
- &[header.as_bytes(), buffer],
|
|
|
- &mut [],
|
|
|
- &mut self.transport,
|
|
|
- )?;
|
|
|
+ let _len = if buffer.is_empty() {
|
|
|
+ self.tx
|
|
|
+ .add_notify_wait_pop(&[header.as_bytes()], &mut [], &mut self.transport)?
|
|
|
+ } else {
|
|
|
+ self.tx.add_notify_wait_pop(
|
|
|
+ &[header.as_bytes(), buffer],
|
|
|
+ &mut [],
|
|
|
+ &mut self.transport,
|
|
|
+ )?
|
|
|
+ };
|
|
|
Ok(())
|
|
|
}
|
|
|
|