This commit is contained in:
Michele Fadda 2015-07-29 17:57:09 +02:00
parent b51b7e4cf9
commit c084ad175f

View file

@ -82,23 +82,25 @@ func init() {
flag.BoolVar(&opts.Version, "v", false, "Version")
}
func connectRedis() {
var err error
opts.rdb, err = redis.Dial("tcp", opts.RedisUri)
func connectRedis(uri string) *redis.Client {
rdb, err := redis.Dial("tcp", opts.RedisUri)
if err != nil {
log.Println("Redis connect Error: ", err.Error())
os.Exit(-1)
}
return rdb
}
func connectMongo() {
var err error
opts.mdb, err = mgo.Dial(opts.MongoUri)
func connectMongo(uri string) (*mgo.Session, *mgo.Collection) {
mdb, err := mgo.Dial(uri)
if err != nil {
log.Println("Mongodb connect Error: ", err.Error())
os.Exit(-3)
}
opts.ll = opts.mdb.DB("dovecot").C("lastlogin")
ll := opts.mdb.DB("dovecot").C("lastlogin")
return mdb, ll
}
func checkPID(bpid []byte) bool {
@ -117,8 +119,14 @@ func checkPID(bpid []byte) bool {
return true
}
func writePID() {
func writePID(pfile string) {
fpid, err := os.OpenFile(pfile, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Println("PID file error: ", err.Error())
os.Exit(-5)
}
fpid.WriteString(strconv.Itoa(os.Getpid()))
fpid.Close()
}
func main() {
@ -134,13 +142,7 @@ func main() {
fmt.Println("Running: ", string(bpid))
os.Exit(-6)
} else {
fpid, err := os.OpenFile(opts.PIDFile, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Println("PID file error: ", err.Error())
os.Exit(-5)
}
fpid.WriteString(strconv.Itoa(os.Getpid()))
fpid.Close()
writePID(opts.PIDFile)
}
defer os.Remove(opts.PIDFile)
@ -159,10 +161,10 @@ func main() {
fmt.Printf("Start: %+v\n", opts)
log.Printf("Start: %+v\n", opts)
connectRedis()
opts.rdb = connectRedis(opts.RedisUri)
defer opts.rdb.Close()
connectMongo()
opts.mdb, opts.ll = connectMongo(opts.MongoUri)
defer opts.mdb.Close()
// // Estrae la lista degli utenti che hanno fatto login negli ultimi X min.