mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-03-23 13:11:05 +03:00
A=b, A case insensitive (#9976)
Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
@@ -1408,18 +1408,18 @@ impl LoginConfigHandler {
|
||||
let server = server_key.next().unwrap_or_default();
|
||||
let args = server_key.next().unwrap_or_default();
|
||||
let key = if server == PUBLIC_SERVER {
|
||||
PUBLIC_RS_PUB_KEY
|
||||
PUBLIC_RS_PUB_KEY.to_owned()
|
||||
} else {
|
||||
let mut args_map: HashMap<&str, &str> = HashMap::new();
|
||||
let mut args_map: HashMap<String, &str> = HashMap::new();
|
||||
for arg in args.split('&') {
|
||||
if let Some(kv) = arg.find('=') {
|
||||
let k = &arg[0..kv];
|
||||
let k = arg[0..kv].to_lowercase();
|
||||
let v = &arg[kv + 1..];
|
||||
args_map.insert(k, v);
|
||||
}
|
||||
}
|
||||
let key = args_map.remove("key").unwrap_or_default();
|
||||
key
|
||||
key.to_owned()
|
||||
};
|
||||
|
||||
// here we can check <id>/r@server
|
||||
@@ -1427,7 +1427,7 @@ impl LoginConfigHandler {
|
||||
if real_id != raw_id {
|
||||
force_relay = true;
|
||||
}
|
||||
self.other_server = Some((real_id.clone(), server.to_owned(), key.to_owned()));
|
||||
self.other_server = Some((real_id.clone(), server.to_owned(), key));
|
||||
id = format!("{real_id}@{server}");
|
||||
} else {
|
||||
let real_id = crate::ui_interface::handle_relay_id(&id);
|
||||
|
||||
@@ -56,8 +56,8 @@ pub fn get_custom_server_from_string(s: &str) -> ResultType<CustomServer> {
|
||||
*
|
||||
* This allows using a ',' (comma) symbol as a final delimiter.
|
||||
*/
|
||||
if s.contains("host=") {
|
||||
let stripped = &s[s.find("host=").unwrap_or(0)..s.len()];
|
||||
if s.to_lowercase().contains("host=") {
|
||||
let stripped = &s[s.to_lowercase().find("host=").unwrap_or(0)..s.len()];
|
||||
let strs: Vec<&str> = stripped.split(",").collect();
|
||||
let mut host = String::default();
|
||||
let mut key = String::default();
|
||||
@@ -65,16 +65,17 @@ pub fn get_custom_server_from_string(s: &str) -> ResultType<CustomServer> {
|
||||
let mut relay = String::default();
|
||||
let strs_iter = strs.iter();
|
||||
for el in strs_iter {
|
||||
if el.starts_with("host=") {
|
||||
let el_lower = el.to_lowercase();
|
||||
if el_lower.starts_with("host=") {
|
||||
host = el.chars().skip(5).collect();
|
||||
}
|
||||
if el.starts_with("key=") {
|
||||
if el_lower.starts_with("key=") {
|
||||
key = el.chars().skip(4).collect();
|
||||
}
|
||||
if el.starts_with("api=") {
|
||||
if el_lower.starts_with("api=") {
|
||||
api = el.chars().skip(4).collect();
|
||||
}
|
||||
if el.starts_with("relay=") {
|
||||
if el_lower.starts_with("relay=") {
|
||||
relay = el.chars().skip(6).collect();
|
||||
}
|
||||
}
|
||||
@@ -169,6 +170,18 @@ mod test {
|
||||
relay: "server.example.net".to_owned(),
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
get_custom_server_from_string(
|
||||
"rustdesk-Host=server.example.net,Key=Zm9vYmFyLiwyCg==,RELAY=server.example.net.exe"
|
||||
)
|
||||
.unwrap(),
|
||||
CustomServer {
|
||||
host: "server.example.net".to_owned(),
|
||||
key: "Zm9vYmFyLiwyCg==".to_owned(),
|
||||
api: "".to_owned(),
|
||||
relay: "server.example.net".to_owned(),
|
||||
}
|
||||
);
|
||||
let lic = CustomServer {
|
||||
host: "1.1.1.1".to_owned(),
|
||||
key: "5Qbwsde3unUcJBtrx9ZkvUmwFNoExHzpryHuPUdqlWM=".to_owned(),
|
||||
|
||||
Reference in New Issue
Block a user