change some logging
This commit is contained in:
parent
0686673e72
commit
60fedabb01
36
src/ports.rs
36
src/ports.rs
@ -13,7 +13,7 @@ use std::{
|
|||||||
use anyhow::anyhow;
|
use anyhow::anyhow;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use tokio::{net::TcpListener, sync::Mutex, task::JoinHandle, time::Instant};
|
use tokio::{net::TcpListener, sync::Mutex, task::JoinHandle, time::Instant};
|
||||||
use tracing::{error, info, warn};
|
use tracing::{debug, error, info, warn};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
constants::{PORT_OWNERSHIP_TIMEOUT, PORT_RETRY_TIME},
|
constants::{PORT_OWNERSHIP_TIMEOUT, PORT_RETRY_TIME},
|
||||||
@ -239,7 +239,7 @@ impl PortHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn store(&self, cache: &Path) -> anyhow::Result<()> {
|
pub fn store(&self, cache: &Path) -> anyhow::Result<()> {
|
||||||
info!("storing cache");
|
debug!("storing cache");
|
||||||
let temp_file = cache.with_extension(".temp");
|
let temp_file = cache.with_extension(".temp");
|
||||||
|
|
||||||
serde_json::to_writer(BufWriter::new(File::create(&temp_file)?), self)?;
|
serde_json::to_writer(BufWriter::new(File::create(&temp_file)?), self)?;
|
||||||
@ -392,26 +392,36 @@ impl Rejector {
|
|||||||
|
|
||||||
impl PortHandler {
|
impl PortHandler {
|
||||||
pub fn allocate_port_for_number(&mut self, config: &Config, number: Number) -> Option<Port> {
|
pub fn allocate_port_for_number(&mut self, config: &Config, number: Number) -> Option<Port> {
|
||||||
if let Some(port) = self.allocated_ports.get(&number) {
|
let port = if let Some(port) = self.allocated_ports.get(&number) {
|
||||||
let already_connected = self
|
let already_connected = self
|
||||||
.port_state
|
.port_state
|
||||||
.get(port)
|
.get(port)
|
||||||
.map(|state| state.status != PortStatus::Disconnected)
|
.map(|state| state.status != PortStatus::Disconnected)
|
||||||
.unwrap_or(false);
|
.unwrap_or(false);
|
||||||
|
|
||||||
return if already_connected { None } else { Some(*port) };
|
if already_connected {
|
||||||
}
|
None
|
||||||
|
} else {
|
||||||
let port = if let Some(&port) = self.free_ports.iter().next() {
|
Some(*port)
|
||||||
self.register_update();
|
}
|
||||||
self.free_ports.remove(&port);
|
|
||||||
port
|
|
||||||
} else {
|
} else {
|
||||||
self.try_recover_port(config)?
|
let port = if let Some(&port) = self.free_ports.iter().next() {
|
||||||
|
self.register_update();
|
||||||
|
self.free_ports.remove(&port);
|
||||||
|
port
|
||||||
|
} else {
|
||||||
|
self.try_recover_port(config)?
|
||||||
|
};
|
||||||
|
|
||||||
|
assert!(self.allocated_ports.insert(number, port).is_none());
|
||||||
|
Some(port)
|
||||||
};
|
};
|
||||||
|
|
||||||
assert!(self.allocated_ports.insert(number, port).is_none());
|
if let Some(port) = port {
|
||||||
Some(port)
|
info!(port, "allocated port");
|
||||||
|
}
|
||||||
|
|
||||||
|
port
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_recover_port(&mut self, config: &Config) -> Option<Port> {
|
fn try_recover_port(&mut self, config: &Config) -> Option<Port> {
|
||||||
|
Loading…
Reference in New Issue
Block a user