From 0fa3200462faeb4c4b3c6f3ebd81c2bca6f2f93a Mon Sep 17 00:00:00 2001 From: motylkov Date: Fri, 11 Jul 2025 15:11:39 +0300 Subject: [PATCH 1/5] output update in jail --- cmd/jail.go | 98 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 34 deletions(-) diff --git a/cmd/jail.go b/cmd/jail.go index dedd1a4..fb7695c 100644 --- a/cmd/jail.go +++ b/cmd/jail.go @@ -29,18 +29,23 @@ var jailCreateCmd = &cobra.Command{ Mount: jailMount, } - if err := manager.Create(cfg); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - - result := map[string]interface{}{ + err := manager.Create(cfg) + if err != nil { + if e := internal.Output(map[string]interface{}{ + "error": err.Error(), + }); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return + } + if e := internal.Output(map[string]interface{}{ "jail_id": jailName, "status": "created", "ip": jailIP, - "network": "br-jails", // make dynamic ? - } - if err := internal.Output(result); err != nil { + "network": "br-jails", // todo: make dynamic ! + }); e != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -53,15 +58,20 @@ var jailStartCmd = &cobra.Command{ manager := jail.DefaultManager() if err := manager.Start(jailName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{ + "error": err.Error(), + }); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ + if err := internal.Output(map[string]interface{}{ "jail_id": jailName, "status": "started", - } - if err := internal.Output(result); err != nil { + }); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -74,15 +84,20 @@ var jailStopCmd = &cobra.Command{ manager := jail.DefaultManager() if err := manager.Stop(jailName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{ + "error": err.Error(), + }); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ + if err := internal.Output(map[string]interface{}{ "jail_id": jailName, "status": "stopped", - } - if err := internal.Output(result); err != nil { + }); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -95,15 +110,20 @@ var jailDestroyCmd = &cobra.Command{ manager := jail.DefaultManager() if err := manager.Destroy(jailName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{ + "error": err.Error(), + }); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ + if err := internal.Output(map[string]interface{}{ "jail_id": jailName, "status": "destroyed", - } - if err := internal.Output(result); err != nil { + }); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -117,15 +137,20 @@ var jailListCmd = &cobra.Command{ jails, err := manager.List() if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{ + "error": err.Error(), + }); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ + if err := internal.Output(map[string]interface{}{ "jails": jails, "count": len(jails), - } - if err := internal.Output(result); err != nil { + }); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -139,14 +164,19 @@ var jailInfoCmd = &cobra.Command{ info, err := manager.GetInfo(jailName) if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{ + "error": err.Error(), + }); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ + if err := internal.Output(map[string]interface{}{ "jail_info": info, - } - if err := internal.Output(result); err != nil { + }); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, From 18a3927a20a3890bbf53211440da5137edc92efb Mon Sep 17 00:00:00 2001 From: motylkov Date: Fri, 11 Jul 2025 15:23:37 +0300 Subject: [PATCH 2/5] output update in network, route and version --- cmd/network.go | 206 +++++++++++++++++++++++-------------------------- cmd/route.go | 42 ++++++++-- cmd/version.go | 14 +++- 3 files changed, 145 insertions(+), 117 deletions(-) diff --git a/cmd/network.go b/cmd/network.go index 58e444f..66a68b3 100644 --- a/cmd/network.go +++ b/cmd/network.go @@ -54,14 +54,14 @@ var ifaceCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.CreateInterface(ifName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ - "interface": ifName, - "status": "created", - } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"interface": ifName, "status": "created"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -73,14 +73,14 @@ var delIfaceCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.DeleteInterface(delIfaceName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "interface": delIfaceName, - "status": "deleted", + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"interface": delIfaceName, "status": "deleted"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -93,14 +93,14 @@ var bridgeCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.CreateBridge(bridgeName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "bridge": bridgeName, - "status": "created", + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"bridge": bridgeName, "status": "created"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -112,14 +112,14 @@ var delBridgeCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.DeleteBridge(delBridgeName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ - "bridge": delBridgeName, - "status": "deleted", - } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"bridge": delBridgeName, "status": "deleted"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -131,15 +131,14 @@ var addInterfaceToBridgeCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.AddInterfaceToBridge(bridgeInterfaceName, bridgeInterfaceToAdd); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ - "bridge": bridgeInterfaceName, - "interface": bridgeInterfaceToAdd, - "status": "added", - } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"bridge": bridgeInterfaceName, "interface": bridgeInterfaceToAdd, "status": "added"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -151,15 +150,14 @@ var removeInterfaceFromBridgeCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.RemoveInterfaceFromBridge(bridgeInterfaceName, bridgeInterfaceToRemove); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "bridge": bridgeInterfaceName, - "interface": bridgeInterfaceToRemove, - "status": "removed", + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"bridge": bridgeInterfaceName, "interface": bridgeInterfaceToRemove, "status": "removed"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -172,16 +170,14 @@ var vlanCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.CreateVLAN(vlanName, vlanParent, vlanID); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "vlan": vlanName, - "parent": vlanParent, - "vlan_id": vlanID, - "status": "created", + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"vlan": vlanName, "parent": vlanParent, "vlan_id": vlanID, "status": "created"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -193,14 +189,14 @@ var delVlanCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.DeleteVLAN(delVlanName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ - "vlan": delVlanName, - "status": "deleted", - } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"vlan": delVlanName, "status": "deleted"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -213,16 +209,14 @@ var greCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.CreateGRE(greName, greRemote, greLocal); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "gre": greName, - "remote": greRemote, - "local": greLocal, - "status": "created", + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"gre": greName, "remote": greRemote, "local": greLocal, "status": "created"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -234,14 +228,14 @@ var delGreCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.DeleteGRE(delGreName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "gre": delGreName, - "status": "deleted", + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"gre": delGreName, "status": "deleted"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -254,19 +248,14 @@ var vxlanCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.CreateVXLAN(vxlanName, vxlanLocal, vxlanRemote, vxlanGroup, vxlanDev, vxlanID); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ - "vxlan": vxlanName, - "local": vxlanLocal, - "remote": vxlanRemote, - "group": vxlanGroup, - "dev": vxlanDev, - "vni": vxlanID, - "status": "created", - } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"vxlan": vxlanName, "local": vxlanLocal, "remote": vxlanRemote, "group": vxlanGroup, "dev": vxlanDev, "vni": vxlanID, "status": "created"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -278,14 +267,14 @@ var delVxlanCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface manager := bareos.DefaultManager() if err := manager.DeleteVXLAN(delVxlanName); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - result := map[string]interface{}{ - "vxlan": delVxlanName, - "status": "deleted", - } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"vxlan": delVxlanName, "status": "deleted"}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -298,14 +287,14 @@ var networkListCmd = &cobra.Command{ manager := bareos.DefaultManager() interfaces, err := manager.List() if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "interfaces": interfaces, - "count": len(interfaces), + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"interfaces": interfaces, "count": len(interfaces)}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, @@ -318,13 +307,14 @@ var networkInfoCmd = &cobra.Command{ manager := bareos.DefaultManager() info, err := manager.GetInfo(ifName) if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - result := map[string]interface{}{ - "interface_info": info, + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return } - if err := internal.Output(result); err != nil { + if err := internal.Output(map[string]interface{}{"interface_info": info}); err != nil { + fmt.Fprintln(os.Stderr, err) os.Exit(1) } }, diff --git a/cmd/route.go b/cmd/route.go index e13109d..14fa6ab 100644 --- a/cmd/route.go +++ b/cmd/route.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + "FreeBSD-Command-manager/internal" + "github.com/spf13/cobra" ) @@ -23,17 +25,26 @@ var routeCmd = &cobra.Command{ var routeAddCmd = &cobra.Command{ Use: "add", Short: "Add a route", - Run: func(_ *cobra.Command, _ []string) { + Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface if routeNet == "" || routeGW == "" { - fmt.Fprintln(os.Stderr, "--net and --gw are required") - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": "--net and --gw are required"}); e != nil { + fmt.Fprintln(os.Stderr, e) + os.Exit(1) + } + return } err := bareos.AddRouteWithIface(routeFamily, routeNet, routeGW, routeIface) if err != nil { + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, e) + os.Exit(1) + } + return + } + if err := internal.Output(map[string]interface{}{"status": "Route added successfully"}); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } - fmt.Println("Route added successfully") }, } @@ -42,15 +53,24 @@ var routeDelCmd = &cobra.Command{ Short: "Delete a route", Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface if routeNet == "" { - fmt.Fprintln(os.Stderr, "--net is required") - os.Exit(1) + if e := internal.Output(map[string]interface{}{"error": "--net is required"}); e != nil { + fmt.Fprintln(os.Stderr, e) + os.Exit(1) + } + return } err := bareos.DelRoute(routeFamily, routeNet) if err != nil { + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, e) + os.Exit(1) + } + return + } + if err := internal.Output(map[string]interface{}{"status": "Route deleted successfully"}); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } - fmt.Println("Route deleted successfully") }, } @@ -60,10 +80,16 @@ var routeListCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface out, err := bareos.ListAllRoutes(routeFamily) if err != nil { + if e := internal.Output(map[string]interface{}{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, e) + os.Exit(1) + } + return + } + if err := internal.Output(map[string]interface{}{"routes": out}); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } - fmt.Print(out) }, } diff --git a/cmd/version.go b/cmd/version.go index 22d6b1b..8c1550c 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -1,7 +1,10 @@ package cmd import ( + "FreeBSD-Command-manager/internal" + "fmt" + "os" "github.com/spf13/cobra" ) @@ -18,7 +21,16 @@ var versionCmd = &cobra.Command{ Use: "version", Short: "Show version information", Run: func(cmd *cobra.Command, args []string) { //nolint:revive // cmd is required by cobra interface - fmt.Printf("%s.%s.%s.%s\n", Version, Commit, Built, Date) + err := internal.Output(map[string]interface{}{ + "version": Version, + "commit": Commit, + "built": Built, + "date": Date, + }) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } }, } From 83d110221ebe9c88ad9d0cd589014a67d0c113b9 Mon Sep 17 00:00:00 2001 From: motylkov Date: Fri, 11 Jul 2025 18:07:47 +0300 Subject: [PATCH 3/5] 1) updated route management 2) added the netstat parser 3) fixed data output --- cmd/route.go | 2 +- coverage.txt | 632 ++++++++++++++---------- internal/network/bareos/ip.go | 11 +- internal/network/bareos/manager_test.go | 55 ++- internal/network/bareos/route.go | 32 +- pkg/netstat/parser.go | 88 ++++ pkg/netstat/parser_test.go | 64 +++ 7 files changed, 571 insertions(+), 313 deletions(-) create mode 100644 pkg/netstat/parser.go create mode 100644 pkg/netstat/parser_test.go diff --git a/cmd/route.go b/cmd/route.go index 14fa6ab..4b0bc35 100644 --- a/cmd/route.go +++ b/cmd/route.go @@ -86,7 +86,7 @@ var routeListCmd = &cobra.Command{ } return } - if err := internal.Output(map[string]interface{}{"routes": out}); err != nil { + if err := internal.Output(map[string]interface{}{"routes": out, "count": len(out)}); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } diff --git a/coverage.txt b/coverage.txt index 137bff3..ffaae50 100644 --- a/coverage.txt +++ b/coverage.txt @@ -2,165 +2,300 @@ mode: atomic FreeBSD-Command-manager/internal/output.go:11.37,14.41 3 0 FreeBSD-Command-manager/internal/output.go:14.41,17.3 2 0 FreeBSD-Command-manager/internal/output.go:18.2,18.12 1 0 +FreeBSD-Command-manager/main.go:17.13,19.2 1 0 FreeBSD-Command-manager/cmd/cmd.go:18.33,23.38 5 0 FreeBSD-Command-manager/cmd/cmd.go:23.38,26.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:22.47,32.45 3 0 -FreeBSD-Command-manager/cmd/jail.go:32.45,35.4 2 0 -FreeBSD-Command-manager/cmd/jail.go:37.3,43.49 2 0 -FreeBSD-Command-manager/cmd/jail.go:43.49,45.4 1 0 -FreeBSD-Command-manager/cmd/jail.go:52.47,55.49 2 0 -FreeBSD-Command-manager/cmd/jail.go:55.49,58.4 2 0 -FreeBSD-Command-manager/cmd/jail.go:60.3,64.49 2 0 -FreeBSD-Command-manager/cmd/jail.go:64.49,66.4 1 0 -FreeBSD-Command-manager/cmd/jail.go:73.47,76.48 2 0 -FreeBSD-Command-manager/cmd/jail.go:76.48,79.4 2 0 -FreeBSD-Command-manager/cmd/jail.go:81.3,85.49 2 0 -FreeBSD-Command-manager/cmd/jail.go:85.49,87.4 1 0 -FreeBSD-Command-manager/cmd/jail.go:94.47,97.51 2 0 -FreeBSD-Command-manager/cmd/jail.go:97.51,100.4 2 0 -FreeBSD-Command-manager/cmd/jail.go:102.3,106.49 2 0 -FreeBSD-Command-manager/cmd/jail.go:106.49,108.4 1 0 -FreeBSD-Command-manager/cmd/jail.go:115.47,119.17 3 0 -FreeBSD-Command-manager/cmd/jail.go:119.17,122.4 2 0 -FreeBSD-Command-manager/cmd/jail.go:124.3,128.49 2 0 -FreeBSD-Command-manager/cmd/jail.go:128.49,130.4 1 0 -FreeBSD-Command-manager/cmd/jail.go:137.47,141.17 3 0 -FreeBSD-Command-manager/cmd/jail.go:141.17,144.4 2 0 -FreeBSD-Command-manager/cmd/jail.go:146.3,149.49 2 0 -FreeBSD-Command-manager/cmd/jail.go:149.49,151.4 1 0 -FreeBSD-Command-manager/cmd/jail.go:155.13,162.63 5 0 -FreeBSD-Command-manager/cmd/jail.go:162.63,165.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:166.2,166.63 1 0 -FreeBSD-Command-manager/cmd/jail.go:166.63,169.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:170.2,170.61 1 0 -FreeBSD-Command-manager/cmd/jail.go:170.61,173.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:176.2,178.62 2 0 -FreeBSD-Command-manager/cmd/jail.go:178.62,181.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:184.2,186.61 2 0 -FreeBSD-Command-manager/cmd/jail.go:186.61,189.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:192.2,194.64 2 0 -FreeBSD-Command-manager/cmd/jail.go:194.64,197.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:199.2,201.61 2 0 -FreeBSD-Command-manager/cmd/jail.go:201.61,204.3 2 0 -FreeBSD-Command-manager/cmd/jail.go:206.2,213.25 7 0 +FreeBSD-Command-manager/cmd/jail.go:22.47,33.17 4 0 +FreeBSD-Command-manager/cmd/jail.go:33.17,36.17 1 0 +FreeBSD-Command-manager/cmd/jail.go:36.17,39.5 2 0 +FreeBSD-Command-manager/cmd/jail.go:40.4,40.10 1 0 +FreeBSD-Command-manager/cmd/jail.go:42.3,47.16 1 0 +FreeBSD-Command-manager/cmd/jail.go:47.16,50.4 2 0 +FreeBSD-Command-manager/cmd/jail.go:57.47,60.49 2 0 +FreeBSD-Command-manager/cmd/jail.go:60.49,63.17 1 0 +FreeBSD-Command-manager/cmd/jail.go:63.17,66.5 2 0 +FreeBSD-Command-manager/cmd/jail.go:67.4,67.10 1 0 +FreeBSD-Command-manager/cmd/jail.go:70.3,73.18 1 0 +FreeBSD-Command-manager/cmd/jail.go:73.18,76.4 2 0 +FreeBSD-Command-manager/cmd/jail.go:83.47,86.48 2 0 +FreeBSD-Command-manager/cmd/jail.go:86.48,89.17 1 0 +FreeBSD-Command-manager/cmd/jail.go:89.17,92.5 2 0 +FreeBSD-Command-manager/cmd/jail.go:93.4,93.10 1 0 +FreeBSD-Command-manager/cmd/jail.go:96.3,99.18 1 0 +FreeBSD-Command-manager/cmd/jail.go:99.18,102.4 2 0 +FreeBSD-Command-manager/cmd/jail.go:109.47,112.51 2 0 +FreeBSD-Command-manager/cmd/jail.go:112.51,115.17 1 0 +FreeBSD-Command-manager/cmd/jail.go:115.17,118.5 2 0 +FreeBSD-Command-manager/cmd/jail.go:119.4,119.10 1 0 +FreeBSD-Command-manager/cmd/jail.go:122.3,125.18 1 0 +FreeBSD-Command-manager/cmd/jail.go:125.18,128.4 2 0 +FreeBSD-Command-manager/cmd/jail.go:135.47,139.17 3 0 +FreeBSD-Command-manager/cmd/jail.go:139.17,142.17 1 0 +FreeBSD-Command-manager/cmd/jail.go:142.17,145.5 2 0 +FreeBSD-Command-manager/cmd/jail.go:146.4,146.10 1 0 +FreeBSD-Command-manager/cmd/jail.go:149.3,152.18 1 0 +FreeBSD-Command-manager/cmd/jail.go:152.18,155.4 2 0 +FreeBSD-Command-manager/cmd/jail.go:162.47,166.17 3 0 +FreeBSD-Command-manager/cmd/jail.go:166.17,169.17 1 0 +FreeBSD-Command-manager/cmd/jail.go:169.17,172.5 2 0 +FreeBSD-Command-manager/cmd/jail.go:173.4,173.10 1 0 +FreeBSD-Command-manager/cmd/jail.go:176.3,178.18 1 0 +FreeBSD-Command-manager/cmd/jail.go:178.18,181.4 2 0 +FreeBSD-Command-manager/cmd/jail.go:185.13,192.63 5 0 +FreeBSD-Command-manager/cmd/jail.go:192.63,195.3 2 0 +FreeBSD-Command-manager/cmd/jail.go:196.2,196.63 1 0 +FreeBSD-Command-manager/cmd/jail.go:196.63,199.3 2 0 +FreeBSD-Command-manager/cmd/jail.go:200.2,200.61 1 0 +FreeBSD-Command-manager/cmd/jail.go:200.61,203.3 2 0 +FreeBSD-Command-manager/cmd/jail.go:206.2,208.62 2 0 +FreeBSD-Command-manager/cmd/jail.go:208.62,211.3 2 0 +FreeBSD-Command-manager/cmd/jail.go:214.2,216.61 2 0 +FreeBSD-Command-manager/cmd/jail.go:216.61,219.3 2 0 +FreeBSD-Command-manager/cmd/jail.go:222.2,224.64 2 0 +FreeBSD-Command-manager/cmd/jail.go:224.64,227.3 2 0 +FreeBSD-Command-manager/cmd/jail.go:229.2,231.61 2 0 +FreeBSD-Command-manager/cmd/jail.go:231.61,234.3 2 0 +FreeBSD-Command-manager/cmd/jail.go:236.2,243.25 7 0 FreeBSD-Command-manager/cmd/network.go:54.47,56.57 2 0 -FreeBSD-Command-manager/cmd/network.go:56.57,59.4 2 0 -FreeBSD-Command-manager/cmd/network.go:60.3,64.49 2 0 -FreeBSD-Command-manager/cmd/network.go:64.49,66.4 1 0 +FreeBSD-Command-manager/cmd/network.go:56.57,57.84 1 0 +FreeBSD-Command-manager/cmd/network.go:57.84,60.5 2 0 +FreeBSD-Command-manager/cmd/network.go:61.4,61.10 1 0 +FreeBSD-Command-manager/cmd/network.go:63.3,63.107 1 0 +FreeBSD-Command-manager/cmd/network.go:63.107,66.4 2 0 FreeBSD-Command-manager/cmd/network.go:73.47,75.63 2 0 -FreeBSD-Command-manager/cmd/network.go:75.63,78.4 2 0 -FreeBSD-Command-manager/cmd/network.go:79.3,83.49 2 0 -FreeBSD-Command-manager/cmd/network.go:83.49,85.4 1 0 +FreeBSD-Command-manager/cmd/network.go:75.63,76.84 1 0 +FreeBSD-Command-manager/cmd/network.go:76.84,79.5 2 0 +FreeBSD-Command-manager/cmd/network.go:80.4,80.10 1 0 +FreeBSD-Command-manager/cmd/network.go:82.3,82.113 1 0 +FreeBSD-Command-manager/cmd/network.go:82.113,85.4 2 0 FreeBSD-Command-manager/cmd/network.go:93.47,95.58 2 0 -FreeBSD-Command-manager/cmd/network.go:95.58,98.4 2 0 -FreeBSD-Command-manager/cmd/network.go:99.3,103.49 2 0 -FreeBSD-Command-manager/cmd/network.go:103.49,105.4 1 0 +FreeBSD-Command-manager/cmd/network.go:95.58,96.84 1 0 +FreeBSD-Command-manager/cmd/network.go:96.84,99.5 2 0 +FreeBSD-Command-manager/cmd/network.go:100.4,100.10 1 0 +FreeBSD-Command-manager/cmd/network.go:102.3,102.108 1 0 +FreeBSD-Command-manager/cmd/network.go:102.108,105.4 2 0 FreeBSD-Command-manager/cmd/network.go:112.47,114.61 2 0 -FreeBSD-Command-manager/cmd/network.go:114.61,117.4 2 0 -FreeBSD-Command-manager/cmd/network.go:118.3,122.49 2 0 -FreeBSD-Command-manager/cmd/network.go:122.49,124.4 1 0 +FreeBSD-Command-manager/cmd/network.go:114.61,115.84 1 0 +FreeBSD-Command-manager/cmd/network.go:115.84,118.5 2 0 +FreeBSD-Command-manager/cmd/network.go:119.4,119.10 1 0 +FreeBSD-Command-manager/cmd/network.go:121.3,121.111 1 0 +FreeBSD-Command-manager/cmd/network.go:121.111,124.4 2 0 FreeBSD-Command-manager/cmd/network.go:131.47,133.97 2 0 -FreeBSD-Command-manager/cmd/network.go:133.97,136.4 2 0 -FreeBSD-Command-manager/cmd/network.go:137.3,142.49 2 0 -FreeBSD-Command-manager/cmd/network.go:142.49,144.4 1 0 -FreeBSD-Command-manager/cmd/network.go:151.47,153.105 2 0 -FreeBSD-Command-manager/cmd/network.go:153.105,156.4 2 0 -FreeBSD-Command-manager/cmd/network.go:157.3,162.49 2 0 -FreeBSD-Command-manager/cmd/network.go:162.49,164.4 1 0 -FreeBSD-Command-manager/cmd/network.go:172.47,174.74 2 0 -FreeBSD-Command-manager/cmd/network.go:174.74,177.4 2 0 -FreeBSD-Command-manager/cmd/network.go:178.3,184.49 2 0 -FreeBSD-Command-manager/cmd/network.go:184.49,186.4 1 0 -FreeBSD-Command-manager/cmd/network.go:193.47,195.57 2 0 -FreeBSD-Command-manager/cmd/network.go:195.57,198.4 2 0 -FreeBSD-Command-manager/cmd/network.go:199.3,203.49 2 0 -FreeBSD-Command-manager/cmd/network.go:203.49,205.4 1 0 -FreeBSD-Command-manager/cmd/network.go:213.47,215.73 2 0 -FreeBSD-Command-manager/cmd/network.go:215.73,218.4 2 0 -FreeBSD-Command-manager/cmd/network.go:219.3,225.49 2 0 -FreeBSD-Command-manager/cmd/network.go:225.49,227.4 1 0 -FreeBSD-Command-manager/cmd/network.go:234.47,236.55 2 0 -FreeBSD-Command-manager/cmd/network.go:236.55,239.4 2 0 -FreeBSD-Command-manager/cmd/network.go:240.3,244.49 2 0 -FreeBSD-Command-manager/cmd/network.go:244.49,246.4 1 0 -FreeBSD-Command-manager/cmd/network.go:254.47,256.112 2 0 -FreeBSD-Command-manager/cmd/network.go:256.112,259.4 2 0 -FreeBSD-Command-manager/cmd/network.go:260.3,269.49 2 0 -FreeBSD-Command-manager/cmd/network.go:269.49,271.4 1 0 -FreeBSD-Command-manager/cmd/network.go:278.47,280.59 2 0 -FreeBSD-Command-manager/cmd/network.go:280.59,283.4 2 0 -FreeBSD-Command-manager/cmd/network.go:284.3,288.49 2 0 -FreeBSD-Command-manager/cmd/network.go:288.49,290.4 1 0 -FreeBSD-Command-manager/cmd/network.go:297.47,300.17 3 0 -FreeBSD-Command-manager/cmd/network.go:300.17,303.4 2 0 -FreeBSD-Command-manager/cmd/network.go:304.3,308.49 2 0 -FreeBSD-Command-manager/cmd/network.go:308.49,310.4 1 0 -FreeBSD-Command-manager/cmd/network.go:317.47,320.17 3 0 -FreeBSD-Command-manager/cmd/network.go:320.17,323.4 2 0 -FreeBSD-Command-manager/cmd/network.go:324.3,327.49 2 0 -FreeBSD-Command-manager/cmd/network.go:327.49,329.4 1 0 -FreeBSD-Command-manager/cmd/network.go:333.13,337.58 3 0 -FreeBSD-Command-manager/cmd/network.go:337.58,340.3 2 0 -FreeBSD-Command-manager/cmd/network.go:342.2,344.61 3 0 -FreeBSD-Command-manager/cmd/network.go:344.61,347.3 2 0 -FreeBSD-Command-manager/cmd/network.go:350.2,352.59 3 0 -FreeBSD-Command-manager/cmd/network.go:352.59,355.3 2 0 -FreeBSD-Command-manager/cmd/network.go:357.2,359.62 3 0 -FreeBSD-Command-manager/cmd/network.go:359.62,362.3 2 0 -FreeBSD-Command-manager/cmd/network.go:364.2,367.75 4 0 -FreeBSD-Command-manager/cmd/network.go:367.75,370.3 2 0 -FreeBSD-Command-manager/cmd/network.go:371.2,371.78 1 0 -FreeBSD-Command-manager/cmd/network.go:371.78,374.3 2 0 -FreeBSD-Command-manager/cmd/network.go:376.2,379.80 4 0 -FreeBSD-Command-manager/cmd/network.go:379.80,382.3 2 0 -FreeBSD-Command-manager/cmd/network.go:383.2,383.83 1 0 -FreeBSD-Command-manager/cmd/network.go:383.83,386.3 2 0 -FreeBSD-Command-manager/cmd/network.go:389.2,393.57 5 0 -FreeBSD-Command-manager/cmd/network.go:393.57,396.3 2 0 -FreeBSD-Command-manager/cmd/network.go:397.2,397.59 1 0 -FreeBSD-Command-manager/cmd/network.go:397.59,400.3 2 0 -FreeBSD-Command-manager/cmd/network.go:401.2,401.55 1 0 -FreeBSD-Command-manager/cmd/network.go:401.55,404.3 2 0 -FreeBSD-Command-manager/cmd/network.go:406.2,408.60 3 0 -FreeBSD-Command-manager/cmd/network.go:408.60,411.3 2 0 -FreeBSD-Command-manager/cmd/network.go:414.2,418.56 5 0 -FreeBSD-Command-manager/cmd/network.go:418.56,421.3 2 0 -FreeBSD-Command-manager/cmd/network.go:422.2,422.57 1 0 -FreeBSD-Command-manager/cmd/network.go:422.57,425.3 2 0 -FreeBSD-Command-manager/cmd/network.go:426.2,426.58 1 0 -FreeBSD-Command-manager/cmd/network.go:426.58,429.3 2 0 -FreeBSD-Command-manager/cmd/network.go:431.2,433.59 3 0 -FreeBSD-Command-manager/cmd/network.go:433.59,436.3 2 0 -FreeBSD-Command-manager/cmd/network.go:439.2,446.58 8 0 -FreeBSD-Command-manager/cmd/network.go:446.58,449.3 2 0 -FreeBSD-Command-manager/cmd/network.go:450.2,450.59 1 0 -FreeBSD-Command-manager/cmd/network.go:450.59,453.3 2 0 -FreeBSD-Command-manager/cmd/network.go:454.2,454.60 1 0 -FreeBSD-Command-manager/cmd/network.go:454.60,457.3 2 0 -FreeBSD-Command-manager/cmd/network.go:458.2,458.57 1 0 -FreeBSD-Command-manager/cmd/network.go:458.57,461.3 2 0 -FreeBSD-Command-manager/cmd/network.go:463.2,465.61 3 0 -FreeBSD-Command-manager/cmd/network.go:465.61,468.3 2 0 -FreeBSD-Command-manager/cmd/network.go:471.2,475.64 4 0 -FreeBSD-Command-manager/cmd/network.go:475.64,478.3 2 0 -FreeBSD-Command-manager/cmd/network.go:480.2,482.28 2 0 -FreeBSD-Command-manager/cmd/route.go:25.47,26.38 1 0 -FreeBSD-Command-manager/cmd/route.go:26.38,29.4 2 0 -FreeBSD-Command-manager/cmd/route.go:30.3,31.17 2 0 -FreeBSD-Command-manager/cmd/route.go:31.17,34.4 2 0 -FreeBSD-Command-manager/cmd/route.go:35.3,35.42 1 0 -FreeBSD-Command-manager/cmd/route.go:42.47,43.21 1 0 -FreeBSD-Command-manager/cmd/route.go:43.21,46.4 2 0 -FreeBSD-Command-manager/cmd/route.go:47.3,48.17 2 0 -FreeBSD-Command-manager/cmd/route.go:48.17,51.4 2 0 -FreeBSD-Command-manager/cmd/route.go:52.3,52.44 1 0 -FreeBSD-Command-manager/cmd/route.go:59.47,61.17 2 0 -FreeBSD-Command-manager/cmd/route.go:61.17,64.4 2 0 -FreeBSD-Command-manager/cmd/route.go:65.3,65.17 1 0 -FreeBSD-Command-manager/cmd/route.go:69.13,84.2 10 0 -FreeBSD-Command-manager/cmd/version.go:20.47,22.3 1 0 -FreeBSD-Command-manager/cmd/version.go:25.13,27.2 1 0 -FreeBSD-Command-manager/main.go:17.13,19.2 1 0 +FreeBSD-Command-manager/cmd/network.go:133.97,134.84 1 0 +FreeBSD-Command-manager/cmd/network.go:134.84,137.5 2 0 +FreeBSD-Command-manager/cmd/network.go:138.4,138.10 1 0 +FreeBSD-Command-manager/cmd/network.go:140.3,140.150 1 0 +FreeBSD-Command-manager/cmd/network.go:140.150,143.4 2 0 +FreeBSD-Command-manager/cmd/network.go:150.47,152.105 2 0 +FreeBSD-Command-manager/cmd/network.go:152.105,153.84 1 0 +FreeBSD-Command-manager/cmd/network.go:153.84,156.5 2 0 +FreeBSD-Command-manager/cmd/network.go:157.4,157.10 1 0 +FreeBSD-Command-manager/cmd/network.go:159.3,159.155 1 0 +FreeBSD-Command-manager/cmd/network.go:159.155,162.4 2 0 +FreeBSD-Command-manager/cmd/network.go:170.47,172.74 2 0 +FreeBSD-Command-manager/cmd/network.go:172.74,173.84 1 0 +FreeBSD-Command-manager/cmd/network.go:173.84,176.5 2 0 +FreeBSD-Command-manager/cmd/network.go:177.4,177.10 1 0 +FreeBSD-Command-manager/cmd/network.go:179.3,179.145 1 0 +FreeBSD-Command-manager/cmd/network.go:179.145,182.4 2 0 +FreeBSD-Command-manager/cmd/network.go:189.47,191.57 2 0 +FreeBSD-Command-manager/cmd/network.go:191.57,192.84 1 0 +FreeBSD-Command-manager/cmd/network.go:192.84,195.5 2 0 +FreeBSD-Command-manager/cmd/network.go:196.4,196.10 1 0 +FreeBSD-Command-manager/cmd/network.go:198.3,198.107 1 0 +FreeBSD-Command-manager/cmd/network.go:198.107,201.4 2 0 +FreeBSD-Command-manager/cmd/network.go:209.47,211.73 2 0 +FreeBSD-Command-manager/cmd/network.go:211.73,212.84 1 0 +FreeBSD-Command-manager/cmd/network.go:212.84,215.5 2 0 +FreeBSD-Command-manager/cmd/network.go:216.4,216.10 1 0 +FreeBSD-Command-manager/cmd/network.go:218.3,218.142 1 0 +FreeBSD-Command-manager/cmd/network.go:218.142,221.4 2 0 +FreeBSD-Command-manager/cmd/network.go:228.47,230.55 2 0 +FreeBSD-Command-manager/cmd/network.go:230.55,231.84 1 0 +FreeBSD-Command-manager/cmd/network.go:231.84,234.5 2 0 +FreeBSD-Command-manager/cmd/network.go:235.4,235.10 1 0 +FreeBSD-Command-manager/cmd/network.go:237.3,237.105 1 0 +FreeBSD-Command-manager/cmd/network.go:237.105,240.4 2 0 +FreeBSD-Command-manager/cmd/network.go:248.47,250.112 2 0 +FreeBSD-Command-manager/cmd/network.go:250.112,251.84 1 0 +FreeBSD-Command-manager/cmd/network.go:251.84,254.5 2 0 +FreeBSD-Command-manager/cmd/network.go:255.4,255.10 1 0 +FreeBSD-Command-manager/cmd/network.go:257.3,257.204 1 0 +FreeBSD-Command-manager/cmd/network.go:257.204,260.4 2 0 +FreeBSD-Command-manager/cmd/network.go:267.47,269.59 2 0 +FreeBSD-Command-manager/cmd/network.go:269.59,270.84 1 0 +FreeBSD-Command-manager/cmd/network.go:270.84,273.5 2 0 +FreeBSD-Command-manager/cmd/network.go:274.4,274.10 1 0 +FreeBSD-Command-manager/cmd/network.go:276.3,276.109 1 0 +FreeBSD-Command-manager/cmd/network.go:276.109,279.4 2 0 +FreeBSD-Command-manager/cmd/network.go:286.47,289.17 3 0 +FreeBSD-Command-manager/cmd/network.go:289.17,290.84 1 0 +FreeBSD-Command-manager/cmd/network.go:290.84,293.5 2 0 +FreeBSD-Command-manager/cmd/network.go:294.4,294.10 1 0 +FreeBSD-Command-manager/cmd/network.go:296.3,296.117 1 0 +FreeBSD-Command-manager/cmd/network.go:296.117,299.4 2 0 +FreeBSD-Command-manager/cmd/network.go:306.47,309.17 3 0 +FreeBSD-Command-manager/cmd/network.go:309.17,310.84 1 0 +FreeBSD-Command-manager/cmd/network.go:310.84,313.5 2 0 +FreeBSD-Command-manager/cmd/network.go:314.4,314.10 1 0 +FreeBSD-Command-manager/cmd/network.go:316.3,316.89 1 0 +FreeBSD-Command-manager/cmd/network.go:316.89,319.4 2 0 +FreeBSD-Command-manager/cmd/network.go:323.13,327.58 3 0 +FreeBSD-Command-manager/cmd/network.go:327.58,330.3 2 0 +FreeBSD-Command-manager/cmd/network.go:332.2,334.61 3 0 +FreeBSD-Command-manager/cmd/network.go:334.61,337.3 2 0 +FreeBSD-Command-manager/cmd/network.go:340.2,342.59 3 0 +FreeBSD-Command-manager/cmd/network.go:342.59,345.3 2 0 +FreeBSD-Command-manager/cmd/network.go:347.2,349.62 3 0 +FreeBSD-Command-manager/cmd/network.go:349.62,352.3 2 0 +FreeBSD-Command-manager/cmd/network.go:354.2,357.75 4 0 +FreeBSD-Command-manager/cmd/network.go:357.75,360.3 2 0 +FreeBSD-Command-manager/cmd/network.go:361.2,361.78 1 0 +FreeBSD-Command-manager/cmd/network.go:361.78,364.3 2 0 +FreeBSD-Command-manager/cmd/network.go:366.2,369.80 4 0 +FreeBSD-Command-manager/cmd/network.go:369.80,372.3 2 0 +FreeBSD-Command-manager/cmd/network.go:373.2,373.83 1 0 +FreeBSD-Command-manager/cmd/network.go:373.83,376.3 2 0 +FreeBSD-Command-manager/cmd/network.go:379.2,383.57 5 0 +FreeBSD-Command-manager/cmd/network.go:383.57,386.3 2 0 +FreeBSD-Command-manager/cmd/network.go:387.2,387.59 1 0 +FreeBSD-Command-manager/cmd/network.go:387.59,390.3 2 0 +FreeBSD-Command-manager/cmd/network.go:391.2,391.55 1 0 +FreeBSD-Command-manager/cmd/network.go:391.55,394.3 2 0 +FreeBSD-Command-manager/cmd/network.go:396.2,398.60 3 0 +FreeBSD-Command-manager/cmd/network.go:398.60,401.3 2 0 +FreeBSD-Command-manager/cmd/network.go:404.2,408.56 5 0 +FreeBSD-Command-manager/cmd/network.go:408.56,411.3 2 0 +FreeBSD-Command-manager/cmd/network.go:412.2,412.57 1 0 +FreeBSD-Command-manager/cmd/network.go:412.57,415.3 2 0 +FreeBSD-Command-manager/cmd/network.go:416.2,416.58 1 0 +FreeBSD-Command-manager/cmd/network.go:416.58,419.3 2 0 +FreeBSD-Command-manager/cmd/network.go:421.2,423.59 3 0 +FreeBSD-Command-manager/cmd/network.go:423.59,426.3 2 0 +FreeBSD-Command-manager/cmd/network.go:429.2,436.58 8 0 +FreeBSD-Command-manager/cmd/network.go:436.58,439.3 2 0 +FreeBSD-Command-manager/cmd/network.go:440.2,440.59 1 0 +FreeBSD-Command-manager/cmd/network.go:440.59,443.3 2 0 +FreeBSD-Command-manager/cmd/network.go:444.2,444.60 1 0 +FreeBSD-Command-manager/cmd/network.go:444.60,447.3 2 0 +FreeBSD-Command-manager/cmd/network.go:448.2,448.57 1 0 +FreeBSD-Command-manager/cmd/network.go:448.57,451.3 2 0 +FreeBSD-Command-manager/cmd/network.go:453.2,455.61 3 0 +FreeBSD-Command-manager/cmd/network.go:455.61,458.3 2 0 +FreeBSD-Command-manager/cmd/network.go:461.2,465.64 4 0 +FreeBSD-Command-manager/cmd/network.go:465.64,468.3 2 0 +FreeBSD-Command-manager/cmd/network.go:470.2,472.28 2 0 +FreeBSD-Command-manager/cmd/route.go:28.47,29.38 1 0 +FreeBSD-Command-manager/cmd/route.go:29.38,30.102 1 0 +FreeBSD-Command-manager/cmd/route.go:30.102,33.5 2 0 +FreeBSD-Command-manager/cmd/route.go:34.4,34.10 1 0 +FreeBSD-Command-manager/cmd/route.go:36.3,37.17 2 0 +FreeBSD-Command-manager/cmd/route.go:37.17,38.84 1 0 +FreeBSD-Command-manager/cmd/route.go:38.84,41.5 2 0 +FreeBSD-Command-manager/cmd/route.go:42.4,42.10 1 0 +FreeBSD-Command-manager/cmd/route.go:44.3,44.103 1 0 +FreeBSD-Command-manager/cmd/route.go:44.103,47.4 2 0 +FreeBSD-Command-manager/cmd/route.go:54.47,55.21 1 0 +FreeBSD-Command-manager/cmd/route.go:55.21,56.92 1 0 +FreeBSD-Command-manager/cmd/route.go:56.92,59.5 2 0 +FreeBSD-Command-manager/cmd/route.go:60.4,60.10 1 0 +FreeBSD-Command-manager/cmd/route.go:62.3,63.17 2 0 +FreeBSD-Command-manager/cmd/route.go:63.17,64.84 1 0 +FreeBSD-Command-manager/cmd/route.go:64.84,67.5 2 0 +FreeBSD-Command-manager/cmd/route.go:68.4,68.10 1 0 +FreeBSD-Command-manager/cmd/route.go:70.3,70.105 1 0 +FreeBSD-Command-manager/cmd/route.go:70.105,73.4 2 0 +FreeBSD-Command-manager/cmd/route.go:80.47,82.17 2 0 +FreeBSD-Command-manager/cmd/route.go:82.17,83.84 1 0 +FreeBSD-Command-manager/cmd/route.go:83.84,86.5 2 0 +FreeBSD-Command-manager/cmd/route.go:87.4,87.10 1 0 +FreeBSD-Command-manager/cmd/route.go:89.3,89.80 1 0 +FreeBSD-Command-manager/cmd/route.go:89.80,92.4 2 0 +FreeBSD-Command-manager/cmd/route.go:96.13,112.2 11 0 +FreeBSD-Command-manager/cmd/version.go:23.47,30.17 2 0 +FreeBSD-Command-manager/cmd/version.go:30.17,33.4 2 0 +FreeBSD-Command-manager/cmd/version.go:37.13,39.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:54.102,59.2 1 15 +FreeBSD-Command-manager/internal/jail/manager.go:62.55,64.54 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:64.54,66.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:69.2,69.57 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:69.57,71.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:74.2,74.21 1 3 +FreeBSD-Command-manager/internal/jail/manager.go:74.21,75.64 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:75.64,77.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:81.2,87.16 2 3 +FreeBSD-Command-manager/internal/jail/manager.go:87.16,89.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:91.2,91.12 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:95.55,96.16 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:96.16,98.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:100.2,101.16 2 3 +FreeBSD-Command-manager/internal/jail/manager.go:101.16,103.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:105.2,105.12 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:109.54,110.16 1 8 +FreeBSD-Command-manager/internal/jail/manager.go:110.16,112.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:114.2,115.16 2 7 +FreeBSD-Command-manager/internal/jail/manager.go:115.16,117.3 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:119.2,119.12 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:123.57,124.16 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:124.16,126.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:129.2,129.37 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:129.37,132.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:135.2,136.16 2 4 +FreeBSD-Command-manager/internal/jail/manager.go:136.16,138.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:140.2,140.12 1 3 +FreeBSD-Command-manager/internal/jail/manager.go:144.61,146.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:146.16,148.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:149.2,150.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:150.16,152.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:153.2,153.19 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:157.74,158.16 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:158.16,160.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:161.2,162.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:162.16,164.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:165.2,166.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:166.16,168.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:169.2,169.29 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:169.29,170.24 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:170.24,172.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:174.2,174.51 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:181.56,183.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:186.63,187.49 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:187.49,188.72 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:188.72,190.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:192.2,192.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:196.68,198.50 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:198.50,200.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:201.2,201.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:205.62,207.50 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:207.50,209.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:210.2,210.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:217.52,219.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:222.84,225.16 3 0 +FreeBSD-Command-manager/internal/jail/manager.go:225.16,227.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:228.2,228.28 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:232.31,236.2 3 0 +FreeBSD-Command-manager/internal/jail/testing.go:30.63,34.2 3 4 +FreeBSD-Command-manager/internal/jail/testing.go:37.68,42.2 4 0 +FreeBSD-Command-manager/internal/jail/testing.go:45.62,49.2 3 0 +FreeBSD-Command-manager/internal/jail/testing.go:61.84,66.2 4 11 +FreeBSD-Command-manager/internal/jail/testing.go:78.86,83.19 3 6 +FreeBSD-Command-manager/internal/jail/testing.go:83.19,85.3 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:86.2,89.42 2 6 +FreeBSD-Command-manager/internal/jail/testing.go:89.42,90.18 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:91.15,92.38 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:93.18,94.47 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:95.16,96.30 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:97.17,98.30 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:99.15,100.37 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:101.15,102.34 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:103.13,104.23 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:104.23,106.5 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:108.4,108.24 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:108.24,110.5 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:111.4,111.47 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:116.2,116.50 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:120.83,122.2 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:125.31,129.2 3 1 FreeBSD-Command-manager/internal/network/bareos/basic.go:9.54,10.16 1 3 FreeBSD-Command-manager/internal/network/bareos/basic.go:10.16,12.3 1 1 FreeBSD-Command-manager/internal/network/bareos/basic.go:14.2,15.16 2 2 @@ -260,29 +395,36 @@ FreeBSD-Command-manager/internal/network/bareos/route.go:28.15,30.3 1 0 FreeBSD-Command-manager/internal/network/bareos/route.go:31.2,33.16 3 2 FreeBSD-Command-manager/internal/network/bareos/route.go:33.16,35.3 1 1 FreeBSD-Command-manager/internal/network/bareos/route.go:36.2,36.12 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:41.45,43.15 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:43.15,45.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:46.2,46.26 1 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:46.26,48.17 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:48.17,50.4 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:51.3,51.17 1 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:51.17,53.4 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:55.2,57.16 3 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:57.16,59.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:60.2,60.12 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:64.51,65.18 1 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:65.18,67.3 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:68.2,69.16 2 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:69.16,71.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:72.2,73.16 2 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:73.16,75.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:76.2,76.75 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:80.53,82.16 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:82.16,84.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:85.2,86.48 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:86.48,88.48 2 5 -FreeBSD-Command-manager/internal/network/bareos/route.go:88.48,90.4 1 3 -FreeBSD-Command-manager/internal/network/bareos/route.go:92.2,92.19 1 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:40.65,42.15 2 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:42.15,44.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:45.2,46.17 2 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:46.17,48.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:49.2,51.16 3 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:51.16,53.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:54.2,54.12 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:59.45,61.15 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:61.15,63.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:64.2,64.26 1 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:64.26,66.17 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:66.17,68.4 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:69.3,69.17 1 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:69.17,71.4 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:73.2,75.16 3 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:75.16,77.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:78.2,78.12 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:82.51,83.18 1 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:83.18,85.3 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:86.2,87.16 2 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:87.16,89.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:90.2,91.16 2 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:91.16,93.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:94.2,94.75 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:98.53,100.16 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:100.16,102.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:103.2,104.48 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:104.48,106.48 2 5 +FreeBSD-Command-manager/internal/network/bareos/route.go:106.48,108.4 1 3 +FreeBSD-Command-manager/internal/network/bareos/route.go:110.2,110.19 1 2 FreeBSD-Command-manager/internal/network/bareos/testing.go:11.52,17.2 1 41 FreeBSD-Command-manager/internal/network/bareos/testing.go:20.84,23.27 2 44 FreeBSD-Command-manager/internal/network/bareos/testing.go:23.27,25.3 1 122 @@ -341,101 +483,6 @@ FreeBSD-Command-manager/internal/network/bareos/vxlan.go:66.2,66.12 1 3 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:70.50,71.16 1 2 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:71.16,73.3 1 1 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:75.2,75.32 1 1 -FreeBSD-Command-manager/pkg/jail/parser.go:19.51,23.21 4 3 -FreeBSD-Command-manager/pkg/jail/parser.go:23.21,25.24 2 8 -FreeBSD-Command-manager/pkg/jail/parser.go:25.24,27.12 2 2 -FreeBSD-Command-manager/pkg/jail/parser.go:29.3,30.34 2 6 -FreeBSD-Command-manager/pkg/jail/parser.go:30.34,31.12 1 1 -FreeBSD-Command-manager/pkg/jail/parser.go:33.3,34.29 2 5 -FreeBSD-Command-manager/pkg/jail/parser.go:34.29,35.13 1 25 -FreeBSD-Command-manager/pkg/jail/parser.go:36.16,37.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:38.17,39.28 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:40.20,41.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:42.20,43.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:44.16,45.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:48.3,48.30 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:50.2,50.19 1 3 -FreeBSD-Command-manager/internal/jail/manager.go:54.102,59.2 1 15 -FreeBSD-Command-manager/internal/jail/manager.go:62.55,64.54 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:64.54,66.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:69.2,69.57 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:69.57,71.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:74.2,74.21 1 3 -FreeBSD-Command-manager/internal/jail/manager.go:74.21,75.64 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:75.64,77.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:81.2,87.16 2 3 -FreeBSD-Command-manager/internal/jail/manager.go:87.16,89.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:91.2,91.12 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:95.55,96.16 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:96.16,98.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:100.2,101.16 2 3 -FreeBSD-Command-manager/internal/jail/manager.go:101.16,103.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:105.2,105.12 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:109.54,110.16 1 8 -FreeBSD-Command-manager/internal/jail/manager.go:110.16,112.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:114.2,115.16 2 7 -FreeBSD-Command-manager/internal/jail/manager.go:115.16,117.3 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:119.2,119.12 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:123.57,124.16 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:124.16,126.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:129.2,129.37 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:129.37,132.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:135.2,136.16 2 4 -FreeBSD-Command-manager/internal/jail/manager.go:136.16,138.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:140.2,140.12 1 3 -FreeBSD-Command-manager/internal/jail/manager.go:144.61,146.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:146.16,148.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:149.2,150.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:150.16,152.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:153.2,153.19 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:157.74,158.16 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:158.16,160.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:161.2,162.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:162.16,164.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:165.2,166.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:166.16,168.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:169.2,169.29 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:169.29,170.24 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:170.24,172.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:174.2,174.51 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:181.56,183.2 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:186.63,187.49 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:187.49,188.72 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:188.72,190.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:192.2,192.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:196.68,198.50 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:198.50,200.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:201.2,201.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:205.62,207.50 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:207.50,209.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:210.2,210.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:217.52,219.2 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:222.84,225.16 3 0 -FreeBSD-Command-manager/internal/jail/manager.go:225.16,227.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:228.2,228.28 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:232.31,236.2 3 0 -FreeBSD-Command-manager/internal/jail/testing.go:30.63,34.2 3 4 -FreeBSD-Command-manager/internal/jail/testing.go:37.68,42.2 4 0 -FreeBSD-Command-manager/internal/jail/testing.go:45.62,49.2 3 0 -FreeBSD-Command-manager/internal/jail/testing.go:61.84,66.2 4 11 -FreeBSD-Command-manager/internal/jail/testing.go:78.86,83.19 3 6 -FreeBSD-Command-manager/internal/jail/testing.go:83.19,85.3 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:86.2,89.42 2 6 -FreeBSD-Command-manager/internal/jail/testing.go:89.42,90.18 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:91.15,92.38 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:93.18,94.47 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:95.16,96.30 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:97.17,98.30 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:99.15,100.37 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:101.15,102.34 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:103.13,104.23 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:104.23,106.5 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:108.4,108.24 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:108.24,110.5 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:111.4,111.47 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:116.2,116.50 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:120.83,122.2 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:125.31,129.2 3 1 FreeBSD-Command-manager/pkg/ifconfig/parser.go:56.42,65.29 7 1 FreeBSD-Command-manager/pkg/ifconfig/parser.go:65.29,68.31 2 29 FreeBSD-Command-manager/pkg/ifconfig/parser.go:68.31,69.26 1 4 @@ -533,3 +580,48 @@ FreeBSD-Command-manager/pkg/ifconfig/parser.go:296.16,298.3 1 0 FreeBSD-Command-manager/pkg/ifconfig/parser.go:300.2,301.18 2 2 FreeBSD-Command-manager/pkg/ifconfig/parser.go:301.18,304.3 2 8 FreeBSD-Command-manager/pkg/ifconfig/parser.go:306.2,306.17 1 2 +FreeBSD-Command-manager/pkg/jail/parser.go:19.51,23.21 4 3 +FreeBSD-Command-manager/pkg/jail/parser.go:23.21,25.24 2 8 +FreeBSD-Command-manager/pkg/jail/parser.go:25.24,27.12 2 2 +FreeBSD-Command-manager/pkg/jail/parser.go:29.3,30.34 2 6 +FreeBSD-Command-manager/pkg/jail/parser.go:30.34,31.12 1 1 +FreeBSD-Command-manager/pkg/jail/parser.go:33.3,34.29 2 5 +FreeBSD-Command-manager/pkg/jail/parser.go:34.29,35.13 1 25 +FreeBSD-Command-manager/pkg/jail/parser.go:36.16,37.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:38.17,39.28 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:40.20,41.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:42.20,43.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:44.16,45.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:48.3,48.30 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:50.2,50.19 1 3 +FreeBSD-Command-manager/pkg/netstat/parser.go:19.24,21.2 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:24.51,30.21 5 3 +FreeBSD-Command-manager/pkg/netstat/parser.go:30.21,33.23 3 14 +FreeBSD-Command-manager/pkg/netstat/parser.go:33.23,34.12 1 1 +FreeBSD-Command-manager/pkg/netstat/parser.go:37.3,37.105 1 13 +FreeBSD-Command-manager/pkg/netstat/parser.go:37.105,39.29 2 2 +FreeBSD-Command-manager/pkg/netstat/parser.go:39.29,41.5 1 10 +FreeBSD-Command-manager/pkg/netstat/parser.go:42.4,42.12 1 2 +FreeBSD-Command-manager/pkg/netstat/parser.go:44.3,44.19 1 11 +FreeBSD-Command-manager/pkg/netstat/parser.go:44.19,45.12 1 4 +FreeBSD-Command-manager/pkg/netstat/parser.go:48.3,48.22 1 7 +FreeBSD-Command-manager/pkg/netstat/parser.go:48.22,49.12 1 1 +FreeBSD-Command-manager/pkg/netstat/parser.go:52.3,53.67 2 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:53.67,55.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:56.3,56.63 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:56.63,58.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:59.3,59.61 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:59.61,61.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:62.3,62.61 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:62.61,64.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:64.9,64.68 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:64.68,66.4 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:67.3,67.62 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:67.62,69.4 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:72.3,72.45 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:72.45,74.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:76.2,76.38 1 3 +FreeBSD-Command-manager/pkg/netstat/parser.go:76.38,78.3 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:79.2,79.18 1 3 +FreeBSD-Command-manager/pkg/netstat/parser.go:79.18,81.3 1 1 +FreeBSD-Command-manager/pkg/netstat/parser.go:82.2,82.20 1 2 diff --git a/internal/network/bareos/ip.go b/internal/network/bareos/ip.go index 31bbdca..16dbbb0 100644 --- a/internal/network/bareos/ip.go +++ b/internal/network/bareos/ip.go @@ -5,7 +5,10 @@ import ( "os/exec" ) -const defaultFamily = "inet" +const ( + inetFamily = "inet" + inet6Family = "inet6" +) // AddIP adds an IP address to an interface (IPv4 or IPv6). func AddIP(iface, ip string, mask int, family string) error { @@ -14,7 +17,7 @@ func AddIP(iface, ip string, mask int, family string) error { } fam := family if fam == "" { - fam = defaultFamily + fam = inetFamily } addr := fmt.Sprintf("%s/%d", ip, mask) execCmd := exec.Command("ifconfig", iface, fam, addr, "add") //nolint:gosec @@ -32,7 +35,7 @@ func AliasIP(iface, ip string, mask int, family string) error { } fam := family if fam == "" { - fam = defaultFamily + fam = inetFamily } addr := fmt.Sprintf("%s/%d", ip, mask) execCmd := exec.Command("ifconfig", iface, fam, addr, "alias") //nolint:gosec @@ -50,7 +53,7 @@ func DeleteIP(iface, ip string, mask int, family string) error { } fam := family if fam == "" { - fam = defaultFamily + fam = inetFamily } addr := fmt.Sprintf("%s/%d", ip, mask) execCmd := exec.Command("ifconfig", iface, fam, addr, "delete") //nolint:gosec diff --git a/internal/network/bareos/manager_test.go b/internal/network/bareos/manager_test.go index f1aa910..f828906 100644 --- a/internal/network/bareos/manager_test.go +++ b/internal/network/bareos/manager_test.go @@ -7,7 +7,7 @@ import ( "testing" ) -const inet6Family = "inet6" +const testDefaultRoute = "default" func TestBareOSManager_CreateInterface(t *testing.T) { tests := []struct { @@ -726,19 +726,19 @@ func TestBareOSManager_RemoveInterfaceFromBridge(t *testing.T) { func TestAddIP_InvalidInput(t *testing.T) { t.Run("empty iface", func(t *testing.T) { - err := AddIP("", "192.168.1.10", 24, defaultFamily) + err := AddIP("", "192.168.1.10", 24, inetFamily) if err == nil { t.Error("expected error for empty iface") } }) t.Run("empty ip", func(t *testing.T) { - err := AddIP("em0", "", 24, defaultFamily) + err := AddIP("em0", "", 24, inetFamily) if err == nil { t.Error("expected error for empty ip") } }) t.Run("zero mask", func(t *testing.T) { - err := AddIP("em0", "192.168.1.10", 0, defaultFamily) + err := AddIP("em0", "192.168.1.10", 0, inetFamily) if err == nil { t.Error("expected error for zero mask") } @@ -747,19 +747,19 @@ func TestAddIP_InvalidInput(t *testing.T) { func TestAliasIP_InvalidInput(t *testing.T) { t.Run("empty iface", func(t *testing.T) { - err := AliasIP("", "192.168.1.20", 24, defaultFamily) + err := AliasIP("", "192.168.1.20", 24, inetFamily) if err == nil { t.Error("expected error for empty iface") } }) t.Run("empty ip", func(t *testing.T) { - err := AliasIP("em0", "", 24, defaultFamily) + err := AliasIP("em0", "", 24, inetFamily) if err == nil { t.Error("expected error for empty ip") } }) t.Run("zero mask", func(t *testing.T) { - err := AliasIP("em0", "192.168.1.20", 0, defaultFamily) + err := AliasIP("em0", "192.168.1.20", 0, inetFamily) if err == nil { t.Error("expected error for zero mask") } @@ -768,19 +768,19 @@ func TestAliasIP_InvalidInput(t *testing.T) { func TestDeleteIP_InvalidInput(t *testing.T) { t.Run("empty iface", func(t *testing.T) { - err := DeleteIP("", "192.168.1.10", 24, defaultFamily) + err := DeleteIP("", "192.168.1.10", 24, inetFamily) if err == nil { t.Error("expected error for empty iface") } }) t.Run("empty ip", func(t *testing.T) { - err := DeleteIP("em0", "", 24, defaultFamily) + err := DeleteIP("em0", "", 24, inetFamily) if err == nil { t.Error("expected error for empty ip") } }) t.Run("zero mask", func(t *testing.T) { - err := DeleteIP("em0", "192.168.1.10", 0, defaultFamily) + err := DeleteIP("em0", "192.168.1.10", 0, inetFamily) if err == nil { t.Error("expected error for zero mask") } @@ -797,7 +797,7 @@ func TestAddRoute(t *testing.T) { return exec.Command("echo") // always succeeds } - err := AddRoute(defaultFamily, "10.0.0.0/24", "10.0.0.1") + err := AddRoute(inetFamily, "10.0.0.0/24", "10.0.0.1") if err != nil { t.Errorf("expected no error, got %v", err) } @@ -814,7 +814,7 @@ func TestAddRoute_Error(t *testing.T) { return exec.Command("false") // always fails } - err := AddRoute(defaultFamily, "10.0.0.0/24", "10.0.0.1") + err := AddRoute(inetFamily, "10.0.0.0/24", "10.0.0.1") if err == nil || !strings.Contains(err.Error(), "route add error") { t.Errorf("expected route add error, got %v", err) } @@ -826,7 +826,7 @@ func TestDelRoute_LastDefault(t *testing.T) { defer func() { listRoutes = oldListRoutes; execCommand = oldExecCommand }() listRoutes = func(family string) (string, error) { - if family == defaultFamily { + if family == inetFamily { return "default 10.0.0.1\n", nil // only one default } if family == inet6Family { @@ -835,7 +835,7 @@ func TestDelRoute_LastDefault(t *testing.T) { return "", nil } - err := DelRoute(defaultFamily, "default") + err := DelRoute(inetFamily, "default") if err == nil || !strings.Contains(err.Error(), "cannot delete the last default route") { t.Errorf("expected last default route error, got %v", err) } @@ -847,7 +847,7 @@ func TestDelRoute_Success(t *testing.T) { defer func() { listRoutes = oldListRoutes; execCommand = oldExecCommand }() listRoutes = func(family string) (string, error) { - if family == defaultFamily { + if family == inetFamily { return "default 10.0.0.1\ndefault 10.0.0.2\n", nil // two defaults } if family == inet6Family { @@ -859,7 +859,7 @@ func TestDelRoute_Success(t *testing.T) { return exec.Command("echo", "") // always succeeds } - err := DelRoute(defaultFamily, "default") + err := DelRoute(inetFamily, "default") if err != nil { t.Errorf("expected no error, got %v", err) } @@ -870,21 +870,30 @@ func TestListAllRoutes(t *testing.T) { defer func() { listRoutes = oldListRoutes }() listRoutes = func(family string) (string, error) { - if family == defaultFamily { - return "default 10.0.0.1\n10.0.0.0/24 10.0.0.1\n", nil + if family == inetFamily { + return `Destination Gateway Flags Netif +10.0.0.0/24 10.0.0.1 UGS em0 +default 10.0.0.1 UGS em0 +`, nil } if family == inet6Family { - return "default fe80::1\n2001:db8::/64 fe80::1\n", nil + return `Destination Gateway Flags Netif +2001:db8::/64 fe80::1 UGS em1 +default fe80::1 UGS em1 +`, nil } return "", nil } - out, err := ListAllRoutes("") + routes, err := ListAllRoutes(inetFamily) if err != nil { t.Errorf("expected no error, got %v", err) } - if !strings.Contains(out, "IPv4 routes:") || !strings.Contains(out, "IPv6 routes:") { - t.Errorf("expected both IPv4 and IPv6 routes, got %s", out) + if len(routes) != 2 { + t.Errorf("expected 2 routes, got %d", len(routes)) + } + if routes[0].Destination != "10.0.0.0/24" || routes[1].Destination != testDefaultRoute { + t.Errorf("unexpected route destinations: %+v", routes) } } @@ -896,7 +905,7 @@ func TestListAllRoutes_Error(t *testing.T) { return "", errors.New("fail") } - _, err := ListAllRoutes(defaultFamily) + _, err := ListAllRoutes(inetFamily) if err == nil || !strings.Contains(err.Error(), "fail") { t.Errorf("expected error, got %v", err) } diff --git a/internal/network/bareos/route.go b/internal/network/bareos/route.go index 76027f1..f456268 100644 --- a/internal/network/bareos/route.go +++ b/internal/network/bareos/route.go @@ -1,6 +1,7 @@ package bareos import ( + "FreeBSD-Command-manager/pkg/netstat" "fmt" "os/exec" "strings" @@ -9,10 +10,12 @@ import ( var execCommand = exec.Command func realListRoutes(family string) (string, error) { + var cmd *exec.Cmd if family == "" { - family = defaultFamily + cmd = execCommand("netstat", "-rn") + } else { + cmd = execCommand("netstat", "-rn", "-f", family) } - cmd := execCommand("netstat", "-rn", "-f", family) output, err := cmd.CombinedOutput() if err != nil { return "", fmt.Errorf("route list error: %v, output: %s", err, string(output)) @@ -26,7 +29,7 @@ var listRoutes = realListRoutes func AddRoute(family, network, gw string) error { fam := family if fam == "" { - fam = defaultFamily + fam = inetFamily } cmd := execCommand("route", "-n", "add", "-"+fam, network, gw) output, err := cmd.CombinedOutput() @@ -40,7 +43,7 @@ func AddRoute(family, network, gw string) error { func AddRouteWithIface(family, network, gw, iface string) error { fam := family if fam == "" { - fam = defaultFamily + fam = inetFamily } args := []string{"-n", "add", "-" + fam, network, gw} if iface != "" { @@ -59,7 +62,7 @@ func AddRouteWithIface(family, network, gw, iface string) error { func DelRoute(family, network string) error { fam := family if fam == "" { - fam = defaultFamily + fam = inetFamily } if network == "default" { count, err := countDefaultRoutes(fam) @@ -78,20 +81,19 @@ func DelRoute(family, network string) error { return nil } -// ListAllRoutes lists both IPv4 and IPv6 routes if family is empty, otherwise lists the specified family. -func ListAllRoutes(family string) (string, error) { - if family != "" { - return listRoutes(family) - } - ipv4, err := listRoutes(defaultFamily) +// ListAllRoutes lists both IPv4 and IPv6 routes as a JSON string using the netstat parser. +func ListAllRoutes(family string) ([]netstat.Route, error) { + output, err := listRoutes(family) + if err != nil { - return "", fmt.Errorf("IPv4: %v", err) + return nil, fmt.Errorf("route list error: %w, output: %s", err, output) } - ipv6, err := listRoutes("inet6") + + routes, err := netstat.ParseNetstat(output) if err != nil { - return "", fmt.Errorf("IPv6: %v", err) + return nil, fmt.Errorf("parse netstat error: %w", err) } - return fmt.Sprintf("IPv4 routes:\n%s\nIPv6 routes:\n%s", ipv4, ipv6), nil + return routes, nil } // countDefaultRoutes returns the number of default routes for the given family. diff --git a/pkg/netstat/parser.go b/pkg/netstat/parser.go new file mode 100644 index 0000000..7232bf6 --- /dev/null +++ b/pkg/netstat/parser.go @@ -0,0 +1,88 @@ +// Package netstat provides parsing utilities for netstat output. +package netstat + +import ( + "bufio" + "fmt" + "runtime" + "strings" +) + +// Route represents a parsed route entry from netstat output. +type Route struct { + Destination string `json:"destination"` + Gateway string `json:"gateway"` + Genmask string `json:"genmask,omitempty"` + Flags string `json:"flags,omitempty"` + Metric string `json:"metric,omitempty"` + Interface string `json:"interface"` +} + +const minRouteFields = 4 + +// SystemOS returns the current system's OS name in lowercase. +func SystemOS() string { + return strings.ToLower(runtime.GOOS) +} + +// ParseNetstat parses the output of 'netstat -rn' on FreeBSD and returns a slice of Route. +func ParseNetstat(output string) ([]Route, error) { + var routes []Route + var headerIdx = map[string]int{} + var headerFound bool + + scanner := bufio.NewScanner(strings.NewReader(output)) + for scanner.Scan() { + line := scanner.Text() + fields := strings.Fields(line) + if len(fields) == 0 { + continue + } + // Find the header line + if !headerFound && (strings.HasPrefix(line, "Destination") || strings.HasPrefix(line, "destination")) { + headerFound = true + for i, f := range fields { + headerIdx[strings.ToLower(f)] = i + } + continue + } + if !headerFound { + continue + } + // Skip lines that are not data + if len(fields) < minRouteFields { + continue + } + // Parse fields based on header + var r Route + if idx, ok := headerIdx["destination"]; ok && idx < len(fields) { + r.Destination = fields[idx] + } + if idx, ok := headerIdx["gateway"]; ok && idx < len(fields) { + r.Gateway = fields[idx] + } + if idx, ok := headerIdx["flags"]; ok && idx < len(fields) { + r.Flags = fields[idx] + } + if idx, ok := headerIdx["netif"]; ok && idx < len(fields) { + r.Interface = fields[idx] + } else if idx, ok := headerIdx["iface"]; ok && idx < len(fields) { + r.Interface = fields[idx] + } + if idx, ok := headerIdx["metric"]; ok && idx < len(fields) { + r.Metric = fields[idx] + } + // FreeBSD does not have Genmask, so skip + // Only add if Destination and Gateway are present + if r.Destination != "" && r.Gateway != "" { + routes = append(routes, r) + } + } + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("scanner error: %w", err) + } + if !headerFound { + return nil, fmt.Errorf("no netstat header found") + } + return routes, nil +} diff --git a/pkg/netstat/parser_test.go b/pkg/netstat/parser_test.go new file mode 100644 index 0000000..96e3f14 --- /dev/null +++ b/pkg/netstat/parser_test.go @@ -0,0 +1,64 @@ +package netstat + +import ( + "reflect" + "testing" +) + +func TestParseNetstat_FreeBSD(t *testing.T) { + sample := `Routing tables + +Internet: +Destination Gateway Flags Netif Expire +10.0.0.0/24 10.0.0.1 UGS em0 +10.0.0.1 link#1 UHS lo0 +127.0.0.1 link#2 UH lo0 +192.168.1.0/24 192.168.1.1 UGS em1 +192.168.1.1 link#3 UHS lo0 +` + + expected := []Route{ + {Destination: "10.0.0.0/24", Gateway: "10.0.0.1", Flags: "UGS", Interface: "em0"}, + {Destination: "10.0.0.1", Gateway: "link#1", Flags: "UHS", Interface: "lo0"}, + {Destination: "127.0.0.1", Gateway: "link#2", Flags: "UH", Interface: "lo0"}, + {Destination: "192.168.1.0/24", Gateway: "192.168.1.1", Flags: "UGS", Interface: "em1"}, + {Destination: "192.168.1.1", Gateway: "link#3", Flags: "UHS", Interface: "lo0"}, + } + + routes, err := ParseNetstat(sample) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if !reflect.DeepEqual(routes, expected) { + t.Errorf("parsed routes do not match expected.\nGot: %#v\nWant: %#v", routes, expected) + } +} + +func TestParseNetstat_EmptyInput(t *testing.T) { + routes, err := ParseNetstat("") + if err == nil { + t.Error("expected error for missing header, got nil") + } + if len(routes) != 0 { + t.Errorf("expected no routes, got: %#v", routes) + } +} + +func TestParseNetstat_MalformedLines(t *testing.T) { + sample := `Routing tables +Internet: +Destination Gateway Flags Netif Expire +MALFORMED LINE +10.0.0.0/24 10.0.0.1 UGS em0 +` + expected := []Route{ + {Destination: "10.0.0.0/24", Gateway: "10.0.0.1", Flags: "UGS", Interface: "em0"}, + } + routes, err := ParseNetstat(sample) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if !reflect.DeepEqual(routes, expected) { + t.Errorf("parsed routes do not match expected.\nGot: %#v\nWant: %#v", routes, expected) + } +} From 03a029e8f54cc43e9a59e3d47c6c92fd03cef221 Mon Sep 17 00:00:00 2001 From: motylkov Date: Fri, 11 Jul 2025 18:48:44 +0300 Subject: [PATCH 4/5] add IP management commands --- cmd/network.go | 120 +++++++++ cmd/route.go | 3 +- coverage.txt | 657 +++++++++++++++++++++++++------------------------ 3 files changed, 459 insertions(+), 321 deletions(-) diff --git a/cmd/network.go b/cmd/network.go index 66a68b3..6848ab4 100644 --- a/cmd/network.go +++ b/cmd/network.go @@ -42,6 +42,13 @@ var ( delVxlanName string ) +var ( + ipIface string + ipAddr string + ipMask int + ipFamily string +) + var networkCmd = &cobra.Command{ Use: "network", Short: "Manage networks", @@ -320,6 +327,86 @@ var networkInfoCmd = &cobra.Command{ }, } +var ipCmd = &cobra.Command{ + Use: "ip", + Short: "Manage IP addresses on interfaces", +} + +var ipAddCmd = &cobra.Command{ + Use: "add", + Short: "Add an IP address to an interface", + Run: func(cmd *cobra.Command, args []string) { //nolint:revive + err := bareos.AddIP(ipIface, ipAddr, ipMask, ipFamily) + if err != nil { + if e := internal.Output(map[string]any{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return + } + if err := internal.Output(map[string]any{ + "interface": ipIface, + "ip": ipAddr, + "mask": ipMask, + "family": ipFamily, + "status": "added", + }); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + }, +} + +var ipAliasCmd = &cobra.Command{ + Use: "alias", + Short: "Add an alias IP address to an interface", + Run: func(cmd *cobra.Command, args []string) { //nolint:revive + err := bareos.AliasIP(ipIface, ipAddr, ipMask, ipFamily) + if err != nil { + if e := internal.Output(map[string]any{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return + } + if err := internal.Output(map[string]any{ + "interface": ipIface, + "ip": ipAddr, + "mask": ipMask, + "family": ipFamily, + "status": "aliased", + }); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + }, +} + +var ipDeleteCmd = &cobra.Command{ + Use: "delete", + Short: "Delete an IP address from an interface", + Run: func(cmd *cobra.Command, args []string) { //nolint:revive + err := bareos.DeleteIP(ipIface, ipAddr, ipMask, ipFamily) + if err != nil { + if e := internal.Output(map[string]any{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return + } + if err := internal.Output(map[string]any{ + "interface": ipIface, + "ip": ipAddr, + "mask": ipMask, + "family": ipFamily, + "status": "deleted", + }); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + }, +} + func init() { //nolint // iface networkCmd.AddCommand(ifaceCmd) @@ -457,6 +544,39 @@ func init() { //nolint os.Exit(1) } + // IP commands + ipAddCmd.Flags().StringVar(&ipIface, "iface", "", "Interface name (required)") + ipAddCmd.Flags().StringVar(&ipAddr, "ip", "", "IP address (required)") + ipAddCmd.Flags().IntVar(&ipMask, "mask", 0, "Netmask/CIDR (required)") + ipAddCmd.Flags().StringVar(&ipFamily, "family", "inet", "Address family (inet or inet6)") + _ = ipAddCmd.MarkFlagRequired("iface") + _ = ipAddCmd.MarkFlagRequired("ip") + _ = ipAddCmd.MarkFlagRequired("mask") + + ipAliasCmd.Flags().StringVar(&ipIface, "iface", "", "Interface name (required)") + ipAliasCmd.Flags().StringVar(&ipAddr, "ip", "", "IP address (required)") + ipAliasCmd.Flags().IntVar(&ipMask, "mask", 0, "Netmask/CIDR (required)") + ipAliasCmd.Flags().StringVar(&ipFamily, "family", "inet", "Address family (inet or inet6)") + _ = ipAliasCmd.MarkFlagRequired("iface") + _ = ipAliasCmd.MarkFlagRequired("ip") + _ = ipAliasCmd.MarkFlagRequired("mask") + + ipDeleteCmd.Flags().StringVar(&ipIface, "iface", "", "Interface name (required)") + ipDeleteCmd.Flags().StringVar(&ipAddr, "ip", "", "IP address (required)") + ipDeleteCmd.Flags().IntVar(&ipMask, "mask", 0, "Netmask/CIDR (required)") + ipDeleteCmd.Flags().StringVar(&ipFamily, "family", "inet", "Address family (inet or inet6)") + _ = ipDeleteCmd.MarkFlagRequired("iface") + _ = ipDeleteCmd.MarkFlagRequired("ip") + _ = ipDeleteCmd.MarkFlagRequired("mask") + + ipCmd.AddCommand(ipAddCmd) + ipCmd.AddCommand(ipAliasCmd) + ipCmd.AddCommand(ipDeleteCmd) + networkCmd.AddCommand(ipCmd) + + // Add ip commant to top level, do not delete. + // cmd.AddCommand(ipCmd) + // List and Info commands networkCmd.AddCommand(networkListCmd) diff --git a/cmd/route.go b/cmd/route.go index 4b0bc35..8ece2d7 100644 --- a/cmd/route.go +++ b/cmd/route.go @@ -108,5 +108,6 @@ func init() { //nolint routeCmd.AddCommand(routeDelCmd) routeCmd.AddCommand(routeListCmd) - cmd.AddCommand(routeCmd) + // Add route to top level, do not delete. + // cmd.AddCommand(routeCmd) } diff --git a/coverage.txt b/coverage.txt index ffaae50..5a4dc08 100644 --- a/coverage.txt +++ b/coverage.txt @@ -1,8 +1,8 @@ mode: atomic +FreeBSD-Command-manager/main.go:17.13,19.2 1 0 FreeBSD-Command-manager/internal/output.go:11.37,14.41 3 0 FreeBSD-Command-manager/internal/output.go:14.41,17.3 2 0 FreeBSD-Command-manager/internal/output.go:18.2,18.12 1 0 -FreeBSD-Command-manager/main.go:17.13,19.2 1 0 FreeBSD-Command-manager/cmd/cmd.go:18.33,23.38 5 0 FreeBSD-Command-manager/cmd/cmd.go:23.38,26.3 2 0 FreeBSD-Command-manager/cmd/jail.go:22.47,33.17 4 0 @@ -56,135 +56,153 @@ FreeBSD-Command-manager/cmd/jail.go:224.64,227.3 2 0 FreeBSD-Command-manager/cmd/jail.go:229.2,231.61 2 0 FreeBSD-Command-manager/cmd/jail.go:231.61,234.3 2 0 FreeBSD-Command-manager/cmd/jail.go:236.2,243.25 7 0 -FreeBSD-Command-manager/cmd/network.go:54.47,56.57 2 0 -FreeBSD-Command-manager/cmd/network.go:56.57,57.84 1 0 -FreeBSD-Command-manager/cmd/network.go:57.84,60.5 2 0 -FreeBSD-Command-manager/cmd/network.go:61.4,61.10 1 0 -FreeBSD-Command-manager/cmd/network.go:63.3,63.107 1 0 -FreeBSD-Command-manager/cmd/network.go:63.107,66.4 2 0 -FreeBSD-Command-manager/cmd/network.go:73.47,75.63 2 0 -FreeBSD-Command-manager/cmd/network.go:75.63,76.84 1 0 -FreeBSD-Command-manager/cmd/network.go:76.84,79.5 2 0 -FreeBSD-Command-manager/cmd/network.go:80.4,80.10 1 0 -FreeBSD-Command-manager/cmd/network.go:82.3,82.113 1 0 -FreeBSD-Command-manager/cmd/network.go:82.113,85.4 2 0 -FreeBSD-Command-manager/cmd/network.go:93.47,95.58 2 0 -FreeBSD-Command-manager/cmd/network.go:95.58,96.84 1 0 -FreeBSD-Command-manager/cmd/network.go:96.84,99.5 2 0 -FreeBSD-Command-manager/cmd/network.go:100.4,100.10 1 0 -FreeBSD-Command-manager/cmd/network.go:102.3,102.108 1 0 -FreeBSD-Command-manager/cmd/network.go:102.108,105.4 2 0 -FreeBSD-Command-manager/cmd/network.go:112.47,114.61 2 0 -FreeBSD-Command-manager/cmd/network.go:114.61,115.84 1 0 -FreeBSD-Command-manager/cmd/network.go:115.84,118.5 2 0 -FreeBSD-Command-manager/cmd/network.go:119.4,119.10 1 0 -FreeBSD-Command-manager/cmd/network.go:121.3,121.111 1 0 -FreeBSD-Command-manager/cmd/network.go:121.111,124.4 2 0 -FreeBSD-Command-manager/cmd/network.go:131.47,133.97 2 0 -FreeBSD-Command-manager/cmd/network.go:133.97,134.84 1 0 -FreeBSD-Command-manager/cmd/network.go:134.84,137.5 2 0 -FreeBSD-Command-manager/cmd/network.go:138.4,138.10 1 0 -FreeBSD-Command-manager/cmd/network.go:140.3,140.150 1 0 -FreeBSD-Command-manager/cmd/network.go:140.150,143.4 2 0 -FreeBSD-Command-manager/cmd/network.go:150.47,152.105 2 0 -FreeBSD-Command-manager/cmd/network.go:152.105,153.84 1 0 -FreeBSD-Command-manager/cmd/network.go:153.84,156.5 2 0 -FreeBSD-Command-manager/cmd/network.go:157.4,157.10 1 0 -FreeBSD-Command-manager/cmd/network.go:159.3,159.155 1 0 -FreeBSD-Command-manager/cmd/network.go:159.155,162.4 2 0 -FreeBSD-Command-manager/cmd/network.go:170.47,172.74 2 0 -FreeBSD-Command-manager/cmd/network.go:172.74,173.84 1 0 -FreeBSD-Command-manager/cmd/network.go:173.84,176.5 2 0 -FreeBSD-Command-manager/cmd/network.go:177.4,177.10 1 0 -FreeBSD-Command-manager/cmd/network.go:179.3,179.145 1 0 -FreeBSD-Command-manager/cmd/network.go:179.145,182.4 2 0 -FreeBSD-Command-manager/cmd/network.go:189.47,191.57 2 0 -FreeBSD-Command-manager/cmd/network.go:191.57,192.84 1 0 -FreeBSD-Command-manager/cmd/network.go:192.84,195.5 2 0 -FreeBSD-Command-manager/cmd/network.go:196.4,196.10 1 0 -FreeBSD-Command-manager/cmd/network.go:198.3,198.107 1 0 -FreeBSD-Command-manager/cmd/network.go:198.107,201.4 2 0 -FreeBSD-Command-manager/cmd/network.go:209.47,211.73 2 0 -FreeBSD-Command-manager/cmd/network.go:211.73,212.84 1 0 -FreeBSD-Command-manager/cmd/network.go:212.84,215.5 2 0 -FreeBSD-Command-manager/cmd/network.go:216.4,216.10 1 0 -FreeBSD-Command-manager/cmd/network.go:218.3,218.142 1 0 -FreeBSD-Command-manager/cmd/network.go:218.142,221.4 2 0 -FreeBSD-Command-manager/cmd/network.go:228.47,230.55 2 0 -FreeBSD-Command-manager/cmd/network.go:230.55,231.84 1 0 -FreeBSD-Command-manager/cmd/network.go:231.84,234.5 2 0 -FreeBSD-Command-manager/cmd/network.go:235.4,235.10 1 0 -FreeBSD-Command-manager/cmd/network.go:237.3,237.105 1 0 -FreeBSD-Command-manager/cmd/network.go:237.105,240.4 2 0 -FreeBSD-Command-manager/cmd/network.go:248.47,250.112 2 0 -FreeBSD-Command-manager/cmd/network.go:250.112,251.84 1 0 -FreeBSD-Command-manager/cmd/network.go:251.84,254.5 2 0 -FreeBSD-Command-manager/cmd/network.go:255.4,255.10 1 0 -FreeBSD-Command-manager/cmd/network.go:257.3,257.204 1 0 -FreeBSD-Command-manager/cmd/network.go:257.204,260.4 2 0 -FreeBSD-Command-manager/cmd/network.go:267.47,269.59 2 0 -FreeBSD-Command-manager/cmd/network.go:269.59,270.84 1 0 -FreeBSD-Command-manager/cmd/network.go:270.84,273.5 2 0 -FreeBSD-Command-manager/cmd/network.go:274.4,274.10 1 0 -FreeBSD-Command-manager/cmd/network.go:276.3,276.109 1 0 -FreeBSD-Command-manager/cmd/network.go:276.109,279.4 2 0 -FreeBSD-Command-manager/cmd/network.go:286.47,289.17 3 0 -FreeBSD-Command-manager/cmd/network.go:289.17,290.84 1 0 -FreeBSD-Command-manager/cmd/network.go:290.84,293.5 2 0 -FreeBSD-Command-manager/cmd/network.go:294.4,294.10 1 0 -FreeBSD-Command-manager/cmd/network.go:296.3,296.117 1 0 -FreeBSD-Command-manager/cmd/network.go:296.117,299.4 2 0 -FreeBSD-Command-manager/cmd/network.go:306.47,309.17 3 0 -FreeBSD-Command-manager/cmd/network.go:309.17,310.84 1 0 -FreeBSD-Command-manager/cmd/network.go:310.84,313.5 2 0 -FreeBSD-Command-manager/cmd/network.go:314.4,314.10 1 0 -FreeBSD-Command-manager/cmd/network.go:316.3,316.89 1 0 -FreeBSD-Command-manager/cmd/network.go:316.89,319.4 2 0 -FreeBSD-Command-manager/cmd/network.go:323.13,327.58 3 0 -FreeBSD-Command-manager/cmd/network.go:327.58,330.3 2 0 -FreeBSD-Command-manager/cmd/network.go:332.2,334.61 3 0 -FreeBSD-Command-manager/cmd/network.go:334.61,337.3 2 0 -FreeBSD-Command-manager/cmd/network.go:340.2,342.59 3 0 -FreeBSD-Command-manager/cmd/network.go:342.59,345.3 2 0 -FreeBSD-Command-manager/cmd/network.go:347.2,349.62 3 0 -FreeBSD-Command-manager/cmd/network.go:349.62,352.3 2 0 -FreeBSD-Command-manager/cmd/network.go:354.2,357.75 4 0 -FreeBSD-Command-manager/cmd/network.go:357.75,360.3 2 0 -FreeBSD-Command-manager/cmd/network.go:361.2,361.78 1 0 -FreeBSD-Command-manager/cmd/network.go:361.78,364.3 2 0 -FreeBSD-Command-manager/cmd/network.go:366.2,369.80 4 0 -FreeBSD-Command-manager/cmd/network.go:369.80,372.3 2 0 -FreeBSD-Command-manager/cmd/network.go:373.2,373.83 1 0 -FreeBSD-Command-manager/cmd/network.go:373.83,376.3 2 0 -FreeBSD-Command-manager/cmd/network.go:379.2,383.57 5 0 -FreeBSD-Command-manager/cmd/network.go:383.57,386.3 2 0 -FreeBSD-Command-manager/cmd/network.go:387.2,387.59 1 0 -FreeBSD-Command-manager/cmd/network.go:387.59,390.3 2 0 -FreeBSD-Command-manager/cmd/network.go:391.2,391.55 1 0 -FreeBSD-Command-manager/cmd/network.go:391.55,394.3 2 0 -FreeBSD-Command-manager/cmd/network.go:396.2,398.60 3 0 -FreeBSD-Command-manager/cmd/network.go:398.60,401.3 2 0 -FreeBSD-Command-manager/cmd/network.go:404.2,408.56 5 0 -FreeBSD-Command-manager/cmd/network.go:408.56,411.3 2 0 -FreeBSD-Command-manager/cmd/network.go:412.2,412.57 1 0 -FreeBSD-Command-manager/cmd/network.go:412.57,415.3 2 0 -FreeBSD-Command-manager/cmd/network.go:416.2,416.58 1 0 -FreeBSD-Command-manager/cmd/network.go:416.58,419.3 2 0 -FreeBSD-Command-manager/cmd/network.go:421.2,423.59 3 0 -FreeBSD-Command-manager/cmd/network.go:423.59,426.3 2 0 -FreeBSD-Command-manager/cmd/network.go:429.2,436.58 8 0 -FreeBSD-Command-manager/cmd/network.go:436.58,439.3 2 0 -FreeBSD-Command-manager/cmd/network.go:440.2,440.59 1 0 -FreeBSD-Command-manager/cmd/network.go:440.59,443.3 2 0 -FreeBSD-Command-manager/cmd/network.go:444.2,444.60 1 0 -FreeBSD-Command-manager/cmd/network.go:444.60,447.3 2 0 -FreeBSD-Command-manager/cmd/network.go:448.2,448.57 1 0 -FreeBSD-Command-manager/cmd/network.go:448.57,451.3 2 0 -FreeBSD-Command-manager/cmd/network.go:453.2,455.61 3 0 -FreeBSD-Command-manager/cmd/network.go:455.61,458.3 2 0 -FreeBSD-Command-manager/cmd/network.go:461.2,465.64 4 0 -FreeBSD-Command-manager/cmd/network.go:465.64,468.3 2 0 -FreeBSD-Command-manager/cmd/network.go:470.2,472.28 2 0 +FreeBSD-Command-manager/cmd/network.go:61.47,63.57 2 0 +FreeBSD-Command-manager/cmd/network.go:63.57,64.84 1 0 +FreeBSD-Command-manager/cmd/network.go:64.84,67.5 2 0 +FreeBSD-Command-manager/cmd/network.go:68.4,68.10 1 0 +FreeBSD-Command-manager/cmd/network.go:70.3,70.107 1 0 +FreeBSD-Command-manager/cmd/network.go:70.107,73.4 2 0 +FreeBSD-Command-manager/cmd/network.go:80.47,82.63 2 0 +FreeBSD-Command-manager/cmd/network.go:82.63,83.84 1 0 +FreeBSD-Command-manager/cmd/network.go:83.84,86.5 2 0 +FreeBSD-Command-manager/cmd/network.go:87.4,87.10 1 0 +FreeBSD-Command-manager/cmd/network.go:89.3,89.113 1 0 +FreeBSD-Command-manager/cmd/network.go:89.113,92.4 2 0 +FreeBSD-Command-manager/cmd/network.go:100.47,102.58 2 0 +FreeBSD-Command-manager/cmd/network.go:102.58,103.84 1 0 +FreeBSD-Command-manager/cmd/network.go:103.84,106.5 2 0 +FreeBSD-Command-manager/cmd/network.go:107.4,107.10 1 0 +FreeBSD-Command-manager/cmd/network.go:109.3,109.108 1 0 +FreeBSD-Command-manager/cmd/network.go:109.108,112.4 2 0 +FreeBSD-Command-manager/cmd/network.go:119.47,121.61 2 0 +FreeBSD-Command-manager/cmd/network.go:121.61,122.84 1 0 +FreeBSD-Command-manager/cmd/network.go:122.84,125.5 2 0 +FreeBSD-Command-manager/cmd/network.go:126.4,126.10 1 0 +FreeBSD-Command-manager/cmd/network.go:128.3,128.111 1 0 +FreeBSD-Command-manager/cmd/network.go:128.111,131.4 2 0 +FreeBSD-Command-manager/cmd/network.go:138.47,140.97 2 0 +FreeBSD-Command-manager/cmd/network.go:140.97,141.84 1 0 +FreeBSD-Command-manager/cmd/network.go:141.84,144.5 2 0 +FreeBSD-Command-manager/cmd/network.go:145.4,145.10 1 0 +FreeBSD-Command-manager/cmd/network.go:147.3,147.150 1 0 +FreeBSD-Command-manager/cmd/network.go:147.150,150.4 2 0 +FreeBSD-Command-manager/cmd/network.go:157.47,159.105 2 0 +FreeBSD-Command-manager/cmd/network.go:159.105,160.84 1 0 +FreeBSD-Command-manager/cmd/network.go:160.84,163.5 2 0 +FreeBSD-Command-manager/cmd/network.go:164.4,164.10 1 0 +FreeBSD-Command-manager/cmd/network.go:166.3,166.155 1 0 +FreeBSD-Command-manager/cmd/network.go:166.155,169.4 2 0 +FreeBSD-Command-manager/cmd/network.go:177.47,179.74 2 0 +FreeBSD-Command-manager/cmd/network.go:179.74,180.84 1 0 +FreeBSD-Command-manager/cmd/network.go:180.84,183.5 2 0 +FreeBSD-Command-manager/cmd/network.go:184.4,184.10 1 0 +FreeBSD-Command-manager/cmd/network.go:186.3,186.145 1 0 +FreeBSD-Command-manager/cmd/network.go:186.145,189.4 2 0 +FreeBSD-Command-manager/cmd/network.go:196.47,198.57 2 0 +FreeBSD-Command-manager/cmd/network.go:198.57,199.84 1 0 +FreeBSD-Command-manager/cmd/network.go:199.84,202.5 2 0 +FreeBSD-Command-manager/cmd/network.go:203.4,203.10 1 0 +FreeBSD-Command-manager/cmd/network.go:205.3,205.107 1 0 +FreeBSD-Command-manager/cmd/network.go:205.107,208.4 2 0 +FreeBSD-Command-manager/cmd/network.go:216.47,218.73 2 0 +FreeBSD-Command-manager/cmd/network.go:218.73,219.84 1 0 +FreeBSD-Command-manager/cmd/network.go:219.84,222.5 2 0 +FreeBSD-Command-manager/cmd/network.go:223.4,223.10 1 0 +FreeBSD-Command-manager/cmd/network.go:225.3,225.142 1 0 +FreeBSD-Command-manager/cmd/network.go:225.142,228.4 2 0 +FreeBSD-Command-manager/cmd/network.go:235.47,237.55 2 0 +FreeBSD-Command-manager/cmd/network.go:237.55,238.84 1 0 +FreeBSD-Command-manager/cmd/network.go:238.84,241.5 2 0 +FreeBSD-Command-manager/cmd/network.go:242.4,242.10 1 0 +FreeBSD-Command-manager/cmd/network.go:244.3,244.105 1 0 +FreeBSD-Command-manager/cmd/network.go:244.105,247.4 2 0 +FreeBSD-Command-manager/cmd/network.go:255.47,257.112 2 0 +FreeBSD-Command-manager/cmd/network.go:257.112,258.84 1 0 +FreeBSD-Command-manager/cmd/network.go:258.84,261.5 2 0 +FreeBSD-Command-manager/cmd/network.go:262.4,262.10 1 0 +FreeBSD-Command-manager/cmd/network.go:264.3,264.204 1 0 +FreeBSD-Command-manager/cmd/network.go:264.204,267.4 2 0 +FreeBSD-Command-manager/cmd/network.go:274.47,276.59 2 0 +FreeBSD-Command-manager/cmd/network.go:276.59,277.84 1 0 +FreeBSD-Command-manager/cmd/network.go:277.84,280.5 2 0 +FreeBSD-Command-manager/cmd/network.go:281.4,281.10 1 0 +FreeBSD-Command-manager/cmd/network.go:283.3,283.109 1 0 +FreeBSD-Command-manager/cmd/network.go:283.109,286.4 2 0 +FreeBSD-Command-manager/cmd/network.go:293.47,296.17 3 0 +FreeBSD-Command-manager/cmd/network.go:296.17,297.84 1 0 +FreeBSD-Command-manager/cmd/network.go:297.84,300.5 2 0 +FreeBSD-Command-manager/cmd/network.go:301.4,301.10 1 0 +FreeBSD-Command-manager/cmd/network.go:303.3,303.117 1 0 +FreeBSD-Command-manager/cmd/network.go:303.117,306.4 2 0 +FreeBSD-Command-manager/cmd/network.go:313.47,316.17 3 0 +FreeBSD-Command-manager/cmd/network.go:316.17,317.84 1 0 +FreeBSD-Command-manager/cmd/network.go:317.84,320.5 2 0 +FreeBSD-Command-manager/cmd/network.go:321.4,321.10 1 0 +FreeBSD-Command-manager/cmd/network.go:323.3,323.89 1 0 +FreeBSD-Command-manager/cmd/network.go:323.89,326.4 2 0 +FreeBSD-Command-manager/cmd/network.go:338.47,340.17 2 0 +FreeBSD-Command-manager/cmd/network.go:340.17,341.76 1 0 +FreeBSD-Command-manager/cmd/network.go:341.76,344.5 2 0 +FreeBSD-Command-manager/cmd/network.go:345.4,345.10 1 0 +FreeBSD-Command-manager/cmd/network.go:347.3,353.18 1 0 +FreeBSD-Command-manager/cmd/network.go:353.18,356.4 2 0 +FreeBSD-Command-manager/cmd/network.go:363.47,365.17 2 0 +FreeBSD-Command-manager/cmd/network.go:365.17,366.76 1 0 +FreeBSD-Command-manager/cmd/network.go:366.76,369.5 2 0 +FreeBSD-Command-manager/cmd/network.go:370.4,370.10 1 0 +FreeBSD-Command-manager/cmd/network.go:372.3,378.18 1 0 +FreeBSD-Command-manager/cmd/network.go:378.18,381.4 2 0 +FreeBSD-Command-manager/cmd/network.go:388.47,390.17 2 0 +FreeBSD-Command-manager/cmd/network.go:390.17,391.76 1 0 +FreeBSD-Command-manager/cmd/network.go:391.76,394.5 2 0 +FreeBSD-Command-manager/cmd/network.go:395.4,395.10 1 0 +FreeBSD-Command-manager/cmd/network.go:397.3,403.18 1 0 +FreeBSD-Command-manager/cmd/network.go:403.18,406.4 2 0 +FreeBSD-Command-manager/cmd/network.go:410.13,414.58 3 0 +FreeBSD-Command-manager/cmd/network.go:414.58,417.3 2 0 +FreeBSD-Command-manager/cmd/network.go:419.2,421.61 3 0 +FreeBSD-Command-manager/cmd/network.go:421.61,424.3 2 0 +FreeBSD-Command-manager/cmd/network.go:427.2,429.59 3 0 +FreeBSD-Command-manager/cmd/network.go:429.59,432.3 2 0 +FreeBSD-Command-manager/cmd/network.go:434.2,436.62 3 0 +FreeBSD-Command-manager/cmd/network.go:436.62,439.3 2 0 +FreeBSD-Command-manager/cmd/network.go:441.2,444.75 4 0 +FreeBSD-Command-manager/cmd/network.go:444.75,447.3 2 0 +FreeBSD-Command-manager/cmd/network.go:448.2,448.78 1 0 +FreeBSD-Command-manager/cmd/network.go:448.78,451.3 2 0 +FreeBSD-Command-manager/cmd/network.go:453.2,456.80 4 0 +FreeBSD-Command-manager/cmd/network.go:456.80,459.3 2 0 +FreeBSD-Command-manager/cmd/network.go:460.2,460.83 1 0 +FreeBSD-Command-manager/cmd/network.go:460.83,463.3 2 0 +FreeBSD-Command-manager/cmd/network.go:466.2,470.57 5 0 +FreeBSD-Command-manager/cmd/network.go:470.57,473.3 2 0 +FreeBSD-Command-manager/cmd/network.go:474.2,474.59 1 0 +FreeBSD-Command-manager/cmd/network.go:474.59,477.3 2 0 +FreeBSD-Command-manager/cmd/network.go:478.2,478.55 1 0 +FreeBSD-Command-manager/cmd/network.go:478.55,481.3 2 0 +FreeBSD-Command-manager/cmd/network.go:483.2,485.60 3 0 +FreeBSD-Command-manager/cmd/network.go:485.60,488.3 2 0 +FreeBSD-Command-manager/cmd/network.go:491.2,495.56 5 0 +FreeBSD-Command-manager/cmd/network.go:495.56,498.3 2 0 +FreeBSD-Command-manager/cmd/network.go:499.2,499.57 1 0 +FreeBSD-Command-manager/cmd/network.go:499.57,502.3 2 0 +FreeBSD-Command-manager/cmd/network.go:503.2,503.58 1 0 +FreeBSD-Command-manager/cmd/network.go:503.58,506.3 2 0 +FreeBSD-Command-manager/cmd/network.go:508.2,510.59 3 0 +FreeBSD-Command-manager/cmd/network.go:510.59,513.3 2 0 +FreeBSD-Command-manager/cmd/network.go:516.2,523.58 8 0 +FreeBSD-Command-manager/cmd/network.go:523.58,526.3 2 0 +FreeBSD-Command-manager/cmd/network.go:527.2,527.59 1 0 +FreeBSD-Command-manager/cmd/network.go:527.59,530.3 2 0 +FreeBSD-Command-manager/cmd/network.go:531.2,531.60 1 0 +FreeBSD-Command-manager/cmd/network.go:531.60,534.3 2 0 +FreeBSD-Command-manager/cmd/network.go:535.2,535.57 1 0 +FreeBSD-Command-manager/cmd/network.go:535.57,538.3 2 0 +FreeBSD-Command-manager/cmd/network.go:540.2,542.61 3 0 +FreeBSD-Command-manager/cmd/network.go:542.61,545.3 2 0 +FreeBSD-Command-manager/cmd/network.go:548.2,585.64 29 0 +FreeBSD-Command-manager/cmd/network.go:585.64,588.3 2 0 +FreeBSD-Command-manager/cmd/network.go:590.2,592.28 2 0 FreeBSD-Command-manager/cmd/route.go:28.47,29.38 1 0 FreeBSD-Command-manager/cmd/route.go:29.38,30.102 1 0 FreeBSD-Command-manager/cmd/route.go:30.102,33.5 2 0 @@ -209,93 +227,12 @@ FreeBSD-Command-manager/cmd/route.go:80.47,82.17 2 0 FreeBSD-Command-manager/cmd/route.go:82.17,83.84 1 0 FreeBSD-Command-manager/cmd/route.go:83.84,86.5 2 0 FreeBSD-Command-manager/cmd/route.go:87.4,87.10 1 0 -FreeBSD-Command-manager/cmd/route.go:89.3,89.80 1 0 -FreeBSD-Command-manager/cmd/route.go:89.80,92.4 2 0 -FreeBSD-Command-manager/cmd/route.go:96.13,112.2 11 0 +FreeBSD-Command-manager/cmd/route.go:89.3,89.99 1 0 +FreeBSD-Command-manager/cmd/route.go:89.99,92.4 2 0 +FreeBSD-Command-manager/cmd/route.go:96.13,113.2 10 0 FreeBSD-Command-manager/cmd/version.go:23.47,30.17 2 0 FreeBSD-Command-manager/cmd/version.go:30.17,33.4 2 0 FreeBSD-Command-manager/cmd/version.go:37.13,39.2 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:54.102,59.2 1 15 -FreeBSD-Command-manager/internal/jail/manager.go:62.55,64.54 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:64.54,66.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:69.2,69.57 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:69.57,71.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:74.2,74.21 1 3 -FreeBSD-Command-manager/internal/jail/manager.go:74.21,75.64 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:75.64,77.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:81.2,87.16 2 3 -FreeBSD-Command-manager/internal/jail/manager.go:87.16,89.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:91.2,91.12 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:95.55,96.16 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:96.16,98.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:100.2,101.16 2 3 -FreeBSD-Command-manager/internal/jail/manager.go:101.16,103.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:105.2,105.12 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:109.54,110.16 1 8 -FreeBSD-Command-manager/internal/jail/manager.go:110.16,112.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:114.2,115.16 2 7 -FreeBSD-Command-manager/internal/jail/manager.go:115.16,117.3 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:119.2,119.12 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:123.57,124.16 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:124.16,126.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:129.2,129.37 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:129.37,132.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:135.2,136.16 2 4 -FreeBSD-Command-manager/internal/jail/manager.go:136.16,138.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:140.2,140.12 1 3 -FreeBSD-Command-manager/internal/jail/manager.go:144.61,146.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:146.16,148.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:149.2,150.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:150.16,152.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:153.2,153.19 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:157.74,158.16 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:158.16,160.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:161.2,162.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:162.16,164.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:165.2,166.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:166.16,168.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:169.2,169.29 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:169.29,170.24 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:170.24,172.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:174.2,174.51 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:181.56,183.2 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:186.63,187.49 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:187.49,188.72 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:188.72,190.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:192.2,192.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:196.68,198.50 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:198.50,200.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:201.2,201.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:205.62,207.50 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:207.50,209.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:210.2,210.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:217.52,219.2 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:222.84,225.16 3 0 -FreeBSD-Command-manager/internal/jail/manager.go:225.16,227.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:228.2,228.28 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:232.31,236.2 3 0 -FreeBSD-Command-manager/internal/jail/testing.go:30.63,34.2 3 4 -FreeBSD-Command-manager/internal/jail/testing.go:37.68,42.2 4 0 -FreeBSD-Command-manager/internal/jail/testing.go:45.62,49.2 3 0 -FreeBSD-Command-manager/internal/jail/testing.go:61.84,66.2 4 11 -FreeBSD-Command-manager/internal/jail/testing.go:78.86,83.19 3 6 -FreeBSD-Command-manager/internal/jail/testing.go:83.19,85.3 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:86.2,89.42 2 6 -FreeBSD-Command-manager/internal/jail/testing.go:89.42,90.18 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:91.15,92.38 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:93.18,94.47 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:95.16,96.30 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:97.17,98.30 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:99.15,100.37 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:101.15,102.34 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:103.13,104.23 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:104.23,106.5 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:108.4,108.24 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:108.24,110.5 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:111.4,111.47 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:116.2,116.50 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:120.83,122.2 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:125.31,129.2 3 1 FreeBSD-Command-manager/internal/network/bareos/basic.go:9.54,10.16 1 3 FreeBSD-Command-manager/internal/network/bareos/basic.go:10.16,12.3 1 1 FreeBSD-Command-manager/internal/network/bareos/basic.go:14.2,15.16 2 2 @@ -350,27 +287,27 @@ FreeBSD-Command-manager/internal/network/bareos/gre.go:42.2,42.12 1 2 FreeBSD-Command-manager/internal/network/bareos/gre.go:46.48,47.16 1 2 FreeBSD-Command-manager/internal/network/bareos/gre.go:47.16,49.3 1 1 FreeBSD-Command-manager/internal/network/bareos/gre.go:51.2,51.32 1 1 -FreeBSD-Command-manager/internal/network/bareos/ip.go:11.61,12.42 1 3 -FreeBSD-Command-manager/internal/network/bareos/ip.go:12.42,14.3 1 3 -FreeBSD-Command-manager/internal/network/bareos/ip.go:15.2,16.15 2 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:16.15,18.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:19.2,22.16 4 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:22.16,24.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:25.2,25.12 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:29.63,30.42 1 3 -FreeBSD-Command-manager/internal/network/bareos/ip.go:30.42,32.3 1 3 -FreeBSD-Command-manager/internal/network/bareos/ip.go:33.2,34.15 2 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:34.15,36.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:37.2,40.16 4 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:40.16,42.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:43.2,43.12 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:47.64,48.42 1 3 -FreeBSD-Command-manager/internal/network/bareos/ip.go:48.42,50.3 1 3 -FreeBSD-Command-manager/internal/network/bareos/ip.go:51.2,52.15 2 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:52.15,54.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:55.2,58.16 4 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:58.16,60.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/ip.go:61.2,61.12 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:14.61,15.42 1 3 +FreeBSD-Command-manager/internal/network/bareos/ip.go:15.42,17.3 1 3 +FreeBSD-Command-manager/internal/network/bareos/ip.go:18.2,19.15 2 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:19.15,21.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:22.2,25.16 4 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:25.16,27.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:28.2,28.12 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:32.63,33.42 1 3 +FreeBSD-Command-manager/internal/network/bareos/ip.go:33.42,35.3 1 3 +FreeBSD-Command-manager/internal/network/bareos/ip.go:36.2,37.15 2 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:37.15,39.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:40.2,43.16 4 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:43.16,45.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:46.2,46.12 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:50.64,51.42 1 3 +FreeBSD-Command-manager/internal/network/bareos/ip.go:51.42,53.3 1 3 +FreeBSD-Command-manager/internal/network/bareos/ip.go:54.2,55.15 2 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:55.15,57.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:58.2,61.16 4 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:61.16,63.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/ip.go:64.2,64.12 1 0 FreeBSD-Command-manager/internal/network/bareos/manager.go:48.51,52.2 1 40 FreeBSD-Command-manager/internal/network/bareos/manager.go:55.51,57.16 2 1 FreeBSD-Command-manager/internal/network/bareos/manager.go:57.16,59.3 1 0 @@ -385,46 +322,45 @@ FreeBSD-Command-manager/internal/network/bareos/manager.go:76.2,76.23 1 1 FreeBSD-Command-manager/internal/network/bareos/manager.go:83.52,85.2 1 0 FreeBSD-Command-manager/internal/network/bareos/manager.go:88.84,92.2 3 0 FreeBSD-Command-manager/internal/network/bareos/manager.go:95.40,98.2 2 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:11.52,12.18 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:12.18,14.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:15.2,17.16 3 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:17.16,19.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:20.2,20.28 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:26.49,28.15 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:28.15,30.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:31.2,33.16 3 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:33.16,35.3 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:36.2,36.12 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:40.65,42.15 2 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:42.15,44.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:45.2,46.17 2 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:46.17,48.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:49.2,51.16 3 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:51.16,53.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:54.2,54.12 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:59.45,61.15 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:61.15,63.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:64.2,64.26 1 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:64.26,66.17 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:66.17,68.4 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:69.3,69.17 1 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:69.17,71.4 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:73.2,75.16 3 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:75.16,77.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:78.2,78.12 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:82.51,83.18 1 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:83.18,85.3 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:86.2,87.16 2 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:87.16,89.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:90.2,91.16 2 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:91.16,93.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:94.2,94.75 1 1 -FreeBSD-Command-manager/internal/network/bareos/route.go:98.53,100.16 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:100.16,102.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/route.go:103.2,104.48 2 2 -FreeBSD-Command-manager/internal/network/bareos/route.go:104.48,106.48 2 5 -FreeBSD-Command-manager/internal/network/bareos/route.go:106.48,108.4 1 3 -FreeBSD-Command-manager/internal/network/bareos/route.go:110.2,110.19 1 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:12.52,14.18 2 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:14.18,16.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:16.8,18.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:19.2,20.16 2 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:20.16,22.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:23.2,23.28 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:29.49,31.15 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:31.15,33.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:34.2,36.16 3 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:36.16,38.3 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:39.2,39.12 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:43.65,45.15 2 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:45.15,47.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:48.2,49.17 2 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:49.17,51.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:52.2,54.16 3 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:54.16,56.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:57.2,57.12 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:62.45,64.15 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:64.15,66.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:67.2,67.26 1 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:67.26,69.17 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:69.17,71.4 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:72.3,72.17 1 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:72.17,74.4 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:76.2,78.16 3 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:78.16,80.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:81.2,81.12 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:85.60,88.16 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:88.16,90.3 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:92.2,93.16 2 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:93.16,95.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:96.2,96.20 1 1 +FreeBSD-Command-manager/internal/network/bareos/route.go:100.53,102.16 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:102.16,104.3 1 0 +FreeBSD-Command-manager/internal/network/bareos/route.go:105.2,106.48 2 2 +FreeBSD-Command-manager/internal/network/bareos/route.go:106.48,108.48 2 5 +FreeBSD-Command-manager/internal/network/bareos/route.go:108.48,110.4 1 3 +FreeBSD-Command-manager/internal/network/bareos/route.go:112.2,112.19 1 2 FreeBSD-Command-manager/internal/network/bareos/testing.go:11.52,17.2 1 41 FreeBSD-Command-manager/internal/network/bareos/testing.go:20.84,23.27 2 44 FreeBSD-Command-manager/internal/network/bareos/testing.go:23.27,25.3 1 122 @@ -483,6 +419,20 @@ FreeBSD-Command-manager/internal/network/bareos/vxlan.go:66.2,66.12 1 3 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:70.50,71.16 1 2 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:71.16,73.3 1 1 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:75.2,75.32 1 1 +FreeBSD-Command-manager/pkg/jail/parser.go:19.51,23.21 4 3 +FreeBSD-Command-manager/pkg/jail/parser.go:23.21,25.24 2 8 +FreeBSD-Command-manager/pkg/jail/parser.go:25.24,27.12 2 2 +FreeBSD-Command-manager/pkg/jail/parser.go:29.3,30.34 2 6 +FreeBSD-Command-manager/pkg/jail/parser.go:30.34,31.12 1 1 +FreeBSD-Command-manager/pkg/jail/parser.go:33.3,34.29 2 5 +FreeBSD-Command-manager/pkg/jail/parser.go:34.29,35.13 1 25 +FreeBSD-Command-manager/pkg/jail/parser.go:36.16,37.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:38.17,39.28 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:40.20,41.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:42.20,43.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:44.16,45.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:48.3,48.30 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:50.2,50.19 1 3 FreeBSD-Command-manager/pkg/ifconfig/parser.go:56.42,65.29 7 1 FreeBSD-Command-manager/pkg/ifconfig/parser.go:65.29,68.31 2 29 FreeBSD-Command-manager/pkg/ifconfig/parser.go:68.31,69.26 1 4 @@ -580,48 +530,115 @@ FreeBSD-Command-manager/pkg/ifconfig/parser.go:296.16,298.3 1 0 FreeBSD-Command-manager/pkg/ifconfig/parser.go:300.2,301.18 2 2 FreeBSD-Command-manager/pkg/ifconfig/parser.go:301.18,304.3 2 8 FreeBSD-Command-manager/pkg/ifconfig/parser.go:306.2,306.17 1 2 -FreeBSD-Command-manager/pkg/jail/parser.go:19.51,23.21 4 3 -FreeBSD-Command-manager/pkg/jail/parser.go:23.21,25.24 2 8 -FreeBSD-Command-manager/pkg/jail/parser.go:25.24,27.12 2 2 -FreeBSD-Command-manager/pkg/jail/parser.go:29.3,30.34 2 6 -FreeBSD-Command-manager/pkg/jail/parser.go:30.34,31.12 1 1 -FreeBSD-Command-manager/pkg/jail/parser.go:33.3,34.29 2 5 -FreeBSD-Command-manager/pkg/jail/parser.go:34.29,35.13 1 25 -FreeBSD-Command-manager/pkg/jail/parser.go:36.16,37.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:38.17,39.28 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:40.20,41.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:42.20,43.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:44.16,45.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:48.3,48.30 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:50.2,50.19 1 3 -FreeBSD-Command-manager/pkg/netstat/parser.go:19.24,21.2 1 0 -FreeBSD-Command-manager/pkg/netstat/parser.go:24.51,30.21 5 3 -FreeBSD-Command-manager/pkg/netstat/parser.go:30.21,33.23 3 14 -FreeBSD-Command-manager/pkg/netstat/parser.go:33.23,34.12 1 1 -FreeBSD-Command-manager/pkg/netstat/parser.go:37.3,37.105 1 13 -FreeBSD-Command-manager/pkg/netstat/parser.go:37.105,39.29 2 2 -FreeBSD-Command-manager/pkg/netstat/parser.go:39.29,41.5 1 10 -FreeBSD-Command-manager/pkg/netstat/parser.go:42.4,42.12 1 2 -FreeBSD-Command-manager/pkg/netstat/parser.go:44.3,44.19 1 11 -FreeBSD-Command-manager/pkg/netstat/parser.go:44.19,45.12 1 4 -FreeBSD-Command-manager/pkg/netstat/parser.go:48.3,48.22 1 7 -FreeBSD-Command-manager/pkg/netstat/parser.go:48.22,49.12 1 1 -FreeBSD-Command-manager/pkg/netstat/parser.go:52.3,53.67 2 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:53.67,55.4 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:56.3,56.63 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:56.63,58.4 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:59.3,59.61 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:59.61,61.4 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:62.3,62.61 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:62.61,64.4 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:64.9,64.68 1 0 -FreeBSD-Command-manager/pkg/netstat/parser.go:64.68,66.4 1 0 -FreeBSD-Command-manager/pkg/netstat/parser.go:67.3,67.62 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:67.62,69.4 1 0 -FreeBSD-Command-manager/pkg/netstat/parser.go:72.3,72.45 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:72.45,74.4 1 6 -FreeBSD-Command-manager/pkg/netstat/parser.go:76.2,76.38 1 3 -FreeBSD-Command-manager/pkg/netstat/parser.go:76.38,78.3 1 0 -FreeBSD-Command-manager/pkg/netstat/parser.go:79.2,79.18 1 3 -FreeBSD-Command-manager/pkg/netstat/parser.go:79.18,81.3 1 1 -FreeBSD-Command-manager/pkg/netstat/parser.go:82.2,82.20 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:54.102,59.2 1 15 +FreeBSD-Command-manager/internal/jail/manager.go:62.55,64.54 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:64.54,66.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:69.2,69.57 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:69.57,71.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:74.2,74.21 1 3 +FreeBSD-Command-manager/internal/jail/manager.go:74.21,75.64 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:75.64,77.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:81.2,87.16 2 3 +FreeBSD-Command-manager/internal/jail/manager.go:87.16,89.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:91.2,91.12 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:95.55,96.16 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:96.16,98.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:100.2,101.16 2 3 +FreeBSD-Command-manager/internal/jail/manager.go:101.16,103.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:105.2,105.12 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:109.54,110.16 1 8 +FreeBSD-Command-manager/internal/jail/manager.go:110.16,112.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:114.2,115.16 2 7 +FreeBSD-Command-manager/internal/jail/manager.go:115.16,117.3 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:119.2,119.12 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:123.57,124.16 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:124.16,126.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:129.2,129.37 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:129.37,132.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:135.2,136.16 2 4 +FreeBSD-Command-manager/internal/jail/manager.go:136.16,138.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:140.2,140.12 1 3 +FreeBSD-Command-manager/internal/jail/manager.go:144.61,146.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:146.16,148.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:149.2,150.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:150.16,152.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:153.2,153.19 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:157.74,158.16 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:158.16,160.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:161.2,162.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:162.16,164.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:165.2,166.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:166.16,168.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:169.2,169.29 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:169.29,170.24 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:170.24,172.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:174.2,174.51 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:181.56,183.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:186.63,187.49 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:187.49,188.72 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:188.72,190.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:192.2,192.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:196.68,198.50 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:198.50,200.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:201.2,201.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:205.62,207.50 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:207.50,209.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:210.2,210.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:217.52,219.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:222.84,225.16 3 0 +FreeBSD-Command-manager/internal/jail/manager.go:225.16,227.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:228.2,228.28 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:232.31,236.2 3 0 +FreeBSD-Command-manager/internal/jail/testing.go:30.63,34.2 3 4 +FreeBSD-Command-manager/internal/jail/testing.go:37.68,42.2 4 0 +FreeBSD-Command-manager/internal/jail/testing.go:45.62,49.2 3 0 +FreeBSD-Command-manager/internal/jail/testing.go:61.84,66.2 4 11 +FreeBSD-Command-manager/internal/jail/testing.go:78.86,83.19 3 6 +FreeBSD-Command-manager/internal/jail/testing.go:83.19,85.3 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:86.2,89.42 2 6 +FreeBSD-Command-manager/internal/jail/testing.go:89.42,90.18 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:91.15,92.38 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:93.18,94.47 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:95.16,96.30 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:97.17,98.30 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:99.15,100.37 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:101.15,102.34 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:103.13,104.23 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:104.23,106.5 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:108.4,108.24 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:108.24,110.5 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:111.4,111.47 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:116.2,116.50 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:120.83,122.2 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:125.31,129.2 3 1 +FreeBSD-Command-manager/pkg/netstat/parser.go:24.24,26.2 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:29.51,35.21 5 3 +FreeBSD-Command-manager/pkg/netstat/parser.go:35.21,38.23 3 14 +FreeBSD-Command-manager/pkg/netstat/parser.go:38.23,39.12 1 1 +FreeBSD-Command-manager/pkg/netstat/parser.go:42.3,42.105 1 13 +FreeBSD-Command-manager/pkg/netstat/parser.go:42.105,44.29 2 2 +FreeBSD-Command-manager/pkg/netstat/parser.go:44.29,46.5 1 10 +FreeBSD-Command-manager/pkg/netstat/parser.go:47.4,47.12 1 2 +FreeBSD-Command-manager/pkg/netstat/parser.go:49.3,49.19 1 11 +FreeBSD-Command-manager/pkg/netstat/parser.go:49.19,50.12 1 4 +FreeBSD-Command-manager/pkg/netstat/parser.go:53.3,53.35 1 7 +FreeBSD-Command-manager/pkg/netstat/parser.go:53.35,54.12 1 1 +FreeBSD-Command-manager/pkg/netstat/parser.go:57.3,58.67 2 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:58.67,60.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:61.3,61.63 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:61.63,63.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:64.3,64.61 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:64.61,66.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:67.3,67.61 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:67.61,69.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:69.9,69.68 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:69.68,71.4 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:72.3,72.62 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:72.62,74.4 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:77.3,77.45 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:77.45,79.4 1 6 +FreeBSD-Command-manager/pkg/netstat/parser.go:81.2,81.38 1 3 +FreeBSD-Command-manager/pkg/netstat/parser.go:81.38,83.3 1 0 +FreeBSD-Command-manager/pkg/netstat/parser.go:84.2,84.18 1 3 +FreeBSD-Command-manager/pkg/netstat/parser.go:84.18,86.3 1 1 +FreeBSD-Command-manager/pkg/netstat/parser.go:87.2,87.20 1 2 From f41e66f3d0f73d7cb28fe77249d00cc47b9619e7 Mon Sep 17 00:00:00 2001 From: motylkov Date: Fri, 11 Jul 2025 19:36:48 +0300 Subject: [PATCH 5/5] 1) update IP command and README 2) add tests for IP management --- README.md | 36 +- cmd/network.go | 48 ++ coverage.txt | 722 ++++++++++++------------ internal/network/bareos/manager_test.go | 67 +++ 4 files changed, 500 insertions(+), 373 deletions(-) diff --git a/README.md b/README.md index 677dc26..5656072 100644 --- a/README.md +++ b/README.md @@ -232,59 +232,55 @@ Easily manage IPv4 and IPv6 routes, including adding, deleting, and listing rout ```bash # Add an IPv4 network route -./fcom route add --family inet --net 10.0.0.0/24 --gw 10.0.0.1 +./fcom network route add --family inet --net 10.0.0.0/24 --gw 10.0.0.1 # Add an IPv6 network route -./fcom route add --family inet6 --net 2001:db8::/64 --gw 2001:db8::1 +./fcom network route add --family inet6 --net 2001:db8::/64 --gw 2001:db8::1 # Add an IPv4 network route via a specific interface -./fcom route add --family inet --net 10.0.0.0/24 --gw 10.0.0.1 --iface em0 +./fcom network route add --family inet --net 10.0.0.0/24 --gw 10.0.0.1 --iface em0 # Add an IPv6 network route via a specific interface -./fcom route add --family inet6 --net 2001:db8::/64 --gw 2001:db8::1 --iface em1 +./fcom network route add --family inet6 --net 2001:db8::/64 --gw 2001:db8::1 --iface em1 # Add a default IPv4 route -./fcom route add --family inet --net default --gw 192.168.1.1 +./fcom network route add --family inet --net default --gw 192.168.1.1 # Add a host route (single IP) -./fcom route add --family inet --net 192.168.1.50/32 --gw 10.0.0.1 +./fcom network route add --family inet --net 192.168.1.50/32 --gw 10.0.0.1 ``` -> **Note:** The `--iface` flag sets the outgoing interface for the route (uses FreeBSD's `-ifp` option). It is optional. - #### Delete a Route ```bash # Delete an IPv4 network route -./fcom route del --family inet --net 10.0.0.0/24 +./fcom network route del --family inet --net 10.0.0.0/24 # Delete an IPv6 network route -./fcom route del --family inet6 --net 2001:db8::/64 +./fcom network route del --family inet6 --net 2001:db8::/64 -# Delete a default route (will fail if it's the last default route) -./fcom route del --family inet --net default -# Output: cannot delete the last default route +# Delete a default route (if more than one exists) +./fcom network route del --family inet --net default ``` #### List Routes ```bash # List all IPv4 routes -./fcom route list --family inet - -# List IPv6 routes -./fcom route list --family inet6 +./fcom network route list --family inet +# List all IPv6 routes +./fcom network route list --family inet6 -# List all routes -./fcom route list +# List all routes (both families) +./fcom network route list ``` #### Example: Safe Default Route Handling ```bash # Attempting to delete the last default route will fail: -./fcom route del --family inet --net default +./fcom network route del --family inet --net default # Output: cannot delete the last default route ``` diff --git a/cmd/network.go b/cmd/network.go index 6848ab4..f1ee5a9 100644 --- a/cmd/network.go +++ b/cmd/network.go @@ -9,6 +9,12 @@ import ( "github.com/spf13/cobra" ) +// IPs holds lists of IPv4 and IPv6 addresses for output. +type IPs struct { + IPv4 []string + IPv6 []string +} + var ( ifName string delIfaceName string @@ -407,6 +413,47 @@ var ipDeleteCmd = &cobra.Command{ }, } +var ipListCmd = &cobra.Command{ + Use: "list", + Short: "List IP addresses on interfaces", + Run: func(cmd *cobra.Command, args []string) { //nolint:revive + // use ifconfig parser to list all IPs + manager := bareos.DefaultManager() + if ipIface != "" { + info, err := manager.GetInfo(ipIface) + if err != nil { + if e := internal.Output(map[string]any{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return + } + if err := internal.Output(map[string]any{"interface": ipIface, "ipv6": info.IPv6, "ipv4": info.IPv4, "count": len(info.IPv4) + len(info.IPv4)}); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return + } + var allIPs IPs + info, err := manager.List() + if err != nil { + if e := internal.Output(map[string]any{"error": err.Error()}); e != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + return + } + for _, ip := range info { + allIPs.IPv6 = append(allIPs.IPv6, ip.IPv6...) // assuming Info has IPv6 []string + allIPs.IPv4 = append(allIPs.IPv4, ip.IPv4...) // assuming Info has IPv4 []string + } + if err := internal.Output(map[string]any{"ipv6": allIPs.IPv6, "ipv4": allIPs.IPv4, "count": len(allIPs.IPv4) + len(allIPs.IPv6)}); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + }, +} + func init() { //nolint // iface networkCmd.AddCommand(ifaceCmd) @@ -572,6 +619,7 @@ func init() { //nolint ipCmd.AddCommand(ipAddCmd) ipCmd.AddCommand(ipAliasCmd) ipCmd.AddCommand(ipDeleteCmd) + ipCmd.AddCommand(ipListCmd) networkCmd.AddCommand(ipCmd) // Add ip commant to top level, do not delete. diff --git a/coverage.txt b/coverage.txt index 5a4dc08..94a8357 100644 --- a/coverage.txt +++ b/coverage.txt @@ -56,153 +56,169 @@ FreeBSD-Command-manager/cmd/jail.go:224.64,227.3 2 0 FreeBSD-Command-manager/cmd/jail.go:229.2,231.61 2 0 FreeBSD-Command-manager/cmd/jail.go:231.61,234.3 2 0 FreeBSD-Command-manager/cmd/jail.go:236.2,243.25 7 0 -FreeBSD-Command-manager/cmd/network.go:61.47,63.57 2 0 -FreeBSD-Command-manager/cmd/network.go:63.57,64.84 1 0 -FreeBSD-Command-manager/cmd/network.go:64.84,67.5 2 0 -FreeBSD-Command-manager/cmd/network.go:68.4,68.10 1 0 -FreeBSD-Command-manager/cmd/network.go:70.3,70.107 1 0 -FreeBSD-Command-manager/cmd/network.go:70.107,73.4 2 0 -FreeBSD-Command-manager/cmd/network.go:80.47,82.63 2 0 -FreeBSD-Command-manager/cmd/network.go:82.63,83.84 1 0 -FreeBSD-Command-manager/cmd/network.go:83.84,86.5 2 0 -FreeBSD-Command-manager/cmd/network.go:87.4,87.10 1 0 -FreeBSD-Command-manager/cmd/network.go:89.3,89.113 1 0 -FreeBSD-Command-manager/cmd/network.go:89.113,92.4 2 0 -FreeBSD-Command-manager/cmd/network.go:100.47,102.58 2 0 -FreeBSD-Command-manager/cmd/network.go:102.58,103.84 1 0 -FreeBSD-Command-manager/cmd/network.go:103.84,106.5 2 0 -FreeBSD-Command-manager/cmd/network.go:107.4,107.10 1 0 -FreeBSD-Command-manager/cmd/network.go:109.3,109.108 1 0 -FreeBSD-Command-manager/cmd/network.go:109.108,112.4 2 0 -FreeBSD-Command-manager/cmd/network.go:119.47,121.61 2 0 -FreeBSD-Command-manager/cmd/network.go:121.61,122.84 1 0 -FreeBSD-Command-manager/cmd/network.go:122.84,125.5 2 0 -FreeBSD-Command-manager/cmd/network.go:126.4,126.10 1 0 -FreeBSD-Command-manager/cmd/network.go:128.3,128.111 1 0 -FreeBSD-Command-manager/cmd/network.go:128.111,131.4 2 0 -FreeBSD-Command-manager/cmd/network.go:138.47,140.97 2 0 -FreeBSD-Command-manager/cmd/network.go:140.97,141.84 1 0 -FreeBSD-Command-manager/cmd/network.go:141.84,144.5 2 0 -FreeBSD-Command-manager/cmd/network.go:145.4,145.10 1 0 -FreeBSD-Command-manager/cmd/network.go:147.3,147.150 1 0 -FreeBSD-Command-manager/cmd/network.go:147.150,150.4 2 0 -FreeBSD-Command-manager/cmd/network.go:157.47,159.105 2 0 -FreeBSD-Command-manager/cmd/network.go:159.105,160.84 1 0 -FreeBSD-Command-manager/cmd/network.go:160.84,163.5 2 0 -FreeBSD-Command-manager/cmd/network.go:164.4,164.10 1 0 -FreeBSD-Command-manager/cmd/network.go:166.3,166.155 1 0 -FreeBSD-Command-manager/cmd/network.go:166.155,169.4 2 0 -FreeBSD-Command-manager/cmd/network.go:177.47,179.74 2 0 -FreeBSD-Command-manager/cmd/network.go:179.74,180.84 1 0 -FreeBSD-Command-manager/cmd/network.go:180.84,183.5 2 0 -FreeBSD-Command-manager/cmd/network.go:184.4,184.10 1 0 -FreeBSD-Command-manager/cmd/network.go:186.3,186.145 1 0 -FreeBSD-Command-manager/cmd/network.go:186.145,189.4 2 0 -FreeBSD-Command-manager/cmd/network.go:196.47,198.57 2 0 -FreeBSD-Command-manager/cmd/network.go:198.57,199.84 1 0 -FreeBSD-Command-manager/cmd/network.go:199.84,202.5 2 0 -FreeBSD-Command-manager/cmd/network.go:203.4,203.10 1 0 -FreeBSD-Command-manager/cmd/network.go:205.3,205.107 1 0 -FreeBSD-Command-manager/cmd/network.go:205.107,208.4 2 0 -FreeBSD-Command-manager/cmd/network.go:216.47,218.73 2 0 -FreeBSD-Command-manager/cmd/network.go:218.73,219.84 1 0 -FreeBSD-Command-manager/cmd/network.go:219.84,222.5 2 0 -FreeBSD-Command-manager/cmd/network.go:223.4,223.10 1 0 -FreeBSD-Command-manager/cmd/network.go:225.3,225.142 1 0 -FreeBSD-Command-manager/cmd/network.go:225.142,228.4 2 0 -FreeBSD-Command-manager/cmd/network.go:235.47,237.55 2 0 -FreeBSD-Command-manager/cmd/network.go:237.55,238.84 1 0 -FreeBSD-Command-manager/cmd/network.go:238.84,241.5 2 0 -FreeBSD-Command-manager/cmd/network.go:242.4,242.10 1 0 -FreeBSD-Command-manager/cmd/network.go:244.3,244.105 1 0 -FreeBSD-Command-manager/cmd/network.go:244.105,247.4 2 0 -FreeBSD-Command-manager/cmd/network.go:255.47,257.112 2 0 -FreeBSD-Command-manager/cmd/network.go:257.112,258.84 1 0 -FreeBSD-Command-manager/cmd/network.go:258.84,261.5 2 0 -FreeBSD-Command-manager/cmd/network.go:262.4,262.10 1 0 -FreeBSD-Command-manager/cmd/network.go:264.3,264.204 1 0 -FreeBSD-Command-manager/cmd/network.go:264.204,267.4 2 0 -FreeBSD-Command-manager/cmd/network.go:274.47,276.59 2 0 -FreeBSD-Command-manager/cmd/network.go:276.59,277.84 1 0 -FreeBSD-Command-manager/cmd/network.go:277.84,280.5 2 0 -FreeBSD-Command-manager/cmd/network.go:281.4,281.10 1 0 -FreeBSD-Command-manager/cmd/network.go:283.3,283.109 1 0 -FreeBSD-Command-manager/cmd/network.go:283.109,286.4 2 0 -FreeBSD-Command-manager/cmd/network.go:293.47,296.17 3 0 -FreeBSD-Command-manager/cmd/network.go:296.17,297.84 1 0 -FreeBSD-Command-manager/cmd/network.go:297.84,300.5 2 0 -FreeBSD-Command-manager/cmd/network.go:301.4,301.10 1 0 -FreeBSD-Command-manager/cmd/network.go:303.3,303.117 1 0 -FreeBSD-Command-manager/cmd/network.go:303.117,306.4 2 0 -FreeBSD-Command-manager/cmd/network.go:313.47,316.17 3 0 -FreeBSD-Command-manager/cmd/network.go:316.17,317.84 1 0 -FreeBSD-Command-manager/cmd/network.go:317.84,320.5 2 0 -FreeBSD-Command-manager/cmd/network.go:321.4,321.10 1 0 -FreeBSD-Command-manager/cmd/network.go:323.3,323.89 1 0 -FreeBSD-Command-manager/cmd/network.go:323.89,326.4 2 0 -FreeBSD-Command-manager/cmd/network.go:338.47,340.17 2 0 -FreeBSD-Command-manager/cmd/network.go:340.17,341.76 1 0 -FreeBSD-Command-manager/cmd/network.go:341.76,344.5 2 0 -FreeBSD-Command-manager/cmd/network.go:345.4,345.10 1 0 -FreeBSD-Command-manager/cmd/network.go:347.3,353.18 1 0 -FreeBSD-Command-manager/cmd/network.go:353.18,356.4 2 0 -FreeBSD-Command-manager/cmd/network.go:363.47,365.17 2 0 -FreeBSD-Command-manager/cmd/network.go:365.17,366.76 1 0 -FreeBSD-Command-manager/cmd/network.go:366.76,369.5 2 0 -FreeBSD-Command-manager/cmd/network.go:370.4,370.10 1 0 -FreeBSD-Command-manager/cmd/network.go:372.3,378.18 1 0 -FreeBSD-Command-manager/cmd/network.go:378.18,381.4 2 0 -FreeBSD-Command-manager/cmd/network.go:388.47,390.17 2 0 -FreeBSD-Command-manager/cmd/network.go:390.17,391.76 1 0 -FreeBSD-Command-manager/cmd/network.go:391.76,394.5 2 0 -FreeBSD-Command-manager/cmd/network.go:395.4,395.10 1 0 -FreeBSD-Command-manager/cmd/network.go:397.3,403.18 1 0 -FreeBSD-Command-manager/cmd/network.go:403.18,406.4 2 0 -FreeBSD-Command-manager/cmd/network.go:410.13,414.58 3 0 -FreeBSD-Command-manager/cmd/network.go:414.58,417.3 2 0 -FreeBSD-Command-manager/cmd/network.go:419.2,421.61 3 0 -FreeBSD-Command-manager/cmd/network.go:421.61,424.3 2 0 -FreeBSD-Command-manager/cmd/network.go:427.2,429.59 3 0 -FreeBSD-Command-manager/cmd/network.go:429.59,432.3 2 0 -FreeBSD-Command-manager/cmd/network.go:434.2,436.62 3 0 -FreeBSD-Command-manager/cmd/network.go:436.62,439.3 2 0 -FreeBSD-Command-manager/cmd/network.go:441.2,444.75 4 0 -FreeBSD-Command-manager/cmd/network.go:444.75,447.3 2 0 -FreeBSD-Command-manager/cmd/network.go:448.2,448.78 1 0 -FreeBSD-Command-manager/cmd/network.go:448.78,451.3 2 0 -FreeBSD-Command-manager/cmd/network.go:453.2,456.80 4 0 -FreeBSD-Command-manager/cmd/network.go:456.80,459.3 2 0 -FreeBSD-Command-manager/cmd/network.go:460.2,460.83 1 0 -FreeBSD-Command-manager/cmd/network.go:460.83,463.3 2 0 -FreeBSD-Command-manager/cmd/network.go:466.2,470.57 5 0 -FreeBSD-Command-manager/cmd/network.go:470.57,473.3 2 0 -FreeBSD-Command-manager/cmd/network.go:474.2,474.59 1 0 -FreeBSD-Command-manager/cmd/network.go:474.59,477.3 2 0 -FreeBSD-Command-manager/cmd/network.go:478.2,478.55 1 0 -FreeBSD-Command-manager/cmd/network.go:478.55,481.3 2 0 -FreeBSD-Command-manager/cmd/network.go:483.2,485.60 3 0 -FreeBSD-Command-manager/cmd/network.go:485.60,488.3 2 0 -FreeBSD-Command-manager/cmd/network.go:491.2,495.56 5 0 -FreeBSD-Command-manager/cmd/network.go:495.56,498.3 2 0 -FreeBSD-Command-manager/cmd/network.go:499.2,499.57 1 0 -FreeBSD-Command-manager/cmd/network.go:499.57,502.3 2 0 -FreeBSD-Command-manager/cmd/network.go:503.2,503.58 1 0 -FreeBSD-Command-manager/cmd/network.go:503.58,506.3 2 0 -FreeBSD-Command-manager/cmd/network.go:508.2,510.59 3 0 -FreeBSD-Command-manager/cmd/network.go:510.59,513.3 2 0 -FreeBSD-Command-manager/cmd/network.go:516.2,523.58 8 0 -FreeBSD-Command-manager/cmd/network.go:523.58,526.3 2 0 -FreeBSD-Command-manager/cmd/network.go:527.2,527.59 1 0 -FreeBSD-Command-manager/cmd/network.go:527.59,530.3 2 0 -FreeBSD-Command-manager/cmd/network.go:531.2,531.60 1 0 -FreeBSD-Command-manager/cmd/network.go:531.60,534.3 2 0 -FreeBSD-Command-manager/cmd/network.go:535.2,535.57 1 0 -FreeBSD-Command-manager/cmd/network.go:535.57,538.3 2 0 -FreeBSD-Command-manager/cmd/network.go:540.2,542.61 3 0 -FreeBSD-Command-manager/cmd/network.go:542.61,545.3 2 0 -FreeBSD-Command-manager/cmd/network.go:548.2,585.64 29 0 -FreeBSD-Command-manager/cmd/network.go:585.64,588.3 2 0 -FreeBSD-Command-manager/cmd/network.go:590.2,592.28 2 0 +FreeBSD-Command-manager/cmd/network.go:67.47,69.57 2 0 +FreeBSD-Command-manager/cmd/network.go:69.57,70.84 1 0 +FreeBSD-Command-manager/cmd/network.go:70.84,73.5 2 0 +FreeBSD-Command-manager/cmd/network.go:74.4,74.10 1 0 +FreeBSD-Command-manager/cmd/network.go:76.3,76.107 1 0 +FreeBSD-Command-manager/cmd/network.go:76.107,79.4 2 0 +FreeBSD-Command-manager/cmd/network.go:86.47,88.63 2 0 +FreeBSD-Command-manager/cmd/network.go:88.63,89.84 1 0 +FreeBSD-Command-manager/cmd/network.go:89.84,92.5 2 0 +FreeBSD-Command-manager/cmd/network.go:93.4,93.10 1 0 +FreeBSD-Command-manager/cmd/network.go:95.3,95.113 1 0 +FreeBSD-Command-manager/cmd/network.go:95.113,98.4 2 0 +FreeBSD-Command-manager/cmd/network.go:106.47,108.58 2 0 +FreeBSD-Command-manager/cmd/network.go:108.58,109.84 1 0 +FreeBSD-Command-manager/cmd/network.go:109.84,112.5 2 0 +FreeBSD-Command-manager/cmd/network.go:113.4,113.10 1 0 +FreeBSD-Command-manager/cmd/network.go:115.3,115.108 1 0 +FreeBSD-Command-manager/cmd/network.go:115.108,118.4 2 0 +FreeBSD-Command-manager/cmd/network.go:125.47,127.61 2 0 +FreeBSD-Command-manager/cmd/network.go:127.61,128.84 1 0 +FreeBSD-Command-manager/cmd/network.go:128.84,131.5 2 0 +FreeBSD-Command-manager/cmd/network.go:132.4,132.10 1 0 +FreeBSD-Command-manager/cmd/network.go:134.3,134.111 1 0 +FreeBSD-Command-manager/cmd/network.go:134.111,137.4 2 0 +FreeBSD-Command-manager/cmd/network.go:144.47,146.97 2 0 +FreeBSD-Command-manager/cmd/network.go:146.97,147.84 1 0 +FreeBSD-Command-manager/cmd/network.go:147.84,150.5 2 0 +FreeBSD-Command-manager/cmd/network.go:151.4,151.10 1 0 +FreeBSD-Command-manager/cmd/network.go:153.3,153.150 1 0 +FreeBSD-Command-manager/cmd/network.go:153.150,156.4 2 0 +FreeBSD-Command-manager/cmd/network.go:163.47,165.105 2 0 +FreeBSD-Command-manager/cmd/network.go:165.105,166.84 1 0 +FreeBSD-Command-manager/cmd/network.go:166.84,169.5 2 0 +FreeBSD-Command-manager/cmd/network.go:170.4,170.10 1 0 +FreeBSD-Command-manager/cmd/network.go:172.3,172.155 1 0 +FreeBSD-Command-manager/cmd/network.go:172.155,175.4 2 0 +FreeBSD-Command-manager/cmd/network.go:183.47,185.74 2 0 +FreeBSD-Command-manager/cmd/network.go:185.74,186.84 1 0 +FreeBSD-Command-manager/cmd/network.go:186.84,189.5 2 0 +FreeBSD-Command-manager/cmd/network.go:190.4,190.10 1 0 +FreeBSD-Command-manager/cmd/network.go:192.3,192.145 1 0 +FreeBSD-Command-manager/cmd/network.go:192.145,195.4 2 0 +FreeBSD-Command-manager/cmd/network.go:202.47,204.57 2 0 +FreeBSD-Command-manager/cmd/network.go:204.57,205.84 1 0 +FreeBSD-Command-manager/cmd/network.go:205.84,208.5 2 0 +FreeBSD-Command-manager/cmd/network.go:209.4,209.10 1 0 +FreeBSD-Command-manager/cmd/network.go:211.3,211.107 1 0 +FreeBSD-Command-manager/cmd/network.go:211.107,214.4 2 0 +FreeBSD-Command-manager/cmd/network.go:222.47,224.73 2 0 +FreeBSD-Command-manager/cmd/network.go:224.73,225.84 1 0 +FreeBSD-Command-manager/cmd/network.go:225.84,228.5 2 0 +FreeBSD-Command-manager/cmd/network.go:229.4,229.10 1 0 +FreeBSD-Command-manager/cmd/network.go:231.3,231.142 1 0 +FreeBSD-Command-manager/cmd/network.go:231.142,234.4 2 0 +FreeBSD-Command-manager/cmd/network.go:241.47,243.55 2 0 +FreeBSD-Command-manager/cmd/network.go:243.55,244.84 1 0 +FreeBSD-Command-manager/cmd/network.go:244.84,247.5 2 0 +FreeBSD-Command-manager/cmd/network.go:248.4,248.10 1 0 +FreeBSD-Command-manager/cmd/network.go:250.3,250.105 1 0 +FreeBSD-Command-manager/cmd/network.go:250.105,253.4 2 0 +FreeBSD-Command-manager/cmd/network.go:261.47,263.112 2 0 +FreeBSD-Command-manager/cmd/network.go:263.112,264.84 1 0 +FreeBSD-Command-manager/cmd/network.go:264.84,267.5 2 0 +FreeBSD-Command-manager/cmd/network.go:268.4,268.10 1 0 +FreeBSD-Command-manager/cmd/network.go:270.3,270.204 1 0 +FreeBSD-Command-manager/cmd/network.go:270.204,273.4 2 0 +FreeBSD-Command-manager/cmd/network.go:280.47,282.59 2 0 +FreeBSD-Command-manager/cmd/network.go:282.59,283.84 1 0 +FreeBSD-Command-manager/cmd/network.go:283.84,286.5 2 0 +FreeBSD-Command-manager/cmd/network.go:287.4,287.10 1 0 +FreeBSD-Command-manager/cmd/network.go:289.3,289.109 1 0 +FreeBSD-Command-manager/cmd/network.go:289.109,292.4 2 0 +FreeBSD-Command-manager/cmd/network.go:299.47,302.17 3 0 +FreeBSD-Command-manager/cmd/network.go:302.17,303.84 1 0 +FreeBSD-Command-manager/cmd/network.go:303.84,306.5 2 0 +FreeBSD-Command-manager/cmd/network.go:307.4,307.10 1 0 +FreeBSD-Command-manager/cmd/network.go:309.3,309.117 1 0 +FreeBSD-Command-manager/cmd/network.go:309.117,312.4 2 0 +FreeBSD-Command-manager/cmd/network.go:319.47,322.17 3 0 +FreeBSD-Command-manager/cmd/network.go:322.17,323.84 1 0 +FreeBSD-Command-manager/cmd/network.go:323.84,326.5 2 0 +FreeBSD-Command-manager/cmd/network.go:327.4,327.10 1 0 +FreeBSD-Command-manager/cmd/network.go:329.3,329.89 1 0 +FreeBSD-Command-manager/cmd/network.go:329.89,332.4 2 0 +FreeBSD-Command-manager/cmd/network.go:344.47,346.17 2 0 +FreeBSD-Command-manager/cmd/network.go:346.17,347.76 1 0 +FreeBSD-Command-manager/cmd/network.go:347.76,350.5 2 0 +FreeBSD-Command-manager/cmd/network.go:351.4,351.10 1 0 +FreeBSD-Command-manager/cmd/network.go:353.3,359.18 1 0 +FreeBSD-Command-manager/cmd/network.go:359.18,362.4 2 0 +FreeBSD-Command-manager/cmd/network.go:369.47,371.17 2 0 +FreeBSD-Command-manager/cmd/network.go:371.17,372.76 1 0 +FreeBSD-Command-manager/cmd/network.go:372.76,375.5 2 0 +FreeBSD-Command-manager/cmd/network.go:376.4,376.10 1 0 +FreeBSD-Command-manager/cmd/network.go:378.3,384.18 1 0 +FreeBSD-Command-manager/cmd/network.go:384.18,387.4 2 0 +FreeBSD-Command-manager/cmd/network.go:394.47,396.17 2 0 +FreeBSD-Command-manager/cmd/network.go:396.17,397.76 1 0 +FreeBSD-Command-manager/cmd/network.go:397.76,400.5 2 0 +FreeBSD-Command-manager/cmd/network.go:401.4,401.10 1 0 +FreeBSD-Command-manager/cmd/network.go:403.3,409.18 1 0 +FreeBSD-Command-manager/cmd/network.go:409.18,412.4 2 0 +FreeBSD-Command-manager/cmd/network.go:419.47,422.20 2 0 +FreeBSD-Command-manager/cmd/network.go:422.20,424.18 2 0 +FreeBSD-Command-manager/cmd/network.go:424.18,425.77 1 0 +FreeBSD-Command-manager/cmd/network.go:425.77,428.6 2 0 +FreeBSD-Command-manager/cmd/network.go:429.5,429.11 1 0 +FreeBSD-Command-manager/cmd/network.go:431.4,431.160 1 0 +FreeBSD-Command-manager/cmd/network.go:431.160,434.5 2 0 +FreeBSD-Command-manager/cmd/network.go:435.4,435.10 1 0 +FreeBSD-Command-manager/cmd/network.go:437.3,439.17 3 0 +FreeBSD-Command-manager/cmd/network.go:439.17,440.76 1 0 +FreeBSD-Command-manager/cmd/network.go:440.76,443.5 2 0 +FreeBSD-Command-manager/cmd/network.go:444.4,444.10 1 0 +FreeBSD-Command-manager/cmd/network.go:446.3,446.27 1 0 +FreeBSD-Command-manager/cmd/network.go:446.27,449.4 2 0 +FreeBSD-Command-manager/cmd/network.go:450.3,450.145 1 0 +FreeBSD-Command-manager/cmd/network.go:450.145,453.4 2 0 +FreeBSD-Command-manager/cmd/network.go:457.13,461.58 3 0 +FreeBSD-Command-manager/cmd/network.go:461.58,464.3 2 0 +FreeBSD-Command-manager/cmd/network.go:466.2,468.61 3 0 +FreeBSD-Command-manager/cmd/network.go:468.61,471.3 2 0 +FreeBSD-Command-manager/cmd/network.go:474.2,476.59 3 0 +FreeBSD-Command-manager/cmd/network.go:476.59,479.3 2 0 +FreeBSD-Command-manager/cmd/network.go:481.2,483.62 3 0 +FreeBSD-Command-manager/cmd/network.go:483.62,486.3 2 0 +FreeBSD-Command-manager/cmd/network.go:488.2,491.75 4 0 +FreeBSD-Command-manager/cmd/network.go:491.75,494.3 2 0 +FreeBSD-Command-manager/cmd/network.go:495.2,495.78 1 0 +FreeBSD-Command-manager/cmd/network.go:495.78,498.3 2 0 +FreeBSD-Command-manager/cmd/network.go:500.2,503.80 4 0 +FreeBSD-Command-manager/cmd/network.go:503.80,506.3 2 0 +FreeBSD-Command-manager/cmd/network.go:507.2,507.83 1 0 +FreeBSD-Command-manager/cmd/network.go:507.83,510.3 2 0 +FreeBSD-Command-manager/cmd/network.go:513.2,517.57 5 0 +FreeBSD-Command-manager/cmd/network.go:517.57,520.3 2 0 +FreeBSD-Command-manager/cmd/network.go:521.2,521.59 1 0 +FreeBSD-Command-manager/cmd/network.go:521.59,524.3 2 0 +FreeBSD-Command-manager/cmd/network.go:525.2,525.55 1 0 +FreeBSD-Command-manager/cmd/network.go:525.55,528.3 2 0 +FreeBSD-Command-manager/cmd/network.go:530.2,532.60 3 0 +FreeBSD-Command-manager/cmd/network.go:532.60,535.3 2 0 +FreeBSD-Command-manager/cmd/network.go:538.2,542.56 5 0 +FreeBSD-Command-manager/cmd/network.go:542.56,545.3 2 0 +FreeBSD-Command-manager/cmd/network.go:546.2,546.57 1 0 +FreeBSD-Command-manager/cmd/network.go:546.57,549.3 2 0 +FreeBSD-Command-manager/cmd/network.go:550.2,550.58 1 0 +FreeBSD-Command-manager/cmd/network.go:550.58,553.3 2 0 +FreeBSD-Command-manager/cmd/network.go:555.2,557.59 3 0 +FreeBSD-Command-manager/cmd/network.go:557.59,560.3 2 0 +FreeBSD-Command-manager/cmd/network.go:563.2,570.58 8 0 +FreeBSD-Command-manager/cmd/network.go:570.58,573.3 2 0 +FreeBSD-Command-manager/cmd/network.go:574.2,574.59 1 0 +FreeBSD-Command-manager/cmd/network.go:574.59,577.3 2 0 +FreeBSD-Command-manager/cmd/network.go:578.2,578.60 1 0 +FreeBSD-Command-manager/cmd/network.go:578.60,581.3 2 0 +FreeBSD-Command-manager/cmd/network.go:582.2,582.57 1 0 +FreeBSD-Command-manager/cmd/network.go:582.57,585.3 2 0 +FreeBSD-Command-manager/cmd/network.go:587.2,589.61 3 0 +FreeBSD-Command-manager/cmd/network.go:589.61,592.3 2 0 +FreeBSD-Command-manager/cmd/network.go:595.2,633.64 30 0 +FreeBSD-Command-manager/cmd/network.go:633.64,636.3 2 0 +FreeBSD-Command-manager/cmd/network.go:638.2,640.28 2 0 FreeBSD-Command-manager/cmd/route.go:28.47,29.38 1 0 FreeBSD-Command-manager/cmd/route.go:29.38,30.102 1 0 FreeBSD-Command-manager/cmd/route.go:30.102,33.5 2 0 @@ -233,6 +249,184 @@ FreeBSD-Command-manager/cmd/route.go:96.13,113.2 10 0 FreeBSD-Command-manager/cmd/version.go:23.47,30.17 2 0 FreeBSD-Command-manager/cmd/version.go:30.17,33.4 2 0 FreeBSD-Command-manager/cmd/version.go:37.13,39.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:54.102,59.2 1 15 +FreeBSD-Command-manager/internal/jail/manager.go:62.55,64.54 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:64.54,66.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:69.2,69.57 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:69.57,71.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:74.2,74.21 1 3 +FreeBSD-Command-manager/internal/jail/manager.go:74.21,75.64 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:75.64,77.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:81.2,87.16 2 3 +FreeBSD-Command-manager/internal/jail/manager.go:87.16,89.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:91.2,91.12 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:95.55,96.16 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:96.16,98.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:100.2,101.16 2 3 +FreeBSD-Command-manager/internal/jail/manager.go:101.16,103.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:105.2,105.12 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:109.54,110.16 1 8 +FreeBSD-Command-manager/internal/jail/manager.go:110.16,112.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:114.2,115.16 2 7 +FreeBSD-Command-manager/internal/jail/manager.go:115.16,117.3 1 2 +FreeBSD-Command-manager/internal/jail/manager.go:119.2,119.12 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:123.57,124.16 1 5 +FreeBSD-Command-manager/internal/jail/manager.go:124.16,126.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:129.2,129.37 1 4 +FreeBSD-Command-manager/internal/jail/manager.go:129.37,132.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:135.2,136.16 2 4 +FreeBSD-Command-manager/internal/jail/manager.go:136.16,138.3 1 1 +FreeBSD-Command-manager/internal/jail/manager.go:140.2,140.12 1 3 +FreeBSD-Command-manager/internal/jail/manager.go:144.61,146.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:146.16,148.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:149.2,150.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:150.16,152.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:153.2,153.19 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:157.74,158.16 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:158.16,160.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:161.2,162.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:162.16,164.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:165.2,166.16 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:166.16,168.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:169.2,169.29 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:169.29,170.24 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:170.24,172.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:174.2,174.51 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:181.56,183.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:186.63,187.49 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:187.49,188.72 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:188.72,190.4 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:192.2,192.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:196.68,198.50 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:198.50,200.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:201.2,201.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:205.62,207.50 2 0 +FreeBSD-Command-manager/internal/jail/manager.go:207.50,209.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:210.2,210.12 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:217.52,219.2 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:222.84,225.16 3 0 +FreeBSD-Command-manager/internal/jail/manager.go:225.16,227.3 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:228.2,228.28 1 0 +FreeBSD-Command-manager/internal/jail/manager.go:232.31,236.2 3 0 +FreeBSD-Command-manager/internal/jail/testing.go:30.63,34.2 3 4 +FreeBSD-Command-manager/internal/jail/testing.go:37.68,42.2 4 0 +FreeBSD-Command-manager/internal/jail/testing.go:45.62,49.2 3 0 +FreeBSD-Command-manager/internal/jail/testing.go:61.84,66.2 4 11 +FreeBSD-Command-manager/internal/jail/testing.go:78.86,83.19 3 6 +FreeBSD-Command-manager/internal/jail/testing.go:83.19,85.3 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:86.2,89.42 2 6 +FreeBSD-Command-manager/internal/jail/testing.go:89.42,90.18 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:91.15,92.38 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:93.18,94.47 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:95.16,96.30 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:97.17,98.30 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:99.15,100.37 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:101.15,102.34 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:103.13,104.23 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:104.23,106.5 1 6 +FreeBSD-Command-manager/internal/jail/testing.go:108.4,108.24 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:108.24,110.5 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:111.4,111.47 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:116.2,116.50 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:120.83,122.2 1 0 +FreeBSD-Command-manager/internal/jail/testing.go:125.31,129.2 3 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:56.42,65.29 7 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:65.29,68.31 2 29 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:68.31,69.26 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:69.26,73.5 3 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:74.4,76.12 3 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:79.3,79.25 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:79.25,80.12 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:83.3,86.31 4 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:89.2,89.24 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:89.24,93.3 3 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:95.2,95.15 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:98.43,100.2 1 29 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:102.47,104.20 2 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:104.20,106.3 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:107.2,107.11 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:110.73,111.38 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:111.38,113.3 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:114.2,114.8 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:117.103,118.53 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:118.53,120.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:121.2,121.38 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:121.38,123.3 1 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:124.2,124.39 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:124.39,126.3 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:127.2,127.29 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:130.47,131.38 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:131.38,133.35 2 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:133.35,134.67 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:134.67,136.5 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:141.48,142.73 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:142.73,144.35 2 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:144.35,146.36 2 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:146.36,148.81 2 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:148.81,150.65 2 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:150.65,151.65 1 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:151.65,153.8 1 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:156.5,156.54 1 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:162.48,163.38 1 25 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:163.38,165.35 2 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:165.35,167.51 2 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:167.51,169.5 1 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:170.4,171.56 2 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:171.56,173.85 2 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:173.85,175.25 2 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:175.25,177.7 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:179.5,179.54 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:185.65,186.23 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:186.23,188.3 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:189.2,189.21 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:189.21,191.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:192.2,192.27 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:192.27,194.3 1 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:195.2,195.20 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:195.20,197.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:198.2,198.19 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:198.19,200.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:201.2,201.18 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:201.18,203.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:204.2,204.23 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:204.23,206.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:207.2,207.23 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:207.23,209.3 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:210.2,210.21 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:210.21,212.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:213.2,213.18 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:213.18,215.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:216.2,216.18 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:216.18,218.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:219.2,219.18 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:219.18,221.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:222.2,222.18 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:222.18,224.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:225.2,225.18 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:225.18,227.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:228.2,228.16 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:231.36,233.2 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:235.34,237.2 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:239.40,241.2 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:243.33,245.2 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:247.32,249.2 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:251.31,253.2 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:255.36,257.2 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:259.36,261.2 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:263.34,265.2 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:267.31,269.2 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:271.31,273.2 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:275.31,277.2 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:279.31,281.2 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:283.31,285.2 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:287.52,288.40 1 4 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:288.40,290.3 1 3 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:291.2,291.19 1 1 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:294.46,296.16 2 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:296.16,298.3 1 0 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:300.2,301.18 2 2 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:301.18,304.3 2 8 +FreeBSD-Command-manager/pkg/ifconfig/parser.go:306.2,306.17 1 2 FreeBSD-Command-manager/internal/network/bareos/basic.go:9.54,10.16 1 3 FreeBSD-Command-manager/internal/network/bareos/basic.go:10.16,12.3 1 1 FreeBSD-Command-manager/internal/network/bareos/basic.go:14.2,15.16 2 2 @@ -308,17 +502,17 @@ FreeBSD-Command-manager/internal/network/bareos/ip.go:55.15,57.3 1 0 FreeBSD-Command-manager/internal/network/bareos/ip.go:58.2,61.16 4 0 FreeBSD-Command-manager/internal/network/bareos/ip.go:61.16,63.3 1 0 FreeBSD-Command-manager/internal/network/bareos/ip.go:64.2,64.12 1 0 -FreeBSD-Command-manager/internal/network/bareos/manager.go:48.51,52.2 1 40 -FreeBSD-Command-manager/internal/network/bareos/manager.go:55.51,57.16 2 1 +FreeBSD-Command-manager/internal/network/bareos/manager.go:48.51,52.2 1 42 +FreeBSD-Command-manager/internal/network/bareos/manager.go:55.51,57.16 2 2 FreeBSD-Command-manager/internal/network/bareos/manager.go:57.16,59.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/manager.go:60.2,60.44 1 1 -FreeBSD-Command-manager/internal/network/bareos/manager.go:64.64,65.16 1 2 +FreeBSD-Command-manager/internal/network/bareos/manager.go:60.2,60.44 1 2 +FreeBSD-Command-manager/internal/network/bareos/manager.go:64.64,65.16 1 3 FreeBSD-Command-manager/internal/network/bareos/manager.go:65.16,67.3 1 1 -FreeBSD-Command-manager/internal/network/bareos/manager.go:68.2,69.16 2 1 +FreeBSD-Command-manager/internal/network/bareos/manager.go:68.2,69.16 2 2 FreeBSD-Command-manager/internal/network/bareos/manager.go:69.16,71.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/manager.go:72.2,73.21 2 1 +FreeBSD-Command-manager/internal/network/bareos/manager.go:72.2,73.21 2 2 FreeBSD-Command-manager/internal/network/bareos/manager.go:73.21,75.3 1 0 -FreeBSD-Command-manager/internal/network/bareos/manager.go:76.2,76.23 1 1 +FreeBSD-Command-manager/internal/network/bareos/manager.go:76.2,76.23 1 2 FreeBSD-Command-manager/internal/network/bareos/manager.go:83.52,85.2 1 0 FreeBSD-Command-manager/internal/network/bareos/manager.go:88.84,92.2 3 0 FreeBSD-Command-manager/internal/network/bareos/manager.go:95.40,98.2 2 0 @@ -361,15 +555,15 @@ FreeBSD-Command-manager/internal/network/bareos/route.go:105.2,106.48 2 2 FreeBSD-Command-manager/internal/network/bareos/route.go:106.48,108.48 2 5 FreeBSD-Command-manager/internal/network/bareos/route.go:108.48,110.4 1 3 FreeBSD-Command-manager/internal/network/bareos/route.go:112.2,112.19 1 2 -FreeBSD-Command-manager/internal/network/bareos/testing.go:11.52,17.2 1 41 -FreeBSD-Command-manager/internal/network/bareos/testing.go:20.84,23.27 2 44 -FreeBSD-Command-manager/internal/network/bareos/testing.go:23.27,25.3 1 122 -FreeBSD-Command-manager/internal/network/bareos/testing.go:26.2,29.45 2 44 +FreeBSD-Command-manager/internal/network/bareos/testing.go:11.52,17.2 1 43 +FreeBSD-Command-manager/internal/network/bareos/testing.go:20.84,23.27 2 46 +FreeBSD-Command-manager/internal/network/bareos/testing.go:23.27,25.3 1 123 +FreeBSD-Command-manager/internal/network/bareos/testing.go:26.2,29.45 2 46 FreeBSD-Command-manager/internal/network/bareos/testing.go:29.45,31.3 1 1 -FreeBSD-Command-manager/internal/network/bareos/testing.go:34.2,34.49 1 43 -FreeBSD-Command-manager/internal/network/bareos/testing.go:34.49,36.3 1 32 +FreeBSD-Command-manager/internal/network/bareos/testing.go:34.2,34.49 1 45 +FreeBSD-Command-manager/internal/network/bareos/testing.go:34.49,36.3 1 34 FreeBSD-Command-manager/internal/network/bareos/testing.go:38.2,38.16 1 11 -FreeBSD-Command-manager/internal/network/bareos/testing.go:42.65,44.2 1 32 +FreeBSD-Command-manager/internal/network/bareos/testing.go:42.65,44.2 1 34 FreeBSD-Command-manager/internal/network/bareos/testing.go:47.67,49.2 1 1 FreeBSD-Command-manager/internal/network/bareos/testing.go:52.54,54.2 1 28 FreeBSD-Command-manager/internal/network/bareos/testing.go:57.47,59.2 1 1 @@ -419,198 +613,6 @@ FreeBSD-Command-manager/internal/network/bareos/vxlan.go:66.2,66.12 1 3 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:70.50,71.16 1 2 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:71.16,73.3 1 1 FreeBSD-Command-manager/internal/network/bareos/vxlan.go:75.2,75.32 1 1 -FreeBSD-Command-manager/pkg/jail/parser.go:19.51,23.21 4 3 -FreeBSD-Command-manager/pkg/jail/parser.go:23.21,25.24 2 8 -FreeBSD-Command-manager/pkg/jail/parser.go:25.24,27.12 2 2 -FreeBSD-Command-manager/pkg/jail/parser.go:29.3,30.34 2 6 -FreeBSD-Command-manager/pkg/jail/parser.go:30.34,31.12 1 1 -FreeBSD-Command-manager/pkg/jail/parser.go:33.3,34.29 2 5 -FreeBSD-Command-manager/pkg/jail/parser.go:34.29,35.13 1 25 -FreeBSD-Command-manager/pkg/jail/parser.go:36.16,37.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:38.17,39.28 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:40.20,41.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:42.20,43.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:44.16,45.26 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:48.3,48.30 1 5 -FreeBSD-Command-manager/pkg/jail/parser.go:50.2,50.19 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:56.42,65.29 7 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:65.29,68.31 2 29 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:68.31,69.26 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:69.26,73.5 3 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:74.4,76.12 3 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:79.3,79.25 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:79.25,80.12 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:83.3,86.31 4 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:89.2,89.24 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:89.24,93.3 3 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:95.2,95.15 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:98.43,100.2 1 29 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:102.47,104.20 2 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:104.20,106.3 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:107.2,107.11 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:110.73,111.38 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:111.38,113.3 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:114.2,114.8 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:117.103,118.53 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:118.53,120.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:121.2,121.38 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:121.38,123.3 1 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:124.2,124.39 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:124.39,126.3 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:127.2,127.29 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:130.47,131.38 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:131.38,133.35 2 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:133.35,134.67 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:134.67,136.5 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:141.48,142.73 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:142.73,144.35 2 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:144.35,146.36 2 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:146.36,148.81 2 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:148.81,150.65 2 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:150.65,151.65 1 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:151.65,153.8 1 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:156.5,156.54 1 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:162.48,163.38 1 25 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:163.38,165.35 2 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:165.35,167.51 2 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:167.51,169.5 1 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:170.4,171.56 2 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:171.56,173.85 2 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:173.85,175.25 2 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:175.25,177.7 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:179.5,179.54 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:185.65,186.23 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:186.23,188.3 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:189.2,189.21 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:189.21,191.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:192.2,192.27 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:192.27,194.3 1 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:195.2,195.20 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:195.20,197.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:198.2,198.19 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:198.19,200.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:201.2,201.18 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:201.18,203.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:204.2,204.23 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:204.23,206.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:207.2,207.23 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:207.23,209.3 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:210.2,210.21 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:210.21,212.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:213.2,213.18 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:213.18,215.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:216.2,216.18 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:216.18,218.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:219.2,219.18 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:219.18,221.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:222.2,222.18 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:222.18,224.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:225.2,225.18 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:225.18,227.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:228.2,228.16 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:231.36,233.2 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:235.34,237.2 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:239.40,241.2 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:243.33,245.2 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:247.32,249.2 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:251.31,253.2 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:255.36,257.2 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:259.36,261.2 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:263.34,265.2 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:267.31,269.2 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:271.31,273.2 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:275.31,277.2 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:279.31,281.2 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:283.31,285.2 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:287.52,288.40 1 4 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:288.40,290.3 1 3 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:291.2,291.19 1 1 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:294.46,296.16 2 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:296.16,298.3 1 0 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:300.2,301.18 2 2 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:301.18,304.3 2 8 -FreeBSD-Command-manager/pkg/ifconfig/parser.go:306.2,306.17 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:54.102,59.2 1 15 -FreeBSD-Command-manager/internal/jail/manager.go:62.55,64.54 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:64.54,66.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:69.2,69.57 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:69.57,71.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:74.2,74.21 1 3 -FreeBSD-Command-manager/internal/jail/manager.go:74.21,75.64 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:75.64,77.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:81.2,87.16 2 3 -FreeBSD-Command-manager/internal/jail/manager.go:87.16,89.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:91.2,91.12 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:95.55,96.16 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:96.16,98.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:100.2,101.16 2 3 -FreeBSD-Command-manager/internal/jail/manager.go:101.16,103.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:105.2,105.12 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:109.54,110.16 1 8 -FreeBSD-Command-manager/internal/jail/manager.go:110.16,112.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:114.2,115.16 2 7 -FreeBSD-Command-manager/internal/jail/manager.go:115.16,117.3 1 2 -FreeBSD-Command-manager/internal/jail/manager.go:119.2,119.12 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:123.57,124.16 1 5 -FreeBSD-Command-manager/internal/jail/manager.go:124.16,126.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:129.2,129.37 1 4 -FreeBSD-Command-manager/internal/jail/manager.go:129.37,132.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:135.2,136.16 2 4 -FreeBSD-Command-manager/internal/jail/manager.go:136.16,138.3 1 1 -FreeBSD-Command-manager/internal/jail/manager.go:140.2,140.12 1 3 -FreeBSD-Command-manager/internal/jail/manager.go:144.61,146.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:146.16,148.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:149.2,150.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:150.16,152.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:153.2,153.19 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:157.74,158.16 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:158.16,160.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:161.2,162.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:162.16,164.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:165.2,166.16 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:166.16,168.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:169.2,169.29 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:169.29,170.24 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:170.24,172.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:174.2,174.51 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:181.56,183.2 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:186.63,187.49 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:187.49,188.72 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:188.72,190.4 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:192.2,192.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:196.68,198.50 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:198.50,200.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:201.2,201.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:205.62,207.50 2 0 -FreeBSD-Command-manager/internal/jail/manager.go:207.50,209.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:210.2,210.12 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:217.52,219.2 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:222.84,225.16 3 0 -FreeBSD-Command-manager/internal/jail/manager.go:225.16,227.3 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:228.2,228.28 1 0 -FreeBSD-Command-manager/internal/jail/manager.go:232.31,236.2 3 0 -FreeBSD-Command-manager/internal/jail/testing.go:30.63,34.2 3 4 -FreeBSD-Command-manager/internal/jail/testing.go:37.68,42.2 4 0 -FreeBSD-Command-manager/internal/jail/testing.go:45.62,49.2 3 0 -FreeBSD-Command-manager/internal/jail/testing.go:61.84,66.2 4 11 -FreeBSD-Command-manager/internal/jail/testing.go:78.86,83.19 3 6 -FreeBSD-Command-manager/internal/jail/testing.go:83.19,85.3 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:86.2,89.42 2 6 -FreeBSD-Command-manager/internal/jail/testing.go:89.42,90.18 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:91.15,92.38 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:93.18,94.47 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:95.16,96.30 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:97.17,98.30 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:99.15,100.37 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:101.15,102.34 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:103.13,104.23 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:104.23,106.5 1 6 -FreeBSD-Command-manager/internal/jail/testing.go:108.4,108.24 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:108.24,110.5 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:111.4,111.47 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:116.2,116.50 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:120.83,122.2 1 0 -FreeBSD-Command-manager/internal/jail/testing.go:125.31,129.2 3 1 FreeBSD-Command-manager/pkg/netstat/parser.go:24.24,26.2 1 0 FreeBSD-Command-manager/pkg/netstat/parser.go:29.51,35.21 5 3 FreeBSD-Command-manager/pkg/netstat/parser.go:35.21,38.23 3 14 @@ -642,3 +644,17 @@ FreeBSD-Command-manager/pkg/netstat/parser.go:81.38,83.3 1 0 FreeBSD-Command-manager/pkg/netstat/parser.go:84.2,84.18 1 3 FreeBSD-Command-manager/pkg/netstat/parser.go:84.18,86.3 1 1 FreeBSD-Command-manager/pkg/netstat/parser.go:87.2,87.20 1 2 +FreeBSD-Command-manager/pkg/jail/parser.go:19.51,23.21 4 3 +FreeBSD-Command-manager/pkg/jail/parser.go:23.21,25.24 2 8 +FreeBSD-Command-manager/pkg/jail/parser.go:25.24,27.12 2 2 +FreeBSD-Command-manager/pkg/jail/parser.go:29.3,30.34 2 6 +FreeBSD-Command-manager/pkg/jail/parser.go:30.34,31.12 1 1 +FreeBSD-Command-manager/pkg/jail/parser.go:33.3,34.29 2 5 +FreeBSD-Command-manager/pkg/jail/parser.go:34.29,35.13 1 25 +FreeBSD-Command-manager/pkg/jail/parser.go:36.16,37.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:38.17,39.28 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:40.20,41.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:42.20,43.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:44.16,45.26 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:48.3,48.30 1 5 +FreeBSD-Command-manager/pkg/jail/parser.go:50.2,50.19 1 3 diff --git a/internal/network/bareos/manager_test.go b/internal/network/bareos/manager_test.go index f828906..5dcb92d 100644 --- a/internal/network/bareos/manager_test.go +++ b/internal/network/bareos/manager_test.go @@ -1,6 +1,7 @@ package bareos import ( + "FreeBSD-Command-manager/pkg/ifconfig" "errors" "os/exec" "strings" @@ -910,3 +911,69 @@ func TestListAllRoutes_Error(t *testing.T) { t.Errorf("expected error, got %v", err) } } + +func TestManager_List_IPs(t *testing.T) { + mockCmd := NewMockCommandExecutor() + mockCmd.SetOutput("ifconfig", `em0: flags=1008843 metric 0 mtu 1500 + inet 192.168.1.10 netmask 0xffffff00 + inet6 fe80::1 prefixlen 64 +lo0: flags=1008049 metric 0 mtu 16384 + inet 127.0.0.1 netmask 0xff000000 + inet6 ::1 prefixlen 128 +`) + manager := NewManager(mockCmd) + infos, err := manager.List() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + // Check em0 + em0 := findInfo(infos, "em0") + if em0 == nil { + t.Fatal("em0 not found") + } + if len(em0.IPv4) != 1 || em0.IPv4[0] != "192.168.1.10/24" { + t.Errorf("em0 IPv4 mismatch: %v", em0.IPv4) + } + if len(em0.IPv6) != 1 || em0.IPv6[0] != "fe80::1/64" { + t.Errorf("em0 IPv6 mismatch: %v", em0.IPv6) + } + // Check lo0 + lo0 := findInfo(infos, "lo0") + if lo0 == nil { + t.Fatal("lo0 not found") + } + if len(lo0.IPv4) != 1 || lo0.IPv4[0] != "127.0.0.1/8" { + t.Errorf("lo0 IPv4 mismatch: %v", lo0.IPv4) + } + if len(lo0.IPv6) != 1 || lo0.IPv6[0] != "::1/128" { + t.Errorf("lo0 IPv6 mismatch: %v", lo0.IPv6) + } +} + +func TestManager_GetInfo_IPs(t *testing.T) { + mockCmd := NewMockCommandExecutor() + mockCmd.SetOutput("ifconfig em0", `em0: flags=1008843 metric 0 mtu 1500 + inet 192.168.1.10 netmask 0xffffff00 + inet6 fe80::1 prefixlen 64 +`) + manager := NewManager(mockCmd) + info, err := manager.GetInfo("em0") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(info.IPv4) != 1 || info.IPv4[0] != "192.168.1.10/24" { + t.Errorf("em0 IPv4 mismatch: %v", info.IPv4) + } + if len(info.IPv6) != 1 || info.IPv6[0] != "fe80::1/64" { + t.Errorf("em0 IPv6 mismatch: %v", info.IPv6) + } +} + +func findInfo(infos []ifconfig.Info, name string) *ifconfig.Info { + for i := range infos { + if infos[i].Name == name { + return &infos[i] + } + } + return nil +}