summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2021-09-21 23:17:18 +0200
committerkali kaneko (leap communications) <kali@leap.se>2021-09-21 23:17:20 +0200
commitada7214469f116bbc659ef02c1e6facdcc019a4d (patch)
tree6389df0ba2060817c002e5d250b8424e168da699
parentcb05011a35a302cb382724cfe8ef8ba2575418b7 (diff)
add timeouts
see https://ieftimov.com/post/make-resilient-golang-net-http-servers-using-timeouts-deadlines-context-cancellation/
-rw-r--r--main.go15
1 files changed, 12 insertions, 3 deletions
diff --git a/main.go b/main.go
index dc6cfdf..811e737 100644
--- a/main.go
+++ b/main.go
@@ -271,11 +271,20 @@ func main() {
log.Println("Started Geolocation Service")
log.Printf("Listening on port %v...\n", *port)
- pstr := ":" + strconv.Itoa(*port)
+ addr := ":" + strconv.Itoa(*port)
+ s := &http.Server{
+ Addr: addr,
+ Handler: mux,
+ ReadTimeout: 1 * time.Second,
+ WriteTimeout: 1 * time.Second,
+ IdleTimeout: 30 * time.Second,
+ ReadHeaderTimeout: 2 * time.Second,
+ MaxHeaderBytes: 1 << 20,
+ }
if *notls == true {
- err = http.ListenAndServe(pstr, mux)
+ err = s.ListenAndServe()
} else {
- err = http.ListenAndServeTLS(pstr, *crt, *key, mux)
+ err = s.ListenAndServeTLS(*crt, *key)
}
if err != nil {