GRA-408: wipe local fix

This commit is contained in:
Abhishek Kondur
2022-08-01 14:18:34 +04:00
parent 28875981b1
commit c537722b76
2 changed files with 35 additions and 31 deletions

View File

@@ -264,32 +264,28 @@ func ReadConfig(network string) (*ClientConfig, error) {
err := errors.New("no network provided - exiting") err := errors.New("no network provided - exiting")
return nil, err return nil, err
} }
nofile := false
home := ncutils.GetNetclientPathSpecific() home := ncutils.GetNetclientPathSpecific()
file := fmt.Sprintf(home + "netconfig-" + network) file := fmt.Sprintf(home + "netconfig-" + network)
f, err := os.Open(file) f, err := os.Open(file)
if err != nil { if err != nil {
if err = ReplaceWithBackup(network); err != nil { if err = ReplaceWithBackup(network); err != nil {
nofile = true return nil, err
} }
f, err = os.Open(file) f, err = os.Open(file)
if err != nil { if err != nil {
nofile = true return nil, err
} }
} }
defer f.Close() defer f.Close()
var cfg ClientConfig var cfg ClientConfig
if !nofile {
decoder := yaml.NewDecoder(f) decoder := yaml.NewDecoder(f)
err = decoder.Decode(&cfg) err = decoder.Decode(&cfg)
if err != nil { if err != nil {
fmt.Println("trouble decoding file") logger.Log(2, "trouble decoding file", err.Error())
return nil, err return nil, err
} }
}
return &cfg, err return &cfg, err
} }

View File

@@ -193,7 +193,6 @@ func LeaveNetwork(network string) error {
if wgErr == nil && removeIface != "" { if wgErr == nil && removeIface != "" {
removeIface = macIface removeIface = macIface
} }
wgErr = nil
} }
dev, devErr := wgClient.Device(removeIface) dev, devErr := wgClient.Device(removeIface)
if devErr == nil { if devErr == nil {
@@ -224,12 +223,15 @@ func DeleteInterface(ifacename string, postdown string) error {
// WipeLocal - wipes local instance // WipeLocal - wipes local instance
func WipeLocal(network string) error { func WipeLocal(network string) error {
cfg, err := config.ReadConfig(network) var ifacename string
if err != nil {
return err if network == "" {
return errors.New("no network provided")
} }
cfg, err := config.ReadConfig(network)
if err == nil {
nodecfg := cfg.Node nodecfg := cfg.Node
ifacename := nodecfg.Interface ifacename = nodecfg.Interface
if ifacename != "" { if ifacename != "" {
if err = wireguard.RemoveConf(ifacename, true); err == nil { if err = wireguard.RemoveConf(ifacename, true); err == nil {
logger.Log(1, "network:", nodecfg.Network, "removed WireGuard interface: ", ifacename) logger.Log(1, "network:", nodecfg.Network, "removed WireGuard interface: ", ifacename)
@@ -237,6 +239,9 @@ func WipeLocal(network string) error {
err = nil err = nil
} }
} }
} else {
logger.Log(0, "failed to read "+network+" config: ", err.Error())
}
home := ncutils.GetNetclientPathSpecific() home := ncutils.GetNetclientPathSpecific()
if ncutils.FileExists(home + "netconfig-" + network) { if ncutils.FileExists(home + "netconfig-" + network) {
@@ -281,6 +286,7 @@ func WipeLocal(network string) error {
log.Println(err.Error()) log.Println(err.Error())
} }
} }
if ifacename != "" {
if ncutils.FileExists(home + ifacename + ".conf") { if ncutils.FileExists(home + ifacename + ".conf") {
err = os.Remove(home + ifacename + ".conf") err = os.Remove(home + ifacename + ".conf")
if err != nil { if err != nil {
@@ -292,6 +298,8 @@ func WipeLocal(network string) error {
if err != nil { if err != nil {
logger.Log(0, "failed to delete dns entries for", ifacename, err.Error()) logger.Log(0, "failed to delete dns entries for", ifacename, err.Error())
} }
}
return err return err
} }