diff --git a/cli/cli.go b/cli/cli.go index 4975bfa..b5db440 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -286,4 +286,4 @@ func Run(config Config, args []string) error { } return nil -} \ No newline at end of file +} diff --git a/network/linux.go b/network/linux.go index f245014..334ac61 100644 --- a/network/linux.go +++ b/network/linux.go @@ -221,56 +221,24 @@ func (l *LinuxJail) setupNetworking() error { vethHost := fmt.Sprintf("veth_h_%s", uniqueID) // veth_h_1234567 = 14 chars vethNetJail := fmt.Sprintf("veth_n_%s", uniqueID) // veth_n_1234567 = 14 chars - cmd := exec.Command("ip", "link", "add", vethHost, "type", "veth", "peer", "name", vethNetJail) - err := cmd.Run() - if err != nil { - return fmt.Errorf("failed to create veth pair: %v", err) - } - - // Move netjail end to namespace - cmd = exec.Command("ip", "link", "set", vethNetJail, "netns", l.namespace) - err = cmd.Run() - if err != nil { - return fmt.Errorf("failed to move veth to namespace: %v", err) - } - - // Configure host side of veth pair - cmd = exec.Command("ip", "addr", "add", "192.168.100.1/24", "dev", vethHost) - err = cmd.Run() - if err != nil { - return fmt.Errorf("failed to configure host veth: %v", err) - } - - cmd = exec.Command("ip", "link", "set", vethHost, "up") - err = cmd.Run() - if err != nil { - return fmt.Errorf("failed to bring up host veth: %v", err) - } - - // Configure namespace side of veth pair - cmd = exec.Command("ip", "netns", "exec", l.namespace, "ip", "addr", "add", "192.168.100.2/24", "dev", vethNetJail) - err = cmd.Run() - if err != nil { - return fmt.Errorf("failed to configure namespace veth: %v", err) - } - - cmd = exec.Command("ip", "netns", "exec", l.namespace, "ip", "link", "set", vethNetJail, "up") - err = cmd.Run() - if err != nil { - return fmt.Errorf("failed to bring up namespace veth: %v", err) + setupCmds := []struct { + description string + command *exec.Cmd + }{ + {"create veth pair", exec.Command("ip", "link", "add", vethHost, "type", "veth", "peer", "name", vethNetJail)}, + {"move veth to namespace", exec.Command("ip", "link", "set", vethNetJail, "netns", l.namespace)}, + {"configure host veth", exec.Command("ip", "addr", "add", "192.168.100.1/24", "dev", vethHost)}, + {"bring up host veth", exec.Command("ip", "link", "set", vethHost, "up")}, + {"configure namespace veth", exec.Command("ip", "netns", "exec", l.namespace, "ip", "addr", "add", "192.168.100.2/24", "dev", vethNetJail)}, + {"bring up namespace veth", exec.Command("ip", "netns", "exec", l.namespace, "ip", "link", "set", vethNetJail, "up")}, + {"bring up loopback", exec.Command("ip", "netns", "exec", l.namespace, "ip", "link", "set", "lo", "up")}, + {"set default route in namespace", exec.Command("ip", "netns", "exec", l.namespace, "ip", "route", "add", "default", "via", "192.168.100.1")}, } - cmd = exec.Command("ip", "netns", "exec", l.namespace, "ip", "link", "set", "lo", "up") - err = cmd.Run() - if err != nil { - return fmt.Errorf("failed to bring up loopback: %v", err) - } - - // Set default route in namespace - cmd = exec.Command("ip", "netns", "exec", l.namespace, "ip", "route", "add", "default", "via", "192.168.100.1") - err = cmd.Run() - if err != nil { - return fmt.Errorf("failed to set default route: %v", err) + for _, command := range setupCmds { + if err := command.command.Run(); err != nil { + return fmt.Errorf("failed to %s: %v", command.description, err) + } } return nil @@ -355,4 +323,4 @@ func (l *LinuxJail) removeNamespace() error { return fmt.Errorf("failed to remove namespace: %v", err) } return nil -} \ No newline at end of file +} diff --git a/network/macos.go b/network/macos.go index 8823587..025a00e 100644 --- a/network/macos.go +++ b/network/macos.go @@ -376,4 +376,4 @@ func (m *MacOSNetJail) cleanupTempFiles() { if m.mainRulesPath != "" { os.Remove(m.mainRulesPath) } -} \ No newline at end of file +} diff --git a/tls/tls.go b/tls/tls.go index 3dd54e7..dc5488b 100644 --- a/tls/tls.go +++ b/tls/tls.go @@ -285,11 +285,11 @@ func (cm *CertificateManager) generateServerCertificate(hostname string) (*tls.C PostalCode: []string{""}, CommonName: hostname, }, - NotBefore: time.Now(), - NotAfter: time.Now().Add(24 * time.Hour), // 1 day - KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, - ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, - DNSNames: []string{hostname}, + NotBefore: time.Now(), + NotAfter: time.Now().Add(24 * time.Hour), // 1 day + KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, + ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, + DNSNames: []string{hostname}, } // Add IP address if hostname is an IP @@ -350,4 +350,4 @@ func GetConfigDir() (string, error) { } return configDir, nil -} \ No newline at end of file +}