diff --git a/cmd/ipbl/ipbl.go b/cmd/ipbl/ipbl.go index 7bbc044..4f966fa 100644 --- a/cmd/ipbl/ipbl.go +++ b/cmd/ipbl/ipbl.go @@ -1,7 +1,6 @@ package main import ( - "fmt" "log" "git.paulbsd.com/paulbsd/ipbl/src/config" @@ -14,8 +13,6 @@ import ( //var version string func main() { - var ipblCtx ipbl.IP - var cfg config.Config cfg.GetConfig() //cfg.Options.Version = version @@ -27,27 +24,7 @@ func main() { } defer cfg.Db.Close() - // Initialize ipbl app context - err = ipblCtx.Init(&cfg) - if err != nil { - log.Fatalln(err) - } - - var orphans = []ipbl.IP{} - cfg.Db.Where("rdns IS NULL").Asc("ip").Find(&orphans) - for _, i := range orphans { - reverse := i.UpdateRDNS() - if reverse == "" { - fmt.Printf("Set \"none\" rdns to IP %s\n", i.IP) - i.Rdns = "none" - cfg.Db.ID(i.ID).Cols("rdns").Update(&i) - } else { - fmt.Printf("%s %s\n", i.IP, reverse) - i.Rdns = reverse - cfg.Db.ID(i.ID).Cols("rdns").Update(&i) - } - } - fmt.Println("end") + go ipbl.ScanIP(&cfg) // Run the ipbl web service err = ipblws.RunServer(&cfg) diff --git a/src/ipbl/ip.go b/src/ipbl/ip.go index 7fb2493..41eac16 100644 --- a/src/ipbl/ip.go +++ b/src/ipbl/ip.go @@ -1,16 +1,13 @@ package ipbl import ( + "fmt" "net" "time" "git.paulbsd.com/paulbsd/ipbl/src/config" ) -func (i *IP) Init(*config.Config) (err error) { - return nil -} - func (i *IP) UpdateRDNS() (result string) { res, err := net.LookupAddr(i.IP) if err != nil { @@ -19,6 +16,30 @@ func (i *IP) UpdateRDNS() (result string) { return res[0] } +func ScanIP(cfg *config.Config) { + for { + var orphans = []IP{} + cfg.Db.Where("rdns IS NULL").Asc("ip").Find(&orphans) + if len(orphans) > 0 { + for _, i := range orphans { + reverse := i.UpdateRDNS() + if reverse == "" { + fmt.Printf("Set \"none\" rdns to IP %s\n", i.IP) + i.Rdns = "none" + cfg.Db.ID(i.ID).Cols("rdns").Update(&i) + } else { + fmt.Printf("%s %s\n", i.IP, reverse) + i.Rdns = reverse + cfg.Db.ID(i.ID).Cols("rdns").Update(&i) + } + } + } else { + fmt.Println("end") + break + } + } +} + // User describe accounts type IP struct { ID int `xorm:"pk autoincr" json:"-"`