You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
914 B
Go
50 lines
914 B
Go
package main
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
//Default streams signals
|
|
const (
|
|
SignalStreamRestart = iota ///< Y Restart
|
|
SignalStreamStop
|
|
SignalStreamClient
|
|
)
|
|
|
|
//generateUUID function make random uuid for clients and stream
|
|
func generateUUID() (string, error) {
|
|
b := make([]byte, 16)
|
|
_, err := rand.Read(b)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return fmt.Sprintf("%X-%X-%X-%X-%X", b[0:4], b[4:6], b[6:8], b[8:10], b[10:]), nil
|
|
}
|
|
|
|
//stringToInt convert string to int if err to zero
|
|
func stringToInt(val string) int {
|
|
i, err := strconv.Atoi(val)
|
|
if err != nil {
|
|
return 0
|
|
}
|
|
return i
|
|
}
|
|
|
|
//stringInBetween fin char to char sub string
|
|
func stringInBetween(str string, start string, end string) (result string) {
|
|
s := strings.Index(str, start)
|
|
if s == -1 {
|
|
return
|
|
}
|
|
str = str[s+len(start):]
|
|
e := strings.Index(str, end)
|
|
if e == -1 {
|
|
return
|
|
}
|
|
str = str[:e]
|
|
return str
|
|
}
|