mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-13 05:42:59 +00:00
Fix partial downloads of ssh remote server (#19700)
Release Notes: - SSH Remoting: fix a bug where inerrrupting ssh connecting could leave your local binary cached in an invalid state
This commit is contained in:
parent
ca861bb1bb
commit
3a9c071e6e
1 changed files with 6 additions and 2 deletions
|
@ -11,6 +11,7 @@ use gpui::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use markdown_preview::markdown_preview_view::{MarkdownPreviewMode, MarkdownPreviewView};
|
use markdown_preview::markdown_preview_view::{MarkdownPreviewMode, MarkdownPreviewView};
|
||||||
|
use paths::remote_servers_dir;
|
||||||
use schemars::JsonSchema;
|
use schemars::JsonSchema;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde_derive::Serialize;
|
use serde_derive::Serialize;
|
||||||
|
@ -661,12 +662,15 @@ async fn download_remote_server_binary(
|
||||||
client: Arc<HttpClientWithUrl>,
|
client: Arc<HttpClientWithUrl>,
|
||||||
cx: &AsyncAppContext,
|
cx: &AsyncAppContext,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let mut target_file = File::create(&target_path).await?;
|
let temp = tempfile::Builder::new().tempfile_in(remote_servers_dir())?;
|
||||||
|
let mut temp_file = File::create(&temp).await?;
|
||||||
let update_request_body = build_remote_server_update_request_body(cx)?;
|
let update_request_body = build_remote_server_update_request_body(cx)?;
|
||||||
let request_body = AsyncBody::from(serde_json::to_string(&update_request_body)?);
|
let request_body = AsyncBody::from(serde_json::to_string(&update_request_body)?);
|
||||||
|
|
||||||
let mut response = client.get(&release.url, request_body, true).await?;
|
let mut response = client.get(&release.url, request_body, true).await?;
|
||||||
smol::io::copy(response.body_mut(), &mut target_file).await?;
|
smol::io::copy(response.body_mut(), &mut temp_file).await?;
|
||||||
|
smol::fs::rename(&temp, &target_path).await?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue