From: <arn...@us...> - 2006-09-19 19:21:18
|
Revision: 653 http://svn.sourceforge.net/dcplusplus/?rev=653&view=rev Author: arnetheduck Date: 2006-09-19 12:20:45 -0700 (Tue, 19 Sep 2006) Log Message: ----------- search socket fix, init order Modified Paths: -------------- dcplusplus/trunk/DCPlusPlus.rc dcplusplus/trunk/Example.xml dcplusplus/trunk/changelog.txt dcplusplus/trunk/client/AdcHub.cpp dcplusplus/trunk/client/ConnectionManager.cpp dcplusplus/trunk/client/ConnectionManager.h dcplusplus/trunk/client/SearchManager.cpp dcplusplus/trunk/client/SearchManager.h dcplusplus/trunk/client/StringDefs.cpp dcplusplus/trunk/client/StringDefs.h dcplusplus/trunk/client/version.h dcplusplus/trunk/windows/SearchFrm.cpp dcplusplus/trunk/windows/main.cpp Modified: dcplusplus/trunk/DCPlusPlus.rc =================================================================== --- dcplusplus/trunk/DCPlusPlus.rc 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/DCPlusPlus.rc 2006-09-19 19:20:45 UTC (rev 653) @@ -942,8 +942,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,6,9,5 - PRODUCTVERSION 0,6,9,5 + FILEVERSION 0,6,9,6 + PRODUCTVERSION 0,6,9,6 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -960,12 +960,12 @@ BEGIN VALUE "Comments", "http://dcplusplus.sourceforge.net" VALUE "FileDescription", "DC++" - VALUE "FileVersion", "0, 6, 9, 5" + VALUE "FileVersion", "0, 6, 9, 6" VALUE "InternalName", "DC++" VALUE "LegalCopyright", "Copyright 2001-2006 Jacek Sieka" VALUE "OriginalFilename", "DCPlusPlus.exe" VALUE "ProductName", "DC++" - VALUE "ProductVersion", "0, 6, 9, 5" + VALUE "ProductVersion", "0, 6, 9, 6" END END BLOCK "VarFileInfo" Modified: dcplusplus/trunk/Example.xml =================================================================== --- dcplusplus/trunk/Example.xml 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/Example.xml 2006-09-19 19:20:45 UTC (rev 653) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<Language Name="Example Language" Native="English" Code="en" Author="arnetheduck" Version="0.695" Revision="1" RightToLeft="0"> +<Language Name="Example Language" Native="English" Code="en" Author="arnetheduck" Version="0.696" Revision="1" RightToLeft="0"> <Strings> <String Name="Active">Active</String> <String Name="ActiveSearchString">Enabled / Search String</String> @@ -304,6 +304,7 @@ <String Name="NoUsers">No users</String> <String Name="NoUsersToDownloadFrom">No users to download from</String> <String Name="Normal">Normal</String> + <String Name="NotListening">Not listening for connections - please restart DC++</String> <String Name="Notepad">Notepad</String> <String Name="Offline">Offline</String> <String Name="Online">Online</String> Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/changelog.txt 2006-09-19 19:20:45 UTC (rev 653) @@ -1,4 +1,4 @@ --- -- +-- 0.696 -- * Fixed a possible deadlock * [bug 1058] Removed some whitespace (big thanks to pothead) * Removed the possibility to download files without TTH Modified: dcplusplus/trunk/client/AdcHub.cpp =================================================================== --- dcplusplus/trunk/client/AdcHub.cpp 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/AdcHub.cpp 2006-09-19 19:20:45 UTC (rev 653) @@ -30,6 +30,8 @@ #include "UserCommand.h" #include "FavoriteManager.h" #include "CryptoManager.h" +#include "ResourceManager.h" +#include "LogManager.h" const string AdcHub::CLIENT_PROTOCOL("ADC/0.10"); const string AdcHub::SECURE_CLIENT_PROTOCOL("ADCS/0.10"); @@ -383,7 +385,11 @@ const string& proto = secure ? SECURE_CLIENT_PROTOCOL : CLIENT_PROTOCOL; short port = secure ? ConnectionManager::getInstance()->getSecurePort() : ConnectionManager::getInstance()->getPort(); - + if(port == 0) { + // Oops? + LogManager::getInstance()->message(STRING(NOT_LISTENING)); + return; + } if(ClientManager::getInstance()->isActive()) { send(AdcCommand(AdcCommand::CMD_CTM, user.getIdentity().getSID()).addParam(proto).addParam(Util::toString(port)).addParam(token)); } else { Modified: dcplusplus/trunk/client/ConnectionManager.cpp =================================================================== --- dcplusplus/trunk/client/ConnectionManager.cpp 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/ConnectionManager.cpp 2006-09-19 19:20:45 UTC (rev 653) @@ -51,6 +51,7 @@ server = new Server(false, port, SETTING(BIND_ADDRESS)); if(!CryptoManager::getInstance()->TLSOk()) { + dcdebug("Skipping secure port: %d\n", SETTING(USE_TLS)); return; } Modified: dcplusplus/trunk/client/ConnectionManager.h =================================================================== --- dcplusplus/trunk/client/ConnectionManager.h 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/ConnectionManager.h 2006-09-19 19:20:45 UTC (rev 653) @@ -115,8 +115,8 @@ void listen() throw(SocketException); void disconnect() throw(); - unsigned short getPort() { return static_cast<unsigned short>(server->getPort()); } - unsigned short getSecurePort() { return static_cast<unsigned short>(secureServer->getPort()); } + unsigned short getPort() { return server ? static_cast<unsigned short>(server->getPort()) : 0; } + unsigned short getSecurePort() { return secureServer ? static_cast<unsigned short>(secureServer->getPort()) : 0; } private: class Server : public Thread { Modified: dcplusplus/trunk/client/SearchManager.cpp =================================================================== --- dcplusplus/trunk/client/SearchManager.cpp 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/SearchManager.cpp 2006-09-19 19:20:45 UTC (rev 653) @@ -96,37 +96,14 @@ return getFile().substr(i + 1); } -void SearchManager::listen() throw(Exception) { - unsigned short lastPort = (unsigned short)SETTING(UDP_PORT); +void SearchManager::listen() throw(SocketException) { - if(lastPort == 0) - lastPort = (unsigned short)Util::rand(1025, 32000); - - unsigned short firstPort = lastPort; - disconnect(); - while(true) { - try { - if(socket != NULL) { - disconnect(); - } else { - socket = new Socket(); - } + socket = new Socket(); + socket->create(Socket::TYPE_UDP); + port = socket->bind(static_cast<short>(SETTING(UDP_PORT))); - socket->create(Socket::TYPE_UDP); - socket->bind(lastPort); - port = lastPort; - break; - } catch(const Exception&) { - short newPort = (short)((lastPort == 32000) ? 1025 : lastPort + 1); - if(!SettingsManager::getInstance()->isDefault(SettingsManager::UDP_PORT) || (firstPort == newPort)) { - throw Exception("Could not find a suitable free port"); - } - lastPort = newPort; - } - } - start(); } Modified: dcplusplus/trunk/client/SearchManager.h =================================================================== --- dcplusplus/trunk/client/SearchManager.h 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/SearchManager.h 2006-09-19 19:20:45 UTC (rev 653) @@ -38,6 +38,7 @@ #include "AdcCommand.h" class SearchManager; +class SocketException; class SearchResult : public FastAlloc<SearchResult> { public: @@ -146,7 +147,7 @@ return port; } - void listen() throw(Exception); + void listen() throw(SocketException); void disconnect() throw(); void onSearchResult(const string& aLine) { onData((const u_int8_t*)aLine.data(), aLine.length(), Util::emptyString); Modified: dcplusplus/trunk/client/StringDefs.cpp =================================================================== --- dcplusplus/trunk/client/StringDefs.cpp 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/StringDefs.cpp 2006-09-19 19:20:45 UTC (rev 653) @@ -305,6 +305,7 @@ "No users", "No users to download from", "Normal", +"Not listening for connections - please restart DC++", "Notepad", "Offline", "Online", @@ -931,6 +932,7 @@ "NoUsers", "NoUsersToDownloadFrom", "Normal", +"NotListening", "Notepad", "Offline", "Online", Modified: dcplusplus/trunk/client/StringDefs.h =================================================================== --- dcplusplus/trunk/client/StringDefs.h 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/StringDefs.h 2006-09-19 19:20:45 UTC (rev 653) @@ -308,6 +308,7 @@ NO_USERS, // "No users" NO_USERS_TO_DOWNLOAD_FROM, // "No users to download from" NORMAL, // "Normal" + NOT_LISTENING, // "Not listening for connections - please restart DC++" NOTEPAD, // "Notepad" OFFLINE, // "Offline" ONLINE, // "Online" Modified: dcplusplus/trunk/client/version.h =================================================================== --- dcplusplus/trunk/client/version.h 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/client/version.h 2006-09-19 19:20:45 UTC (rev 653) @@ -17,8 +17,8 @@ */ #define APPNAME "DC++" -#define VERSIONSTRING "0.695" -#define VERSIONFLOAT 0.695 +#define VERSIONSTRING "0.696" +#define VERSIONFLOAT 0.696 /* Update the .rc file as well... */ Modified: dcplusplus/trunk/windows/SearchFrm.cpp =================================================================== --- dcplusplus/trunk/windows/SearchFrm.cpp 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/windows/SearchFrm.cpp 2006-09-19 19:20:45 UTC (rev 653) @@ -778,7 +778,9 @@ ucParams["fileFN"] = sr->getFile(); ucParams["fileSI"] = Util::toString(sr->getSize()); ucParams["fileSIshort"] = Util::formatBytes(sr->getSize()); - ucParams["fileTR"] = sr->getTTH().toBase32(); + if(sr->getType() == SearchResult::TYPE_FILE) { + ucParams["fileTR"] = sr->getTTH().toBase32(); + } // compatibility with 0.674 and earlier ucParams["file"] = ucParams["fileFN"]; @@ -854,8 +856,9 @@ if(ctrlResults.GetSelectedCount() == 1) { int i = ctrlResults.GetNextItem(-1, LVNI_SELECTED); SearchResult* sr = ctrlResults.getItemData(i)->sr; - - WinUtil::searchHash(sr->getTTH()); + if(sr->getType() == SearchResult::TYPE_FILE) { + WinUtil::searchHash(sr->getTTH()); + } } return 0; @@ -865,7 +868,9 @@ if(ctrlResults.GetSelectedCount() == 1) { int i = ctrlResults.GetNextItem(-1, LVNI_SELECTED); SearchResult* sr = ctrlResults.getItemData(i)->sr; - WinUtil::bitziLink(sr->getTTH()); + if(sr->getType() == SearchResult::TYPE_FILE) { + WinUtil::bitziLink(sr->getTTH()); + } } return 0; } @@ -874,7 +879,9 @@ if(ctrlResults.GetSelectedCount() == 1) { int i = ctrlResults.GetNextItem(-1, LVNI_SELECTED); SearchResult* sr = ctrlResults.getItemData(i)->sr; - WinUtil::copyMagnet(sr->getTTH(), Text::toT(sr->getFileName())); + if(sr->getType() == SearchResult::TYPE_FILE) { + WinUtil::copyMagnet(sr->getTTH(), Text::toT(sr->getFileName())); + } } return 0; } @@ -1140,7 +1147,9 @@ if(!tmpCountry.empty()) columns[COLUMN_IP] = tmpCountry + _T(" (") + columns[COLUMN_IP] + _T(")"); } - columns[COLUMN_TTH] = Text::toT(sr->getTTH().toBase32()); + if(sr->getType() == SearchResult::TYPE_FILE) { + columns[COLUMN_TTH] = Text::toT(sr->getTTH().toBase32()); + } columns[COLUMN_CID] = Text::toT(sr->getUser()->getCID().toBase32()); } Modified: dcplusplus/trunk/windows/main.cpp =================================================================== --- dcplusplus/trunk/windows/main.cpp 2006-09-19 13:00:44 UTC (rev 652) +++ dcplusplus/trunk/windows/main.cpp 2006-09-19 19:20:45 UTC (rev 653) @@ -212,8 +212,6 @@ CMessageLoop theLoop; _Module.AddMessageLoop(&theLoop); - MainFrame wndMain; - CEdit dummy; CEdit splash; @@ -249,6 +247,8 @@ SettingsManager::getInstance()->setDefault(SettingsManager::BACKGROUND_COLOR, (int)(GetSysColor(COLOR_WINDOW))); SettingsManager::getInstance()->setDefault(SettingsManager::TEXT_COLOR, (int)(GetSysColor(COLOR_WINDOWTEXT))); + MainFrame wndMain; + rc = wndMain.rcDefault; if( (SETTING(MAIN_WINDOW_POS_X) != CW_USEDEFAULT) && This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |