...

Source file src/edge-infra.dev/cmd/sds/novnc/wsserver/main.go

Documentation: edge-infra.dev/cmd/sds/novnc/wsserver

     1  package main
     2  
     3  import (
     4  	"net/http"
     5  	"os"
     6  
     7  	"github.com/gorilla/websocket"
     8  
     9  	"edge-infra.dev/pkg/lib/logging"
    10  )
    11  
    12  var upgrader = websocket.Upgrader{CheckOrigin: func(_ *http.Request) bool { return true }}
    13  
    14  func returnHostName(w http.ResponseWriter, r *http.Request) {
    15  	logger := logging.NewLogger().WithName("wsserver")
    16  	c, err := upgrader.Upgrade(w, r, nil)
    17  	if err != nil {
    18  		logger.Error(err, "upgrade error")
    19  		return
    20  	}
    21  	defer c.Close()
    22  
    23  	for {
    24  		mt, message, err := c.ReadMessage()
    25  		if err != nil {
    26  			logger.Error(err, "read error")
    27  			break
    28  		}
    29  		logger.Info("message received", "message", message)
    30  		nodeName := os.Getenv("NodeName")
    31  		logger.Info("discovered node", "nodeName", nodeName)
    32  		err = c.WriteMessage(mt, []byte(nodeName))
    33  		if err != nil {
    34  			logger.Error(err, "Error writing")
    35  			break
    36  		}
    37  	}
    38  }
    39  
    40  func main() {
    41  	logger := logging.NewLogger().WithName("wsserver")
    42  	logger.Info("Starting server")
    43  	http.HandleFunc("/", returnHostName)
    44  	/* #nosec G114 */
    45  	if err := http.ListenAndServe("0.0.0.0:80", nil); err != nil { //nolint:gosec // not used for security
    46  		logger.Error(err, "Server error")
    47  		os.Exit(1)
    48  	}
    49  }
    50  

View as plain text