mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
fix: make tunnel names case-insensitive (#177413)
Lowercase them, since Basis internally is case-sensitive. Fixes #177222
This commit is contained in:
parent
268fdba687
commit
120d0d2fdb
|
@ -317,12 +317,13 @@ impl DevTunnels {
|
|||
persisted: PersistedTunnel,
|
||||
name: &str,
|
||||
) -> Result<(Tunnel, PersistedTunnel), AnyError> {
|
||||
self.check_is_name_free(name).await?;
|
||||
let name = name.to_ascii_lowercase();
|
||||
self.check_is_name_free(&name).await?;
|
||||
|
||||
debug!(self.log, "Tunnel name changed, applying updates...");
|
||||
|
||||
let (mut full_tunnel, mut persisted, is_new) = self
|
||||
.get_or_create_tunnel(persisted, Some(name), NO_REQUEST_OPTIONS)
|
||||
.get_or_create_tunnel(persisted, Some(&name), NO_REQUEST_OPTIONS)
|
||||
.await?;
|
||||
if is_new {
|
||||
return Ok((full_tunnel, persisted));
|
||||
|
@ -337,7 +338,7 @@ impl DevTunnels {
|
|||
)
|
||||
.map_err(|e| wrap(e, "failed to rename tunnel"))?;
|
||||
|
||||
persisted.name = name.to_string();
|
||||
persisted.name = name;
|
||||
self.launcher_tunnel.save(Some(persisted.clone()))?;
|
||||
|
||||
Ok((new_tunnel, persisted))
|
||||
|
@ -384,7 +385,7 @@ impl DevTunnels {
|
|||
let (mut tunnel, persisted) = match self.launcher_tunnel.load() {
|
||||
Some(mut persisted) => {
|
||||
if let Some(name) = preferred_name {
|
||||
if persisted.name.ne(&name) {
|
||||
if !persisted.name.eq_ignore_ascii_case(name) {
|
||||
(_, persisted) = self.update_tunnel_name(persisted, name).await?;
|
||||
}
|
||||
}
|
||||
|
@ -645,13 +646,13 @@ impl DevTunnels {
|
|||
};
|
||||
|
||||
if let Some(machine_name) = preferred_name {
|
||||
let name = machine_name;
|
||||
if let Err(e) = is_valid_name(name) {
|
||||
let name = machine_name.to_ascii_lowercase();
|
||||
if let Err(e) = is_valid_name(&name) {
|
||||
info!(self.log, "{} is an invalid name", e);
|
||||
return Err(AnyError::from(wrap(e, "invalid name")));
|
||||
}
|
||||
if is_name_free(name) {
|
||||
return Ok(name.to_owned());
|
||||
if is_name_free(&name) {
|
||||
return Ok(name);
|
||||
}
|
||||
info!(
|
||||
self.log,
|
||||
|
@ -662,6 +663,8 @@ impl DevTunnels {
|
|||
|
||||
let mut placeholder_name =
|
||||
clean_hostname_for_tunnel(&gethostname::gethostname().to_string_lossy());
|
||||
placeholder_name.make_ascii_lowercase();
|
||||
|
||||
if !is_name_free(&placeholder_name) {
|
||||
for i in 2.. {
|
||||
let fixed_name = format!("{}{}", placeholder_name, i);
|
||||
|
@ -677,11 +680,13 @@ impl DevTunnels {
|
|||
}
|
||||
|
||||
loop {
|
||||
let name = prompt_placeholder(
|
||||
let mut name = prompt_placeholder(
|
||||
"What would you like to call this machine?",
|
||||
&placeholder_name,
|
||||
)?;
|
||||
|
||||
name.make_ascii_lowercase();
|
||||
|
||||
if let Err(e) = is_valid_name(&name) {
|
||||
info!(self.log, "{}", e);
|
||||
continue;
|
||||
|
|
Loading…
Reference in a new issue