|
@@ -7,27 +7,30 @@ import (
|
|
|
"net/http"
|
|
|
|
|
|
"github.com/gorilla/mux"
|
|
|
- "github.com/gorilla/websocket"
|
|
|
"github.com/gravitl/netmaker/logger"
|
|
|
"github.com/gravitl/netmaker/logic"
|
|
|
"github.com/gravitl/netmaker/models"
|
|
|
"github.com/gravitl/netmaker/queue"
|
|
|
)
|
|
|
|
|
|
-var updateUpgrader = websocket.Upgrader{} // use default options
|
|
|
-
|
|
|
func updateHandlers(r *mux.Router) {
|
|
|
r.HandleFunc("/api/v1/update", http.HandlerFunc(handleUpdate)).Methods(http.MethodGet)
|
|
|
}
|
|
|
|
|
|
func handleUpdate(w http.ResponseWriter, r *http.Request) {
|
|
|
- c, err := updateUpgrader.Upgrade(w, r, nil)
|
|
|
+ c, err := upgrader.Upgrade(w, r, nil)
|
|
|
if err != nil {
|
|
|
logger.Log(0,
|
|
|
fmt.Sprintf("error occurred starting update ws for a client [%v]", err))
|
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
|
|
return
|
|
|
}
|
|
|
+ if len(r.Header.Get(hostID)) > 0 {
|
|
|
+ queue.ConnMap.Store(r.Header.Get(hostID), c)
|
|
|
+ } else {
|
|
|
+ queue.ConnMap.Store("test", c)
|
|
|
+ }
|
|
|
+ // load the connection address for reference later
|
|
|
defer c.Close()
|
|
|
for {
|
|
|
_, msg, err := c.ReadMessage()
|
|
@@ -41,8 +44,12 @@ func handleUpdate(w http.ResponseWriter, r *http.Request) {
|
|
|
log.Printf("error unmarshalling json! %v\n", err)
|
|
|
continue
|
|
|
}
|
|
|
- event.Conn = c
|
|
|
fmt.Printf("got event: %+v \n", event)
|
|
|
queue.EventQueue.Enqueue(event)
|
|
|
}
|
|
|
+ if len(r.Header.Get(hostID)) > 0 {
|
|
|
+ queue.ConnMap.Delete(r.Header.Get(hostID))
|
|
|
+ } else {
|
|
|
+ queue.ConnMap.Delete("test")
|
|
|
+ }
|
|
|
}
|