/** log that user logged in with error*/ bool cRegList::LoginError(cConnDC *conn, const string &nick) { if(!FindRegInfo(mModel, nick)) return false; mModel.mErrorLast = cTime().Sec(); mModel.mErrorIP = conn->AddrIP(); mModel.mErrorCount++; return UpdatePK(); }
ostream &operator << (ostream &os, const cPenaltyList::sPenalty &penalty) { cTime Now = cTime().Sec(); if ((penalty.mStartChat > Now) && (penalty.mStartPM > Now)) os << autosprintf(_("Setting main and private chat rights for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStartChat - Now).AsPeriod().AsString().c_str()); if ((penalty.mStartChat > Now) && (penalty.mStartPM < Now)) os << autosprintf(_("Setting main chat right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStartChat - Now).AsPeriod().AsString().c_str()); if ((penalty.mStartPM > Now) && (penalty.mStartChat < Now)) os << autosprintf(_("Setting private chat right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStartPM - Now).AsPeriod().AsString().c_str()); if (penalty.mStartSearch > Now) os << autosprintf(_("Setting search right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStartSearch - Now).AsPeriod().AsString().c_str()); if (penalty.mStartCTM > Now) os << autosprintf(_("Setting download right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStartCTM - Now).AsPeriod().AsString().c_str()); if (penalty.mStopKick > Now) os << autosprintf(_("Setting kick right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStopKick - Now).AsPeriod().AsString().c_str()); if (penalty.mStopShare0 > Now) os << autosprintf(_("Setting hidden share right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStopShare0 - Now).AsPeriod().AsString().c_str()); if (penalty.mStopReg > Now) os << autosprintf(_("Setting registering right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStopReg - Now).AsPeriod().AsString().c_str()); if (penalty.mStopOpchat > Now) os << autosprintf(_("Setting operator chat right for %s to %s."), penalty.mNick.c_str(), cTime(penalty.mStopOpchat - Now).AsPeriod().AsString().c_str()); return os; }
void cBan::DisplayComplete(ostream &os) { DisplayUser(os); os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("OP") << mNickOp.c_str() << "\r\n"; os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("Ban type") << this->GetBanType() << "\r\n"; os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("Last hit"); if (!mLastHit) os << _("Never"); else os << autosprintf(_("%s ago"), cTime(cTime().Sec() - mLastHit).AsPeriod().AsString().c_str()); os << "\r\n"; }
void RTSaveFields(int pieceNumber) { int nI = pieceNumber - 1; SendMessage(hCtlMINONTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].minOnTime = cTime(tempString); SendMessage(hCtlMAXONTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].maxOnTime = cTime(tempString); SendMessage(hCtlMINOFFTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].minOffTime = cTime(tempString); SendMessage(hCtlMAXOFFTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].maxOffTime = cTime(tempString); SendMessage(hCtlMINPAYTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].minPayTime = thhmm(tempString); SendMessage(hCtlMAXPAYTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].maxPayTime = thhmm(tempString); SendMessage(hCtlMINPIECESIZE, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].minPieceSize = thhmm(tempString); SendMessage(hCtlDESPIECESIZE, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].desPieceSize = thhmm(tempString); SendMessage(hCtlMAXPIECESIZE, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].maxPieceSize = thhmm(tempString); SendMessage(hCtlMINBREAKTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].minBreakTime = thhmm(tempString); SendMessage(hCtlDESBREAKTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].desBreakTime = thhmm(tempString); SendMessage(hCtlMAXBREAKTIME, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); localRT.PIECE[nI].maxBreakTime = thhmm(tempString); localRT.PIECE[nI].flags = 0; if(SendMessage(hCtlTRAVELINCLUDEDINMIN, BM_GETCHECK, (WPARAM)0, (LPARAM)0)) localRT.PIECE[nI].flags |= PIECEFLAGS_TRAVELINCLUDEDINMIN; if(SendMessage(hCtlTRAVELINCLUDEDINMAX, BM_GETCHECK, (WPARAM)0, (LPARAM)0)) localRT.PIECE[nI].flags |= PIECEFLAGS_TRAVELINCLUDEDINMAX; if(SendMessage(hCtlPAYONLYAPPLIES, BM_GETCHECK, (WPARAM)0, (LPARAM)0)) localRT.PIECE[nI].flags |= PIECEFLAGS_PAYONLYAPPLIES; }
/** add registered user */ bool cRegList::AddRegUser(const string &nick, cConnDC *op, int cl, const char *password) { cRegUserInfo ui; if(FindRegInfo(ui, nick)) return false; // Do not register opchat or hub security if(toLower(nick) == toLower(mS->mC.opchat_name) || toLower(nick) == toLower(mS->mC.hub_security)) return false; ui.mNick = nick;//@todo nick2dbkey if ((cl>=1 && cl<=5) || cl==10 || cl==-1) ui.mClass = cl; else ui.mClass = 1; ui.mRegDate = cTime().Sec(); ui.mRegOp = (op && op->mpUser) ? op->mpUser->mNick : string("hub-security"); if(password) ui.SetPass(string(password),mS->mC.default_password_encryption); else ui.SetPass(string(),mS->mC.default_password_encryption); if(cl < 0) ui.mPwdChange = false; if(mCache.IsLoaded()) mCache.Add(nick);//@todo nick2dbkey SetBaseTo(&ui); return SavePK(); }
void cIPLog::GetLastLogin(const string &who, bool isNick, int limit, ostream &os) { string ip; if(isNick) os << autosprintf(_("Nick %s has lately been in the hub with the following IP"), who.c_str()) << "\n"; else os << autosprintf(_("IP %s has lately been in the hub with following nicknames"), who.c_str()) << "\n"; MakeSearchQuery(who, isNick, 1, limit); SetBaseTo(&mModel); os << "\n "; os << setw(25) << setiosflags(ios::left) << toUpper(_("Date")); os << (isNick ? "IP" : toUpper(_("Nickname"))) << "\n"; os << " " << string(25+20,'=') << endl; db_iterator it; for(it = db_begin(); it != db_end(); ++it) { cBanList::Num2Ip(mModel.mIP, ip); os << " " << setw(25) << setiosflags(ios::left) << cTime(mModel.mDate,0).AsDate(); os << (isNick ? ip : mModel.mNick) << endl; } mQuery.Clear(); }
void cBan::DisplayUser(ostream &os) { os << "\r\n"; if (mNick.size()) os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("Nickname") << mNick.c_str() << "\r\n"; if (mIP.size() && (mIP[0] != '_')) os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("IP") << mIP.c_str() << "\r\n"; os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("Reason") << mReason.c_str() << "\r\n"; // append extra ban message if (!mS->mC.ban_extra_message.empty()) os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("Extra message") << mS->mC.ban_extra_message << "\r\n"; os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("Time"); if (mDateEnd) { cTime HowLong(mDateEnd - cTime().Sec()); os << HowLong.AsPeriod().AsString().c_str() << " " << _("remaining"); } else os << _("Permanent"); os << "\r\n"; string initialRange, endRange; if (mRangeMin) { cBanList::Num2Ip(mRangeMin, initialRange); cBanList::Num2Ip(mRangeMax, endRange); os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("IP range") << initialRange.c_str() << "-" << endRange.c_str() << "\r\n"; } if (mShare) os << " [*] " << setw(PADDING) << setiosflags(ios::left) << _("Share") << mShare << " (" << convertByte(mShare, false).c_str() << ")" << "\r\n"; }
void cIPLog::GetHistory(const string &who, bool isNick, int limit, ostream &os) { string ip; if(isNick) os << autosprintf(_("Last %d events of nick %s:"), limit, who.c_str()) << "\r\n"; else os << autosprintf(_("Last %d events of IP %s:"), limit, who.c_str()) << "\r\n"; MakeSearchQuery(who, isNick, -1, limit); SetBaseTo(&mModel); const char *Actions[]={_("connect"),_("login"),_("logout"),_("disconnect")}; const char *Infos[]={ "--", _("bad nick or nick temporarily banned"), _("used different nick in chat"), _("kicked"), _("redirected"), _("exit from the hub"), _("critical hub load"), _("timeout"), _("user did nothing for too long time"), _("hub full"), _("share limit"), _("no tag or not valid"), _("tag breaks hub rules"), _("wrong password"), _("error in login sequence"), _("syntax error in some messages"), _("invalid key") }; os << "\n "; os << setw(20) << setiosflags(ios::left) << toUpper(_("Date")); os << setw(20) << setiosflags(ios::left) << toUpper(_("Action")); os << setw(15) << setiosflags(ios::left) << (isNick ? "IP" : toUpper(_("Nickname"))); os << toUpper(_("Info")) << "\n"; os << " " << string(20+20+15+25,'=') << endl; db_iterator it; for(it = db_begin(); it != db_end(); ++it) { cBanList::Num2Ip(mModel.mIP, ip); os << " " << setw(20) << setiosflags(ios::left) << cTime(mModel.mDate,0).AsDate(); os << setw(20) << setiosflags(ios::left); if(mModel.mType < 4) os << Actions[mModel.mType]; else os << mModel.mType; os << setw(15) << setiosflags(ios::left) << (isNick ? ip : mModel.mNick.substr(0,14)); if(mModel.mInfo < 16) { if(strlen(Infos[mModel.mInfo]) > 0) os << Infos[mModel.mInfo]; } else os << mModel.mInfo; os << endl; } mQuery.Clear(); }
/** log that user logged in */ bool cRegList::Login(cConnDC *conn, const string &nick) { cRegUserInfo ui; if(!FindRegInfo(ui, nick)) return false; ui.mLoginLast = cTime().Sec(); ui.mLoginIP = conn->AddrIP(); ui.mLoginCount++; return UpdatePK(); }
void cStats::CleanUp() { mQuery.Clear(); mQuery.OStream() << "delete from " << mMySQLTable.mName << " where(" "realtime < " << cTime().Sec() - 7 * 3600* 24 << ")"; mQuery.Query(); mQuery.Clear(); }
void cPenaltyList::Cleanup() { time_t Now = cTime().Sec(); cQuery query(mMySQL); query.OStream() << "DELETE FROM " << mMySQLTable.mName << " WHERE since <" << Now - 3600*24*7 << " AND st_kick != 0 AND st_share0 != 0 AND st_opchat != 0 AND st_reg != 0"; query.Query(); query.Clear(); }
void cBan::DisplayKick(ostream &os) { os << "\t\t"; if (mDateEnd) { cTime HowLong(mDateEnd - cTime().Sec(), 0); if (HowLong.Sec() < 0) { os << autosprintf(_("Expired %s"), cTime(mDateEnd, 0).AsDate().AsString().c_str()); } else { os << HowLong.AsPeriod().AsString().c_str(); } } else { os << _("Permanent"); } os << "\t\t"; if (!mLastHit) os << _("Never"); else os << cTime(cTime().Sec() - mLastHit).AsPeriod().AsString(); }
/** log that user logged in */ bool cIPLog::Log(cConnDC *conn, int action, int info) { sUserStruct entry; entry.mIP = cBanList::Ip2Num(conn->AddrIP()); if(conn->mpUser != NULL) entry.mNick = conn->mpUser->mNick; else entry.mNick = ""; entry.mDate = cTime().Sec(); entry.mType = action; entry.mInfo = info; SetBaseTo(&entry); return SavePK(); }
bool cPlug::Plugin() { cVHPluginMgr *pm = mOwner?mOwner->mPM:NULL; if (pm && !IsLoaded() && CheckMakeTime()) { if (IsScript()) { ostringstream os; bool result = false; cVHPlugin *dest = GetDestPlugin(); if (dest) { if (dest->SupportsMultipleScripts()) result = dest->AddScript(mPath, os); else if (dest->SupportsScripts()) result = dest->LoadScript(mPath, os); else { mLastError = _("Plugin does not support scripts."); SaveMe(); return false; } if (result) os << _("Script loaded."); else os << _("Error loading script."); mLastError = os.str(); SaveMe(); return result; } } else { if (pm->LoadPlugin(mPath)) { mLoadTime = cTime().Sec(); mLastError = _("Plugin loaded."); SaveMe(); return true; } else { mLastError = pm->GetError(); SaveMe(); return false; } } } return false; }
void CJulianTime::FinishInit() { COleDateTimeSpan cSpan(m_dDouble/SECONDS_PER_YEAR); COleDateTime cTime(BASE_YEAR,BASE_MONTH,BASE_DAY, BASE_HOUR,BASE_MINUTE,BASE_SECOND); cTime = cTime + cSpan; cTime -= HALF_MILLISECOND; m_bIsValid = cTime.GetStatus() == COleDateTime::valid; sprintf(m_pDate,"%04i.%02i.%02i", cTime.GetYear(),cTime.GetMonth(),cTime.GetDay()); sprintf(m_pTime,"%02i:%02i:%02i", cTime.GetHour(),cTime.GetMinute(),cTime.GetSecond()); m_Year = cTime.GetYear(); m_Month = cTime.GetMonth(); m_Day = cTime.GetDay(); m_Hour = cTime.GetHour(); m_Minute = cTime.GetMinute(); m_Second = cTime.GetSecond(); }
bool cConsole::cfMessageSend::operator ( )() { sMessage msg; cUser * receiver; msg.mSender = ((cConnDC*)this->mExtra)->mpUser->mNick; msg.mDateSent = cTime().Sec(); msg.mDateExpires = msg.mDateSent + 7 * 24* 3600; msg.mSenderIP = ((cConnDC*)this->mExtra)->AddrIP(); this->GetParStr(1,msg.mReceiver); this->GetParStr(2,msg.mSubject); this->GetParStr(4,msg.mBody); receiver = GetMessanger()->mServer->mUserList.GetUserByNick(msg.mReceiver); if ((receiver != NULL) && (receiver->mxConn != NULL)) { GetMessanger()->mMsgs->DeliverOnline(receiver, msg); (*mOS) << autosprintf(_("The message has been sent to %s because he is online."), msg.mReceiver.c_str()); } else { GetMessanger()->mMsgs->AddMessage(msg); (*mOS) << _("Message saved."); } return true; }
bool cPenaltyList::RemPenalty(sPenalty &penal) { SetBaseTo(&mModel); mModel.mNick = penal.mNick; mModel.mOpNick = penal.mOpNick; time_t Now = cTime().Sec(); if(LoadPK()) { if(penal.mStartChat < Now) mModel.mStartChat = Now; if(penal.mStartCTM < Now) mModel.mStartCTM = Now; if(penal.mStartPM < Now) mModel.mStartPM = Now; if(penal.mStartSearch < Now) mModel.mStartSearch = Now; if(penal.mStopKick < Now) mModel.mStopKick = Now; if(penal.mStopShare0 < Now) mModel.mStopShare0 = Now; if(penal.mStopReg < Now) mModel.mStopReg = Now; if(penal.mStopOpchat < Now) mModel.mStopOpchat = Now; } if(mModel.ToKeepIt()) return SavePK(); else DeletePK(); return true; }
cpiMessanger::cpiMessanger() : mConsole(this), mMsgs(NULL), mReloadTimer(30., 0., cTime()) { mName = "Messanger"; mVersion = MESSENGER_VERSION; }
int cServerDC::ValidateUser(cConnDC *conn, const string &nick, int &closeReason) { // first validate the IP and host if any stringstream errmsg,os; // Default close reason closeReason = eCR_INVALID_USER; if (!conn) return 0; //time_t n; bool close=false; // phase 1: test nick validity // phase 2: test ip/host ban (registered users pass) // phase 3: test nickban // then we're done static cRegUserInfo *sRegInfo = new cRegUserInfo; if ((nick.size() < mC.max_nick * 2 ) && mR->FindRegInfo(*sRegInfo,nick) && !conn->mRegInfo ) { conn->mRegInfo = sRegInfo; sRegInfo = new cRegUserInfo; } // Validate nick tVAL_NICK vn = ValidateNick(nick, (conn->GetTheoricalClass() >= eUC_REGUSER )); if(vn != eVN_OK) { close=true; if(vn == eVN_BANNED) { errmsg << _("Do not reconnect too fast.") << " "; closeReason = eCR_RECONNECT; } else errmsg << _("Bad nickname") << ": "; if (conn->Log(2)) conn->LogStream() << "Bad nick: '" << nick << "' (" << vn << ")" << endl; } switch(vn) { case eVN_OK: break; case eVN_CHARS: errmsg << _("Unallowed characters in your nick."); if(mC.nick_chars.size()) errmsg << autosprintf(_("use these: %s"), mC.nick_chars.c_str()); break; case eVN_SHORT: errmsg << _("Your nick is too short."); break; case eVN_LONG: errmsg << _("Your nick is too long."); break; case eVN_USED: // never happens errmsg << _("Your nick is already in use."); break; case eVN_PREFIX: errmsg << autosprintf(_("Invalid nick prefix. Use: %s"), mC.nick_prefix.c_str()); break; case eVN_NOT_REGED_OP: errmsg << _("Operator not registered."); break; case eVN_BANNED: errmsg << autosprintf(_("Wait %s before reconnecting."), cTime(mBanList->IsNickTempBanned(nick) - cTime().Sec()).AsPeriod().AsString().c_str()); break; default: errmsg << _("Unknown error."); break; } if (close) { if (vn == eVN_USED) { static string omsg; omsg = "$ValidateDenide"; conn->Send(omsg); } DCPublicHS(errmsg.str(), conn); if (conn->Log(3)) conn->LogStream() << "Bad nick: " << errmsg.str() << endl; return 0; } cBan Ban(this); bool banned = false; if (conn->GetTheoricalClass() < eUC_MASTER) { // master class is immune // here we cant check share ban because user hasnt sent $MyINFO yet if (conn->GetTheoricalClass() == eUC_NORMUSER) banned = mBanList->TestBan(Ban, conn, nick, eBF_NICK | eBF_NICKIP | eBF_RANGE | eBF_HOST2 | eBF_HOST1 | eBF_HOST3 | eBF_HOSTR1 | eBF_PREFIX); else // registered users avoid prefix ban check because we might actually ban a prefix for unregistered users, but let registered users to use it banned = mBanList->TestBan(Ban, conn, nick, eBF_NICK | eBF_NICKIP | eBF_RANGE | eBF_HOST2 | eBF_HOST1 | eBF_HOST3 | eBF_HOSTR1); } if (banned) { errmsg << _("You are banned from this hub.") << "\r\n"; Ban.DisplayUser(errmsg); DCPublicHS(errmsg.str(), conn); if (conn->Log(1)) conn->LogStream() << "Unallowed user (" << Ban.mType << "), closing" << endl; return 0; } if (mC.nick_prefix_cc) { if (conn->mCC.size() && conn->mCC != "--") { string Prefix("["); Prefix += conn->mCC; Prefix += "]"; if (StrCompare(nick, 0, 4, Prefix) != 0) { errmsg << autosprintf(_("Please add %s in front of your nick."), Prefix.c_str()); close = conn->GetTheoricalClass() < eUC_REGUSER; } } } if (close) { DCPublicHS(errmsg.str(), conn); return 0; } return 1; }
BOOL CALLBACK EXTRABOARDEDITORMsgProc(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam) { static EXTRABOARDEDITORPARAMDef *pParam; static HANDLE hCtlRUNPIECE; static HANDLE hCtlAVAILABLETIME; static HANDLE hCtlPIECESTART; static HANDLE hCtlPIECEEND; static HANDLE hCtlPIECESIZE; static HANDLE hCtlSTARTSTART; static HANDLE hCtlSTARTEND; static HANDLE hCtlENDSTART; static HANDLE hCtlENDEND; static long pieceSize; long timeToUse; long startStart; long startEnd; long endStart; long endEnd; switch(Message) { // // WM_INITDIALOG - Initialize the dialog // case WM_INITDIALOG: pParam = (EXTRABOARDEDITORPARAMDef *)lParam; if(pParam == NULL) { SendMessage(hWndDlg, WM_COMMAND, MAKEWPARAM(IDCANCEL, 0), (LPARAM)0); break; } // // Set up the handle to the control // hCtlRUNPIECE = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_RUNPIECE); hCtlAVAILABLETIME = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_AVAILABLETIME); hCtlPIECESTART = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_PIECESTART); hCtlPIECEEND = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_PIECEEND); hCtlPIECESIZE = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_PIECESIZE); hCtlSTARTSTART = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_STARTSTART); hCtlSTARTEND = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_STARTEND); hCtlENDSTART = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_ENDSTART); hCtlENDEND = GetDlgItem(hWndDlg, EXTRABOARDEDITOR_ENDEND); // // Set the title // SendMessage(hCtlRUNPIECE, WM_GETTEXT, (WPARAM)sizeof(szFormatString), (LONG)(LPSTR)szFormatString); sprintf(tempString, szFormatString, pParam->runNumber, pParam->pieceNumber); SendMessage(hCtlRUNPIECE, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)tempString); // // Fill in the controls. If there's nothing in the extraboard fields // to start with, assume we're going to grab all we can for this piece // and put it on the front. // pieceSize = pParam->pieceEnd - pParam->pieceStart; SendMessage(hCtlAVAILABLETIME, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)chhmm(pParam->availableTime)); SendMessage(hCtlPIECESTART, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->pieceStart)); SendMessage(hCtlPIECEEND, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->pieceEnd)); SendMessage(hCtlPIECESIZE, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)chhmm(pieceSize)); if(!(pParam->flags & RUNS_FLAG_EXTRABOARDPRIOR) && !(pParam->flags & RUNS_FLAG_EXTRABOARDAFTER)) { if(pParam->availableTime > 0) { if(pParam->availableTime + pieceSize > pParam->maxPieceSize) timeToUse = pParam->maxPieceSize - pieceSize; else timeToUse = pParam->availableTime; // if(pParam->pieceNumber == 1) // { SendMessage(hCtlSTARTSTART, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->pieceStart - timeToUse)); SendMessage(hCtlSTARTEND, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->pieceStart)); // } // else // { SendMessage(hCtlENDSTART, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->pieceEnd)); SendMessage(hCtlENDEND, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->pieceEnd + timeToUse)); // } } } else { if(pParam->flags & RUNS_FLAG_EXTRABOARDPRIOR) { SendMessage(hCtlSTARTSTART, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->startStart)); SendMessage(hCtlSTARTEND, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->startEnd)); } if(pParam->flags & RUNS_FLAG_EXTRABOARDAFTER) { SendMessage(hCtlENDSTART, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->endStart)); SendMessage(hCtlENDEND, WM_SETTEXT, (WPARAM)0, (LONG)(LPSTR)Tchar(pParam->endEnd)); } } break; case WM_CLOSE: SendMessage(hWndDlg, WM_COMMAND, MAKEWPARAM(IDCANCEL, 0), (LPARAM)0); break; case WM_COMMAND: switch(wParam) { case IDCANCEL: EndDialog(hWndDlg, FALSE); break; case IDHELP: WinHelp(hWndDlg, szarHelpFile, HELP_CONTEXT, Technical_Support); break; // // IDOK // case IDOK: // // Get the input times // SendMessage(hCtlSTARTSTART, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); startStart = cTime(tempString); SendMessage(hCtlSTARTEND, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); startEnd = cTime(tempString); SendMessage(hCtlENDSTART, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); endStart = cTime(tempString); SendMessage(hCtlENDEND, WM_GETTEXT, (WPARAM)TEMPSTRING_LENGTH, (LONG)(LPSTR)tempString); endEnd = cTime(tempString); // // Error checks // // Rule 1: Start and end times must be both input or both blank // if((startStart == NO_TIME && startEnd != NO_TIME) || (startStart != NO_TIME && startEnd == NO_TIME)) { TMSError(hWndDlg, MB_ICONSTOP, ERROR_244, hCtlSTARTSTART); break; } if((endStart == NO_TIME && endEnd != NO_TIME) || (endStart != NO_TIME && endEnd == NO_TIME)) { TMSError(hWndDlg, MB_ICONSTOP, ERROR_244, hCtlENDSTART); break; } // // Rule 2: The start time must be earlier than the end time // if(startStart != NO_TIME) { if(startStart > startEnd) { TMSError(hWndDlg, MB_ICONSTOP, ERROR_245, hCtlSTARTSTART); break; } } if(endStart != NO_TIME) { if(endStart > endEnd) { TMSError(hWndDlg, MB_ICONSTOP, ERROR_245, hCtlENDSTART); break; } } // // Plug the values in // pParam->flags = 0L; if(startStart != NO_TIME) { pParam->flags |= RUNS_FLAG_EXTRABOARDPRIOR; pParam->startStart = startStart; pParam->startEnd = startEnd; } if(endStart != NO_TIME) { pParam->flags |= RUNS_FLAG_EXTRABOARDAFTER; pParam->endStart = endStart; pParam->endEnd = endEnd; } EndDialog(hWndDlg, TRUE); break; } break; default: return FALSE; } return TRUE; }
void CAddCrewOnly::OnOK() { CString s; int rcode2; int opCode; int nI; long runNumber; long pieceNumber; long cutAsRuntype; long startNODESrecordID; long startTime; long endNODESrecordID; long endTime; // // Nothing can be blank or zero // // Run number // pEditRUNNUMBER->GetWindowText(s); runNumber = atol(s); if(s.IsEmpty() || runNumber == 0) { TMSError(m_hWnd, MB_ICONSTOP, ERROR_305, pEditRUNNUMBER->m_hWnd); return; } // // Piece number // pEditPIECENUMBER->GetWindowText(s); pieceNumber = atol(s); if(s.IsEmpty() || pieceNumber == 0) { TMSError(m_hWnd, MB_ICONSTOP, ERROR_306, pEditPIECENUMBER->m_hWnd); return; } // // Runtype // nI = pComboBoxRUNTYPE->GetCurSel(); if(nI == CB_ERR) { TMSError(m_hWnd, MB_ICONSTOP, ERROR_307, pComboBoxRUNTYPE->m_hWnd); return; } cutAsRuntype = pComboBoxRUNTYPE->GetItemData(nI); // // Start node // nI = pComboBoxSTARTNODE->GetCurSel(); if(nI == CB_ERR) { TMSError(m_hWnd, MB_ICONSTOP, ERROR_308, pComboBoxSTARTNODE->m_hWnd); return; } startNODESrecordID = pComboBoxSTARTNODE->GetItemData(nI); // // Start time // pEditSTARTTIME->GetWindowText(s); if(s.IsEmpty()) { TMSError(m_hWnd, MB_ICONSTOP, ERROR_309, pEditSTARTTIME->m_hWnd); return; } strcpy(tempString, s); startTime = cTime(tempString); // // End node // nI = pComboBoxENDNODE->GetCurSel(); if(nI == CB_ERR) { TMSError(m_hWnd, MB_ICONSTOP, ERROR_310, pComboBoxENDNODE->m_hWnd); return; } endNODESrecordID = pComboBoxENDNODE->GetItemData(nI); // // Start time // pEditENDTIME->GetWindowText(s); if(s.IsEmpty()) { TMSError(m_hWnd, MB_ICONSTOP, ERROR_311, pEditENDTIME->m_hWnd); return; } strcpy(tempString, s); endTime = cTime(tempString); // // Build the record // memset(&CREWONLY, 0x00, sizeof(CREWONLYDef)); // // Insert / update? // if(*m_pUpdateRecordID == NO_RECORD) { rcode2 = btrieve(B_GETLAST, TMS_CREWONLY, &CREWONLY, &CREWONLYKey0, 0); CREWONLY.recordID = AssignRecID(rcode2, CREWONLY.recordID); CREWONLY.SERVICESrecordID = m_ServiceRecordID; CREWONLY.DIVISIONSrecordID = m_DivisionRecordID; opCode = B_INSERT; } else { CREWONLYKey0.recordID = *m_pUpdateRecordID; btrieve(B_GETEQUAL, TMS_CREWONLY, &CREWONLY, &CREWONLYKey0, 0); opCode = B_UPDATE; } // // Set up the balance of CREWONLY // // Comment code // if(pButtonNA->GetCheck()) CREWONLY.COMMENTSrecordID = NO_RECORD; else { nI = (int)pComboBoxCOMMENTCODE->GetCurSel(); CREWONLY.COMMENTSrecordID = (nI == CB_ERR ? NO_RECORD : pComboBoxCOMMENTCODE->GetItemData(nI)); } // // Run number // CREWONLY.runNumber = runNumber; // // Piece number // CREWONLY.pieceNumber = pieceNumber; // // Runtype // CREWONLY.cutAsRuntype = cutAsRuntype; // // Start node // CREWONLY.startNODESrecordID = startNODESrecordID; // // Start time // CREWONLY.startTime = startTime; // // End node // CREWONLY.endNODESrecordID = endNODESrecordID; // // End time // CREWONLY.endTime = endTime; // // Insert / update and leave // btrieve(opCode, TMS_CREWONLY, &CREWONLY, &CREWONLYKey0, 0); *m_pUpdateRecordID = CREWONLY.recordID; CDialog::OnOK(); }
// ------------------------- int _tmain(int argc, _TCHAR* argv[]) { // decl a default time cTime a; // a.mHours == 0 // decl a time set to 1:15:30 (and :0 ms) cTime b( 1, 15, 30 ); SYSTEMTIME st; //GetSystemTime(&st); GetLocalTime(&st); //regular constructor cTime now ( st ); // decl a time set to the value of b cTime c( b ); // const // copy c to d //equality operator cTime d = c; //half as efficient as cTime d( c ); a.ToString(); b.ToString(); c.ToString(); d.ToString(); now.ToString(); if( c == b ) { cout << "c == b" << endl; } else { cout << "c != b" << endl; } cTime stopTime(0,0,30); cTime clock; //0, 0, 0 cTime frameTime(0,0,1); //1 frame per second GetLocalTime( &st ); cTime before( st ); while( clock < stopTime ) { GetLocalTime( &st ); cTime elapsed = cTime( st ) - before; if( elapsed >= frameTime ) { clock += ( elapsed.CalcSum() ); clock.ToString(); } } //::OutputDebugString("Hello World\n"); //great to use later on for debugging cout << "Time is up!" << endl; return 0; }
cTime Seconds(eeDouble amount) { return cTime(static_cast<Int64>(amount * 1000000)); }
void CAddConnectionSD::OnOK() { CString s; short nI, nJ; float distance; BOOL bAddToList, bFound; long connectionTime; long fromNodeRecordID, toNodeRecordID; int rcode2; // // Cycle through all the rows // for(nI = 1; nI <= 96; nI++) { // // A blank from time of day means we're done // s = pSDIGridGRID->GetCellContents(nI, 1); if(s == "") { break; } // // Make this time of day and the next one upper case // s.MakeUpper(); pSDIGridGRID->SetCellContents(nI, 1, (LPCTSTR)s); s = pSDIGridGRID->GetCellContents(nI, 2); s.MakeUpper(); pSDIGridGRID->SetCellContents(nI, 2, (LPCTSTR)s); // // We're not interested in the average speed // // Get the connection time // s = pSDIGridGRID->GetCellContents(nI, 4); connectionTime = atol(s) * 60; if(s.Remove('+')) { connectionTime += 30; } // // Get the from and to nodes // nJ = pComboBoxFROMNODE->GetCurSel(); if(nJ == CB_ERR) { return; } fromNodeRecordID = pComboBoxFROMNODE->GetItemData(nJ); // // To Node // nJ = pComboBoxTONODE->GetCurSel(); if(nJ == CB_ERR) { return; } toNodeRecordID = pComboBoxTONODE->GetItemData(nJ); // // Build the record // CONNECTIONSKey1.fromNODESrecordID = fromNodeRecordID; CONNECTIONSKey1.toNODESrecordID = toNodeRecordID; CONNECTIONSKey1.fromTimeOfDay = NO_TIME; rcode2 = btrieve(B_GETGREATEROREQUAL, TMS_CONNECTIONS, &CONNECTIONS, &CONNECTIONSKey1, 1); bAddToList = (rcode2 != 0 || CONNECTIONS.fromNODESrecordID != fromNodeRecordID || CONNECTIONS.toNODESrecordID != toNodeRecordID) && CONN.numConnections < MAXCONNECTIONSKEPT - 1; rcode2 = btrieve(B_GETLAST, TMS_CONNECTIONS, &CONNECTIONS, &CONNECTIONSKey0, 0); CONNECTIONS.recordID = AssignRecID(rcode2, CONNECTIONS.recordID); // // From Node // CONNECTIONS.fromNODESrecordID = fromNodeRecordID; // // To Node // CONNECTIONS.toNODESrecordID = toNodeRecordID; // // Connection Time - Converted to seconds above // CONNECTIONS.connectionTime = connectionTime; // // Distance // pEditDISTANCE->GetWindowText(s); distance = (float)atof(s); CONNECTIONS.distance = distance; // // From/to Route // if(pButtonALLROUTES->GetCheck()) { CONNECTIONS.fromROUTESrecordID = NO_RECORD; CONNECTIONS.toROUTESrecordID = NO_RECORD; } else { nJ = pComboBoxROUTE->GetCurSel(); if(nJ == CB_ERR) { CONNECTIONS.fromROUTESrecordID = NO_RECORD; CONNECTIONS.toROUTESrecordID = NO_RECORD; } else { CONNECTIONS.fromROUTESrecordID = pComboBoxROUTE->GetItemData(nJ); CONNECTIONS.toROUTESrecordID = pComboBoxROUTE->GetItemData(nJ); } } // // From/to Service // if(pButtonALLSERVICES->GetCheck()) { CONNECTIONS.fromSERVICESrecordID = NO_RECORD; CONNECTIONS.toSERVICESrecordID = NO_RECORD; } else { nJ = pComboBoxSERVICE->GetCurSel(); if(nJ == CB_ERR) { CONNECTIONS.fromSERVICESrecordID = NO_RECORD; CONNECTIONS.toSERVICESrecordID = NO_RECORD; } else { CONNECTIONS.fromSERVICESrecordID = pComboBoxSERVICE->GetItemData(nJ); CONNECTIONS.toSERVICESrecordID = pComboBoxSERVICE->GetItemData(nJ); } } // // From/to Pattern // if(pButtonALLPATTERNS->GetCheck()) { CONNECTIONS.fromPATTERNNAMESrecordID = NO_RECORD; CONNECTIONS.toPATTERNNAMESrecordID = NO_RECORD; } else { nJ = pComboBoxPATTERN->GetCurSel(); if(nJ == CB_ERR) { CONNECTIONS.fromPATTERNNAMESrecordID = NO_RECORD; CONNECTIONS.toPATTERNNAMESrecordID = NO_RECORD; } else { CONNECTIONS.fromPATTERNNAMESrecordID = pComboBoxPATTERN->GetItemData(nJ); CONNECTIONS.toPATTERNNAMESrecordID = pComboBoxPATTERN->GetItemData(nJ); } } // // From time of day // s = pSDIGridGRID->GetCellContents(nI, 1); if(s.IsEmpty()) { CONNECTIONS.fromTimeOfDay = NO_TIME; } else { strcpy(tempString, s); CONNECTIONS.fromTimeOfDay = cTime(tempString); } // // To time of day // s = pSDIGridGRID->GetCellContents(nI, 2); if(s.IsEmpty()) { CONNECTIONS.toTimeOfDay = CONNECTIONS.fromTimeOfDay; } else { strcpy(tempString, s); CONNECTIONS.toTimeOfDay = cTime(tempString); } // // Flags // CONNECTIONS.flags = 0; // // One or Two-Way // if(pButtonTWOWAY->GetCheck()) { CONNECTIONS.flags |= CONNECTIONS_FLAG_TWOWAY; } // // Running time flag // if(pButtonRUNNINGTIME->GetCheck()) { CONNECTIONS.flags |= CONNECTIONS_FLAG_RUNNINGTIME; } // // Travel time flag // if(pButtonTRAVELTIME->GetCheck()) { CONNECTIONS.flags |= CONNECTIONS_FLAG_TRAVELTIME; } // // Deadhead time flag // if(pButtonDEADHEADTIME->GetCheck()) { CONNECTIONS.flags |= CONNECTIONS_FLAG_DEADHEADTIME; } // // Forward pointer to ROUTINGS // CONNECTIONS.ROUTINGSrecordID = NO_RECORD; // // Insert the record // // First, make sure there isn't any contention // CONNECTIONSDef tempCONN; long newRecID = CONNECTIONS.recordID; int counter = 0; while(counter < 500) { rcode2 = btrieve(B_GETLAST, TMS_CONNECTIONS, &tempCONN, &CONNECTIONSKey0, 0); CONNECTIONS.recordID = AssignRecID(rcode2, tempCONN.recordID); if(CONNECTIONS.recordID == newRecID) { rcode2 = btrieve(B_INSERT, TMS_CONNECTIONS, &CONNECTIONS, &CONNECTIONSKey0, 0); if(rcode2 == 0) { m_pAddConnectionSDData->recordIDs[nI - 1] = CONNECTIONS.recordID; m_pAddConnectionSDData->numRecs = nI; break; } } counter++; newRecID = tempCONN.recordID; } // // Add it to the list, if necessary // bFound = FALSE; if(bAddToList) { for(nJ = 0; nJ < CONN.numConnections; nJ++) { if((bFound = CONN.startRecordID[nJ] == CONNECTIONS.recordID) == TRUE) { break; } } } if(!bFound) { CONN.startRecordID[CONN.numConnections++] = CONNECTIONS.recordID; } } // nI // // Done // m_bEstablishRUNTIMES = TRUE; CDialog::OnOK(); }
bool cFloodprotect::CheckFlood(cConnDC * conn, tFloodType ft) { if (conn && conn->mpUser && conn->mpUser->mClass >= eUC_OPERATOR) return true; unsigned long Hash = cBanList::Ip2Num(conn->AddrIP()); if(mUserInfo.ContainsHash(Hash)) { cTime now; sUserInfo * usr = 0; usr = mUserInfo.GetByHash(Hash); if(!usr || (usr && usr->mDisabled)) return false; usr->mElapsedTime += now.Get() - usr->mLastAction; usr->mLastAction = now; usr->mActionCounter++; usr->addFloodType(ft); // registers the current action type for later analysis if(usr->mActionCounter == 10) { //10/10 = freq > 1 Hz //10/10 - freq = 1 Hz - 0.33 Hz //10/30 = freq < 0.33 Hz if(usr->mElapsedTime.Sec() < 10) // 10 actions, 1 Hz or higher is high frequency { ostringstream os; string text, floodtype; int cnt = KickAll(conn); switch(ft) { case eFT_CHAT: floodtype = "MAIN CHAT"; break; case eFT_PRIVATE: floodtype = "PRIVATE CHAT"; break; case eFT_SEARCH: floodtype = "SEARCH"; break; case eFT_MYINFO: floodtype = "MYINFO"; break; default: floodtype = "UNKNOWN"; break; } os << "\r\n"; os << "FLOODPROTECT: User is trying to " << floodtype << " flood the server. Number of affected connections: " << cnt << ". Banned for " << mCfg.mBanTimeOnFlood << " secs!\r\n"; os << "FLOODPROTECT: Frequecy is: " << usr->mActionCounter / (usr->mElapsedTime.Sec() + (usr->mElapsedTime.tv_usec / 1000000.)) << " Hz\r\n"; os << "FLOODPROTECT: Detected flood types are: " << usr->getFloodTypes(); text = os.str(); mS->ReportUserToOpchat(conn, text, false); cBan Ban(mS); cKick Kick; Kick.mOp = mS->mC.hub_security; Kick.mIP = usr->mIP; Kick.mTime = cTime().Sec(); Kick.mReason = "HIGH FLOOD FREQUENCY DETECTED!"; mS->mBanList->NewBan(Ban, Kick, mCfg.mBanTimeOnFlood, eBF_IP); mS->mBanList->AddBan(Ban); usr->mDisabled = true; usr->mActionCounter = 0; usr->mElapsedTime = cTime(0,0); return false; } if((usr->mElapsedTime.Sec() >= 10) && (usr->mElapsedTime.Sec() < 30)) // between 0.33 Hz and 1 Hz is medium frequency { //string text; //ostringstream os; //os << "\r\n"; //os << "FLOODPROTECT: Frequecy is: " << usr->mActionCounter / (usr->mElapsedTime.Sec() + (usr->mElapsedTime.tv_usec / 1000000.)) << " Hz\r\n"; //os << "FLOODPROTECT: Detected flood types are: " << usr->getFloodTypes(); //text = os.str(); //mS->ReportUserToOpchat(conn, text, false); conn->CloseNow(); usr->mActionCounter = 0; usr->mElapsedTime = cTime(0,0); return false; } if(usr->mElapsedTime.Sec() >= 30) // less than 0.33 Hz is low frequency { //string text; //ostringstream os; //os << "\r\n"; //os << "FLOODPROTECT: Frequecy is: " << usr->mActionCounter / (usr->mElapsedTime.Sec() + (usr->mElapsedTime.tv_usec / 1000000.)) << " Hz\r\n"; //os << "FLOODPROTECT: Detected action types are: " << usr->getFloodTypes(); //text = os.str(); //mS->ReportUserToOpchat(conn, text, false); usr->mActionCounter = 0; usr->mElapsedTime = cTime(0,0); return true; } } } else { cTime now; sUserInfo * usr; usr = new sUserInfo(conn->AddrIP()); if(!usr) return false; usr->mLastAction = now; usr->mElapsedTime = cTime(0,0); mUserInfo.AddWithHash(usr, Hash); } return true; }
HRESULT CHveDbController::SaveDBElement(RESULT_ELEMENT* pElement) { HRESULT hr = S_OK; if(!m_fIsConnecting) { SaveLog("数据库连接已经断开,尝试重新连接..."); hr = ConnectDB(); } if(!m_fIsConnecting) { char szOutPutInfo[100]; sprintf(szOutPutInfo, "连接数据库失败,保存%s结果失败...错误码:%d", pElement->szPlateNo, GetLastError()); SaveLog(szOutPutInfo); OutPutMessage(szOutPutInfo); return E_FAIL; } _variant_t RecordsAffected; CTime cTime(pElement->dw64TimeMs / 1000); CString strTime = cTime.Format("%Y-%m-%d %H:%M:%S"); CString strCurTable = cTime.Format("Hve_Data_%Y%m%d"); //int iMinute = cTime.GetMinute(); //CString strTmp = cTime.Format("Hve_Data_%Y%m%d%H"); //strCurTable.Format("%s_%d",strTmp.GetBuffer(), iMinute/10); // 10分钟一张表 //strTmp.ReleaseBuffer(); if(m_strLastTable != strCurTable) { char szCmdText[1024] = {0}; //try //{ // sprintf(szCmdText, "Create TABLE %s(Record_Id bigint primary key IDENTITY (1, 1) NOT NULL,\ // Location_Id int NOT NULL,Pass_Time datetime NOT NULL, Plate_No char(20), Road_No int,\ // Car_Speed int, Obj_Id int, Time_Headway int, Over_Line int, Cross_Line int,\ // Emergency_Stop int, Reverse_Run bit, Special_Result bit, big_image_1_path char(256),\ // big_image_2_path char(256), big_image_3_path char(256), big_image_4_path char(256),\ // big_image_5_path char(256), small_image_path char(256), bin_image_path char(256),\ // video_path char(256))", strCurTable.GetBuffer()); // m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); // sprintf(szCmdText, "CREATE INDEX [Pass_Time] ON [dbo].[%s] ([Pass_Time])", strCurTable.GetBuffer()); // m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); // sprintf(szCmdText, "CREATE INDEX [Obj_Id] ON [dbo].[%s] ([Obj_Id])", strCurTable.GetBuffer()); // m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); // sprintf(szCmdText, "CREATE INDEX [Special_Result] ON [dbo].[%s] ([Special_Result])", strCurTable.GetBuffer()); // m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); //} //表存在则不创建 try { sprintf(szCmdText, "if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[%s]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) \ Create TABLE %s(Record_Id bigint primary key IDENTITY (1, 1) NOT NULL,\ Location_Id int NOT NULL,Pass_Time datetime NOT NULL, Plate_No char(20), Road_No int, Road_Name char(25),Road_Direct char(10),\ Car_Speed int, Obj_Id int, Time_Headway int, Over_Line int, Cross_Line int,\ Emergency_Stop int, Reverse_Run bit, Speeding bit, Special_Result bit, big_image_1_path varchar(256),\ big_image_2_path varchar(256), big_image_3_path varchar(256), big_image_4_path varchar(256),\ big_image_5_path varchar(256), small_image_path varchar(256), bin_image_path varchar(256),\ video_path varchar(256))",strCurTable.GetBuffer(),strCurTable.GetBuffer()); m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); sprintf(szCmdText, "if not exists (select * from sysindexes where name='Pass_Time') CREATE INDEX [Pass_Time] ON [dbo].[%s] ([Pass_Time])", strCurTable.GetBuffer()); m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); sprintf(szCmdText, "if not exists (select * from sysindexes where name='Obj_Id') CREATE INDEX [Obj_Id] ON [dbo].[%s] ([Obj_Id])", strCurTable.GetBuffer()); m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); sprintf(szCmdText, "if not exists (select * from sysindexes where name='Special_Result') CREATE INDEX [Special_Result] ON [dbo].[%s] ([Special_Result])", strCurTable.GetBuffer()); m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); } catch (_com_error e) { m_fIsConnecting = FALSE; CString strErrorMessage; strErrorMessage.Format("创建表失败!错误信息:%s 错误码:%d", e.ErrorMessage(), GetLastError()); SaveLog(strErrorMessage.GetBuffer()); SaveLog(e.Description()); OutPutMessage("创建数据表失败!"); } ///////视图创建 由查询软件创建 //try //{ // char szCmdText[1024] = {0}; // sprintf(szCmdText, "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = N'Hve_Data_View') DROP VIEW Hve_Data_View"); // m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); //} //catch (_com_error e) //{ // CString strErrorMessage; // strErrorMessage.Format("删除视图失败! 错误信息:%s 错误码:%d", e.ErrorMessage(), GetLastError()); // SaveLog(strErrorMessage.GetBuffer()); // SaveLog(e.Description()); // OutPutMessage("删除视图失败..."); //} //bool fIsCreateViewFault = true; //int iRetry = 0; //while(fIsCreateViewFault) //{ // if(iRetry++ == 5) // { // exit(1); //reboot // } // try // { // _RecordsetPtr pPtr; // CString strName; // if(FAILED(pPtr.CreateInstance("ADODB.Recordset"))) // { // OutPutMessage("创建ADO数据集失败..."); // return E_FAIL; // } // CString strConnectInfo; // strConnectInfo.Format("Driver=SQL Server;Server=%s;DATABASE=%s;UID=%s;PWD=%s", // m_strServerIP, m_strDataBase, m_strUserName, m_strPassword); // CString strCommand = "SELECT name FROM sysobjects WHERE (name LIKE 'Hve_Data_%')";; // if(FAILED(pPtr->Open(_variant_t(strCommand), _variant_t(strConnectInfo), adOpenStatic, adLockOptimistic, adCmdText))) // { // OutPutMessage("获取数据表名字失败..."); // pPtr.Release(); // return E_FAIL; // } // while(!pPtr->GetadoEOF()) // { // CString strTmp = (char*)_bstr_t(pPtr->GetCollect("name")); // strTmp.TrimRight(); // if(strName == "") // { // strName.Format("(SELECT * FROM %s)", strTmp); // } // else // { // strName.AppendFormat("union (SELECT * FROM %s)", strTmp); // } // pPtr->MoveNext(); // } // pPtr->Close(); // pPtr.Release(); // char szCmdText[1024] = {0}; // sprintf(szCmdText, "CREATE VIEW Hve_Data_View AS %s", strName); // m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText); // fIsCreateViewFault = false; // } // catch (_com_error e) // { // fIsCreateViewFault = true; // CString strErrorMessage; // strErrorMessage.Format("创建视图失败... 错误码:%d", GetLastError()); // SaveLog(strErrorMessage.GetBuffer()); // SaveLog(e.Description()); // OutPutMessage("创建视图失败..."); // } //} }
CMemoData::CMemoData() : CObject() { // 基本設定 { m_cStrTitle.Empty(); // タイトル m_cStrMemo.Empty(); // 表示内容 m_pstLogFont = NULL; // 表示フォント m_clrForeColor = CLR_INVALID; // 文字色 m_clrBackColor = CLR_INVALID; // 背景色 m_nIconIndex = -1; // アイコン種別 } // 拡張設定 { m_blLink = FALSE; // 関連付け有功無効 m_cStrFile.Empty(); // ファイル m_cStrParameters.Empty(); // パラメータ m_blTimerExec = FALSE; // タイマで起動 m_blPassWordLock = FALSE; // パスワードの有功無効 m_cStrPassWord.Empty(); // パスワード // 描画拡張 m_unDxlID = 0; // Dxl-ID m_unDxlExtDataSize = 0; // Dxl 拡張データサイズ m_pabyDxlExtData = NULL; // Dxl 拡張データ } // タイマ { SYSTEMTIME stSysTime; GetLocalTime( &stSysTime); COleDateTime cTime( stSysTime);// = COleDateTime::GetCurrentTime(); m_blTimer = FALSE; // タイマ通知有功 m_nTimerType = TIMERTYPE_EVERYDAY; // タイマ種別 m_nNotifyShift = NOTIFYSHIFT_NOMOVE; // 通知日の移動処理 m_nMonth = cTime.GetMonth(); // 通知月 m_nDay = cTime.GetDay(); // 通知日 m_nHour = 0; // 通知時 m_nMin = 0; // 通知分 m_nWeek = WEEK_DISABLE; // 通知曜日 m_nBeforeNotify = 0; // 事前通知 m_blAfterNotify = FALSE; // 経過通知 m_cStrNotifySound.Empty(); // 通知サウンドファイル } // Window関係 { m_cRctNormal.SetRectEmpty(); m_cRctTitle.SetRectEmpty(); m_cRctIcon.SetRectEmpty(); m_nWindowType = WINDOW_TYPE_NORMAL; // 形状 m_blPosLock = FALSE; m_blShow = TRUE; m_nZOrder = ZORDER_NORMAL; m_blSeeThrough = FALSE; m_byAlphaBlend = ALPHABLEND_000; } // 作成日付記憶 SetCreateDate(); // 結果受信用ID m_pcStrContextID = NULL; }
cTime Milliseconds(eeDouble amount) { return cTime(static_cast<Int64>(amount) * 1000); }
cTime Microseconds(Int64 amount) { return cTime(amount); }
/** log that user logged in */ bool cRegList::Logout(const string &nick) { if(!FindRegInfo(mModel, nick)) return false; mModel.mLogoutLast = cTime().Sec()-1; // this is a patch for users that connect twice return UpdatePKVar("logout_last"); }