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]
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 {
@@ -2405,4 +2405,27 @@ mod tests {
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("custom-rendezvous-server"),
);
if url.is_empty() || url.contains("rustdesk.com") {
if url.is_empty() || crate::is_public(&url) {
return "".to_owned();
}
format!("{}/api/heartbeat", url)