]> Cypherpunks.ru repositories - nncp.git/commitdiff
self section is optional in nncp-cfgdir
authorSergey Matveev <stargrave@stargrave.org>
Sat, 15 Jan 2022 21:40:25 +0000 (00:40 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sat, 15 Jan 2022 21:52:38 +0000 (00:52 +0300)
doc/news.ru.texi
doc/news.texi
src/cfgdir.go
src/nncp.go

index 5bf929b1e89afc1ea0271953c0ca925be51db4b2..6535196a5af45a4f79fe716d6bf23671827a1fe1 100644 (file)
@@ -1,6 +1,16 @@
 @node Новости
 @section Новости
 
 @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
 @node Релиз 8.0.2
 @subsection Релиз 8.0.2
 @itemize
index 2b04c63a1ab479f547c37d542ab01321b4f25517..4ea58f1dcea86f6e3f7c684d3b4e466a87e89c4b 100644 (file)
@@ -3,6 +3,16 @@
 
 See also this page @ref{Новости, on russian}.
 
 
 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
 @node Release 8_0_2
 @section Release 8.0.2
 @itemize
index afe7b40eadab34d16fd7f460aa176bb8181906af..a68699173cce1ffbe6f9856a30fb028e35e34cb5 100644 (file)
@@ -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 {
        }
 
        for name, n := range cfg.Neigh {
@@ -569,29 +571,33 @@ func DirToCfg(src string) (*CfgJSON, error) {
                cfg.Notify = &notify
        }
 
                cfg.Notify = &notify
        }
 
-       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
        }
                return nil, err
        }
-       cfg.Self = &self
 
        cfg.Neigh = make(map[string]NodeJSON)
        fis, err = ioutil.ReadDir(filepath.Join(src, "neigh"))
 
        cfg.Neigh = make(map[string]NodeJSON)
        fis, err = ioutil.ReadDir(filepath.Join(src, "neigh"))
index 1a8a229f2cba2e2e9bd994d6dd6ee70028fa1899..8362371ccf46fef16039d2ef1ad76ef7ee1c3038 100644 (file)
@@ -40,7 +40,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.`
 const Base32Encoded32Len = 52
 
 var (
 const Base32Encoded32Len = 52
 
 var (
-       Version string = "8.0.2"
+       Version string = "8.1.0"
 
        Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
 )
 
        Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
 )