From 563b3cceb4f075ba49715e86c68c394c87d5e83d Mon Sep 17 00:00:00 2001 From: William Reid Date: Mon, 25 Feb 2019 17:08:30 -0500 Subject: [PATCH] Heartbeats, ssl, constants --- .gitignore | 3 ++- constants.go | 7 +++++++ gateway.go | 24 +++++++++++++++++++++--- 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 constants.go diff --git a/.gitignore b/.gitignore index d9f8f33..3e24e3a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.exe -.idea/* \ No newline at end of file +.idea/* +executable/* \ No newline at end of file diff --git a/constants.go b/constants.go new file mode 100644 index 0000000..aa9b41e --- /dev/null +++ b/constants.go @@ -0,0 +1,7 @@ +package main + +const ( + // Header constants + headerUUID = "uuid" + headerTimestamp = "time" +) diff --git a/gateway.go b/gateway.go index 3c6e063..409faa4 100644 --- a/gateway.go +++ b/gateway.go @@ -7,15 +7,24 @@ import ( "net/http" ) +// TODO: log to file + func main() { + http.HandleFunc("/data", dataHandler) - if err := http.ListenAndServe(":8081", nil); err != nil { - fmt.Printf("Error serving 8081: %v", err) + http.HandleFunc("/heartbeat", heartbeatHandler) + + if err := http.ListenAndServeTLS( + ":48820", + "/etc/pki/tls/certs/gateway.crt", + "/etc/pki/tls/private/gateway.key", + nil); err != nil { + fmt.Printf("Error serving TLS: %v\n", err) } } func dataHandler(w http.ResponseWriter, r *http.Request) { - fmt.Printf("Got data from: %+v at %v\n", r.Header.Get("uuid"), r.Header.Get("time")) + fmt.Printf("Got data from: %v at %v\n", r.Header.Get("uuid"), r.Header.Get("time")) body, _ := ioutil.ReadAll(r.Body) var data map[string][]StampedReading if err := json.Unmarshal(body, &data); err != nil { @@ -25,3 +34,12 @@ func dataHandler(w http.ResponseWriter, r *http.Request) { } w.WriteHeader(200) } + +func heartbeatHandler(w http.ResponseWriter, r *http.Request) { + fmt.Printf("Got heartbeat from %v@%v at %v\n", + r.Header.Get(headerUUID), + r.RemoteAddr, + r.Header.Get(headerTimestamp)) + + w.WriteHeader(200) +}