diff --git a/cmd/server/main.go b/cmd/server/main.go index 00f562b8ea6c23ef1a152e910f69c228d5fdde31..d5f03d0f323808b96a9acaeeec96846f48aaae2b 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 0000000000000000000000000000000000000000..314d8c9ebf30f3d87501960d202965c516bfed21 --- /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 7ed5b9e77398243c3e9cd55f719c808626480b1a..e9c17c277e38f91f8e92be6cc18db16b90832798 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 c7ee2e81b577f431aa1fd3f4a571f4d57a6a72f3..fee88f082c2d3b30ea5b059888dea736b92870ea 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,