[controller] Ignore host key checking
This commit is contained in:
parent
bd6ce58249
commit
383f674656
|
@ -905,11 +905,78 @@ namespace SparkleShare {
|
|||
}
|
||||
|
||||
|
||||
private void DisableHostKeyCheckingForHost (string host)
|
||||
{
|
||||
|
||||
string ssh_config_file_path = Path.Combine (SparklePaths.HomePath, ".ssh", "config");
|
||||
string ssh_config = "Host " + host + "\n\tStrictHostKeyChecking no";
|
||||
|
||||
if (File.Exists (ssh_config_file_path)) {
|
||||
|
||||
TextWriter writer = File.AppendText (ssh_config_file_path);
|
||||
writer.WriteLine ("\n" + ssh_config);
|
||||
writer.Close ();
|
||||
|
||||
} else {
|
||||
|
||||
TextWriter writer = new StreamWriter (ssh_config_file_path);
|
||||
writer.WriteLine (ssh_config);
|
||||
writer.Close ();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void EnableHostKeyCheckingForHost (string host)
|
||||
{
|
||||
|
||||
string ssh_config_file_path = Path.Combine (SparklePaths.HomePath, ".ssh", "config");
|
||||
string ssh_config = "Host " + host + "\n\tStrictHostKeyChecking no";
|
||||
|
||||
if (File.Exists (ssh_config_file_path)) {
|
||||
|
||||
StreamReader reader = new StreamReader (ssh_config_file_path);
|
||||
string current_ssh_config = reader.ReadToEnd ();
|
||||
reader.Close ();
|
||||
|
||||
if (current_ssh_config.Equals (ssh_config)) {
|
||||
|
||||
File.Delete (ssh_config_file_path);
|
||||
|
||||
} else {
|
||||
|
||||
current_ssh_config = current_ssh_config.Remove (current_ssh_config.IndexOf (ssh_config),
|
||||
ssh_config.Length);
|
||||
|
||||
TextWriter writer = new StreamWriter (ssh_config_file_path);
|
||||
writer.WriteLine (current_ssh_config);
|
||||
writer.Close ();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void FetchFolder (string url, string name)
|
||||
{
|
||||
|
||||
SparkleHelpers.DebugInfo ("Controller", "Formed URL: " + url);
|
||||
|
||||
|
||||
string host = url.Substring (url.IndexOf ("@") + 1);
|
||||
|
||||
if (host.Contains (":"))
|
||||
host = host.Substring (0, host.IndexOf (":"));
|
||||
else
|
||||
host = host.Substring (0, host.IndexOf ("/"));
|
||||
|
||||
|
||||
DisableHostKeyCheckingForHost (host);
|
||||
|
||||
|
||||
// Strip the '.git' from the name
|
||||
string canonical_name = System.IO.Path.GetFileNameWithoutExtension (name);
|
||||
string tmp_folder = SparkleHelpers.CombineMore (SparklePaths.SparkleTmpPath, canonical_name);
|
||||
|
@ -939,6 +1006,8 @@ namespace SparkleShare {
|
|||
|
||||
fetcher.CloningFinished += delegate {
|
||||
|
||||
EnableHostKeyCheckingForHost (host);
|
||||
|
||||
SparkleHelpers.ClearAttributes (tmp_folder);
|
||||
|
||||
try {
|
||||
|
@ -966,6 +1035,8 @@ namespace SparkleShare {
|
|||
|
||||
fetcher.CloningFailed += delegate {
|
||||
|
||||
EnableHostKeyCheckingForHost (host);
|
||||
|
||||
if (Directory.Exists (tmp_folder)) {
|
||||
|
||||
SparkleHelpers.ClearAttributes (tmp_folder);
|
||||
|
@ -981,6 +1052,7 @@ namespace SparkleShare {
|
|||
|
||||
};
|
||||
|
||||
|
||||
fetcher.Start ();
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue