Fix isOpen for TUN/TAP actor

This commit is contained in:
Neil Alexander 2019-10-24 23:37:39 +01:00
parent d37133e311
commit cd93969930
No known key found for this signature in database
GPG Key ID: A02A2019A2BB0944

View File

@ -143,9 +143,12 @@ func (tun *TunAdapter) Start() error {
}
func (tun *TunAdapter) _start() error {
if tun.isOpen {
return errors.New("TUN/TAP module is already started")
}
current := tun.config.GetCurrent()
if tun.config == nil || tun.listener == nil || tun.dialer == nil {
return errors.New("No configuration available to TUN/TAP")
return errors.New("no configuration available to TUN/TAP")
}
var boxPub crypto.BoxPubKey
boxPubHex, err := hex.DecodeString(current.EncryptionPublicKey)
@ -182,7 +185,11 @@ func (tun *TunAdapter) _start() error {
// IsStarted returns true if the module has been started.
func (tun *TunAdapter) IsStarted() bool {
return tun.isOpen
var isOpen bool
phony.Block(tun, func() {
isOpen = tun.isOpen
})
return isOpen
}
// Start the setup process for the TUN/TAP adapter. If successful, starts the