From 73d04bf857a095046d0f287138a1b8986b307f1a Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Sat, 9 Jun 2018 23:19:19 +0200 Subject: [PATCH] api: add COMMENTO_BIND_ADDRESS variable Signed-off-by: Pierre-Alain TORET --- api/config.go | 1 + api/config_test.go | 17 +++++++++++++++++ api/router.go | 6 ++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/api/config.go b/api/config.go index 67e888d..ee61c73 100644 --- a/api/config.go +++ b/api/config.go @@ -16,6 +16,7 @@ func parseConfig() error { defaults := map[string]string{ "POSTGRES": "postgres://postgres:postgres@localhost/commento?sslmode=disable", + "BIND_ADDRESS": "127.0.0.1", "PORT": "8080", "ORIGIN": "", diff --git a/api/config_test.go b/api/config_test.go index 967bb46..1c18f11 100644 --- a/api/config_test.go +++ b/api/config_test.go @@ -14,6 +14,23 @@ func TestParseConfigBasics(t *testing.T) { return } + if os.Getenv("BIND_ADDRESS") != "127.0.0.1" { + t.Errorf("expected BIND_ADDRESS=127.0.0.1, but BIND_ADDRESS=%s instead", os.Getenv("BIND_ADDRESS")) + return + } + + os.Setenv("COMMENTO_BIND_ADDRESS", "192.168.1.100") + + if err := parseConfig(); err != nil { + t.Errorf("unexpected error when parsing config: %v", err) + return + } + + if os.Getenv("BIND_ADDRESS") != "192.168.1.100" { + t.Errorf("expected BIND_ADDRESS=192.168.1.100, but BIND_ADDRESS=%s instead", os.Getenv("BIND_ADDRESS")) + return + } + // This test feels kinda stupid, but whatever. if os.Getenv("PORT") != "8080" { t.Errorf("expected PORT=8080, but PORT=%s instead", os.Getenv("PORT")) diff --git a/api/router.go b/api/router.go index 1781cd6..5e232cb 100644 --- a/api/router.go +++ b/api/router.go @@ -22,8 +22,10 @@ func serveRoutes() error { headers := handlers.AllowedHeaders([]string{"X-Requested-With"}) methods := handlers.AllowedMethods([]string{"GET", "POST"}) - logger.Infof("starting server on port %s\n", os.Getenv("PORT")) - if err := http.ListenAndServe(":"+os.Getenv("PORT"), handlers.CORS(origins, headers, methods)(router)); err != nil { + addrPort := os.Getenv("BIND_ADDRESS") + ":" + os.Getenv("PORT") + + logger.Infof("starting server on %s\n", addrPort) + if err := http.ListenAndServe(addrPort, handlers.CORS(origins, headers, methods)(router)); err != nil { logger.Errorf("cannot start server: %v", err) return err }