30 lines
547 B
Go
30 lines
547 B
Go
|
|
package state
|
||
|
|
|
||
|
|
import (
|
||
|
|
"net"
|
||
|
|
)
|
||
|
|
|
||
|
|
type PublicIPGetSetter interface {
|
||
|
|
PublicIPGetter
|
||
|
|
SetPublicIP(publicIP net.IP)
|
||
|
|
}
|
||
|
|
|
||
|
|
type PublicIPGetter interface {
|
||
|
|
GetPublicIP() (publicIP net.IP)
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *State) GetPublicIP() (publicIP net.IP) {
|
||
|
|
s.publicIPMu.RLock()
|
||
|
|
defer s.publicIPMu.RUnlock()
|
||
|
|
publicIP = make(net.IP, len(s.publicIP))
|
||
|
|
copy(publicIP, s.publicIP)
|
||
|
|
return publicIP
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *State) SetPublicIP(publicIP net.IP) {
|
||
|
|
s.settingsMu.Lock()
|
||
|
|
defer s.settingsMu.Unlock()
|
||
|
|
s.publicIP = make(net.IP, len(publicIP))
|
||
|
|
copy(s.publicIP, publicIP)
|
||
|
|
}
|