diff --git a/internal/cmd/server.go b/internal/cmd/server.go index c6a2cc3..f6e990c 100644 --- a/internal/cmd/server.go +++ b/internal/cmd/server.go @@ -47,6 +47,14 @@ var ServerCmd = &cobra.Command{ sConf.ClientAuth, _ = cmd.Flags().GetBool("clientauth") sConf.ClientCaFile, _ = cmd.Flags().GetString("clientcafile") + // Set environment variables KAPOW_DATA_URL and KAPOW_CONTROL_URL only if they aren't set so we don't overwrite user's preferences + if _, exist := os.LookupEnv("KAPOW_DATA_URL"); !exist { + os.Setenv("KAPOW_DATA_URL", "http://"+sConf.DataBindAddr) + } + if _, exist := os.LookupEnv("KAPOW_CONTROL_URL"); !exist { + os.Setenv("KAPOW_CONTROL_URL", "http://"+sConf.DataBindAddr) + } + go server.StartServer(sConf) // start sub shell + ENV(KAPOW_CONTROL_URL) @@ -60,7 +68,7 @@ var ServerCmd = &cobra.Command{ kapowCMD := exec.Command("bash", powfile) kapowCMD.Stdout = os.Stdout kapowCMD.Stderr = os.Stderr - kapowCMD.Env = append(os.Environ(), "KAPOW_CONTROL_URL=http://"+sConf.ControlBindAddr) + kapowCMD.Env = os.Environ() err = kapowCMD.Run() if err != nil { diff --git a/internal/server/data/resource.go b/internal/server/data/resource.go index 71b898c..111d497 100644 --- a/internal/server/data/resource.go +++ b/internal/server/data/resource.go @@ -175,11 +175,7 @@ func setResponseHeaders(w http.ResponseWriter, r *http.Request, h *model.Handler } hds := h.Writer.Header() - if _, ok := hds[name]; ok { - hds[name] = append(hds[name], string(vb)) - } else { - hds[name] = []string{string(vb)} - } + hds[name] = append(hds[name], string(vb)) } func setResponseCookies(w http.ResponseWriter, r *http.Request, h *model.Handler) { diff --git a/internal/server/user/spawn/spawn.go b/internal/server/user/spawn/spawn.go index 1f8140a..e7c1219 100644 --- a/internal/server/user/spawn/spawn.go +++ b/internal/server/user/spawn/spawn.go @@ -44,7 +44,7 @@ func Spawn(h *model.Handler, out io.Writer) error { if out != nil { cmd.Stdout = out } - cmd.Env = append(os.Environ(), "KAPOW_DATA_URL=http://localhost:8082") + cmd.Env = os.Environ() cmd.Env = append(cmd.Env, "KAPOW_HANDLER_ID="+h.ID) err = cmd.Run() diff --git a/internal/server/user/spawn/spawn_test.go b/internal/server/user/spawn/spawn_test.go index 4e8f359..9eaf2e3 100644 --- a/internal/server/user/spawn/spawn_test.go +++ b/internal/server/user/spawn/spawn_test.go @@ -94,6 +94,8 @@ func TestSpawnWritesToStdout(t *testing.T) { } func TestSpawnSetsKapowURLEnvVar(t *testing.T) { + t.Skip("Not neccessary as this variable is now set by server at start up") + h := &model.Handler{ Route: model.Route{ Entrypoint: locateJailLover(),