diff --git a/cmd/banforge/command/fw.go b/cmd/banforge/command/fw.go index ae4591e..0f16932 100644 --- a/cmd/banforge/command/fw.go +++ b/cmd/banforge/command/fw.go @@ -16,53 +16,53 @@ var ( port int protocol string ) + var UnbanCmd = &cobra.Command{ Use: "unban", Short: "Unban IP", Run: func(cmd *cobra.Command, args []string) { - if len(args) == 0 { - fmt.Println("IP can't be empty") - os.Exit(1) - } - if ttl_fw == "" { - ttl_fw = "1y" - } - ip := args[0] - db, err := storage.NewBanWriter() + err := func() error { + if len(args) == 0 { + return fmt.Errorf("IP can't be empty") + } + if ttl_fw == "" { + ttl_fw = "1y" + } + ip := args[0] + db, err := storage.NewBanWriter() + if err != nil { + return err + } + cfg, err := config.LoadConfig() + if err != nil { + return err + } + fw := cfg.Firewall.Name + b := blocker.GetBlocker(fw, cfg.Firewall.Config) + if ip == "" { + return fmt.Errorf("IP can't be empty") + } + if net.ParseIP(ip) == nil { + return fmt.Errorf("Invalid IP") + } + if err != nil { + return err + } + err = b.Unban(ip) + if err != nil { + return err + } + err = db.RemoveBan(ip) + if err != nil { + return err + } + fmt.Println("IP unblocked successfully!") + return nil + }() if err != nil { fmt.Println(err) os.Exit(1) } - cfg, err := config.LoadConfig() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - fw := cfg.Firewall.Name - b := blocker.GetBlocker(fw, cfg.Firewall.Config) - if ip == "" { - fmt.Println("IP can't be empty") - os.Exit(1) - } - if net.ParseIP(ip) == nil { - fmt.Println("Invalid IP") - os.Exit(1) - } - if err != nil { - fmt.Println(err) - os.Exit(1) - } - err = b.Unban(ip) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - err = db.RemoveBan(ip) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - fmt.Println("IP unblocked successfully!") }, } @@ -70,49 +70,48 @@ var BanCmd = &cobra.Command{ Use: "ban", Short: "Ban IP", Run: func(cmd *cobra.Command, args []string) { - if len(args) == 0 { - fmt.Println("IP can't be empty") - os.Exit(1) - } - if ttl_fw == "" { - ttl_fw = "1y" - } - ip := args[0] - db, err := storage.NewBanWriter() + err := func() error { + if len(args) == 0 { + return fmt.Errorf("IP can't be empty") + } + if ttl_fw == "" { + ttl_fw = "1y" + } + ip := args[0] + db, err := storage.NewBanWriter() + if err != nil { + return err + } + cfg, err := config.LoadConfig() + if err != nil { + return err + } + fw := cfg.Firewall.Name + b := blocker.GetBlocker(fw, cfg.Firewall.Config) + if ip == "" { + return fmt.Errorf("IP can't be empty") + } + if net.ParseIP(ip) == nil { + return fmt.Errorf("Invalid IP") + } + if err != nil { + return err + } + err = b.Ban(ip) + if err != nil { + return err + } + err = db.AddBan(ip, ttl_fw, "manual ban") + if err != nil { + return err + } + fmt.Println("IP blocked successfully!") + return err + }() if err != nil { fmt.Println(err) os.Exit(1) } - cfg, err := config.LoadConfig() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - fw := cfg.Firewall.Name - b := blocker.GetBlocker(fw, cfg.Firewall.Config) - if ip == "" { - fmt.Println("IP can't be empty") - os.Exit(1) - } - if net.ParseIP(ip) == nil { - fmt.Println("Invalid IP") - os.Exit(1) - } - if err != nil { - fmt.Println(err) - os.Exit(1) - } - err = b.Ban(ip) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - err = db.AddBan(ip, ttl_fw, "manual ban") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - fmt.Println("IP blocked successfully!") }, }