Merge pull request #1270 from restic/sftp-allow-password-prompt

sftp: Allow password entry
This commit is contained in:
Alexander Neumann
2017-09-23 22:13:04 +02:00
7 changed files with 39 additions and 46 deletions
+15 -5
View File
@@ -12,17 +12,27 @@ import (
var cleanupHandlers struct {
sync.Mutex
list []func() error
done bool
list []func() error
done bool
sigintCh chan os.Signal
}
var stderr = os.Stderr
func init() {
c := make(chan os.Signal)
signal.Notify(c, syscall.SIGINT)
cleanupHandlers.sigintCh = make(chan os.Signal)
go CleanupHandler(cleanupHandlers.sigintCh)
InstallSignalHandler()
}
go CleanupHandler(c)
// InstallSignalHandler listens for SIGINT and triggers the cleanup handlers.
func InstallSignalHandler() {
signal.Notify(cleanupHandlers.sigintCh, syscall.SIGINT)
}
// SuspendSignalHandler removes the signal handler for SIGINT.
func SuspendSignalHandler() {
signal.Reset(syscall.SIGINT)
}
// AddCleanupHandler adds the function f to the list of cleanup handlers so
+2 -2
View File
@@ -470,7 +470,7 @@ func open(s string, opts options.Options) (restic.Backend, error) {
case "local":
be, err = local.Open(cfg.(local.Config))
case "sftp":
be, err = sftp.Open(cfg.(sftp.Config))
be, err = sftp.Open(cfg.(sftp.Config), SuspendSignalHandler, InstallSignalHandler)
case "s3":
be, err = s3.Open(cfg.(s3.Config))
case "gs":
@@ -522,7 +522,7 @@ func create(s string, opts options.Options) (restic.Backend, error) {
case "local":
return local.Create(cfg.(local.Config))
case "sftp":
return sftp.Create(cfg.(sftp.Config))
return sftp.Create(cfg.(sftp.Config), SuspendSignalHandler, InstallSignalHandler)
case "s3":
return s3.Create(cfg.(s3.Config))
case "gs":