|
From: <arn...@us...> - 2008-03-01 22:00:50
|
Revision: 1020
http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=1020&view=rev
Author: arnetheduck
Date: 2008-03-01 14:00:01 -0800 (Sat, 01 Mar 2008)
Log Message:
-----------
auto-coral all urls, mem leak fix
Modified Paths:
--------------
dcplusplus/trunk/changelog.txt
dcplusplus/trunk/dcpp/BufferedSocket.cpp
dcplusplus/trunk/dcpp/CryptoManager.cpp
dcplusplus/trunk/dcpp/FavoriteManager.h
dcplusplus/trunk/dcpp/HttpConnection.cpp
dcplusplus/trunk/dcpp/SettingsManager.cpp
dcplusplus/trunk/dcpp/SettingsManager.h
dcplusplus/trunk/win32/AboutDlg.cpp
dcplusplus/trunk/win32/AdvancedPage.cpp
dcplusplus/trunk/win32/MainWindow.cpp
Modified: dcplusplus/trunk/changelog.txt
===================================================================
--- dcplusplus/trunk/changelog.txt 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/changelog.txt 2008-03-01 22:00:01 UTC (rev 1020)
@@ -39,7 +39,9 @@
* Fixed clicking on active tab (poy)
* [L#195209] Fixed tabbing in hub windows (poy)
* [L#195209] Fixed Ctrl+F that opens favorite hubs (poy)
+* [L#194696] Fixed small memory leak
+
-- 0.704 2007-12-14 --
* Hub lists added to utilize Coral's distributed network (ullner)
* Use system header arrows on common controls 6+ (thanks poy)
Modified: dcplusplus/trunk/dcpp/BufferedSocket.cpp
===================================================================
--- dcplusplus/trunk/dcpp/BufferedSocket.cpp 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/dcpp/BufferedSocket.cpp 2008-03-01 22:00:01 UTC (rev 1020)
@@ -411,30 +411,34 @@
continue;
}
- switch(p.first) {
- case SEND_DATA:
- threadSendData(); break;
- case SEND_FILE:
- threadSendFile(((SendFileInfo*)p.second)->stream); break;
- case CONNECT:
- {
- ConnectInfo* ci = (ConnectInfo*)p.second;
- threadConnect(ci->addr, ci->port, ci->proxy);
+ try {
+ switch(p.first) {
+ case SEND_DATA:
+ threadSendData(); break;
+ case SEND_FILE:
+ threadSendFile(((SendFileInfo*)p.second)->stream); break;
+ case CONNECT:
+ {
+ ConnectInfo* ci = (ConnectInfo*)p.second;
+ threadConnect(ci->addr, ci->port, ci->proxy);
+ break;
+ }
+ case DISCONNECT:
+ if(isConnected())
+ fail(_("Disconnected"));
break;
- }
- case DISCONNECT:
- if(isConnected())
- fail(_("Disconnected"));
- break;
- case SHUTDOWN:
- return false;
- case ACCEPTED:
- break;
- case UPDATED:
- fire(BufferedSocketListener::Updated());
- break;
+ case SHUTDOWN:
+ return false;
+ case ACCEPTED:
+ break;
+ case UPDATED:
+ fire(BufferedSocketListener::Updated());
+ break;
+ }
+ } catch(...) {
+ delete p.second;
+ throw;
}
-
delete p.second;
}
return true;
Modified: dcplusplus/trunk/dcpp/CryptoManager.cpp
===================================================================
--- dcplusplus/trunk/dcpp/CryptoManager.cpp 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/dcpp/CryptoManager.cpp 2008-03-01 22:00:01 UTC (rev 1020)
@@ -149,7 +149,7 @@
ssl::X509 x509ss(X509_new());
if(!bn || !rsa || !pkey || !nm || !x509ss) {
- throw new CryptoException("Error creating objects for cert generation");
+ throw CryptoException("Error creating objects for cert generation");
}
int days = 10;
Modified: dcplusplus/trunk/dcpp/FavoriteManager.h
===================================================================
--- dcplusplus/trunk/dcpp/FavoriteManager.h 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/dcpp/FavoriteManager.h 2008-03-01 22:00:01 UTC (rev 1020)
@@ -122,6 +122,7 @@
int lastServer;
HubTypes listType;
string downloadBuf;
+ bool coral; ///< Currently downloading from a coraled list
/** Used during loading to prevent saving. */
bool dontSave;
Modified: dcplusplus/trunk/dcpp/HttpConnection.cpp
===================================================================
--- dcplusplus/trunk/dcpp/HttpConnection.cpp 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/dcpp/HttpConnection.cpp 2008-03-01 22:00:01 UTC (rev 1020)
@@ -26,6 +26,8 @@
namespace dcpp {
+static const std::string CORAL_SUFFIX = ".nyud.net";
+
/**
* Downloads a file and returns it as a string
* @todo Report exceptions
@@ -61,6 +63,12 @@
Util::decodeUrl(SETTING(HTTP_PROXY), server, port, file);
file = currentUrl;
}
+
+ if(SETTING(CORAL)) {
+ if(server.length() > CORAL_SUFFIX.length() && server.compare(server.length() - CORAL_SUFFIX.length(), CORAL_SUFFIX.length(), CORAL_SUFFIX) != 0) {
+ server += CORAL_SUFFIX;
+ }
+ }
if(port == 0)
port = 80;
Modified: dcplusplus/trunk/dcpp/SettingsManager.cpp
===================================================================
--- dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-03-01 22:00:01 UTC (rev 1020)
@@ -77,7 +77,7 @@
"UseTLS", "AutoSearchLimit", "AltSortOrder", "AutoKickNoFavs", "PromptPassword", "SpyFrameIgnoreTthSearches",
"DontDlAlreadyQueued", "MaxCommandLength", "AllowUntrustedHubs", "AllowUntrustedClients",
"TLSPort", "FastHash", "SortFavUsersFirst", "ShowShellMenu", "MinSegmentSize", "FollowLinks",
- "SendBloom", "OwnerDrawnMenus",
+ "SendBloom", "OwnerDrawnMenus", "Coral",
"SENTRY",
// Int64
"TotalUpload", "TotalDownload",
@@ -136,7 +136,7 @@
setDefault(IGNORE_BOT_PMS, false);
setDefault(LIST_DUPES, true);
setDefault(BUFFER_SIZE, 64);
- setDefault(HUBLIST_SERVERS, "http://hublist.hubtracker.com.nyud.net/hublist.xml.bz2;http://dchublist.com.nyud.net/hublist.xml.bz2;http://adchublist.com.nyud.net/hublist.xml.bz2;http://www.hublist.org.nyud.net/PublicHubList.xml.bz2;http://dclist.eu.nyud.net/hublist.xml.bz2;http://download.hublist.cz.nyud.net/hublist.xml.bz2;http://hublist.awenet.info.nyud.net/PublicHubList.xml.bz2");
+ setDefault(HUBLIST_SERVERS, "http://hublist.hubtracker.com/hublist.xml.bz2;http://dchublist.com/hublist.xml.bz2;http://adchublist.com/hublist.xml.bz2;http://www.hublist.org/PublicHubList.xml.bz2;http://dclist.eu/hublist.xml.bz2;http://download.hublist.cz/hublist.xml.bz2;http://hublist.awenet.info/PublicHubList.xml.bz2");
setDefault(DOWNLOAD_SLOTS, 3);
setDefault(MAX_DOWNLOAD_SPEED, 0);
setDefault(LOG_DIRECTORY, Util::getConfigPath() + "Logs" PATH_SEPARATOR_STR);
@@ -274,7 +274,8 @@
setDefault(FOLLOW_LINKS, false);
setDefault(SEND_BLOOM, true);
setDefault(OWNER_DRAWN_MENUS, true);
-
+ setDefault(CORAL, true);
+
#ifdef _WIN32
setDefault(MAIN_WINDOW_STATE, SW_SHOWNORMAL);
setDefault(MAIN_WINDOW_SIZE_X, CW_USEDEFAULT);
Modified: dcplusplus/trunk/dcpp/SettingsManager.h
===================================================================
--- dcplusplus/trunk/dcpp/SettingsManager.h 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/dcpp/SettingsManager.h 2008-03-01 22:00:01 UTC (rev 1020)
@@ -90,7 +90,7 @@
USE_TLS, AUTO_SEARCH_LIMIT, ALT_SORT_ORDER, AUTO_KICK_NO_FAVS, PROMPT_PASSWORD, SPY_FRAME_IGNORE_TTH_SEARCHES,
DONT_DL_ALREADY_QUEUED, MAX_COMMAND_LENGTH, ALLOW_UNTRUSTED_HUBS, ALLOW_UNTRUSTED_CLIENTS,
TLS_PORT, FAST_HASH, SORT_FAVUSERS_FIRST, SHOW_SHELL_MENU, MIN_SEGMENT_SIZE, FOLLOW_LINKS,
- SEND_BLOOM, OWNER_DRAWN_MENUS,
+ SEND_BLOOM, OWNER_DRAWN_MENUS, CORAL,
INT_LAST };
enum Int64Setting { INT64_FIRST = INT_LAST + 1,
Modified: dcplusplus/trunk/win32/AboutDlg.cpp
===================================================================
--- dcplusplus/trunk/win32/AboutDlg.cpp 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/win32/AboutDlg.cpp 2008-03-01 22:00:01 UTC (rev 1020)
@@ -67,7 +67,7 @@
centerWindow();
c.addListener(this);
- c.downloadFile("http://dcplusplus.sourceforge.net.nyud.net/version.xml");
+ c.downloadFile("http://dcplusplus.sourceforge.net/version.xml");
return false;
}
Modified: dcplusplus/trunk/win32/AdvancedPage.cpp
===================================================================
--- dcplusplus/trunk/win32/AdvancedPage.cpp 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/win32/AdvancedPage.cpp 2008-03-01 22:00:01 UTC (rev 1020)
@@ -47,6 +47,7 @@
{ SettingsManager::AUTO_KICK_NO_FAVS, N_("Don't automatically disconnect favorite users who leave the hub") },
{ SettingsManager::SHOW_SHELL_MENU, N_("Show shell menu where possible") },
{ SettingsManager::OWNER_DRAWN_MENUS, N_("Use extended menus with icons and titles") },
+ { SettingsManager::CORAL, N_("Use Coral network when downloading hub lists (improves reliability)") },
{ 0, 0 }
};
Modified: dcplusplus/trunk/win32/MainWindow.cpp
===================================================================
--- dcplusplus/trunk/win32/MainWindow.cpp 2008-02-29 22:58:00 UTC (rev 1019)
+++ dcplusplus/trunk/win32/MainWindow.cpp 2008-03-01 22:00:01 UTC (rev 1020)
@@ -106,7 +106,7 @@
c = new HttpConnection;
c->addListener(this);
- c->downloadFile("http://dcplusplus.sourceforge.net.nyud.net/version.xml");
+ c->downloadFile("http://dcplusplus.sourceforge.net/version.xml");
File::ensureDirectory(SETTING(LOG_DIRECTORY));
startSocket();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|