1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-28 05:15:54 +00:00
FrankerFaceZ/socketserver/internal/server/utils.go

85 lines
1.3 KiB
Go
Raw Normal View History

package server
2015-10-24 22:38:04 -07:00
import (
2015-10-25 12:40:07 -07:00
"crypto/rand"
2015-10-24 22:38:04 -07:00
)
2015-10-25 12:40:07 -07:00
func FillCryptoRandom(buf []byte) error {
remaining := len(buf)
for remaining > 0 {
count, err := rand.Read(buf)
if err != nil {
return err
}
remaining -= count
}
return nil
}
func NewByteBuffer() interface{} {
return make([]byte, 1024)
}
2015-10-25 03:21:50 -07:00
func AddToSliceS(ary *[]string, val string) bool {
2015-10-24 22:38:04 -07:00
slice := *ary
for _, v := range slice {
if v == val {
2015-10-25 03:21:50 -07:00
return false
2015-10-24 22:38:04 -07:00
}
}
slice = append(slice, val)
*ary = slice
2015-10-25 03:21:50 -07:00
return true
2015-10-24 22:38:04 -07:00
}
2015-10-25 03:21:50 -07:00
func RemoveFromSliceS(ary *[]string, val string) bool {
2015-10-24 22:38:04 -07:00
slice := *ary
var idx int = -1
for i, v := range slice {
if v == val {
idx = i
break
}
}
if idx == -1 {
2015-10-25 03:21:50 -07:00
return false
2015-10-24 22:38:04 -07:00
}
slice[idx] = slice[len(slice) - 1]
slice = slice[:len(slice) - 1]
*ary = slice
2015-10-25 03:21:50 -07:00
return true
2015-10-24 22:38:04 -07:00
}
2015-10-25 03:21:50 -07:00
func AddToSliceC(ary *[]chan <- ClientMessage, val chan <- ClientMessage) bool {
slice := *ary
for _, v := range slice {
if v == val {
return false
}
}
slice = append(slice, val)
*ary = slice
return true
}
func RemoveFromSliceC(ary *[]chan <- ClientMessage, val chan <- ClientMessage) bool {
slice := *ary
var idx int = -1
for i, v := range slice {
if v == val {
idx = i
break
}
}
if idx == -1 {
return false
}
slice[idx] = slice[len(slice) - 1]
slice = slice[:len(slice) - 1]
*ary = slice
return true
}