mirror of
https://github.com/Astatin3/unshell-nodes-rs.git
synced 2026-06-09 00:28:00 -06:00
Work on server and client connectivity
This commit is contained in:
@@ -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,4 +1,4 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Serialize, Deserialize, Clone)]
|
||||
pub enum LayerConfig {}
|
||||
|
||||
@@ -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(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user