mirror of
https://github.com/jech/galene.git
synced 2024-11-22 08:35:57 +01:00
Simplify group expiration.
This commit is contained in:
parent
be0f05dac8
commit
1eb7716766
1 changed files with 11 additions and 8 deletions
|
@ -150,13 +150,17 @@ func (g *Group) ClientCount() int {
|
||||||
return len(g.clients)
|
return len(g.clients)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) EmptyTime() time.Duration {
|
func (g *Group) mayExpire() bool {
|
||||||
g.mu.Lock()
|
g.mu.Lock()
|
||||||
defer g.mu.Unlock()
|
defer g.mu.Unlock()
|
||||||
if len(g.clients) > 0 {
|
|
||||||
return 0
|
if g.description.Public {
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
return time.Since(g.timestamp)
|
if len(g.clients) > 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return time.Since(g.timestamp) > maxHistoryAge(g.description)
|
||||||
}
|
}
|
||||||
|
|
||||||
var groups struct {
|
var groups struct {
|
||||||
|
@ -1286,7 +1290,6 @@ func Update() {
|
||||||
}
|
}
|
||||||
|
|
||||||
names := GetNames()
|
names := GetNames()
|
||||||
|
|
||||||
for _, name := range names {
|
for _, name := range names {
|
||||||
g := Get(name)
|
g := Get(name)
|
||||||
if g == nil {
|
if g == nil {
|
||||||
|
@ -1294,13 +1297,13 @@ func Update() {
|
||||||
}
|
}
|
||||||
|
|
||||||
deleted := false
|
deleted := false
|
||||||
historyAge := maxHistoryAge(g.description)
|
if g.mayExpire() {
|
||||||
if !g.description.Public && g.EmptyTime() > historyAge {
|
|
||||||
// Delete checks if the group is still empty
|
// Delete checks if the group is still empty
|
||||||
deleted = Delete(name)
|
deleted = Delete(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !deleted && !descriptionUnchanged(name, g.description) {
|
// update group description
|
||||||
|
if !deleted {
|
||||||
Add(name, nil)
|
Add(name, nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue