summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorAndrey Nering <andrey.nering@gmail.com>2017-01-23 20:44:23 -0200
committerAndrey Nering <andrey.nering@gmail.com>2017-01-23 20:44:23 -0200
commitfda44760612aad10e556f65cd201e94ed568fbb3 (patch)
tree77bd12c1bb292b4ea63166f0d54ddd724df4de7e /modules
parent44d4863ecf3d0eb63540f4f10fa2d4760e4daa74 (diff)
downloadgitea-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.go9
-rw-r--r--modules/setting/setting.go3
-rw-r--r--modules/ssh/ssh.go6
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 {