From 54de87351679351e58dbc71208ea085263267d4f Mon Sep 17 00:00:00 2001 From: Maxb <bittmanmax@gmail.com> Date: Thu, 13 Mar 2025 16:22:35 -0700 Subject: [PATCH] Re-organize server package --- cmd/server/main.go | 2 +- server/server.go | 30 ++++++++++++++++++++++++++++++ server/tcpserver.go | 31 ++----------------------------- server/udpserver.go | 4 ++-- 4 files changed, 35 insertions(+), 32 deletions(-) create mode 100644 server/server.go diff --git a/cmd/server/main.go b/cmd/server/main.go index 00f562b..d5f03d0 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -345,7 +345,7 @@ func main() { quicConfig.TLSCert = cert } - serverCfg := server.ServerConfig{ + serverCfg := server.Config{ Obfs4Config: *obfs4Config, StateDir: cfg.stateDir, PortSeed: cfg.portSeed, diff --git a/server/server.go b/server/server.go new file mode 100644 index 0000000..314d8c9 --- /dev/null +++ b/server/server.go @@ -0,0 +1,30 @@ +package server + +import "0xacab.org/leap/obfsvpn/obfsvpn" + +const transportName = "obfs4" + +// Obfs4Config is an obfs4 specific configuration object +type Obfs4Config struct { + NodeID string `json:"node-id"` + PrivateKey string `json:"private-key"` + PublicKey string `json:"public-key"` + DRBGSeed string `json:"drbg-seed"` + IatMode int `json:"iat-mode"` +} + +// Config is the configuration for the obfsvpn server +type Config struct { + OpenvpnAddr string + Obfs4Config Obfs4Config + StateDir string + Obfs4ListenIP string + Obfs4ListenPort int + HoppingEnabled bool + PortSeed int64 + PortCount uint + MinHopPort uint + MaxHopPort uint + KCPConfig obfsvpn.KCPConfig + QUICConfig obfsvpn.QUICConfig +} diff --git a/server/tcpserver.go b/server/tcpserver.go index 7ed5b9e..e9c17c2 100644 --- a/server/tcpserver.go +++ b/server/tcpserver.go @@ -15,44 +15,17 @@ import ( pt "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib" ) -const transportName = "obfs4" - -// Obfs4Config is an obfs4 specific configuration object -type Obfs4Config struct { - NodeID string `json:"node-id"` - PrivateKey string `json:"private-key"` - PublicKey string `json:"public-key"` - DRBGSeed string `json:"drbg-seed"` - IatMode int `json:"iat-mode"` -} - -// ServerConfig is the configuration for the obfsvpn server -type ServerConfig struct { - OpenvpnAddr string - Obfs4Config Obfs4Config - StateDir string - Obfs4ListenIP string - Obfs4ListenPort int - HoppingEnabled bool - PortSeed int64 - PortCount uint - MinHopPort uint - MaxHopPort uint - KCPConfig obfsvpn.KCPConfig - QUICConfig obfsvpn.QUICConfig -} - // TCPServer is a obfsvpn server type TCPServer struct { ctx context.Context - cfg ServerConfig + cfg Config debug *log.Logger logger *log.Logger stop context.CancelFunc } // NewTCPServer returns a new TCPServer -func NewTCPServer(ctx context.Context, stop context.CancelFunc, cfg ServerConfig, logger, debug *log.Logger) BridgeServer { +func NewTCPServer(ctx context.Context, stop context.CancelFunc, cfg Config, logger, debug *log.Logger) BridgeServer { return &TCPServer{ ctx: ctx, stop: stop, diff --git a/server/udpserver.go b/server/udpserver.go index c7ee2e8..fee88f0 100644 --- a/server/udpserver.go +++ b/server/udpserver.go @@ -13,7 +13,7 @@ import ( // UDPServer is a obfsvpn server type UDPServer struct { - cfg ServerConfig + cfg Config logger *log.Logger debug *log.Logger ctx context.Context @@ -21,7 +21,7 @@ type UDPServer struct { } // NewUDPServer returns a new UDPServer -func NewUDPServer(ctx context.Context, stop context.CancelFunc, cfg ServerConfig, logger, debug *log.Logger) BridgeServer { +func NewUDPServer(ctx context.Context, stop context.CancelFunc, cfg Config, logger, debug *log.Logger) BridgeServer { return &UDPServer{ ctx: ctx, stop: stop, -- GitLab