X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=blobdiff_plain;f=src%2Fcfgdir.go;fp=src%2Fcfgdir.go;h=fc36636c051990ef8e6e382992e6ebb7f094f332;hp=f9378c8b34c6abd94294a44fc4842f73c209e052;hb=a13dfe188901835b627b02e1fc25638f5c9f68d5;hpb=9edd0bca196b4a7722ee64c27a8a2864f0677ad8 diff --git a/src/cfgdir.go b/src/cfgdir.go index f9378c8..fc36636 100644 --- a/src/cfgdir.go +++ b/src/cfgdir.go @@ -260,6 +260,24 @@ func CfgToDir(dst string, cfg *CfgJSON) (err error) { } } + if n.ACK != nil { + if err = cfgDirMkdir(dst, "neigh", name, "ack"); err != nil { + return + } + if err = cfgDirSave( + n.ACK.MinSize, + dst, "neigh", name, "ack", "minsize", + ); err != nil { + return + } + if err = cfgDirSave( + n.ACK.Nice, + dst, "neigh", name, "ack", "nice", + ); err != nil { + return + } + } + if len(n.Via) > 0 { if err = cfgDirSave( strings.Join(n.Via, "\n"), @@ -372,6 +390,16 @@ func CfgToDir(dst string, cfg *CfgJSON) (err error) { return } } + if call.AutoTossNoACK { + if err = cfgDirTouch(dst, "neigh", name, "calls", is, "autotoss-noack"); err != nil { + return + } + } + if call.AutoTossGenACK { + if err = cfgDirTouch(dst, "neigh", name, "calls", is, "autotoss-gen-ack"); err != nil { + return + } + } } } @@ -689,6 +717,23 @@ func DirToCfg(src string) (*CfgJSON, error) { } } + if cfgDirExists(src, "neigh", n, "ack") { + node.ACK = &NodeACKJSON{} + i64, err := cfgDirLoadIntOpt(src, "neigh", n, "ack", "minsize") + if err != nil { + return nil, err + } + if i64 != nil { + i := uint64(*i64) + node.ACK.MinSize = &i + } + if node.ACK.Nice, err = cfgDirLoadOpt( + src, "neigh", n, "ack", "nice", + ); err != nil { + return nil, err + } + } + via, err := cfgDirLoadOpt(src, "neigh", n, "via") if err != nil { return nil, err @@ -856,6 +901,12 @@ func DirToCfg(src string) (*CfgJSON, error) { if cfgDirExists(src, "neigh", n, "calls", is, "autotoss-noarea") { call.AutoTossNoArea = true } + if cfgDirExists(src, "neigh", n, "calls", is, "autotoss-noack") { + call.AutoTossNoACK = true + } + if cfgDirExists(src, "neigh", n, "calls", is, "autotoss-gen-ack") { + call.AutoTossGenACK = true + } node.Calls = append(node.Calls, call) } cfg.Neigh[n] = node