From 63ec10fdcc402bf07f7a8c0dfb326feb60249038 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Thu, 6 Jan 2011 16:08:19 +0200 Subject: [PATCH] =?utf8?q?=D0=92=D0=B8=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?utf8?q?=D0=BD=D0=BE=20=D0=BD=D0=B5=D0=BA=D0=BE=D1=80=D0=B5=D0=BA=D1=82?= =?utf8?q?=D0=BD=D1=83=20=D1=80=D0=BE=D0=B1=D0=BE=D1=82=D1=83=20=D0=B7=20?= =?utf8?q?=D0=BF=D0=B5=D1=80=D1=96=D0=BE=D0=B4=D0=BE=D0=BC=20=D0=B2=D1=96?= =?utf8?q?=D0=B4=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=B2?= =?utf8?q?=D1=96=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- projects/stargazer/user.cpp | 58 ++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/projects/stargazer/user.cpp b/projects/stargazer/user.cpp index e63d37d3..3d9371fd 100644 --- a/projects/stargazer/user.cpp +++ b/projects/stargazer/user.cpp @@ -1158,8 +1158,8 @@ if (SendMessage(*msg)) if (store->AddMessage(msg, login)) { errorStr = store->GetStrError(); - WriteServLog("Error adding message %s", errorStr.c_str()); - WriteServLog("%s", store->GetStrError().c_str()); + WriteServLog("Error adding message: '%s'", errorStr.c_str()); + printfd(__FILE__, "Error adding message: '%s'\n", errorStr.c_str()); return -1; } messages.push_back(*msg); @@ -1178,8 +1178,8 @@ else if (store->AddMessage(msg, login)) { errorStr = store->GetStrError(); - WriteServLog("Error adding message %s", errorStr.c_str()); - WriteServLog("%s", store->GetStrError().c_str()); + WriteServLog("Error adding repeatable message: '%s'", errorStr.c_str()); + printfd(__FILE__, "Error adding repeatable message: '%s'\n", errorStr.c_str()); return -1; } messages.push_back(*msg); @@ -1256,34 +1256,40 @@ for (unsigned i = 0; i < hdrsList.size(); i++) std::list::iterator it(messages.begin()); while (it != messages.end()) { - if (SendMessage(*it)) - { - return -1; - } - it->header.repeat--; - if (it->header.repeat < 0) + if (static_cast(it->header.lastSendTime + it->header.repeatPeriod * 60) < stgTime) { - printfd(__FILE__, "DelMessage\n"); - if (store->DelMessage(it->header.id, login)) + if (SendMessage(*it)) { - WriteServLog("Error deleting message: '%s'", store->GetStrError().c_str()); - printfd(__FILE__, "Error deleting message: '%s'\n", store->GetStrError().c_str()); + return -1; + } + it->header.repeat--; + if (it->header.repeat < 0) + { + if (store->DelMessage(it->header.id, login)) + { + WriteServLog("Error deleting message: '%s'", store->GetStrError().c_str()); + printfd(__FILE__, "Error deleting message: '%s'\n", store->GetStrError().c_str()); + } + messages.erase(it++); + } + else + { + #ifndef DEBUG + //TODO: gcc v. 4.x generate ICE on x86_64 + it->header.lastSendTime = time(NULL); + #else + it->header.lastSendTime = stgTime; + #endif + if (store->EditMessage(*it, login)) + { + WriteServLog("Error modifying message: '%s'", store->GetStrError().c_str()); + printfd(__FILE__, "Error modifying message: '%s'\n", store->GetStrError().c_str()); + } + ++it; } - messages.erase(it++); } else { - #ifndef DEBUG - //TODO: gcc v. 4.x generate ICE on x86_64 - it->header.lastSendTime = time(NULL); - #else - it->header.lastSendTime = stgTime; - #endif - if (store->EditMessage(*it, login)) - { - WriteServLog("Error modifying message: '%s'", store->GetStrError().c_str()); - printfd(__FILE__, "Error modifying message: '%s'\n", store->GetStrError().c_str()); - } ++it; } } -- 2.44.2