diff options
author | Andrey Nering <andrey.nering@gmail.com> | 2017-01-23 20:44:23 -0200 |
---|---|---|
committer | Andrey Nering <andrey.nering@gmail.com> | 2017-01-23 20:44:23 -0200 |
commit | fda44760612aad10e556f65cd201e94ed568fbb3 (patch) | |
tree | 77bd12c1bb292b4ea63166f0d54ddd724df4de7e /modules | |
parent | 44d4863ecf3d0eb63540f4f10fa2d4760e4daa74 (diff) | |
download | gitea-fda44760612aad10e556f65cd201e94ed568fbb3.tar.gz gitea-fda44760612aad10e556f65cd201e94ed568fbb3.zip |
Fix SSH server on Windows when running as service
Closes #680
Diffstat (limited to 'modules')
-rw-r--r-- | modules/minwinsvc/svc_windows.go | 9 | ||||
-rw-r--r-- | modules/setting/setting.go | 3 | ||||
-rw-r--r-- | modules/ssh/ssh.go | 6 |
3 files changed, 14 insertions, 4 deletions
diff --git a/modules/minwinsvc/svc_windows.go b/modules/minwinsvc/svc_windows.go index 91e2b6a4dd..c6e87e29df 100644 --- a/modules/minwinsvc/svc_windows.go +++ b/modules/minwinsvc/svc_windows.go @@ -8,17 +8,22 @@ package minwinsvc import ( "os" + "strconv" "sync" "golang.org/x/sys/windows/svc" ) var ( - onExit func() - guard sync.Mutex + onExit func() + guard sync.Mutex + skip, _ = strconv.ParseBool(os.Getenv("SKIP_MINWINSVC")) ) func init() { + if skip { + return + } interactive, err := svc.IsAnInteractiveSession() if err != nil { panic(err) diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 910ec93021..61eac4fb33 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -22,13 +22,14 @@ import ( "code.gitea.io/git" "code.gitea.io/gitea/modules/log" + _ "code.gitea.io/gitea/modules/minwinsvc" // import minwinsvc for windows services "code.gitea.io/gitea/modules/user" + "github.com/Unknwon/com" _ "github.com/go-macaron/cache/memcache" // memcache plugin for cache _ "github.com/go-macaron/cache/redis" "github.com/go-macaron/session" _ "github.com/go-macaron/session/redis" // redis plugin for store session - _ "github.com/kardianos/minwinsvc" // import minwinsvc for windows services "gopkg.in/ini.v1" "strk.kbt.io/projects/go/libravatar" ) diff --git a/modules/ssh/ssh.go b/modules/ssh/ssh.go index 056ef084ef..18bac8dbf2 100644 --- a/modules/ssh/ssh.go +++ b/modules/ssh/ssh.go @@ -67,7 +67,11 @@ func handleServerConn(keyID string, chans <-chan ssh.NewChannel) { args := []string{"serv", "key-" + keyID, "--config=" + setting.CustomConf} log.Trace("SSH: Arguments: %v", args) cmd := exec.Command(setting.AppPath, args...) - cmd.Env = append(os.Environ(), "SSH_ORIGINAL_COMMAND="+cmdName) + cmd.Env = append( + os.Environ(), + "SSH_ORIGINAL_COMMAND="+cmdName, + "SKIP_MINWINSVC=1", + ) stdout, err := cmd.StdoutPipe() if err != nil { |