Files
cunicu/pkg/core/peer_modifier.go
Steffen Vogel aa128756ad fix several panics
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2022-09-01 08:55:16 +02:00

55 lines
978 B
Go

package core
import "strings"
type PeerModifier uint32
const (
PeerModifiedPresharedKey PeerModifier = (1 << iota)
PeerModifiedEndpoint
PeerModifiedKeepaliveInterval
PeerModifiedHandshakeTime
PeerModifiedReceiveBytes
PeerModifiedTransmitBytes
PeerModifiedAllowedIPs
PeerModifiedProtocolVersion
PeerModifiedName
PeerModifierCount = 8
PeerModifiedNone PeerModifier = 0
)
var (
PeerModifiersStrings = []string{
"preshared-key",
"endpoint",
"keepalive-interval",
"handshake-time",
"receive-bytes",
"transmit-bytes",
"allowed-ips",
"protocol-version",
"name",
}
)
func (i PeerModifier) Strings() []string {
modifiers := []string{}
for j := 0; j <= PeerModifierCount; j++ {
if i&(1<<j) != 0 {
modifiers = append(modifiers, PeerModifiersStrings[j])
}
}
return modifiers
}
func (i PeerModifier) String() string {
return strings.Join(i.Strings(), ",")
}
func (i PeerModifier) Is(j PeerModifier) bool {
return i&j > 0
}