almost done, queue fix next

This commit is contained in:
2025-12-07 00:48:09 +01:00
parent 7a30adc2e8
commit de03c1fe3d
10 changed files with 414 additions and 319 deletions

View File

@@ -29,20 +29,20 @@ func (wsg *WebsocketGateway) handleSync(w http.ResponseWriter, r *http.Request)
typ, data, err := conn.ReadMessage()
if err != nil {
wsg.sendWebsocketError(conn, "Internal Server Error", 500)
wsg.sendWebsocketError(conn, "Internal Server Error", 500, true)
wsg.logger.Error("Failed to read handshake.", "remote", conn.RemoteAddr().String(), "err", err)
return
}
if typ != websocket.TextMessage && typ != websocket.BinaryMessage {
wsg.sendWebsocketError(conn, "First message must be a handshake.", 400)
wsg.sendWebsocketError(conn, "Initial message must be a handshake.", 400, true)
wsg.logger.Warn("Invalid handshake message type.", "remote", conn.RemoteAddr().String())
return
}
var handshake Handshake
if err := json.Unmarshal(data, &handshake); err != nil {
wsg.sendWebsocketError(conn, "Malformed handshake.", 400)
wsg.sendWebsocketError(conn, "Malformed handshake.", 400, true)
wsg.logger.Warn("Malformed handshake.", "remote", conn.RemoteAddr().String(), "err", err)
return
}
@@ -54,7 +54,7 @@ func (wsg *WebsocketGateway) handleSync(w http.ResponseWriter, r *http.Request)
var mhs ModHandshake
if err := json.Unmarshal(handshake.Data, &mhs); err != nil {
wsg.sendWebsocketError(conn, "Malformed mod handshake.", 400)
wsg.sendWebsocketError(conn, "Malformed mod handshake.", 400, true)
wsg.logger.Warn("Malformed mod handshake.", "remote", conn.RemoteAddr().String(), "err", err)
return
}
@@ -68,13 +68,13 @@ func (wsg *WebsocketGateway) handleSync(w http.ResponseWriter, r *http.Request)
wsg.registerConn(conn, meta, "mod")
wsg.logger.Info("Mod connected via Websocket.", "remote", conn.RemoteAddr().String(), "server_id", mhs.ServerID)
go wsg.modReadLoop(conn, meta) // replace with external handler mayhaps
go wsg.read(conn, meta, "mod")
case "bot":
var bhs BotHandshake
if err := json.Unmarshal(handshake.Data, &bhs); err != nil {
wsg.sendWebsocketError(conn, "Malformed bot handshake.", 400)
wsg.sendWebsocketError(conn, "Malformed bot handshake.", 400, true)
wsg.logger.Warn("Malformed bot handshake.", "remote", conn.RemoteAddr().String(), "err", err)
return
}
@@ -82,7 +82,7 @@ func (wsg *WebsocketGateway) handleSync(w http.ResponseWriter, r *http.Request)
meta.ID = bhs.BotID
if ok := wsg.registerConn(conn, meta, "bot"); !ok {
wsg.sendWebsocketError(conn, "Bot already connected.", 409)
wsg.sendWebsocketError(conn, "Bot already connected.", 409, true)
return
}
@@ -92,10 +92,10 @@ func (wsg *WebsocketGateway) handleSync(w http.ResponseWriter, r *http.Request)
wsg.logger.Info("Bot connected via Websocket.", "remote", conn.RemoteAddr().String(), "bot_id", bhs.BotID)
go wsg.botReadLoop(conn, meta) // replace with external handler mayhaps
go wsg.read(conn, meta, "bot")
default:
wsg.sendWebsocketError(conn, "Unknown handshake.", 400)
wsg.sendWebsocketError(conn, "Unknown handshake.", 400, true)
wsg.logger.Warn("Unknown connection type.", "remote", conn.RemoteAddr().String(), "type", handshake.Type)
return
}