]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/cypherpunks.ru/nncp/cmd/nncp-freq/main.go
Ability to override Via configuration option
[nncp.git] / src / cypherpunks.ru / nncp / cmd / nncp-freq / main.go
index 610853a3710627d0f328e5c332ea6666ae3a2fb9..18d93b64be32a83fedcce40aece9bf97b64e61b1 100644 (file)
@@ -39,15 +39,16 @@ func usage() {
 
 func main() {
        var (
-               cfgPath   = flag.String("cfg", nncp.DefaultCfgPath, "Path to configuration file")
-               niceRaw   = flag.Int("nice", nncp.DefaultNiceFreq, "Outbound packet niceness")
-               minSize   = flag.Uint64("minsize", 0, "Minimal required resulting packet size, in KiB")
-               spoolPath = flag.String("spool", "", "Override path to spool")
-               logPath   = flag.String("log", "", "Override path to logfile")
-               quiet     = flag.Bool("quiet", false, "Print only errors")
-               debug     = flag.Bool("debug", false, "Print debug messages")
-               version   = flag.Bool("version", false, "Print version information")
-               warranty  = flag.Bool("warranty", false, "Print warranty information")
+               cfgPath     = flag.String("cfg", nncp.DefaultCfgPath, "Path to configuration file")
+               niceRaw     = flag.Int("nice", nncp.DefaultNiceFreq, "Outbound packet niceness")
+               minSize     = flag.Uint64("minsize", 0, "Minimal required resulting packet size, in KiB")
+               viaOverride = flag.String("via", "", "Override Via path to destination node")
+               spoolPath   = flag.String("spool", "", "Override path to spool")
+               logPath     = flag.String("log", "", "Override path to logfile")
+               quiet       = flag.Bool("quiet", false, "Print only errors")
+               debug       = flag.Bool("debug", false, "Print debug messages")
+               version     = flag.Bool("version", false, "Print version information")
+               warranty    = flag.Bool("warranty", false, "Print warranty information")
        )
        flag.Usage = usage
        flag.Parse()
@@ -86,6 +87,18 @@ func main() {
                log.Fatalln("Invalid NODE specified:", err)
        }
 
+       if *viaOverride != "" {
+               vias := make([]*nncp.NodeId, 0, strings.Count(*viaOverride, ",")+1)
+               for _, via := range strings.Split(*viaOverride, ",") {
+                       foundNodeId, err := ctx.FindNode(via)
+                       if err != nil {
+                               log.Fatalln("Invalid Via node specified:", err)
+                       }
+                       vias = append(vias, foundNodeId.Id)
+               }
+               node.Via = vias
+       }
+
        var dst string
        if flag.NArg() == 2 {
                dst = flag.Arg(1)