Add option for server hostport
All checks were successful
the build was successful

This commit is contained in:
Peter Stuifzand 2018-12-10 19:52:36 +01:00
parent 7aa6471696
commit 1aa7ff8d92

View File

@ -4,6 +4,7 @@ import (
"crypto/hmac" "crypto/hmac"
"crypto/sha1" "crypto/sha1"
"encoding/json" "encoding/json"
"flag"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log" "log"
@ -245,8 +246,9 @@ func (handler *subscriptionHandler) addSubscriberCallback(topic string, subscrib
for i, sub := range subs { for i, sub := range subs {
if sub.Callback == subscriber.Callback { if sub.Callback == subscriber.Callback {
handler.Subscribers[topic][i] = subscriber handler.Subscribers[topic][i] = subscriber
log.Println(handler.save()) if err := handler.save(); err != nil {
log.Println(err)
}
return return
} }
} }
@ -257,9 +259,6 @@ func (handler *subscriptionHandler) addSubscriberCallback(topic string, subscrib
} }
func (handler *subscriptionHandler) incStat(name string) { func (handler *subscriptionHandler) incStat(name string) {
handler.LockStats.Lock()
defer handler.LockStats.Unlock()
if v, e := handler.Stats[name]; e { if v, e := handler.Stats[name]; e {
handler.Stats[name] = Stat{LastUpdate: time.Now(), Updates: v.Updates + 1} handler.Stats[name] = Stat{LastUpdate: time.Now(), Updates: v.Updates + 1}
} else { } else {
@ -339,6 +338,7 @@ func (handler *subscriptionHandler) saveStats() error {
defer file.Close() defer file.Close()
dec := json.NewEncoder(file) dec := json.NewEncoder(file)
dec.SetIndent("", " ") dec.SetIndent("", " ")
err = dec.Encode(&handler.Stats) err = dec.Encode(&handler.Stats)
return err return err
} }
@ -390,9 +390,18 @@ func (handler *subscriptionHandler) save() error {
} }
func main() { func main() {
var hostPort string
flag.StringVar(&hostPort, "http", ":80", "host and port to listen on")
flag.Parse()
handler := &subscriptionHandler{} handler := &subscriptionHandler{}
log.Println(handler.load()) log.Println(handler.load())
fmt.Printf("%#v\n", handler.Subscribers)
log.Printf("%#v\n", handler.Subscribers)
log.Printf("%#v\n", handler.Stats)
http.Handle("/", handler) http.Handle("/", handler)
log.Fatal(http.ListenAndServe(":80", nil))
log.Fatal(http.ListenAndServe(hostPort, nil))
} }