Merge branch 'main' of ssh://git.gibonuddevalla.se:2222/go/webservice
This commit is contained in:
commit
ad1cb56a06
@ -274,6 +274,8 @@ func (db *T) CreateUser(username, password, name string) (userID int64, err erro
|
||||
),
|
||||
$3
|
||||
)
|
||||
ON CONFLICT (username) DO UPDATE
|
||||
SET username = EXCLUDED.username
|
||||
RETURNING id
|
||||
`,
|
||||
username,
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
"net/http"
|
||||
"slices"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type ReadHandler func(*ConnectionManager, *WsConnection, []byte)
|
||||
@ -28,6 +29,7 @@ type ConnectionManager struct {
|
||||
logger *slog.Logger
|
||||
domains []string
|
||||
readHandlers []ReadHandler
|
||||
connSync sync.Mutex
|
||||
}
|
||||
type SendRequest struct {
|
||||
WsConn *WsConnection
|
||||
@ -67,7 +69,9 @@ func (cm *ConnectionManager) NewConnection(w http.ResponseWriter, r *http.Reques
|
||||
}
|
||||
|
||||
// Keep track of all connections.
|
||||
cm.connSync.Lock()
|
||||
cm.connections[wsConn.UUID] = &wsConn
|
||||
cm.connSync.Unlock()
|
||||
|
||||
// Successfully upgraded to a websocket connection.
|
||||
cm.logger.Info("websocket", "uuid", wsConn.UUID, "remote_addr", r.RemoteAddr)
|
||||
@ -97,7 +101,9 @@ func (cm *ConnectionManager) Prune(wsConn *WsConnection, err error) { // {{{
|
||||
cm.logger.Info("websocket", "op", "prune", "uuid", wsConn.UUID)
|
||||
wsConn.Conn.Close()
|
||||
wsConn.Pruned = true
|
||||
cm.connSync.Lock()
|
||||
delete(cm.connections, wsConn.UUID)
|
||||
cm.connSync.Unlock()
|
||||
} // }}}
|
||||
func (cm *ConnectionManager) ReadLoop(wsConn *WsConnection) { // {{{
|
||||
var data []byte
|
||||
|
Loading…
Reference in New Issue
Block a user