From: Sergey Matveev Date: Sat, 15 Jan 2022 21:40:25 +0000 (+0300) Subject: self section is optional in nncp-cfgdir X-Git-Tag: v8.1.0^2~1 X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=commitdiff_plain;h=655146e4ee2bde72c9e8daa1361010fefe016df9 self section is optional in nncp-cfgdir --- diff --git a/doc/news.ru.texi b/doc/news.ru.texi index 5bf929b..6535196 100644 --- a/doc/news.ru.texi +++ b/doc/news.ru.texi @@ -1,6 +1,16 @@ @node Новости @section Новости +@node Релиз 8.1.0 +@subsection Релиз 8.1.0 +@itemize + +@item +@command{nncp-cfgdir} команда не требует обязательного наличия +@code{self} секции конфигурационного файла. + +@end itemize + @node Релиз 8.0.2 @subsection Релиз 8.0.2 @itemize diff --git a/doc/news.texi b/doc/news.texi index 2b04c63..4ea58f1 100644 --- a/doc/news.texi +++ b/doc/news.texi @@ -3,6 +3,16 @@ See also this page @ref{Новости, on russian}. +@node Release 8_1_0 +@section Release 8.1.0 +@itemize + +@item +@command{nncp-cfgdir} does not require @code{self} section existence in +configuration file. + +@end itemize + @node Release 8_0_2 @section Release 8.0.2 @itemize 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")) diff --git a/src/nncp.go b/src/nncp.go index 1a8a229..8362371 100644 --- a/src/nncp.go +++ b/src/nncp.go @@ -40,7 +40,7 @@ along with this program. If not, see .` const Base32Encoded32Len = 52 var ( - Version string = "8.0.2" + Version string = "8.1.0" Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding) )