fix is_public (#13701)

Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
21pages
2025-12-02 14:54:56 +08:00
committed by GitHub
parent 23754630e8
commit a78a803a22
2 changed files with 25 additions and 2 deletions

View File

@@ -1051,7 +1051,7 @@ fn get_api_server_(api: String, custom: String) -> String {
#[inline] #[inline]
pub fn is_public(url: &str) -> bool { pub fn is_public(url: &str) -> bool {
url.contains("rustdesk.com") url.contains("rustdesk.com/") || url.ends_with("rustdesk.com")
} }
pub fn get_udp_punch_enabled() -> bool { pub fn get_udp_punch_enabled() -> bool {
@@ -2405,4 +2405,27 @@ mod tests {
Duration::from_nanos(0) Duration::from_nanos(0)
); );
} }
#[test]
fn test_is_public() {
// Test URLs containing "rustdesk.com/"
assert!(is_public("https://rustdesk.com/"));
assert!(is_public("https://www.rustdesk.com/"));
assert!(is_public("https://api.rustdesk.com/v1"));
assert!(is_public("https://rustdesk.com/path"));
// Test URLs ending with "rustdesk.com"
assert!(is_public("rustdesk.com"));
assert!(is_public("https://rustdesk.com"));
assert!(is_public("http://www.rustdesk.com"));
assert!(is_public("https://api.rustdesk.com"));
// Test non-public URLs
assert!(!is_public("https://example.com"));
assert!(!is_public("https://custom-server.com"));
assert!(!is_public("http://192.168.1.1"));
assert!(!is_public("localhost"));
assert!(!is_public("https://rustdesk.computer.com"));
assert!(!is_public("rustdesk.comhello.com"));
}
} }

View File

@@ -278,7 +278,7 @@ fn heartbeat_url() -> String {
Config::get_option("api-server"), Config::get_option("api-server"),
Config::get_option("custom-rendezvous-server"), Config::get_option("custom-rendezvous-server"),
); );
if url.is_empty() || url.contains("rustdesk.com") { if url.is_empty() || crate::is_public(&url) {
return "".to_owned(); return "".to_owned();
} }
format!("{}/api/heartbeat", url) format!("{}/api/heartbeat", url)