mirror of
https://github.com/rustmailer/bichon.git
synced 2026-08-03 07:48:34 +02:00
feat: Add IPv6 support for bichon_bind_ip configuration
Also try to parse the bind_ip address as std::net::Ipv6Addr to accept both IPv4 and IPv6 addresses. The TcpListener of poem utilizes ToSocketAddrs trait, which also supports IPv6.
This commit is contained in:
@@ -46,16 +46,16 @@ pub struct Settings {
|
|||||||
)]
|
)]
|
||||||
pub bichon_http_port: i32,
|
pub bichon_http_port: i32,
|
||||||
|
|
||||||
/// The IP address that the node binds to, in IPv4 format (e.g., 192.168.1.1).
|
/// The IP address that the node binds to, in IPv4 or IPv6 format (e.g., 192.168.1.1 or ::1).
|
||||||
#[clap(
|
#[clap(
|
||||||
long,
|
long,
|
||||||
env,
|
env,
|
||||||
default_value = "0.0.0.0",
|
default_value = "0.0.0.0",
|
||||||
help = "The IP address that the node binds to, in IPv4 format (e.g., 192.168.1.1). Required in cluster mode.",
|
help = "The IP address that the node binds to, in IPv4 or IPv6 format (e.g., 192.168.1.1 or ::1). Required in cluster mode.",
|
||||||
value_parser = ValueParser::new(|s: &str| {
|
value_parser = ValueParser::new(|s: &str| {
|
||||||
// Ensure the input is a valid IPv4 address
|
// Ensure the input is a valid IPv4 or IPv6 address
|
||||||
if s.parse::<std::net::Ipv4Addr>().is_err() {
|
if s.parse::<std::net::Ipv4Addr>().is_err() && s.parse::<std::net::Ipv6Addr>().is_err() {
|
||||||
return Err("The bind IP address must be a valid IPv4 address.".to_string());
|
return Err("The bind IP address must be a valid IPv4 or IPv6 address.".to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the address is valid, return it
|
// If the address is valid, return it
|
||||||
|
|||||||
Reference in New Issue
Block a user