don't log session errors when recordings are disabled

This commit is contained in:
Eugene Pankov 2022-07-24 11:55:16 +02:00
parent 9d314988c0
commit 46492a6593
No known key found for this signature in database
GPG key ID: 5896FCBBDD1CF4F4
3 changed files with 10 additions and 6 deletions

View file

@ -25,6 +25,9 @@ pub enum Error {
#[error("Database")] #[error("Database")]
Database(#[from] sea_orm::DbErr), Database(#[from] sea_orm::DbErr),
#[error("Failed to serialize a recording item")]
Serialization(#[from] serde_json::Error),
#[error("Writer is closed")] #[error("Writer is closed")]
Closed, Closed,

View file

@ -1,4 +1,3 @@
use anyhow::Result;
use bytes::{Bytes, BytesMut}; use bytes::{Bytes, BytesMut};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use tokio::time::Instant; use tokio::time::Instant;
@ -6,6 +5,7 @@ use warpgate_db_entities::Recording::RecordingKind;
use super::writer::RecordingWriter; use super::writer::RecordingWriter;
use super::Recorder; use super::Recorder;
use super::{Result, Error};
#[derive(Serialize)] #[derive(Serialize)]
#[serde(untagged)] #[serde(untagged)]
@ -84,7 +84,7 @@ impl TerminalRecorder {
} }
async fn write_item(&mut self, item: &TerminalRecordingItem) -> Result<()> { async fn write_item(&mut self, item: &TerminalRecordingItem) -> Result<()> {
let mut serialized_item = serde_json::to_vec(&item)?; let mut serialized_item = serde_json::to_vec(&item).map_err(|e| Error::Serialization(e))?;
serialized_item.push(b'\n'); serialized_item.push(b'\n');
self.writer.write(&serialized_item).await?; self.writer.write(&serialized_item).await?;
Ok(()) Ok(())

View file

@ -21,7 +21,7 @@ use warpgate_common::auth::AuthSelector;
use warpgate_common::eventhub::{EventHub, EventSender}; use warpgate_common::eventhub::{EventHub, EventSender};
use warpgate_common::recordings::{ use warpgate_common::recordings::{
ConnectionRecorder, TerminalRecorder, TerminalRecordingStreamId, TrafficConnectionParams, ConnectionRecorder, TerminalRecorder, TerminalRecordingStreamId, TrafficConnectionParams,
TrafficRecorder, TrafficRecorder, self,
}; };
use warpgate_common::{ use warpgate_common::{
authorize_ticket, AuthCredential, AuthResult, Secret, Services, SessionId, Target, authorize_ticket, AuthCredential, AuthResult, Secret, Services, SessionId, Target,
@ -705,15 +705,16 @@ impl ServerSession {
.write_pty_resize(request.col_width, request.row_height) .write_pty_resize(request.col_width, request.row_height)
.await?; .await?;
} }
Ok::<_, anyhow::Error>(recorder) Ok::<_, recordings::Error>(recorder)
} }
.await .await
{ {
Ok(recorder) => { Ok(recorder) => {
self.channel_recorders.insert(channel_id, recorder); self.channel_recorders.insert(channel_id, recorder);
} }
Err(error) => { Err(error) => match error {
error!(channel=%channel_id, ?error, "Failed to start recording"); recordings::Error::Disabled => (),
error => error!(channel=%channel_id, ?error, "Failed to start recording"),
} }
} }
} }