mirror of
https://github.com/EFForg/rayhunter.git
synced 2026-06-02 19:23:33 -07:00
Remove redundant helper functions
This commit is contained in:
committed by
Markus Unterwaditzer
parent
4bad8356ac
commit
754faf10d9
@@ -18,7 +18,7 @@ use tokio::sync::mpsc::Receiver;
|
|||||||
use tokio::sync::{RwLock, RwLockWriteGuard};
|
use tokio::sync::{RwLock, RwLockWriteGuard};
|
||||||
use tokio_util::task::TaskTracker;
|
use tokio_util::task::TaskTracker;
|
||||||
|
|
||||||
use crate::qmdl_store::RecordingStore;
|
use crate::qmdl_store::{FileKind, RecordingStore};
|
||||||
use crate::server::ServerState;
|
use crate::server::ServerState;
|
||||||
|
|
||||||
pub struct AnalysisWriter {
|
pub struct AnalysisWriter {
|
||||||
@@ -145,9 +145,10 @@ async fn perform_analysis(
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| format!("{e:?}"))?;
|
.map_err(|e| format!("{e:?}"))?;
|
||||||
let qmdl_file = qmdl_store
|
let qmdl_file = qmdl_store
|
||||||
.open_entry_qmdl(entry_index)
|
.open_file(entry_index, FileKind::Qmdl)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| format!("{e:?}"))?;
|
.map_err(|e| format!("{e:?}"))?
|
||||||
|
.ok_or("QMDL file not found")?;
|
||||||
|
|
||||||
(analysis_file, qmdl_file)
|
(analysis_file, qmdl_file)
|
||||||
};
|
};
|
||||||
|
|||||||
+4
-3
@@ -31,7 +31,7 @@ use crate::analysis::{AnalysisCtrlMessage, AnalysisWriter};
|
|||||||
use crate::config::GpsMode;
|
use crate::config::GpsMode;
|
||||||
use crate::display;
|
use crate::display;
|
||||||
use crate::notifications::{Notification, NotificationType};
|
use crate::notifications::{Notification, NotificationType};
|
||||||
use crate::qmdl_store::{RecordingStore, RecordingStoreError};
|
use crate::qmdl_store::{FileKind, RecordingStore, RecordingStoreError};
|
||||||
use crate::server::ServerState;
|
use crate::server::ServerState;
|
||||||
use crate::stats::DiskStats;
|
use crate::stats::DiskStats;
|
||||||
|
|
||||||
@@ -747,9 +747,10 @@ pub async fn get_analysis_report(
|
|||||||
))?
|
))?
|
||||||
};
|
};
|
||||||
let analysis_file = qmdl_store
|
let analysis_file = qmdl_store
|
||||||
.open_entry_analysis(entry_index)
|
.open_file(entry_index, FileKind::Analysis)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))?;
|
.map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))?
|
||||||
|
.ok_or((StatusCode::NOT_FOUND, "Analysis file not found".to_string()))?;
|
||||||
|
|
||||||
// Read and normalize the NDJSON file
|
// Read and normalize the NDJSON file
|
||||||
let reader = BufReader::new(analysis_file);
|
let reader = BufReader::new(analysis_file);
|
||||||
|
|||||||
+5
-3
@@ -1,4 +1,5 @@
|
|||||||
use crate::gps::{GpsRecord, load_gps_records};
|
use crate::gps::{GpsRecord, load_gps_records};
|
||||||
|
use crate::qmdl_store::FileKind;
|
||||||
use crate::server::ServerState;
|
use crate::server::ServerState;
|
||||||
|
|
||||||
use crate::config::GpsMode;
|
use crate::config::GpsMode;
|
||||||
@@ -52,9 +53,10 @@ pub async fn get_pcap(
|
|||||||
}
|
}
|
||||||
let qmdl_size_bytes = entry.qmdl_size_bytes;
|
let qmdl_size_bytes = entry.qmdl_size_bytes;
|
||||||
let qmdl_file = qmdl_store
|
let qmdl_file = qmdl_store
|
||||||
.open_entry_qmdl(entry_index)
|
.open_file(entry_index, FileKind::Qmdl)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))?;
|
.map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))?
|
||||||
|
.ok_or((StatusCode::NOT_FOUND, "QMDL file not found".to_string()))?;
|
||||||
let (reader, writer) = duplex(1024);
|
let (reader, writer) = duplex(1024);
|
||||||
let gps_records = load_gps_records_for_entry(&state, entry_index).await;
|
let gps_records = load_gps_records_for_entry(&state, entry_index).await;
|
||||||
drop(qmdl_store);
|
drop(qmdl_store);
|
||||||
@@ -75,7 +77,7 @@ pub(crate) async fn load_gps_records_for_entry(
|
|||||||
entry_index: usize,
|
entry_index: usize,
|
||||||
) -> Vec<GpsRecord> {
|
) -> Vec<GpsRecord> {
|
||||||
let qmdl_store = state.qmdl_store_lock.read().await;
|
let qmdl_store = state.qmdl_store_lock.read().await;
|
||||||
match qmdl_store.open_entry_gps(entry_index).await {
|
match qmdl_store.open_file(entry_index, FileKind::Gps).await {
|
||||||
Ok(Some(file)) => load_gps_records(file).await,
|
Ok(Some(file)) => load_gps_records(file).await,
|
||||||
Ok(None) => {
|
Ok(None) => {
|
||||||
let gps_mode = qmdl_store
|
let gps_mode = qmdl_store
|
||||||
|
|||||||
@@ -136,16 +136,8 @@ impl ManifestEntry {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_qmdl_filepath<P: AsRef<Path>>(&self, path: P) -> PathBuf {
|
pub fn get_filepath<P: AsRef<Path>>(&self, file_kind: FileKind, path: P) -> PathBuf {
|
||||||
FileKind::Qmdl.get_filepath(&self.name, path)
|
file_kind.get_filepath(&self.name, path)
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_analysis_filepath<P: AsRef<Path>>(&self, path: P) -> PathBuf {
|
|
||||||
FileKind::Analysis.get_filepath(&self.name, path)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_gps_filepath<P: AsRef<Path>>(&self, path: P) -> PathBuf {
|
|
||||||
FileKind::Gps.get_filepath(&self.name, path)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,15 +298,15 @@ impl RecordingStore {
|
|||||||
self.close_current_entry().await?;
|
self.close_current_entry().await?;
|
||||||
}
|
}
|
||||||
let new_entry = ManifestEntry::new(gps_mode);
|
let new_entry = ManifestEntry::new(gps_mode);
|
||||||
let qmdl_filepath = new_entry.get_qmdl_filepath(&self.path);
|
let qmdl_filepath = new_entry.get_filepath(FileKind::Qmdl, &self.path);
|
||||||
let qmdl_file = File::create(&qmdl_filepath)
|
let qmdl_file = File::create(&qmdl_filepath)
|
||||||
.await
|
.await
|
||||||
.map_err(RecordingStoreError::CreateFileError)?;
|
.map_err(RecordingStoreError::CreateFileError)?;
|
||||||
let analysis_filepath = new_entry.get_analysis_filepath(&self.path);
|
let analysis_filepath = new_entry.get_filepath(FileKind::Analysis, &self.path);
|
||||||
let analysis_file = File::create(&analysis_filepath)
|
let analysis_file = File::create(&analysis_filepath)
|
||||||
.await
|
.await
|
||||||
.map_err(RecordingStoreError::CreateFileError)?;
|
.map_err(RecordingStoreError::CreateFileError)?;
|
||||||
let gps_filepath = new_entry.get_gps_filepath(&self.path);
|
let gps_filepath = new_entry.get_filepath(FileKind::Gps, &self.path);
|
||||||
File::create(&gps_filepath)
|
File::create(&gps_filepath)
|
||||||
.await
|
.await
|
||||||
.map_err(RecordingStoreError::CreateFileError)?;
|
.map_err(RecordingStoreError::CreateFileError)?;
|
||||||
@@ -324,32 +316,6 @@ impl RecordingStore {
|
|||||||
Ok((qmdl_file, analysis_file))
|
Ok((qmdl_file, analysis_file))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the corresponding QMDL file for a given entry
|
|
||||||
pub async fn open_entry_qmdl(&self, entry_index: usize) -> Result<File, RecordingStoreError> {
|
|
||||||
let entry = &self.manifest.entries[entry_index];
|
|
||||||
File::open(entry.get_qmdl_filepath(&self.path))
|
|
||||||
.await
|
|
||||||
.map_err(RecordingStoreError::ReadFileError)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the corresponding QMDL file for a given entry
|
|
||||||
pub async fn open_entry_analysis(
|
|
||||||
&self,
|
|
||||||
entry_index: usize,
|
|
||||||
) -> Result<File, RecordingStoreError> {
|
|
||||||
let entry = &self.manifest.entries[entry_index];
|
|
||||||
File::open(entry.get_analysis_filepath(&self.path))
|
|
||||||
.await
|
|
||||||
.map_err(RecordingStoreError::ReadFileError)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub async fn open_entry_gps(
|
|
||||||
&self,
|
|
||||||
entry_index: usize,
|
|
||||||
) -> Result<Option<File>, RecordingStoreError> {
|
|
||||||
self.open_file(entry_index, FileKind::Gps).await
|
|
||||||
}
|
|
||||||
|
|
||||||
pub async fn open_file(
|
pub async fn open_file(
|
||||||
&self,
|
&self,
|
||||||
entry_index: usize,
|
entry_index: usize,
|
||||||
@@ -373,7 +339,7 @@ impl RecordingStore {
|
|||||||
match OpenOptions::new()
|
match OpenOptions::new()
|
||||||
.create(true)
|
.create(true)
|
||||||
.append(true)
|
.append(true)
|
||||||
.open(entry.get_gps_filepath(&self.path))
|
.open(entry.get_filepath(FileKind::Gps, &self.path))
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(file) => Ok(Some(file)),
|
Ok(file) => Ok(Some(file)),
|
||||||
@@ -390,7 +356,7 @@ impl RecordingStore {
|
|||||||
let file = OpenOptions::new()
|
let file = OpenOptions::new()
|
||||||
.write(true)
|
.write(true)
|
||||||
.truncate(true)
|
.truncate(true)
|
||||||
.open(entry.get_analysis_filepath(&self.path))
|
.open(entry.get_filepath(FileKind::Analysis, &self.path))
|
||||||
.await
|
.await
|
||||||
.map_err(RecordingStoreError::ReadFileError)?;
|
.map_err(RecordingStoreError::ReadFileError)?;
|
||||||
Ok(file)
|
Ok(file)
|
||||||
|
|||||||
@@ -72,14 +72,15 @@ pub async fn get_qmdl(
|
|||||||
format!("couldn't find qmdl file with name {qmdl_idx}"),
|
format!("couldn't find qmdl file with name {qmdl_idx}"),
|
||||||
))?;
|
))?;
|
||||||
let qmdl_file = qmdl_store
|
let qmdl_file = qmdl_store
|
||||||
.open_entry_qmdl(entry_index)
|
.open_file(entry_index, FileKind::Qmdl)
|
||||||
.await
|
.await
|
||||||
.map_err(|err| {
|
.map_err(|err| {
|
||||||
(
|
(
|
||||||
StatusCode::INTERNAL_SERVER_ERROR,
|
StatusCode::INTERNAL_SERVER_ERROR,
|
||||||
format!("error opening QMDL file: {err}"),
|
format!("error opening QMDL file: {err}"),
|
||||||
)
|
)
|
||||||
})?;
|
})?
|
||||||
|
.ok_or((StatusCode::NOT_FOUND, "QMDL file not found".to_string()))?;
|
||||||
let limited_qmdl_file = qmdl_file.take(entry.qmdl_size_bytes as u64);
|
let limited_qmdl_file = qmdl_file.take(entry.qmdl_size_bytes as u64);
|
||||||
let qmdl_stream = ReaderStream::new(limited_qmdl_file);
|
let qmdl_stream = ReaderStream::new(limited_qmdl_file);
|
||||||
|
|
||||||
@@ -405,8 +406,9 @@ pub async fn get_zip(
|
|||||||
let qmdl_file_for_pcap = {
|
let qmdl_file_for_pcap = {
|
||||||
let qmdl_store = qmdl_store_lock.read().await;
|
let qmdl_store = qmdl_store_lock.read().await;
|
||||||
qmdl_store
|
qmdl_store
|
||||||
.open_entry_qmdl(entry_index)
|
.open_file(entry_index, FileKind::Qmdl)
|
||||||
.await?
|
.await?
|
||||||
|
.ok_or_else(|| anyhow::anyhow!("QMDL file not found"))?
|
||||||
.take(qmdl_size_bytes as u64)
|
.take(qmdl_size_bytes as u64)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user