Files
cunicu/pkg/daemon/peer_modifier.go
Steffen Vogel 3bee839348 fix: Update copyright years
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2025-01-01 22:45:39 +01:00

57 lines
1.1 KiB
Go

// SPDX-FileCopyrightText: 2023-2025 Steffen Vogel <post@steffenvogel.de>
// SPDX-License-Identifier: Apache-2.0
package daemon
import "strings"
type PeerModifier uint32
const (
PeerModifiedPresharedKey PeerModifier = (1 << iota)
PeerModifiedEndpoint
PeerModifiedKeepaliveInterval
PeerModifiedHandshakeTime
PeerModifiedReceiveBytes
PeerModifiedTransmitBytes
PeerModifiedAllowedIPs
PeerModifiedProtocolVersion
PeerModifiedName
PeerModifierCount = 8
PeerModifiedNone PeerModifier = 0
)
//nolint:gochecknoglobals
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
}