Work on server and client connectivity

This commit is contained in:
Michael Mikovsky
2025-06-06 19:20:49 -06:00
parent 92c9f08a5c
commit fda5e9ea02
28 changed files with 728 additions and 251 deletions
+6 -3
View File
@@ -1,6 +1,9 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct CampignConfig {
name: String,
use crate::config::listeners::ListenerConfig;
#[derive(Serialize, Deserialize, Clone)]
pub struct CampaignConfig {
pub name: String,
pub listeners: Vec<ListenerConfig>,
}
+1 -1
View File
@@ -1,4 +1,4 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
#[derive(Debug, Serialize, Deserialize, Clone)]
pub enum LayerConfig {}
+38 -4
View File
@@ -1,14 +1,48 @@
use std::{
error::Error,
net::SocketAddr,
sync::{Arc, Mutex},
thread,
};
use serde::{Deserialize, Serialize};
use crate::config::layers::LayerConfig;
use crate::{
config::layers::LayerConfig,
networkers::{ServerTrait, TCPConnection, TCPServer},
};
#[derive(Debug, Serialize, Deserialize)]
#[derive(Serialize, Deserialize, Clone)]
pub enum ListenerConfig {
Tcp {
enabled: bool,
name: String,
remote_host: String,
port: u16,
addr: SocketAddr,
layers: Vec<LayerConfig>,
#[serde(skip)]
connections: Option<Arc<Mutex<Vec<TCPConnection>>>>,
},
}
impl ListenerConfig {
pub fn start(self) -> Result<(), Box<dyn Error>> {
match self {
ListenerConfig::Tcp {
mut enabled,
addr,
layers,
mut connections,
..
} => {
let server = TCPServer::bind(&addr)?;
enabled = true;
// connections = Some(run_listener(server));
}
}
Ok(())
}
}