From c17cf0dd79fa79af85d29afa3c6fd67cf19fe4ff Mon Sep 17 00:00:00 2001 From: Andrea Luzzardi Date: Wed, 20 Feb 2013 17:45:46 -0800 Subject: [PATCH] sysinit: Support for the -g (gateway) flag used in networking setup Upstream-commit: b9b66d0e1b70cd0475d6fbba33eba5632f852dde Component: engine --- components/engine/sysinit.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/components/engine/sysinit.go b/components/engine/sysinit.go index 99bf43d25f..f701417978 100644 --- a/components/engine/sysinit.go +++ b/components/engine/sysinit.go @@ -11,6 +11,17 @@ import ( "syscall" ) +// Setup networking +func setupNetworking(gw string) { + if gw == "" { + return + } + cmd := exec.Command("/sbin/route", "add", "default", "gw", gw) + if err := cmd.Run(); err != nil { + log.Fatalf("Unable to set up networking: %v", err) + } +} + // Takes care of dropping privileges to the desired user func changeUser(u string) { if u == "" { @@ -62,8 +73,11 @@ func SysInit() { os.Exit(1) } var u = flag.String("u", "", "username or uid") + var gw = flag.String("g", "", "gateway address") flag.Parse() + + setupNetworking(*gw) changeUser(*u) executeProgram(flag.Arg(0), flag.Args()) }