Skip to content

Commit cdac1fb

Browse files
committed
use default values for IPFIX port and address if their fields are empty
1 parent ba4c455 commit cdac1fb

2 files changed

Lines changed: 31 additions & 14 deletions

File tree

src/gui/pages/initial_page.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use crate::gui::types::export_pcap::ExportPcap;
1414
use crate::gui::types::filters::Filters;
1515
use crate::gui::types::message::Message;
1616
use crate::gui::types::settings::Settings;
17-
use crate::networking::ipfix::MyIpfixSocket;
17+
use crate::networking::ipfix::{DEFAULT_IPFIX_ADDR, DEFAULT_IPFIX_PORT, MyIpfixSocket};
1818
use crate::networking::types::capture_context::{CaptureSource, CaptureSourcePicklist};
1919
use crate::networking::types::my_device::MyDevice;
2020
use crate::networking::types::my_link_type::MyLinkType;
@@ -329,7 +329,7 @@ fn get_col_ipfix_collector<'a>(
329329
bind_address_translation(language)
330330
)))
331331
.push(
332-
TextInput::new("0.0.0.0", &ipfix_socket.addr())
332+
TextInput::new(&DEFAULT_IPFIX_ADDR.to_string(), &ipfix_socket.addr())
333333
.on_input(Message::SetIpfixAddr)
334334
.padding([2, 5]),
335335
);
@@ -338,7 +338,7 @@ fn get_col_ipfix_collector<'a>(
338338
.spacing(5)
339339
.push(Text::new(format!("{}:", port_translation(language))))
340340
.push(
341-
TextInput::new("4739", &ipfix_socket.port())
341+
TextInput::new(&DEFAULT_IPFIX_PORT.to_string(), &ipfix_socket.port())
342342
.on_input(Message::SetIpfixPort)
343343
.padding([2, 5]),
344344
);

src/networking/ipfix/mod.rs

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use std::net::{IpAddr, Ipv4Addr, SocketAddr};
1616

1717
/// IANA-registered default IPFIX collector port.
1818
pub const DEFAULT_IPFIX_PORT: u16 = 4739;
19+
pub const DEFAULT_IPFIX_ADDR: IpAddr = IpAddr::V4(Ipv4Addr::UNSPECIFIED);
1920

2021
/// Persisted IPFIX collector configuration.
2122
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
@@ -43,26 +44,42 @@ impl MyIpfixSocket {
4344
}
4445

4546
pub fn display_name(&self) -> String {
46-
format!("{}:{}", self.addr, self.port)
47+
let addr = if self.addr.is_empty() {
48+
&DEFAULT_IPFIX_ADDR.to_string()
49+
} else {
50+
&self.addr
51+
};
52+
let port = if self.port.is_empty() {
53+
&DEFAULT_IPFIX_PORT.to_string()
54+
} else {
55+
&self.port
56+
};
57+
format!("{addr}:{port}")
4758
}
4859

4960
pub fn socket_addr(&self) -> Result<SocketAddr, String> {
50-
let port = self
51-
.port
52-
.parse::<u16>()
53-
.map_err(|_| format!("Invalid port number: {}", self.port))?;
54-
let ip_addr = self
55-
.addr
56-
.parse::<IpAddr>()
57-
.map_err(|_| format!("Invalid IP address: {}", self.addr))?;
58-
Ok(SocketAddr::new(ip_addr, port))
61+
let port = if self.port.is_empty() {
62+
DEFAULT_IPFIX_PORT
63+
} else {
64+
self.port
65+
.parse::<u16>()
66+
.map_err(|_| format!("Invalid port number: {}", self.port))?
67+
};
68+
let addr = if self.addr.is_empty() {
69+
DEFAULT_IPFIX_ADDR
70+
} else {
71+
self.addr
72+
.parse::<IpAddr>()
73+
.map_err(|_| format!("Invalid IP address: {}", self.addr))?
74+
};
75+
Ok(SocketAddr::new(addr, port))
5976
}
6077
}
6178

6279
impl Default for MyIpfixSocket {
6380
fn default() -> Self {
6481
Self {
65-
addr: IpAddr::V4(Ipv4Addr::UNSPECIFIED).to_string(),
82+
addr: DEFAULT_IPFIX_ADDR.to_string(),
6683
port: DEFAULT_IPFIX_PORT.to_string(),
6784
}
6885
}

0 commit comments

Comments
 (0)