2 Commits

Author SHA1 Message Date
restitux 25ec34d7e7 common: resolve ping addresses with async DNS
Build Mumble Web 2 / macos_build (push) Successful in 1m20s
Build Mumble Web 2 / linux_build (push) Successful in 1m27s
Build Mumble Web 2 / windows_build (push) Successful in 2m57s
Build Mumble Web 2 / android_build (push) Successful in 4m40s
The previous std::net::ToSocketAddrs call blocked the runtime during
DNS lookup. This change allows the server ping status to be resolved
asynchronously.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 18:18:07 -06:00
sam bc20cf825d fix version reporting after refactor (#34)
Build Mumble Web 2 / macos_build (push) Successful in 59s
Build Mumble Web 2 / linux_build (push) Successful in 1m20s
Build Mumble Web 2 / windows_build (push) Successful in 3m0s
Build Mumble Web 2 / android_build (push) Successful in 4m42s
Reviewed-on: #34
Reviewed-by: restitux <restitux@ohea.xyz>
Co-authored-by: Sam Sartor <me@samsartor.com>
Co-committed-by: Sam Sartor <me@samsartor.com>
2026-05-05 05:30:18 +00:00
3 changed files with 7 additions and 7 deletions
+2
View File
@@ -9,3 +9,5 @@ pub use imp::*;
pub use mainloop::*; pub use mainloop::*;
pub use mime_guess; pub use mime_guess;
pub use reqwest; pub use reqwest;
pub const VERSION: Option<&str> = option_env!("MUMBLE_WEB2_VERSION");
+3 -4
View File
@@ -25,12 +25,11 @@ pub struct ServerStatus {
#[cfg(feature = "networking")] #[cfg(feature = "networking")]
pub async fn ping_server(address: &str, port: u16) -> color_eyre::Result<ServerStatus> { pub async fn ping_server(address: &str, port: u16) -> color_eyre::Result<ServerStatus> {
use color_eyre::eyre::{bail, eyre}; use color_eyre::eyre::{bail, eyre};
use std::net::ToSocketAddrs;
use std::time::Duration; use std::time::Duration;
use tokio::net::UdpSocket; use tokio::net::{lookup_host, UdpSocket};
let dest = format!("{}:{}", address, port) let dest = lookup_host(format!("{}:{}", address, port))
.to_socket_addrs()? .await?
.next() .next()
.ok_or_else(|| eyre!("could not resolve address"))?; .ok_or_else(|| eyre!("could not resolve address"))?;
+2 -3
View File
@@ -4,7 +4,7 @@ use dioxus::prelude::*;
use mumble_web2_client::{ use mumble_web2_client::{
network_entrypoint, reqwest, AudioSettings, ChannelId, Command, ConfigSystem, network_entrypoint, reqwest, AudioSettings, ChannelId, Command, ConfigSystem,
ConfigSystemInterface as _, ConnectionState, Platform, PlatformInterface as _, ServerState, ConfigSystemInterface as _, ConnectionState, Platform, PlatformInterface as _, ServerState,
SharedState, State, UserId, UserState, SharedState, State, UserId, UserState, VERSION,
}; };
use mumble_web2_common::{ProxyOverrides, ServerStatus}; use mumble_web2_common::{ProxyOverrides, ServerStatus};
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
@@ -575,13 +575,12 @@ pub fn LoginView(overrides: Resource<ProxyOverrides>) -> Element {
), ),
Connected => unreachable!(), Connected => unreachable!(),
}; };
let version = option_env!("MUMBLE_WEB2_VERSION");
rsx!( rsx!(
div { div {
class: "login", class: "login",
h1 { h1 {
"Mumble Web" "Mumble Web"
match version { match VERSION {
Some(v) => rsx!(" " span { class: "login_version", "({v})" }), Some(v) => rsx!(" " span { class: "login_version", "({v})" }),
None => rsx!(), None => rsx!(),
} }