.password(Some(remote.password.clone()))
.fingerprint(remote.fingerprint.clone());
- let client = HttpClient::new(&remote.host, remote.port.unwrap_or(8007), &remote.userid, options)?;
+ let src_repo = BackupRepository::new(Some(remote.userid.clone()), Some(remote.host.clone()), remote.port, remote_store.to_string());
+
+ let client = HttpClient::new(&src_repo.host(), src_repo.port(), &src_repo.user(), options)?;
let _auth_info = client.login() // make sure we can auth
.await
.map_err(|err| format_err!("remote connection to '{}' failed - {}", remote.host, err))?;
- let src_repo = BackupRepository::new(Some(remote.userid), Some(remote.host), remote.port, remote_store.to_string());
Ok((client, src_repo, tgt_store))
}
impl BackupRepository {
pub fn new(user: Option<Userid>, host: Option<String>, port: Option<u16>, store: String) -> Self {
+ let host = match host {
+ Some(host) if (IP_V6_REGEX.regex_obj)().is_match(&host) => {
+ Some(format!("[{}]", host))
+ },
+ other => other,
+ };
Self { user, host, port, store }
}
calculate: function(data) {
let host = data.host || "localhost";
let port = data.port || "8007";
+ if (Proxmox.Utils.IP64_match.test(host)) {
+ host = `[${host}]`;
+ }
return `${host}:${port}`;
}
}