Explorar o código

bin/ircd: accept Url as address for IRC listening

ghassmo %!s(int64=4) %!d(string=hai) anos
pai
achega
1750fd5429
Modificáronse 3 ficheiros con 6 adicións e 5 borrados
  1. 1 1
      bin/ircd/ircd_config.toml
  2. 2 1
      bin/ircd/src/main.rs
  3. 3 3
      bin/ircd/src/settings.rs

+ 1 - 1
bin/ircd/ircd_config.toml

@@ -2,7 +2,7 @@
 #rpc_listen="tcp://127.0.0.1:11055"
 #rpc_listen="tcp://127.0.0.1:11055"
 
 
 ## IRC listen URL
 ## IRC listen URL
-#irc_listen="127.0.0.1:11066"
+#irc_listen="tcp://127.0.0.1:11066"
 
 
 ## Sets Datastore Path
 ## Sets Datastore Path
 #datastore="~/.config/ircd"
 #datastore="~/.config/ircd"

+ 2 - 1
bin/ircd/src/main.rs

@@ -211,7 +211,8 @@ async fn realmain(settings: Args, executor: Arc<Executor<'_>>) -> Result<()> {
     //
     //
     // IRC instance
     // IRC instance
     //
     //
-    let listener = TcpListener::bind(settings.irc_listen).await?;
+    let irc_listen_addr = settings.irc_listen.socket_addrs(|| None)?[0];
+    let listener = TcpListener::bind(irc_listen_addr).await?;
     let local_addr = listener.local_addr()?;
     let local_addr = listener.local_addr()?;
     info!("IRC listening on {}", local_addr);
     info!("IRC listening on {}", local_addr);
     let executor_cloned = executor.clone();
     let executor_cloned = executor.clone();

+ 3 - 3
bin/ircd/src/settings.rs

@@ -1,5 +1,4 @@
 use std::{
 use std::{
-    net::SocketAddr,
     path::PathBuf,
     path::PathBuf,
     sync::{atomic::AtomicBool, Arc},
     sync::{atomic::AtomicBool, Arc},
 };
 };
@@ -10,6 +9,7 @@ use serde::Deserialize;
 use structopt::StructOpt;
 use structopt::StructOpt;
 use structopt_toml::StructOptToml;
 use structopt_toml::StructOptToml;
 use toml::Value;
 use toml::Value;
+use url::Url;
 
 
 use darkfi::{net::settings::SettingsOpt, Result};
 use darkfi::{net::settings::SettingsOpt, Result};
 
 
@@ -30,8 +30,8 @@ pub struct Args {
     pub rpc_listen: String,
     pub rpc_listen: String,
 
 
     /// IRC listen URL
     /// IRC listen URL
-    #[structopt(long = "irc", default_value = "127.0.0.1:11066")]
-    pub irc_listen: SocketAddr,
+    #[structopt(long = "irc", default_value = "tcp://127.0.0.1:11066")]
+    pub irc_listen: Url,
 
 
     /// Sets Datastore Path
     /// Sets Datastore Path
     #[structopt(long, default_value = "~/.config/ircd")]
     #[structopt(long, default_value = "~/.config/ircd")]