Close file stream before upload. Hard code jpg http avatars (temporary). Still broken.

This commit is contained in:
lotodore
2009-03-21 19:56:53 +00:00
parent c72e034d3b
commit a102be7b8c
2 changed files with 10 additions and 14 deletions
+1
View File
@@ -364,6 +364,7 @@ AvatarManager::StoreAvatarInCache(const MD5Buf &md5buf, AvatarFileType avatarFil
if (!o.fail()) if (!o.fail())
{ {
o.write((const char *)data, size); o.write((const char *)data, size);
o.close();
if (upload && m_useExternalServer) if (upload && m_useExternalServer)
{ {
m_uploader->QueueUpload(m_externalServerAddress, m_externalServerUser, m_externalServerPassword, fileName, size); m_uploader->QueueUpload(m_externalServerAddress, m_externalServerUser, m_externalServerPassword, fileName, size);
+9 -14
View File
@@ -356,11 +356,8 @@ ClientThread::Main()
{ {
// Start sub-threads. // Start sub-threads.
m_senderThread->Start(); m_senderThread->Start();
if (!GetContext().GetAvatarServerAddr().empty()) m_avatarDownloader.reset(new DownloaderThread);
{ m_avatarDownloader->Run();
m_avatarDownloader.reset(new DownloaderThread);
m_avatarDownloader->Run();
}
SetState(CLIENT_INITIAL_STATE::Instance()); SetState(CLIENT_INITIAL_STATE::Instance());
// Main loop. // Main loop.
@@ -400,12 +397,8 @@ ClientThread::Main()
GetCallback().SignalNetClientError(e.GetErrorId(), e.GetOsErrorCode()); GetCallback().SignalNetClientError(e.GetErrorId(), e.GetOsErrorCode());
} }
// Terminate sub-threads. // Terminate sub-threads.
if (m_avatarDownloader) m_avatarDownloader->SignalTermination();
{ m_avatarDownloader->Join(DOWNLOADER_THREAD_TERMINATE_TIMEOUT);
m_avatarDownloader->SignalTermination();
m_avatarDownloader->Join(DOWNLOADER_THREAD_TERMINATE_TIMEOUT);
m_avatarDownloader.reset();
}
m_senderThread->SignalStop(); m_senderThread->SignalStop();
m_senderThread->WaitStop(); m_senderThread->WaitStop();
} }
@@ -564,8 +557,9 @@ ClientThread::RetrieveAvatarIfNeeded(unsigned id, const PlayerInfo &info)
string avatarServerAddress(GetContext().GetAvatarServerAddr()); string avatarServerAddress(GetContext().GetAvatarServerAddr());
if (!avatarServerAddress.empty() && m_avatarDownloader) if (!avatarServerAddress.empty() && m_avatarDownloader)
{ {
string filename(TEMP_AVATAR_FILENAME); string serverFileName(info.avatar.ToString() + ".jpg"); // TODO!
m_avatarDownloader->QueueDownload(id, avatarServerAddress + filename, GetContext().GetCacheDir() + filename); m_avatarDownloader->QueueDownload(
id, avatarServerAddress + serverFileName, GetContext().GetCacheDir() + TEMP_AVATAR_FILENAME);
} }
else else
{ {
@@ -627,7 +621,7 @@ ClientThread::PassAvatarDataToManager(unsigned playerId, boost::shared_ptr<Avata
else else
{ {
if (avatarData->fileType == AVATAR_FILE_TYPE_UNKNOWN) if (avatarData->fileType == AVATAR_FILE_TYPE_UNKNOWN)
avatarData->fileType = AVATAR_FILE_TYPE_PNG; // TODO! avatarData->fileType = AVATAR_FILE_TYPE_JPG; // TODO!
if (!GetAvatarManager().StoreAvatarInCache(tmpPlayerInfo.avatar, avatarData->fileType, &avatarData->fileData[0], avatarData->reportedSize, false)) if (!GetAvatarManager().StoreAvatarInCache(tmpPlayerInfo.avatar, avatarData->fileType, &avatarData->fileData[0], avatarData->reportedSize, false))
LOG_ERROR("Failed to store avatar in cache directory."); LOG_ERROR("Failed to store avatar in cache directory.");
@@ -655,6 +649,7 @@ ClientThread::CheckAvatarDownloads()
{ {
if (m_avatarDownloader && m_avatarDownloader->HasDownloadResult()) if (m_avatarDownloader && m_avatarDownloader->HasDownloadResult())
{ {
LOG_MSG("Avatar Download done.");
unsigned playerId; unsigned playerId;
boost::shared_ptr<AvatarData> tmpAvatar(new AvatarData); boost::shared_ptr<AvatarData> tmpAvatar(new AvatarData);
m_avatarDownloader->GetDownloadResult(playerId, tmpAvatar->fileData); m_avatarDownloader->GetDownloadResult(playerId, tmpAvatar->fileData);