Only allow blob-storage for registered users.

This commit is contained in:
Mikkel Krautz 2011-04-11 18:05:24 +02:00
parent 1c297dfbf8
commit 1f97723cfd

View file

@ -637,7 +637,7 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
broadcast := false broadcast := false
if userstate.Texture != nil { if userstate.Texture != nil && target.user != nil {
key, err := globalBlobstore.Put(userstate.Texture) key, err := globalBlobstore.Put(userstate.Texture)
if err != nil { if err != nil {
log.Panicf("Blobstore error: %v", err.String()) log.Panicf("Blobstore error: %v", err.String())
@ -677,7 +677,7 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
target.PluginIdentity = *userstate.PluginIdentity target.PluginIdentity = *userstate.PluginIdentity
} }
if userstate.Comment != nil { if userstate.Comment != nil && target.user != nil {
key, err := globalBlobstore.Put([]byte(*userstate.Comment)) key, err := globalBlobstore.Put([]byte(*userstate.Comment))
if err != nil { if err != nil {
log.Panicf("Blobstore error: %v", err.String()) log.Panicf("Blobstore error: %v", err.String())
@ -782,15 +782,21 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
// If a texture hash is set on user, we transmit that instead of // If a texture hash is set on user, we transmit that instead of
// the texture itself. This allows the client to intelligently fetch // the texture itself. This allows the client to intelligently fetch
// the blobs that it does not already have in its local storage. // the blobs that it does not already have in its local storage.
if userstate.Texture != nil && target.user.HasTexture() { if userstate.Texture != nil && target.user != nil && target.user.HasTexture() {
userstate.Texture = nil userstate.Texture = nil
userstate.TextureHash = target.user.TextureBlobHashBytes() userstate.TextureHash = target.user.TextureBlobHashBytes()
} else if target.user == nil {
userstate.Texture = nil
userstate.TextureHash = nil
} }
// Ditto for comments. // Ditto for comments.
if userstate.Comment != nil && target.user.HasComment() { if userstate.Comment != nil && target.user.HasComment() {
userstate.Comment = nil userstate.Comment = nil
userstate.CommentHash = target.user.CommentBlobHashBytes() userstate.CommentHash = target.user.CommentBlobHashBytes()
} else if target.user == nil {
userstate.Comment = nil
userstate.CommentHash = nil
} }
err := server.broadcastProtoMessageWithPredicate(MessageUserState, userstate, func(client *Client) bool { err := server.broadcastProtoMessageWithPredicate(MessageUserState, userstate, func(client *Client) bool {