Log stderr stream from shadowsocks

This commit is contained in:
Quentin McGaw
2020-04-14 12:22:14 +00:00
parent 58459f0336
commit 422bd8d428
3 changed files with 7 additions and 6 deletions

View File

@@ -253,14 +253,15 @@ func main() {
e.FatalOnError(err) e.FatalOnError(err)
err = firewallConf.AllowAnyIncomingOnPort(allSettings.ShadowSocks.Port) err = firewallConf.AllowAnyIncomingOnPort(allSettings.ShadowSocks.Port)
e.FatalOnError(err) e.FatalOnError(err)
stream, waitFn, err := shadowsocksConf.Start("0.0.0.0", allSettings.ShadowSocks.Port, allSettings.ShadowSocks.Password, allSettings.ShadowSocks.Log) stdout, stderr, waitFn, err := shadowsocksConf.Start("0.0.0.0", allSettings.ShadowSocks.Port, allSettings.ShadowSocks.Password, allSettings.ShadowSocks.Log)
e.FatalOnError(err) e.FatalOnError(err)
go func() { go func() {
if err := waitFn(); err != nil { if err := waitFn(); err != nil {
logger.Error(err) logger.Error(err)
} }
}() }()
go streamMerger.Merge("shadowsocks", stream) go streamMerger.Merge("shadowsocks", stdout)
go streamMerger.Merge("shadowsocks error", stderr)
} }
stream, waitFn, err := ovpnConf.Start() stream, waitFn, err := ovpnConf.Start()

View File

@@ -8,7 +8,7 @@ import (
"github.com/qdm12/private-internet-access-docker/internal/constants" "github.com/qdm12/private-internet-access-docker/internal/constants"
) )
func (c *configurator) Start(server string, port uint16, password string, log bool) (stdout io.ReadCloser, waitFn func() error, err error) { func (c *configurator) Start(server string, port uint16, password string, log bool) (stdout, stderr io.ReadCloser, waitFn func() error, err error) {
c.logger.Info("starting shadowsocks server") c.logger.Info("starting shadowsocks server")
args := []string{ args := []string{
"-c", string(constants.ShadowsocksConf), "-c", string(constants.ShadowsocksConf),
@@ -18,8 +18,8 @@ func (c *configurator) Start(server string, port uint16, password string, log bo
if log { if log {
args = append(args, "-v") args = append(args, "-v")
} }
stdout, _, waitFn, err = c.commander.Start("ss-server", args...) stdout, stderr, waitFn, err = c.commander.Start("ss-server", args...)
return stdout, waitFn, err return stdout, stderr, waitFn, err
} }
// Version obtains the version of the installed shadowsocks server // Version obtains the version of the installed shadowsocks server

View File

@@ -11,7 +11,7 @@ import (
type Configurator interface { type Configurator interface {
Version() (string, error) Version() (string, error)
MakeConf(port uint16, password, method string, uid, gid int) (err error) MakeConf(port uint16, password, method string, uid, gid int) (err error)
Start(server string, port uint16, password string, log bool) (stdout io.ReadCloser, waitFn func() error, err error) Start(server string, port uint16, password string, log bool) (stdout, stderr io.ReadCloser, waitFn func() error, err error)
} }
type configurator struct { type configurator struct {