Initial code commit
This commit is contained in:
40
internal/sslh/generator.go
Normal file
40
internal/sslh/generator.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package sslh
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"sslh-multiplex-lab/internal/services"
|
||||
)
|
||||
|
||||
func GenerateConfigFile(services []services.Service, serverIP, domain, outputPath string) error {
|
||||
config, err := GenerateConfig(services, serverIP, domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to generate config: %w", err)
|
||||
}
|
||||
|
||||
configContent := config.ToLibConfig()
|
||||
|
||||
if err := os.MkdirAll(filepath.Dir(outputPath), 0755); err != nil {
|
||||
return fmt.Errorf("failed to create config directory: %w", err)
|
||||
}
|
||||
|
||||
if err := os.WriteFile(outputPath, []byte(configContent), 0644); err != nil {
|
||||
return fmt.Errorf("failed to write config file: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func ValidateConfig(config *Config) error {
|
||||
if len(config.Listen) == 0 {
|
||||
return fmt.Errorf("at least one listen address is required")
|
||||
}
|
||||
|
||||
if len(config.Protocols) == 0 {
|
||||
return fmt.Errorf("at least one protocol route is required")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user