2015-10-25 00:44:25 -07:00
|
|
|
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
|
|
|
|
}
|