From 6d0ea5dce1bb19858f176303a68966ccb24402b1 Mon Sep 17 00:00:00 2001 From: linefinc Date: Tue, 12 Apr 2016 17:20:40 +0200 Subject: [PATCH 1/3] Fix small bug in web interface (http://forum.emule-project.net/index.php?showtopic=154507) --- webinterface/eMule.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webinterface/eMule.tmpl b/webinterface/eMule.tmpl index cbf3028f..b0cdaa3e 100644 --- a/webinterface/eMule.tmpl +++ b/webinterface/eMule.tmpl @@ -1642,7 +1642,7 @@ function GotoCat(cat) { -
 [DownloadList] +  [DownloadList]           [Category] From b97fbd2871f41bec5e286275c2d83e3dbf2c1db7 Mon Sep 17 00:00:00 2001 From: linefinc Date: Sun, 23 Oct 2016 17:50:19 +0200 Subject: [PATCH 2/3] add some constant variable --- WebServer.cpp | 545 +++++++++++++++++++++++++------------------------- WebServer.h | 46 ++--- WebSocket.cpp | 112 ++++++----- WebSocket.h | 2 +- 4 files changed, 350 insertions(+), 355 deletions(-) diff --git a/WebServer.cpp b/WebServer.cpp index a9abd12e..23a29b27 100644 --- a/WebServer.cpp +++ b/WebServer.cpp @@ -77,6 +77,7 @@ static BOOL WSserverColumnHidden[10]; static BOOL WSsearchColumnHidden[4]; CWebServer::CWebServer(void) + : m_ulCurIP(0), m_Templates() { m_Params.sLastModified.Empty(); m_Params.sETag.Empty(); @@ -178,7 +179,7 @@ void CWebServer::ReloadTemplates() { if(thePrefs.GetWSIsEnabled() || m_bServerWorking) { CString buffer; - buffer.Format(GetResString(IDS_WS_ERR_LOADTEMPLATE), sFile); + buffer.Format(GetResString(IDS_WS_ERR_LOADTEMPLATE), (LPCTSTR)sFile); AddLogLine(true, buffer); AfxMessageBox(buffer ,MB_OK); } @@ -246,14 +247,14 @@ void CWebServer::ReloadTemplates() } else if(m_bServerWorking) { - AddLogLine(true, GetResString(IDS_WEB_ERR_CANTLOAD), sFile); + AddLogLine(true, GetResString(IDS_WEB_ERR_CANTLOAD), (LPCTSTR)sFile); StopSockets(); m_bServerWorking = false; thePrefs.SetWSIsEnabled(false); } } -CString CWebServer::_LoadTemplate(CString sAll, CString sTemplateName) +CString CWebServer::_LoadTemplate(const CString& sAll, const CString& sTemplateName) { CString sRet; int nStart = sAll.Find(_T("<--") + sTemplateName + _T("-->")); @@ -266,9 +267,9 @@ CString CWebServer::_LoadTemplate(CString sAll, CString sTemplateName) else { if (sTemplateName==_T("TMPL_VERSION")) - AddLogLine(true, GetResString(IDS_WS_ERR_LOADTEMPLATE), sTemplateName); + AddLogLine(true, (LPCTSTR)GetResString(IDS_WS_ERR_LOADTEMPLATE), (LPCTSTR)sTemplateName); if (nStart==-1) - AddLogLine(false, GetResString(IDS_WEB_ERR_CANTLOAD), sTemplateName); + AddLogLine(false, (LPCTSTR)GetResString(IDS_WEB_ERR_CANTLOAD), (LPCTSTR)sTemplateName); } return sRet; } @@ -282,7 +283,7 @@ void CWebServer::RestartServer() void CWebServer::StartServer(void) { - + if(m_bServerWorking != thePrefs.GetWSIsEnabled()) m_bServerWorking = thePrefs.GetWSIsEnabled(); else @@ -303,31 +304,31 @@ void CWebServer::StartServer(void) StopSockets(); if(thePrefs.GetWSIsEnabled() && m_bServerWorking) - AddLogLine(false, _T("%s: %s"),_GetPlainResString(IDS_PW_WS), _GetPlainResString(IDS_ENABLED).MakeLower()); + AddLogLine(false, _T("%s: %s"), (LPCTSTR)_GetPlainResString(IDS_PW_WS), (LPCTSTR)_GetPlainResString(IDS_ENABLED).MakeLower()); else - AddLogLine(false, _T("%s: %s"),_GetPlainResString(IDS_PW_WS), _GetPlainResString(IDS_DISABLED).MakeLower()); + AddLogLine(false, _T("%s: %s"), (LPCTSTR)_GetPlainResString(IDS_PW_WS), (LPCTSTR)_GetPlainResString(IDS_DISABLED).MakeLower()); + - } -void CWebServer::_RemoveServer(CString sIP, int nPort) +void CWebServer::_RemoveServer(const CString& sIP, int nPort) { CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) + if (server!=NULL) SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_SERVER_REMOVE, (LPARAM)server); } -void CWebServer::_AddToStatic(CString sIP, int nPort) +void CWebServer::_AddToStatic(const CString& sIP, int nPort) { CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) + if (server!=NULL) SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_ADD_TO_STATIC, (LPARAM)server); } -void CWebServer::_RemoveFromStatic(CString sIP, int nPort) +void CWebServer::_RemoveFromStatic(const CString& sIP, int nPort) { CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) + if (server!=NULL) SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_REMOVE_FROM_STATIC, (LPARAM)server); } @@ -353,14 +354,14 @@ CString CWebServer::_SpecialChars(CString str, bool noquote /*=false*/) return str; } -void CWebServer::_ConnectToServer(CString sIP, int nPort) +void CWebServer::_ConnectToServer(const CString& sIP, int nPort) { CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) + if (server!=NULL) SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_CONNECTTOSERVER,(LPARAM)server); } -void CWebServer::ProcessURL(ThreadData Data) +void CWebServer::ProcessURL(const ThreadData& Data) { if (theApp.m_app_state!=APP_STATE_RUNNING) return; @@ -381,19 +382,16 @@ void CWebServer::ProcessURL(ThreadData Data) #ifndef _DEBUG try{ -#endif +#endif + - bool isUseGzip = thePrefs.GetWebUseGzip(); bool justAddLink,login=false; CString Out; - CString OutE; // List Entry Templates - CString OutS; // ServerStatus Templates TCHAR *gzipOut = NULL; long gzipLen=0; - CString HTTPProcessData; srand ( time(NULL) ); @@ -409,7 +407,7 @@ void CWebServer::ProcessURL(ThreadData Data) continue; } - if ( pThis->m_Params.badlogins[i].datalen==myip) + if ( pThis->m_Params.badlogins[i].datalen==myip) myfaults++; i++; } @@ -428,17 +426,17 @@ void CWebServer::ProcessURL(ThreadData Data) if (_ParseURL(Data.sURL, _T("w")) == _T("password")) { - CString test=MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash(); + (void)MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash(); CString ip=ipstr(Data.inadr); - if (_ParseURL(Data.sURL, _T("c")) != _T("")) { + if (!_ParseURL(Data.sURL, _T("c")).IsEmpty()) { // just sent password to add link remotely. Don't start a session. justAddLink = true; } if(MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash() == thePrefs.GetWSPass()) { - if (!justAddLink) + if (!justAddLink) { // user wants to login Session ses; @@ -448,13 +446,13 @@ void CWebServer::ProcessURL(ThreadData Data) ses.lastcat= 0- thePrefs.GetCatFilter(0); pThis->m_Params.Sessions.Add(ses); } - + SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATEMYINFO,0); - AddLogLine(true,GetResString(IDS_WEB_ADMINLOGIN)+_T(" (%s)"),ip); + AddLogLine(true, GetResString(IDS_WEB_ADMINLOGIN)+_T(" (%s)"), (LPCTSTR)ip); login=true; } - else if(thePrefs.GetWSIsLowUserEnabled() && thePrefs.GetWSLowPass()!=_T("") && MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash() == thePrefs.GetWSLowPass()) + else if(thePrefs.GetWSIsLowUserEnabled() && !thePrefs.GetWSLowPass().IsEmpty() && MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash() == thePrefs.GetWSLowPass()) { Session ses; ses.admin=false; @@ -464,10 +462,10 @@ void CWebServer::ProcessURL(ThreadData Data) SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATEMYINFO,0); - AddLogLine(true,GetResString(IDS_WEB_GUESTLOGIN)+_T(" (%s)"),ip); + AddLogLine(true, GetResString(IDS_WEB_GUESTLOGIN)+_T(" (%s)"), (LPCTSTR)ip); login=true; } else { - LogWarning(LOG_STATUSBAR,GetResString(IDS_WEB_BADLOGINATTEMPT)+_T(" (%s)"),ip); + LogWarning(LOG_STATUSBAR, GetResString(IDS_WEB_BADLOGINATTEMPT)+_T(" (%s)"), (LPCTSTR)ip); BadLogin newban={myip, now}; // save failed attempt (ip,time) pThis->m_Params.badlogins.Add(newban); @@ -481,14 +479,12 @@ void CWebServer::ProcessURL(ThreadData Data) } isUseGzip = false; // [Julien] if (login) { // on login, forget previous failed attempts - i=0; - while (im_Params.badlogins.GetSize() ) { - if ( pThis->m_Params.badlogins[i].datalen==myip ) { + i = 0; + while (i < pThis->m_Params.badlogins.GetSize()) + if ( pThis->m_Params.badlogins[i].datalen == myip ) pThis->m_Params.badlogins.RemoveAt(i); - continue; - } - i++; - } + else + i++; } } @@ -541,10 +537,10 @@ void CWebServer::ProcessURL(ThreadData Data) } else if (_ParseURL(Data.sURL, _T("w")) == _T("commentlist")) { - CString Out=_GetCommentlist(Data); - - if (!Out.IsEmpty()) { - Data.pSocket->SendContent(CT2CA(HTTPInit), Out); + CString Out1 = _GetCommentlist(Data); + + if (!Out1.IsEmpty()) { + Data.pSocket->SendContent(CT2CA(HTTPInit), Out1); CoUninitialize(); return; @@ -553,11 +549,11 @@ void CWebServer::ProcessURL(ThreadData Data) else if (_ParseURL(Data.sURL, _T("w")) == _T("getfile") && IsSessionAdmin(Data,sSession)) { uchar FileHash[16]; CKnownFile* kf=theApp.sharedfiles->GetFileByID(_GetFileHash(_ParseURL(Data.sURL, _T("filehash")),FileHash) ); - + if (kf) { if (thePrefs.GetMaxWebUploadFileSizeMB() != 0 && kf->GetFileSize() > (uint64)thePrefs.GetMaxWebUploadFileSizeMB()*1024*1024) { Data.pSocket->SendReply( "HTTP/1.1 403 Forbidden\r\n" ); - + CoUninitialize(); return; } @@ -574,16 +570,16 @@ void CWebServer::ProcessURL(ThreadData Data) CoUninitialize(); return; } - + char szBuf[512]; - int nLen = _snprintf(szBuf, _countof(szBuf), "HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nContent-Description: \"%s\"\r\nContent-Disposition: attachment; filename=\"%s\";\r\nContent-Transfer-Encoding: binary\r\nContent-Length: %I64u\r\n\r\n", + int nLen = _snprintf(szBuf, _countof(szBuf), "HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nContent-Description: \"%s\"\r\nContent-Disposition: attachment; filename=\"%s\";\r\nContent-Transfer-Encoding: binary\r\nContent-Length: %I64u\r\n\r\n", (LPCSTR)CT2CA(kf->GetFileName()), (LPCSTR)CT2CA(kf->GetFileName()), (uint64)filesize); Data.pSocket->SendData(szBuf, nLen); DWORD r=1; - while (filesize > (uint64)0 && r) { + while (filesize > 0ull && r) { r=file.Read(buffer,SENDFILEBUFSIZE); filesize -= (uint64)r; Data.pSocket->SendData(buffer, r); @@ -695,20 +691,20 @@ void CWebServer::ProcessURL(ThreadData Data) catch(...){ AddDebugLogLine( DLP_VERYHIGH, false, _T("*** Unknown exception in CWebServer::ProcessURL") ); ASSERT(0); - } + } #endif CoUninitialize(); } -CString CWebServer::_ParseURLArray(CString URL, CString fieldname) { +CString CWebServer::_ParseURLArray(CString& URL, CString fieldname) { CString res,temp; while (URL.GetLength()>0) { int pos=URL.MakeLower().Find(fieldname.MakeLower() +_T("=")); if (pos>-1) { temp=_ParseURL(URL,fieldname); - if (temp==_T("")) break; + if (temp.IsEmpty()) break; res.Append(temp+_T("|")); URL.Delete(pos,10); } else break; @@ -716,15 +712,14 @@ CString CWebServer::_ParseURLArray(CString URL, CString fieldname) { return res; } -CString CWebServer::_ParseURL(CString URL, CString fieldname) +CString CWebServer::_ParseURL(const CString& URL, const CString& fieldname) { CString value = _T(""); - CString Parameter = _T(""); - int findPos = -1; - int findLength = 0; if (URL.Find(_T("?")) > -1) { - Parameter = URL.Mid(URL.Find(_T("?"))+1, URL.GetLength()-URL.Find(_T("?"))-1); + int findPos = -1; + int findLength = 0; + CString Parameter = URL.Mid(URL.Find(_T("?"))+1, URL.GetLength()-URL.Find(_T("?"))-1); // search the fieldname beginning / middle and strip the rest... if (Parameter.Find(fieldname + _T("=")) == 0) { @@ -740,7 +735,7 @@ CString CWebServer::_ParseURL(CString URL, CString fieldname) if (Parameter.Find(_T("&")) > -1) { Parameter = Parameter.Mid(0, Parameter.Find(_T("&"))); } - + value = Parameter; // decode value ... @@ -756,7 +751,7 @@ CString CWebServer::_ParseURL(CString URL, CString fieldname) CString CWebServer::_GetHeader(ThreadData Data, long lSession) { - + CWebServer *pThis = (CWebServer *)Data.pThis; if(pThis == NULL) @@ -783,7 +778,7 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) strDummyNumber.Format(_T("%d"), rand()); CString strVersionCheck; - strVersionCheck.Format(_T("/en/version_check.php?version=%i&language=%i"),theApp.m_uCurVersionCheck,thePrefs.GetLanguageID()); + strVersionCheck.Format(_T("/en/version_check.php?version=%u&language=%i"),theApp.m_uCurVersionCheck,thePrefs.GetLanguageID()); strVersionCheck = thePrefs.GetVersionCheckBaseURL()+strVersionCheck; Out.Replace(_T("[admin]"), (bAdmin && thePrefs.GetWebAdminAllowedHiLevFunc() ) ? _T("admin") : _T("")); @@ -914,11 +909,11 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) if (Kademlia::CKademlia::IsConnected()) { if (Kademlia::CKademlia::IsFirewalled()) { HTTPConText=GetResString(IDS_FIREWALLED); - HTTPConText.AppendFormat(_T(" (%s"), sSession , GetResString(IDS_KAD_RECHECKFW) ); - HTTPConText.AppendFormat(_T(", %s)"), sSession , GetResString(IDS_IRC_DISCONNECT) ); + HTTPConText.AppendFormat(_T(" (%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_KAD_RECHECKFW) ); + HTTPConText.AppendFormat(_T(", %s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); } else { HTTPConText=GetResString(IDS_CONNECTED); - HTTPConText.AppendFormat(_T(" (%s)"), sSession , GetResString(IDS_IRC_DISCONNECT) ); + HTTPConText.AppendFormat(_T(" (%s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); } } else { @@ -926,11 +921,11 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) HTTPConText=GetResString(IDS_CONNECTING); } else { HTTPConText=GetResString(IDS_DISCONNECTED); - HTTPConText.AppendFormat(_T(" (%s)"), sSession , GetResString(IDS_IRC_CONNECT) ); + HTTPConText.AppendFormat(_T(" (%s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_CONNECT) ); } } Out.Replace(_T("[KadConText]"), HTTPConText); - + if(thePrefs.GetMaxUpload() == UNLIMITED) _stprintf(HTTPHeader, _T("%.1f"), static_cast(100 * theApp.uploadqueue->GetDatarate()) / 1024 / thePrefs.GetMaxGraphUploadRate(true)); @@ -988,9 +983,9 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) Out.Replace(_T("[Up]"), _GetPlainResString(IDS_PW_CON_UPLBL)); Out.Replace(_T("[Down]"), _GetPlainResString(IDS_PW_CON_DOWNLBL)); - if (thePrefs.GetCatCount()>1) + if (thePrefs.GetCatCount()>1) InsertCatBox(Out,0,pThis->m_Templates.sCatArrow,false,false,sSession,_T(""),true); - else + else Out.Replace(_T("[CATBOXED2K]"),_T("")); return Out; @@ -1452,7 +1447,7 @@ CString CWebServer::_GetServerList(ThreadData Data) // Displaying const TCHAR *pcTmp, *pcTmp2; CString sList, HTTPProcessData, sServerPort, ed2k; - CString OutE = pThis->m_Templates.sServerLine; + CString OutE = pThis->m_Templates.sServerLine; // List Entry Templates OutE.Replace(_T("[admin]"), (bAdmin) ? _T("admin") : _T("")); OutE.Replace(_T("[session]"), sSession); @@ -1461,8 +1456,8 @@ CString CWebServer::_GetServerList(ThreadData Data) { HTTPProcessData = OutE; // Copy Entry Line to Temp - sServerPort.Format(_T("%u"), ServerArray[i].nServerPort); - ed2k.Format(_T("ed2k://|server|%s|%s|/"), ServerArray[i].sServerIP, sServerPort); + sServerPort.Format(_T("%i"), ServerArray[i].nServerPort); + ed2k.Format(_T("ed2k://|server|%s|%s|/"), (LPCTSTR)ServerArray[i].sServerIP, (LPCTSTR)sServerPort); if (ServerArray[i].sServerIP == _ParseURL(Data.sURL,_T("ip")) && sServerPort == _ParseURL(Data.sURL,_T("port"))) pcTmp = _T("checked"); @@ -1542,9 +1537,9 @@ CString CWebServer::_GetServerList(ThreadData Data) if(ServerArray[i].nServerUsers > 0) { if(ServerArray[i].nServerMaxUsers > 0) - sT.Format(_T("%s (%s)"), CastItoIShort(ServerArray[i].nServerUsers), CastItoIShort(ServerArray[i].nServerMaxUsers)); + sT.Format(_T("%s (%s)"), (LPCTSTR)CastItoIShort(ServerArray[i].nServerUsers), (LPCTSTR)CastItoIShort(ServerArray[i].nServerMaxUsers)); else - sT.Format(_T("%s"), CastItoIShort(ServerArray[i].nServerUsers)); + sT.Format(_T("%s"), (LPCTSTR)CastItoIShort(ServerArray[i].nServerUsers)); } HTTPProcessData.Replace(_T("[Users]"), sT); } @@ -1571,8 +1566,8 @@ CString CWebServer::_GetServerList(ThreadData Data) { CString strTemp; - strTemp.Format( _T("%s (%s)"), CastItoIShort(ServerArray[i].nServerSoftLimit), - CastItoIShort(ServerArray[i].nServerHardLimit) ); + strTemp.Format( _T("%s (%s)"), (LPCTSTR)CastItoIShort(ServerArray[i].nServerSoftLimit), + (LPCTSTR)CastItoIShort(ServerArray[i].nServerHardLimit) ); HTTPProcessData.Replace(_T("[Limit]"), strTemp); } else @@ -1617,12 +1612,12 @@ CString CWebServer::_GetTransferList(ThreadData Data) _SetLastUserCat(Data,lSession,cat); } // commands - CString sCat; (cat!=0)?sCat.Format(_T("&cat=%i"),cat):sCat=_T(""); + CString sCat; (cat!=0)?sCat.Format(_T("&cat=%i"),cat):sCat.Empty(); CString Out; - if (thePrefs.GetCatCount()>1) + if (thePrefs.GetCatCount()>1) InsertCatBox(Out,cat,_T(""),true,true,sSession,_T("")); - else + else Out.Replace(_T("[CATBOX]"),_T("")); @@ -1635,10 +1630,10 @@ CString CWebServer::_GetTransferList(ThreadData Data) } else { - uchar FileHash[16]; if (!sClear.IsEmpty()) { + uchar FileHash[16]; _GetFileHash(sClear, FileHash); uchar* pFileHash = new uchar[16]; @@ -1707,10 +1702,10 @@ CString CWebServer::_GetTransferList(ThreadData Data) if (!sOp.IsEmpty()) { CString sFile(_ParseURL(Data.sURL, _T("file"))); - uchar FileHash[16], UserHash[16]; if (!sFile.IsEmpty()) { + uchar FileHash[16]; CPartFile *found_file = theApp.downloadqueue->GetFileByID(_GetFileHash(sFile, FileHash)); if(found_file) { // SyruS all actions require a found file (removed double-check inside) @@ -1763,6 +1758,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) else { CString sUser(_ParseURL(Data.sURL, _T("userhash"))); + uchar UserHash[16]; if (_GetFileHash(sUser, UserHash) != 0) { @@ -1852,11 +1848,11 @@ CString CWebServer::_GetTransferList(ThreadData Data) if (strTmp.IsEmpty()) { - if (sSort.GetAt(0) == _T('d')) + if (sSort[0] == _T('d')) pThis->m_Params.bDownloadSortReverse = bDirection; - else if (sSort.GetAt(0) == _T('u')) + else if (sSort[0] == _T('u')) pThis->m_Params.bUploadSortReverse = bDirection; - else if (sSort.GetAt(0) == _T('q')) + else if (sSort[0] == _T('q')) pThis->m_Params.bQueueSortReverse = bDirection; } } @@ -1864,11 +1860,11 @@ CString CWebServer::_GetTransferList(ThreadData Data) if (!strTmp.IsEmpty()) { bDirection = (strTmp == _T("true")); - if (sSort.GetAt(0) == _T('d')) + if (sSort[0] == _T('d')) pThis->m_Params.bDownloadSortReverse = bDirection; - else if (sSort.GetAt(0) == _T('u')) + else if (sSort[0] == _T('u')) pThis->m_Params.bUploadSortReverse = bDirection; - else if (sSort.GetAt(0) == _T('q')) + else if (sSort[0] == _T('q')) pThis->m_Params.bQueueSortReverse = bDirection; } @@ -2159,8 +2155,8 @@ CString CWebServer::_GetTransferList(ThreadData Data) // Populating array for (int i=0;iGetCompletedSize(); dFile.m_dblCompleted = pPartFile->GetPercentCompleted(); dFile.lFileSpeed = pPartFile->GetDatarate(); - + if ( pPartFile->HasComment() || pPartFile->HasRating()) { dFile.iComment= pPartFile->HasBadRating()?2:1; - } else + } else dFile.iComment = 0; dFile.iFileState=pPartFile->getPartfileStatusRang(); @@ -2247,7 +2243,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) strCategory.Replace(_T("'"),_T("\'")); dFile.sCategory = strCategory; - + dFile.sFileHash = md4str(pPartFile->GetFileHash()); dFile.lSourceCount = pPartFile->GetSourceCount(); dFile.lNotCurrentSourceCount = pPartFile->GetNotCurrentSourcesCount(); @@ -2260,7 +2256,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) dFile.sED2kLink = pPartFile->GetED2kLink(false, false, false, true, theApp.GetPublicIP()); else dFile.sED2kLink = pPartFile->GetED2kLink(); - + dFile.sFileInfo = _SpecialChars(pPartFile->GetInfoSummary(true),false); FilesArray.Add(dFile); @@ -2307,7 +2303,6 @@ CString CWebServer::_GetTransferList(ThreadData Data) break; case DOWN_SORT_CATEGORY: bSwap = FilesArray[i].sCategory.CompareNoCase(FilesArray[i+1].sCategory) < 0; - break; } if(pThis->m_Params.bDownloadSortReverse) bSwap = !bSwap; @@ -2320,9 +2315,9 @@ CString CWebServer::_GetTransferList(ThreadData Data) } } } - - + + // uint32 dwClientSoft; CArray UploadArray; @@ -2355,7 +2350,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) sTemp= GetClientversionImage(cur_client) ; dUser.sClientSoft = sTemp; - + if (cur_client->IsBanned()) dUser.sClientExtra = _T("banned"); else if (cur_client->IsFriend()) @@ -2364,13 +2359,13 @@ CString CWebServer::_GetTransferList(ThreadData Data) dUser.sClientExtra = _T("credit"); else dUser.sClientExtra = _T("none"); - + dUser.sUserName = _SpecialChars(cur_client->GetUserName()); CString cun(cur_client->GetUserName()); if(cun.GetLength() > SHORT_LENGTH_MIN) dUser.sUserName = _SpecialChars(cun.Left(SHORT_LENGTH_MIN-3)) + _T("..."); - + CKnownFile* file = theApp.sharedfiles->GetFileByID(cur_client->GetUploadFileID() ); if (file) dUser.sFileName = _SpecialChars(file->GetFileName()); @@ -2426,7 +2421,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) } Out=_CreateTransferList(Out, pThis, &Data, &FilesArray, &UploadArray,bAdmin); - + Out.Replace(_T("[Session]"), sSession); Out.Replace(_T("[CatSel]"), sCat); @@ -2581,28 +2576,28 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa strFInfo.Replace(_T("\n"), _T("\\n")); dwnlf.sFileInfo.Replace(_T("\n"), _T("
")); - + if (!dwnlf.iComment) { - HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("") ); + HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("") ); } else { - HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("") ); - HTTPProcessData.Replace(_T("[HASCOMMENT_END]"), _T("") ); + HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("") ); + HTTPProcessData.Replace(_T("[HASCOMMENT_END]"), _T("") ); } - if (dwnlf.sFileState.CompareNoCase(_T("downloading"))==0 || dwnlf.sFileState.CompareNoCase(_T("waiting"))==0 ) + if (dwnlf.sFileState.CompareNoCase(_T("downloading"))==0 || dwnlf.sFileState.CompareNoCase(_T("waiting"))==0 ) { - HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("") ); - HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("") ); - HTTPProcessData.Replace(_T("[!ISACTIVE_END]"), _T("") ); + HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("") ); + HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("") ); + HTTPProcessData.Replace(_T("[!ISACTIVE_END]"), _T("") ); } else { - HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("") ); - HTTPProcessData.Replace(_T("[ISACTIVE_END]"), _T("") ); - HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("") ); + HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("") ); + HTTPProcessData.Replace(_T("[ISACTIVE_END]"), _T("") ); + HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("") ); } - + CString JSED2kLink=dwnlf.sED2kLink; JSED2kLink.Replace(_T("'"),_T("’")); @@ -2610,12 +2605,12 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa ed2k = JSED2kLink; fname = dwnlf.sFileNameJS; state = dwnlf.sFileState; - fsize.Format(_T("%d"),dwnlf.m_qwFileSize); + fsize.Format(_T("%I64u"),dwnlf.m_qwFileSize); filehash = dwnlf.sFileHash; session = _ParseURL(Data->sURL, _T("ses")); if (dwnlf.bIsPreview) - isgetflc = _T(""); + isgetflc.Empty(); else if(dwnlf.bIsGetFLC) isgetflc = _T("enabled"); else @@ -2651,8 +2646,8 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa HTTPProcessData.Replace(_T("[filehash]"), filehash); HTTPProcessData.Replace(_T("[down-priority]"), downpriority); HTTPProcessData.Replace(_T("[FileType]"), dwnlf.sFileType); - HTTPProcessData.Replace(_T("[downloadable]"), (bAdmin && (thePrefs.GetMaxWebUploadFileSizeMB()==0 ||dwnlf.m_qwFileSize 0) { - HTTPTemp.Format(_T("%i / %8i (%i)"), + HTTPTemp.Format(_T("%li / %8li (%li)"), dwnlf.lSourceCount-dwnlf.lNotCurrentSourceCount, dwnlf.lSourceCount, dwnlf.lTransferringSourceCount); @@ -2779,7 +2774,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa HTTPTemp.Format(_T("%8.2f"), fTotalSpeed/1024.0); Out.Replace(_T("[TotalDownSpeed]"), HTTPTemp); - HTTPTemp.Format(_T("%s: %i"), GetResString(IDS_SF_FILE), FilesArray->GetCount()); + HTTPTemp.Format(_T("%s: %i"), (LPCTSTR)GetResString(IDS_SF_FILE), FilesArray->GetCount()); Out.Replace(_T("[TotalFiles]"), HTTPTemp); HTTPTemp.Format(_T("%i"),pThis->m_Templates.iProgressbarWidth); @@ -2797,7 +2792,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa for(int i = 0; i < UploadArray->GetCount(); i++) { - UploadUsers ulu=UploadArray->GetAt(i); + UploadUsers ulu = (*UploadArray)[i]; HTTPProcessData = OutE; HTTPProcessData.Replace(_T("[UserHash]"), ulu.sUserHash); @@ -2821,7 +2816,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa { fTotalSize += ulu.nTransferredDown; fTotalTransferred += ulu.nTransferredUp; - HTTPTemp.Format(_T("%s / %s"), CastItoXBytes(ulu.nTransferredDown),CastItoXBytes(ulu.nTransferredUp)); + HTTPTemp.Format(_T("%s / %s"), (LPCTSTR)CastItoXBytes(ulu.nTransferredDown), (LPCTSTR)CastItoXBytes(ulu.nTransferredUp)); pcTmp = HTTPTemp; } HTTPProcessData.Replace(_T("[3]"), pcTmp); @@ -2838,7 +2833,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa sUpList += HTTPProcessData; } Out.Replace(_T("[UploadFilesList]"), sUpList); - HTTPTemp.Format(_T("%s / %s"), CastItoXBytes(fTotalSize), CastItoXBytes(fTotalTransferred)); + HTTPTemp.Format(_T("%s / %s"), (LPCTSTR)CastItoXBytes(fTotalSize), (LPCTSTR)CastItoXBytes(fTotalTransferred)); Out.Replace(_T("[TotalUpTransferred]"), HTTPTemp); HTTPTemp.Format(_T("%8.2f "), max(fTotalSpeed/1024, 0.0)); Out.Replace(_T("[TotalUpSpeed]"), HTTPTemp); @@ -2855,7 +2850,6 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa for(int i = 0; i < QueueArray.GetCount(); i++) { - TCHAR HTTPTempC[100] = _T(""); if (QueueArray[i].sClientExtra == _T("none")) { HTTPProcessData = OutE; @@ -2868,13 +2862,10 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa pcTmp = (!WSqueueColumnHidden[2]) ? QueueArray[i].sFileName.GetString() : _T(""); HTTPProcessData.Replace(_T("[FileName]"), pcTmp); - pcTmp = _T(""); + TCHAR HTTPTempC[100] = _T(""); if (!WSqueueColumnHidden[3]) - { _stprintf(HTTPTempC, _T("%i") , QueueArray[i].nScore); - pcTmp = HTTPTempC; - } - HTTPProcessData.Replace(_T("[Score]"), pcTmp); + HTTPProcessData.Replace(_T("[Score]"), HTTPTempC); HTTPProcessData.Replace(_T("[ClientState]"), QueueArray[i].sClientState); HTTPProcessData.Replace(_T("[ClientStateSpecial]"), QueueArray[i].sClientStateSpecial); HTTPProcessData.Replace(_T("[ClientSoft]"), QueueArray[i].sClientSoft); @@ -2895,12 +2886,11 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa Out.Replace(_T("[UploadQueueBannedList]"), _GetPlainResString(IDS_BANNED)); CString sQueueBanned; - + OutE = pThis->m_Templates.sTransferUpQueueBannedLine; for(int i = 0; i < QueueArray.GetCount(); i++) { - TCHAR HTTPTempC[100] = _T(""); if (QueueArray[i].sClientExtra == _T("banned")) { HTTPProcessData = OutE; @@ -2913,13 +2903,10 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa pcTmp = (!WSqueueColumnHidden[2]) ? QueueArray[i].sFileName.GetString() : _T(""); HTTPProcessData.Replace(_T("[FileName]"), pcTmp); - pcTmp = _T(""); + TCHAR HTTPTempC[100] = _T(""); if (!WSqueueColumnHidden[3]) - { _stprintf(HTTPTempC, _T("%i") , QueueArray[i].nScore); - pcTmp = HTTPTempC; - } - HTTPProcessData.Replace(_T("[Score]"), pcTmp); + HTTPProcessData.Replace(_T("[Score]"), HTTPTempC); HTTPProcessData.Replace(_T("[ClientState]"), QueueArray[i].sClientState); HTTPProcessData.Replace(_T("[ClientStateSpecial]"), QueueArray[i].sClientStateSpecial); @@ -2941,12 +2928,11 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa Out.Replace(_T("[UploadQueueFriendList]"), _GetPlainResString(IDS_IRC_ADDTOFRIENDLIST)); CString sQueueFriend; - + OutE = pThis->m_Templates.sTransferUpQueueFriendLine; for(int i = 0; i < QueueArray.GetCount(); i++) { - TCHAR HTTPTempC[100] = _T(""); if (QueueArray[i].sClientExtra == _T("friend")) { HTTPProcessData = OutE; @@ -2959,13 +2945,10 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa pcTmp = (!WSqueueColumnHidden[2]) ? QueueArray[i].sFileName.GetString() : _T(""); HTTPProcessData.Replace(_T("[FileName]"), pcTmp); - pcTmp = _T(""); + TCHAR HTTPTempC[100] = _T(""); if (!WSqueueColumnHidden[3]) - { _stprintf(HTTPTempC, _T("%i") , QueueArray[i].nScore); - pcTmp = HTTPTempC; - } - HTTPProcessData.Replace(_T("[Score]"), pcTmp); + HTTPProcessData.Replace(_T("[Score]"), HTTPTempC); HTTPProcessData.Replace(_T("[ClientState]"), QueueArray[i].sClientState); HTTPProcessData.Replace(_T("[ClientStateSpecial]"), QueueArray[i].sClientStateSpecial); @@ -3033,7 +3016,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa _GetPlainResString(&strTmp, IDS_QL_USERNAME); if (!WSqueueColumnHidden[0]) { - Out.Replace(_T("[UserNameTitleI]"), (pThis->m_Params.QueueSort == QU_SORT_USER) ? pcSortIcon : _T("")); + Out.Replace(_T("[UserNameTitleI]"), (pThis->m_Params.QueueSort == QU_SORT_USER) ? pcSortIcon : CString()); Out.Replace(_T("[UserNameTitle]"), strTmp); } else @@ -3046,7 +3029,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa _GetPlainResString(&strTmp, IDS_CD_CSOFT); if (!WSqueueColumnHidden[1]) { - Out.Replace(_T("[VersionI]"), (pThis->m_Params.QueueSort == QU_SORT_VERSION) ? pcSortIcon : _T("")); + Out.Replace(_T("[VersionI]"), (pThis->m_Params.QueueSort == QU_SORT_VERSION) ? pcSortIcon : CString()); Out.Replace(_T("[Version]"), strTmp); } else @@ -3059,7 +3042,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa _GetPlainResString(&strTmp, IDS_DL_FILENAME); if (!WSqueueColumnHidden[2]) { - Out.Replace(_T("[FileNameTitleI]"), (pThis->m_Params.QueueSort == QU_SORT_FILENAME) ? pcSortIcon : _T("")); + Out.Replace(_T("[FileNameTitleI]"), (pThis->m_Params.QueueSort == QU_SORT_FILENAME) ? pcSortIcon : CString()); Out.Replace(_T("[FileNameTitle]"), strTmp); } else @@ -3072,7 +3055,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa _GetPlainResString(&strTmp, IDS_SCORE); if (!WSqueueColumnHidden[3]) { - Out.Replace(_T("[ScoreTitleI]"), (pThis->m_Params.QueueSort == QU_SORT_SCORE) ? pcSortIcon : _T("")); + Out.Replace(_T("[ScoreTitleI]"), (pThis->m_Params.QueueSort == QU_SORT_SCORE) ? pcSortIcon : CString()); Out.Replace(_T("[ScoreTitle]"), strTmp); } else @@ -3138,12 +3121,11 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) if(!_ParseURL(Data.sURL, _T("hash")).IsEmpty() && !_ParseURL(Data.sURL, _T("prio")).IsEmpty() && IsSessionAdmin(Data,sSession)) { - CKnownFile* cur_file; uchar fileid[16]; CString hash = _ParseURL(Data.sURL, _T("hash")); if (hash.GetLength()==32 && DecodeBase16(hash, hash.GetLength(), fileid, ARRSIZE(fileid))) { - cur_file = theApp.sharedfiles->GetFileByID(fileid); + CKnownFile *cur_file = theApp.sharedfiles->GetFileByID(fileid); if (cur_file != 0) { @@ -3392,13 +3374,14 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) CString OutE = pThis->m_Templates.sSharedLine; CArray SharedArray; - + // Populating array for (int ix=0;ixGetCount();ix++) { CCKey bufKey; CKnownFile* cur_file = theApp.sharedfiles->GetFileByIndex(ix); - + if (!cur_file) + continue; // uint16 nCountLo, nCountHi; uint32 dwResId; @@ -3415,7 +3398,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) dFile.sFileType = GetWebImageNameForFileType(dFile.sFileName); dFile.m_qwFileSize = cur_file->GetFileSize(); - + if (theApp.GetPublicIP() != 0 && !theApp.IsFirewalled()) dFile.sED2kLink = cur_file->GetED2kLink(false, false, false, true, theApp.GetPublicIP()); else @@ -3465,7 +3448,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) dFile.nFilePriority = cur_file->GetUpPriority(); dFile.bFileAutoPriority = cur_file->IsAutoUpPriority(); SharedArray.Add(dFile); - } + } //for // Sorting (simple bubble sort, we don't have tons of data here) bool bSorted = true; @@ -3603,7 +3586,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) HTTPProcessData.Replace(_T("[FileIsPriority]"), _T("release")); else HTTPProcessData.Replace(_T("[FileIsPriority]"), _T("none")); - downloadable = !cur_file->IsPartFile() && (thePrefs.GetMaxWebUploadFileSizeMB() == 0 || SharedArray[i].m_qwFileSize < thePrefs.GetMaxWebUploadFileSizeMB()*1024*1024); + downloadable = !cur_file->IsPartFile() && (thePrefs.GetMaxWebUploadFileSizeMB() == 0 || SharedArray[i].m_qwFileSize < ((uint64)thePrefs.GetMaxWebUploadFileSizeMB())*1024*1024); } } @@ -3616,10 +3599,10 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) HTTPProcessData.Replace(_T("[FileName]"), _SpecialChars(SharedArray[i].sFileName)); HTTPProcessData.Replace(_T("[FileType]"), SharedArray[i].sFileType); HTTPProcessData.Replace(_T("[FileState]"), SharedArray[i].sFileState); - - + + HTTPProcessData.Replace(_T("[Downloadable]"), downloadable?_T("yes"):_T("no") ); - + HTTPProcessData.Replace(_T("[IFDOWNLOADABLE]"), downloadable?_T(""):_T("") ); @@ -3712,15 +3695,15 @@ CString CWebServer::_GetGraphs(ThreadData Data) strGraphUpload += _T(','); strGraphCons += _T(','); } - + const UpDown& pt = pThis->m_Params.PointsForWeb[i]; // download - strGraphDownload.AppendFormat(_T("%u"), (uint32)(pThis->m_Params.PointsForWeb[i].download*1024)); + strGraphDownload.AppendFormat(_T("%u"), (uint32)(pt.download*1024)); // upload - strGraphUpload.AppendFormat(_T("%u"), (uint32)(pThis->m_Params.PointsForWeb[i].upload*1024)); + strGraphUpload.AppendFormat(_T("%u"), (uint32)(pt.upload*1024)); // connections - strGraphCons.AppendFormat(_T("%u"), (uint32)(pThis->m_Params.PointsForWeb[i].connections)); + strGraphCons.AppendFormat(_T("%u"), (uint32)(pt.connections)); } } @@ -3732,14 +3715,14 @@ CString CWebServer::_GetGraphs(ThreadData Data) Out.Replace(_T("[TxtUpload]"), _GetPlainResString(IDS_TW_UPLOADS)); Out.Replace(_T("[TxtTime]"), _GetPlainResString(IDS_TIME)); Out.Replace(_T("[KByteSec]"), _GetPlainResString(IDS_KBYTESPERSEC)); - Out.Replace(_T("[TxtConnections]"), _GetPlainResString(IDS_SP_ACTCON)); + Out.Replace(_T("[TxtConnections]"), _GetPlainResString(IDS_SP_ACTCON)); - Out.Replace(_T("[ScaleTime]"), CastSecondsToHM(thePrefs.GetTrafficOMeterInterval() * WEB_GRAPH_WIDTH)); + Out.Replace(_T("[ScaleTime]"), (LPCTSTR)CastSecondsToHM(((time_t)thePrefs.GetTrafficOMeterInterval()) * WEB_GRAPH_WIDTH)); CString s1; - s1.Format(_T("%u"), thePrefs.GetMaxGraphDownloadRate()+4 ); + s1.Format(_T("%i"), thePrefs.GetMaxGraphDownloadRate()+4 ); Out.Replace(_T("[MaxDownload]"), s1); - s1.Format(_T("%u"), thePrefs.GetMaxGraphUploadRate(true)+4 ); + s1.Format(_T("%i"), thePrefs.GetMaxGraphUploadRate(true)+4 ); Out.Replace(_T("[MaxUpload]"), s1); s1.Format(_T("%u"), thePrefs.GetMaxConnections()+20); Out.Replace(_T("[MaxConnections]"), s1); @@ -3782,7 +3765,7 @@ CString CWebServer::_GetAddServerBox(ThreadData Data) nsrv->SetPreference(PR_NORMAL); else if (_ParseURL(Data.sURL, _T("priority")) == _T("high")) nsrv->SetPreference(PR_HIGH); - + SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATESERVER,(LPARAM)nsrv); if(_ParseURL(Data.sURL, _T("addtostatic")) == _T("true")) @@ -3807,7 +3790,7 @@ CString CWebServer::_GetAddServerBox(ThreadData Data) const TCHAR* urlbuf=url; SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATESERVERMETFROMURL, (LPARAM)urlbuf); - CString resultlog = _SpecialChars(theApp.emuledlg->GetLastLogEntry() ); + resultlog = _SpecialChars(theApp.emuledlg->GetLastLogEntry()); resultlog = resultlog.TrimRight(_T('\n')); resultlog = resultlog.Mid(resultlog.ReverseFind(_T('\n'))); Out.Replace(_T("[Message]"),resultlog); @@ -3845,7 +3828,7 @@ CString CWebServer::_GetLog(ThreadData Data) if(pThis == NULL) return _T(""); - + CString sSession = _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sLog; @@ -3901,13 +3884,13 @@ CString CWebServer::_GetDebugLog(ThreadData Data) return Out; } -CString CWebServer::_GetMyInfo(ThreadData Data) +CString CWebServer::_GetMyInfo(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; if(pThis == NULL) return _T(""); - CString sSession = _ParseURL(Data.sURL, _T("ses")); + _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sMyInfoLog; Out.Replace(_T("[MYINFOLOG]"), theApp.emuledlg->serverwnd->GetMyInfoString() ); @@ -3930,7 +3913,7 @@ CString CWebServer::_GetKadDlg(ThreadData Data) CString sSession = _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sKad; - if (_ParseURL(Data.sURL, _T("bootstrap")) != _T("") && IsSessionAdmin(Data,sSession) ) { + if (!_ParseURL(Data.sURL, _T("bootstrap")).IsEmpty() && IsSessionAdmin(Data,sSession)) { CString dest=_ParseURL(Data.sURL, _T("ip")); CString ip=_ParseURL(Data.sURL, _T("port")); dest.Append(_T(":")+ip); @@ -3952,7 +3935,7 @@ CString CWebServer::_GetKadDlg(ThreadData Data) // check the condition if bootstrap is possible if ( /*Kademlia::CKademlia::IsRunning() && */ !Kademlia::CKademlia::IsConnected()) { Out.Replace(_T("[BOOTSTRAPLINE]"), pThis->m_Templates.sBootstrapLine ); - } else + } else Out.Replace(_T("[BOOTSTRAPLINE]"), _T("") ); // Infos @@ -3960,32 +3943,32 @@ CString CWebServer::_GetKadDlg(ThreadData Data) if (Kademlia::CKademlia::IsConnected()) { if (Kademlia::CKademlia::IsFirewalled()) { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_FIREWALLED)); - buffer.Format(_T("%s"), sSession , GetResString(IDS_KAD_RECHECKFW) ); - buffer.AppendFormat(_T("
%s"), sSession , GetResString(IDS_IRC_DISCONNECT) ); + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_KAD_RECHECKFW) ); + buffer.AppendFormat(_T("
%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); } else { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_CONNECTED)); - buffer.Format(_T("%s"), sSession , GetResString(IDS_IRC_DISCONNECT) ); + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); } } else { if (Kademlia::CKademlia::IsRunning()) { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_CONNECTING)); - buffer.Format(_T("%s"), sSession , GetResString(IDS_IRC_DISCONNECT) ); + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); } else { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_DISCONNECTED)); - buffer.Format(_T("%s"), sSession , GetResString(IDS_IRC_CONNECT) ); + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_CONNECT) ); } } Out.Replace(_T("[KADACTION]"), buffer); - // kadstats + // kadstats // labels - buffer.Format(_T("%s
%s"),GetResString(IDS_KADCONTACTLAB), GetResString(IDS_KADSEARCHLAB)); + buffer.Format(_T("%s
%s"), (LPCTSTR)GetResString(IDS_KADCONTACTLAB), (LPCTSTR)GetResString(IDS_KADSEARCHLAB)); //foxx88 Out.Replace(_T("[KADSTATSLABELS]"),buffer); // numbers - buffer.Format(_T("%i
%i"), theApp.emuledlg->kademliawnd->GetContactCount(), + buffer.Format(_T("%u
%i"), theApp.emuledlg->kademliawnd->GetContactCount(), theApp.emuledlg->kademliawnd->searchList->GetItemCount()); Out.Replace(_T("[KADSTATSDATA]"),buffer); @@ -4006,7 +3989,7 @@ CString CWebServer::_GetStats(ThreadData Data) if(pThis == NULL) return _T(""); - CString sSession = _ParseURL(Data.sURL, _T("ses")); + (void)_ParseURL(Data.sURL, _T("ses")); // refresh statistics SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_SHOWSTATISTICS, 1); @@ -4080,13 +4063,13 @@ CString CWebServer::_GetPreferences(ThreadData Data) sRefresh.Format(_T("%d"), thePrefs.GetWebPageRefresh()); Out.Replace(_T("[RefreshVal]"), sRefresh); - sRefresh.Format(_T("%d"), thePrefs.GetMaxSourcePerFileDefault()); + sRefresh.Format(_T("%u"), thePrefs.GetMaxSourcePerFileDefault()); Out.Replace(_T("[MaxSourcesVal]"), sRefresh); - sRefresh.Format(_T("%d"), thePrefs.GetMaxConnections()); + sRefresh.Format(_T("%u"), thePrefs.GetMaxConnections()); Out.Replace(_T("[MaxConnectionsVal]"), sRefresh); - sRefresh.Format(_T("%d"), thePrefs.GetMaxConperFive()); + sRefresh.Format(_T("%u"), thePrefs.GetMaxConperFive()); Out.Replace(_T("[MaxConnectionsPer5Val]"), sRefresh); Out.Replace(_T("[KBS]"), _GetPlainResString(IDS_KBYTESPERSEC)+_T(":")); @@ -4118,7 +4101,7 @@ CString CWebServer::_GetPreferences(ThreadData Data) m_sTestURL += _T("&obfuscated_test=") + md4str(thePrefs.GetUserHash()); Out.Replace(_T("[CONNECTIONTESTLINK]"), m_sTestURL); - Out.Replace(_T("[CONNECTIONTESTLABEL]"), GetResString(IDS_CONNECTIONTEST)); + Out.Replace(_T("[CONNECTIONTESTLABEL]"), GetResString(IDS_CONNECTIONTEST)); CString sT; @@ -4128,10 +4111,10 @@ CString CWebServer::_GetPreferences(ThreadData Data) sT.Format(_T("%u"), thePrefs.GetMaxUpload()==UNLIMITED?0:thePrefs.GetMaxUpload()); Out.Replace(_T("[MaxUpVal]"), sT); - sT.Format(_T("%u"), thePrefs.GetMaxGraphDownloadRate() ); + sT.Format(_T("%i"), thePrefs.GetMaxGraphDownloadRate() ); Out.Replace(_T("[MaxCapDownVal]"), sT); - sT.Format(_T("%u"), thePrefs.GetMaxGraphUploadRate(true) ); + sT.Format(_T("%i"), thePrefs.GetMaxGraphUploadRate(true) ); Out.Replace(_T("[MaxCapUpVal]"), sT); return Out; @@ -4143,7 +4126,7 @@ CString CWebServer::_GetLoginScreen(ThreadData Data) if(pThis == NULL) return _T(""); - CString sSession = _ParseURL(Data.sURL, _T("ses")); + (void)_ParseURL(Data.sURL, _T("ses")); CString Out; @@ -4170,7 +4153,7 @@ CString CWebServer::_GetLoginScreen(ThreadData Data) // in order to use gzip in web pages int CWebServer::_GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level) { - const static int gz_magic[2] = {0x1f, 0x8b}; // gzip magic header + static const int gz_magic[2] = {0x1f, 0x8b}; // gzip magic header int err; uLong crc; z_stream stream = {0}; @@ -4260,7 +4243,7 @@ bool CWebServer::_RemoveSession(ThreadData Data, long lSession) pThis->m_Params.Sessions.RemoveAt(i); CString t_ulCurIP; t_ulCurIP.Format(_T("%u.%u.%u.%u"),(byte)pThis->m_ulCurIP,(byte)(pThis->m_ulCurIP>>8),(byte)(pThis->m_ulCurIP>>16),(byte)(pThis->m_ulCurIP>>24)); - AddLogLine(true, GetResString(IDS_WEB_SESSIONEND),t_ulCurIP); + AddLogLine(true, (LPCTSTR)GetResString(IDS_WEB_SESSIONEND), (LPCTSTR)t_ulCurIP); SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATEMYINFO,0); return true; } @@ -4271,13 +4254,13 @@ bool CWebServer::_RemoveSession(ThreadData Data, long lSession) Session CWebServer::GetSessionByID(ThreadData Data,long sessionID) { - + CWebServer *pThis = (CWebServer *)Data.pThis; if(pThis != NULL) { for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { if(pThis->m_Params.Sessions[i].lSession == sessionID && sessionID != 0) - return pThis->m_Params.Sessions.GetAt(i); + return pThis->m_Params.Sessions[i]; } } @@ -4300,7 +4283,7 @@ bool CWebServer::IsSessionAdmin(ThreadData Data, const CString &strSsessionID) return pThis->m_Params.Sessions[i].admin; } } - + return false; } @@ -4326,8 +4309,8 @@ void CWebServer::_GetPlainResString(CString *pstrOut, UINT nID, bool noquote) *pstrOut=_GetPlainResString(nID,noquote); } -// Ornis: creating the progressbar. colored if ressources are given/available -CString CWebServer::_GetDownloadGraph(ThreadData Data, CString filehash) +// Ornis: creating the progressbar. colored if resources are given/available +CString CWebServer::_GetDownloadGraph(const ThreadData& Data, const CString& filehash) { CWebServer *pThis = (CWebServer *)Data.pThis; if(pThis == NULL) @@ -4378,8 +4361,8 @@ CString CWebServer::_GetDownloadGraph(ThreadData Data, CString filehash) if (pPartFile == NULL || !pPartFile->IsPartFile()) { - Out.AppendFormat(pThis->m_Templates.sProgressbarImgsPercent+_T("
"), progresscolor[10], pThis->m_Templates.iProgressbarWidth); - Out.AppendFormat(pThis->m_Templates.sProgressbarImgs,progresscolor[0], pThis->m_Templates.iProgressbarWidth); + Out.AppendFormat(pThis->m_Templates.sProgressbarImgsPercent+_T("
"), (LPCTSTR)progresscolor[10], pThis->m_Templates.iProgressbarWidth); + Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[0], pThis->m_Templates.iProgressbarWidth); } else { @@ -4392,7 +4375,7 @@ CString CWebServer::_GetDownloadGraph(ThreadData Data, CString filehash) int compl = static_cast((pThis->m_Templates.iProgressbarWidth / 100.0) * pPartFile->GetPercentCompleted()); Out.AppendFormat(pThis->m_Templates.sProgressbarImgsPercent+_T("
"), - progresscolor[(compl > 0) ? 10 : 11], (compl > 0) ? compl : 5); + (LPCTSTR)progresscolor[(compl > 0) ? 10 : 11], (compl > 0) ? compl : 5); for (uint16 i=0;im_Templates.iProgressbarWidth;i++) { @@ -4401,13 +4384,13 @@ CString CWebServer::_GetDownloadGraph(ThreadData Data, CString filehash) if (i>lastindex) { if (lastcolor < _countof(progresscolor)) - Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, progresscolor[lastcolor], i-lastindex); + Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[lastcolor], i-lastindex); } lastcolor=(BYTE)_tstoi(s_ChunkBar.Mid(i,1)); lastindex=i; } } - Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, progresscolor[lastcolor], pThis->m_Templates.iProgressbarWidth-lastindex); + Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[lastcolor], pThis->m_Templates.iProgressbarWidth-lastindex); } return Out; } @@ -4440,7 +4423,7 @@ CString CWebServer::_GetSearch(ThreadData Data) } CString sCat; - + if (cat != 0) sCat.Format(_T("%i"), cat); @@ -4450,11 +4433,11 @@ CString CWebServer::_GetSearch(ThreadData Data) int iMenu = _tstoi(_ParseURL(Data.sURL, _T("m"))); bool bValue = _tstoi(_ParseURL(Data.sURL, _T("v")))!=0; WSsearchColumnHidden[iMenu] = bValue; - + SaveWIConfigArray(WSsearchColumnHidden,ARRSIZE(WSsearchColumnHidden) ,_T("searchColumnHidden")); } - if(_ParseURL(Data.sURL, _T("tosearch")) != _T("") && IsSessionAdmin(Data,sSession) ) + if (!_ParseURL(Data.sURL, _T("tosearch")).IsEmpty() && IsSessionAdmin(Data,sSession)) { // perform search @@ -4483,8 +4466,9 @@ CString CWebServer::_GetSearch(ThreadData Data) pParams->ullMaxSize = _tstoi64(_ParseURL(Data.sURL, _T("max")))*1048576ui64; if (pParams->ullMaxSize < pParams->ullMinSize) pParams->ullMaxSize = 0; - - pParams->uAvailability = (_ParseURL(Data.sURL, _T("avail"))==_T(""))?0:_tstoi(_ParseURL(Data.sURL, _T("avail"))); + + CString s = _ParseURL(Data.sURL, _T("avail")); + pParams->uAvailability = s.IsEmpty() ? 0 : _tstoi(s); if (pParams->uAvailability > 1000000) pParams->uAvailability = 1000000; @@ -4503,14 +4487,16 @@ CString CWebServer::_GetSearch(ThreadData Data) if (pParams->eType != SearchTypeKademlia){ if (!theApp.emuledlg->searchwnd->DoNewEd2kSearch(pParams)){ delete pParams; + pParams = NULL; strResponse = _GetPlainResString(IDS_ERR_NOTCONNECTED); } - else + else Sleep(2000); // wait for some results to come in (thanks thread) } else{ if (!theApp.emuledlg->searchwnd->DoNewKadSearch(pParams)){ delete pParams; + pParams = NULL; strResponse = _GetPlainResString(IDS_ERR_NOTCONNECTEDKAD); } } @@ -4529,7 +4515,7 @@ CString CWebServer::_GetSearch(ThreadData Data) Out.Replace(_T("[Message]"),strResponse); } - else if(_ParseURL(Data.sURL, _T("tosearch")) != _T("") && !IsSessionAdmin(Data,sSession) ) { + else if (!_ParseURL(Data.sURL, _T("tosearch")).IsEmpty() && !IsSessionAdmin(Data,sSession)) { Out.Replace(_T("[Message]"),_GetPlainResString(IDS_ACCESSDENIED)); } else Out.Replace(_T("[Message]"), _GetPlainResString(IDS_SW_REFETCHRES)); @@ -4539,14 +4525,13 @@ CString CWebServer::_GetSearch(ThreadData Data) sSort = _ParseURL(Data.sURL, _T("sortAsc")); if (sSort.GetLength()>0) pThis->m_bSearchAsc=_tstoi(sSort)!=0; CString result=pThis->m_Templates.sSearchHeader; - + CQArray SearchFileArray; theApp.searchlist->GetWebList(&SearchFileArray, pThis->m_iSearchSortby); SearchFileArray.QuickSort(pThis->m_bSearchAsc); uchar aFileHash[16]; - uchar nRed, nGreen, nBlue; CKnownFile* sameFile; CString strOverlayImage; CString strSourcesImage; @@ -4560,8 +4545,8 @@ CString CWebServer::_GetSearch(ThreadData Data) for (uint16 i = 0; i < SearchFileArray.GetCount(); ++i) { - structFile = SearchFileArray.GetAt(i); - nRed = nGreen = nBlue = 255; + uchar nRed = 255, nGreen = 255, nBlue = 255; + structFile = SearchFileArray[i]; DecodeBase16(structFile.m_strFileHash, 32, aFileHash, ARRSIZE(aFileHash)); strOverlayImage = _T("none"); @@ -4602,16 +4587,16 @@ CString CWebServer::_GetSearch(ThreadData Data) strFilename.Replace(_T("'"),_T("\\'")); strTemp2.Format(_T("ed2k://|file|%s|%I64u|%s|/"), - strFilename, structFile.m_uFileSize, structFile.m_strFileHash); + (LPCTSTR)strFilename, structFile.m_uFileSize, (LPCTSTR)structFile.m_strFileHash); strTemp.Format(pThis->m_Templates.sSearchResultLine, - strSourcesImage, strTemp2, strOverlayImage, - GetWebImageNameForFileType(structFile.m_strFileName), - (!WSsearchColumnHidden[0]) ? strColorPrefix + StringLimit(structFile.m_strFileName,70) + strColorSuffix : _T(""), - (!WSsearchColumnHidden[1]) ? strColorPrefix + CastItoXBytes(structFile.m_uFileSize) + strColorSuffix : _T(""), - (!WSsearchColumnHidden[2]) ? strColorPrefix + structFile.m_strFileHash + strColorSuffix : _T(""), - (!WSsearchColumnHidden[3]) ? strColorPrefix + strSources + strColorSuffix : _T(""), - structFile.m_strFileHash + (LPCTSTR)strSourcesImage, (LPCTSTR)strTemp2, (LPCTSTR)strOverlayImage, + (LPCTSTR)GetWebImageNameForFileType(structFile.m_strFileName), + (!WSsearchColumnHidden[0]) ? (LPCTSTR)(strColorPrefix + StringLimit(structFile.m_strFileName,70) + strColorSuffix) : _T(""), + (!WSsearchColumnHidden[1]) ? (LPCTSTR)(strColorPrefix + CastItoXBytes(structFile.m_uFileSize) + strColorSuffix) : _T(""), + (!WSsearchColumnHidden[2]) ? (LPCTSTR)(strColorPrefix + structFile.m_strFileHash + strColorSuffix) : _T(""), + (!WSsearchColumnHidden[3]) ? (LPCTSTR)(strColorPrefix + strSources + strColorSuffix) : _T(""), + (LPCTSTR)structFile.m_strFileHash ); result.Append(strTemp); } @@ -4621,10 +4606,10 @@ CString CWebServer::_GetSearch(ThreadData Data) - if (thePrefs.GetCatCount()>1) + if (thePrefs.GetCatCount()>1) InsertCatBox(Out,0,pThis->m_Templates.sCatArrow,false,false,sSession,_T("")); else Out.Replace(_T("[CATBOX]"),_T("")); - + Out.Replace(_T("[SEARCHINFOMSG]"),_T("")); Out.Replace(_T("[RESULTLIST]"), result); Out.Replace(_T("[Result]"), GetResString(IDS_SW_RESULT)); @@ -4647,7 +4632,7 @@ CString CWebServer::_GetSearch(ThreadData Data) Out.Replace(_T("[USESSERVER]"), _GetPlainResString(IDS_SERVER)); Out.Replace(_T("[USEKADEMLIA]"), _GetPlainResString(IDS_KADEMLIA)); Out.Replace(_T("[METHOD]"), _GetPlainResString(IDS_METHOD)); - + Out.Replace(_T("[SizeMin]"), _GetPlainResString(IDS_SEARCHMINSIZE)); Out.Replace(_T("[SizeMax]"), _GetPlainResString(IDS_SEARCHMAXSIZE)); Out.Replace(_T("[Availabl]"), _GetPlainResString(IDS_SEARCHAVAIL)); @@ -4720,17 +4705,17 @@ CString CWebServer::_GetSearch(ThreadData Data) Out.Replace(_T("[Download]"), _GetPlainResString(IDS_DOWNLOAD)); - strTmp.Format(_T("%i"),(pThis->m_iSearchSortby!=0 || (pThis->m_iSearchSortby==0 && pThis->m_bSearchAsc==0 ))?1:0 ); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=0 || pThis->m_bSearchAsc==0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE0]"), strTmp); - strTmp.Format(_T("%i"),(pThis->m_iSearchSortby!=1 || (pThis->m_iSearchSortby==1 && pThis->m_bSearchAsc==0 ))?1:0 ); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=1 || pThis->m_bSearchAsc==0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE1]"), strTmp); - strTmp.Format(_T("%i"),(pThis->m_iSearchSortby!=2 || (pThis->m_iSearchSortby==2 && pThis->m_bSearchAsc==0 ))?1:0 ); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=2 || pThis->m_bSearchAsc==0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE2]"), strTmp); - strTmp.Format(_T("%i"),(pThis->m_iSearchSortby!=3 || (pThis->m_iSearchSortby==3 && pThis->m_bSearchAsc==0 ))?1:0 ); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=3 || pThis->m_bSearchAsc==0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE3]"), strTmp); - strTmp.Format(_T("%i"),(pThis->m_iSearchSortby!=4 || (pThis->m_iSearchSortby==4 && pThis->m_bSearchAsc==0 ))?1:0 ); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=4 || pThis->m_bSearchAsc==0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE4]"), strTmp); - strTmp.Format(_T("%i"),(pThis->m_iSearchSortby!=5 || (pThis->m_iSearchSortby==5 && pThis->m_bSearchAsc==0 ))?1:0 ); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=5 || pThis->m_bSearchAsc==0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE5]"), strTmp); return Out; @@ -4742,7 +4727,7 @@ int CWebServer::UpdateSessionCount() for(int i = 0; i < m_Params.Sessions.GetSize();) { CTimeSpan ts = CTime::GetCurrentTime() - m_Params.Sessions[i].startTime; - if(thePrefs.GetWebTimeoutMins()>0 && ts.GetTotalSeconds() > thePrefs.GetWebTimeoutMins()*60 ) + if(thePrefs.GetWebTimeoutMins()>0 && ts.GetTotalSeconds() > thePrefs.GetWebTimeoutMins()*(LONGLONG)MIN2S(1) ) m_Params.Sessions.RemoveAt(i); else i++; @@ -4755,9 +4740,9 @@ int CWebServer::UpdateSessionCount() } -void CWebServer::InsertCatBox(CString &Out,int preselect,CString boxlabel,bool jump,bool extraCats,CString sSession,CString sFileHash, bool ed2kbox) +void CWebServer::InsertCatBox(CString &Out, int preselect, const CString& boxlabel, bool jump, bool extraCats, const CString& sSession, const CString& sFileHash, bool ed2kbox) { - + CString tempBuf = _T("
"); tempBuf.Append(boxlabel); @@ -4772,17 +4757,17 @@ void CWebServer::InsertCatBox(CString &Out,int preselect,CString boxlabel,bool j { CString strCategory = thePrefs.GetCategory(i)->strTitle; strCategory.Replace(_T("'"),_T("\'")); - tempBuf.AppendFormat( _T("%s\n"), (i == preselect) ? _T(" selected") : _T(""), i, strCategory); + tempBuf.AppendFormat( _T("%s\n"), (i == preselect) ? _T(" selected") : _T(""), i, (LPCTSTR)strCategory); } if (extraCats) { - if (thePrefs.GetCatCount() > 1) + if (thePrefs.GetCatCount() > 1) { tempBuf += _T("\n"); } for (int i = 1; i<16; i++) { - tempBuf.AppendFormat( _T("%s\n") , (0-i == preselect) ? _T(" selected") : _T(""), 0-i, GetSubCatLabel(0-i)); + tempBuf.AppendFormat( _T("%s\n") , (0-i == preselect) ? _T(" selected") : _T(""), 0-i, (LPCTSTR)GetSubCatLabel(0-i)); } } tempBuf.Append(_T("") ); @@ -4806,7 +4791,7 @@ void CWebServer::InsertCatBox(CString &Out,int preselect,CString boxlabel,bool j strCategory.Replace(_T("'"),_T("\\'")); tempBuff.AppendFormat(_T(""), - sSession, i, tempBuff3, strCategory); + (LPCTSTR)sSession, i, (LPCTSTR)tempBuff3, (LPCTSTR)strCategory); } if (extraCats) { @@ -4822,7 +4807,7 @@ void CWebServer::InsertCatBox(CString &Out,int preselect,CString boxlabel,bool j tempBuff3 = _T("checked_no.gif"); tempBuff.AppendFormat( _T(""), - sSession, 0-i, tempBuff3, GetSubCatLabel(0-i)); + (LPCTSTR)sSession, 0-i, (LPCTSTR)tempBuff3, (LPCTSTR)GetSubCatLabel(0-i)); } } Out.Replace(_T("[CatBox]"), tempBuff); @@ -4838,7 +4823,7 @@ void CWebServer::InsertCatBox(CString &Out,int preselect,CString boxlabel,bool j CPartFile *found_file = NULL; if (!sFileHash.IsEmpty()) found_file=theApp.downloadqueue->GetFileByID(_GetFileHash(sFileHash, FileHash)); - + // Get the user category index of 'found_file' in 'preselect'. if (found_file) preselect = found_file->GetCategory(); @@ -4855,7 +4840,7 @@ void CWebServer::InsertCatBox(CString &Out,int preselect,CString boxlabel,bool j strCategory.Replace(_T("'"),_T("\\'")); tempBuff.AppendFormat(_T(""), - sSession, sFileHash, i, tempBuff3, strCategory); + (LPCTSTR)sSession, (LPCTSTR)sFileHash, i, (LPCTSTR)tempBuff3, (LPCTSTR)strCategory); } @@ -4883,7 +4868,7 @@ CString CWebServer::GetSubCatLabel(int cat) { return _T("?"); } -CString CWebServer::_GetRemoteLinkAddedOk(ThreadData Data) +CString CWebServer::_GetRemoteLinkAddedOk(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; @@ -4905,7 +4890,7 @@ CString CWebServer::_GetRemoteLinkAddedOk(ThreadData Data) return Out; } -CString CWebServer::_GetRemoteLinkAddedFailed(ThreadData Data) +CString CWebServer::_GetRemoteLinkAddedFailed(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; @@ -4921,7 +4906,8 @@ CString CWebServer::_GetRemoteLinkAddedFailed(ThreadData Data) return Out; } -void CWebServer::_SetLastUserCat(ThreadData Data, long lSession,int cat){ +void CWebServer::_SetLastUserCat(const ThreadData& Data, long lSession, int cat) +{ CWebServer *pThis = (CWebServer *)Data.pThis; if(pThis == NULL) return; @@ -4931,17 +4917,17 @@ void CWebServer::_SetLastUserCat(ThreadData Data, long lSession,int cat){ // find our session for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { - if(pThis->m_Params.Sessions[i].lSession == lSession && lSession != 0) - { + Session& ses = pThis->m_Params.Sessions[i]; + if (ses.lSession == lSession && lSession != 0) { // if found, also reset expiration time - pThis->m_Params.Sessions[i].startTime = CTime::GetCurrentTime(); - pThis->m_Params.Sessions[i].lastcat=cat; + ses.startTime = CTime::GetCurrentTime(); + ses.lastcat = cat; return; } } } -int CWebServer::_GetLastUserCat(ThreadData Data, long lSession) +int CWebServer::_GetLastUserCat(const ThreadData& Data, long lSession) { CWebServer *pThis = (CWebServer *)Data.pThis; if(pThis == NULL) @@ -4952,49 +4938,56 @@ int CWebServer::_GetLastUserCat(ThreadData Data, long lSession) // find our session for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { - if(pThis->m_Params.Sessions[i].lSession == lSession && lSession != 0) - { + Session& ses = pThis->m_Params.Sessions[i]; + if (ses.lSession == lSession && lSession != 0) { // if found, also reset expiration time - pThis->m_Params.Sessions[i].startTime = CTime::GetCurrentTime(); - return pThis->m_Params.Sessions[i].lastcat; + ses.startTime = CTime::GetCurrentTime(); + return ses.lastcat; } } return 0; } -uchar* CWebServer::_GetFileHash(CString sHash, uchar *FileHash) +uchar* CWebServer::_GetFileHash(const CString& sHash, uchar *FileHash) { strmd4(sHash, FileHash); return FileHash; } -void CWebServer::ProcessFileReq(ThreadData Data) { +void CWebServer::ProcessFileReq(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; if (pThis == NULL) return; CString filename=Data.sURL; CString contenttype; - if ( filename.Right(4).MakeLower()==_T(".gif")) contenttype=_T("Content-Type: image/gif\r\n"); - else if (filename.Right(4).MakeLower()==_T(".jpg") || filename.Right(5).MakeLower()==_T(".jpeg")) contenttype=_T("Content-Type: image/jpg\r\n"); - else if (filename.Right(4).MakeLower()==_T(".bmp")) contenttype=_T("Content-Type: image/bmp\r\n"); - else if (filename.Right(4).MakeLower()==_T(".png")) contenttype=_T("Content-Type: image/png\r\n"); + CString ext = filename.Right(5).MakeLower(); + int i = ext.ReverseFind('.'); + ext.Delete(0, i); + if (i>=0 && ext.GetLength()>2) { + ext.Delete(0, 1); + if (ext==_T("bmp") || ext==_T("gif") || ext==_T("jpeg") || ext==_T("jpg") || ext==_T("png")) + contenttype = _T("Content-Type: image/") + ext + _T("\r\n"); //DonQ - additional filetypes - else if (filename.Right(4).MakeLower()==_T(".ico")) contenttype=_T("Content-Type: image/x-icon\r\n"); - else if (filename.Right(4).MakeLower()==_T(".css")) contenttype=_T("Content-Type: text/css\r\n"); - else if (filename.Right(3).MakeLower()==_T(".js")) contenttype=_T("Content-Type: text/javascript\r\n"); - + else if (ext == _T("ico")) + contenttype = _T("Content-Type: image/x-icon\r\n"); + else if (ext == _T("css")) + contenttype = _T("Content-Type: text/css\r\n"); + else if (ext ==_T("js")) + contenttype = _T("Content-Type: text/javascript\r\n"); + } + contenttype += _T("Last-Modified: ") + pThis->m_Params.sLastModified + _T("\r\n") + _T("ETag: ") + pThis->m_Params.sETag + _T("\r\n"); - + filename.Replace(_T('/'),_T('\\')); - if (filename.GetAt(0)==_T('\\')) filename.Delete(0); + if (filename[0] == _T('\\')) filename.Delete(0); filename = thePrefs.GetMuleDirectory(EMULE_WEBSERVERDIR) + filename; CFile file; if(file.Open(filename, CFile::modeRead|CFile::shareDenyWrite|CFile::typeBinary)) { - if (thePrefs.GetMaxWebUploadFileSizeMB()==0 || file.GetLength()<=thePrefs.GetMaxWebUploadFileSizeMB()*1024*1024 ) { + if (thePrefs.GetMaxWebUploadFileSizeMB()==0 || file.GetLength()<=((ULONGLONG)thePrefs.GetMaxWebUploadFileSizeMB())*1024*1024) { DWORD filesize=(DWORD)file.GetLength(); char* buffer=new char[filesize]; @@ -5011,7 +5004,7 @@ void CWebServer::ProcessFileReq(ThreadData Data) { } } -CString CWebServer::GetWebImageNameForFileType(CString filename) +CString CWebServer::GetWebImageNameForFileType(const CString& filename) { switch (GetED2KFileTypeID(filename)) { case ED2KFT_AUDIO: return _T("audio"); @@ -5033,7 +5026,7 @@ CString CWebServer::GetClientSummary(CUpDownClient* client) { CString buffer= GetResString(IDS_CD_UNAME) + _T(" ") + client->GetUserName() + _T("\n"); // client version buffer+= GetResString(IDS_CD_CSOFT)+ _T(": ") + client->GetClientSoftVer() + _T("\n"); - + // uploading file buffer+= GetResString(IDS_CD_UPLOADREQ) + _T(" "); CKnownFile* file = theApp.sharedfiles->GetFileByID(client->GetUploadFileID() ); @@ -5042,7 +5035,7 @@ CString CWebServer::GetClientSummary(CUpDownClient* client) { buffer += file->GetFileName(); } buffer+= _T("\n\n"); - + // transfering time buffer+= GetResString(IDS_UPLOADTIME) + _T(": ") + CastSecondsToHM(client->GetUpStartTimeDelay()/1000) + _T("\n"); @@ -5089,18 +5082,18 @@ CString CWebServer::_GetCommentlist(ThreadData Data) // prepare commentsinfo-string for (POSITION pos = pPartFile->srclist.GetHeadPosition(); pos != NULL; ) - { + { CUpDownClient* cur_src = pPartFile->srclist.GetNext(pos); if (cur_src->HasFileRating() || !cur_src->GetFileComment().IsEmpty()) { commentlines.AppendFormat( pThis->m_Templates.sCommentListLine, - _SpecialChars(cur_src->GetUserName()), - _SpecialChars(cur_src->GetClientFilename()), - _SpecialChars(cur_src->GetFileComment()), - _SpecialChars(GetRateString(cur_src->GetFileRating())) + (LPCTSTR)_SpecialChars(cur_src->GetUserName()), + (LPCTSTR)_SpecialChars(cur_src->GetClientFilename()), + (LPCTSTR)_SpecialChars(cur_src->GetFileComment()), + (LPCTSTR)_SpecialChars(GetRateString(cur_src->GetFileRating())) ); - } - } + } + } const CTypedPtrList& list = pPartFile->getNotes(); for(POSITION pos = list.GetHeadPosition(); pos != NULL; ) @@ -5109,12 +5102,12 @@ CString CWebServer::_GetCommentlist(ThreadData Data) commentlines.AppendFormat( pThis->m_Templates.sCommentListLine, _T(""), - _SpecialChars(entry->GetCommonFileName()), - _SpecialChars(entry->GetStrTagValue(TAG_DESCRIPTION)), - _SpecialChars(GetRateString((UINT)entry->GetIntTagValue(TAG_FILERATING)) ) + (LPCTSTR)_SpecialChars(entry->GetCommonFileName()), + (LPCTSTR)_SpecialChars(entry->GetStrTagValue(TAG_DESCRIPTION)), + (LPCTSTR)_SpecialChars(GetRateString((UINT)entry->GetIntTagValue(TAG_FILERATING)) ) ); } - + Out.Replace(_T("[COMMENTLINES]"), commentlines ); Out.Replace(_T("[COMMENTS]"), _T("") ); @@ -5126,4 +5119,4 @@ CString CWebServer::_GetCommentlist(ThreadData Data) Out.Replace(_T("[CharSet]"), HTTPENCODING ); return Out; -} +} \ No newline at end of file diff --git a/WebServer.h b/WebServer.h index 2d2117f3..53eb7df5 100644 --- a/WebServer.h +++ b/WebServer.h @@ -212,7 +212,7 @@ typedef struct ServerSort ServerSort; bool bServerSortReverse; SharedSort SharedSort; - bool bSharedSortReverse; + bool bSharedSortReverse; bool bShowUploadQueue; bool bShowUploadQueueBanned; bool bShowUploadQueueFriend; @@ -293,7 +293,7 @@ typedef struct CString sCommentListLine; } WebTemplates; -class CWebServer +class CWebServer { friend class CWebSocket; @@ -308,11 +308,11 @@ class CWebServer void AddStatsLine(UpDown line); void ReloadTemplates(); UINT GetSessionCount() { return m_Params.Sessions.GetCount();} - bool IsRunning() { return m_bServerWorking;} + bool IsRunning() const { return m_bServerWorking;} CArray* GetPointsForWeb() {return &m_Params.PointsForWeb;} // MobileMule protected: - static void ProcessURL(ThreadData); - static void ProcessFileReq(ThreadData Data); + static void ProcessURL(const ThreadData& Data); + static void ProcessFileReq(const ThreadData& Data); private: static CString _GetHeader(ThreadData, long lSession); @@ -331,17 +331,17 @@ class CWebServer static CString _GetConnectedServer(ThreadData); static CString _GetAddServerBox(ThreadData Data); static CString _GetCommentlist(ThreadData Data); - static void _RemoveServer(CString sIP, int nPort); - static void _AddToStatic(CString sIP, int nPort); - static void _RemoveFromStatic(CString sIP, int nPort); - static uchar* _GetFileHash(CString sHash, uchar *FileHash); + static void _RemoveServer(const CString& sIP, int nPort); + static void _AddToStatic(const CString& sIP, int nPort); + static void _RemoveFromStatic(const CString& sIP, int nPort); + static uchar* _GetFileHash(const CString& sHash, uchar *FileHash); static CString _GetWebSearch(ThreadData Data); static CString _GetSearch(ThreadData Data); - static CString _ParseURL(CString URL, CString fieldname); - static CString _ParseURLArray(CString URL, CString fieldname); - static void _ConnectToServer(CString sIP, int nPort); + static CString _ParseURL(const CString& URL, const CString& fieldname); + static CString _ParseURLArray(CString& URL, CString fieldname); + static void _ConnectToServer(const CString& sIP, int nPort); static bool _IsLoggedIn(ThreadData Data, long lSession); static void _RemoveTimeOuts(ThreadData Data); static bool _RemoveSession(ThreadData Data, long lSession); @@ -349,24 +349,24 @@ class CWebServer static CString _GetPlainResString(UINT nID, bool noquote = true); static void _GetPlainResString(CString *pstrOut, UINT nID, bool noquote = true); static int _GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level); - CString _LoadTemplate(CString sAll, CString sTemplateName); + CString _LoadTemplate(const CString& sAll, const CString& sTemplateName); static Session GetSessionByID(ThreadData Data,long sessionID); static bool IsSessionAdmin(ThreadData Data, const CString &strSsessionID); static CString GetPermissionDenied(); - static CString _GetDownloadGraph(ThreadData Data,CString filehash); - static void InsertCatBox(CString &Out,int preselect,CString boxlabel, bool jump,bool extraCats,CString sSession,CString sFileHash,bool ed2kbox=false); + static CString _GetDownloadGraph(const ThreadData& Data,const CString& filehash); + static void InsertCatBox(CString &Out, int preselect, const CString& boxlabel, bool jump, bool extraCats, const CString& sSession, const CString& sFileHash, bool ed2kbox = false); static CString GetSubCatLabel(int iCat); - static CString _GetRemoteLinkAddedOk(ThreadData Data); - static CString _GetRemoteLinkAddedFailed(ThreadData Data); - static void _SetLastUserCat(ThreadData Data, long lSession,int cat); - static int _GetLastUserCat(ThreadData Data, long lSession); + static CString _GetRemoteLinkAddedOk(const ThreadData& Data); + static CString _GetRemoteLinkAddedFailed(const ThreadData& Data); + static void _SetLastUserCat(const ThreadData& Data, long lSession, int cat); + static int _GetLastUserCat(const ThreadData& Data, long lSession); static CString _CreateTransferList(CString Out, CWebServer *pThis, ThreadData* Data, void* FilesArray, void* UploadArray, bool bAdmin); private: static void SaveWIConfigArray(BOOL array[], int size, LPCTSTR key); - static CString GetWebImageNameForFileType(CString filename); + static CString GetWebImageNameForFileType(const CString& filename); static CString GetClientSummary(CUpDownClient* client); - static CString _GetMyInfo(ThreadData Data); + static CString _GetMyInfo(const ThreadData& Data); static CString GetClientversionImage(CUpDownClient* client); @@ -379,6 +379,6 @@ class CWebServer uint16 m_nIntruderDetect; bool m_bIsTempDisabled; uint32 m_nStartTempDisabledTime; - bool GetIsTempDisabled() { return m_bIsTempDisabled; } + bool GetIsTempDisabled() const { return m_bIsTempDisabled; } ULONG m_ulCurIP; -}; +}; \ No newline at end of file diff --git a/WebSocket.cpp b/WebSocket.cpp index 78202c3a..c2c6166d 100644 --- a/WebSocket.cpp +++ b/WebSocket.cpp @@ -29,12 +29,11 @@ void CWebSocket::SetParent(CWebServer *pParent) m_pParent = pParent; } -void CWebSocket::OnRequestReceived(char* pHeader, DWORD dwHeaderLen, char* pData, DWORD dwDataLen, in_addr inad) +void CWebSocket::OnRequestReceived(const char* pHeader, DWORD dwHeaderLen, const char* pData, DWORD dwDataLen, in_addr inad) { CStringA sHeader(pHeader, dwHeaderLen); CStringA sData(pData, dwDataLen); CStringA sURL; - bool filereq=false; if(sHeader.Left(3) == "GET") sURL = sHeader.Trim(); @@ -46,16 +45,14 @@ void CWebSocket::OnRequestReceived(char* pHeader, DWORD dwHeaderLen, char* pData sURL = sURL.Mid(sURL.Find(" ")+1, sURL.GetLength()); if(sURL.Find(" ") > -1) sURL = sURL.Left(sURL.Find(" ")); - - if (sURL.GetLength()>4 && // min length (for valid extentions) - (sURL.Right(4).MakeLower()==".gif" || sURL.Right(4).MakeLower()==".jpg" || sURL.Right(4).MakeLower()==".png" || - sURL.Right(4).MakeLower()==".ico" ||sURL.Right(4).MakeLower()==".css" ||sURL.Right(3).MakeLower()==".js" || - sURL.Right(4).MakeLower()==".bmp" || sURL.Right(5).MakeLower()==".jpeg" - ) - && sURL.Find("..")==-1 // dont allow leaving the emule-webserver-folder for accessing files - ) - filereq=true; - + bool filereq = sURL.GetLength()>=3 && sURL.Find("..") < 0; // don't allow leaving the emule-webserver-folder for accessing files + if (filereq) { + CStringA ext(sURL.Right(5).MakeLower()); + int i = ext.ReverseFind('.'); + ext.Delete(0, i); + filereq = i>=0 && ext.GetLength()>2 && (ext==".gif" || ext==".jpg" || ext==".png" || ext==".ico" || ext==".css" || ext==".bmp" + || ext==".js" || ext==".jpeg"); + } ThreadData Data; Data.sURL = sURL; Data.pThis = m_pParent; @@ -77,8 +74,10 @@ void CWebSocket::OnReceived(void* pData, DWORD dwSize, in_addr inad) if (m_dwBufSize < dwSize + m_dwRecv) { // reallocate - char* pNewBuf = new char[m_dwBufSize = dwSize + m_dwRecv + SIZE_PRESERVE]; - if (!pNewBuf) + char* pNewBuf; + try { + pNewBuf = new char[m_dwBufSize = dwSize + m_dwRecv + SIZE_PRESERVE]; + } catch (...) { m_bValid = false; // internal problem return; @@ -180,7 +179,7 @@ void CWebSocket::SendData(const void* pData, DWORD dwDataSize) m_bValid = false; } else - { + { //-- in nRes still could be "-1" (if WSAEWOULDBLOCK occured) //-- next to line should be like this: @@ -197,29 +196,32 @@ void CWebSocket::SendData(const void* pData, DWORD dwDataSize) if (dwDataSize && m_bValid) { // push it to our tails - CChunk* pChunk = new CChunk; - if (pChunk) - { - pChunk->m_pNext = NULL; - pChunk->m_dwSize = dwDataSize; - if ((pChunk->m_pData = new char[dwDataSize]) != NULL) - { - //-- data should be copied into "pChunk->m_pData" anyhow - //-- possible solution is simple: - - CopyMemory(pChunk->m_pData, pData, dwDataSize); + CChunk* pChunk = NULL; + try { + pChunk = new CChunk; + } catch (...) { + return; + } + pChunk->m_pNext = NULL; + pChunk->m_dwSize = dwDataSize; + try { + pChunk->m_pData = new char[dwDataSize]; + } catch (...) { + delete pChunk; // oops, no memory (???) + return; + } + //-- data should be copied into "pChunk->m_pData" anyhow + //-- possible solution is simple: - // push it to the end of our queue - pChunk->m_pToSend = pChunk->m_pData; - if (m_pTail) - m_pTail->m_pNext = pChunk; - else - m_pHead = pChunk; - m_pTail = pChunk; + CopyMemory(pChunk->m_pData, pData, dwDataSize); - } else - delete pChunk; // oops, no memory (???) - } + // push it to the end of our queue + pChunk->m_pToSend = pChunk->m_pData; + if (m_pTail) + m_pTail->m_pNext = pChunk; + else + m_pHead = pChunk; + m_pTail = pChunk; } } } @@ -235,7 +237,7 @@ void CWebSocket::SendReply(LPCSTR szReply) void CWebSocket::SendContent(LPCSTR szStdResponse, const void* pContent, DWORD dwContentSize) { char szBuf[0x1000]; - int nLen = _snprintf(szBuf, _countof(szBuf), "HTTP/1.1 200 OK\r\n%sContent-Length: %ld\r\n\r\n", szStdResponse, dwContentSize); + int nLen = _snprintf(szBuf, _countof(szBuf), "HTTP/1.1 200 OK\r\n%sContent-Length: %lu\r\n\r\n", szStdResponse, dwContentSize); if (nLen > 0) { SendData(szBuf, nLen); SendData(pContent, dwContentSize); @@ -256,16 +258,18 @@ void CWebSocket::Disconnect() if (m_pTail) { // push it as a tail - CChunk* pChunk = new CChunk; - if (pChunk) - { - pChunk->m_dwSize = 0; - pChunk->m_pData = NULL; - pChunk->m_pToSend = NULL; - pChunk->m_pNext = NULL; - - m_pTail->m_pNext = pChunk; + CChunk* pChunk; + try { + pChunk = new CChunk; + } catch (...) { + return; } + pChunk->m_dwSize = 0; + pChunk->m_pData = NULL; + pChunk->m_pToSend = NULL; + pChunk->m_pNext = NULL; + + m_pTail->m_pNext = pChunk; } else if (shutdown(m_hSocket, SD_SEND)) @@ -284,7 +288,7 @@ UINT AFX_CDECL WebSocketAcceptedFunc(LPVOID pD) SOCKET hSocket = pData->hSocket; CWebServer *pThis = (CWebServer *)pData->pThis; in_addr ad=pData->incomingaddr; - + delete pData; ASSERT(INVALID_SOCKET != hSocket); @@ -438,7 +442,7 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) if (INVALID_SOCKET == hAccepted) break; - if (thePrefs.GetAllowedRemoteAccessIPs().GetCount() > 0) + if (!thePrefs.GetAllowedRemoteAccessIPs().IsEmpty()) { bool bAllowedIP = false; for (int i = 0; i < thePrefs.GetAllowedRemoteAccessIPs().GetCount(); i++) @@ -450,7 +454,7 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) } } if (!bAllowedIP) { - LogWarning(_T("Web Interface: Rejected connection attempt from %s"), ipstr(their_addr.sin_addr.S_un.S_addr)); + LogWarning(_T("Web Interface: Rejected connection attempt from %s"), (LPCTSTR)ipstr(their_addr.sin_addr.S_un.S_addr)); VERIFY( !closesocket(hAccepted) ); break; } @@ -462,7 +466,7 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) pData->hSocket = hAccepted; pData->pThis = pThis; pData->incomingaddr=their_addr.sin_addr; - + // - do NOT use Windows API 'CreateThread' to create a thread which uses MFC/CRT -> lot of mem leaks! // - 'AfxBeginThread' could be used here, but creates a little too much overhead for our needs. CWinThread* pAcceptThread = new CWinThread(WebSocketAcceptedFunc, (LPVOID)pData); @@ -483,11 +487,9 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) } } VERIFY( CloseHandle(hEvent) ); - hEvent = NULL; } } VERIFY( !closesocket(hSocket) ); - hSocket = NULL; } return 0; @@ -500,7 +502,7 @@ void StartSockets(CWebServer *pThis) if ((s_hTerminate = CreateEvent(NULL, TRUE, FALSE, NULL)) != NULL) { // - do NOT use Windows API 'CreateThread' to create a thread which uses MFC/CRT -> lot of mem leaks! - // - because we want to wait on the thread handle we have to disable 'CWinThread::m_AutoDelete' -> can't + // - because we want to wait on the thread handle we have to disable 'CWinThread::m_AutoDelete' -> can't // use 'AfxBeginThread' s_pSocketThread = new CWinThread(WebSocketListeningFunc, (LPVOID)pThis); s_pSocketThread->m_bAutoDelete = FALSE; @@ -534,7 +536,7 @@ void StopSockets() VERIFY( TerminateThread(s_pSocketThread->m_hThread, (DWORD)-1) ); VERIFY( CloseHandle(s_pSocketThread->m_hThread) ); } - else if (dwWaitRes == -1) + else if (dwWaitRes == (UINT)-1) { TRACE("*** Failed to wait for websocket thread termination - Error %u\n", GetLastError()); ASSERT(0); // probable invalid thread handle @@ -547,4 +549,4 @@ void StopSockets() VERIFY( CloseHandle(s_hTerminate) ); s_hTerminate = NULL; } -} +} \ No newline at end of file diff --git a/WebSocket.h b/WebSocket.h index ae174c88..cd7e4196 100644 --- a/WebSocket.h +++ b/WebSocket.h @@ -44,5 +44,5 @@ class CWebSocket void SendReply(LPCSTR szReply); void Disconnect(); - void OnRequestReceived(char* pHeader, DWORD dwHeaderLen, char* pData, DWORD dwDataLen , in_addr inad); + void OnRequestReceived(const char* pHeader, DWORD dwHeaderLen, const char* pData, DWORD dwDataLen , in_addr inad); }; From 80e9654fd7d0e46a5a2643d9b7c328f0520f8c8d Mon Sep 17 00:00:00 2001 From: linefinc Date: Sun, 23 Oct 2016 18:08:29 +0200 Subject: [PATCH 3/3] Add first basic JSON API --- WebServer.cpp | 2618 ++++++++++++++++++++++++++----------------------- WebServer.h | 15 +- WebSocket.cpp | 94 +- WebSocket.h | 6 +- 4 files changed, 1453 insertions(+), 1280 deletions(-) diff --git a/WebServer.cpp b/WebServer.cpp index 23a29b27..567ecd1a 100644 --- a/WebServer.cpp +++ b/WebServer.cpp @@ -81,7 +81,7 @@ CWebServer::CWebServer(void) { m_Params.sLastModified.Empty(); m_Params.sETag.Empty(); - m_iSearchSortby=3; + m_iSearchSortby = 3; m_bSearchAsc = false; m_bServerWorking = false; @@ -90,7 +90,7 @@ CWebServer::CWebServer(void) m_nStartTempDisabledTime = 0; m_bIsTempDisabled = false; - CIni ini( thePrefs.GetConfigFile(),_T("WebServer")); + CIni ini(thePrefs.GetConfigFile(), _T("WebServer")); ini.SerGet(true, WSdownloadColumnHidden, ARRSIZE(WSdownloadColumnHidden), _T("downloadColumnHidden")); ini.SerGet(true, WSuploadColumnHidden, ARRSIZE(WSuploadColumnHidden), _T("uploadColumnHidden")); @@ -99,43 +99,43 @@ CWebServer::CWebServer(void) ini.SerGet(true, WSsharedColumnHidden, ARRSIZE(WSsharedColumnHidden), _T("sharedColumnHidden")); ini.SerGet(true, WSserverColumnHidden, ARRSIZE(WSserverColumnHidden), _T("serverColumnHidden")); - m_Params.bShowUploadQueue = ini.GetBool(_T("ShowUploadQueue"),false); - m_Params.bShowUploadQueueBanned = ini.GetBool(_T("ShowUploadQueueBanned"),false); - m_Params.bShowUploadQueueFriend = ini.GetBool(_T("ShowUploadQueueFriend"),false); - - m_Params.bDownloadSortReverse = ini.GetBool(_T("DownloadSortReverse"),true); - m_Params.bUploadSortReverse = ini.GetBool(_T("UploadSortReverse"),true); - m_Params.bQueueSortReverse = ini.GetBool(_T("QueueSortReverse"),true); - m_Params.bServerSortReverse = ini.GetBool(_T("ServerSortReverse"),true); - m_Params.bSharedSortReverse = ini.GetBool(_T("SharedSortReverse"),true); - - m_Params.DownloadSort = (DownloadSort)ini.GetInt(_T("DownloadSort"),DOWN_SORT_NAME); - m_Params.UploadSort = (UploadSort)ini.GetInt(_T("UploadSort"),UP_SORT_FILENAME); - m_Params.QueueSort = (QueueSort)ini.GetInt(_T("QueueSort"),QU_SORT_FILENAME); - m_Params.ServerSort = (ServerSort)ini.GetInt(_T("ServerSort"),SERVER_SORT_NAME); - m_Params.SharedSort = (SharedSort)ini.GetInt(_T("SharedSort"),SHARED_SORT_NAME); + m_Params.bShowUploadQueue = ini.GetBool(_T("ShowUploadQueue"), false); + m_Params.bShowUploadQueueBanned = ini.GetBool(_T("ShowUploadQueueBanned"), false); + m_Params.bShowUploadQueueFriend = ini.GetBool(_T("ShowUploadQueueFriend"), false); + + m_Params.bDownloadSortReverse = ini.GetBool(_T("DownloadSortReverse"), true); + m_Params.bUploadSortReverse = ini.GetBool(_T("UploadSortReverse"), true); + m_Params.bQueueSortReverse = ini.GetBool(_T("QueueSortReverse"), true); + m_Params.bServerSortReverse = ini.GetBool(_T("ServerSortReverse"), true); + m_Params.bSharedSortReverse = ini.GetBool(_T("SharedSortReverse"), true); + + m_Params.DownloadSort = (DownloadSort)ini.GetInt(_T("DownloadSort"), DOWN_SORT_NAME); + m_Params.UploadSort = (UploadSort)ini.GetInt(_T("UploadSort"), UP_SORT_FILENAME); + m_Params.QueueSort = (QueueSort)ini.GetInt(_T("QueueSort"), QU_SORT_FILENAME); + m_Params.ServerSort = (ServerSort)ini.GetInt(_T("ServerSort"), SERVER_SORT_NAME); + m_Params.SharedSort = (SharedSort)ini.GetInt(_T("SharedSort"), SHARED_SORT_NAME); } CWebServer::~CWebServer(void) { // save layout settings - CIni ini( thePrefs.GetConfigFile(), _T("WebServer")); + CIni ini(thePrefs.GetConfigFile(), _T("WebServer")); - ini.WriteBool( _T("ShowUploadQueue"), m_Params.bShowUploadQueue ); - ini.WriteBool( _T("ShowUploadQueueBanned"), m_Params.bShowUploadQueueBanned ); - ini.WriteBool( _T("ShowUploadQueueFriend"), m_Params.bShowUploadQueueFriend ); + ini.WriteBool(_T("ShowUploadQueue"), m_Params.bShowUploadQueue); + ini.WriteBool(_T("ShowUploadQueueBanned"), m_Params.bShowUploadQueueBanned); + ini.WriteBool(_T("ShowUploadQueueFriend"), m_Params.bShowUploadQueueFriend); - ini.WriteBool( _T("DownloadSortReverse"), m_Params.bDownloadSortReverse ); - ini.WriteBool( _T("UploadSortReverse"), m_Params.bUploadSortReverse ); - ini.WriteBool( _T("QueueSortReverse"), m_Params.bQueueSortReverse ); - ini.WriteBool( _T("ServerSortReverse"), m_Params.bServerSortReverse ); - ini.WriteBool( _T("SharedSortReverse"), m_Params.bSharedSortReverse ); + ini.WriteBool(_T("DownloadSortReverse"), m_Params.bDownloadSortReverse); + ini.WriteBool(_T("UploadSortReverse"), m_Params.bUploadSortReverse); + ini.WriteBool(_T("QueueSortReverse"), m_Params.bQueueSortReverse); + ini.WriteBool(_T("ServerSortReverse"), m_Params.bServerSortReverse); + ini.WriteBool(_T("SharedSortReverse"), m_Params.bSharedSortReverse); - ini.WriteInt( _T("DownloadSort"), m_Params.DownloadSort); - ini.WriteInt( _T("UploadSort"), m_Params.UploadSort); - ini.WriteInt( _T("QueueSort"), m_Params.QueueSort); - ini.WriteInt( _T("ServerSort"), m_Params.ServerSort); - ini.WriteInt( _T("SharedSort"), m_Params.SharedSort); + ini.WriteInt(_T("DownloadSort"), m_Params.DownloadSort); + ini.WriteInt(_T("UploadSort"), m_Params.UploadSort); + ini.WriteInt(_T("QueueSort"), m_Params.QueueSort); + ini.WriteInt(_T("ServerSort"), m_Params.ServerSort); + ini.WriteInt(_T("SharedSort"), m_Params.SharedSort); if (m_bServerWorking) StopSockets(); } @@ -160,12 +160,12 @@ void CWebServer::ReloadTemplates() CString sFile = thePrefs.GetTemplate(); CStdioFile file; - if (file.Open(sFile, CFile::modeRead|CFile::shareDenyWrite|CFile::typeText)) + if (file.Open(sFile, CFile::modeRead | CFile::shareDenyWrite | CFile::typeText)) { CString sAll, sLine; - for(;;) + for (;;) { - if(!file.ReadString(sLine)) + if (!file.ReadString(sLine)) break; sAll += sLine; @@ -173,15 +173,15 @@ void CWebServer::ReloadTemplates() } file.Close(); - CString sVersion = _LoadTemplate(sAll,_T("TMPL_VERSION")); + CString sVersion = _LoadTemplate(sAll, _T("TMPL_VERSION")); long lVersion = _tstol(sVersion); - if(lVersion < WEB_SERVER_TEMPLATES_VERSION) + if (lVersion < WEB_SERVER_TEMPLATES_VERSION) { - if(thePrefs.GetWSIsEnabled() || m_bServerWorking) { + if (thePrefs.GetWSIsEnabled() || m_bServerWorking) { CString buffer; buffer.Format(GetResString(IDS_WS_ERR_LOADTEMPLATE), (LPCTSTR)sFile); AddLogLine(true, buffer); - AfxMessageBox(buffer ,MB_OK); + AfxMessageBox(buffer, MB_OK); } if (m_bServerWorking) StopSockets(); @@ -190,62 +190,62 @@ void CWebServer::ReloadTemplates() } else { - m_Templates.sHeader = _LoadTemplate(sAll,_T("TMPL_HEADER")); - m_Templates.sHeaderStylesheet = _LoadTemplate(sAll,_T("TMPL_HEADER_STYLESHEET")); - m_Templates.sFooter = _LoadTemplate(sAll,_T("TMPL_FOOTER")); - m_Templates.sServerList = _LoadTemplate(sAll,_T("TMPL_SERVER_LIST")); - m_Templates.sServerLine = _LoadTemplate(sAll,_T("TMPL_SERVER_LINE")); - m_Templates.sTransferImages = _LoadTemplate(sAll,_T("TMPL_TRANSFER_IMAGES")); - m_Templates.sTransferList = _LoadTemplate(sAll,_T("TMPL_TRANSFER_LIST")); - m_Templates.sTransferDownHeader = _LoadTemplate(sAll,_T("TMPL_TRANSFER_DOWN_HEADER")); - m_Templates.sTransferDownFooter = _LoadTemplate(sAll,_T("TMPL_TRANSFER_DOWN_FOOTER")); - m_Templates.sTransferDownLine = _LoadTemplate(sAll,_T("TMPL_TRANSFER_DOWN_LINE")); - m_Templates.sTransferUpHeader = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_HEADER")); - m_Templates.sTransferUpFooter = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_FOOTER")); - m_Templates.sTransferUpLine = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_LINE")); - m_Templates.sTransferUpQueueShow = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_SHOW")); - m_Templates.sTransferUpQueueHide = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_HIDE")); - m_Templates.sTransferUpQueueLine = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_LINE")); - m_Templates.sTransferUpQueueBannedShow = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_BANNED_SHOW")); - m_Templates.sTransferUpQueueBannedHide = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_BANNED_HIDE")); - m_Templates.sTransferUpQueueBannedLine = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_BANNED_LINE")); - m_Templates.sTransferUpQueueFriendShow = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_FRIEND_SHOW")); - m_Templates.sTransferUpQueueFriendHide = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_FRIEND_HIDE")); - m_Templates.sTransferUpQueueFriendLine = _LoadTemplate(sAll,_T("TMPL_TRANSFER_UP_QUEUE_FRIEND_LINE")); - m_Templates.sSharedList = _LoadTemplate(sAll,_T("TMPL_SHARED_LIST")); - m_Templates.sSharedLine = _LoadTemplate(sAll,_T("TMPL_SHARED_LINE")); - m_Templates.sGraphs = _LoadTemplate(sAll,_T("TMPL_GRAPHS")); - m_Templates.sLog = _LoadTemplate(sAll,_T("TMPL_LOG")); - m_Templates.sServerInfo = _LoadTemplate(sAll,_T("TMPL_SERVERINFO")); - m_Templates.sDebugLog = _LoadTemplate(sAll,_T("TMPL_DEBUGLOG")); - m_Templates.sStats = _LoadTemplate(sAll,_T("TMPL_STATS")); - m_Templates.sPreferences = _LoadTemplate(sAll,_T("TMPL_PREFERENCES")); - m_Templates.sLogin = _LoadTemplate(sAll,_T("TMPL_LOGIN")); - m_Templates.sAddServerBox = _LoadTemplate(sAll,_T("TMPL_ADDSERVERBOX")); - m_Templates.sSearch = _LoadTemplate(sAll,_T("TMPL_SEARCH")); - m_Templates.iProgressbarWidth = (uint16)_tstoi(_LoadTemplate(sAll,_T("PROGRESSBARWIDTH"))); - m_Templates.sSearchHeader = _LoadTemplate(sAll,_T("TMPL_SEARCH_RESULT_HEADER")); - m_Templates.sSearchResultLine = _LoadTemplate(sAll,_T("TMPL_SEARCH_RESULT_LINE")); - m_Templates.sProgressbarImgs = _LoadTemplate(sAll,_T("PROGRESSBARIMGS")); - m_Templates.sProgressbarImgsPercent = _LoadTemplate(sAll,_T("PROGRESSBARPERCENTIMG")); - m_Templates.sCatArrow= _LoadTemplate(sAll,_T("TMPL_CATARROW")); - m_Templates.sDownArrow= _LoadTemplate(sAll,_T("TMPL_DOWNARROW")); - m_Templates.sUpArrow= _LoadTemplate(sAll,_T("TMPL_UPARROW")); - m_Templates.strDownDoubleArrow = _LoadTemplate(sAll,_T("TMPL_DNDOUBLEARROW")); - m_Templates.strUpDoubleArrow = _LoadTemplate(sAll,_T("TMPL_UPDOUBLEARROW")); - m_Templates.sKad = _LoadTemplate(sAll,_T("TMPL_KADDLG")); - m_Templates.sBootstrapLine= _LoadTemplate(sAll,_T("TMPL_BOOTSTRAPLINE")); - m_Templates.sMyInfoLog= _LoadTemplate(sAll,_T("TMPL_MYINFO")); - m_Templates.sCommentList= _LoadTemplate(sAll,_T("TMPL_COMMENTLIST")); - m_Templates.sCommentListLine= _LoadTemplate(sAll,_T("TMPL_COMMENTLIST_LINE")); - - m_Templates.sProgressbarImgsPercent.Replace(_T("[PROGRESSGIFNAME]"),_T("%s")); - m_Templates.sProgressbarImgsPercent.Replace(_T("[PROGRESSGIFINTERNAL]"),_T("%i")); - m_Templates.sProgressbarImgs.Replace(_T("[PROGRESSGIFNAME]"),_T("%s")); - m_Templates.sProgressbarImgs.Replace(_T("[PROGRESSGIFINTERNAL]"),_T("%i")); - } - } - else if(m_bServerWorking) + m_Templates.sHeader = _LoadTemplate(sAll, _T("TMPL_HEADER")); + m_Templates.sHeaderStylesheet = _LoadTemplate(sAll, _T("TMPL_HEADER_STYLESHEET")); + m_Templates.sFooter = _LoadTemplate(sAll, _T("TMPL_FOOTER")); + m_Templates.sServerList = _LoadTemplate(sAll, _T("TMPL_SERVER_LIST")); + m_Templates.sServerLine = _LoadTemplate(sAll, _T("TMPL_SERVER_LINE")); + m_Templates.sTransferImages = _LoadTemplate(sAll, _T("TMPL_TRANSFER_IMAGES")); + m_Templates.sTransferList = _LoadTemplate(sAll, _T("TMPL_TRANSFER_LIST")); + m_Templates.sTransferDownHeader = _LoadTemplate(sAll, _T("TMPL_TRANSFER_DOWN_HEADER")); + m_Templates.sTransferDownFooter = _LoadTemplate(sAll, _T("TMPL_TRANSFER_DOWN_FOOTER")); + m_Templates.sTransferDownLine = _LoadTemplate(sAll, _T("TMPL_TRANSFER_DOWN_LINE")); + m_Templates.sTransferUpHeader = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_HEADER")); + m_Templates.sTransferUpFooter = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_FOOTER")); + m_Templates.sTransferUpLine = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_LINE")); + m_Templates.sTransferUpQueueShow = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_SHOW")); + m_Templates.sTransferUpQueueHide = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_HIDE")); + m_Templates.sTransferUpQueueLine = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_LINE")); + m_Templates.sTransferUpQueueBannedShow = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_BANNED_SHOW")); + m_Templates.sTransferUpQueueBannedHide = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_BANNED_HIDE")); + m_Templates.sTransferUpQueueBannedLine = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_BANNED_LINE")); + m_Templates.sTransferUpQueueFriendShow = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_FRIEND_SHOW")); + m_Templates.sTransferUpQueueFriendHide = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_FRIEND_HIDE")); + m_Templates.sTransferUpQueueFriendLine = _LoadTemplate(sAll, _T("TMPL_TRANSFER_UP_QUEUE_FRIEND_LINE")); + m_Templates.sSharedList = _LoadTemplate(sAll, _T("TMPL_SHARED_LIST")); + m_Templates.sSharedLine = _LoadTemplate(sAll, _T("TMPL_SHARED_LINE")); + m_Templates.sGraphs = _LoadTemplate(sAll, _T("TMPL_GRAPHS")); + m_Templates.sLog = _LoadTemplate(sAll, _T("TMPL_LOG")); + m_Templates.sServerInfo = _LoadTemplate(sAll, _T("TMPL_SERVERINFO")); + m_Templates.sDebugLog = _LoadTemplate(sAll, _T("TMPL_DEBUGLOG")); + m_Templates.sStats = _LoadTemplate(sAll, _T("TMPL_STATS")); + m_Templates.sPreferences = _LoadTemplate(sAll, _T("TMPL_PREFERENCES")); + m_Templates.sLogin = _LoadTemplate(sAll, _T("TMPL_LOGIN")); + m_Templates.sAddServerBox = _LoadTemplate(sAll, _T("TMPL_ADDSERVERBOX")); + m_Templates.sSearch = _LoadTemplate(sAll, _T("TMPL_SEARCH")); + m_Templates.iProgressbarWidth = (uint16)_tstoi(_LoadTemplate(sAll, _T("PROGRESSBARWIDTH"))); + m_Templates.sSearchHeader = _LoadTemplate(sAll, _T("TMPL_SEARCH_RESULT_HEADER")); + m_Templates.sSearchResultLine = _LoadTemplate(sAll, _T("TMPL_SEARCH_RESULT_LINE")); + m_Templates.sProgressbarImgs = _LoadTemplate(sAll, _T("PROGRESSBARIMGS")); + m_Templates.sProgressbarImgsPercent = _LoadTemplate(sAll, _T("PROGRESSBARPERCENTIMG")); + m_Templates.sCatArrow = _LoadTemplate(sAll, _T("TMPL_CATARROW")); + m_Templates.sDownArrow = _LoadTemplate(sAll, _T("TMPL_DOWNARROW")); + m_Templates.sUpArrow = _LoadTemplate(sAll, _T("TMPL_UPARROW")); + m_Templates.strDownDoubleArrow = _LoadTemplate(sAll, _T("TMPL_DNDOUBLEARROW")); + m_Templates.strUpDoubleArrow = _LoadTemplate(sAll, _T("TMPL_UPDOUBLEARROW")); + m_Templates.sKad = _LoadTemplate(sAll, _T("TMPL_KADDLG")); + m_Templates.sBootstrapLine = _LoadTemplate(sAll, _T("TMPL_BOOTSTRAPLINE")); + m_Templates.sMyInfoLog = _LoadTemplate(sAll, _T("TMPL_MYINFO")); + m_Templates.sCommentList = _LoadTemplate(sAll, _T("TMPL_COMMENTLIST")); + m_Templates.sCommentListLine = _LoadTemplate(sAll, _T("TMPL_COMMENTLIST_LINE")); + + m_Templates.sProgressbarImgsPercent.Replace(_T("[PROGRESSGIFNAME]"), _T("%s")); + m_Templates.sProgressbarImgsPercent.Replace(_T("[PROGRESSGIFINTERNAL]"), _T("%i")); + m_Templates.sProgressbarImgs.Replace(_T("[PROGRESSGIFNAME]"), _T("%s")); + m_Templates.sProgressbarImgs.Replace(_T("[PROGRESSGIFINTERNAL]"), _T("%i")); + } + } + else if (m_bServerWorking) { AddLogLine(true, GetResString(IDS_WEB_ERR_CANTLOAD), (LPCTSTR)sFile); StopSockets(); @@ -259,16 +259,16 @@ CString CWebServer::_LoadTemplate(const CString& sAll, const CString& sTemplateN CString sRet; int nStart = sAll.Find(_T("<--") + sTemplateName + _T("-->")); int nEnd = sAll.Find(_T("<--") + sTemplateName + _T("_END-->")); - if(nStart != -1 && nEnd != -1 && nStartGetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_SERVER_REMOVE, (LPARAM)server); + CServer* server = theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); + if (server != NULL) + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_SERVER_REMOVE, (LPARAM)server); } void CWebServer::_AddToStatic(const CString& sIP, int nPort) { - CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_ADD_TO_STATIC, (LPARAM)server); + CServer* server = theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); + if (server != NULL) + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_ADD_TO_STATIC, (LPARAM)server); } void CWebServer::_RemoveFromStatic(const CString& sIP, int nPort) { - CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_REMOVE_FROM_STATIC, (LPARAM)server); + CServer* server = theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); + if (server != NULL) + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_REMOVE_FROM_STATIC, (LPARAM)server); } void CWebServer::AddStatsLine(UpDown line) { m_Params.PointsForWeb.Add(line); - if(m_Params.PointsForWeb.GetCount() > WEB_GRAPH_WIDTH) + if (m_Params.PointsForWeb.GetCount() > WEB_GRAPH_WIDTH) m_Params.PointsForWeb.RemoveAt(0); } CString CWebServer::_SpecialChars(CString str, bool noquote /*=false*/) { - str.Replace(_T("&"),_T("&")); - str.Replace(_T("<"),_T("<")); - str.Replace(_T(">"),_T(">")); - str.Replace(_T("\""),_T(""")); - if(noquote) + str.Replace(_T("&"), _T("&")); + str.Replace(_T("<"), _T("<")); + str.Replace(_T(">"), _T(">")); + str.Replace(_T("\""), _T(""")); + if (noquote) { str.Replace(_T("'"), _T("’")); str.Replace(_T("\n"), _T("\\n")); @@ -356,18 +356,18 @@ CString CWebServer::_SpecialChars(CString str, bool noquote /*=false*/) void CWebServer::_ConnectToServer(const CString& sIP, int nPort) { - CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); - if (server!=NULL) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_CONNECTTOSERVER,(LPARAM)server); + CServer* server = theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); + if (server != NULL) + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_CONNECTTOSERVER, (LPARAM)server); } void CWebServer::ProcessURL(const ThreadData& Data) { - if (theApp.m_app_state!=APP_STATE_RUNNING) + if (theApp.m_app_state != APP_STATE_RUNNING) return; CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return; SetThreadLocale(thePrefs.GetLanguageID()); @@ -381,315 +381,319 @@ void CWebServer::ProcessURL(const ThreadData& Data) CoInitialize(NULL); #ifndef _DEBUG - try{ + try { #endif - bool isUseGzip = thePrefs.GetWebUseGzip(); - bool justAddLink,login=false; + bool isUseGzip = thePrefs.GetWebUseGzip(); + bool justAddLink, login = false; - CString Out; - TCHAR *gzipOut = NULL; - long gzipLen=0; + CString Out; + TCHAR *gzipOut = NULL; + long gzipLen = 0; - srand ( time(NULL) ); + srand(time(NULL)); - uint32 myip= inet_addr(CT2CA(ipstr(Data.inadr))); - DWORD now=::GetTickCount(); + uint32 myip = inet_addr(CT2CA(ipstr(Data.inadr))); + DWORD now = ::GetTickCount(); - // check for being banned - int myfaults=0; - int i=0; - while (im_Params.badlogins.GetSize() ) { - if ( pThis->m_Params.badlogins[i].timestamp < now-MIN2MS(15) ) { - pThis->m_Params.badlogins.RemoveAt(i); // remove outdated entries - continue; + // check for being banned + int myfaults = 0; + int i = 0; + while (i < pThis->m_Params.badlogins.GetSize()) { + if (pThis->m_Params.badlogins[i].timestamp < now - MIN2MS(15)) { + pThis->m_Params.badlogins.RemoveAt(i); // remove outdated entries + continue; + } + + if (pThis->m_Params.badlogins[i].datalen == myip) + myfaults++; + i++; + } + if (myfaults > 4) { + Data.pSocket->SendContent(CT2CA(HTTPInit), _GetPlainResString(IDS_ACCESSDENIED)); + CoUninitialize(); + return; } - if ( pThis->m_Params.badlogins[i].datalen==myip) - myfaults++; - i++; - } - if (myfaults>4) { - Data.pSocket->SendContent(CT2CA(HTTPInit), _GetPlainResString(IDS_ACCESSDENIED)); - CoUninitialize(); - return; - } + justAddLink = false; + long lSession = 0; + if (!_ParseURL(Data.sURL, _T("ses")).IsEmpty()) + lSession = _tstol(_ParseURL(Data.sURL, _T("ses"))); + + if (_ParseURL(Data.sURL, _T("w")) == _T("password")) + { + (void)MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash(); + CString ip = ipstr(Data.inadr); - justAddLink=false; - long lSession = 0; - if(!_ParseURL(Data.sURL, _T("ses")).IsEmpty()) - lSession = _tstol(_ParseURL(Data.sURL, _T("ses"))); + if (!_ParseURL(Data.sURL, _T("c")).IsEmpty()) { + // just sent password to add link remotely. Don't start a session. + justAddLink = true; + } - if (_ParseURL(Data.sURL, _T("w")) == _T("password")) - { - (void)MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash(); - CString ip=ipstr(Data.inadr); + if (MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash() == thePrefs.GetWSPass()) + { + if (!justAddLink) + { + // user wants to login + Session ses; + ses.admin = true; + ses.startTime = CTime::GetCurrentTime(); + ses.lSession = lSession = GetRandomUInt32(); + ses.lastcat = 0 - thePrefs.GetCatFilter(0); + pThis->m_Params.Sessions.Add(ses); + } - if (!_ParseURL(Data.sURL, _T("c")).IsEmpty()) { - // just sent password to add link remotely. Don't start a session. - justAddLink = true; - } + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATEMYINFO, 0); - if(MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash() == thePrefs.GetWSPass()) - { - if (!justAddLink) - { - // user wants to login + AddLogLine(true, GetResString(IDS_WEB_ADMINLOGIN) + _T(" (%s)"), (LPCTSTR)ip); + login = true; + } + else if (thePrefs.GetWSIsLowUserEnabled() && !thePrefs.GetWSLowPass().IsEmpty() && MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash() == thePrefs.GetWSLowPass()) + { Session ses; - ses.admin=true; + ses.admin = false; ses.startTime = CTime::GetCurrentTime(); ses.lSession = lSession = GetRandomUInt32(); - ses.lastcat= 0- thePrefs.GetCatFilter(0); pThis->m_Params.Sessions.Add(ses); - } - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATEMYINFO,0); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATEMYINFO, 0); - AddLogLine(true, GetResString(IDS_WEB_ADMINLOGIN)+_T(" (%s)"), (LPCTSTR)ip); - login=true; - } - else if(thePrefs.GetWSIsLowUserEnabled() && !thePrefs.GetWSLowPass().IsEmpty() && MD5Sum(_ParseURL(Data.sURL, _T("p"))).GetHash() == thePrefs.GetWSLowPass()) - { - Session ses; - ses.admin=false; - ses.startTime = CTime::GetCurrentTime(); - ses.lSession = lSession = GetRandomUInt32(); - pThis->m_Params.Sessions.Add(ses); - - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATEMYINFO,0); - - AddLogLine(true, GetResString(IDS_WEB_GUESTLOGIN)+_T(" (%s)"), (LPCTSTR)ip); - login=true; - } else { - LogWarning(LOG_STATUSBAR, GetResString(IDS_WEB_BADLOGINATTEMPT)+_T(" (%s)"), (LPCTSTR)ip); - - BadLogin newban={myip, now}; // save failed attempt (ip,time) - pThis->m_Params.badlogins.Add(newban); - login=false; - myfaults++; - if (myfaults>4) { - Data.pSocket->SendContent(CT2CA(HTTPInit), _GetPlainResString(IDS_ACCESSDENIED)); - CoUninitialize(); - return; + AddLogLine(true, GetResString(IDS_WEB_GUESTLOGIN) + _T(" (%s)"), (LPCTSTR)ip); + login = true; + } + else { + LogWarning(LOG_STATUSBAR, GetResString(IDS_WEB_BADLOGINATTEMPT) + _T(" (%s)"), (LPCTSTR)ip); + + BadLogin newban = { myip, now }; // save failed attempt (ip,time) + pThis->m_Params.badlogins.Add(newban); + login = false; + myfaults++; + if (myfaults > 4) { + Data.pSocket->SendContent(CT2CA(HTTPInit), _GetPlainResString(IDS_ACCESSDENIED)); + CoUninitialize(); + return; + } + } + isUseGzip = false; // [Julien] + if (login) { // on login, forget previous failed attempts + i = 0; + while (i < pThis->m_Params.badlogins.GetSize()) + if (pThis->m_Params.badlogins[i].datalen == myip) + pThis->m_Params.badlogins.RemoveAt(i); + else + i++; } } - isUseGzip = false; // [Julien] - if (login) { // on login, forget previous failed attempts - i = 0; - while (i < pThis->m_Params.badlogins.GetSize()) - if ( pThis->m_Params.badlogins[i].datalen == myip ) - pThis->m_Params.badlogins.RemoveAt(i); - else - i++; - } - } - - CString sSession; sSession.Format(_T("%ld"), lSession); - if (_ParseURL(Data.sURL, _T("w")) == _T("logout")) - _RemoveSession(Data, lSession); + CString sSession; sSession.Format(_T("%ld"), lSession); - if(_IsLoggedIn(Data, lSession)) - { - if (_ParseURL(Data.sURL, _T("w")) == _T("close") && IsSessionAdmin(Data,sSession) && thePrefs.GetWebAdminAllowedHiLevFunc() ) - { - theApp.m_app_state = APP_STATE_SHUTTINGDOWN; + if (_ParseURL(Data.sURL, _T("w")) == _T("logout")) _RemoveSession(Data, lSession); - // send answer ... - Out += _GetLoginScreen(Data); - Data.pSocket->SendContent(CT2CA(HTTPInit), Out); - - SendMessage(theApp.emuledlg->m_hWnd,WM_CLOSE,0,0); - - CoUninitialize(); - return; - } - else if (_ParseURL(Data.sURL, _T("w")) == _T("shutdown") && IsSessionAdmin(Data,sSession)) + if (_IsLoggedIn(Data, lSession)) { - _RemoveSession(Data, lSession); - // send answer ... - Out += _GetLoginScreen(Data); - Data.pSocket->SendContent(CT2CA(HTTPInit), Out); + if (_ParseURL(Data.sURL, _T("w")) == _T("close") && IsSessionAdmin(Data, sSession) && thePrefs.GetWebAdminAllowedHiLevFunc()) + { + theApp.m_app_state = APP_STATE_SHUTTINGDOWN; + _RemoveSession(Data, lSession); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_WINFUNC,1); + // send answer ... + Out += _GetLoginScreen(Data); + Data.pSocket->SendContent(CT2CA(HTTPInit), Out); - CoUninitialize(); - return; + SendMessage(theApp.emuledlg->m_hWnd, WM_CLOSE, 0, 0); - } - else if (_ParseURL(Data.sURL, _T("w")) == _T("reboot") && IsSessionAdmin(Data,sSession)) - { - _RemoveSession(Data, lSession); + CoUninitialize(); + return; + } + else if (_ParseURL(Data.sURL, _T("w")) == _T("shutdown") && IsSessionAdmin(Data, sSession)) + { + _RemoveSession(Data, lSession); + // send answer ... + Out += _GetLoginScreen(Data); + Data.pSocket->SendContent(CT2CA(HTTPInit), Out); - // send answer ... - Out += _GetLoginScreen(Data); - Data.pSocket->SendContent(CT2CA(HTTPInit), Out); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_WINFUNC, 1); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_WINFUNC,2); + CoUninitialize(); + return; - CoUninitialize(); - return; - } - else if (_ParseURL(Data.sURL, _T("w")) == _T("commentlist")) - { - CString Out1 = _GetCommentlist(Data); + } + else if (_ParseURL(Data.sURL, _T("w")) == _T("reboot") && IsSessionAdmin(Data, sSession)) + { + _RemoveSession(Data, lSession); - if (!Out1.IsEmpty()) { - Data.pSocket->SendContent(CT2CA(HTTPInit), Out1); + // send answer ... + Out += _GetLoginScreen(Data); + Data.pSocket->SendContent(CT2CA(HTTPInit), Out); + + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_WINFUNC, 2); CoUninitialize(); return; } - } - else if (_ParseURL(Data.sURL, _T("w")) == _T("getfile") && IsSessionAdmin(Data,sSession)) { - uchar FileHash[16]; - CKnownFile* kf=theApp.sharedfiles->GetFileByID(_GetFileHash(_ParseURL(Data.sURL, _T("filehash")),FileHash) ); + else if (_ParseURL(Data.sURL, _T("w")) == _T("commentlist")) + { + CString Out1 = _GetCommentlist(Data); - if (kf) { - if (thePrefs.GetMaxWebUploadFileSizeMB() != 0 && kf->GetFileSize() > (uint64)thePrefs.GetMaxWebUploadFileSizeMB()*1024*1024) { - Data.pSocket->SendReply( "HTTP/1.1 403 Forbidden\r\n" ); + if (!Out1.IsEmpty()) { + Data.pSocket->SendContent(CT2CA(HTTPInit), Out1); CoUninitialize(); return; } - else { - CFile file; - if(file.Open(kf->GetFilePath(), CFile::modeRead|CFile::shareDenyWrite|CFile::typeBinary)) - { - EMFileSize filesize= kf->GetFileSize(); - - #define SENDFILEBUFSIZE 2048 - char* buffer=(char*)malloc(SENDFILEBUFSIZE); - if (!buffer) { - Data.pSocket->SendReply( "HTTP/1.1 500 Internal Server Error\r\n" ); - CoUninitialize(); - return; - } + } + else if (_ParseURL(Data.sURL, _T("w")) == _T("getfile") && IsSessionAdmin(Data, sSession)) { + uchar FileHash[16]; + CKnownFile* kf = theApp.sharedfiles->GetFileByID(_GetFileHash(_ParseURL(Data.sURL, _T("filehash")), FileHash)); - char szBuf[512]; - int nLen = _snprintf(szBuf, _countof(szBuf), "HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nContent-Description: \"%s\"\r\nContent-Disposition: attachment; filename=\"%s\";\r\nContent-Transfer-Encoding: binary\r\nContent-Length: %I64u\r\n\r\n", - (LPCSTR)CT2CA(kf->GetFileName()), - (LPCSTR)CT2CA(kf->GetFileName()), - (uint64)filesize); - Data.pSocket->SendData(szBuf, nLen); - - DWORD r=1; - while (filesize > 0ull && r) { - r=file.Read(buffer,SENDFILEBUFSIZE); - filesize -= (uint64)r; - Data.pSocket->SendData(buffer, r); - } - file.Close(); + if (kf) { + if (thePrefs.GetMaxWebUploadFileSizeMB() != 0 && kf->GetFileSize() > (uint64)thePrefs.GetMaxWebUploadFileSizeMB() * 1024 * 1024) { + Data.pSocket->SendReply("HTTP/1.1 403 Forbidden\r\n"); - free(buffer); CoUninitialize(); return; } else { - Data.pSocket->SendReply( "HTTP/1.1 404 File not found\r\n" ); - CoUninitialize(); - return; + CFile file; + if (file.Open(kf->GetFilePath(), CFile::modeRead | CFile::shareDenyWrite | CFile::typeBinary)) + { + EMFileSize filesize = kf->GetFileSize(); + +#define SENDFILEBUFSIZE 2048 + char* buffer = (char*)malloc(SENDFILEBUFSIZE); + if (!buffer) { + Data.pSocket->SendReply("HTTP/1.1 500 Internal Server Error\r\n"); + CoUninitialize(); + return; + } + + char szBuf[512]; + int nLen = _snprintf(szBuf, _countof(szBuf), "HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nContent-Description: \"%s\"\r\nContent-Disposition: attachment; filename=\"%s\";\r\nContent-Transfer-Encoding: binary\r\nContent-Length: %I64u\r\n\r\n", + (LPCSTR)CT2CA(kf->GetFileName()), + (LPCSTR)CT2CA(kf->GetFileName()), + (uint64)filesize); + Data.pSocket->SendData(szBuf, nLen); + + DWORD r = 1; + while (filesize > 0ull && r) { + r = file.Read(buffer, SENDFILEBUFSIZE); + filesize -= (uint64)r; + Data.pSocket->SendData(buffer, r); + } + file.Close(); + + free(buffer); + CoUninitialize(); + return; + } + else { + Data.pSocket->SendReply("HTTP/1.1 404 File not found\r\n"); + CoUninitialize(); + return; + } } } - } - - } - Out += _GetHeader(Data, lSession); - CString sPage = _ParseURL(Data.sURL, _T("w")); - if (sPage == _T("server")) - Out += _GetServerList(Data); - else if (sPage == _T("shared")) - Out += _GetSharedFilesList(Data); - else if (sPage == _T("transfer")) - Out += _GetTransferList(Data); - else if (sPage == _T("search")) - Out += _GetSearch(Data); - else if (sPage == _T("graphs")) - Out += _GetGraphs(Data); - else if (sPage == _T("log")) - Out += _GetLog(Data); - if (sPage == _T("sinfo")) - Out += _GetServerInfo(Data); - if (sPage == _T("debuglog")) - Out += _GetDebugLog(Data); - if (sPage == _T("myinfo")) - Out += _GetMyInfo(Data); - if (sPage == _T("stats")) - Out += _GetStats(Data); - if (sPage == _T("kad")) - Out += _GetKadDlg(Data); - if (sPage == _T("options")) - { - isUseGzip = false; - Out += _GetPreferences(Data); - } - Out += _GetFooter(Data); - - if (sPage.IsEmpty()) - isUseGzip = false; + } - if(isUseGzip) - { - bool bOk = false; - try + Out += _GetHeader(Data, lSession); + CString sPage = _ParseURL(Data.sURL, _T("w")); + if (sPage == _T("server")) + Out += _GetServerList(Data); + else if (sPage == _T("shared")) + Out += _GetSharedFilesList(Data); + else if (sPage == _T("transfer")) + Out += _GetTransferList(Data); + else if (sPage == _T("search")) + Out += _GetSearch(Data); + else if (sPage == _T("graphs")) + Out += _GetGraphs(Data); + else if (sPage == _T("log")) + Out += _GetLog(Data); + if (sPage == _T("sinfo")) + Out += _GetServerInfo(Data); + if (sPage == _T("debuglog")) + Out += _GetDebugLog(Data); + if (sPage == _T("myinfo")) + Out += _GetMyInfo(Data); + if (sPage == _T("stats")) + Out += _GetStats(Data); + if (sPage == _T("kad")) + Out += _GetKadDlg(Data); + if (sPage == _T("options")) { - const CStringA* pstrOutA; - CStringA strA(wc2utf8(Out)); - pstrOutA = &strA; - uLongf destLen = pstrOutA->GetLength() + 1024; - gzipOut = new TCHAR[destLen]; - if(_GzipCompress((Bytef*)gzipOut, &destLen, (const Bytef*)(LPCSTR)*pstrOutA, pstrOutA->GetLength(), Z_DEFAULT_COMPRESSION) == Z_OK) - { - bOk = true; - gzipLen = destLen; - } + isUseGzip = false; + Out += _GetPreferences(Data); } - catch(...) + Out += _GetFooter(Data); + if (sPage == _T("transferjson")) // JSON transfert { - ASSERT(0); + Out = _GetTransferJSONList(Data); } - if(!bOk) - { + if (sPage.IsEmpty()) isUseGzip = false; - delete[] gzipOut; - gzipOut = NULL; + + if (isUseGzip) + { + bool bOk = false; + try + { + const CStringA* pstrOutA; + CStringA strA(wc2utf8(Out)); + pstrOutA = &strA; + uLongf destLen = pstrOutA->GetLength() + 1024; + gzipOut = new TCHAR[destLen]; + if (_GzipCompress((Bytef*)gzipOut, &destLen, (const Bytef*)(LPCSTR)*pstrOutA, pstrOutA->GetLength(), Z_DEFAULT_COMPRESSION) == Z_OK) + { + bOk = true; + gzipLen = destLen; + } + } + catch (...) + { + ASSERT(0); + } + if (!bOk) + { + isUseGzip = false; + delete[] gzipOut; + gzipOut = NULL; + } } } - } - else if(justAddLink && login) - { - Out += _GetRemoteLinkAddedOk(Data); - } - else - { - isUseGzip = false; - - if(justAddLink) - Out += _GetRemoteLinkAddedFailed(Data); + else if (justAddLink && login) + { + Out += _GetRemoteLinkAddedOk(Data); + } else - Out += _GetLoginScreen(Data); - } + { + isUseGzip = false; + if (justAddLink) + Out += _GetRemoteLinkAddedFailed(Data); + else + Out += _GetLoginScreen(Data); + } - // send answer ... - if(!isUseGzip) - Data.pSocket->SendContent(CT2CA(HTTPInit), Out); - else - Data.pSocket->SendContent(CT2CA(HTTPInitGZ), gzipOut, gzipLen); - delete[] gzipOut; + // send answer ... + if (!isUseGzip) + Data.pSocket->SendContent(CT2CA(HTTPInit), Out); + else + Data.pSocket->SendContent(CT2CA(HTTPInitGZ), gzipOut, gzipLen); + + delete[] gzipOut; #ifndef _DEBUG } - catch(...){ - AddDebugLogLine( DLP_VERYHIGH, false, _T("*** Unknown exception in CWebServer::ProcessURL") ); + catch (...) { + AddDebugLogLine(DLP_VERYHIGH, false, _T("*** Unknown exception in CWebServer::ProcessURL")); ASSERT(0); } #endif @@ -698,16 +702,17 @@ void CWebServer::ProcessURL(const ThreadData& Data) } CString CWebServer::_ParseURLArray(CString& URL, CString fieldname) { - CString res,temp; + CString res, temp; - while (URL.GetLength()>0) { - int pos=URL.MakeLower().Find(fieldname.MakeLower() +_T("=")); - if (pos>-1) { - temp=_ParseURL(URL,fieldname); + while (URL.GetLength() > 0) { + int pos = URL.MakeLower().Find(fieldname.MakeLower() + _T("=")); + if (pos > -1) { + temp = _ParseURL(URL, fieldname); if (temp.IsEmpty()) break; - res.Append(temp+_T("|")); - URL.Delete(pos,10); - } else break; + res.Append(temp + _T("|")); + URL.Delete(pos, 10); + } + else break; } return res; } @@ -719,7 +724,7 @@ CString CWebServer::_ParseURL(const CString& URL, const CString& fieldname) if (URL.Find(_T("?")) > -1) { int findPos = -1; int findLength = 0; - CString Parameter = URL.Mid(URL.Find(_T("?"))+1, URL.GetLength()-URL.Find(_T("?"))-1); + CString Parameter = URL.Mid(URL.Find(_T("?")) + 1, URL.GetLength() - URL.Find(_T("?")) - 1); // search the fieldname beginning / middle and strip the rest... if (Parameter.Find(fieldname + _T("=")) == 0) { @@ -740,7 +745,7 @@ CString CWebServer::_ParseURL(const CString& URL, const CString& fieldname) // decode value ... value.Replace(_T("+"), _T(" ")); - value=URLDecode(value, true); + value = URLDecode(value, true); } } @@ -754,34 +759,34 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString sSession; sSession.Format(_T("%ld"), lSession); CString Out = pThis->m_Templates.sHeader; - Out.Replace(_T("[CharSet]"), HTTPENCODING ); + Out.Replace(_T("[CharSet]"), HTTPENCODING); -// Auto-refresh code + // Auto-refresh code CString sRefresh, strDummyNumber, strCat; CString sPage = _ParseURL(Data.sURL, _T("w")); - bool bAdmin = IsSessionAdmin(Data,sSession); + bool bAdmin = IsSessionAdmin(Data, sSession); - strCat=_T("&cat=") +_ParseURL(Data.sURL, _T("cat")); + strCat = _T("&cat=") + _ParseURL(Data.sURL, _T("cat")); if (sPage == _T("options") || sPage == _T("stats") || sPage == _T("password")) sRefresh.Format(_T("0")); else - sRefresh.Format(_T("%d"), thePrefs.GetWebPageRefresh()*1000); + sRefresh.Format(_T("%d"), thePrefs.GetWebPageRefresh() * 1000); strDummyNumber.Format(_T("%d"), rand()); CString strVersionCheck; - strVersionCheck.Format(_T("/en/version_check.php?version=%u&language=%i"),theApp.m_uCurVersionCheck,thePrefs.GetLanguageID()); - strVersionCheck = thePrefs.GetVersionCheckBaseURL()+strVersionCheck; + strVersionCheck.Format(_T("/en/version_check.php?version=%u&language=%i"), theApp.m_uCurVersionCheck, thePrefs.GetLanguageID()); + strVersionCheck = thePrefs.GetVersionCheckBaseURL() + strVersionCheck; - Out.Replace(_T("[admin]"), (bAdmin && thePrefs.GetWebAdminAllowedHiLevFunc() ) ? _T("admin") : _T("")); + Out.Replace(_T("[admin]"), (bAdmin && thePrefs.GetWebAdminAllowedHiLevFunc()) ? _T("admin") : _T("")); Out.Replace(_T("[Session]"), sSession); Out.Replace(_T("[RefreshVal]"), sRefresh); Out.Replace(_T("[wCommand]"), _ParseURL(Data.sURL, _T("w")) + strCat + _T("&dummy=") + strDummyNumber); @@ -842,7 +847,7 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) Out.Replace(_T("[PriorityRelease]"), _GetPlainResString(IDS_PRIORELEASE)); Out.Replace(_T("[PriorityAuto]"), _GetPlainResString(IDS_PRIOAUTO)); - CString HTTPConState,HTTPConText,HTTPHelp; + CString HTTPConState, HTTPConText, HTTPHelp; CString HTTPHelpU = _T("0"); CString HTTPHelpM = _T("0"); CString HTTPHelpV = _T("0"); @@ -859,26 +864,26 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) } else if (theApp.serverconnect->IsConnected() && !disconnectissued) { - if(!theApp.serverconnect->IsLowID()) + if (!theApp.serverconnect->IsLowID()) HTTPConState = _T("high"); else HTTPConState = _T("low"); CServer* cur_server = theApp.serverlist->GetServerByAddress( theApp.serverconnect->GetCurrentServer()->GetAddress(), - theApp.serverconnect->GetCurrentServer()->GetPort() ); + theApp.serverconnect->GetCurrentServer()->GetPort()); if (cur_server) { - if(cur_server->GetListName().GetLength() > SHORT_LENGTH) - HTTPConText = cur_server->GetListName().Left(SHORT_LENGTH-3) + _T("..."); + if (cur_server->GetListName().GetLength() > SHORT_LENGTH) + HTTPConText = cur_server->GetListName().Left(SHORT_LENGTH - 3) + _T("..."); else HTTPConText = cur_server->GetListName(); - if (IsSessionAdmin(Data,sSession)) HTTPConText+=_T(" (")+_GetPlainResString(IDS_IRC_DISCONNECT)+_T(")"); + if (IsSessionAdmin(Data, sSession)) HTTPConText += _T(" (") + _GetPlainResString(IDS_IRC_DISCONNECT) + _T(")"); HTTPHelpU = CastItoIShort(cur_server->GetUsers()); HTTPHelpM = CastItoIShort(cur_server->GetMaxUsers()); HTTPHelpF = CastItoIShort(cur_server->GetFiles()); - if ( cur_server->GetMaxUsers() > 0 ) + if (cur_server->GetMaxUsers() > 0) _stprintf(HTTPHeader, _T("%.1f "), (static_cast(cur_server->GetUsers()) / cur_server->GetMaxUsers()) * 100.0); else _stprintf(HTTPHeader, _T("%.1f "), 0.0); @@ -890,15 +895,15 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) { HTTPConState = _T("disconnected"); HTTPConText = _GetPlainResString(IDS_DISCONNECTED); - if (IsSessionAdmin(Data,sSession)) HTTPConText+=_T(" (")+_GetPlainResString(IDS_CONNECTTOANYSERVER)+_T(")"); + if (IsSessionAdmin(Data, sSession)) HTTPConText += _T(" (") + _GetPlainResString(IDS_CONNECTTOANYSERVER) + _T(")"); } uint32 allUsers = 0; uint32 allFiles = 0; - for (uint32 sc=0;scGetServerCount();sc++) + for (uint32 sc = 0; sc < theApp.serverlist->GetServerCount(); sc++) { CServer* cur_server = theApp.serverlist->GetServerAt(sc); - allUsers += cur_server->GetUsers(); - allFiles += cur_server->GetFiles(); + allUsers += cur_server->GetUsers(); + allFiles += cur_server->GetFiles(); } Out.Replace(_T("[AllUsers]"), CastItoIShort(allUsers)); Out.Replace(_T("[AllFiles]"), CastItoIShort(allFiles)); @@ -908,42 +913,44 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) // kad status if (Kademlia::CKademlia::IsConnected()) { if (Kademlia::CKademlia::IsFirewalled()) { - HTTPConText=GetResString(IDS_FIREWALLED); - HTTPConText.AppendFormat(_T(" (%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_KAD_RECHECKFW) ); - HTTPConText.AppendFormat(_T(", %s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); - } else { - HTTPConText=GetResString(IDS_CONNECTED); - HTTPConText.AppendFormat(_T(" (%s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); + HTTPConText = GetResString(IDS_FIREWALLED); + HTTPConText.AppendFormat(_T(" (%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_KAD_RECHECKFW)); + HTTPConText.AppendFormat(_T(", %s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT)); + } + else { + HTTPConText = GetResString(IDS_CONNECTED); + HTTPConText.AppendFormat(_T(" (%s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT)); } } else { if (Kademlia::CKademlia::IsRunning()) { - HTTPConText=GetResString(IDS_CONNECTING); - } else { - HTTPConText=GetResString(IDS_DISCONNECTED); - HTTPConText.AppendFormat(_T(" (%s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_CONNECT) ); + HTTPConText = GetResString(IDS_CONNECTING); + } + else { + HTTPConText = GetResString(IDS_DISCONNECTED); + HTTPConText.AppendFormat(_T(" (%s)"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_CONNECT)); } } Out.Replace(_T("[KadConText]"), HTTPConText); - if(thePrefs.GetMaxUpload() == UNLIMITED) + if (thePrefs.GetMaxUpload() == UNLIMITED) _stprintf(HTTPHeader, _T("%.1f"), static_cast(100 * theApp.uploadqueue->GetDatarate()) / 1024 / thePrefs.GetMaxGraphUploadRate(true)); else _stprintf(HTTPHeader, _T("%.1f"), static_cast(100 * theApp.uploadqueue->GetDatarate()) / 1024 / thePrefs.GetMaxUpload()); Out.Replace(_T("[UploadValue]"), HTTPHeader); - if(thePrefs.GetMaxDownload() == UNLIMITED) + if (thePrefs.GetMaxDownload() == UNLIMITED) _stprintf(HTTPHeader, _T("%.1f"), static_cast(100 * theApp.downloadqueue->GetDatarate()) / 1024 / thePrefs.GetMaxGraphDownloadRate()); else _stprintf(HTTPHeader, _T("%.1f"), static_cast(100 * theApp.downloadqueue->GetDatarate()) / 1024 / thePrefs.GetMaxDownload()); Out.Replace(_T("[DownloadValue]"), HTTPHeader); - _stprintf(HTTPHeader, _T("%.1f"), (static_cast(theApp.listensocket->GetOpenSockets()))/(thePrefs.GetMaxConnections())*100.0); + _stprintf(HTTPHeader, _T("%.1f"), (static_cast(theApp.listensocket->GetOpenSockets())) / (thePrefs.GetMaxConnections())*100.0); Out.Replace(_T("[ConnectionValue]"), HTTPHeader); - _stprintf(HTTPHeader, _T("%.1f"), (static_cast(theApp.uploadqueue->GetDatarate())/1024.0)); + _stprintf(HTTPHeader, _T("%.1f"), (static_cast(theApp.uploadqueue->GetDatarate()) / 1024.0)); Out.Replace(_T("[CurUpload]"), HTTPHeader); - _stprintf(HTTPHeader, _T("%.1f"), (static_cast(theApp.downloadqueue->GetDatarate())/1024.0)); + _stprintf(HTTPHeader, _T("%.1f"), (static_cast(theApp.downloadqueue->GetDatarate()) / 1024.0)); Out.Replace(_T("[CurDownload]"), HTTPHeader); _stprintf(HTTPHeader, _T("%.0f"), (static_cast(theApp.listensocket->GetOpenSockets()))); Out.Replace(_T("[CurConnection]"), HTTPHeader); @@ -983,10 +990,10 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) Out.Replace(_T("[Up]"), _GetPlainResString(IDS_PW_CON_UPLBL)); Out.Replace(_T("[Down]"), _GetPlainResString(IDS_PW_CON_DOWNLBL)); - if (thePrefs.GetCatCount()>1) - InsertCatBox(Out,0,pThis->m_Templates.sCatArrow,false,false,sSession,_T(""),true); + if (thePrefs.GetCatCount() > 1) + InsertCatBox(Out, 0, pThis->m_Templates.sCatArrow, false, false, sSession, _T(""), true); else - Out.Replace(_T("[CATBOXED2K]"),_T("")); + Out.Replace(_T("[CATBOXED2K]"), _T("")); return Out; } @@ -994,7 +1001,7 @@ CString CWebServer::_GetHeader(ThreadData Data, long lSession) CString CWebServer::_GetFooter(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); return pThis->m_Templates.sFooter; @@ -1003,11 +1010,11 @@ CString CWebServer::_GetFooter(ThreadData Data) CString CWebServer::_GetServerList(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString sSession = _ParseURL(Data.sURL, _T("ses")); - bool bAdmin = IsSessionAdmin(Data,sSession); + bool bAdmin = IsSessionAdmin(Data, sSession); CString sAddServerBox = _GetAddServerBox(Data); CString sCmd = _ParseURL(Data.sURL, _T("c")); @@ -1015,8 +1022,8 @@ CString CWebServer::_GetServerList(ThreadData Data) int nPort = _tstoi(_ParseURL(Data.sURL, _T("port"))); if (bAdmin && sCmd.CompareNoCase(_T("connect")) == 0) { - if(sIP.IsEmpty()) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_CONNECTTOSERVER,0); + if (sIP.IsEmpty()) + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_CONNECTTOSERVER, 0); else _ConnectToServer(sIP, nPort); } @@ -1024,62 +1031,62 @@ CString CWebServer::_GetServerList(ThreadData Data) { if (theApp.serverconnect->IsConnecting()) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_STOPCONNECTING,NULL); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_STOPCONNECTING, NULL); else - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_DISCONNECT,1); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_DISCONNECT, 1); } else if (bAdmin && sCmd.CompareNoCase(_T("remove")) == 0) { - if(!sIP.IsEmpty()) + if (!sIP.IsEmpty()) _RemoveServer(sIP, nPort); } else if (bAdmin && sCmd.CollateNoCase(_T("addtostatic")) == 0) { - if(!sIP.IsEmpty()) + if (!sIP.IsEmpty()) _AddToStatic(sIP, nPort); } else if (bAdmin && sCmd.CompareNoCase(_T("removefromstatic")) == 0) { - if(!sIP.IsEmpty()) + if (!sIP.IsEmpty()) _RemoveFromStatic(sIP, nPort); } else if (bAdmin && sCmd.CompareNoCase(_T("priolow")) == 0) { - if(!sIP.IsEmpty()) + if (!sIP.IsEmpty()) { - CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); + CServer* server = theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); if (server) { server->SetPreference(SRV_PR_LOW); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATESERVER,(LPARAM)server); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATESERVER, (LPARAM)server); } } } else if (bAdmin && sCmd.CompareNoCase(_T("prionormal")) == 0) { - if(!sIP.IsEmpty()) + if (!sIP.IsEmpty()) { - CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); + CServer* server = theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); if (server) { server->SetPreference(SRV_PR_NORMAL); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATESERVER,(LPARAM)server); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATESERVER, (LPARAM)server); } } } else if (bAdmin && sCmd.CompareNoCase(_T("priohigh")) == 0) { - if(!sIP.IsEmpty()) + if (!sIP.IsEmpty()) { - CServer* server=theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); + CServer* server = theApp.serverlist->GetServerByAddress(sIP, (uint16)nPort); if (server) { server->SetPreference(SRV_PR_HIGH); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATESERVER,(LPARAM)server); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATESERVER, (LPARAM)server); } } } else if (sCmd.CompareNoCase(_T("menu")) == 0) { - int iMenu = _tstol( _ParseURL(Data.sURL, _T("m")) ); - bool bValue = _ParseURL(Data.sURL, _T("v"))==_T("1"); + int iMenu = _tstol(_ParseURL(Data.sURL, _T("m"))); + bool bValue = _ParseURL(Data.sURL, _T("v")) == _T("1"); WSserverColumnHidden[iMenu] = bValue; SaveWIConfigArray(WSserverColumnHidden, ARRSIZE(WSserverColumnHidden), _T("serverColumnHidden")); } @@ -1091,33 +1098,33 @@ CString CWebServer::_GetServerList(ThreadData Data) { bool bDirection = false; - if(sSort == _T("state")) + if (sSort == _T("state")) pThis->m_Params.ServerSort = SERVER_SORT_STATE; - else if(sSort == _T("name")) + else if (sSort == _T("name")) { pThis->m_Params.ServerSort = SERVER_SORT_NAME; bDirection = true; } - else if(sSort == _T("ip")) + else if (sSort == _T("ip")) pThis->m_Params.ServerSort = SERVER_SORT_IP; - else if(sSort == _T("description")) + else if (sSort == _T("description")) { pThis->m_Params.ServerSort = SERVER_SORT_DESCRIPTION; bDirection = true; } - else if(sSort == _T("ping")) + else if (sSort == _T("ping")) pThis->m_Params.ServerSort = SERVER_SORT_PING; - else if(sSort == _T("users")) + else if (sSort == _T("users")) pThis->m_Params.ServerSort = SERVER_SORT_USERS; - else if(sSort == _T("files")) + else if (sSort == _T("files")) pThis->m_Params.ServerSort = SERVER_SORT_FILES; - else if(sSort == _T("priority")) + else if (sSort == _T("priority")) pThis->m_Params.ServerSort = SERVER_SORT_PRIORITY; - else if(sSort == _T("failed")) + else if (sSort == _T("failed")) pThis->m_Params.ServerSort = SERVER_SORT_FAILED; - else if(sSort == _T("limit")) + else if (sSort == _T("limit")) pThis->m_Params.ServerSort = SERVER_SORT_LIMIT; - else if(sSort == _T("version")) + else if (sSort == _T("version")) pThis->m_Params.ServerSort = SERVER_SORT_VERSION; if (strTmp.IsEmpty()) @@ -1133,47 +1140,47 @@ CString CWebServer::_GetServerList(ThreadData Data) strTmp = (pThis->m_Params.bServerSortReverse) ? _T("&sortreverse=false") : _T("&sortreverse=true"); - if(pThis->m_Params.ServerSort == SERVER_SORT_STATE) + if (pThis->m_Params.ServerSort == SERVER_SORT_STATE) Out.Replace(_T("[SortState]"), strTmp); else Out.Replace(_T("[SortState]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_NAME) + if (pThis->m_Params.ServerSort == SERVER_SORT_NAME) Out.Replace(_T("[SortName]"), strTmp); else Out.Replace(_T("[SortName]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_IP) + if (pThis->m_Params.ServerSort == SERVER_SORT_IP) Out.Replace(_T("[SortIP]"), strTmp); else Out.Replace(_T("[SortIP]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_DESCRIPTION) + if (pThis->m_Params.ServerSort == SERVER_SORT_DESCRIPTION) Out.Replace(_T("[SortDescription]"), strTmp); else Out.Replace(_T("[SortDescription]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_PING) + if (pThis->m_Params.ServerSort == SERVER_SORT_PING) Out.Replace(_T("[SortPing]"), strTmp); else Out.Replace(_T("[SortPing]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_USERS) + if (pThis->m_Params.ServerSort == SERVER_SORT_USERS) Out.Replace(_T("[SortUsers]"), strTmp); else Out.Replace(_T("[SortUsers]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_FILES) + if (pThis->m_Params.ServerSort == SERVER_SORT_FILES) Out.Replace(_T("[SortFiles]"), strTmp); else Out.Replace(_T("[SortFiles]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_PRIORITY) + if (pThis->m_Params.ServerSort == SERVER_SORT_PRIORITY) Out.Replace(_T("[SortPriority]"), strTmp); else Out.Replace(_T("[SortPriority]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_FAILED) + if (pThis->m_Params.ServerSort == SERVER_SORT_FAILED) Out.Replace(_T("[SortFailed]"), strTmp); else Out.Replace(_T("[SortFailed]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_LIMIT) + if (pThis->m_Params.ServerSort == SERVER_SORT_LIMIT) Out.Replace(_T("[SortLimit]"), strTmp); else Out.Replace(_T("[SortLimit]"), _T("")); - if(pThis->m_Params.ServerSort == SERVER_SORT_VERSION) + if (pThis->m_Params.ServerSort == SERVER_SORT_VERSION) Out.Replace(_T("[SortVersion]"), strTmp); else Out.Replace(_T("[SortVersion]"), _T("")); @@ -1184,7 +1191,7 @@ CString CWebServer::_GetServerList(ThreadData Data) _GetPlainResString(&strTmp, IDS_SL_SERVERNAME); if (!WSserverColumnHidden[0]) { - Out.Replace(_T("[ServernameI]"), (pThis->m_Params.ServerSort == SERVER_SORT_NAME) ? pcSortIcon : _T("") ); + Out.Replace(_T("[ServernameI]"), (pThis->m_Params.ServerSort == SERVER_SORT_NAME) ? pcSortIcon : _T("")); Out.Replace(_T("[ServernameH]"), strTmp); } else @@ -1317,7 +1324,7 @@ CString CWebServer::_GetServerList(ThreadData Data) CServer *tempServer; // Populating array - for (uint32 sc=0;scGetServerCount();sc++) + for (uint32 sc = 0; sc < theApp.serverlist->GetServerCount(); sc++) { CServer* cur_file = theApp.serverlist->GetServerAt(sc); ServerEntry Entry; @@ -1330,17 +1337,17 @@ CString CWebServer::_GetServerList(ThreadData Data) Entry.nServerMaxUsers = cur_file->GetMaxUsers(); Entry.nServerFiles = cur_file->GetFiles(); Entry.bServerStatic = cur_file->IsStaticMember(); - if(cur_file->GetPreference()== SRV_PR_HIGH) + if (cur_file->GetPreference() == SRV_PR_HIGH) { Entry.sServerPriority = _GetPlainResString(IDS_PRIOHIGH); Entry.nServerPriority = 2; } - else if(cur_file->GetPreference()== SRV_PR_NORMAL) + else if (cur_file->GetPreference() == SRV_PR_NORMAL) { Entry.sServerPriority = _GetPlainResString(IDS_PRIONORMAL); Entry.nServerPriority = 1; } - else if(cur_file->GetPreference()== SRV_PR_LOW) + else if (cur_file->GetPreference() == SRV_PR_LOW) { Entry.sServerPriority = _GetPlainResString(IDS_PRIOLOW); Entry.nServerPriority = 0; @@ -1351,11 +1358,11 @@ CString CWebServer::_GetServerList(ThreadData Data) Entry.sServerVersion = cur_file->GetVersion(); if (inet_addr(CStringA(Entry.sServerIP)) != INADDR_NONE) { - int counter=0; - CString temp,newip; - for(int j=0; j<4; j++) + int counter = 0; + CString temp, newip; + for (int j = 0; j < 4; j++) { - temp = Entry.sServerIP.Tokenize(_T("."),counter); + temp = Entry.sServerIP.Tokenize(_T("."), counter); if (temp.GetLength() == 1) newip.AppendFormat(_T("00") + temp); else if (temp.GetLength() == 2) @@ -1390,56 +1397,56 @@ CString CWebServer::_GetServerList(ThreadData Data) } // Sorting (simple bubble sort, we don't have tons of data here) bool bSorted = true; - for(int nMax = 0;bSorted && nMax < ServerArray.GetCount()*2; nMax++) + for (int nMax = 0; bSorted && nMax < ServerArray.GetCount() * 2; nMax++) { bSorted = false; - for(int i = 0; i < ServerArray.GetCount() - 1; i++) + for (int i = 0; i < ServerArray.GetCount() - 1; i++) { bool bSwap = false; - switch(pThis->m_Params.ServerSort) + switch (pThis->m_Params.ServerSort) { case SERVER_SORT_STATE: - bSwap = ServerArray[i].sServerState.CompareNoCase(ServerArray[i+1].sServerState) > 0; + bSwap = ServerArray[i].sServerState.CompareNoCase(ServerArray[i + 1].sServerState) > 0; break; case SERVER_SORT_NAME: - bSwap = ServerArray[i].sServerName.CompareNoCase(ServerArray[i+1].sServerName) < 0; + bSwap = ServerArray[i].sServerName.CompareNoCase(ServerArray[i + 1].sServerName) < 0; break; case SERVER_SORT_IP: - bSwap = ServerArray[i].sServerFullIP < ServerArray[i+1].sServerFullIP; + bSwap = ServerArray[i].sServerFullIP < ServerArray[i + 1].sServerFullIP; break; case SERVER_SORT_DESCRIPTION: - bSwap = ServerArray[i].sServerDescription.CompareNoCase(ServerArray[i+1].sServerDescription) < 0; + bSwap = ServerArray[i].sServerDescription.CompareNoCase(ServerArray[i + 1].sServerDescription) < 0; break; case SERVER_SORT_PING: - bSwap = ServerArray[i].nServerPing < ServerArray[i+1].nServerPing; + bSwap = ServerArray[i].nServerPing < ServerArray[i + 1].nServerPing; break; case SERVER_SORT_USERS: - bSwap = ServerArray[i].nServerUsers < ServerArray[i+1].nServerUsers; + bSwap = ServerArray[i].nServerUsers < ServerArray[i + 1].nServerUsers; break; case SERVER_SORT_FILES: - bSwap = ServerArray[i].nServerFiles < ServerArray[i+1].nServerFiles; + bSwap = ServerArray[i].nServerFiles < ServerArray[i + 1].nServerFiles; break; case SERVER_SORT_PRIORITY: - bSwap = ServerArray[i].nServerPriority < ServerArray[i+1].nServerPriority; + bSwap = ServerArray[i].nServerPriority < ServerArray[i + 1].nServerPriority; break; case SERVER_SORT_FAILED: - bSwap = ServerArray[i].nServerFailed < ServerArray[i+1].nServerFailed; + bSwap = ServerArray[i].nServerFailed < ServerArray[i + 1].nServerFailed; break; case SERVER_SORT_LIMIT: - bSwap = ServerArray[i].nServerSoftLimit < ServerArray[i+1].nServerSoftLimit; + bSwap = ServerArray[i].nServerSoftLimit < ServerArray[i + 1].nServerSoftLimit; break; case SERVER_SORT_VERSION: - bSwap = ServerArray[i].sServerVersion < ServerArray[i+1].sServerVersion; + bSwap = ServerArray[i].sServerVersion < ServerArray[i + 1].sServerVersion; break; } - if(pThis->m_Params.bServerSortReverse) + if (pThis->m_Params.bServerSortReverse) bSwap = !bSwap; - if(bSwap) + if (bSwap) { bSorted = true; ServerEntry TmpEntry = ServerArray[i]; - ServerArray[i] = ServerArray[i+1]; - ServerArray[i+1] = TmpEntry; + ServerArray[i] = ServerArray[i + 1]; + ServerArray[i + 1] = TmpEntry; } } } @@ -1452,14 +1459,14 @@ CString CWebServer::_GetServerList(ThreadData Data) OutE.Replace(_T("[admin]"), (bAdmin) ? _T("admin") : _T("")); OutE.Replace(_T("[session]"), sSession); - for(int i = 0; i < ServerArray.GetCount(); i++) + for (int i = 0; i < ServerArray.GetCount(); i++) { HTTPProcessData = OutE; // Copy Entry Line to Temp sServerPort.Format(_T("%i"), ServerArray[i].nServerPort); ed2k.Format(_T("ed2k://|server|%s|%s|/"), (LPCTSTR)ServerArray[i].sServerIP, (LPCTSTR)sServerPort); - if (ServerArray[i].sServerIP == _ParseURL(Data.sURL,_T("ip")) && sServerPort == _ParseURL(Data.sURL,_T("port"))) + if (ServerArray[i].sServerIP == _ParseURL(Data.sURL, _T("ip")) && sServerPort == _ParseURL(Data.sURL, _T("port"))) pcTmp = _T("checked"); else pcTmp = _T("checked_no"); @@ -1480,17 +1487,17 @@ CString CWebServer::_GetServerList(ThreadData Data) const TCHAR *pcSrvPriority = _T(""); - switch(ServerArray[i].nServerPriority) + switch (ServerArray[i].nServerPriority) { - case 0: - pcSrvPriority = _T("Low"); - break; - case 1: - pcSrvPriority = _T("Normal"); - break; - case 2: - pcSrvPriority = _T("High"); - break; + case 0: + pcSrvPriority = _T("Low"); + break; + case 1: + pcSrvPriority = _T("Normal"); + break; + case 2: + pcSrvPriority = _T("High"); + break; } HTTPProcessData.Replace(_T("[ed2k]"), ed2k); @@ -1501,8 +1508,8 @@ CString CWebServer::_GetServerList(ThreadData Data) // DonGato: reduced large servernames or descriptions if (!WSserverColumnHidden[0]) { - if(ServerArray[i].sServerName.GetLength() > SHORT_LENGTH) - HTTPProcessData.Replace(_T("[Servername]"), _T("") + ServerArray[i].sServerName.Left(SHORT_LENGTH-3) + _T("...") + _T("")); + if (ServerArray[i].sServerName.GetLength() > SHORT_LENGTH) + HTTPProcessData.Replace(_T("[Servername]"), _T("") + ServerArray[i].sServerName.Left(SHORT_LENGTH - 3) + _T("...") + _T("")); else HTTPProcessData.Replace(_T("[Servername]"), ServerArray[i].sServerName); } @@ -1517,8 +1524,8 @@ CString CWebServer::_GetServerList(ThreadData Data) HTTPProcessData.Replace(_T("[Address]"), _T("")); if (!WSserverColumnHidden[2]) { - if(ServerArray[i].sServerDescription.GetLength() > SHORT_LENGTH) - HTTPProcessData.Replace(_T("[Description]"), _T("") + ServerArray[i].sServerDescription.Left(SHORT_LENGTH-3) + _T("...") + _T("")); + if (ServerArray[i].sServerDescription.GetLength() > SHORT_LENGTH) + HTTPProcessData.Replace(_T("[Description]"), _T("") + ServerArray[i].sServerDescription.Left(SHORT_LENGTH - 3) + _T("...") + _T("")); else HTTPProcessData.Replace(_T("[Description]"), ServerArray[i].sServerDescription); } @@ -1534,9 +1541,9 @@ CString CWebServer::_GetServerList(ThreadData Data) CString sT; if (!WSserverColumnHidden[4]) { - if(ServerArray[i].nServerUsers > 0) + if (ServerArray[i].nServerUsers > 0) { - if(ServerArray[i].nServerMaxUsers > 0) + if (ServerArray[i].nServerMaxUsers > 0) sT.Format(_T("%s (%s)"), (LPCTSTR)CastItoIShort(ServerArray[i].nServerUsers), (LPCTSTR)CastItoIShort(ServerArray[i].nServerMaxUsers)); else sT.Format(_T("%s"), (LPCTSTR)CastItoIShort(ServerArray[i].nServerUsers)); @@ -1566,16 +1573,16 @@ CString CWebServer::_GetServerList(ThreadData Data) { CString strTemp; - strTemp.Format( _T("%s (%s)"), (LPCTSTR)CastItoIShort(ServerArray[i].nServerSoftLimit), - (LPCTSTR)CastItoIShort(ServerArray[i].nServerHardLimit) ); + strTemp.Format(_T("%s (%s)"), (LPCTSTR)CastItoIShort(ServerArray[i].nServerSoftLimit), + (LPCTSTR)CastItoIShort(ServerArray[i].nServerHardLimit)); HTTPProcessData.Replace(_T("[Limit]"), strTemp); } else HTTPProcessData.Replace(_T("[Limit]"), _T("")); if (!WSserverColumnHidden[9]) { - if(ServerArray[i].sServerVersion.GetLength() > SHORT_LENGTH_MIN) - HTTPProcessData.Replace(_T("[Version]"), _T("") + ServerArray[i].sServerVersion.Left(SHORT_LENGTH-3) + _T("...") + _T("")); + if (ServerArray[i].sServerVersion.GetLength() > SHORT_LENGTH_MIN) + HTTPProcessData.Replace(_T("[Version]"), _T("") + ServerArray[i].sServerVersion.Left(SHORT_LENGTH - 3) + _T("...") + _T("")); else HTTPProcessData.Replace(_T("[Version]"), ServerArray[i].sServerVersion); } @@ -1593,32 +1600,32 @@ CString CWebServer::_GetServerList(ThreadData Data) CString CWebServer::_GetTransferList(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString HTTPTemp; CString sSession = _ParseURL(Data.sURL, _T("ses")); long lSession = _tstol(_ParseURL(Data.sURL, _T("ses"))); - bool bAdmin = IsSessionAdmin(Data,sSession); + bool bAdmin = IsSessionAdmin(Data, sSession); // cat int cat; - CString catp=_ParseURL(Data.sURL,_T("cat")); + CString catp = _ParseURL(Data.sURL, _T("cat")); if (catp.IsEmpty()) - cat=_GetLastUserCat(Data,lSession); + cat = _GetLastUserCat(Data, lSession); else { - cat=_tstoi(catp); - _SetLastUserCat(Data,lSession,cat); + cat = _tstoi(catp); + _SetLastUserCat(Data, lSession, cat); } // commands - CString sCat; (cat!=0)?sCat.Format(_T("&cat=%i"),cat):sCat.Empty(); + CString sCat; (cat != 0) ? sCat.Format(_T("&cat=%i"), cat) : sCat.Empty(); CString Out; - if (thePrefs.GetCatCount()>1) - InsertCatBox(Out,cat,_T(""),true,true,sSession,_T("")); + if (thePrefs.GetCatCount() > 1) + InsertCatBox(Out, cat, _T(""), true, true, sSession, _T("")); else - Out.Replace(_T("[CATBOX]"),_T("")); + Out.Replace(_T("[CATBOX]"), _T("")); CString sClear(_ParseURL(Data.sURL, _T("clearcompleted"))); @@ -1626,7 +1633,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) { if (sClear.CompareNoCase(_T("all")) == 0) { - theApp.emuledlg->SendMessage(WEB_CLEAR_COMPLETED, (WPARAM)0, (LPARAM)cat ); + theApp.emuledlg->SendMessage(WEB_CLEAR_COMPLETED, (WPARAM)0, (LPARAM)cat); } else { @@ -1653,7 +1660,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) if (HTTPTemp.CompareNoCase(_T("menudown")) == 0) { int iMenu = _tstol(_ParseURL(Data.sURL, _T("m"))); - bool bValue = _tstol(_ParseURL(Data.sURL, _T("v")))!=0; + bool bValue = _tstol(_ParseURL(Data.sURL, _T("v"))) != 0; WSdownloadColumnHidden[iMenu] = bValue; CIni ini(thePrefs.GetConfigFile(), _T("WebServer")); @@ -1663,35 +1670,35 @@ CString CWebServer::_GetTransferList(ThreadData Data) else if (HTTPTemp.CompareNoCase(_T("menuup")) == 0) { int iMenu = _tstol(_ParseURL(Data.sURL, _T("m"))); - bool bValue = _tstol(_ParseURL(Data.sURL, _T("v")))!=0; + bool bValue = _tstol(_ParseURL(Data.sURL, _T("v"))) != 0; WSuploadColumnHidden[iMenu] = bValue; SaveWIConfigArray(WSuploadColumnHidden, ARRSIZE(WSuploadColumnHidden), _T("uploadColumnHidden")); } else if (HTTPTemp.CompareNoCase(_T("menuqueue")) == 0) { int iMenu = _tstol(_ParseURL(Data.sURL, _T("m"))); - bool bValue = _tstol(_ParseURL(Data.sURL, _T("v")))!=0; + bool bValue = _tstol(_ParseURL(Data.sURL, _T("v"))) != 0; WSqueueColumnHidden[iMenu] = bValue; SaveWIConfigArray(WSqueueColumnHidden, ARRSIZE(WSqueueColumnHidden), _T("queueColumnHidden")); } else if (HTTPTemp.CompareNoCase(_T("menuprio")) == 0) { - if(bAdmin) + if (bAdmin) { CString sPrio(_ParseURL(Data.sURL, _T("p"))); int prio = PR_NORMAL; - if(sPrio.CompareNoCase(_T("low")) == 0) + if (sPrio.CompareNoCase(_T("low")) == 0) prio = PR_LOW; - else if(sPrio.CompareNoCase(_T("normal")) == 0) + else if (sPrio.CompareNoCase(_T("normal")) == 0) prio = PR_NORMAL; - else if(sPrio.CompareNoCase(_T("high")) == 0) + else if (sPrio.CompareNoCase(_T("high")) == 0) prio = PR_HIGH; - else if(sPrio.CompareNoCase(_T("auto")) == 0) + else if (sPrio.CompareNoCase(_T("auto")) == 0) prio = PR_AUTO; - SendMessage(theApp.emuledlg->m_hWnd,WEB_CATPRIO, (WPARAM)cat,(LPARAM)prio); + SendMessage(theApp.emuledlg->m_hWnd, WEB_CATPRIO, (WPARAM)cat, (LPARAM)prio); } } @@ -1707,7 +1714,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) { uchar FileHash[16]; CPartFile *found_file = theApp.downloadqueue->GetFileByID(_GetFileHash(sFile, FileHash)); - if(found_file) + if (found_file) { // SyruS all actions require a found file (removed double-check inside) if (sOp.CompareNoCase(_T("stop")) == 0) found_file->StopFile(); @@ -1718,7 +1725,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) else if (sOp.CompareNoCase(_T("cancel")) == 0) { found_file->DeleteFile(); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPD_CATTABS,0); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPD_CATTABS, 0); } else if (sOp.CompareNoCase(_T("getflc")) == 0) found_file->GetPreviewPrio(); @@ -1749,7 +1756,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) } else if (sOp.CompareNoCase(_T("setcat")) == 0) { - CString newcat=_ParseURL(Data.sURL, _T("filecat")); + CString newcat = _ParseURL(Data.sURL, _T("filecat")); if (!newcat.IsEmpty()) found_file->SetCategory(_tstol(newcat)); } @@ -1763,14 +1770,14 @@ CString CWebServer::_GetTransferList(ThreadData Data) if (_GetFileHash(sUser, UserHash) != 0) { CUpDownClient* cur_client = theApp.clientlist->FindClientByUserHash(UserHash); - if(cur_client) + if (cur_client) { if (sOp.CompareNoCase(_T("addfriend")) == 0) - SendMessage(theApp.emuledlg->m_hWnd,WEB_ADDREMOVEFRIEND,(WPARAM)cur_client,(LPARAM)1); + SendMessage(theApp.emuledlg->m_hWnd, WEB_ADDREMOVEFRIEND, (WPARAM)cur_client, (LPARAM)1); else if (sOp.CompareNoCase(_T("removefriend")) == 0) { - CFriend* f=theApp.friendlist->SearchFriend(UserHash,0,0); + CFriend* f = theApp.friendlist->SearchFriend(UserHash, 0, 0); if (f) - SendMessage(theApp.emuledlg->m_hWnd,WEB_ADDREMOVEFRIEND,(WPARAM)f,(LPARAM)0); + SendMessage(theApp.emuledlg->m_hWnd, WEB_ADDREMOVEFRIEND, (WPARAM)f, (LPARAM)0); } } } @@ -1785,65 +1792,65 @@ CString CWebServer::_GetTransferList(ThreadData Data) if (!sSort.IsEmpty()) { bDirection = false; - if(sSort.CompareNoCase(_T("dstate")) == 0) + if (sSort.CompareNoCase(_T("dstate")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_STATE; - else if(sSort.CompareNoCase(_T("dtype")) == 0) + else if (sSort.CompareNoCase(_T("dtype")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_TYPE; - else if(sSort.CompareNoCase(_T("dname")) == 0) + else if (sSort.CompareNoCase(_T("dname")) == 0) { pThis->m_Params.DownloadSort = DOWN_SORT_NAME; bDirection = true; } - else if(sSort.CompareNoCase(_T("dsize")) == 0) + else if (sSort.CompareNoCase(_T("dsize")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_SIZE; - else if(sSort.CompareNoCase(_T("dtransferred")) == 0) + else if (sSort.CompareNoCase(_T("dtransferred")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_TRANSFERRED; - else if(sSort.CompareNoCase(_T("dspeed")) == 0) + else if (sSort.CompareNoCase(_T("dspeed")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_SPEED; - else if(sSort.CompareNoCase(_T("dprogress")) == 0) + else if (sSort.CompareNoCase(_T("dprogress")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_PROGRESS; - else if(sSort.CompareNoCase(_T("dsources")) == 0) + else if (sSort.CompareNoCase(_T("dsources")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_SOURCES; - else if(sSort.CompareNoCase(_T("dpriority")) == 0) + else if (sSort.CompareNoCase(_T("dpriority")) == 0) pThis->m_Params.DownloadSort = DOWN_SORT_PRIORITY; - else if(sSort.CompareNoCase(_T("dcategory")) == 0) + else if (sSort.CompareNoCase(_T("dcategory")) == 0) { pThis->m_Params.DownloadSort = DOWN_SORT_CATEGORY; bDirection = true; } - else if(sSort.CompareNoCase(_T("uuser")) == 0) + else if (sSort.CompareNoCase(_T("uuser")) == 0) { pThis->m_Params.UploadSort = UP_SORT_USER; bDirection = true; } - else if(sSort.CompareNoCase(_T("uclient")) == 0) + else if (sSort.CompareNoCase(_T("uclient")) == 0) pThis->m_Params.UploadSort = UP_SORT_CLIENT; - else if(sSort.CompareNoCase(_T("uversion")) == 0) + else if (sSort.CompareNoCase(_T("uversion")) == 0) pThis->m_Params.UploadSort = UP_SORT_VERSION; - else if(sSort.CompareNoCase(_T("ufilename")) == 0) + else if (sSort.CompareNoCase(_T("ufilename")) == 0) { pThis->m_Params.UploadSort = UP_SORT_FILENAME; bDirection = true; } - else if(sSort.CompareNoCase(_T("utransferred")) == 0) + else if (sSort.CompareNoCase(_T("utransferred")) == 0) pThis->m_Params.UploadSort = UP_SORT_TRANSFERRED; - else if(sSort.CompareNoCase(_T("uspeed")) == 0) + else if (sSort.CompareNoCase(_T("uspeed")) == 0) pThis->m_Params.UploadSort = UP_SORT_SPEED; - else if(sSort.CompareNoCase(_T("qclient")) == 0) + else if (sSort.CompareNoCase(_T("qclient")) == 0) pThis->m_Params.QueueSort = QU_SORT_CLIENT; - else if(sSort.CompareNoCase(_T("quser")) == 0) + else if (sSort.CompareNoCase(_T("quser")) == 0) { pThis->m_Params.QueueSort = QU_SORT_USER; bDirection = true; } - else if(sSort.CompareNoCase(_T("qversion")) == 0) + else if (sSort.CompareNoCase(_T("qversion")) == 0) pThis->m_Params.QueueSort = QU_SORT_VERSION; - else if(sSort.CompareNoCase(_T("qfilename")) == 0) + else if (sSort.CompareNoCase(_T("qfilename")) == 0) { pThis->m_Params.QueueSort = QU_SORT_FILENAME; bDirection = true; } - else if(sSort.CompareNoCase(_T("qscore")) == 0) + else if (sSort.CompareNoCase(_T("qscore")) == 0) pThis->m_Params.QueueSort = QU_SORT_SCORE; if (strTmp.IsEmpty()) @@ -1892,74 +1899,74 @@ CString CWebServer::_GetTransferList(ThreadData Data) Out.Replace(_T("[DownloadFooter]"), pThis->m_Templates.sTransferDownFooter); Out.Replace(_T("[UploadHeader]"), pThis->m_Templates.sTransferUpHeader); Out.Replace(_T("[UploadFooter]"), pThis->m_Templates.sTransferUpFooter); - InsertCatBox(Out,cat,pThis->m_Templates.sCatArrow,true,true,sSession,_T("")); + InsertCatBox(Out, cat, pThis->m_Templates.sCatArrow, true, true, sSession, _T("")); strTmp = (pThis->m_Params.bDownloadSortReverse) ? _T("&sortreverse=false") : _T("&sortreverse=true"); - if(pThis->m_Params.DownloadSort == DOWN_SORT_STATE) + if (pThis->m_Params.DownloadSort == DOWN_SORT_STATE) Out.Replace(_T("[SortDState]"), strTmp); else Out.Replace(_T("[SortDState]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_TYPE) + if (pThis->m_Params.DownloadSort == DOWN_SORT_TYPE) Out.Replace(_T("[SortDType]"), strTmp); else Out.Replace(_T("[SortDType]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_NAME) + if (pThis->m_Params.DownloadSort == DOWN_SORT_NAME) Out.Replace(_T("[SortDName]"), strTmp); else Out.Replace(_T("[SortDName]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_SIZE) + if (pThis->m_Params.DownloadSort == DOWN_SORT_SIZE) Out.Replace(_T("[SortDSize]"), strTmp); else Out.Replace(_T("[SortDSize]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_TRANSFERRED) + if (pThis->m_Params.DownloadSort == DOWN_SORT_TRANSFERRED) Out.Replace(_T("[SortDTransferred]"), strTmp); else Out.Replace(_T("[SortDTransferred]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_SPEED) + if (pThis->m_Params.DownloadSort == DOWN_SORT_SPEED) Out.Replace(_T("[SortDSpeed]"), strTmp); else Out.Replace(_T("[SortDSpeed]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_PROGRESS) + if (pThis->m_Params.DownloadSort == DOWN_SORT_PROGRESS) Out.Replace(_T("[SortDProgress]"), strTmp); else Out.Replace(_T("[SortDProgress]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_SOURCES) + if (pThis->m_Params.DownloadSort == DOWN_SORT_SOURCES) Out.Replace(_T("[SortDSources]"), strTmp); else Out.Replace(_T("[SortDSources]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_PRIORITY) + if (pThis->m_Params.DownloadSort == DOWN_SORT_PRIORITY) Out.Replace(_T("[SortDPriority]"), strTmp); else Out.Replace(_T("[SortDPriority]"), _T("")); - if(pThis->m_Params.DownloadSort == DOWN_SORT_CATEGORY) + if (pThis->m_Params.DownloadSort == DOWN_SORT_CATEGORY) Out.Replace(_T("[SortDCategory]"), strTmp); else Out.Replace(_T("[SortDCategory]"), _T("")); strTmp = (pThis->m_Params.bUploadSortReverse) ? _T("&sortreverse=false") : _T("&sortreverse=true"); - if(pThis->m_Params.UploadSort == UP_SORT_CLIENT) + if (pThis->m_Params.UploadSort == UP_SORT_CLIENT) Out.Replace(_T("[SortUClient]"), strTmp); else Out.Replace(_T("[SortUClient]"), _T("")); - if(pThis->m_Params.UploadSort == UP_SORT_USER) + if (pThis->m_Params.UploadSort == UP_SORT_USER) Out.Replace(_T("[SortUUser]"), strTmp); else Out.Replace(_T("[SortUUser]"), _T("")); - if(pThis->m_Params.UploadSort == UP_SORT_VERSION) + if (pThis->m_Params.UploadSort == UP_SORT_VERSION) Out.Replace(_T("[SortUVersion]"), strTmp); else Out.Replace(_T("[SortUVersion]"), _T("")); - if(pThis->m_Params.UploadSort == UP_SORT_FILENAME) + if (pThis->m_Params.UploadSort == UP_SORT_FILENAME) Out.Replace(_T("[SortUFilename]"), strTmp); else Out.Replace(_T("[SortUFilename]"), _T("")); - if(pThis->m_Params.UploadSort == UP_SORT_TRANSFERRED) + if (pThis->m_Params.UploadSort == UP_SORT_TRANSFERRED) Out.Replace(_T("[SortUTransferred]"), strTmp); else Out.Replace(_T("[SortUTransferred]"), _T("")); - if(pThis->m_Params.UploadSort == UP_SORT_SPEED) + if (pThis->m_Params.UploadSort == UP_SORT_SPEED) Out.Replace(_T("[SortUSpeed]"), strTmp); else Out.Replace(_T("[SortUSpeed]"), _T("")); @@ -2114,7 +2121,7 @@ CString CWebServer::_GetTransferList(ThreadData Data) } Out.Replace(_T("[UFilenameM]"), strTmp); - _GetPlainResString(&strTmp, IDS_STATS_SRATIO); + _GetPlainResString(&strTmp, IDS_STATS_SRATIO); if (!WSuploadColumnHidden[3]) { Out.Replace(_T("[UTransferredI]"), (pThis->m_Params.UploadSort == UP_SORT_TRANSFERRED) ? pcSortIcon : _T("")); @@ -2146,41 +2153,41 @@ CString CWebServer::_GetTransferList(ThreadData Data) Out.Replace(_T("[TotalDown]"), _GetPlainResString(IDS_INFLST_USER_TOTALDOWNLOAD)); Out.Replace(_T("[TotalUp]"), _GetPlainResString(IDS_INFLST_USER_TOTALUPLOAD)); Out.Replace(_T("[admin]"), (bAdmin) ? _T("admin") : _T("")); - InsertCatBox(Out,cat,_T(""),true,true,sSession,_T("")); + InsertCatBox(Out, cat, _T(""), true, true, sSession, _T("")); CArray FilesArray; - CArray partlist; + CArray partlist; theApp.emuledlg->transferwnd->GetDownloadList()->GetDisplayedFiles(&partlist); // Populating array - for (int i=0;iGetCategory()!=0) continue; break; - case -2 : if (!pPartFile->IsPartFile()) continue; break; - case -3 : if (pPartFile->IsPartFile()) continue; break; - case -4 : if (!((pPartFile->GetStatus()==PS_READY|| pPartFile->GetStatus()==PS_EMPTY) && pPartFile->GetTransferringSrcCount()==0)) continue; break; - case -5 : if (!((pPartFile->GetStatus()==PS_READY|| pPartFile->GetStatus()==PS_EMPTY) && pPartFile->GetTransferringSrcCount()>0)) continue; break; - case -6 : if (pPartFile->GetStatus()!=PS_ERROR) continue; break; - case -7 : if (pPartFile->GetStatus()!=PS_PAUSED && !pPartFile->IsStopped()) continue; break; - case -8 : if (pPartFile->lastseencomplete==NULL) continue; break; - case -9 : if (!pPartFile->IsMovie()) continue; break; - case -10 : if (ED2KFT_AUDIO != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; - case -11 : if (!pPartFile->IsArchive()) continue; break; - case -12 : if (ED2KFT_CDIMAGE != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; - case -13 : if (ED2KFT_DOCUMENT != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; - case -14 : if (ED2KFT_IMAGE != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; - case -15 : if (ED2KFT_PROGRAM != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; + case -1: if (pPartFile->GetCategory() != 0) continue; break; + case -2: if (!pPartFile->IsPartFile()) continue; break; + case -3: if (pPartFile->IsPartFile()) continue; break; + case -4: if (!((pPartFile->GetStatus() == PS_READY || pPartFile->GetStatus() == PS_EMPTY) && pPartFile->GetTransferringSrcCount() == 0)) continue; break; + case -5: if (!((pPartFile->GetStatus() == PS_READY || pPartFile->GetStatus() == PS_EMPTY) && pPartFile->GetTransferringSrcCount() > 0)) continue; break; + case -6: if (pPartFile->GetStatus() != PS_ERROR) continue; break; + case -7: if (pPartFile->GetStatus() != PS_PAUSED && !pPartFile->IsStopped()) continue; break; + case -8: if (pPartFile->lastseencomplete == NULL) continue; break; + case -9: if (!pPartFile->IsMovie()) continue; break; + case -10: if (ED2KFT_AUDIO != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; + case -11: if (!pPartFile->IsArchive()) continue; break; + case -12: if (ED2KFT_CDIMAGE != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; + case -13: if (ED2KFT_DOCUMENT != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; + case -14: if (ED2KFT_IMAGE != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; + case -15: if (ED2KFT_PROGRAM != GetED2KFileTypeID(pPartFile->GetFileName())) continue; break; //JOHNTODO: Not too sure here.. I was going to add Collections but noticed something strange.. Are these supposed to match the list in PartFile around line 5132? Because they do not.. } } - else if (cat>0 && pPartFile->GetCategory() != (UINT)cat) + else if (cat > 0 && pPartFile->GetCategory() != (UINT)cat) continue; DownloadFiles dFile; @@ -2192,14 +2199,15 @@ CString CWebServer::_GetTransferList(ThreadData Data) dFile.m_dblCompleted = pPartFile->GetPercentCompleted(); dFile.lFileSpeed = pPartFile->GetDatarate(); - if ( pPartFile->HasComment() || pPartFile->HasRating()) { - dFile.iComment= pPartFile->HasBadRating()?2:1; - } else + if (pPartFile->HasComment() || pPartFile->HasRating()) { + dFile.iComment = pPartFile->HasBadRating() ? 2 : 1; + } + else dFile.iComment = 0; - dFile.iFileState=pPartFile->getPartfileStatusRang(); + dFile.iFileState = pPartFile->getPartfileStatusRang(); - if(pPartFile->GetDatarate() > 0) + if (pPartFile->GetDatarate() > 0) { dFile.sFileState = _T("downloading"); } @@ -2208,39 +2216,39 @@ CString CWebServer::_GetTransferList(ThreadData Data) dFile.sFileState = _T("waiting"); } - switch(pPartFile->GetStatus()) + switch (pPartFile->GetStatus()) { - case PS_HASHING: - dFile.sFileState = _T("hashing"); - break; - case PS_WAITINGFORHASH: - dFile.sFileState = _T("waitinghash"); - break; - case PS_ERROR: - dFile.sFileState = _T("error"); - break; - case PS_COMPLETING: - dFile.sFileState = _T("completing"); - break; - case PS_COMPLETE: - dFile.sFileState = _T("complete"); - break; - case PS_PAUSED: - if (!pPartFile->IsStopped()) - dFile.sFileState = _T("paused"); - else - dFile.sFileState = _T("stopped"); - break; - default: - break; + case PS_HASHING: + dFile.sFileState = _T("hashing"); + break; + case PS_WAITINGFORHASH: + dFile.sFileState = _T("waitinghash"); + break; + case PS_ERROR: + dFile.sFileState = _T("error"); + break; + case PS_COMPLETING: + dFile.sFileState = _T("completing"); + break; + case PS_COMPLETE: + dFile.sFileState = _T("complete"); + break; + case PS_PAUSED: + if (!pPartFile->IsStopped()) + dFile.sFileState = _T("paused"); + else + dFile.sFileState = _T("stopped"); + break; + default: + break; } dFile.bFileAutoPrio = pPartFile->IsAutoDownPriority(); - dFile.nFilePrio = pPartFile->GetDownPriority(); + dFile.nFilePrio = pPartFile->GetDownPriority(); int pCat = pPartFile->GetCategory(); CString strCategory = thePrefs.GetCategory(pCat)->strTitle; - strCategory.Replace(_T("'"),_T("\'")); + strCategory.Replace(_T("'"), _T("\'")); dFile.sCategory = strCategory; @@ -2250,14 +2258,14 @@ CString CWebServer::_GetTransferList(ThreadData Data) dFile.lTransferringSourceCount = pPartFile->GetTransferringSrcCount(); dFile.bIsComplete = !pPartFile->IsPartFile(); dFile.bIsPreview = pPartFile->IsReadyForPreview(); - dFile.bIsGetFLC = pPartFile->GetPreviewPrio(); + dFile.bIsGetFLC = pPartFile->GetPreviewPrio(); if (theApp.GetPublicIP() != 0 && !theApp.IsFirewalled()) - dFile.sED2kLink = pPartFile->GetED2kLink(false, false, false, true, theApp.GetPublicIP()); + dFile.sED2kLink = pPartFile->GetED2kLink(false, false, false, true, theApp.GetPublicIP()); else dFile.sED2kLink = pPartFile->GetED2kLink(); - dFile.sFileInfo = _SpecialChars(pPartFile->GetInfoSummary(true),false); + dFile.sFileInfo = _SpecialChars(pPartFile->GetInfoSummary(true), false); FilesArray.Add(dFile); } @@ -2266,52 +2274,52 @@ CString CWebServer::_GetTransferList(ThreadData Data) // Sorting (simple bubble sort, we don't have tons of data here) bool bSorted = true; - for(int nMax = 0;bSorted && nMax < FilesArray.GetCount()*2; nMax++) + for (int nMax = 0; bSorted && nMax < FilesArray.GetCount() * 2; nMax++) { bSorted = false; - for(int i = 0; i < FilesArray.GetCount() - 1; i++) + for (int i = 0; i < FilesArray.GetCount() - 1; i++) { bool bSwap = false; - switch(pThis->m_Params.DownloadSort) + switch (pThis->m_Params.DownloadSort) { case DOWN_SORT_STATE: - bSwap = FilesArray[i].iFileStatem_Params.bDownloadSortReverse) + if (pThis->m_Params.bDownloadSortReverse) bSwap = !bSwap; - if(bSwap) + if (bSwap) { bSorted = true; DownloadFiles TmpFile = FilesArray[i]; - FilesArray[i] = FilesArray[i+1]; - FilesArray[i+1] = TmpFile; + FilesArray[i] = FilesArray[i + 1]; + FilesArray[i + 1] = TmpFile; } } } @@ -2319,13 +2327,13 @@ CString CWebServer::_GetTransferList(ThreadData Data) -// uint32 dwClientSoft; + // uint32 dwClientSoft; CArray UploadArray; CUpDownClient* cur_client; for (POSITION pos = theApp.uploadqueue->GetFirstFromUploadList(); - pos != 0;theApp.uploadqueue->GetNextFromUploadList(pos)) + pos != 0; theApp.uploadqueue->GetNextFromUploadList(pos)) { cur_client = theApp.uploadqueue->GetQueueClientAt(pos); @@ -2343,12 +2351,12 @@ CString CWebServer::_GetTransferList(ThreadData Data) dUser.sClientState = _T("connecting"); } - dUser.sFileInfo = _SpecialChars(GetClientSummary(cur_client),false); - dUser.sFileInfo.Replace(_T("\\"),_T("\\\\")); + dUser.sFileInfo = _SpecialChars(GetClientSummary(cur_client), false); + dUser.sFileInfo.Replace(_T("\\"), _T("\\\\")); dUser.sFileInfo.Replace(_T("\n"), _T("
")); - dUser.sFileInfo.Replace(_T("'"),_T("’")); + dUser.sFileInfo.Replace(_T("'"), _T("’")); - sTemp= GetClientversionImage(cur_client) ; + sTemp = GetClientversionImage(cur_client); dUser.sClientSoft = sTemp; if (cur_client->IsBanned()) @@ -2363,10 +2371,10 @@ CString CWebServer::_GetTransferList(ThreadData Data) dUser.sUserName = _SpecialChars(cur_client->GetUserName()); CString cun(cur_client->GetUserName()); - if(cun.GetLength() > SHORT_LENGTH_MIN) - dUser.sUserName = _SpecialChars(cun.Left(SHORT_LENGTH_MIN-3)) + _T("..."); + if (cun.GetLength() > SHORT_LENGTH_MIN) + dUser.sUserName = _SpecialChars(cun.Left(SHORT_LENGTH_MIN - 3)) + _T("..."); - CKnownFile* file = theApp.sharedfiles->GetFileByID(cur_client->GetUploadFileID() ); + CKnownFile* file = theApp.sharedfiles->GetFileByID(cur_client->GetUploadFileID()); if (file) dUser.sFileName = _SpecialChars(file->GetFileName()); else @@ -2381,46 +2389,46 @@ CString CWebServer::_GetTransferList(ThreadData Data) // Sorting (simple bubble sort, we don't have tons of data here) bSorted = true; - for(int nMax = 0;bSorted && nMax < UploadArray.GetCount()*2; nMax++) + for (int nMax = 0; bSorted && nMax < UploadArray.GetCount() * 2; nMax++) { bSorted = false; - for(int i = 0; i < UploadArray.GetCount() - 1; i++) + for (int i = 0; i < UploadArray.GetCount() - 1; i++) { bool bSwap = false; - switch(pThis->m_Params.UploadSort) + switch (pThis->m_Params.UploadSort) { case UP_SORT_CLIENT: - bSwap = UploadArray[i].sClientSoft.CompareNoCase(UploadArray[i+1].sClientSoft) < 0; + bSwap = UploadArray[i].sClientSoft.CompareNoCase(UploadArray[i + 1].sClientSoft) < 0; break; case UP_SORT_USER: - bSwap = UploadArray[i].sUserName.CompareNoCase(UploadArray[i+1].sUserName) < 0; + bSwap = UploadArray[i].sUserName.CompareNoCase(UploadArray[i + 1].sUserName) < 0; break; case UP_SORT_VERSION: - bSwap = UploadArray[i].sClientNameVersion.CompareNoCase(UploadArray[i+1].sClientNameVersion) < 0; + bSwap = UploadArray[i].sClientNameVersion.CompareNoCase(UploadArray[i + 1].sClientNameVersion) < 0; break; case UP_SORT_FILENAME: - bSwap = UploadArray[i].sFileName.CompareNoCase(UploadArray[i+1].sFileName) < 0; + bSwap = UploadArray[i].sFileName.CompareNoCase(UploadArray[i + 1].sFileName) < 0; break; case UP_SORT_TRANSFERRED: - bSwap = UploadArray[i].nTransferredUp < UploadArray[i+1].nTransferredUp; + bSwap = UploadArray[i].nTransferredUp < UploadArray[i + 1].nTransferredUp; break; case UP_SORT_SPEED: - bSwap = UploadArray[i].nDataRate < UploadArray[i+1].nDataRate; + bSwap = UploadArray[i].nDataRate < UploadArray[i + 1].nDataRate; break; } - if(pThis->m_Params.bUploadSortReverse) + if (pThis->m_Params.bUploadSortReverse) bSwap = !bSwap; - if(bSwap) + if (bSwap) { bSorted = true; UploadUsers TmpUser = UploadArray[i]; - UploadArray[i] = UploadArray[i+1]; - UploadArray[i+1] = TmpUser; + UploadArray[i] = UploadArray[i + 1]; + UploadArray[i + 1] = TmpUser; } } } - Out=_CreateTransferList(Out, pThis, &Data, &FilesArray, &UploadArray,bAdmin); + Out = _CreateTransferList(Out, pThis, &Data, &FilesArray, &UploadArray, bAdmin); Out.Replace(_T("[Session]"), sSession); @@ -2429,9 +2437,157 @@ CString CWebServer::_GetTransferList(ThreadData Data) return Out; } + +CString CWebServer::_GetTransferJSONList(ThreadData Data) +{ + CArray FilesArray; + + CArray partlist; + theApp.emuledlg->transferwnd->GetDownloadList()->GetDisplayedFiles(&partlist); + + // Populating array + for (int i = 0; i < partlist.GetCount(); i++) { + + CPartFile* pPartFile = partlist[i]; + + if (pPartFile == nullptr) + { + // some wrong + continue; + } + + DownloadFiles dFile; + dFile.sFileName = _SpecialChars(pPartFile->GetFileName()); + dFile.sFileType = GetWebImageNameForFileType(dFile.sFileName); + dFile.sFileNameJS = _SpecialChars(pPartFile->GetFileName()); //for javascript + dFile.m_qwFileSize = pPartFile->GetFileSize(); + dFile.m_qwFileTransferred = pPartFile->GetCompletedSize(); + dFile.m_dblCompleted = pPartFile->GetPercentCompleted(); + dFile.lFileSpeed = pPartFile->GetDatarate(); + + /* if (pPartFile->HasComment() || pPartFile->HasRating()) { + dFile.iComment = pPartFile->HasBadRating() ? 2 : 1; + } + else + dFile.iComment = 0; + */ + + dFile.iFileState = pPartFile->getPartfileStatusRang(); + + if (pPartFile->GetDatarate() > 0) + { + dFile.sFileState = _T("downloading"); + } + else + { + dFile.sFileState = _T("waiting"); + } + + switch (pPartFile->GetStatus()) + { + case PS_HASHING: + dFile.sFileState = _T("hashing"); + break; + case PS_WAITINGFORHASH: + dFile.sFileState = _T("waitinghash"); + break; + case PS_ERROR: + dFile.sFileState = _T("error"); + break; + case PS_COMPLETING: + dFile.sFileState = _T("completing"); + break; + case PS_COMPLETE: + dFile.sFileState = _T("complete"); + break; + case PS_PAUSED: + if (!pPartFile->IsStopped()) + dFile.sFileState = _T("paused"); + else + dFile.sFileState = _T("stopped"); + break; + default: + break; + } + + dFile.bFileAutoPrio = pPartFile->IsAutoDownPriority(); + dFile.nFilePrio = pPartFile->GetDownPriority(); + int pCat = pPartFile->GetCategory(); + + CString strCategory = thePrefs.GetCategory(pCat)->strTitle; + strCategory.Replace(_T("'"), _T("\'")); + + dFile.sCategory = strCategory; + + dFile.sFileHash = md4str(pPartFile->GetFileHash()); + dFile.lSourceCount = pPartFile->GetSourceCount(); + dFile.lNotCurrentSourceCount = pPartFile->GetNotCurrentSourcesCount(); + dFile.lTransferringSourceCount = pPartFile->GetTransferringSrcCount(); + dFile.bIsComplete = !pPartFile->IsPartFile(); + dFile.bIsPreview = pPartFile->IsReadyForPreview(); + dFile.bIsGetFLC = pPartFile->GetPreviewPrio(); + + if (theApp.GetPublicIP() != 0 && !theApp.IsFirewalled()) + dFile.sED2kLink = pPartFile->GetED2kLink(false, false, false, true, theApp.GetPublicIP()); + else + dFile.sED2kLink = pPartFile->GetED2kLink(); + + dFile.sFileInfo = _SpecialChars(pPartFile->GetInfoSummary(true), false); + + FilesArray.Add(dFile); + } + + + // + // GENERATE JSON FILE + // + CString strJSONReply(_T("{\n")); + strJSONReply.Append(_T("\"Files\": [\n")); + + for (int i = 0; i < FilesArray.GetCount(); i++) + { + auto file = FilesArray[i]; + strJSONReply.Append(_T("{\n")); + strJSONReply.AppendFormat(_T("FileName:\"%s\",\n"), file.sFileName); + strJSONReply.AppendFormat(_T("FileNameJS:\"%s\",\n"), file.sFileNameJS); + strJSONReply.AppendFormat(_T("FileSize:\"%d\",\n"), file.m_qwFileSize); + strJSONReply.AppendFormat(_T("FileType:\"%s\",\n"), file.sFileType); + strJSONReply.AppendFormat(_T("FileTransferred:\"%d\",\n"), file.m_qwFileTransferred); + strJSONReply.AppendFormat(_T("Completed:\"%4.2f\",\n"), file.m_dblCompleted); + strJSONReply.AppendFormat(_T("FileSpeed:\"%d\",\n"), file.lFileSpeed); + strJSONReply.AppendFormat(_T("FileState:\"%s\",\n"), file.sFileState); + strJSONReply.AppendFormat(_T("FileAutoPrio:\"%s\",\n"), file.bFileAutoPrio == true ? _T("true") : _T("false")); + strJSONReply.AppendFormat(_T("nFilePrio:\"%d\",\n"), file.nFilePrio); + strJSONReply.AppendFormat(_T("sCategory:\"%s\",\n"), file.sCategory); + strJSONReply.AppendFormat(_T("FileHash:\"%s\",\n"), file.sFileHash); + strJSONReply.AppendFormat(_T("lSourceCount:\"%d\",\n"), file.lSourceCount); + strJSONReply.AppendFormat(_T("lNotCurrentSourceCount:\"%d\",\n"), file.lNotCurrentSourceCount); + strJSONReply.AppendFormat(_T("lTransferringSourceCount:\"%d\",\n"), file.lTransferringSourceCount); + strJSONReply.AppendFormat(_T("bIsComplete:\"%s\",\n"), file.bIsComplete == true ? _T("true") : _T("false")); + strJSONReply.AppendFormat(_T("bIsPreview:\"%s\",\n"), file.bIsPreview == true ? _T("true") : _T("false")); + strJSONReply.AppendFormat(_T("bIsGetFLC:\"%s\",\n"), file.bIsGetFLC == true ? _T("true") : _T("false")); + strJSONReply.AppendFormat(_T("bIsPreview:\"%s\",\n"), file.bIsPreview == true ? _T("true") : _T("false")); + strJSONReply.AppendFormat(_T("sED2kLink:\"%s\",\n"), file.sED2kLink); + strJSONReply.AppendFormat(_T("sFileInfo:\"%s\"\n"), file.sFileInfo); + + if (i < (FilesArray.GetCount() - 1)) + { + strJSONReply.Append(_T("},\n")); + } + else + { + strJSONReply.Append(_T("}\n")); + } + } + strJSONReply.Append(_T("]\n")); + strJSONReply.Append(_T("}\n")); + + return strJSONReply; +} + CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadData* Data, void* _FilesArray, void* _UploadArray, bool bAdmin) { - CArray* FilesArray=(CArray*)_FilesArray; - CArray* UploadArray=(CArray*)_UploadArray; + CArray* FilesArray = (CArray*)_FilesArray; + CArray* UploadArray = (CArray*)_UploadArray; // Displaying CString sDownList, HTTPProcessData; @@ -2476,13 +2632,13 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa } CString usn(cur_client->GetUserName()); - if( usn.GetLength() > SHORT_LENGTH_MIN) - dUser.sUserName = _SpecialChars(usn.Left((SHORT_LENGTH_MIN-3)) + _T("...")); + if (usn.GetLength() > SHORT_LENGTH_MIN) + dUser.sUserName = _SpecialChars(usn.Left((SHORT_LENGTH_MIN - 3)) + _T("...")); else dUser.sUserName = _SpecialChars(usn); dUser.sClientNameVersion = cur_client->GetClientSoftVer(); - CKnownFile* file = theApp.sharedfiles->GetFileByID(cur_client->GetUploadFileID() ); + CKnownFile* file = theApp.sharedfiles->GetFileByID(cur_client->GetUploadFileID()); if (file) dUser.sFileName = _SpecialChars(file->GetFileName()); else @@ -2491,11 +2647,11 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa dUser.sClientStateSpecial = _T("connecting"); dUser.nScore = cur_client->GetScore(false); - sTemp=GetClientversionImage(cur_client); + sTemp = GetClientversionImage(cur_client); dUser.sClientSoft = sTemp; dUser.sUserHash = md4str(cur_client->GetUserHash()); //SyruS CQArray-Sorting setting sIndex according to param - switch(pThis->m_Params.QueueSort) + switch (pThis->m_Params.QueueSort) { case QU_SORT_CLIENT: dUser.sIndex = dUser.sClientSoft; @@ -2520,7 +2676,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa int nNextPos = 0; // position in queue of the user with the highest score -> next upload user uint32 nNextScore = 0; // highest score -> next upload user - for(int i = 0; i < QueueArray.GetCount(); i++) + for (int i = 0; i < QueueArray.GetCount(); i++) { if (QueueArray[i].nScore > nNextScore) { @@ -2534,29 +2690,29 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa QueueArray[nNextPos].sClientStateSpecial = QueueArray[nNextPos].sClientState; } - if ((nCountQueue > 0 && pThis->m_Params.bShowUploadQueue) || + if ((nCountQueue > 0 && pThis->m_Params.bShowUploadQueue) || (nCountQueueBanned > 0 && pThis->m_Params.bShowUploadQueueBanned) || (nCountQueueFriend > 0 && pThis->m_Params.bShowUploadQueueFriend)) { #ifdef _DEBUG - DWORD dwStart = ::GetTickCount(); + DWORD dwStart = ::GetTickCount(); #endif - QueueArray.QuickSort(pThis->m_Params.bQueueSortReverse); + QueueArray.QuickSort(pThis->m_Params.bQueueSortReverse); #ifdef _DEBUG - AddDebugLogLine(false, _T("WebServer: Waitingqueue with %u elements sorted in %u ms"), QueueArray.GetSize(), ::GetTickCount()-dwStart); + AddDebugLogLine(false, _T("WebServer: Waitingqueue with %u elements sorted in %u ms"), QueueArray.GetSize(), ::GetTickCount() - dwStart); #endif } - for(int i = 0; i < FilesArray->GetCount(); i++) + for (int i = 0; i < FilesArray->GetCount(); i++) { HTTPProcessData = OutE; - DownloadFiles dwnlf=FilesArray->GetAt(i); + DownloadFiles dwnlf = FilesArray->GetAt(i); - if (dwnlf.sFileHash == _ParseURL(Data->sURL,_T("file")) ) - HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked")); + if (dwnlf.sFileHash == _ParseURL(Data->sURL, _T("file"))) + HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked")); else - HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked_no")); + HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked_no")); CString ed2k; //ed2klink CString state; //state @@ -2569,74 +2725,76 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa //CPartFile *found_file = theApp.downloadqueue->GetFileByID(_GetFileHash(dwnlf.sFileHash, FileHashA4AF)); - dwnlf.sFileInfo.Replace(_T("\\"),_T("\\\\")); + dwnlf.sFileInfo.Replace(_T("\\"), _T("\\\\")); CString strFInfo = dwnlf.sFileInfo; - strFInfo.Replace(_T("'"),_T("’")); + strFInfo.Replace(_T("'"), _T("’")); strFInfo.Replace(_T("\n"), _T("\\n")); dwnlf.sFileInfo.Replace(_T("\n"), _T("
")); if (!dwnlf.iComment) { - HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("") ); - } else { - HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("") ); - HTTPProcessData.Replace(_T("[HASCOMMENT_END]"), _T("") ); + HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("")); + } + else { + HTTPProcessData.Replace(_T("[HASCOMMENT]"), _T("")); + HTTPProcessData.Replace(_T("[HASCOMMENT_END]"), _T("")); } - if (dwnlf.sFileState.CompareNoCase(_T("downloading"))==0 || dwnlf.sFileState.CompareNoCase(_T("waiting"))==0 ) + if (dwnlf.sFileState.CompareNoCase(_T("downloading")) == 0 || dwnlf.sFileState.CompareNoCase(_T("waiting")) == 0) { - HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("") ); - HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("") ); - HTTPProcessData.Replace(_T("[!ISACTIVE_END]"), _T("") ); - } else { - HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("") ); - HTTPProcessData.Replace(_T("[ISACTIVE_END]"), _T("") ); - HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("") ); + HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("")); + HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("")); + HTTPProcessData.Replace(_T("[!ISACTIVE_END]"), _T("")); + } + else { + HTTPProcessData.Replace(_T("[ISACTIVE]"), _T("")); + HTTPProcessData.Replace(_T("[ISACTIVE_END]"), _T("")); + HTTPProcessData.Replace(_T("[!ISACTIVE]"), _T("")); } - CString JSED2kLink=dwnlf.sED2kLink; - JSED2kLink.Replace(_T("'"),_T("’")); + CString JSED2kLink = dwnlf.sED2kLink; + JSED2kLink.Replace(_T("'"), _T("’")); ed2k = JSED2kLink; fname = dwnlf.sFileNameJS; state = dwnlf.sFileState; - fsize.Format(_T("%I64u"),dwnlf.m_qwFileSize); + fsize.Format(_T("%I64u"), dwnlf.m_qwFileSize); filehash = dwnlf.sFileHash; session = _ParseURL(Data->sURL, _T("ses")); if (dwnlf.bIsPreview) isgetflc.Empty(); - else if(dwnlf.bIsGetFLC) + else if (dwnlf.bIsGetFLC) isgetflc = _T("enabled"); else isgetflc = _T("disabled"); - if(dwnlf.bFileAutoPrio) + if (dwnlf.bFileAutoPrio) downpriority = _T("Auto"); else { - switch(dwnlf.nFilePrio) + switch (dwnlf.nFilePrio) { - case 0: - downpriority = _T("Low"); - break; - case 1: - downpriority = _T("Normal"); - break; - case 2: - downpriority = _T("High"); - break; + case 0: + downpriority = _T("Low"); + break; + case 1: + downpriority = _T("Normal"); + break; + case 2: + downpriority = _T("High"); + break; } } - HTTPProcessData.Replace(_T("[admin]"), ( bAdmin ) ? _T("admin") : _T("")); + HTTPProcessData.Replace(_T("[admin]"), (bAdmin) ? _T("admin") : _T("")); HTTPProcessData.Replace(_T("[finfo]"), strFInfo); - HTTPProcessData.Replace(_T("[fcomments]"), (dwnlf.iComment==0)?_T(""):_T("yes") ); + HTTPProcessData.Replace(_T("[fcomments]"), (dwnlf.iComment == 0) ? _T("") : _T("yes")); HTTPProcessData.Replace(_T("[ed2k]"), ed2k); HTTPProcessData.Replace(_T("[DownState]"), state); HTTPProcessData.Replace(_T("[isgetflc]"), isgetflc); @@ -2646,15 +2804,15 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa HTTPProcessData.Replace(_T("[filehash]"), filehash); HTTPProcessData.Replace(_T("[down-priority]"), downpriority); HTTPProcessData.Replace(_T("[FileType]"), dwnlf.sFileType); - HTTPProcessData.Replace(_T("[downloadable]"), (bAdmin && (thePrefs.GetMaxWebUploadFileSizeMB()==0 ||dwnlf.m_qwFileSize<((uint64)thePrefs.GetMaxWebUploadFileSizeMB())*1024*1024))?_T("yes"):_T("no") ); + HTTPProcessData.Replace(_T("[downloadable]"), (bAdmin && (thePrefs.GetMaxWebUploadFileSizeMB() == 0 || dwnlf.m_qwFileSize < ((uint64)thePrefs.GetMaxWebUploadFileSizeMB()) * 1024 * 1024)) ? _T("yes") : _T("no")); // comment icon if (!dwnlf.iComment) - HTTPProcessData.Replace(_T("[FileCommentIcon]"), _T("none") ); - else if (dwnlf.iComment==1) - HTTPProcessData.Replace(_T("[FileCommentIcon]"), _T("cmtgood") ); - else if (dwnlf.iComment==2) - HTTPProcessData.Replace(_T("[FileCommentIcon]"), _T("cmtbad") ); + HTTPProcessData.Replace(_T("[FileCommentIcon]"), _T("none")); + else if (dwnlf.iComment == 1) + HTTPProcessData.Replace(_T("[FileCommentIcon]"), _T("cmtgood")); + else if (dwnlf.iComment == 2) + HTTPProcessData.Replace(_T("[FileCommentIcon]"), _T("cmtbad")); if (!dwnlf.bIsPreview && dwnlf.bIsGetFLC) @@ -2664,8 +2822,8 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa if (!WSdownloadColumnHidden[0]) { - if(dwnlf.sFileName.GetLength() > (SHORT_LENGTH_MAX)) - HTTPProcessData.Replace(_T("[ShortFileName]"), dwnlf.sFileName.Left(SHORT_LENGTH_MAX-3) + _T("...")); + if (dwnlf.sFileName.GetLength() > (SHORT_LENGTH_MAX)) + HTTPProcessData.Replace(_T("[ShortFileName]"), dwnlf.sFileName.Left(SHORT_LENGTH_MAX - 3) + _T("...")); else HTTPProcessData.Replace(_T("[ShortFileName]"), dwnlf.sFileName); } @@ -2682,7 +2840,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa if (!WSdownloadColumnHidden[2]) { - if(dwnlf.m_qwFileTransferred > 0) + if (dwnlf.m_qwFileTransferred > 0) { fTotalTransferred += dwnlf.m_qwFileTransferred; HTTPProcessData.Replace(_T("[3]"), CastItoXBytes(dwnlf.m_qwFileTransferred)); @@ -2694,7 +2852,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa HTTPProcessData.Replace(_T("[3]"), _T("")); if (!WSdownloadColumnHidden[3]) - HTTPProcessData.Replace(_T("[DownloadBar]"), _GetDownloadGraph( *Data,dwnlf.sFileHash)); + HTTPProcessData.Replace(_T("[DownloadBar]"), _GetDownloadGraph(*Data, dwnlf.sFileHash)); else HTTPProcessData.Replace(_T("[DownloadBar]"), _T("")); @@ -2702,10 +2860,10 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa if (!WSdownloadColumnHidden[4]) { - if(dwnlf.lFileSpeed > 0.0f) + if (dwnlf.lFileSpeed > 0.0f) { fTotalSpeed += dwnlf.lFileSpeed; - HTTPTemp.Format(_T("%8.2f"), dwnlf.lFileSpeed/1024.0); + HTTPTemp.Format(_T("%8.2f"), dwnlf.lFileSpeed / 1024.0); HTTPProcessData.Replace(_T("[4]"), HTTPTemp); } else @@ -2716,12 +2874,12 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa if (!WSdownloadColumnHidden[5]) { - if(dwnlf.lSourceCount > 0) + if (dwnlf.lSourceCount > 0) { HTTPTemp.Format(_T("%li / %8li (%li)"), - dwnlf.lSourceCount-dwnlf.lNotCurrentSourceCount, - dwnlf.lSourceCount, - dwnlf.lTransferringSourceCount); + dwnlf.lSourceCount - dwnlf.lNotCurrentSourceCount, + dwnlf.lSourceCount, + dwnlf.lTransferringSourceCount); HTTPProcessData.Replace(_T("[5]"), HTTPTemp); } else @@ -2732,22 +2890,22 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa if (!WSdownloadColumnHidden[6]) { - if(dwnlf.bFileAutoPrio) + if (dwnlf.bFileAutoPrio) { - switch(dwnlf.nFilePrio) + switch (dwnlf.nFilePrio) { - case 0: HTTPTemp=GetResString(IDS_PRIOAUTOLOW); break; - case 1: HTTPTemp=GetResString(IDS_PRIOAUTONORMAL); break; - case 2: HTTPTemp=GetResString(IDS_PRIOAUTOHIGH); break; + case 0: HTTPTemp = GetResString(IDS_PRIOAUTOLOW); break; + case 1: HTTPTemp = GetResString(IDS_PRIOAUTONORMAL); break; + case 2: HTTPTemp = GetResString(IDS_PRIOAUTOHIGH); break; } } else { - switch(dwnlf.nFilePrio) + switch (dwnlf.nFilePrio) { - case 0: HTTPTemp=GetResString(IDS_PRIOLOW); break; - case 1: HTTPTemp=GetResString(IDS_PRIONORMAL); break; - case 2: HTTPTemp=GetResString(IDS_PRIOHIGH); break; + case 0: HTTPTemp = GetResString(IDS_PRIOLOW); break; + case 1: HTTPTemp = GetResString(IDS_PRIONORMAL); break; + case 2: HTTPTemp = GetResString(IDS_PRIOHIGH); break; } } HTTPProcessData.Replace(_T("[PrioVal]"), HTTPTemp); @@ -2761,7 +2919,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa HTTPProcessData.Replace(_T("[Category]"), _T("")); - InsertCatBox(HTTPProcessData,0,_T(""),false,false,session,dwnlf.sFileHash); + InsertCatBox(HTTPProcessData, 0, _T(""), false, false, session, dwnlf.sFileHash); sDownList += HTTPProcessData; } @@ -2771,14 +2929,14 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa Out.Replace(_T("[TotalDownTransferred]"), CastItoXBytes(fTotalTransferred)); - HTTPTemp.Format(_T("%8.2f"), fTotalSpeed/1024.0); + HTTPTemp.Format(_T("%8.2f"), fTotalSpeed / 1024.0); Out.Replace(_T("[TotalDownSpeed]"), HTTPTemp); HTTPTemp.Format(_T("%s: %i"), (LPCTSTR)GetResString(IDS_SF_FILE), FilesArray->GetCount()); Out.Replace(_T("[TotalFiles]"), HTTPTemp); - HTTPTemp.Format(_T("%i"),pThis->m_Templates.iProgressbarWidth); - Out.Replace(_T("[PROGRESSBARWIDTHVAL]"),HTTPTemp); + HTTPTemp.Format(_T("%i"), pThis->m_Templates.iProgressbarWidth); + Out.Replace(_T("[PROGRESSBARWIDTHVAL]"), HTTPTemp); fTotalSize = 0; fTotalTransferred = 0; @@ -2790,7 +2948,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa OutE = pThis->m_Templates.sTransferUpLine; OutE.Replace(_T("[admin]"), (bAdmin) ? _T("admin") : _T("")); - for(int i = 0; i < UploadArray->GetCount(); i++) + for (int i = 0; i < UploadArray->GetCount(); i++) { UploadUsers ulu = (*UploadArray)[i]; HTTPProcessData = OutE; @@ -2825,7 +2983,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa if (!WSuploadColumnHidden[4]) { fTotalSpeed += ulu.nDataRate; - HTTPTemp.Format(_T("%8.2f "), max((double)ulu.nDataRate/1024, 0.0)); + HTTPTemp.Format(_T("%8.2f "), max((double)ulu.nDataRate / 1024, 0.0)); pcTmp = HTTPTemp; } HTTPProcessData.Replace(_T("[4]"), pcTmp); @@ -2835,10 +2993,10 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa Out.Replace(_T("[UploadFilesList]"), sUpList); HTTPTemp.Format(_T("%s / %s"), (LPCTSTR)CastItoXBytes(fTotalSize), (LPCTSTR)CastItoXBytes(fTotalTransferred)); Out.Replace(_T("[TotalUpTransferred]"), HTTPTemp); - HTTPTemp.Format(_T("%8.2f "), max(fTotalSpeed/1024, 0.0)); + HTTPTemp.Format(_T("%8.2f "), max(fTotalSpeed / 1024, 0.0)); Out.Replace(_T("[TotalUpSpeed]"), HTTPTemp); - if(pThis->m_Params.bShowUploadQueue) + if (pThis->m_Params.bShowUploadQueue) { Out.Replace(_T("[UploadQueue]"), pThis->m_Templates.sTransferUpQueueShow); Out.Replace(_T("[UploadQueueList]"), _GetPlainResString(IDS_ONQUEUE)); @@ -2848,7 +3006,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa OutE = pThis->m_Templates.sTransferUpQueueLine; OutE.Replace(_T("[admin]"), (bAdmin) ? _T("admin") : _T("")); - for(int i = 0; i < QueueArray.GetCount(); i++) + for (int i = 0; i < QueueArray.GetCount(); i++) { if (QueueArray[i].sClientExtra == _T("none")) { @@ -2864,7 +3022,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa TCHAR HTTPTempC[100] = _T(""); if (!WSqueueColumnHidden[3]) - _stprintf(HTTPTempC, _T("%i") , QueueArray[i].nScore); + _stprintf(HTTPTempC, _T("%i"), QueueArray[i].nScore); HTTPProcessData.Replace(_T("[Score]"), HTTPTempC); HTTPProcessData.Replace(_T("[ClientState]"), QueueArray[i].sClientState); HTTPProcessData.Replace(_T("[ClientStateSpecial]"), QueueArray[i].sClientStateSpecial); @@ -2880,7 +3038,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa else Out.Replace(_T("[UploadQueue]"), pThis->m_Templates.sTransferUpQueueHide); - if(pThis->m_Params.bShowUploadQueueBanned) + if (pThis->m_Params.bShowUploadQueueBanned) { Out.Replace(_T("[UploadQueueBanned]"), pThis->m_Templates.sTransferUpQueueBannedShow); Out.Replace(_T("[UploadQueueBannedList]"), _GetPlainResString(IDS_BANNED)); @@ -2889,7 +3047,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa OutE = pThis->m_Templates.sTransferUpQueueBannedLine; - for(int i = 0; i < QueueArray.GetCount(); i++) + for (int i = 0; i < QueueArray.GetCount(); i++) { if (QueueArray[i].sClientExtra == _T("banned")) { @@ -2905,7 +3063,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa TCHAR HTTPTempC[100] = _T(""); if (!WSqueueColumnHidden[3]) - _stprintf(HTTPTempC, _T("%i") , QueueArray[i].nScore); + _stprintf(HTTPTempC, _T("%i"), QueueArray[i].nScore); HTTPProcessData.Replace(_T("[Score]"), HTTPTempC); HTTPProcessData.Replace(_T("[ClientState]"), QueueArray[i].sClientState); @@ -2922,7 +3080,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa else Out.Replace(_T("[UploadQueueBanned]"), pThis->m_Templates.sTransferUpQueueBannedHide); - if(pThis->m_Params.bShowUploadQueueFriend) + if (pThis->m_Params.bShowUploadQueueFriend) { Out.Replace(_T("[UploadQueueFriend]"), pThis->m_Templates.sTransferUpQueueFriendShow); Out.Replace(_T("[UploadQueueFriendList]"), _GetPlainResString(IDS_IRC_ADDTOFRIENDLIST)); @@ -2931,7 +3089,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa OutE = pThis->m_Templates.sTransferUpQueueFriendLine; - for(int i = 0; i < QueueArray.GetCount(); i++) + for (int i = 0; i < QueueArray.GetCount(); i++) { if (QueueArray[i].sClientExtra == _T("friend")) { @@ -2947,7 +3105,7 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa TCHAR HTTPTempC[100] = _T(""); if (!WSqueueColumnHidden[3]) - _stprintf(HTTPTempC, _T("%i") , QueueArray[i].nScore); + _stprintf(HTTPTempC, _T("%i"), QueueArray[i].nScore); HTTPProcessData.Replace(_T("[Score]"), HTTPTempC); HTTPProcessData.Replace(_T("[ClientState]"), QueueArray[i].sClientState); @@ -2966,21 +3124,21 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa CString mCounter; - mCounter.Format(_T("%i"),nCountQueue); + mCounter.Format(_T("%i"), nCountQueue); Out.Replace(_T("[CounterQueue]"), mCounter); - mCounter.Format(_T("%i"),nCountQueueBanned); + mCounter.Format(_T("%i"), nCountQueueBanned); Out.Replace(_T("[CounterQueueBanned]"), mCounter); - mCounter.Format(_T("%i"),nCountQueueFriend); + mCounter.Format(_T("%i"), nCountQueueFriend); Out.Replace(_T("[CounterQueueFriend]"), mCounter); - mCounter.Format(_T("%i"),nCountQueueSecure); + mCounter.Format(_T("%i"), nCountQueueSecure); Out.Replace(_T("[CounterQueueSecure]"), mCounter); - mCounter.Format(_T("%i"),nCountQueueBannedSecure); + mCounter.Format(_T("%i"), nCountQueueBannedSecure); Out.Replace(_T("[CounterQueueBannedSecure]"), mCounter); - mCounter.Format(_T("%i"),nCountQueueFriendSecure); + mCounter.Format(_T("%i"), nCountQueueFriendSecure); Out.Replace(_T("[CounterQueueFriendSecure]"), mCounter); - mCounter.Format(_T("%i"),nCountQueue+nCountQueueBanned+nCountQueueFriend); + mCounter.Format(_T("%i"), nCountQueue + nCountQueueBanned + nCountQueueFriend); Out.Replace(_T("[CounterAll]"), mCounter); - mCounter.Format(_T("%i"),nCountQueueSecure+nCountQueueBannedSecure+nCountQueueFriendSecure); + mCounter.Format(_T("%i"), nCountQueueSecure + nCountQueueBannedSecure + nCountQueueFriendSecure); Out.Replace(_T("[CounterAllSecure]"), mCounter); Out.Replace(_T("[ShowUploadQueue]"), _GetPlainResString(IDS_VIEWQUEUE)); Out.Replace(_T("[ShowUploadQueueList]"), _GetPlainResString(IDS_WEB_SHOW_UPLOAD_QUEUE)); @@ -2990,23 +3148,23 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa CString strTmp = (pThis->m_Params.bQueueSortReverse) ? _T("&sortreverse=false") : _T("&sortreverse=true"); - if(pThis->m_Params.QueueSort == QU_SORT_CLIENT) + if (pThis->m_Params.QueueSort == QU_SORT_CLIENT) Out.Replace(_T("[SortQClient]"), strTmp); else Out.Replace(_T("[SortQClient]"), _T("")); - if(pThis->m_Params.QueueSort == QU_SORT_USER) + if (pThis->m_Params.QueueSort == QU_SORT_USER) Out.Replace(_T("[SortQUser]"), strTmp); else Out.Replace(_T("[SortQUser]"), _T("")); - if(pThis->m_Params.QueueSort == QU_SORT_VERSION) + if (pThis->m_Params.QueueSort == QU_SORT_VERSION) Out.Replace(_T("[SortQVersion]"), strTmp); else Out.Replace(_T("[SortQVersion]"), _T("")); - if(pThis->m_Params.QueueSort == QU_SORT_FILENAME) + if (pThis->m_Params.QueueSort == QU_SORT_FILENAME) Out.Replace(_T("[SortQFilename]"), strTmp); else Out.Replace(_T("[SortQFilename]"), _T("")); - if(pThis->m_Params.QueueSort == QU_SORT_SCORE) + if (pThis->m_Params.QueueSort == QU_SORT_SCORE) Out.Replace(_T("[SortQScore]"), strTmp); else Out.Replace(_T("[SortQScore]"), _T("")); @@ -3072,11 +3230,11 @@ CString CWebServer::_CreateTransferList(CString Out, CWebServer *pThis, ThreadDa CString CWebServer::_GetSharedFilesList(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString sSession = _ParseURL(Data.sURL, _T("ses")); - bool bAdmin = IsSessionAdmin(Data,sSession); + bool bAdmin = IsSessionAdmin(Data, sSession); CString strSort = _ParseURL(Data.sURL, _T("sort")); CString strTmp = _ParseURL(Data.sURL, _T("sortreverse")); @@ -3119,11 +3277,11 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) if (!strTmp.IsEmpty()) pThis->m_Params.bSharedSortReverse = (strTmp == _T("true")); - if(!_ParseURL(Data.sURL, _T("hash")).IsEmpty() && !_ParseURL(Data.sURL, _T("prio")).IsEmpty() && IsSessionAdmin(Data,sSession)) + if (!_ParseURL(Data.sURL, _T("hash")).IsEmpty() && !_ParseURL(Data.sURL, _T("prio")).IsEmpty() && IsSessionAdmin(Data, sSession)) { uchar fileid[16]; CString hash = _ParseURL(Data.sURL, _T("hash")); - if (hash.GetLength()==32 && DecodeBase16(hash, hash.GetLength(), fileid, ARRSIZE(fileid))) + if (hash.GetLength() == 32 && DecodeBase16(hash, hash.GetLength(), fileid, ARRSIZE(fileid))) { CKnownFile *cur_file = theApp.sharedfiles->GetFileByID(fileid); @@ -3147,7 +3305,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) cur_file->UpdateAutoUpPriority(); } - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_UPD_SFUPDATE, (LPARAM)cur_file); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPD_SFUPDATE, (LPARAM)cur_file); } } } @@ -3156,104 +3314,104 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) if (sCmd.CompareNoCase(_T("menu")) == 0) { int iMenu = _tstoi(_ParseURL(Data.sURL, _T("m"))); - bool bValue = _tstoi(_ParseURL(Data.sURL, _T("v")))!=0; + bool bValue = _tstoi(_ParseURL(Data.sURL, _T("v"))) != 0; WSsharedColumnHidden[iMenu] = bValue; SaveWIConfigArray(WSsharedColumnHidden, ARRSIZE(WSsharedColumnHidden), _T("sharedColumnHidden")); } - if(_ParseURL(Data.sURL, _T("reload")) == _T("true")) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_SHARED_FILES_RELOAD,0); + if (_ParseURL(Data.sURL, _T("reload")) == _T("true")) + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_SHARED_FILES_RELOAD, 0); CString Out = pThis->m_Templates.sSharedList; - strTmp = (pThis->m_Params.bSharedSortReverse) ? _T("false") : _T("true") ; + strTmp = (pThis->m_Params.bSharedSortReverse) ? _T("false") : _T("true"); //State sorting link - if(pThis->m_Params.SharedSort == SHARED_SORT_STATE) + if (pThis->m_Params.SharedSort == SHARED_SORT_STATE) Out.Replace(_T("[SortState]"), _T("sort=state&sortreverse=") + strTmp); else Out.Replace(_T("[SortState]"), _T("sort=state")); - //Type sorting link - if(pThis->m_Params.SharedSort == SHARED_SORT_TYPE) + //Type sorting link + if (pThis->m_Params.SharedSort == SHARED_SORT_TYPE) Out.Replace(_T("[SortType]"), _T("sort=type&sortreverse=") + strTmp); else Out.Replace(_T("[SortType]"), _T("sort=type")); - //Name sorting link - if(pThis->m_Params.SharedSort == SHARED_SORT_NAME) + //Name sorting link + if (pThis->m_Params.SharedSort == SHARED_SORT_NAME) Out.Replace(_T("[SortName]"), _T("sort=name&sortreverse=") + strTmp); else Out.Replace(_T("[SortName]"), _T("sort=name")); //Size sorting Link - if(pThis->m_Params.SharedSort == SHARED_SORT_SIZE) + if (pThis->m_Params.SharedSort == SHARED_SORT_SIZE) Out.Replace(_T("[SortSize]"), _T("sort=size&sortreverse=") + strTmp); else Out.Replace(_T("[SortSize]"), _T("sort=size")); //Complete Sources sorting Link - if(pThis->m_Params.SharedSort == SHARED_SORT_COMPLETES) + if (pThis->m_Params.SharedSort == SHARED_SORT_COMPLETES) Out.Replace(_T("[SortCompletes]"), _T("sort=completes&sortreverse=") + strTmp); else Out.Replace(_T("[SortCompletes]"), _T("sort=completes")); //Priority sorting Link - if(pThis->m_Params.SharedSort == SHARED_SORT_PRIORITY) + if (pThis->m_Params.SharedSort == SHARED_SORT_PRIORITY) Out.Replace(_T("[SortPriority]"), _T("sort=priority&sortreverse=") + strTmp); else Out.Replace(_T("[SortPriority]"), _T("sort=priority")); - //Transferred sorting link - if(pThis->m_Params.SharedSort == SHARED_SORT_TRANSFERRED) + //Transferred sorting link + if (pThis->m_Params.SharedSort == SHARED_SORT_TRANSFERRED) { - if(pThis->m_Params.bSharedSortReverse) + if (pThis->m_Params.bSharedSortReverse) Out.Replace(_T("[SortTransferred]"), _T("sort=alltimetransferred&sortreverse=") + strTmp); else Out.Replace(_T("[SortTransferred]"), _T("sort=transferred&sortreverse=") + strTmp); } else - if(pThis->m_Params.SharedSort == SHARED_SORT_ALL_TIME_TRANSFERRED) - { - if(pThis->m_Params.bSharedSortReverse) - Out.Replace(_T("[SortTransferred]"), _T("sort=transferred&sortreverse=") + strTmp); + if (pThis->m_Params.SharedSort == SHARED_SORT_ALL_TIME_TRANSFERRED) + { + if (pThis->m_Params.bSharedSortReverse) + Out.Replace(_T("[SortTransferred]"), _T("sort=transferred&sortreverse=") + strTmp); + else + Out.Replace(_T("[SortTransferred]"), _T("sort=alltimetransferred&sortreverse=") + strTmp); + } else - Out.Replace(_T("[SortTransferred]"), _T("sort=alltimetransferred&sortreverse=") + strTmp); - } - else - Out.Replace(_T("[SortTransferred]"), _T("&sort=transferred&sortreverse=false")); - //Request sorting link - if(pThis->m_Params.SharedSort == SHARED_SORT_REQUESTS) + Out.Replace(_T("[SortTransferred]"), _T("&sort=transferred&sortreverse=false")); + //Request sorting link + if (pThis->m_Params.SharedSort == SHARED_SORT_REQUESTS) { - if(pThis->m_Params.bSharedSortReverse) + if (pThis->m_Params.bSharedSortReverse) Out.Replace(_T("[SortRequests]"), _T("sort=alltimerequests&sortreverse=") + strTmp); else Out.Replace(_T("[SortRequests]"), _T("sort=requests&sortreverse=") + strTmp); } else - if(pThis->m_Params.SharedSort == SHARED_SORT_ALL_TIME_REQUESTS) - { - if(pThis->m_Params.bSharedSortReverse) - Out.Replace(_T("[SortRequests]"), _T("sort=requests&sortreverse=") + strTmp); + if (pThis->m_Params.SharedSort == SHARED_SORT_ALL_TIME_REQUESTS) + { + if (pThis->m_Params.bSharedSortReverse) + Out.Replace(_T("[SortRequests]"), _T("sort=requests&sortreverse=") + strTmp); + else + Out.Replace(_T("[SortRequests]"), _T("sort=alltimerequests&sortreverse=") + strTmp); + } else - Out.Replace(_T("[SortRequests]"), _T("sort=alltimerequests&sortreverse=") + strTmp); - } - else - Out.Replace(_T("[SortRequests]"), _T("&sort=requests&sortreverse=false")); - //Accepts sorting link - if(pThis->m_Params.SharedSort == SHARED_SORT_ACCEPTS) + Out.Replace(_T("[SortRequests]"), _T("&sort=requests&sortreverse=false")); + //Accepts sorting link + if (pThis->m_Params.SharedSort == SHARED_SORT_ACCEPTS) { - if(pThis->m_Params.bSharedSortReverse) - Out.Replace(_T("[SortAccepts]"), _T("sort=alltimeaccepts&sortreverse=") + strTmp); + if (pThis->m_Params.bSharedSortReverse) + Out.Replace(_T("[SortAccepts]"), _T("sort=alltimeaccepts&sortreverse=") + strTmp); else Out.Replace(_T("[SortAccepts]"), _T("sort=accepts&sortreverse=") + strTmp); } - else if(pThis->m_Params.SharedSort == SHARED_SORT_ALL_TIME_ACCEPTS) + else if (pThis->m_Params.SharedSort == SHARED_SORT_ALL_TIME_ACCEPTS) { - if(pThis->m_Params.bSharedSortReverse) - Out.Replace(_T("[SortAccepts]"), _T("sort=accepts&sortreverse=") + strTmp); + if (pThis->m_Params.bSharedSortReverse) + Out.Replace(_T("[SortAccepts]"), _T("sort=accepts&sortreverse=") + strTmp); else Out.Replace(_T("[SortAccepts]"), _T("sort=alltimeaccepts&sortreverse=") + strTmp); } else Out.Replace(_T("[SortAccepts]"), _T("&sort=accepts&sortreverse=false")); - if(_ParseURL(Data.sURL, _T("reload")) == _T("true")) + if (_ParseURL(Data.sURL, _T("reload")) == _T("true")) { - CString strResultLog = _SpecialChars(theApp.emuledlg->GetLastLogEntry() ); //Pick-up last line of the log + CString strResultLog = _SpecialChars(theApp.emuledlg->GetLastLogEntry()); //Pick-up last line of the log strResultLog = strResultLog.TrimRight(_T('\n')); int iStringIndex = strResultLog.ReverseFind(_T('\n')); if (iStringIndex != -1) @@ -3291,7 +3449,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) else { Out.Replace(_T("[FileTransferredI]"), _T("")); - Out.Replace(_T("[FileTransferred]"), _T("")); + Out.Replace(_T("[FileTransferred]"), _T("")); } Out.Replace(_T("[FileTransferredM]"), strTmp); @@ -3307,7 +3465,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) else { Out.Replace(_T("[FileRequestsI]"), _T("")); - Out.Replace(_T("[FileRequests]"), _T("")); + Out.Replace(_T("[FileRequests]"), _T("")); } Out.Replace(_T("[FileRequestsM]"), strTmp); @@ -3323,7 +3481,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) else { Out.Replace(_T("[FileAcceptsI]"), _T("")); - Out.Replace(_T("[FileAccepts]"), _T("")); + Out.Replace(_T("[FileAccepts]"), _T("")); } Out.Replace(_T("[FileAcceptsM]"), strTmp); @@ -3349,7 +3507,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) else { Out.Replace(_T("[CompletesI]"), _T("")); - Out.Replace(_T("[Completes]"), _T("")); + Out.Replace(_T("[Completes]"), _T("")); } Out.Replace(_T("[CompletesM]"), strTmp); @@ -3362,7 +3520,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) else { Out.Replace(_T("[PriorityI]"), _T("")); - Out.Replace(_T("[Priority]"), _T("")); + Out.Replace(_T("[Priority]"), _T("")); } Out.Replace(_T("[PriorityM]"), strTmp); @@ -3376,13 +3534,13 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) CArray SharedArray; // Populating array - for (int ix=0;ixGetCount();ix++) + for (int ix = 0; ix < theApp.sharedfiles->GetCount(); ix++) { CCKey bufKey; CKnownFile* cur_file = theApp.sharedfiles->GetFileByIndex(ix); if (!cur_file) continue; -// uint16 nCountLo, nCountHi; + // uint16 nCountLo, nCountHi; uint32 dwResId; bool bPartFile = cur_file->IsPartFile(); @@ -3391,7 +3549,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) //dFile.sFileName = _SpecialChars(cur_file->GetFileName()); dFile.bIsPartFile = cur_file->IsPartFile(); dFile.sFileName = cur_file->GetFileName(); - if(bPartFile) + if (bPartFile) dFile.sFileState = _T("filedown"); else dFile.sFileState = _T("file"); @@ -3443,7 +3601,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) else //PR_VERYLOW dwResId = IDS_PRIOVERYLOW; } - dFile.sFilePriority=GetResString(dwResId); + dFile.sFilePriority = GetResString(dwResId); dFile.nFilePriority = cur_file->GetUpPriority(); dFile.bFileAutoPriority = cur_file->IsAutoUpPriority(); @@ -3453,90 +3611,90 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) // Sorting (simple bubble sort, we don't have tons of data here) bool bSorted = true; - for(int nMax = 0;bSorted && nMax < SharedArray.GetCount()*2; nMax++) + for (int nMax = 0; bSorted && nMax < SharedArray.GetCount() * 2; nMax++) { bSorted = false; - for(int i = 0; i < SharedArray.GetCount() - 1; i++) + for (int i = 0; i < SharedArray.GetCount() - 1; i++) { bool bSwap = false; - switch(pThis->m_Params.SharedSort) + switch (pThis->m_Params.SharedSort) { case SHARED_SORT_STATE: - bSwap = SharedArray[i].sFileState.CompareNoCase(SharedArray[i+1].sFileState) > 0; + bSwap = SharedArray[i].sFileState.CompareNoCase(SharedArray[i + 1].sFileState) > 0; break; case SHARED_SORT_TYPE: - bSwap = SharedArray[i].sFileType.CompareNoCase(SharedArray[i+1].sFileType) > 0; + bSwap = SharedArray[i].sFileType.CompareNoCase(SharedArray[i + 1].sFileType) > 0; break; case SHARED_SORT_NAME: - bSwap = SharedArray[i].sFileName.CompareNoCase(SharedArray[i+1].sFileName) < 0; + bSwap = SharedArray[i].sFileName.CompareNoCase(SharedArray[i + 1].sFileName) < 0; break; case SHARED_SORT_SIZE: - bSwap = SharedArray[i].m_qwFileSize < SharedArray[i+1].m_qwFileSize; + bSwap = SharedArray[i].m_qwFileSize < SharedArray[i + 1].m_qwFileSize; break; case SHARED_SORT_TRANSFERRED: - bSwap = SharedArray[i].nFileTransferred < SharedArray[i+1].nFileTransferred; + bSwap = SharedArray[i].nFileTransferred < SharedArray[i + 1].nFileTransferred; break; case SHARED_SORT_ALL_TIME_TRANSFERRED: - bSwap = SharedArray[i].nFileAllTimeTransferred < SharedArray[i+1].nFileAllTimeTransferred; + bSwap = SharedArray[i].nFileAllTimeTransferred < SharedArray[i + 1].nFileAllTimeTransferred; break; case SHARED_SORT_REQUESTS: - bSwap = SharedArray[i].nFileRequests < SharedArray[i+1].nFileRequests; + bSwap = SharedArray[i].nFileRequests < SharedArray[i + 1].nFileRequests; break; case SHARED_SORT_ALL_TIME_REQUESTS: - bSwap = SharedArray[i].nFileAllTimeRequests < SharedArray[i+1].nFileAllTimeRequests; + bSwap = SharedArray[i].nFileAllTimeRequests < SharedArray[i + 1].nFileAllTimeRequests; break; case SHARED_SORT_ACCEPTS: - bSwap = SharedArray[i].nFileAccepts < SharedArray[i+1].nFileAccepts; + bSwap = SharedArray[i].nFileAccepts < SharedArray[i + 1].nFileAccepts; break; case SHARED_SORT_ALL_TIME_ACCEPTS: - bSwap = SharedArray[i].nFileAllTimeAccepts < SharedArray[i+1].nFileAllTimeAccepts; + bSwap = SharedArray[i].nFileAllTimeAccepts < SharedArray[i + 1].nFileAllTimeAccepts; break; case SHARED_SORT_COMPLETES: - bSwap = SharedArray[i].dblFileCompletes < SharedArray[i+1].dblFileCompletes; + bSwap = SharedArray[i].dblFileCompletes < SharedArray[i + 1].dblFileCompletes; break; case SHARED_SORT_PRIORITY: //Very low priority is define equal to 4 ! Must adapte sorting code - if(SharedArray[i].nFilePriority == 4) + if (SharedArray[i].nFilePriority == 4) { - if(SharedArray[i+1].nFilePriority == 4) + if (SharedArray[i + 1].nFilePriority == 4) bSwap = false; else bSwap = true; } - else if(SharedArray[i+1].nFilePriority == 4) - { - if(SharedArray[i].nFilePriority == 4) - bSwap = true; - else - bSwap = false; - } + else if (SharedArray[i + 1].nFilePriority == 4) + { + if (SharedArray[i].nFilePriority == 4) + bSwap = true; else - bSwap = SharedArray[i].nFilePriority < SharedArray[i+1].nFilePriority; + bSwap = false; + } + else + bSwap = SharedArray[i].nFilePriority < SharedArray[i + 1].nFilePriority; break; } - if(pThis->m_Params.bSharedSortReverse) + if (pThis->m_Params.bSharedSortReverse) bSwap = !bSwap; - if(bSwap) + if (bSwap) { bSorted = true; SharedFiles TmpFile = SharedArray[i]; - SharedArray[i] = SharedArray[i+1]; - SharedArray[i+1] = TmpFile; + SharedArray[i] = SharedArray[i + 1]; + SharedArray[i + 1] = TmpFile; } } } // Displaying CString sSharedList, HTTPProcessData; - for(int i = 0; i < SharedArray.GetCount(); i++) + for (int i = 0; i < SharedArray.GetCount(); i++) { TCHAR HTTPTempC[100] = _T(""); HTTPProcessData = OutE; - if (SharedArray[i].sFileHash == _ParseURL(Data.sURL,_T("hash")) ) - HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked")); + if (SharedArray[i].sFileHash == _ParseURL(Data.sURL, _T("hash"))) + HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked")); else - HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked_no")); + HTTPProcessData.Replace(_T("[LastChangedDataset]"), _T("checked_no")); CString ed2k; //ed2klink CString session; //session @@ -3544,39 +3702,39 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) CString fname; //filename CString sharedpriority; //priority - switch(SharedArray[i].nFilePriority) + switch (SharedArray[i].nFilePriority) { - case PR_VERYLOW: - sharedpriority = _T("VeryLow"); - break; - case PR_LOW: - sharedpriority = _T("Low"); - break; - case PR_NORMAL: - sharedpriority = _T("Normal"); - break; - case PR_HIGH: - sharedpriority = _T("High"); - break; - case PR_VERYHIGH: - sharedpriority = _T("Release"); - break; + case PR_VERYLOW: + sharedpriority = _T("VeryLow"); + break; + case PR_LOW: + sharedpriority = _T("Low"); + break; + case PR_NORMAL: + sharedpriority = _T("Normal"); + break; + case PR_HIGH: + sharedpriority = _T("High"); + break; + case PR_VERYHIGH: + sharedpriority = _T("Release"); + break; } if (SharedArray[i].bFileAutoPriority) sharedpriority = _T("Auto"); - CString JSED2kLink=SharedArray[i].sED2kLink; - JSED2kLink.Replace(_T("'"),_T("’")); + CString JSED2kLink = SharedArray[i].sED2kLink; + JSED2kLink.Replace(_T("'"), _T("’")); ed2k = JSED2kLink; session = sSession; hash = SharedArray[i].sFileHash; fname = SharedArray[i].sFileName; - fname.Replace(_T("'"),_T("’")); + fname.Replace(_T("'"), _T("’")); bool downloadable = false; - uchar fileid[16] = {0}; - if (hash.GetLength()==32 && DecodeBase16(hash, hash.GetLength(), fileid, ARRSIZE(fileid))) + uchar fileid[16] = { 0 }; + if (hash.GetLength() == 32 && DecodeBase16(hash, hash.GetLength(), fileid, ARRSIZE(fileid))) { HTTPProcessData.Replace(_T("[hash]"), hash); CKnownFile* cur_file = theApp.sharedfiles->GetFileByID(fileid); @@ -3586,7 +3744,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) HTTPProcessData.Replace(_T("[FileIsPriority]"), _T("release")); else HTTPProcessData.Replace(_T("[FileIsPriority]"), _T("none")); - downloadable = !cur_file->IsPartFile() && (thePrefs.GetMaxWebUploadFileSizeMB() == 0 || SharedArray[i].m_qwFileSize < ((uint64)thePrefs.GetMaxWebUploadFileSizeMB())*1024*1024); + downloadable = !cur_file->IsPartFile() && (thePrefs.GetMaxWebUploadFileSizeMB() == 0 || SharedArray[i].m_qwFileSize < ((uint64)thePrefs.GetMaxWebUploadFileSizeMB()) * 1024 * 1024); } } @@ -3601,16 +3759,16 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) HTTPProcessData.Replace(_T("[FileState]"), SharedArray[i].sFileState); - HTTPProcessData.Replace(_T("[Downloadable]"), downloadable?_T("yes"):_T("no") ); + HTTPProcessData.Replace(_T("[Downloadable]"), downloadable ? _T("yes") : _T("no")); - HTTPProcessData.Replace(_T("[IFDOWNLOADABLE]"), downloadable?_T(""):_T("") ); + HTTPProcessData.Replace(_T("[IFDOWNLOADABLE]"), downloadable ? _T("") : _T("")); if (!WSsharedColumnHidden[0]) { - if(SharedArray[i].sFileName.GetLength() > SHORT_LENGTH) - HTTPProcessData.Replace(_T("[ShortFileName]"), _SpecialChars(SharedArray[i].sFileName.Left(SHORT_LENGTH-3)) + _T("...")); + if (SharedArray[i].sFileName.GetLength() > SHORT_LENGTH) + HTTPProcessData.Replace(_T("[ShortFileName]"), _SpecialChars(SharedArray[i].sFileName.Left(SHORT_LENGTH - 3)) + _T("...")); else HTTPProcessData.Replace(_T("[ShortFileName]"), _SpecialChars(SharedArray[i].sFileName)); } @@ -3619,7 +3777,7 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) if (!WSsharedColumnHidden[1]) { HTTPProcessData.Replace(_T("[FileTransferred]"), CastItoXBytes(SharedArray[i].nFileTransferred)); - HTTPProcessData.Replace(_T("[FileAllTimeTransferred]"), _T(" (") +CastItoXBytes(SharedArray[i].nFileAllTimeTransferred)+_T(")") ); + HTTPProcessData.Replace(_T("[FileAllTimeTransferred]"), _T(" (") + CastItoXBytes(SharedArray[i].nFileAllTimeTransferred) + _T(")")); } else { @@ -3678,18 +3836,18 @@ CString CWebServer::_GetSharedFilesList(ThreadData Data) CString CWebServer::_GetGraphs(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString Out = pThis->m_Templates.sGraphs; CString strGraphDownload, strGraphUpload, strGraphCons; - for(int i = 0; i < WEB_GRAPH_WIDTH; i++) + for (int i = 0; i < WEB_GRAPH_WIDTH; i++) { - if(i < pThis->m_Params.PointsForWeb.GetCount()) + if (i < pThis->m_Params.PointsForWeb.GetCount()) { - if(i != 0) + if (i != 0) { strGraphDownload += _T(','); strGraphUpload += _T(','); @@ -3697,10 +3855,10 @@ CString CWebServer::_GetGraphs(ThreadData Data) } const UpDown& pt = pThis->m_Params.PointsForWeb[i]; // download - strGraphDownload.AppendFormat(_T("%u"), (uint32)(pt.download*1024)); + strGraphDownload.AppendFormat(_T("%u"), (uint32)(pt.download * 1024)); // upload - strGraphUpload.AppendFormat(_T("%u"), (uint32)(pt.upload*1024)); + strGraphUpload.AppendFormat(_T("%u"), (uint32)(pt.upload * 1024)); // connections strGraphCons.AppendFormat(_T("%u"), (uint32)(pt.connections)); @@ -3712,7 +3870,7 @@ CString CWebServer::_GetGraphs(ThreadData Data) Out.Replace(_T("[GraphConnections]"), strGraphCons); Out.Replace(_T("[TxtDownload]"), _GetPlainResString(IDS_TW_DOWNLOADS)); - Out.Replace(_T("[TxtUpload]"), _GetPlainResString(IDS_TW_UPLOADS)); + Out.Replace(_T("[TxtUpload]"), _GetPlainResString(IDS_TW_UPLOADS)); Out.Replace(_T("[TxtTime]"), _GetPlainResString(IDS_TIME)); Out.Replace(_T("[KByteSec]"), _GetPlainResString(IDS_KBYTESPERSEC)); Out.Replace(_T("[TxtConnections]"), _GetPlainResString(IDS_SP_ACTCON)); @@ -3720,11 +3878,11 @@ CString CWebServer::_GetGraphs(ThreadData Data) Out.Replace(_T("[ScaleTime]"), (LPCTSTR)CastSecondsToHM(((time_t)thePrefs.GetTrafficOMeterInterval()) * WEB_GRAPH_WIDTH)); CString s1; - s1.Format(_T("%i"), thePrefs.GetMaxGraphDownloadRate()+4 ); + s1.Format(_T("%i"), thePrefs.GetMaxGraphDownloadRate() + 4); Out.Replace(_T("[MaxDownload]"), s1); - s1.Format(_T("%i"), thePrefs.GetMaxGraphUploadRate(true)+4 ); + s1.Format(_T("%i"), thePrefs.GetMaxGraphUploadRate(true) + 4); Out.Replace(_T("[MaxUpload]"), s1); - s1.Format(_T("%u"), thePrefs.GetMaxConnections()+20); + s1.Format(_T("%u"), thePrefs.GetMaxConnections() + 20); Out.Replace(_T("[MaxConnections]"), s1); return Out; @@ -3733,18 +3891,18 @@ CString CWebServer::_GetGraphs(ThreadData Data) CString CWebServer::_GetAddServerBox(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString sSession = _ParseURL(Data.sURL, _T("ses")); - if (!IsSessionAdmin(Data,sSession)) + if (!IsSessionAdmin(Data, sSession)) return _T(""); - CString resultlog = _SpecialChars(theApp.emuledlg->GetLastLogEntry() ); //Pick-up last line of the log + CString resultlog = _SpecialChars(theApp.emuledlg->GetLastLogEntry()); //Pick-up last line of the log CString Out = pThis->m_Templates.sAddServerBox; - if(_ParseURL(Data.sURL, _T("addserver")) == _T("true")) + if (_ParseURL(Data.sURL, _T("addserver")) == _T("true")) { CString strServerAddress = _ParseURL(Data.sURL, _T("serveraddr")).Trim(); CString strServerPort = _ParseURL(Data.sURL, _T("serverport")).Trim(); @@ -3755,10 +3913,11 @@ CString CWebServer::_GetAddServerBox(ThreadData Data) strServerName = strServerAddress; CServer* nsrv = new CServer((uint16)_tstoi(strServerPort), strServerAddress); nsrv->SetListName(strServerName); - if (!theApp.emuledlg->serverwnd->serverlistctrl.AddServer(nsrv,true)) { + if (!theApp.emuledlg->serverwnd->serverlistctrl.AddServer(nsrv, true)) { delete nsrv; Out.Replace(_T("[Message]"), _GetPlainResString(IDS_ERROR)); - } else { + } + else { if (_ParseURL(Data.sURL, _T("priority")) == _T("low")) nsrv->SetPreference(PR_LOW); else if (_ParseURL(Data.sURL, _T("priority")) == _T("normal")) @@ -3766,39 +3925,39 @@ CString CWebServer::_GetAddServerBox(ThreadData Data) else if (_ParseURL(Data.sURL, _T("priority")) == _T("high")) nsrv->SetPreference(PR_HIGH); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATESERVER,(LPARAM)nsrv); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATESERVER, (LPARAM)nsrv); - if(_ParseURL(Data.sURL, _T("addtostatic")) == _T("true")) + if (_ParseURL(Data.sURL, _T("addtostatic")) == _T("true")) { - _AddToStatic(_ParseURL(Data.sURL, _T("serveraddr")),_tstoi(_ParseURL(Data.sURL, _T("serverport")))); + _AddToStatic(_ParseURL(Data.sURL, _T("serveraddr")), _tstoi(_ParseURL(Data.sURL, _T("serverport")))); resultlog += _T("
"); - resultlog += _SpecialChars(theApp.emuledlg->GetLastLogEntry() ); //Pick-up last line of the log + resultlog += _SpecialChars(theApp.emuledlg->GetLastLogEntry()); //Pick-up last line of the log } resultlog = resultlog.TrimRight(_T('\n')); resultlog = resultlog.Mid(resultlog.ReverseFind(_T('\n'))); Out.Replace(_T("[Message]"), resultlog); - if(_ParseURL(Data.sURL, _T("connectnow")) == _T("true")) - _ConnectToServer(_ParseURL(Data.sURL, _T("serveraddr")),_tstoi(_ParseURL(Data.sURL, _T("serverport")))); + if (_ParseURL(Data.sURL, _T("connectnow")) == _T("true")) + _ConnectToServer(_ParseURL(Data.sURL, _T("serveraddr")), _tstoi(_ParseURL(Data.sURL, _T("serverport")))); } } else Out.Replace(_T("[Message]"), _GetPlainResString(IDS_ERROR)); } - else if(_ParseURL(Data.sURL, _T("updateservermetfromurl")) == _T("true")) + else if (_ParseURL(Data.sURL, _T("updateservermetfromurl")) == _T("true")) { - CString url=_ParseURL(Data.sURL, _T("servermeturl")); - const TCHAR* urlbuf=url; + CString url = _ParseURL(Data.sURL, _T("servermeturl")); + const TCHAR* urlbuf = url; SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATESERVERMETFROMURL, (LPARAM)urlbuf); resultlog = _SpecialChars(theApp.emuledlg->GetLastLogEntry()); resultlog = resultlog.TrimRight(_T('\n')); resultlog = resultlog.Mid(resultlog.ReverseFind(_T('\n'))); - Out.Replace(_T("[Message]"),resultlog); + Out.Replace(_T("[Message]"), resultlog); } else Out.Replace(_T("[Message]"), _T("")); - Out.Replace(_T("[AddServer]"), _GetPlainResString(IDS_SV_NEWSERVER)); + Out.Replace(_T("[AddServer]"), _GetPlainResString(IDS_SV_NEWSERVER)); Out.Replace(_T("[IP]"), _GetPlainResString(IDS_SV_ADDRESS)); Out.Replace(_T("[Port]"), _GetPlainResString(IDS_PORT)); Out.Replace(_T("[Name]"), _GetPlainResString(IDS_SW_NAME)); @@ -3812,8 +3971,8 @@ CString CWebServer::_GetAddServerBox(ThreadData Data) Out.Replace(_T("[UpdateServerMetFromURL]"), _GetPlainResString(IDS_SV_MET)); Out.Replace(_T("[URL]"), _GetPlainResString(IDS_SV_URL)); Out.Replace(_T("[Apply]"), _GetPlainResString(IDS_PW_APPLY)); - Out.Replace(_T("[URL_Disconnect]"), IsSessionAdmin(Data,sSession)?CString(_T("?ses=") + sSession + _T("&w=server&c=disconnect")):GetPermissionDenied()); - Out.Replace(_T("[URL_Connect]"), IsSessionAdmin(Data,sSession)?CString(_T("?ses=") + sSession + _T("&w=server&c=connect")):GetPermissionDenied()); + Out.Replace(_T("[URL_Disconnect]"), IsSessionAdmin(Data, sSession) ? CString(_T("?ses=") + sSession + _T("&w=server&c=disconnect")) : GetPermissionDenied()); + Out.Replace(_T("[URL_Connect]"), IsSessionAdmin(Data, sSession) ? CString(_T("?ses=") + sSession + _T("&w=server&c=connect")) : GetPermissionDenied()); Out.Replace(_T("[Disconnect]"), _GetPlainResString(IDS_IRC_DISCONNECT)); Out.Replace(_T("[Connect]"), _GetPlainResString(IDS_CONNECTTOANYSERVER)); Out.Replace(_T("[ServerOptions]"), _GetPlainResString(IDS_FSTAT_CONNECTION)); @@ -3825,7 +3984,7 @@ CString CWebServer::_GetAddServerBox(ThreadData Data) CString CWebServer::_GetLog(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); @@ -3833,11 +3992,11 @@ CString CWebServer::_GetLog(ThreadData Data) CString Out = pThis->m_Templates.sLog; - if (_ParseURL(Data.sURL, _T("clear")) == _T("yes") && IsSessionAdmin(Data,sSession)) + if (_ParseURL(Data.sURL, _T("clear")) == _T("yes") && IsSessionAdmin(Data, sSession)) theApp.emuledlg->ResetLog(); Out.Replace(_T("[Clear]"), _GetPlainResString(IDS_PW_RESET)); - Out.Replace(_T("[Log]"), _SpecialChars(theApp.emuledlg->GetAllLogEntries(),false)+ _T("
") ); + Out.Replace(_T("[Log]"), _SpecialChars(theApp.emuledlg->GetAllLogEntries(), false) + _T("
")); Out.Replace(_T("[Session]"), sSession); return Out; @@ -3847,18 +4006,18 @@ CString CWebServer::_GetLog(ThreadData Data) CString CWebServer::_GetServerInfo(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString sSession = _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sServerInfo; - if (_ParseURL(Data.sURL, _T("clear")) == _T("yes") && IsSessionAdmin(Data,sSession)) + if (_ParseURL(Data.sURL, _T("clear")) == _T("yes") && IsSessionAdmin(Data, sSession)) theApp.emuledlg->ResetServerInfo(); Out.Replace(_T("[Clear]"), _GetPlainResString(IDS_PW_RESET)); - Out.Replace(_T("[ServerInfo]"), _SpecialChars(theApp.emuledlg->GetServerInfoText(),false )+ _T("
") ); + Out.Replace(_T("[ServerInfo]"), _SpecialChars(theApp.emuledlg->GetServerInfoText(), false) + _T("
")); Out.Replace(_T("[Session]"), sSession); return Out; @@ -3867,18 +4026,18 @@ CString CWebServer::_GetServerInfo(ThreadData Data) CString CWebServer::_GetDebugLog(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString sSession = _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sDebugLog; - if (_ParseURL(Data.sURL, _T("clear")) == _T("yes") && IsSessionAdmin(Data,sSession)) + if (_ParseURL(Data.sURL, _T("clear")) == _T("yes") && IsSessionAdmin(Data, sSession)) theApp.emuledlg->ResetDebugLog(); Out.Replace(_T("[Clear]"), _GetPlainResString(IDS_PW_RESET)); - Out.Replace(_T("[DebugLog]"), _SpecialChars(theApp.emuledlg->GetAllDebugLogEntries() ,false)+ _T("
") ); + Out.Replace(_T("[DebugLog]"), _SpecialChars(theApp.emuledlg->GetAllDebugLogEntries(), false) + _T("
")); Out.Replace(_T("[Session]"), sSession); return Out; @@ -3887,13 +4046,13 @@ CString CWebServer::_GetDebugLog(ThreadData Data) CString CWebServer::_GetMyInfo(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sMyInfoLog; - Out.Replace(_T("[MYINFOLOG]"), theApp.emuledlg->serverwnd->GetMyInfoString() ); + Out.Replace(_T("[MYINFOLOG]"), theApp.emuledlg->serverwnd->GetMyInfoString()); return Out; } @@ -3901,7 +4060,7 @@ CString CWebServer::_GetMyInfo(const ThreadData& Data) CString CWebServer::_GetKadDlg(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); //if (!thePrefs.GetNetworkKademlia()) { @@ -3913,51 +4072,54 @@ CString CWebServer::_GetKadDlg(ThreadData Data) CString sSession = _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sKad; - if (!_ParseURL(Data.sURL, _T("bootstrap")).IsEmpty() && IsSessionAdmin(Data,sSession)) { - CString dest=_ParseURL(Data.sURL, _T("ip")); - CString ip=_ParseURL(Data.sURL, _T("port")); - dest.Append(_T(":")+ip); - const TCHAR* ipbuf=dest; - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_KAD_BOOTSTRAP, (LPARAM)ipbuf ); + if (!_ParseURL(Data.sURL, _T("bootstrap")).IsEmpty() && IsSessionAdmin(Data, sSession)) { + CString dest = _ParseURL(Data.sURL, _T("ip")); + CString ip = _ParseURL(Data.sURL, _T("port")); + dest.Append(_T(":") + ip); + const TCHAR* ipbuf = dest; + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_KAD_BOOTSTRAP, (LPARAM)ipbuf); } - if (_ParseURL(Data.sURL, _T("c")) == _T("connect") && IsSessionAdmin(Data,sSession) ) { - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_KAD_START, 0 ); + if (_ParseURL(Data.sURL, _T("c")) == _T("connect") && IsSessionAdmin(Data, sSession)) { + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_KAD_START, 0); } - if (_ParseURL(Data.sURL, _T("c")) == _T("disconnect") && IsSessionAdmin(Data,sSession) ) { - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_KAD_STOP, 0 ); + if (_ParseURL(Data.sURL, _T("c")) == _T("disconnect") && IsSessionAdmin(Data, sSession)) { + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_KAD_STOP, 0); } - if (_ParseURL(Data.sURL, _T("c")) == _T("rcfirewall") && IsSessionAdmin(Data,sSession) ) { - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_KAD_RCFW, 0 ); + if (_ParseURL(Data.sURL, _T("c")) == _T("rcfirewall") && IsSessionAdmin(Data, sSession)) { + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_KAD_RCFW, 0); } // check the condition if bootstrap is possible if ( /*Kademlia::CKademlia::IsRunning() && */ !Kademlia::CKademlia::IsConnected()) { - Out.Replace(_T("[BOOTSTRAPLINE]"), pThis->m_Templates.sBootstrapLine ); - } else - Out.Replace(_T("[BOOTSTRAPLINE]"), _T("") ); + Out.Replace(_T("[BOOTSTRAPLINE]"), pThis->m_Templates.sBootstrapLine); + } + else + Out.Replace(_T("[BOOTSTRAPLINE]"), _T("")); // Infos CString buffer; if (Kademlia::CKademlia::IsConnected()) { if (Kademlia::CKademlia::IsFirewalled()) { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_FIREWALLED)); - buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_KAD_RECHECKFW) ); - buffer.AppendFormat(_T("
%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); - } else { + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_KAD_RECHECKFW)); + buffer.AppendFormat(_T("
%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT)); + } + else { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_CONNECTED)); - buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT)); } } else { if (Kademlia::CKademlia::IsRunning()) { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_CONNECTING)); - buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT) ); - } else { + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_DISCONNECT)); + } + else { Out.Replace(_T("[KADSTATUS]"), GetResString(IDS_DISCONNECTED)); - buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_CONNECT) ); + buffer.Format(_T("%s"), (LPCTSTR)sSession, (LPCTSTR)GetResString(IDS_IRC_CONNECT)); } } Out.Replace(_T("[KADACTION]"), buffer); @@ -3965,19 +4127,19 @@ CString CWebServer::_GetKadDlg(ThreadData Data) // kadstats // labels buffer.Format(_T("%s
%s"), (LPCTSTR)GetResString(IDS_KADCONTACTLAB), (LPCTSTR)GetResString(IDS_KADSEARCHLAB)); //foxx88 - Out.Replace(_T("[KADSTATSLABELS]"),buffer); + Out.Replace(_T("[KADSTATSLABELS]"), buffer); // numbers - buffer.Format(_T("%u
%i"), theApp.emuledlg->kademliawnd->GetContactCount(), - theApp.emuledlg->kademliawnd->searchList->GetItemCount()); - Out.Replace(_T("[KADSTATSDATA]"),buffer); - - Out.Replace(_T("[BS_IP]"),GetResString(IDS_IP)); - Out.Replace(_T("[BS_PORT]"),GetResString(IDS_PORT)); - Out.Replace(_T("[BOOTSTRAP]"),GetResString(IDS_BOOTSTRAP)); - Out.Replace(_T("[KADSTAT]"),GetResString(IDS_STATSSETUPINFO)); - Out.Replace(_T("[STATUS]"),GetResString(IDS_STATUS)); - Out.Replace(_T("[KAD]"),GetResString(IDS_KADEMLIA)); + buffer.Format(_T("%u
%i"), theApp.emuledlg->kademliawnd->GetContactCount(), + theApp.emuledlg->kademliawnd->searchList->GetItemCount()); + Out.Replace(_T("[KADSTATSDATA]"), buffer); + + Out.Replace(_T("[BS_IP]"), GetResString(IDS_IP)); + Out.Replace(_T("[BS_PORT]"), GetResString(IDS_PORT)); + Out.Replace(_T("[BOOTSTRAP]"), GetResString(IDS_BOOTSTRAP)); + Out.Replace(_T("[KADSTAT]"), GetResString(IDS_STATSSETUPINFO)); + Out.Replace(_T("[STATUS]"), GetResString(IDS_STATUS)); + Out.Replace(_T("[KAD]"), GetResString(IDS_KADEMLIA)); Out.Replace(_T("[Session]"), sSession); return Out; @@ -3986,13 +4148,13 @@ CString CWebServer::_GetKadDlg(ThreadData Data) CString CWebServer::_GetStats(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); (void)_ParseURL(Data.sURL, _T("ses")); // refresh statistics - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_SHOWSTATISTICS, 1); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_SHOWSTATISTICS, 1); CString Out = pThis->m_Templates.sStats; // eklmn: new stats @@ -4004,7 +4166,7 @@ CString CWebServer::_GetStats(ThreadData Data) CString CWebServer::_GetPreferences(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString sSession = _ParseURL(Data.sURL, _T("ses")); @@ -4012,22 +4174,22 @@ CString CWebServer::_GetPreferences(ThreadData Data) CString Out = pThis->m_Templates.sPreferences; Out.Replace(_T("[Session]"), sSession); - if ((_ParseURL(Data.sURL, _T("saveprefs")) == _T("true")) && IsSessionAdmin(Data,sSession) ) + if ((_ParseURL(Data.sURL, _T("saveprefs")) == _T("true")) && IsSessionAdmin(Data, sSession)) { - if(_ParseURL(Data.sURL, _T("gzip")) == _T("true") || _ParseURL(Data.sURL, _T("gzip")).MakeLower() == _T("on")) + if (_ParseURL(Data.sURL, _T("gzip")) == _T("true") || _ParseURL(Data.sURL, _T("gzip")).MakeLower() == _T("on")) thePrefs.SetWebUseGzip(true); - if(_ParseURL(Data.sURL, _T("gzip")) == _T("false") || _ParseURL(Data.sURL, _T("gzip")).IsEmpty()) + if (_ParseURL(Data.sURL, _T("gzip")) == _T("false") || _ParseURL(Data.sURL, _T("gzip")).IsEmpty()) thePrefs.SetWebUseGzip(false); - if(!_ParseURL(Data.sURL, _T("refresh")).IsEmpty()) + if (!_ParseURL(Data.sURL, _T("refresh")).IsEmpty()) thePrefs.SetWebPageRefresh(_tstoi(_ParseURL(Data.sURL, _T("refresh")))); CString strTmp = _ParseURL(Data.sURL, _T("maxcapdown")); - if(!strTmp.IsEmpty()) - thePrefs.SetMaxGraphDownloadRate( _tstoi(strTmp)); + if (!strTmp.IsEmpty()) + thePrefs.SetMaxGraphDownloadRate(_tstoi(strTmp)); strTmp = _ParseURL(Data.sURL, _T("maxcapup")); - if(!strTmp.IsEmpty()) - thePrefs.SetMaxGraphUploadRate( _tstoi(strTmp)); + if (!strTmp.IsEmpty()) + thePrefs.SetMaxGraphUploadRate(_tstoi(strTmp)); uint32 dwSpeed; @@ -4035,25 +4197,25 @@ CString CWebServer::_GetPreferences(ThreadData Data) if (!strTmp.IsEmpty()) { dwSpeed = _tstoi(strTmp); - thePrefs.SetMaxDownload(dwSpeed>0?dwSpeed:UNLIMITED); + thePrefs.SetMaxDownload(dwSpeed > 0 ? dwSpeed : UNLIMITED); } strTmp = _ParseURL(Data.sURL, _T("maxup")); if (!strTmp.IsEmpty()) { dwSpeed = _tstoi(strTmp); - thePrefs.SetMaxUpload(dwSpeed>0?dwSpeed:UNLIMITED); + thePrefs.SetMaxUpload(dwSpeed > 0 ? dwSpeed : UNLIMITED); } - if(!_ParseURL(Data.sURL, _T("maxsources")).IsEmpty()) + if (!_ParseURL(Data.sURL, _T("maxsources")).IsEmpty()) thePrefs.SetMaxSourcesPerFile(_tstoi(_ParseURL(Data.sURL, _T("maxsources")))); - if(!_ParseURL(Data.sURL, _T("maxconnections")).IsEmpty()) + if (!_ParseURL(Data.sURL, _T("maxconnections")).IsEmpty()) thePrefs.SetMaxConnections(_tstoi(_ParseURL(Data.sURL, _T("maxconnections")))); - if(!_ParseURL(Data.sURL, _T("maxconnectionsperfive")).IsEmpty()) + if (!_ParseURL(Data.sURL, _T("maxconnectionsperfive")).IsEmpty()) thePrefs.SetMaxConsPerFive(_tstoi(_ParseURL(Data.sURL, _T("maxconnectionsperfive")))); } // Fill form - if(thePrefs.GetWebUseGzip()) + if (thePrefs.GetWebUseGzip()) Out.Replace(_T("[UseGzipVal]"), _T("checked")); else Out.Replace(_T("[UseGzipVal]"), _T("")); @@ -4072,11 +4234,11 @@ CString CWebServer::_GetPreferences(ThreadData Data) sRefresh.Format(_T("%u"), thePrefs.GetMaxConperFive()); Out.Replace(_T("[MaxConnectionsPer5Val]"), sRefresh); - Out.Replace(_T("[KBS]"), _GetPlainResString(IDS_KBYTESPERSEC)+_T(":")); - Out.Replace(_T("[LimitForm]"), _GetPlainResString(IDS_WEB_CONLIMITS)+_T(":")); - Out.Replace(_T("[MaxSources]"), _GetPlainResString(IDS_PW_MAXSOURCES)+_T(":")); - Out.Replace(_T("[MaxConnections]"), _GetPlainResString(IDS_PW_MAXC)+_T(":")); - Out.Replace(_T("[MaxConnectionsPer5]"), _GetPlainResString(IDS_MAXCON5SECLABEL)+_T(":")); + Out.Replace(_T("[KBS]"), _GetPlainResString(IDS_KBYTESPERSEC) + _T(":")); + Out.Replace(_T("[LimitForm]"), _GetPlainResString(IDS_WEB_CONLIMITS) + _T(":")); + Out.Replace(_T("[MaxSources]"), _GetPlainResString(IDS_PW_MAXSOURCES) + _T(":")); + Out.Replace(_T("[MaxConnections]"), _GetPlainResString(IDS_PW_MAXC) + _T(":")); + Out.Replace(_T("[MaxConnectionsPer5]"), _GetPlainResString(IDS_MAXCON5SECLABEL) + _T(":")); Out.Replace(_T("[UseGzipForm]"), _GetPlainResString(IDS_WEB_GZIP_COMPRESSION)); Out.Replace(_T("[UseGzipComment]"), _GetPlainResString(IDS_WEB_GZIP_COMMENT)); @@ -4090,11 +4252,11 @@ CString CWebServer::_GetPreferences(ThreadData Data) Out.Replace(_T("[MaxDown]"), _GetPlainResString(IDS_PW_CON_DOWNLBL)); Out.Replace(_T("[MaxUp]"), _GetPlainResString(IDS_PW_CON_UPLBL)); Out.Replace(_T("[WebControl]"), _GetPlainResString(IDS_WEB_CONTROL)); - Out.Replace(_T("[eMuleAppName]"), _T("eMule") ); + Out.Replace(_T("[eMuleAppName]"), _T("eMule")); Out.Replace(_T("[Apply]"), _GetPlainResString(IDS_PW_APPLY)); CString m_sTestURL; - m_sTestURL.Format(PORTTESTURL, thePrefs.GetPort(),thePrefs.GetUDPPort(), thePrefs.GetLanguageID() ); + m_sTestURL.Format(PORTTESTURL, thePrefs.GetPort(), thePrefs.GetUDPPort(), thePrefs.GetLanguageID()); // the portcheck will need to do an obfuscated callback too if obfuscation is requested, so we have to provide our userhash so it can create the key if (thePrefs.IsClientCryptLayerRequested()) @@ -4105,16 +4267,16 @@ CString CWebServer::_GetPreferences(ThreadData Data) CString sT; - sT.Format(_T("%u"), thePrefs.GetMaxDownload()==UNLIMITED?0:thePrefs.GetMaxDownload()); + sT.Format(_T("%u"), thePrefs.GetMaxDownload() == UNLIMITED ? 0 : thePrefs.GetMaxDownload()); Out.Replace(_T("[MaxDownVal]"), sT); - sT.Format(_T("%u"), thePrefs.GetMaxUpload()==UNLIMITED?0:thePrefs.GetMaxUpload()); + sT.Format(_T("%u"), thePrefs.GetMaxUpload() == UNLIMITED ? 0 : thePrefs.GetMaxUpload()); Out.Replace(_T("[MaxUpVal]"), sT); - sT.Format(_T("%i"), thePrefs.GetMaxGraphDownloadRate() ); + sT.Format(_T("%i"), thePrefs.GetMaxGraphDownloadRate()); Out.Replace(_T("[MaxCapDownVal]"), sT); - sT.Format(_T("%i"), thePrefs.GetMaxGraphUploadRate(true) ); + sT.Format(_T("%i"), thePrefs.GetMaxGraphUploadRate(true)); Out.Replace(_T("[MaxCapUpVal]"), sT); return Out; @@ -4123,7 +4285,7 @@ CString CWebServer::_GetPreferences(ThreadData Data) CString CWebServer::_GetLoginScreen(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); (void)_ParseURL(Data.sURL, _T("ses")); @@ -4132,18 +4294,18 @@ CString CWebServer::_GetLoginScreen(ThreadData Data) Out += pThis->m_Templates.sLogin; - Out.Replace(_T("[CharSet]"), HTTPENCODING ); - Out.Replace(_T("[eMuleAppName]"), _T("eMule") ); - Out.Replace(_T("[version]"), theApp.m_strCurVersionLong ); + Out.Replace(_T("[CharSet]"), HTTPENCODING); + Out.Replace(_T("[eMuleAppName]"), _T("eMule")); + Out.Replace(_T("[version]"), theApp.m_strCurVersionLong); Out.Replace(_T("[Login]"), _GetPlainResString(IDS_WEB_LOGIN)); Out.Replace(_T("[EnterPassword]"), _GetPlainResString(IDS_WEB_ENTER_PASSWORD)); Out.Replace(_T("[LoginNow]"), _GetPlainResString(IDS_WEB_LOGIN_NOW)); Out.Replace(_T("[WebControl]"), _GetPlainResString(IDS_WEB_CONTROL)); - if(pThis->m_nIntruderDetect >= 1) + if (pThis->m_nIntruderDetect >= 1) Out.Replace(_T("[FailedLogin]"), _T("

") + _GetPlainResString(IDS_WEB_BADLOGINATTEMPT) + _T("

")); else - Out.Replace(_T("[FailedLogin]"), _T(" ") ); + Out.Replace(_T("[FailedLogin]"), _T(" ")); return Out; } @@ -4153,10 +4315,10 @@ CString CWebServer::_GetLoginScreen(ThreadData Data) // in order to use gzip in web pages int CWebServer::_GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level) { - static const int gz_magic[2] = {0x1f, 0x8b}; // gzip magic header + static const int gz_magic[2] = { 0x1f, 0x8b }; // gzip magic header int err; uLong crc; - z_stream stream = {0}; + z_stream stream = { 0 }; stream.zalloc = (alloc_func)0; stream.zfree = (free_func)0; stream.opaque = (voidpf)0; @@ -4167,12 +4329,12 @@ int CWebServer::_GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *source, if (err != Z_OK) return err; - sprintf((char*)dest , "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], - Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, 255); + sprintf((char*)dest, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], + Z_DEFLATED, 0 /*flags*/, 0, 0, 0, 0 /*time*/, 0 /*xflags*/, 255); // wire buffers - stream.next_in = (Bytef*) source ; + stream.next_in = (Bytef*)source; stream.avail_in = (uInt)sourceLen; - stream.next_out = ((Bytef*) dest) + 10; + stream.next_out = ((Bytef*)dest) + 10; stream.avail_out = *destLen - 18; // doit err = deflate(&stream, Z_FINISH); @@ -4182,17 +4344,17 @@ int CWebServer::_GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *source, return err; } err = deflateEnd(&stream); - crc = crc32(crc, (const Bytef *) source , sourceLen ); + crc = crc32(crc, (const Bytef *)source, sourceLen); //CRC - *(((Bytef*) dest)+10+stream.total_out) = (Bytef)(crc & 0xFF); - *(((Bytef*) dest)+10+stream.total_out+1) = (Bytef)((crc>>8) & 0xFF); - *(((Bytef*) dest)+10+stream.total_out+2) = (Bytef)((crc>>16) & 0xFF); - *(((Bytef*) dest)+10+stream.total_out+3) = (Bytef)((crc>>24) & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out) = (Bytef)(crc & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out + 1) = (Bytef)((crc >> 8) & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out + 2) = (Bytef)((crc >> 16) & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out + 3) = (Bytef)((crc >> 24) & 0xFF); // Length - *(((Bytef*) dest)+10+stream.total_out+4) = (Bytef)( sourceLen & 0xFF); - *(((Bytef*) dest)+10+stream.total_out+5) = (Bytef)(( sourceLen >>8) & 0xFF); - *(((Bytef*) dest)+10+stream.total_out+6) = (Bytef)(( sourceLen >>16) & 0xFF); - *(((Bytef*) dest)+10+stream.total_out+7) = (Bytef)(( sourceLen >>24) & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out + 4) = (Bytef)(sourceLen & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out + 5) = (Bytef)((sourceLen >> 8) & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out + 6) = (Bytef)((sourceLen >> 16) & 0xFF); + *(((Bytef*)dest) + 10 + stream.total_out + 7) = (Bytef)((sourceLen >> 24) & 0xFF); // return destLength *destLen = 10 + stream.total_out + 8; @@ -4202,16 +4364,16 @@ int CWebServer::_GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *source, bool CWebServer::_IsLoggedIn(ThreadData Data, long lSession) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return false; _RemoveTimeOuts(Data); // find our session // i should have used CMap there, but i like CArray more ;-) - for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) + for (int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { - if(pThis->m_Params.Sessions[i].lSession == lSession && lSession != 0) + if (pThis->m_Params.Sessions[i].lSession == lSession && lSession != 0) { // if found, also reset expiration time pThis->m_Params.Sessions[i].startTime = CTime::GetCurrentTime(); @@ -4232,19 +4394,19 @@ void CWebServer::_RemoveTimeOuts(ThreadData Data) bool CWebServer::_RemoveSession(ThreadData Data, long lSession) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return false; // find our session - for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) + for (int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { - if(pThis->m_Params.Sessions[i].lSession == lSession && lSession != 0) + if (pThis->m_Params.Sessions[i].lSession == lSession && lSession != 0) { pThis->m_Params.Sessions.RemoveAt(i); CString t_ulCurIP; - t_ulCurIP.Format(_T("%u.%u.%u.%u"),(byte)pThis->m_ulCurIP,(byte)(pThis->m_ulCurIP>>8),(byte)(pThis->m_ulCurIP>>16),(byte)(pThis->m_ulCurIP>>24)); + t_ulCurIP.Format(_T("%u.%u.%u.%u"), (byte)pThis->m_ulCurIP, (byte)(pThis->m_ulCurIP >> 8), (byte)(pThis->m_ulCurIP >> 16), (byte)(pThis->m_ulCurIP >> 24)); AddLogLine(true, (LPCTSTR)GetResString(IDS_WEB_SESSIONEND), (LPCTSTR)t_ulCurIP); - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATEMYINFO,0); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATEMYINFO, 0); return true; } } @@ -4252,20 +4414,20 @@ bool CWebServer::_RemoveSession(ThreadData Data, long lSession) return false; } -Session CWebServer::GetSessionByID(ThreadData Data,long sessionID) +Session CWebServer::GetSessionByID(ThreadData Data, long sessionID) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis != NULL) { - for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) + if (pThis != NULL) { + for (int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { - if(pThis->m_Params.Sessions[i].lSession == sessionID && sessionID != 0) + if (pThis->m_Params.Sessions[i].lSession == sessionID && sessionID != 0) return pThis->m_Params.Sessions[i]; } } Session ses; - ses.admin=false; + ses.admin = false; ses.startTime = 0; return ses; @@ -4275,11 +4437,11 @@ bool CWebServer::IsSessionAdmin(ThreadData Data, const CString &strSsessionID) { long sessionID = _tstol(strSsessionID); CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis != NULL) + if (pThis != NULL) { - for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) + for (int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { - if(pThis->m_Params.Sessions[i].lSession == sessionID && sessionID != 0) + if (pThis->m_Params.Sessions[i].lSession == sessionID && sessionID != 0) return pThis->m_Params.Sessions[i].admin; } } @@ -4289,14 +4451,14 @@ bool CWebServer::IsSessionAdmin(ThreadData Data, const CString &strSsessionID) CString CWebServer::GetPermissionDenied() { - return _T("javascript:alert(\'")+_GetPlainResString(IDS_ACCESSDENIED)+_T("\')"); + return _T("javascript:alert(\'") + _GetPlainResString(IDS_ACCESSDENIED) + _T("\')"); } CString CWebServer::_GetPlainResString(UINT nID, bool noquote) { CString sRet = GetResString(nID); sRet.Remove(_T('&')); - if(noquote) + if (noquote) { sRet.Replace(_T("'"), _T("’")); sRet.Replace(_T("\n"), _T("\\n")); @@ -4306,19 +4468,19 @@ CString CWebServer::_GetPlainResString(UINT nID, bool noquote) void CWebServer::_GetPlainResString(CString *pstrOut, UINT nID, bool noquote) { - *pstrOut=_GetPlainResString(nID,noquote); + *pstrOut = _GetPlainResString(nID, noquote); } // Ornis: creating the progressbar. colored if resources are given/available CString CWebServer::_GetDownloadGraph(const ThreadData& Data, const CString& filehash) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CPartFile* pPartFile; uchar fileid[16]; - if (filehash.GetLength()!=32 || !DecodeBase16(filehash, filehash.GetLength(), fileid, ARRSIZE(fileid))) + if (filehash.GetLength() != 32 || !DecodeBase16(filehash, filehash.GetLength(), fileid, ARRSIZE(fileid))) return _T(""); CString Out; @@ -4326,71 +4488,71 @@ CString CWebServer::_GetDownloadGraph(const ThreadData& Data, const CString& fil pPartFile = theApp.downloadqueue->GetFileByID(fileid); - if (pPartFile != NULL && (pPartFile->GetStatus() == PS_PAUSED ) ) - { - // Color style (paused files) - progresscolor[0]=_T("p_green.gif"); - progresscolor[1]=_T("p_black.gif"); - progresscolor[2]=_T("p_yellow.gif"); - progresscolor[3]=_T("p_red.gif"); - progresscolor[4]=_T("p_blue1.gif"); - progresscolor[5]=_T("p_blue2.gif"); - progresscolor[6]=_T("p_blue3.gif"); - progresscolor[7]=_T("p_blue4.gif"); - progresscolor[8]=_T("p_blue5.gif"); - progresscolor[9]=_T("p_blue6.gif"); - progresscolor[10]=_T("p_greenpercent.gif"); - progresscolor[11]=_T("transparent.gif"); + if (pPartFile != NULL && (pPartFile->GetStatus() == PS_PAUSED)) + { + // Color style (paused files) + progresscolor[0] = _T("p_green.gif"); + progresscolor[1] = _T("p_black.gif"); + progresscolor[2] = _T("p_yellow.gif"); + progresscolor[3] = _T("p_red.gif"); + progresscolor[4] = _T("p_blue1.gif"); + progresscolor[5] = _T("p_blue2.gif"); + progresscolor[6] = _T("p_blue3.gif"); + progresscolor[7] = _T("p_blue4.gif"); + progresscolor[8] = _T("p_blue5.gif"); + progresscolor[9] = _T("p_blue6.gif"); + progresscolor[10] = _T("p_greenpercent.gif"); + progresscolor[11] = _T("transparent.gif"); } else { - // Color style (active files) - progresscolor[0]=_T("green.gif"); - progresscolor[1]=_T("black.gif"); - progresscolor[2]=_T("yellow.gif"); - progresscolor[3]=_T("red.gif"); - progresscolor[4]=_T("blue1.gif"); - progresscolor[5]=_T("blue2.gif"); - progresscolor[6]=_T("blue3.gif"); - progresscolor[7]=_T("blue4.gif"); - progresscolor[8]=_T("blue5.gif"); - progresscolor[9]=_T("blue6.gif"); - progresscolor[10]=_T("greenpercent.gif"); - progresscolor[11]=_T("transparent.gif"); + // Color style (active files) + progresscolor[0] = _T("green.gif"); + progresscolor[1] = _T("black.gif"); + progresscolor[2] = _T("yellow.gif"); + progresscolor[3] = _T("red.gif"); + progresscolor[4] = _T("blue1.gif"); + progresscolor[5] = _T("blue2.gif"); + progresscolor[6] = _T("blue3.gif"); + progresscolor[7] = _T("blue4.gif"); + progresscolor[8] = _T("blue5.gif"); + progresscolor[9] = _T("blue6.gif"); + progresscolor[10] = _T("greenpercent.gif"); + progresscolor[11] = _T("transparent.gif"); } if (pPartFile == NULL || !pPartFile->IsPartFile()) { - Out.AppendFormat(pThis->m_Templates.sProgressbarImgsPercent+_T("
"), (LPCTSTR)progresscolor[10], pThis->m_Templates.iProgressbarWidth); + Out.AppendFormat(pThis->m_Templates.sProgressbarImgsPercent + _T("
"), (LPCTSTR)progresscolor[10], pThis->m_Templates.iProgressbarWidth); Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[0], pThis->m_Templates.iProgressbarWidth); } else { - CString s_ChunkBar=pPartFile->GetProgressString(pThis->m_Templates.iProgressbarWidth); + CString s_ChunkBar = pPartFile->GetProgressString(pThis->m_Templates.iProgressbarWidth); // and now make a graph out of the array - need to be in a progressive way - BYTE lastcolor=1; - uint16 lastindex=0; + BYTE lastcolor = 1; + uint16 lastindex = 0; int compl = static_cast((pThis->m_Templates.iProgressbarWidth / 100.0) * pPartFile->GetPercentCompleted()); - Out.AppendFormat(pThis->m_Templates.sProgressbarImgsPercent+_T("
"), + Out.AppendFormat(pThis->m_Templates.sProgressbarImgsPercent + _T("
"), (LPCTSTR)progresscolor[(compl > 0) ? 10 : 11], (compl > 0) ? compl : 5); - for (uint16 i=0;im_Templates.iProgressbarWidth;i++) + for (uint16 i = 0; i < pThis->m_Templates.iProgressbarWidth; i++) { - if (lastcolor!= _tstoi(s_ChunkBar.Mid(i,1))) + if (lastcolor != _tstoi(s_ChunkBar.Mid(i, 1))) { - if (i>lastindex) + if (i > lastindex) { if (lastcolor < _countof(progresscolor)) - Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[lastcolor], i-lastindex); + Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[lastcolor], i - lastindex); } - lastcolor=(BYTE)_tstoi(s_ChunkBar.Mid(i,1)); - lastindex=i; + lastcolor = (BYTE)_tstoi(s_ChunkBar.Mid(i, 1)); + lastindex = i; } } - Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[lastcolor], pThis->m_Templates.iProgressbarWidth-lastindex); + Out.AppendFormat(pThis->m_Templates.sProgressbarImgs, (LPCTSTR)progresscolor[lastcolor], pThis->m_Templates.iProgressbarWidth - lastindex); } return Out; } @@ -4398,27 +4560,27 @@ CString CWebServer::_GetDownloadGraph(const ThreadData& Data, const CString& fil CString CWebServer::_GetSearch(ThreadData Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); - int cat=_tstoi(_ParseURL(Data.sURL, _T("cat"))); + int cat = _tstoi(_ParseURL(Data.sURL, _T("cat"))); CString sSession = _ParseURL(Data.sURL, _T("ses")); CString Out = pThis->m_Templates.sSearch; - if (!_ParseURL(Data.sURL, _T("downloads")).IsEmpty() && IsSessionAdmin(Data,sSession)) + if (!_ParseURL(Data.sURL, _T("downloads")).IsEmpty() && IsSessionAdmin(Data, sSession)) { - CString downloads=_ParseURLArray(Data.sURL,_T("downloads")); + CString downloads = _ParseURLArray(Data.sURL, _T("downloads")); CString resToken; - int curPos=0; - resToken= downloads.Tokenize(_T("|"),curPos); + int curPos = 0; + resToken = downloads.Tokenize(_T("|"), curPos); while (!resToken.IsEmpty()) { - if (resToken.GetLength()==32) - SendMessage(theApp.emuledlg->m_hWnd,WEB_ADDDOWNLOADS, (LPARAM)(LPCTSTR)resToken, cat); - resToken= downloads.Tokenize(_T("|"),curPos); + if (resToken.GetLength() == 32) + SendMessage(theApp.emuledlg->m_hWnd, WEB_ADDDOWNLOADS, (LPARAM)(LPCTSTR)resToken, cat); + resToken = downloads.Tokenize(_T("|"), curPos); } } @@ -4431,20 +4593,20 @@ CString CWebServer::_GetSearch(ThreadData Data) if (sCmd.CompareNoCase(_T("menu")) == 0) { int iMenu = _tstoi(_ParseURL(Data.sURL, _T("m"))); - bool bValue = _tstoi(_ParseURL(Data.sURL, _T("v")))!=0; + bool bValue = _tstoi(_ParseURL(Data.sURL, _T("v"))) != 0; WSsearchColumnHidden[iMenu] = bValue; - SaveWIConfigArray(WSsearchColumnHidden,ARRSIZE(WSsearchColumnHidden) ,_T("searchColumnHidden")); + SaveWIConfigArray(WSsearchColumnHidden, ARRSIZE(WSsearchColumnHidden), _T("searchColumnHidden")); } - if (!_ParseURL(Data.sURL, _T("tosearch")).IsEmpty() && IsSessionAdmin(Data,sSession)) + if (!_ParseURL(Data.sURL, _T("tosearch")).IsEmpty() && IsSessionAdmin(Data, sSession)) { // perform search - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION, WEBGUIIA_DELETEALLSEARCHES, 0); + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_DELETEALLSEARCHES, 0); // get method - CString method=(_ParseURL(Data.sURL, _T("method"))); + CString method = (_ParseURL(Data.sURL, _T("method"))); SSearchParams* pParams = new SSearchParams; pParams->strExpression = _ParseURL(Data.sURL, _T("tosearch")); @@ -4458,12 +4620,12 @@ CString CWebServer::_GetSearch(ThreadData Data) && pParams->strFileType != ED2KFTSTR_IMAGE && pParams->strFileType != ED2KFTSTR_PROGRAM && pParams->strFileType != ED2KFTSTR_VIDEO - && pParams->strFileType != ED2KFTSTR_EMULECOLLECTION){ + && pParams->strFileType != ED2KFTSTR_EMULECOLLECTION) { ASSERT(0); pParams->strFileType.Empty(); } - pParams->ullMinSize = _tstoi64(_ParseURL(Data.sURL, _T("min")))*1048576ui64; - pParams->ullMaxSize = _tstoi64(_ParseURL(Data.sURL, _T("max")))*1048576ui64; + pParams->ullMinSize = _tstoi64(_ParseURL(Data.sURL, _T("min"))) * 1048576ui64; + pParams->ullMaxSize = _tstoi64(_ParseURL(Data.sURL, _T("max"))) * 1048576ui64; if (pParams->ullMaxSize < pParams->ullMinSize) pParams->ullMaxSize = 0; @@ -4484,8 +4646,8 @@ CString CWebServer::_GetSearch(ThreadData Data) CString strResponse = _GetPlainResString(IDS_SW_SEARCHINGINFO); try { - if (pParams->eType != SearchTypeKademlia){ - if (!theApp.emuledlg->searchwnd->DoNewEd2kSearch(pParams)){ + if (pParams->eType != SearchTypeKademlia) { + if (!theApp.emuledlg->searchwnd->DoNewEd2kSearch(pParams)) { delete pParams; pParams = NULL; strResponse = _GetPlainResString(IDS_ERR_NOTCONNECTED); @@ -4493,8 +4655,8 @@ CString CWebServer::_GetSearch(ThreadData Data) else Sleep(2000); // wait for some results to come in (thanks thread) } - else{ - if (!theApp.emuledlg->searchwnd->DoNewKadSearch(pParams)){ + else { + if (!theApp.emuledlg->searchwnd->DoNewKadSearch(pParams)) { delete pParams; pParams = NULL; strResponse = _GetPlainResString(IDS_ERR_NOTCONNECTEDKAD); @@ -4503,7 +4665,7 @@ CString CWebServer::_GetSearch(ThreadData Data) } catch (/*CMsgBoxException* ex*/ ...) { - strResponse=_GetPlainResString(IDS_ERROR); + strResponse = _GetPlainResString(IDS_ERROR); /* strResponse = ex->m_strMsg; PlainString(strResponse, false); @@ -4512,19 +4674,19 @@ CString CWebServer::_GetSearch(ThreadData Data) ASSERT(0); delete pParams; } - Out.Replace(_T("[Message]"),strResponse); + Out.Replace(_T("[Message]"), strResponse); } - else if (!_ParseURL(Data.sURL, _T("tosearch")).IsEmpty() && !IsSessionAdmin(Data,sSession)) { - Out.Replace(_T("[Message]"),_GetPlainResString(IDS_ACCESSDENIED)); + else if (!_ParseURL(Data.sURL, _T("tosearch")).IsEmpty() && !IsSessionAdmin(Data, sSession)) { + Out.Replace(_T("[Message]"), _GetPlainResString(IDS_ACCESSDENIED)); } else Out.Replace(_T("[Message]"), _GetPlainResString(IDS_SW_REFETCHRES)); - CString sSort = _ParseURL(Data.sURL, _T("sort")); if (sSort.GetLength()>0) pThis->m_iSearchSortby=_tstoi(sSort); - sSort = _ParseURL(Data.sURL, _T("sortAsc")); if (sSort.GetLength()>0) pThis->m_bSearchAsc=_tstoi(sSort)!=0; + CString sSort = _ParseURL(Data.sURL, _T("sort")); if (sSort.GetLength() > 0) pThis->m_iSearchSortby = _tstoi(sSort); + sSort = _ParseURL(Data.sURL, _T("sortAsc")); if (sSort.GetLength() > 0) pThis->m_bSearchAsc = _tstoi(sSort) != 0; - CString result=pThis->m_Templates.sSearchHeader; + CString result = pThis->m_Templates.sSearchHeader; CQArray SearchFileArray; theApp.searchlist->GetWebList(&SearchFileArray, pThis->m_iSearchSortby); @@ -4550,10 +4712,11 @@ CString CWebServer::_GetSearch(ThreadData Data) DecodeBase16(structFile.m_strFileHash, 32, aFileHash, ARRSIZE(aFileHash)); strOverlayImage = _T("none"); - if (theApp.downloadqueue->GetFileByID(aFileHash)!=NULL) { - nBlue = 128; - nGreen = 128; - } else { + if (theApp.downloadqueue->GetFileByID(aFileHash) != NULL) { + nBlue = 128; + nGreen = 128; + } + else { sameFile = theApp.sharedfiles->GetFileByID(aFileHash); if (sameFile == NULL) sameFile = theApp.knownfiles->FindKnownFileByID(aFileHash); @@ -4565,7 +4728,7 @@ CString CWebServer::_GetSearch(ThreadData Data) else { //strOverlayImage = _T("release"); - nBlue = 128; + nBlue = 128; nRed = 128; } } @@ -4584,7 +4747,7 @@ CString CWebServer::_GetSearch(ThreadData Data) strSources.Format(_T("%u(%u)"), structFile.m_uSourceCount, structFile.m_dwCompleteSourceCount); strFilename = structFile.m_strFileName; - strFilename.Replace(_T("'"),_T("\\'")); + strFilename.Replace(_T("'"), _T("\\'")); strTemp2.Format(_T("ed2k://|file|%s|%I64u|%s|/"), (LPCTSTR)strFilename, structFile.m_uFileSize, (LPCTSTR)structFile.m_strFileHash); @@ -4592,12 +4755,12 @@ CString CWebServer::_GetSearch(ThreadData Data) strTemp.Format(pThis->m_Templates.sSearchResultLine, (LPCTSTR)strSourcesImage, (LPCTSTR)strTemp2, (LPCTSTR)strOverlayImage, (LPCTSTR)GetWebImageNameForFileType(structFile.m_strFileName), - (!WSsearchColumnHidden[0]) ? (LPCTSTR)(strColorPrefix + StringLimit(structFile.m_strFileName,70) + strColorSuffix) : _T(""), + (!WSsearchColumnHidden[0]) ? (LPCTSTR)(strColorPrefix + StringLimit(structFile.m_strFileName, 70) + strColorSuffix) : _T(""), (!WSsearchColumnHidden[1]) ? (LPCTSTR)(strColorPrefix + CastItoXBytes(structFile.m_uFileSize) + strColorSuffix) : _T(""), (!WSsearchColumnHidden[2]) ? (LPCTSTR)(strColorPrefix + structFile.m_strFileHash + strColorSuffix) : _T(""), (!WSsearchColumnHidden[3]) ? (LPCTSTR)(strColorPrefix + strSources + strColorSuffix) : _T(""), (LPCTSTR)structFile.m_strFileHash - ); + ); result.Append(strTemp); } @@ -4606,11 +4769,11 @@ CString CWebServer::_GetSearch(ThreadData Data) - if (thePrefs.GetCatCount()>1) - InsertCatBox(Out,0,pThis->m_Templates.sCatArrow,false,false,sSession,_T("")); - else Out.Replace(_T("[CATBOX]"),_T("")); + if (thePrefs.GetCatCount() > 1) + InsertCatBox(Out, 0, pThis->m_Templates.sCatArrow, false, false, sSession, _T("")); + else Out.Replace(_T("[CATBOX]"), _T("")); - Out.Replace(_T("[SEARCHINFOMSG]"),_T("")); + Out.Replace(_T("[SEARCHINFOMSG]"), _T("")); Out.Replace(_T("[RESULTLIST]"), result); Out.Replace(_T("[Result]"), GetResString(IDS_SW_RESULT)); Out.Replace(_T("[Session]"), sSession); @@ -4643,11 +4806,11 @@ CString CWebServer::_GetSearch(ThreadData Data) Out.Replace(_T("[CatSel]"), sCat); Out.Replace(_T("[Ed2klink]"), _GetPlainResString(IDS_SW_LINK)); -/* CString checked; - if(thePrefs.GetMethod()==1) - checked = _T("checked"); - Out.Replace(_T("[checked]"), checked); -*/ + /* CString checked; + if(thePrefs.GetMethod()==1) + checked = _T("checked"); + Out.Replace(_T("[checked]"), checked); + */ const TCHAR *pcSortIcon = (pThis->m_bSearchAsc) ? pThis->m_Templates.sUpArrow : pThis->m_Templates.sDownArrow; CString strTmp; @@ -4705,17 +4868,17 @@ CString CWebServer::_GetSearch(ThreadData Data) Out.Replace(_T("[Download]"), _GetPlainResString(IDS_DOWNLOAD)); - strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=0 || pThis->m_bSearchAsc==0) ? 1 : 0); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby != 0 || pThis->m_bSearchAsc == 0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE0]"), strTmp); - strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=1 || pThis->m_bSearchAsc==0) ? 1 : 0); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby != 1 || pThis->m_bSearchAsc == 0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE1]"), strTmp); - strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=2 || pThis->m_bSearchAsc==0) ? 1 : 0); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby != 2 || pThis->m_bSearchAsc == 0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE2]"), strTmp); - strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=3 || pThis->m_bSearchAsc==0) ? 1 : 0); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby != 3 || pThis->m_bSearchAsc == 0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE3]"), strTmp); - strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=4 || pThis->m_bSearchAsc==0) ? 1 : 0); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby != 4 || pThis->m_bSearchAsc == 0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE4]"), strTmp); - strTmp.Format(_T("%i"), (pThis->m_iSearchSortby!=5 || pThis->m_bSearchAsc==0) ? 1 : 0); + strTmp.Format(_T("%i"), (pThis->m_iSearchSortby != 5 || pThis->m_bSearchAsc == 0) ? 1 : 0); Out.Replace(_T("[SORTASCVALUE5]"), strTmp); return Out; @@ -4723,18 +4886,18 @@ CString CWebServer::_GetSearch(ThreadData Data) int CWebServer::UpdateSessionCount() { - int oldvalue=m_Params.Sessions.GetSize(); - for(int i = 0; i < m_Params.Sessions.GetSize();) + int oldvalue = m_Params.Sessions.GetSize(); + for (int i = 0; i < m_Params.Sessions.GetSize();) { CTimeSpan ts = CTime::GetCurrentTime() - m_Params.Sessions[i].startTime; - if(thePrefs.GetWebTimeoutMins()>0 && ts.GetTotalSeconds() > thePrefs.GetWebTimeoutMins()*(LONGLONG)MIN2S(1) ) + if (thePrefs.GetWebTimeoutMins() > 0 && ts.GetTotalSeconds() > thePrefs.GetWebTimeoutMins()*(LONGLONG)MIN2S(1)) m_Params.Sessions.RemoveAt(i); else i++; } - if (oldvalue!= m_Params.Sessions.GetCount()) - SendMessage(theApp.emuledlg->m_hWnd,WEB_GUI_INTERACTION,WEBGUIIA_UPDATEMYINFO,0); + if (oldvalue != m_Params.Sessions.GetCount()) + SendMessage(theApp.emuledlg->m_hWnd, WEB_GUI_INTERACTION, WEBGUIIA_UPDATEMYINFO, 0); return m_Params.Sessions.GetCount(); @@ -4756,8 +4919,8 @@ void CWebServer::InsertCatBox(CString &Out, int preselect, const CString& boxlab for (int i = 0; i < thePrefs.GetCatCount(); i++) { CString strCategory = thePrefs.GetCategory(i)->strTitle; - strCategory.Replace(_T("'"),_T("\'")); - tempBuf.AppendFormat( _T("%s\n"), (i == preselect) ? _T(" selected") : _T(""), i, (LPCTSTR)strCategory); + strCategory.Replace(_T("'"), _T("\'")); + tempBuf.AppendFormat(_T("%s\n"), (i == preselect) ? _T(" selected") : _T(""), i, (LPCTSTR)strCategory); } if (extraCats) { @@ -4765,13 +4928,13 @@ void CWebServer::InsertCatBox(CString &Out, int preselect, const CString& boxlab { tempBuf += _T("\n"); } - for (int i = 1; i<16; i++) + for (int i = 1; i < 16; i++) { - tempBuf.AppendFormat( _T("%s\n") , (0-i == preselect) ? _T(" selected") : _T(""), 0-i, (LPCTSTR)GetSubCatLabel(0-i)); + tempBuf.AppendFormat(_T("%s\n"), (0 - i == preselect) ? _T(" selected") : _T(""), 0 - i, (LPCTSTR)GetSubCatLabel(0 - i)); } } - tempBuf.Append(_T("") ); - Out.Replace( ed2kbox?_T("[CATBOXED2K]") : _T("[CATBOX]"), tempBuf); + tempBuf.Append(_T("")); + Out.Replace(ed2kbox ? _T("[CATBOXED2K]") : _T("[CATBOX]"), tempBuf); CString tempBuff3, tempBuff4; CString tempBuff; @@ -4779,16 +4942,16 @@ void CWebServer::InsertCatBox(CString &Out, int preselect, const CString& boxlab for (int i = 0; i < thePrefs.GetCatCount(); i++) { - if (i==preselect) + if (i == preselect) { tempBuff3 = _T("checked.gif"); - tempBuff4 = (i==0)?GetResString(IDS_ALL):thePrefs.GetCategory(i)->strTitle; + tempBuff4 = (i == 0) ? GetResString(IDS_ALL) : thePrefs.GetCategory(i)->strTitle; } else tempBuff3 = _T("checked_no.gif"); - strCategory = (i==0)?GetResString(IDS_ALL):thePrefs.GetCategory(i)->strTitle; - strCategory.Replace(_T("'"),_T("\\'")); + strCategory = (i == 0) ? GetResString(IDS_ALL) : thePrefs.GetCategory(i)->strTitle; + strCategory.Replace(_T("'"), _T("\\'")); tempBuff.AppendFormat(_T(""), (LPCTSTR)sSession, i, (LPCTSTR)tempBuff3, (LPCTSTR)strCategory); @@ -4796,18 +4959,18 @@ void CWebServer::InsertCatBox(CString &Out, int preselect, const CString& boxlab if (extraCats) { tempBuff.Append(_T("")); - for (int i = 1;i<16;i++) + for (int i = 1; i < 16; i++) { - if ((0-i)==preselect) + if ((0 - i) == preselect) { - tempBuff3= _T("checked.gif"); - tempBuff4 = GetSubCatLabel(0-i); + tempBuff3 = _T("checked.gif"); + tempBuff4 = GetSubCatLabel(0 - i); } else tempBuff3 = _T("checked_no.gif"); - tempBuff.AppendFormat( _T(""), - (LPCTSTR)sSession, 0-i, (LPCTSTR)tempBuff3, (LPCTSTR)GetSubCatLabel(0-i)); + tempBuff.AppendFormat(_T(""), + (LPCTSTR)sSession, 0 - i, (LPCTSTR)tempBuff3, (LPCTSTR)GetSubCatLabel(0 - i)); } } Out.Replace(_T("[CatBox]"), tempBuff); @@ -4815,29 +4978,29 @@ void CWebServer::InsertCatBox(CString &Out, int preselect, const CString& boxlab tempBuff.Empty(); -// For each user category index... - for (int i = 0; i GetFileByID(_GetFileHash(sFileHash, FileHash)); + found_file = theApp.downloadqueue->GetFileByID(_GetFileHash(sFileHash, FileHash)); // Get the user category index of 'found_file' in 'preselect'. if (found_file) preselect = found_file->GetCategory(); - if (i==preselect) + if (i == preselect) { tempBuff3 = _T("checked.gif"); - tempBuff4 = (i==0)?GetResString(IDS_ALL):thePrefs.GetCategory(i)->strTitle; + tempBuff4 = (i == 0) ? GetResString(IDS_ALL) : thePrefs.GetCategory(i)->strTitle; } else tempBuff3 = _T("checked_no.gif"); - strCategory = (i == 0)? GetResString(IDS_CAT_UNASSIGN) : thePrefs.GetCategory(i)->strTitle; - strCategory.Replace(_T("'"),_T("\\'")); + strCategory = (i == 0) ? GetResString(IDS_CAT_UNASSIGN) : thePrefs.GetCategory(i)->strTitle; + strCategory.Replace(_T("'"), _T("\\'")); tempBuff.AppendFormat(_T(""), (LPCTSTR)sSession, (LPCTSTR)sFileHash, i, (LPCTSTR)tempBuff3, (LPCTSTR)strCategory); @@ -4849,21 +5012,21 @@ void CWebServer::InsertCatBox(CString &Out, int preselect, const CString& boxlab CString CWebServer::GetSubCatLabel(int cat) { switch (cat) { - case -1: return _GetPlainResString(IDS_ALLOTHERS); - case -2: return _GetPlainResString(IDS_STATUS_NOTCOMPLETED); - case -3: return _GetPlainResString(IDS_DL_TRANSFCOMPL); - case -4: return _GetPlainResString(IDS_WAITING); - case -5: return _GetPlainResString(IDS_DOWNLOADING); - case -6: return _GetPlainResString(IDS_ERRORLIKE); - case -7: return _GetPlainResString(IDS_PAUSED); - case -8: return _GetPlainResString(IDS_SEENCOMPL); - case -9: return _GetPlainResString(IDS_VIDEO); - case -10: return _GetPlainResString(IDS_AUDIO); - case -11: return _GetPlainResString(IDS_SEARCH_ARC); - case -12: return _GetPlainResString(IDS_SEARCH_CDIMG); - case -13: return _GetPlainResString(IDS_SEARCH_DOC); - case -14: return _GetPlainResString(IDS_SEARCH_PICS); - case -15: return _GetPlainResString(IDS_SEARCH_PRG); + case -1: return _GetPlainResString(IDS_ALLOTHERS); + case -2: return _GetPlainResString(IDS_STATUS_NOTCOMPLETED); + case -3: return _GetPlainResString(IDS_DL_TRANSFCOMPL); + case -4: return _GetPlainResString(IDS_WAITING); + case -5: return _GetPlainResString(IDS_DOWNLOADING); + case -6: return _GetPlainResString(IDS_ERRORLIKE); + case -7: return _GetPlainResString(IDS_PAUSED); + case -8: return _GetPlainResString(IDS_SEENCOMPL); + case -9: return _GetPlainResString(IDS_VIDEO); + case -10: return _GetPlainResString(IDS_AUDIO); + case -11: return _GetPlainResString(IDS_SEARCH_ARC); + case -12: return _GetPlainResString(IDS_SEARCH_CDIMG); + case -13: return _GetPlainResString(IDS_SEARCH_DOC); + case -14: return _GetPlainResString(IDS_SEARCH_PICS); + case -15: return _GetPlainResString(IDS_SEARCH_PRG); } return _T("?"); } @@ -4872,21 +5035,21 @@ CString CWebServer::_GetRemoteLinkAddedOk(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString Out = _T(""); - int cat=_tstoi(_ParseURL(Data.sURL,_T("cat"))); + int cat = _tstoi(_ParseURL(Data.sURL, _T("cat"))); CString HTTPTemp = _ParseURL(Data.sURL, _T("c")); - const TCHAR* buf=HTTPTemp; + const TCHAR* buf = HTTPTemp; theApp.emuledlg->SendMessage(WEB_ADDDOWNLOADS, (WPARAM)buf, cat); - Out += _T(""); - Out += _T("") + GetResString(IDS_WEB_REMOTE_LINK_ADDED) + _T(""); - Out += _T("") + HTTPTemp + _T(""); - Out += _T(""); + Out += _T(""); + Out += _T("") + GetResString(IDS_WEB_REMOTE_LINK_ADDED) + _T(""); + Out += _T("") + HTTPTemp + _T(""); + Out += _T(""); return Out; } @@ -4894,14 +5057,14 @@ CString CWebServer::_GetRemoteLinkAddedFailed(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return _T(""); CString Out = _T(""); - Out += _T(""); - Out += _T("") + GetResString(IDS_WEB_REMOTE_LINK_NOT_ADDED) + _T(""); - Out += _T(""); + Out += _T(""); + Out += _T("") + GetResString(IDS_WEB_REMOTE_LINK_NOT_ADDED) + _T(""); + Out += _T(""); return Out; } @@ -4909,13 +5072,13 @@ CString CWebServer::_GetRemoteLinkAddedFailed(const ThreadData& Data) void CWebServer::_SetLastUserCat(const ThreadData& Data, long lSession, int cat) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return; _RemoveTimeOuts(Data); // find our session - for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) + for (int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { Session& ses = pThis->m_Params.Sessions[i]; if (ses.lSession == lSession && lSession != 0) { @@ -4930,13 +5093,13 @@ void CWebServer::_SetLastUserCat(const ThreadData& Data, long lSession, int cat) int CWebServer::_GetLastUserCat(const ThreadData& Data, long lSession) { CWebServer *pThis = (CWebServer *)Data.pThis; - if(pThis == NULL) + if (pThis == NULL) return 0; _RemoveTimeOuts(Data); // find our session - for(int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) + for (int i = 0; i < pThis->m_Params.Sessions.GetSize(); i++) { Session& ses = pThis->m_Params.Sessions[i]; if (ses.lSession == lSession && lSession != 0) { @@ -4959,107 +5122,108 @@ void CWebServer::ProcessFileReq(const ThreadData& Data) { CWebServer *pThis = (CWebServer *)Data.pThis; if (pThis == NULL) return; - CString filename=Data.sURL; + CString filename = Data.sURL; CString contenttype; CString ext = filename.Right(5).MakeLower(); int i = ext.ReverseFind('.'); ext.Delete(0, i); - if (i>=0 && ext.GetLength()>2) { + if (i >= 0 && ext.GetLength() > 2) { ext.Delete(0, 1); - if (ext==_T("bmp") || ext==_T("gif") || ext==_T("jpeg") || ext==_T("jpg") || ext==_T("png")) + if (ext == _T("bmp") || ext == _T("gif") || ext == _T("jpeg") || ext == _T("jpg") || ext == _T("png")) contenttype = _T("Content-Type: image/") + ext + _T("\r\n"); //DonQ - additional filetypes else if (ext == _T("ico")) contenttype = _T("Content-Type: image/x-icon\r\n"); else if (ext == _T("css")) contenttype = _T("Content-Type: text/css\r\n"); - else if (ext ==_T("js")) + else if (ext == _T("js")) contenttype = _T("Content-Type: text/javascript\r\n"); } contenttype += _T("Last-Modified: ") + pThis->m_Params.sLastModified + _T("\r\n") + _T("ETag: ") + pThis->m_Params.sETag + _T("\r\n"); - filename.Replace(_T('/'),_T('\\')); + filename.Replace(_T('/'), _T('\\')); if (filename[0] == _T('\\')) filename.Delete(0); filename = thePrefs.GetMuleDirectory(EMULE_WEBSERVERDIR) + filename; CFile file; - if(file.Open(filename, CFile::modeRead|CFile::shareDenyWrite|CFile::typeBinary)) + if (file.Open(filename, CFile::modeRead | CFile::shareDenyWrite | CFile::typeBinary)) { - if (thePrefs.GetMaxWebUploadFileSizeMB()==0 || file.GetLength()<=((ULONGLONG)thePrefs.GetMaxWebUploadFileSizeMB())*1024*1024) { - DWORD filesize=(DWORD)file.GetLength(); + if (thePrefs.GetMaxWebUploadFileSizeMB() == 0 || file.GetLength() <= ((ULONGLONG)thePrefs.GetMaxWebUploadFileSizeMB()) * 1024 * 1024) { + DWORD filesize = (DWORD)file.GetLength(); - char* buffer=new char[filesize]; - DWORD size=file.Read(buffer,filesize); + char* buffer = new char[filesize]; + DWORD size = file.Read(buffer, filesize); file.Close(); Data.pSocket->SendContent(CT2CA(contenttype), buffer, size); delete[] buffer; - } else { - Data.pSocket->SendReply( "HTTP/1.1 403 Forbidden\r\n" ); + } + else { + Data.pSocket->SendReply("HTTP/1.1 403 Forbidden\r\n"); } } else { - Data.pSocket->SendReply( "HTTP/1.1 404 File not found\r\n" ); + Data.pSocket->SendReply("HTTP/1.1 404 File not found\r\n"); } } CString CWebServer::GetWebImageNameForFileType(const CString& filename) { switch (GetED2KFileTypeID(filename)) { - case ED2KFT_AUDIO: return _T("audio"); - case ED2KFT_VIDEO: return _T("video"); - case ED2KFT_IMAGE: return _T("picture"); - case ED2KFT_PROGRAM: return _T("program"); - case ED2KFT_DOCUMENT: return _T("document"); - case ED2KFT_ARCHIVE: return _T("archive"); - case ED2KFT_CDIMAGE: return _T("cdimage"); - case ED2KFT_EMULECOLLECTION: return _T("emulecollection"); + case ED2KFT_AUDIO: return _T("audio"); + case ED2KFT_VIDEO: return _T("video"); + case ED2KFT_IMAGE: return _T("picture"); + case ED2KFT_PROGRAM: return _T("program"); + case ED2KFT_DOCUMENT: return _T("document"); + case ED2KFT_ARCHIVE: return _T("archive"); + case ED2KFT_CDIMAGE: return _T("cdimage"); + case ED2KFT_EMULECOLLECTION: return _T("emulecollection"); - default: /*ED2KFT_ANY:*/ return _T("other"); + default: /*ED2KFT_ANY:*/ return _T("other"); } } CString CWebServer::GetClientSummary(CUpDownClient* client) { // name - CString buffer= GetResString(IDS_CD_UNAME) + _T(" ") + client->GetUserName() + _T("\n"); + CString buffer = GetResString(IDS_CD_UNAME) + _T(" ") + client->GetUserName() + _T("\n"); // client version - buffer+= GetResString(IDS_CD_CSOFT)+ _T(": ") + client->GetClientSoftVer() + _T("\n"); + buffer += GetResString(IDS_CD_CSOFT) + _T(": ") + client->GetClientSoftVer() + _T("\n"); // uploading file - buffer+= GetResString(IDS_CD_UPLOADREQ) + _T(" "); - CKnownFile* file = theApp.sharedfiles->GetFileByID(client->GetUploadFileID() ); + buffer += GetResString(IDS_CD_UPLOADREQ) + _T(" "); + CKnownFile* file = theApp.sharedfiles->GetFileByID(client->GetUploadFileID()); ASSERT(file); if (file) { buffer += file->GetFileName(); } - buffer+= _T("\n\n"); + buffer += _T("\n\n"); // transfering time - buffer+= GetResString(IDS_UPLOADTIME) + _T(": ") + CastSecondsToHM(client->GetUpStartTimeDelay()/1000) + _T("\n"); + buffer += GetResString(IDS_UPLOADTIME) + _T(": ") + CastSecondsToHM(client->GetUpStartTimeDelay() / 1000) + _T("\n"); // transfered data (up,down,global,session) - buffer+= GetResString(IDS_FD_TRANS) + _T(" (") +GetResString(IDS_STATS_SESSION) + _T("):\n"); - buffer+= _T(".....") + GetResString(IDS_PW_CON_UPLBL) + _T(": ")+ CastItoXBytes(client->GetTransferredUp()) + _T(" (") + CastItoXBytes(client->GetSessionUp()) + _T(" )\n"); - buffer+= _T(".....") + GetResString(IDS_DOWNLOAD) + _T(": ") + CastItoXBytes(client->GetTransferredDown()) + _T(" (") + CastItoXBytes(client->GetSessionDown()) + _T(" )\n"); + buffer += GetResString(IDS_FD_TRANS) + _T(" (") + GetResString(IDS_STATS_SESSION) + _T("):\n"); + buffer += _T(".....") + GetResString(IDS_PW_CON_UPLBL) + _T(": ") + CastItoXBytes(client->GetTransferredUp()) + _T(" (") + CastItoXBytes(client->GetSessionUp()) + _T(" )\n"); + buffer += _T(".....") + GetResString(IDS_DOWNLOAD) + _T(": ") + CastItoXBytes(client->GetTransferredDown()) + _T(" (") + CastItoXBytes(client->GetSessionDown()) + _T(" )\n"); return buffer; } CString CWebServer::GetClientversionImage(CUpDownClient* client) { - switch(client->GetClientSoft()) { - case SO_EMULE: return _T("1"); - case SO_OLDEMULE: return _T("1"); - case SO_EDONKEY: return _T("0"); - case SO_EDONKEYHYBRID: return _T("h"); - case SO_AMULE: return _T("a"); - case SO_SHAREAZA: return _T("s"); - case SO_MLDONKEY: return _T("m"); - case SO_LPHANT: return _T("l"); - case SO_URL: return _T("u"); + switch (client->GetClientSoft()) { + case SO_EMULE: return _T("1"); + case SO_OLDEMULE: return _T("1"); + case SO_EDONKEY: return _T("0"); + case SO_EDONKEYHYBRID: return _T("h"); + case SO_AMULE: return _T("a"); + case SO_SHAREAZA: return _T("s"); + case SO_MLDONKEY: return _T("m"); + case SO_LPHANT: return _T("l"); + case SO_URL: return _T("u"); } return _T("0"); @@ -5070,15 +5234,15 @@ CString CWebServer::_GetCommentlist(ThreadData Data) CWebServer *pThis = (CWebServer *)Data.pThis; uchar FileHash[16]; - CPartFile* pPartFile=theApp.downloadqueue->GetFileByID(_GetFileHash(_ParseURL(Data.sURL, _T("filehash")),FileHash) ); + CPartFile* pPartFile = theApp.downloadqueue->GetFileByID(_GetFileHash(_ParseURL(Data.sURL, _T("filehash")), FileHash)); - CString Out= pThis->m_Templates.sCommentList; + CString Out = pThis->m_Templates.sCommentList; if (!pPartFile) return _T(""); CString commentlines; - Out.Replace(_T("[COMMENTS]"), GetResString(IDS_COMMENT) + _T(": ") + pPartFile->GetFileName() ); + Out.Replace(_T("[COMMENTS]"), GetResString(IDS_COMMENT) + _T(": ") + pPartFile->GetFileName()); // prepare commentsinfo-string for (POSITION pos = pPartFile->srclist.GetHeadPosition(); pos != NULL; ) @@ -5086,37 +5250,37 @@ CString CWebServer::_GetCommentlist(ThreadData Data) CUpDownClient* cur_src = pPartFile->srclist.GetNext(pos); if (cur_src->HasFileRating() || !cur_src->GetFileComment().IsEmpty()) { - commentlines.AppendFormat( pThis->m_Templates.sCommentListLine, + commentlines.AppendFormat(pThis->m_Templates.sCommentListLine, (LPCTSTR)_SpecialChars(cur_src->GetUserName()), (LPCTSTR)_SpecialChars(cur_src->GetClientFilename()), (LPCTSTR)_SpecialChars(cur_src->GetFileComment()), (LPCTSTR)_SpecialChars(GetRateString(cur_src->GetFileRating())) - ); + ); } } const CTypedPtrList& list = pPartFile->getNotes(); - for(POSITION pos = list.GetHeadPosition(); pos != NULL; ) + for (POSITION pos = list.GetHeadPosition(); pos != NULL; ) { Kademlia::CEntry* entry = list.GetNext(pos); - commentlines.AppendFormat( pThis->m_Templates.sCommentListLine, + commentlines.AppendFormat(pThis->m_Templates.sCommentListLine, _T(""), (LPCTSTR)_SpecialChars(entry->GetCommonFileName()), (LPCTSTR)_SpecialChars(entry->GetStrTagValue(TAG_DESCRIPTION)), - (LPCTSTR)_SpecialChars(GetRateString((UINT)entry->GetIntTagValue(TAG_FILERATING)) ) - ); + (LPCTSTR)_SpecialChars(GetRateString((UINT)entry->GetIntTagValue(TAG_FILERATING))) + ); } - Out.Replace(_T("[COMMENTLINES]"), commentlines ); + Out.Replace(_T("[COMMENTLINES]"), commentlines); - Out.Replace(_T("[COMMENTS]"), _T("") ); + Out.Replace(_T("[COMMENTS]"), _T("")); Out.Replace(_T("[USERNAME]"), GetResString(IDS_QL_USERNAME)); Out.Replace(_T("[FILENAME]"), GetResString(IDS_DL_FILENAME)); Out.Replace(_T("[COMMENT]"), GetResString(IDS_COMMENT)); Out.Replace(_T("[RATING]"), GetResString(IDS_QL_RATING)); Out.Replace(_T("[CLOSE]"), GetResString(IDS_CW_CLOSE)); - Out.Replace(_T("[CharSet]"), HTTPENCODING ); + Out.Replace(_T("[CharSet]"), HTTPENCODING); return Out; } \ No newline at end of file diff --git a/WebServer.h b/WebServer.h index 53eb7df5..20302a75 100644 --- a/WebServer.h +++ b/WebServer.h @@ -307,9 +307,9 @@ class CWebServer void RestartServer(); void AddStatsLine(UpDown line); void ReloadTemplates(); - UINT GetSessionCount() { return m_Params.Sessions.GetCount();} - bool IsRunning() const { return m_bServerWorking;} - CArray* GetPointsForWeb() {return &m_Params.PointsForWeb;} // MobileMule + UINT GetSessionCount() { return m_Params.Sessions.GetCount(); } + bool IsRunning() const { return m_bServerWorking; } + CArray* GetPointsForWeb() { return &m_Params.PointsForWeb; } // MobileMule protected: static void ProcessURL(const ThreadData& Data); static void ProcessFileReq(const ThreadData& Data); @@ -319,6 +319,7 @@ class CWebServer static CString _GetFooter(ThreadData); static CString _GetServerList(ThreadData); static CString _GetTransferList(ThreadData); + static CString _GetTransferJSONList(ThreadData); static CString _GetSharedFilesList(ThreadData); static CString _GetGraphs(ThreadData); static CString _GetLog(ThreadData); @@ -350,10 +351,10 @@ class CWebServer static void _GetPlainResString(CString *pstrOut, UINT nID, bool noquote = true); static int _GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level); CString _LoadTemplate(const CString& sAll, const CString& sTemplateName); - static Session GetSessionByID(ThreadData Data,long sessionID); + static Session GetSessionByID(ThreadData Data, long sessionID); static bool IsSessionAdmin(ThreadData Data, const CString &strSsessionID); static CString GetPermissionDenied(); - static CString _GetDownloadGraph(const ThreadData& Data,const CString& filehash); + static CString _GetDownloadGraph(const ThreadData& Data, const CString& filehash); static void InsertCatBox(CString &Out, int preselect, const CString& boxlabel, bool jump, bool extraCats, const CString& sSession, const CString& sFileHash, bool ed2kbox = false); static CString GetSubCatLabel(int iCat); static CString _GetRemoteLinkAddedOk(const ThreadData& Data); @@ -370,7 +371,7 @@ class CWebServer static CString GetClientversionImage(CUpDownClient* client); -// Common data + // Common data GlobalParams m_Params; WebTemplates m_Templates; bool m_bServerWorking; @@ -379,6 +380,6 @@ class CWebServer uint16 m_nIntruderDetect; bool m_bIsTempDisabled; uint32 m_nStartTempDisabledTime; - bool GetIsTempDisabled() const { return m_bIsTempDisabled; } + bool GetIsTempDisabled() const { return m_bIsTempDisabled; } ULONG m_ulCurIP; }; \ No newline at end of file diff --git a/WebSocket.cpp b/WebSocket.cpp index c2c6166d..897832dd 100644 --- a/WebSocket.cpp +++ b/WebSocket.cpp @@ -29,29 +29,29 @@ void CWebSocket::SetParent(CWebServer *pParent) m_pParent = pParent; } -void CWebSocket::OnRequestReceived(const char* pHeader, DWORD dwHeaderLen, const char* pData, DWORD dwDataLen, in_addr inad) +void CWebSocket::OnRequestReceived(const char* pHeader, DWORD dwHeaderLen, const char* pData, DWORD dwDataLen, in_addr inad) { CStringA sHeader(pHeader, dwHeaderLen); CStringA sData(pData, dwDataLen); CStringA sURL; - if(sHeader.Left(3) == "GET") + if (sHeader.Left(3) == "GET") sURL = sHeader.Trim(); - else if(sHeader.Left(4) == "POST") + else if (sHeader.Left(4) == "POST") sURL = "?" + sData.Trim(); // '?' to imitate GET syntax for ParseURL - if(sURL.Find(" ") > -1) - sURL = sURL.Mid(sURL.Find(" ")+1, sURL.GetLength()); - if(sURL.Find(" ") > -1) + if (sURL.Find(" ") > -1) + sURL = sURL.Mid(sURL.Find(" ") + 1, sURL.GetLength()); + if (sURL.Find(" ") > -1) sURL = sURL.Left(sURL.Find(" ")); - bool filereq = sURL.GetLength()>=3 && sURL.Find("..") < 0; // don't allow leaving the emule-webserver-folder for accessing files + bool filereq = sURL.GetLength() >= 3 && sURL.Find("..") < 0; // don't allow leaving the emule-webserver-folder for accessing files if (filereq) { CStringA ext(sURL.Right(5).MakeLower()); int i = ext.ReverseFind('.'); ext.Delete(0, i); - filereq = i>=0 && ext.GetLength()>2 && (ext==".gif" || ext==".jpg" || ext==".png" || ext==".ico" || ext==".css" || ext==".bmp" - || ext==".js" || ext==".jpeg"); + filereq = i >= 0 && ext.GetLength() > 2 && (ext == ".gif" || ext == ".jpg" || ext == ".png" || ext == ".ico" || ext == ".css" || ext == ".bmp" + || ext == ".js" || ext == ".jpeg"); } ThreadData Data; Data.sURL = sURL; @@ -77,7 +77,8 @@ void CWebSocket::OnReceived(void* pData, DWORD dwSize, in_addr inad) char* pNewBuf; try { pNewBuf = new char[m_dwBufSize = dwSize + m_dwRecv + SIZE_PRESERVE]; - } catch (...) + } + catch (...) { m_bValid = false; // internal problem return; @@ -124,7 +125,7 @@ void CWebSocket::OnReceived(void* pData, DWORD dwSize, in_addr inad) dwPos += sizeof(szMatch) - 1; pPtr = (char*)memchr(m_pBuf + dwPos, ':', m_dwHttpHeaderLen - dwPos); if (pPtr) - m_dwHttpContentLen = atol((pPtr) + 1); + m_dwHttpContentLen = atol((pPtr)+1); break; } @@ -154,7 +155,8 @@ void CWebSocket::OnReceived(void* pData, DWORD dwSize, in_addr inad) // move our data m_dwRecv -= m_dwHttpHeaderLen + m_dwHttpContentLen; MoveMemory(m_pBuf, m_pBuf + m_dwHttpHeaderLen + m_dwHttpContentLen, m_dwRecv); - } else + } + else m_dwRecv = 0; m_dwHttpHeaderLen = 0; @@ -172,7 +174,7 @@ void CWebSocket::SendData(const void* pData, DWORD dwDataSize) { // try to send it directly //-- remember: in "nRes" could be "-1" after "send" call - int nRes = send(m_hSocket, (const char*) pData, dwDataSize, 0); + int nRes = send(m_hSocket, (const char*)pData, dwDataSize, 0); if (((nRes < 0) || (nRes > (signed) dwDataSize)) && (WSAEWOULDBLOCK != WSAGetLastError())) { @@ -183,7 +185,7 @@ void CWebSocket::SendData(const void* pData, DWORD dwDataSize) //-- in nRes still could be "-1" (if WSAEWOULDBLOCK occured) //-- next to line should be like this: - ((const char*&) pData) += (nRes == -1 ? 0 : nRes); + ((const char*&)pData) += (nRes == -1 ? 0 : nRes); dwDataSize -= (nRes == -1 ? 0 : nRes); //-- ... and not like this: @@ -199,14 +201,16 @@ void CWebSocket::SendData(const void* pData, DWORD dwDataSize) CChunk* pChunk = NULL; try { pChunk = new CChunk; - } catch (...) { + } + catch (...) { return; } pChunk->m_pNext = NULL; pChunk->m_dwSize = dwDataSize; try { pChunk->m_pData = new char[dwDataSize]; - } catch (...) { + } + catch (...) { delete pChunk; // oops, no memory (???) return; } @@ -261,7 +265,8 @@ void CWebSocket::Disconnect() CChunk* pChunk; try { pChunk = new CChunk; - } catch (...) { + } + catch (...) { return; } pChunk->m_dwSize = 0; @@ -271,7 +276,8 @@ void CWebSocket::Disconnect() m_pTail->m_pNext = pChunk; - } else + } + else if (shutdown(m_hSocket, SD_SEND)) m_bValid = false; } @@ -287,7 +293,7 @@ UINT AFX_CDECL WebSocketAcceptedFunc(LPVOID pD) SocketData *pData = (SocketData *)pD; SOCKET hSocket = pData->hSocket; CWebServer *pThis = (CWebServer *)pData->pThis; - in_addr ad=pData->incomingaddr; + in_addr ad = pData->incomingaddr; delete pData; @@ -343,7 +349,7 @@ UINT AFX_CDECL WebSocketAcceptedFunc(LPVOID pD) stWebSocket.m_bValid = false; break; } - stWebSocket.OnReceived(pBuf, nRes,ad); + stWebSocket.OnReceived(pBuf, nRes, ad); } if (FD_CLOSE & stEvents.lNetworkEvents) @@ -356,20 +362,22 @@ UINT AFX_CDECL WebSocketAcceptedFunc(LPVOID pD) if (stWebSocket.m_pHead->m_pToSend) { int nRes = send(hSocket, stWebSocket.m_pHead->m_pToSend, stWebSocket.m_pHead->m_dwSize, 0); - if (nRes != (signed) stWebSocket.m_pHead->m_dwSize) + if (nRes != (signed)stWebSocket.m_pHead->m_dwSize) { if (nRes) - if ((nRes > 0) && (nRes < (signed) stWebSocket.m_pHead->m_dwSize)) + if ((nRes > 0) && (nRes < (signed)stWebSocket.m_pHead->m_dwSize)) { stWebSocket.m_pHead->m_pToSend += nRes; stWebSocket.m_pHead->m_dwSize -= nRes; - } else + } + else if (WSAEWOULDBLOCK != WSAGetLastError()) stWebSocket.m_bValid = false; break; } - } else + } + else if (shutdown(hSocket, SD_SEND)) { stWebSocket.m_bValid = false; @@ -398,9 +406,9 @@ UINT AFX_CDECL WebSocketAcceptedFunc(LPVOID pD) } delete[] stWebSocket.m_pBuf; } - VERIFY( CloseHandle(hEvent) ); + VERIFY(CloseHandle(hEvent)); } - VERIFY( !closesocket(hSocket) ); + VERIFY(!closesocket(hSocket)); return 0; } @@ -436,9 +444,9 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) for (;;) { struct sockaddr_in their_addr; - int sin_size = sizeof(struct sockaddr_in); + int sin_size = sizeof(struct sockaddr_in); - SOCKET hAccepted = accept(hSocket,(struct sockaddr *)&their_addr, &sin_size); + SOCKET hAccepted = accept(hSocket, (struct sockaddr *)&their_addr, &sin_size); if (INVALID_SOCKET == hAccepted) break; @@ -455,17 +463,17 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) } if (!bAllowedIP) { LogWarning(_T("Web Interface: Rejected connection attempt from %s"), (LPCTSTR)ipstr(their_addr.sin_addr.S_un.S_addr)); - VERIFY( !closesocket(hAccepted) ); + VERIFY(!closesocket(hAccepted)); break; } } - if(thePrefs.GetWSIsEnabled()) + if (thePrefs.GetWSIsEnabled()) { SocketData *pData = new SocketData; pData->hSocket = hAccepted; pData->pThis = pThis; - pData->incomingaddr=their_addr.sin_addr; + pData->incomingaddr = their_addr.sin_addr; // - do NOT use Windows API 'CreateThread' to create a thread which uses MFC/CRT -> lot of mem leaks! // - 'AfxBeginThread' could be used here, but creates a little too much overhead for our needs. @@ -474,22 +482,22 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) { delete pAcceptThread; pAcceptThread = NULL; - VERIFY( !closesocket(hAccepted) ); + VERIFY(!closesocket(hAccepted)); hAccepted = NULL; } } else { - VERIFY( !closesocket(hAccepted) ); + VERIFY(!closesocket(hAccepted)); hAccepted = NULL; } } } } - VERIFY( CloseHandle(hEvent) ); + VERIFY(CloseHandle(hEvent)); } } - VERIFY( !closesocket(hSocket) ); + VERIFY(!closesocket(hSocket)); } return 0; @@ -497,8 +505,8 @@ UINT AFX_CDECL WebSocketListeningFunc(LPVOID pThis) void StartSockets(CWebServer *pThis) { - ASSERT( s_hTerminate == NULL ); - ASSERT( s_pSocketThread == NULL ); + ASSERT(s_hTerminate == NULL); + ASSERT(s_pSocketThread == NULL); if ((s_hTerminate = CreateEvent(NULL, TRUE, FALSE, NULL)) != NULL) { // - do NOT use Windows API 'CreateThread' to create a thread which uses MFC/CRT -> lot of mem leaks! @@ -520,21 +528,21 @@ void StopSockets() { if (s_pSocketThread) { - VERIFY( SetEvent(s_hTerminate) ); + VERIFY(SetEvent(s_hTerminate)); if (s_pSocketThread->m_hThread) { // because we want to wait on the thread handle we must not use 'CWinThread::m_AutoDelete'. // otherwise we may run into the situation that the CWinThread was already auto-deleted and // the CWinThread::m_hThread is invalid. - ASSERT( !s_pSocketThread->m_bAutoDelete ); + ASSERT(!s_pSocketThread->m_bAutoDelete); DWORD dwWaitRes = WaitForSingleObject(s_pSocketThread->m_hThread, 1300); if (dwWaitRes == WAIT_TIMEOUT) { TRACE("*** Failed to wait for websocket thread termination - Timeout\n"); - VERIFY( TerminateThread(s_pSocketThread->m_hThread, (DWORD)-1) ); - VERIFY( CloseHandle(s_pSocketThread->m_hThread) ); + VERIFY(TerminateThread(s_pSocketThread->m_hThread, (DWORD)-1)); + VERIFY(CloseHandle(s_pSocketThread->m_hThread)); } else if (dwWaitRes == (UINT)-1) { @@ -545,8 +553,8 @@ void StopSockets() delete s_pSocketThread; s_pSocketThread = NULL; } - if (s_hTerminate){ - VERIFY( CloseHandle(s_hTerminate) ); + if (s_hTerminate) { + VERIFY(CloseHandle(s_hTerminate)); s_hTerminate = NULL; } } \ No newline at end of file diff --git a/WebSocket.h b/WebSocket.h index cd7e4196..e40c2084 100644 --- a/WebSocket.h +++ b/WebSocket.h @@ -5,13 +5,13 @@ class CWebServer; void StartSockets(CWebServer *pThis); void StopSockets(); -class CWebSocket +class CWebSocket { public: void SetParent(CWebServer *); CWebServer* m_pParent; - class CChunk + class CChunk { public: char* m_pData; @@ -44,5 +44,5 @@ class CWebSocket void SendReply(LPCSTR szReply); void Disconnect(); - void OnRequestReceived(const char* pHeader, DWORD dwHeaderLen, const char* pData, DWORD dwDataLen , in_addr inad); + void OnRequestReceived(const char* pHeader, DWORD dwHeaderLen, const char* pData, DWORD dwDataLen, in_addr inad); };