FIXED:
* host splitter wasn't working quite correctly; this has been fixed.
This commit is contained in:
brent saner
2025-04-06 18:26:18 -04:00
parent fd344f3b8e
commit 3c1bc832c0
7 changed files with 221 additions and 90 deletions

View File

@@ -69,6 +69,9 @@ func main() {
return
}
case "net":
if err = validate.Struct(args.ExplicitNetwork.Network.Network); err != nil {
log.Panicln(err)
}
if origPfx, err = netip.ParsePrefix(args.ExplicitNetwork.Network.Network); err != nil {
log.Panicln(err)
}
@@ -82,6 +85,9 @@ func main() {
}
return
case "num-nets":
if err = validate.Struct(args.NumNets); err != nil {
log.Panicln(err)
}
if numNets, v6Only, err = netsplit.NumNets(
args.NumNets.Sizes.SubnetSize,
args.NumNets.Sizes.NetworkSize,
@@ -103,6 +109,9 @@ func main() {
}
return
case "reserved":
if err = validate.Struct(args.Check); err != nil {
log.Panicln(err)
}
if origPfx, err = netip.ParsePrefix(args.Check.Network.Network); err != nil {
log.Panicln(err)
}
@@ -123,6 +132,9 @@ func main() {
}
return
case "table":
if err = validate.Struct(args.Table); err != nil {
log.Panicln(err)
}
// Account for a weird redundant CLI condition.
if args.Table.NoIpv4 && args.Table.NoIpv6 {
args.Table.NoIpv6 = false
@@ -135,6 +147,9 @@ func main() {
os.Stdout.Write(buf.Bytes())
return
case "parse":
if err = validate.Struct(args.Parse); err != nil {
log.Panicln(err)
}
if strings.TrimSpace(args.Parse.InFile) == "-" {
buf = new(bytes.Buffer)
if _, err = io.Copy(buf, os.Stdin); err != nil {
@@ -186,9 +201,11 @@ func main() {
}
cmnArgs = args.SplitHost.common
splitter = &netsplit.HostSplitter{
NumberHosts: args.SplitHost.Hosts,
Strict: args.SplitHost.Strict,
BaseSplitter: new(netsplit.BaseSplitter),
InclNetAddr: args.SplitHost.InclNetAddr,
InclBcastAddr: args.SplitHost.InclBcastAddr,
NumberHosts: args.SplitHost.Hosts,
Strict: args.SplitHost.Strict,
BaseSplitter: new(netsplit.BaseSplitter),
}
noStrict = !args.SplitHost.Strict
strictErr = netsplit.ErrBadNumHosts