Skip to content

Commit

Permalink
Fix not sending empty grpc message when receiving an empty response (#57
Browse files Browse the repository at this point in the history
)
  • Loading branch information
npmenard committed Sep 29, 2022
1 parent 66dc984 commit c78a37b
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
8 changes: 4 additions & 4 deletions src/rpc/base_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ impl WebRTCBaseStream {
self.closed_reason.store(&mut err, Ordering::Release);
}

pub fn process_message(&mut self, message: PacketMessage) -> Result<Vec<u8>> {
pub fn process_message(&mut self, message: PacketMessage) -> Result<Option<Vec<u8>>> {
if message.data.is_empty() && message.eom {
return Ok(Vec::new());
return Ok(Some(Vec::new()));
}
if message.data.len() + self.packet_buffer.len() > MAX_MESSAGE_SIZE {
let e = Err(anyhow::anyhow!(
Expand All @@ -41,9 +41,9 @@ impl WebRTCBaseStream {
if message.eom {
let ret = self.packet_buffer.clone();
self.reset_packet_buffer();
return Ok(ret);
return Ok(Some(ret));
}
Ok(Vec::new())
Ok(None)
}

fn reset_packet_buffer(&mut self) {
Expand Down
6 changes: 3 additions & 3 deletions src/rpc/client_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ impl WebRTCClientStream {
let mut message_processed = false;
if let Some(message) = response.packet_message {
match self.base_stream.process_message(message) {
Ok(mut data) => {
if !data.is_empty() {
Ok(data) => {
if data.is_some() {
let mut data = data.unwrap();
message_processed = true;
let mut message_buf = vec![0u8];
let len: u32 = data.len().try_into()?;
Expand All @@ -39,7 +40,6 @@ impl WebRTCClientStream {
.await?;
}
}

Err(e) => {
log::error!("Error processing message: {e}");
}
Expand Down

0 comments on commit c78a37b

Please sign in to comment.