Browse code

sysinit: Support for the -g (gateway) flag used in networking setup

Andrea Luzzardi authored on 2013/02/21 10:45:46
Showing 1 changed files
... ...
@@ -11,6 +11,17 @@ import (
11 11
 	"syscall"
12 12
 )
13 13
 
14
+// Setup networking
15
+func setupNetworking(gw string) {
16
+	if gw == "" {
17
+		return
18
+	}
19
+	cmd := exec.Command("/sbin/route", "add", "default", "gw", gw)
20
+	if err := cmd.Run(); err != nil {
21
+		log.Fatalf("Unable to set up networking: %v", err)
22
+	}
23
+}
24
+
14 25
 // Takes care of dropping privileges to the desired user
15 26
 func changeUser(u string) {
16 27
 	if u == "" {
... ...
@@ -62,8 +73,11 @@ func SysInit() {
62 62
 		os.Exit(1)
63 63
 	}
64 64
 	var u = flag.String("u", "", "username or uid")
65
+	var gw = flag.String("g", "", "gateway address")
65 66
 
66 67
 	flag.Parse()
68
+
69
+	setupNetworking(*gw)
67 70
 	changeUser(*u)
68 71
 	executeProgram(flag.Arg(0), flag.Args())
69 72
 }