Browse Source

Remove user images on disconnect.

pull/15/head
Joachim Bauch 12 years ago
parent
commit
c054a78f06
  1. 4
      src/app/spreed-speakfreely-server/hub.go
  2. 12
      src/app/spreed-speakfreely-server/images.go

4
src/app/spreed-speakfreely-server/hub.go

@ -275,10 +275,14 @@ func (h *Hub) unregisterHandler(c *Connection) { @@ -275,10 +275,14 @@ func (h *Hub) unregisterHandler(c *Connection) {
h.mutex.Unlock()
return
}
user := c.User
c.close()
delete(h.connectionTable, c.Id)
delete(h.userTable, c.Id)
h.mutex.Unlock()
if user != nil {
h.buddyImages.DeleteUserImage(user.Id)
}
//log.Printf("Unregister (%d) from %s: %s\n", c.Idx, c.RemoteAddr, c.Id)
h.server.OnUnregister(c)

12
src/app/spreed-speakfreely-server/images.go

@ -20,6 +20,8 @@ type ImageCache interface { @@ -20,6 +20,8 @@ type ImageCache interface {
Update(userId string, image string) string
Get(imageId string) *Image
DeleteUserImage(userId string)
}
type imageCache struct {
@ -97,3 +99,13 @@ func (self *imageCache) Get(imageId string) *Image { @@ -97,3 +99,13 @@ func (self *imageCache) Get(imageId string) *Image {
self.mutex.RUnlock()
return image
}
func (self *imageCache) DeleteUserImage(userId string) {
self.mutex.Lock()
imageId, ok := self.userImages[userId]
if ok {
delete(self.userImages, userId)
delete(self.images, imageId)
}
self.mutex.Unlock()
}

Loading…
Cancel
Save