mirror of
https://github.com/qdm12/gluetun.git
synced 2026-07-22 10:26:26 +02:00
Fix SOCKS5_ENABLED being ignored
This commit is contained in:
+23
-1
@@ -4,6 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/qdm12/goservices"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Loop struct {
|
type Loop struct {
|
||||||
@@ -45,7 +47,13 @@ func run(ctx context.Context, done chan<- error, settings Settings) {
|
|||||||
logger := settings.Logger
|
logger := settings.Logger
|
||||||
|
|
||||||
for ctx.Err() == nil {
|
for ctx.Err() == nil {
|
||||||
server := newServer(settings)
|
var server goservices.Service
|
||||||
|
if settings.Enabled {
|
||||||
|
server = newServer(settings)
|
||||||
|
} else {
|
||||||
|
server = new(noopService)
|
||||||
|
}
|
||||||
|
|
||||||
errorCh, err := server.Start(ctx)
|
errorCh, err := server.Start(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warnf("failed starting SOCKS5 server: %s", err)
|
logger.Warnf("failed starting SOCKS5 server: %s", err)
|
||||||
@@ -83,3 +91,17 @@ func waitBeforeRetry(ctx context.Context) {
|
|||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type noopService struct{}
|
||||||
|
|
||||||
|
func (s noopService) Start(_ context.Context) (runErr <-chan error, err error) {
|
||||||
|
return nil, nil //nolint:nilnil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s noopService) Stop() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s noopService) String() string {
|
||||||
|
return "noop service"
|
||||||
|
}
|
||||||
|
|||||||
@@ -32,6 +32,10 @@ func newServer(settings Settings) *server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *server) String() string {
|
||||||
|
return "SOCKS5 server"
|
||||||
|
}
|
||||||
|
|
||||||
func (s *server) Start(ctx context.Context) (runErr <-chan error, err error) {
|
func (s *server) Start(ctx context.Context) (runErr <-chan error, err error) {
|
||||||
s.socksConnCtx, s.socksConnCancel = context.WithCancel(context.Background())
|
s.socksConnCtx, s.socksConnCancel = context.WithCancel(context.Background())
|
||||||
config := &net.ListenConfig{}
|
config := &net.ListenConfig{}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package socks5
|
package socks5
|
||||||
|
|
||||||
type Settings struct {
|
type Settings struct {
|
||||||
|
Enabled bool
|
||||||
Username string
|
Username string
|
||||||
Password string
|
Password string
|
||||||
Address string
|
Address string
|
||||||
|
|||||||
Reference in New Issue
Block a user