X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=blobdiff_plain;f=src%2Fcfgdir.go;h=a68699173cce1ffbe6f9856a30fb028e35e34cb5;hp=afe7b40eadab34d16fd7f460aa176bb8181906af;hb=655146e4ee2bde72c9e8daa1361010fefe016df9;hpb=0367cce2741e1ce6a89a49fd5c4e9df6005c9744 diff --git a/src/cfgdir.go b/src/cfgdir.go index afe7b40..a686991 100644 --- a/src/cfgdir.go +++ b/src/cfgdir.go @@ -168,29 +168,31 @@ func CfgToDir(dst string, cfg *CfgJSON) (err error) { } } - if err = cfgDirMkdir(dst, "self"); err != nil { - return - } - if err = cfgDirSave(cfg.Self.Id, dst, "self", "id"); err != nil { - return - } - if err = cfgDirSave(cfg.Self.ExchPub, dst, "self", "exchpub"); err != nil { - return - } - if err = cfgDirSave(cfg.Self.ExchPrv, dst, "self", "exchprv"); err != nil { - return - } - if err = cfgDirSave(cfg.Self.SignPub, dst, "self", "signpub"); err != nil { - return - } - if err = cfgDirSave(cfg.Self.SignPrv, dst, "self", "signprv"); err != nil { - return - } - if err = cfgDirSave(cfg.Self.NoisePub, dst, "self", "noisepub"); err != nil { - return - } - if err = cfgDirSave(cfg.Self.NoisePrv, dst, "self", "noiseprv"); err != nil { - return + if cfg.Self != nil { + if err = cfgDirMkdir(dst, "self"); err != nil { + return + } + if err = cfgDirSave(cfg.Self.Id, dst, "self", "id"); err != nil { + return + } + if err = cfgDirSave(cfg.Self.ExchPub, dst, "self", "exchpub"); err != nil { + return + } + if err = cfgDirSave(cfg.Self.ExchPrv, dst, "self", "exchprv"); err != nil { + return + } + if err = cfgDirSave(cfg.Self.SignPub, dst, "self", "signpub"); err != nil { + return + } + if err = cfgDirSave(cfg.Self.SignPrv, dst, "self", "signprv"); err != nil { + return + } + if err = cfgDirSave(cfg.Self.NoisePub, dst, "self", "noisepub"); err != nil { + return + } + if err = cfgDirSave(cfg.Self.NoisePrv, dst, "self", "noiseprv"); err != nil { + return + } } for name, n := range cfg.Neigh { @@ -569,29 +571,33 @@ func DirToCfg(src string) (*CfgJSON, error) { cfg.Notify = ¬ify } - self := NodeOurJSON{} - if self.Id, err = cfgDirLoadMust(src, "self", "id"); err != nil { - return nil, err - } - if self.ExchPub, err = cfgDirLoadMust(src, "self", "exchpub"); err != nil { - return nil, err - } - if self.ExchPrv, err = cfgDirLoadMust(src, "self", "exchprv"); err != nil { - return nil, err - } - if self.SignPub, err = cfgDirLoadMust(src, "self", "signpub"); err != nil { - return nil, err - } - if self.SignPrv, err = cfgDirLoadMust(src, "self", "signprv"); err != nil { - return nil, err - } - if self.NoisePub, err = cfgDirLoadMust(src, "self", "noisepub"); err != nil { - return nil, err - } - if self.NoisePrv, err = cfgDirLoadMust(src, "self", "noiseprv"); err != nil { + if _, err = ioutil.ReadDir(filepath.Join(src, "self")); err == nil { + self := NodeOurJSON{} + if self.Id, err = cfgDirLoadMust(src, "self", "id"); err != nil { + return nil, err + } + if self.ExchPub, err = cfgDirLoadMust(src, "self", "exchpub"); err != nil { + return nil, err + } + if self.ExchPrv, err = cfgDirLoadMust(src, "self", "exchprv"); err != nil { + return nil, err + } + if self.SignPub, err = cfgDirLoadMust(src, "self", "signpub"); err != nil { + return nil, err + } + if self.SignPrv, err = cfgDirLoadMust(src, "self", "signprv"); err != nil { + return nil, err + } + if self.NoisePub, err = cfgDirLoadMust(src, "self", "noisepub"); err != nil { + return nil, err + } + if self.NoisePrv, err = cfgDirLoadMust(src, "self", "noiseprv"); err != nil { + return nil, err + } + cfg.Self = &self + } else if !os.IsNotExist(err) { return nil, err } - cfg.Self = &self cfg.Neigh = make(map[string]NodeJSON) fis, err = ioutil.ReadDir(filepath.Join(src, "neigh"))