1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-09-16 01:56:55 +00:00

Better standards compliance with codes

This commit is contained in:
Kane York 2015-11-23 23:34:57 -08:00
parent 6a5bcdca4a
commit de6e671bdb
2 changed files with 8 additions and 5 deletions

View file

@ -204,7 +204,7 @@ var CloseRebalance = websocket.CloseError{Code: websocket.CloseGoingAway, Text:
var CloseGotBinaryMessage = websocket.CloseError{Code: websocket.CloseUnsupportedData, Text: "got binary packet"} var CloseGotBinaryMessage = websocket.CloseError{Code: websocket.CloseUnsupportedData, Text: "got binary packet"}
// CloseTimedOut is the termination reason when the client fails to send or respond to ping frames. // CloseTimedOut is the termination reason when the client fails to send or respond to ping frames.
var CloseTimedOut = websocket.CloseError{Code: websocket.CloseNoStatusReceived, Text: "no ping replies for 5 minutes"} var CloseTimedOut = websocket.CloseError{Code: 3003, Text: "no ping replies for 5 minutes"}
// CloseTooManyBufferedMessages is the termination reason when the sending thread buffers too many messages. // CloseTooManyBufferedMessages is the termination reason when the sending thread buffers too many messages.
var CloseTooManyBufferedMessages = websocket.CloseError{Code: websocket.CloseMessageTooBig, Text: "too many pending messages"} var CloseTooManyBufferedMessages = websocket.CloseError{Code: websocket.CloseMessageTooBig, Text: "too many pending messages"}
@ -216,7 +216,7 @@ var CloseFirstMessageNotHello = websocket.CloseError{
} }
var CloseNonUTF8Data = websocket.CloseError{ var CloseNonUTF8Data = websocket.CloseError{
Code: 4001, Code: websocket.CloseUnsupportedData,
Text: "Non UTF8 data recieved. Network corruption likely.", Text: "Non UTF8 data recieved. Network corruption likely.",
} }

View file

@ -96,13 +96,17 @@ func DumpBacklogData() {
// This will only send data for CacheTypePersistent and CacheTypeLastOnly because those do not involve timestamps. // This will only send data for CacheTypePersistent and CacheTypeLastOnly because those do not involve timestamps.
func SendBacklogForNewClient(client *ClientInfo) { func SendBacklogForNewClient(client *ClientInfo) {
client.Mutex.Lock() // reading CurrentChannels client.Mutex.Lock() // reading CurrentChannels
curChannels := make([]string, len(client.CurrentChannels))
copy(curChannels, client.CurrentChannels)
client.Mutex.Unlock()
PersistentLSMLock.RLock() PersistentLSMLock.RLock()
for _, cmd := range GetCommandsOfType(PushCommandCacheInfo{CacheTypePersistent, MsgTargetTypeChat}) { for _, cmd := range GetCommandsOfType(PushCommandCacheInfo{CacheTypePersistent, MsgTargetTypeChat}) {
chanMap := CachedLastMessages[cmd] chanMap := CachedLastMessages[cmd]
if chanMap == nil { if chanMap == nil {
continue continue
} }
for _, channel := range client.CurrentChannels { for _, channel := range curChannels {
msg, ok := chanMap[channel] msg, ok := chanMap[channel]
if ok { if ok {
msg := ClientMessage{MessageID: -1, Command: cmd, origArguments: msg.Data} msg := ClientMessage{MessageID: -1, Command: cmd, origArguments: msg.Data}
@ -119,7 +123,7 @@ func SendBacklogForNewClient(client *ClientInfo) {
if chanMap == nil { if chanMap == nil {
continue continue
} }
for _, channel := range client.CurrentChannels { for _, channel := range curChannels {
msg, ok := chanMap[channel] msg, ok := chanMap[channel]
if ok { if ok {
msg := ClientMessage{MessageID: -1, Command: cmd, origArguments: msg.Data} msg := ClientMessage{MessageID: -1, Command: cmd, origArguments: msg.Data}
@ -129,7 +133,6 @@ func SendBacklogForNewClient(client *ClientInfo) {
} }
} }
CachedLSMLock.RUnlock() CachedLSMLock.RUnlock()
client.Mutex.Unlock()
} }
// insertionSort implements insertion sort. // insertionSort implements insertion sort.