eliminati tutti i warning

This commit is contained in:
miki 2016-10-05 11:55:50 +02:00
parent 8e384215b7
commit c2a5e09323
7 changed files with 47 additions and 21 deletions

View file

@ -20,7 +20,7 @@ type consumed struct {
func contains(s []Ips, e string) bool { func contains(s []Ips, e string) bool {
for _, a := range s { for _, a := range s {
if a.Ip == e { if a.IP == e {
return true return true
} }
} }
@ -66,7 +66,7 @@ func consumer(id int) {
ml := MongoLogin{ ml := MongoLogin{
User: prod.user, User: prod.user,
Protocol: sval[0], Protocol: sval[0],
Ip: sval[2], IP: sval[2],
Date: time.Unix(date, 0), Date: time.Unix(date, 0),
Insert: time.Now(), Insert: time.Now(),
} }
@ -95,6 +95,10 @@ func consumer(id int) {
if opts.Debug { if opts.Debug {
log.Printf("%+v\n", ml) log.Printf("%+v\n", ml)
} }
// inserisce last timestamp su redis per consolidamento
/*
*/
} }
cons.logins = append(cons.logins, login) cons.logins = append(cons.logins, login)

View file

@ -6,6 +6,7 @@ import (
"time" "time"
) )
// Counter structure
type Counter struct { type Counter struct {
mu sync.Mutex mu sync.Mutex
user int user int
@ -17,6 +18,7 @@ type Counter struct {
wg []int wg []int
} }
// NewCounter iniitialized Counter structure
func NewCounter() *Counter { func NewCounter() *Counter {
return &Counter{ return &Counter{
user: 0, user: 0,
@ -29,48 +31,56 @@ func NewCounter() *Counter {
} }
} }
// AddUser increment number of users managed
func (c *Counter) AddUser() { func (c *Counter) AddUser() {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
c.user++ c.user++
} }
// AddDuplicate increment number of duplicates log
func (c *Counter) AddDuplicate() { func (c *Counter) AddDuplicate() {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
c.dup++ c.dup++
} }
// AddLog increment number of log's rows managed
func (c *Counter) AddLog(add int) { func (c *Counter) AddLog(add int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
c.log += add c.log += add
} }
//AddRem increment removed logs row
func (c *Counter) AddRem(add int) { func (c *Counter) AddRem(add int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
c.rem += add c.rem += add
} }
// AddWG ...
func (c *Counter) AddWG(id int) { func (c *Counter) AddWG(id int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
c.wg[id]++ c.wg[id]++
} }
// AddErr ...
func (c *Counter) AddErr() { func (c *Counter) AddErr() {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
c.err++ c.err++
} }
// DelWG ...
func (c *Counter) DelWG(id int) { func (c *Counter) DelWG(id int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
c.wg[id]-- c.wg[id]--
} }
// GetUser return total users
func (c *Counter) GetUser() (ret int) { func (c *Counter) GetUser() (ret int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@ -78,6 +88,7 @@ func (c *Counter) GetUser() (ret int) {
return return
} }
// GetDup return total duplicated logins
func (c *Counter) GetDup() (ret int) { func (c *Counter) GetDup() (ret int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@ -85,6 +96,7 @@ func (c *Counter) GetDup() (ret int) {
return return
} }
// GetLog return total log's rows
func (c *Counter) GetLog() (ret int) { func (c *Counter) GetLog() (ret int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@ -92,6 +104,7 @@ func (c *Counter) GetLog() (ret int) {
return return
} }
// GetErr return total errors
func (c *Counter) GetErr() (ret int) { func (c *Counter) GetErr() (ret int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@ -99,6 +112,7 @@ func (c *Counter) GetErr() (ret int) {
return return
} }
// GetRem return total removed log's rows
func (c *Counter) GetRem() (ret int) { func (c *Counter) GetRem() (ret int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@ -106,6 +120,7 @@ func (c *Counter) GetRem() (ret int) {
return return
} }
// GetWG ...
func (c *Counter) GetWG(id int) (ret int) { func (c *Counter) GetWG(id int) (ret int) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@ -113,6 +128,7 @@ func (c *Counter) GetWG(id int) (ret int) {
return return
} }
// GetTime ...
func (c *Counter) GetTime() (ret float64) { func (c *Counter) GetTime() (ret float64) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@ -120,6 +136,7 @@ func (c *Counter) GetTime() (ret float64) {
return return
} }
// SetTime ...
func (c *Counter) SetTime(t time.Duration) { func (c *Counter) SetTime(t time.Duration) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()

21
dbs.go
View file

@ -14,40 +14,45 @@ import (
var ( var (
dbs = Dbs{ dbs = Dbs{
MongoUri: "mongodb://127.0.0.1:27018", MongoURI: "mongodb://127.0.0.1:27018",
RedisUri: "127.0.0.1:6379", RedisURI: "127.0.0.1:6379",
Database: "lastlogin", Database: "lastlogin",
} }
) )
// Dbs structure
type Dbs struct { type Dbs struct {
MongoUri string MongoURI string
Database string Database string
RedisUri string RedisURI string
rdb *redis.Pool //*redis.Client rdb *redis.Pool //*redis.Client
mdb *mgo.Session mdb *mgo.Session
ll *mgo.Collection ll *mgo.Collection
// us *mgo.Collection // us *mgo.Collection
} }
// MongoLogin structure
type MongoLogin struct { type MongoLogin struct {
User string `json:"user"` User string `json:"user"`
Protocol string `json:"protocol"` Protocol string `json:"protocol"`
Ip string `json:"ip"` IP string `json:"ip"`
Date time.Time `json:"date"` Date time.Time `json:"date"`
Insert time.Time `json:"insert"` Insert time.Time `json:"insert"`
} }
// Ips structure
type Ips struct { type Ips struct {
Ip string `json:"ip"` IP string `json:"ip"`
} }
// UserLogin structure
type UserLogin struct { type UserLogin struct {
User string `json:"user"` User string `json:"user"`
Date time.Time `json:"date"` Date time.Time `json:"date"`
Lock bool `json:"lock"` Lock bool `json:"lock"`
} }
// Index structure
type Index struct { type Index struct {
User string `json:"user"` User string `json:"user"`
Date time.Time `json:"date"` Date time.Time `json:"date"`
@ -61,7 +66,7 @@ func (db *Dbs) poolRedis() {
Wait: true, Wait: true,
IdleTimeout: 1 * time.Second, IdleTimeout: 1 * time.Second,
Dial: func() (redis.Conn, error) { Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", db.RedisUri) c, err := redis.Dial("tcp", db.RedisURI)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -77,7 +82,7 @@ func (db *Dbs) poolRedis() {
func (db *Dbs) connectMongo() { func (db *Dbs) connectMongo() {
var err error var err error
db.mdb, err = mgo.Dial(db.MongoUri) db.mdb, err = mgo.Dial(db.MongoURI)
if err != nil { if err != nil {
log.Println("Mongodb connect Error: ", err.Error()) log.Println("Mongodb connect Error: ", err.Error())
os.Exit(-3) os.Exit(-3)

View file

@ -11,7 +11,7 @@ import (
) )
const ( const (
_VERSION = "v2.8.0" _Version = "v2.8.0.1"
) )
var ( var (
@ -31,7 +31,7 @@ func main() {
flag.Parse() flag.Parse()
if opts.Version { if opts.Version {
fmt.Println(os.Args[0], _VERSION) fmt.Println(os.Args[0], _Version)
os.Exit(0) os.Exit(0)
} }

View file

@ -13,6 +13,7 @@ import (
"time" "time"
) )
// Options structure
type Options struct { type Options struct {
RedisTTL time.Duration RedisTTL time.Duration
CurrentPath string CurrentPath string
@ -41,7 +42,8 @@ var (
) )
func usage() { func usage() {
fmt.Println("Usage: llmongo -m <mongo uri> -r <redis uri> -t <redis keys ttl> -l <logfile> -b <concurrent thread> -T <running ttl> -x <xymon server> -H <hostname> -i <influxdb uri> -v\n") fmt.Println("Usage: llmongo -m <mongo uri> -r <redis uri> -t <redis keys ttl> -l <logfile> -b <concurrent thread> -T <running ttl> -x <xymon server> -H <hostname> -i <influxdb uri> -v")
fmt.Println()
os.Exit(0) os.Exit(0)
} }
@ -59,9 +61,9 @@ func init() {
flag.StringVar(&opts.Xymon, "x", "", "xymon server") flag.StringVar(&opts.Xymon, "x", "", "xymon server")
flag.StringVar(&opts.Influxdb, "i", "", "influxdb server") flag.StringVar(&opts.Influxdb, "i", "", "influxdb server")
flag.StringVar(&opts.Hostname, "H", "", "hostname") flag.StringVar(&opts.Hostname, "H", "", "hostname")
flag.StringVar(&dbs.MongoUri, "m", dbs.MongoUri, "Mongodb") flag.StringVar(&dbs.MongoURI, "m", dbs.MongoURI, "Mongodb")
flag.StringVar(&dbs.Database, "d", dbs.Database, "Mongodb Database") flag.StringVar(&dbs.Database, "d", dbs.Database, "Mongodb Database")
flag.StringVar(&dbs.RedisUri, "r", dbs.RedisUri, "Redis") flag.StringVar(&dbs.RedisURI, "r", dbs.RedisURI, "Redis")
flag.StringVar(&opts.LogFile, "l", opts.LogFile, "Logs filename") flag.StringVar(&opts.LogFile, "l", opts.LogFile, "Logs filename")
flag.IntVar(&opts.MaxLogins, "L", opts.MaxLogins, "Max lastlogins") flag.IntVar(&opts.MaxLogins, "L", opts.MaxLogins, "Max lastlogins")
flag.DurationVar(&opts.RedisTTL, "t", opts.RedisTTL, "Redis keys TTL") flag.DurationVar(&opts.RedisTTL, "t", opts.RedisTTL, "Redis keys TTL")

8
pid.go
View file

@ -16,6 +16,7 @@ var (
pid = PID{} pid = PID{}
) )
// PID structure
type PID struct { type PID struct {
PID string PID string
PIDFile string PIDFile string
@ -42,11 +43,8 @@ func (p *PID) readCmd() bool {
return false return false
} }
cmd := bytes.Trim(bcmd, "\x00") cmd := bytes.Trim(bcmd, "\x00")
if strings.Contains(string(cmd), opts.Exe) { if !strings.Contains(string(cmd), opts.Exe) {
return true
} else {
fmt.Printf("PID %s used by %s\n", pid, cmd) fmt.Printf("PID %s used by %s\n", pid, cmd)
return true
} }
return true return true
} }
@ -78,7 +76,7 @@ func (p *PID) Write(l bool) {
fpid.Close() fpid.Close()
} }
// Cancella il PIDFile // Remove cancella il PIDFile
func (p *PID) Remove() { func (p *PID) Remove() {
err := os.Remove(p.PIDFile) err := os.Remove(p.PIDFile)
if err != nil { if err != nil {

View file

@ -39,7 +39,7 @@ func producer(id int) {
break break
} }
// estrae tutti i login dell'utente "user" // estrae <MaxLogins> login dell'utente "user"
logs, err := redis.Strings(conn.Do("lrange", user, "1", strconv.Itoa(opts.MaxLogins))) logs, err := redis.Strings(conn.Do("lrange", user, "1", strconv.Itoa(opts.MaxLogins)))
if err != nil { if err != nil {
if opts.Debug { if opts.Debug {