diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/main.rs | 18 | ||||
-rw-r--r-- | server/src/network/mdns.rs | 17 | ||||
-rw-r--r-- | server/src/network/mod.rs | 5 |
3 files changed, 35 insertions, 5 deletions
diff --git a/server/src/main.rs b/server/src/main.rs index 087bd9d7..b72a961b 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -21,7 +21,6 @@ use futures_util::{SinkExt, StreamExt}; use hurrycurry_protocol::{PacketC, PacketS, BINCODE_CONFIG, VERSION}; use hurrycurry_server::{ data::DATA_DIR, - network::{mdns::mdns_loop, register::Register, upnp::upnp_loop}, server::{GameServerExt, Server}, trm, ConnectionID, }; @@ -60,21 +59,27 @@ pub(crate) struct Args { #[arg(long)] register: bool, /// Enables the mDNS responder for local network discovery + #[cfg(feature = "mdns")] #[arg(long)] mdns: bool, // Enables automatic gateway port forwarding using UPnP + #[cfg(feature = "upnp")] #[arg(long)] upnp: bool, /// Server name + #[cfg(any(feature = "register", feature = "mdns"))] #[arg(long, short = 'N', default_value = "A Hurry Curry! Server")] server_name: String, /// Uri for connecting remotely for registry submission + #[cfg(feature = "register")] #[arg(long)] register_uri: Option<String>, /// Do not register using IPv4 + #[cfg(feature = "register")] #[arg(long)] register_disable_ip4: bool, /// Do not register using IPv6 + #[cfg(feature = "register")] #[arg(long)] register_disable_ip6: bool, } @@ -130,8 +135,9 @@ async fn run(args: Args) -> anyhow::Result<()> { state.load(state.index.generate("lobby").await?, None); let state = Arc::new(RwLock::new(state)); + #[cfg(feature = "register")] if args.register { - let r = Register::new( + let r = hurrycurry_server::network::register::Register::new( args.server_name.clone(), args.listen.port(), args.register_uri, @@ -141,11 +147,15 @@ async fn run(args: Args) -> anyhow::Result<()> { ); tokio::task::spawn(r.register_loop()); } + #[cfg(feature = "upnp")] if args.upnp { - tokio::task::spawn(upnp_loop(args.listen.port())); + tokio::task::spawn(hurrycurry_server::network::upnp::upnp_loop( + args.listen.port(), + )); } + #[cfg(feature = "mdns")] if args.mdns { - tokio::task::spawn(mdns_loop( + tokio::task::spawn(hurrycurry_server::network::mdns::mdns_loop( args.server_name.clone(), args.listen.port(), state.clone(), diff --git a/server/src/network/mdns.rs b/server/src/network/mdns.rs index 870ae7ec..43f7bc91 100644 --- a/server/src/network/mdns.rs +++ b/server/src/network/mdns.rs @@ -1,3 +1,20 @@ +/* + Hurry Curry! - a game about cooking + Copyright 2024 metamuffin + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, version 3 of the License only. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + +*/ use crate::server::Server; use anyhow::Result; use get_if_addrs::get_if_addrs; diff --git a/server/src/network/mod.rs b/server/src/network/mod.rs index b7ffc15e..ce11082d 100644 --- a/server/src/network/mod.rs +++ b/server/src/network/mod.rs @@ -15,6 +15,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ +#[cfg(feature = "mdns")] +pub mod mdns; +#[cfg(feature = "register")] pub mod register; +#[cfg(feature = "upnp")] pub mod upnp; -pub mod mdns; |