minor UI fix and fix ssh race

This commit is contained in:
Unknwon 2015-11-14 13:21:31 -05:00
parent 9c12ed3b6e
commit 7c80eba77f
13 changed files with 33 additions and 10 deletions

View file

@ -7,6 +7,7 @@
package ssh
import (
"fmt"
"io"
"io/ioutil"
"net"
@ -82,14 +83,16 @@ func handleServerConn(keyID string, chans <-chan ssh.NewChannel) {
return
}
go io.Copy(ch, stdout)
go io.Copy(ch.Stderr(), stderr)
go io.Copy(input, ch)
if err = cmd.Start(); err != nil {
log.Error(3, "Start: %v", err)
return
} else if err = cmd.Wait(); err != nil {
}
go io.Copy(input, ch)
io.Copy(ch, stdout)
io.Copy(ch.Stderr(), stderr)
if err = cmd.Wait(); err != nil {
log.Error(3, "Wait: %v", err)
return
}
@ -142,7 +145,16 @@ func Listen(port int) {
},
}
privateBytes, err := ioutil.ReadFile(filepath.Join(models.SSHPath, "id_rsa"))
keyPath := filepath.Join(setting.AppDataPath, "ssh/gogs.rsa")
if !com.IsExist(keyPath) {
os.MkdirAll(filepath.Dir(keyPath), os.ModePerm)
_, stderr, err := com.ExecCmd("ssh-keygen", "-f", keyPath, "-t", "rsa", "-N", "")
if err != nil {
panic(fmt.Sprintf("Fail to generate private key: %v - %s", err, stderr))
}
}
privateBytes, err := ioutil.ReadFile(keyPath)
if err != nil {
panic("Fail to load private key")
}