summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-09-05 13:30:28 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-09-05 13:30:28 (GMT)
commite8dbe2e2b78cd5e4a66e2e580e12d05b2e69b120 (patch)
treeafe7e15f393ac2a5572e9b5cc16947840c6fa1e9 /Swiften/Avatars/VCardUpdateAvatarManager.cpp
parent89f18c8af344fc94bb5cf19035c74385d1c9df9c (diff)
downloadswift-e8dbe2e2b78cd5e4a66e2e580e12d05b2e69b120.zip
swift-e8dbe2e2b78cd5e4a66e2e580e12d05b2e69b120.tar.bz2
Do not store null VCard avatars.
Diffstat (limited to 'Swiften/Avatars/VCardUpdateAvatarManager.cpp')
-rw-r--r--Swiften/Avatars/VCardUpdateAvatarManager.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/Swiften/Avatars/VCardUpdateAvatarManager.cpp b/Swiften/Avatars/VCardUpdateAvatarManager.cpp
index dbc0b9b..24abfa1 100644
--- a/Swiften/Avatars/VCardUpdateAvatarManager.cpp
+++ b/Swiften/Avatars/VCardUpdateAvatarManager.cpp
@@ -50,13 +50,18 @@ void VCardUpdateAvatarManager::handleVCardChanged(const JID& from, VCard::ref vC
50 if (!vCard) { 50 if (!vCard) {
51 std::cerr << "Warning: " << from << ": null vcard payload" << std::endl; 51 std::cerr << "Warning: " << from << ": null vcard payload" << std::endl;
52 return; 52 return;
53 } 53 }
54 54
55 String hash = Hexify::hexify(SHA1::getHash(vCard->getPhoto())); 55 if (vCard->getPhoto().isEmpty()) {
56 avatarStorage_->addAvatar(hash, vCard->getPhoto()); 56 setAvatarHash(from, "");
57 setAvatarHash(from, hash); 57 }
58 else {
59 String hash = Hexify::hexify(SHA1::getHash(vCard->getPhoto()));
60 avatarStorage_->addAvatar(hash, vCard->getPhoto());
61 setAvatarHash(from, hash);
62 }
58} 63}
59 64
60void VCardUpdateAvatarManager::setAvatarHash(const JID& from, const String& hash) { 65void VCardUpdateAvatarManager::setAvatarHash(const JID& from, const String& hash) {
61 avatarHashes_[from] = hash; 66 avatarHashes_[from] = hash;
62 onAvatarChanged(from, hash); 67 onAvatarChanged(from, hash);