SHADOWSOCKS_METHOD environment variable (#117)

This commit is contained in:
Quentin McGaw
2020-03-29 20:06:27 -04:00
committed by GitHub
parent e5adccd9c5
commit 0235df74a0
9 changed files with 31 additions and 9 deletions

View File

@@ -8,9 +8,9 @@ import (
"github.com/qdm12/private-internet-access-docker/internal/constants"
)
func (c *configurator) MakeConf(port uint16, password string, uid, gid int) (err error) {
func (c *configurator) MakeConf(port uint16, password, method string, uid, gid int) (err error) {
c.logger.Info("%s: generating configuration file", logPrefix)
data := generateConf(port, password)
data := generateConf(port, password, method)
return c.fileManager.WriteToFile(
string(constants.ShadowsocksConf),
data,
@@ -18,7 +18,7 @@ func (c *configurator) MakeConf(port uint16, password string, uid, gid int) (err
files.Permissions(0400))
}
func generateConf(port uint16, password string) (data []byte) {
func generateConf(port uint16, password, method string) (data []byte) {
conf := struct {
Server string `json:"server"`
User string `json:"user"`
@@ -33,7 +33,7 @@ func generateConf(port uint16, password string) (data []byte) {
}{
Server: "0.0.0.0",
User: "nonrootuser",
Method: "chacha20-ietf-poly1305",
Method: method,
Timeout: 30,
FastOpen: false,
Mode: "tcp_and_udp",

View File

@@ -32,7 +32,7 @@ func Test_generateConf(t *testing.T) {
tc := tc
t.Run(name, func(t *testing.T) {
t.Parallel()
data := generateConf(tc.port, tc.password)
data := generateConf(tc.port, tc.password, "chacha20-ietf-poly1305")
assert.Equal(t, tc.data, data)
})
}
@@ -65,7 +65,7 @@ func Test_MakeConf(t *testing.T) {
).
Return(tc.writeErr).Once()
c := &configurator{logger: logger, fileManager: fileManager}
err := c.MakeConf(2000, "abcde", 1000, 1001)
err := c.MakeConf(2000, "abcde", "chacha20-ietf-poly1305", 1000, 1001)
if tc.err != nil {
require.Error(t, err)
assert.Equal(t, tc.err.Error(), err.Error())

View File

@@ -12,7 +12,7 @@ const logPrefix = "shadowsocks configurator"
type Configurator interface {
Version() (string, error)
MakeConf(port uint16, password 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)
}