You can subscribe to this list here.
2006 |
Jan
|
Feb
(24) |
Mar
(9) |
Apr
(4) |
May
(7) |
Jun
(13) |
Jul
(19) |
Aug
(1) |
Sep
(12) |
Oct
(20) |
Nov
(1) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(6) |
Mar
(24) |
Apr
(1) |
May
(10) |
Jun
(30) |
Jul
(46) |
Aug
(20) |
Sep
(12) |
Oct
(27) |
Nov
(51) |
Dec
(58) |
2008 |
Jan
(40) |
Feb
(40) |
Mar
(78) |
Apr
(138) |
May
(4) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(5) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
(2) |
Jul
(10) |
Aug
(1) |
Sep
(11) |
Oct
(31) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(2) |
Sep
|
Oct
|
Nov
(2) |
Dec
(2) |
2013 |
Jan
(3) |
Feb
(5) |
Mar
(1) |
Apr
|
May
|
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2014 |
Jan
(2) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <arn...@us...> - 2007-11-16 17:34:39
|
Revision: 910 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=910&view=rev Author: arnetheduck Date: 2007-11-16 09:34:06 -0800 (Fri, 16 Nov 2007) Log Message: ----------- Client type changed slightly Modified Paths: -------------- dcplusplus/trunk/ADC.txt Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-15 19:04:32 UTC (rev 909) +++ dcplusplus/trunk/ADC.txt 2007-11-16 17:34:06 UTC (rev 910) @@ -477,7 +477,7 @@ HR | integer | Hubs where user is registered (had to supply password) and in NORMAL state HO | integer | Hubs where user is op and in NORMAL state TO | string | Token, as received in RCM/CTM, when establishing a C-C connection. -CT | integer | Client (user) type, 1=bot, 2=registered user, 3=operator, 4=hub owner, 5=hub (used when the hub sends an INF about itself) +CT | integer | Client (user) type, 1=bot, 2=registered user, 4=operator, 8=hub owner, 16=hub (used when the hub sends an INF about itself). Multiple types are specified by adding the numbers together. AW | integer | 1=Away, 2=Extended away, not interested in hub chat (hubs may skip sending broadcast type MSG commands to clients with this flag) SU | string | Comma-separated list of feature FOURCC's. This notifies other clients of extended capabilities of the connecting client. Use with discretion. ___ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-15 19:04:50
|
Revision: 909 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=909&view=rev Author: arnetheduck Date: 2007-11-15 11:04:32 -0800 (Thu, 15 Nov 2007) Log Message: ----------- Update wording Modified Paths: -------------- dcplusplus/trunk/ADC.txt Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-15 18:25:09 UTC (rev 908) +++ dcplusplus/trunk/ADC.txt 2007-11-15 19:04:32 UTC (rev 909) @@ -536,7 +536,6 @@ GE | Larger (greater) than or equal size in bytes EQ | Exact size in bytes TO | Token, string. Used by the client to tell one search from the other. If present, the responding client must copy this field to each search result. -TR | Tiger tree hash root, encoded with base32. TY | File type, to be chosen from the following (none specified = any type): 1 = File, 2 = Directory ___ @@ -550,7 +549,7 @@ Contexts: F, T, C, U Search result, made up of fields syntactically and structurally similar to the -INF ones. Clients must provide filename, TTH root, size and token, but are +INF ones. Clients must provide filename, session hash, size and token, but are encouraged to supply additional fields if available. Passive results should be limited to 5 and active to 10. @@ -725,13 +724,14 @@ as CID generation and password negotiation ==== TIGR for shared files -TIGR supporting clients must share only files hashed using Merkle Hash trees, -as defined by http://www.open-content.net/specs/draft-jchapweske-thex-02.html. -The Tiger algorithm, as specified by -http://www.cs.technion.ac.il/~biham/Reports/Tiger/ functions as the hash -algorithm. A base segment size of 1024 bytes must be used when generating the -tree, but clients may then discard parts of the tree as long as at least 7 -levels are kept or a block granularity of 64 KiB is achieved. +All files shared by TIGR supporting clients must have been hashed using Merkle +Hash trees, as defined by +http://www.open-content.net/specs/draft-jchapweske-thex-02.html. The Tiger +algorithm, as specified by http://www.cs.technion.ac.il/~biham/Reports/Tiger/ +functions as the hash algorithm. A base segment size of 1024 bytes must be +used when generating the tree, but clients may then discard parts of the tree +as long as at least 7 levels are kept or a block granularity of 64 KiB is +achieved. Generally, the root of the tree (TTH) serves to identify a file uniquely. Searches use it and it must be present in the file list. Further, the root of This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-15 18:25:15
|
Revision: 908 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=908&view=rev Author: arnetheduck Date: 2007-11-15 10:25:09 -0800 (Thu, 15 Nov 2007) Log Message: ----------- patches Modified Paths: -------------- dcplusplus/trunk/ADC.txt dcplusplus/trunk/changelog.txt dcplusplus/trunk/smartwin/include/smartwin/GCCHeaders.h dcplusplus/trunk/smartwin/include/smartwin/VCDesktopHeaders.h dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp dcplusplus/trunk/win32/WinUtil.cpp Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-15 16:00:50 UTC (rev 907) +++ dcplusplus/trunk/ADC.txt 2007-11-15 18:25:09 UTC (rev 908) @@ -478,7 +478,6 @@ HO | integer | Hubs where user is op and in NORMAL state TO | string | Token, as received in RCM/CTM, when establishing a C-C connection. CT | integer | Client (user) type, 1=bot, 2=registered user, 3=operator, 4=hub owner, 5=hub (used when the hub sends an INF about itself) -RG | integer | 1=registered AW | integer | 1=Away, 2=Extended away, not interested in hub chat (hubs may skip sending broadcast type MSG commands to clients with this flag) SU | string | Comma-separated list of feature FOURCC's. This notifies other clients of extended capabilities of the connecting client. Use with discretion. ___ Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2007-11-15 16:00:50 UTC (rev 907) +++ dcplusplus/trunk/changelog.txt 2007-11-15 18:25:09 UTC (rev 908) @@ -10,6 +10,8 @@ * Update to ADC 0.14 * Fixed pressing enter in the notepad (poy) * Fixed user commands params (poy) +* Readded list view double buffering (thanks poy) +* Fixed some msvc compile issues (thanks james ross) -- 0.703 2007-11-08 -- * Fixed invalid strings (thanks james ross) Modified: dcplusplus/trunk/smartwin/include/smartwin/GCCHeaders.h =================================================================== --- dcplusplus/trunk/smartwin/include/smartwin/GCCHeaders.h 2007-11-15 16:00:50 UTC (rev 907) +++ dcplusplus/trunk/smartwin/include/smartwin/GCCHeaders.h 2007-11-15 18:25:09 UTC (rev 908) @@ -135,6 +135,19 @@ #endif // !_WIN64 #endif // !GetWindowLongPtr + // these should be defined in CommCtrl.h, but the one in MinGW doesn't define them... (2007-11-06) + #if (_WIN32_WINNT >= 0x0501) + #ifndef HDF_SORTUP + #define HDF_SORTUP 0x0400 + #endif + #ifndef HDF_SORTDOWN + #define HDF_SORTDOWN 0x0200 + #endif + #ifndef LVS_EX_DOUBLEBUFFER + #define LVS_EX_DOUBLEBUFFER 0x00010000 + #endif + #endif + #ifdef max #undef max #endif Modified: dcplusplus/trunk/smartwin/include/smartwin/VCDesktopHeaders.h =================================================================== --- dcplusplus/trunk/smartwin/include/smartwin/VCDesktopHeaders.h 2007-11-15 16:00:50 UTC (rev 907) +++ dcplusplus/trunk/smartwin/include/smartwin/VCDesktopHeaders.h 2007-11-15 18:25:09 UTC (rev 908) @@ -31,6 +31,17 @@ #ifndef __GNUC__ #ifndef WINCE + // Need to tell msvc which version of Windows we're targeting! +#ifndef _WIN32_WINNT + #define _WIN32_WINNT 0x0501 +#endif +#ifndef _WIN32_IE + #define _WIN32_IE 0x0501 +#endif +#ifndef WINVER + #define WINVER 0x501 +#endif + static const SmartWin::Platform CurrentPlatform = SmartWin::SmartWinDesktop; #define SMARTWIN_WNDCLASSEX WNDCLASSEX @@ -42,18 +53,11 @@ #include <winuser.h> #include <windowsx.h> #include <Shellapi.h> + #include <shlwapi.h> #include <commctrl.h> + #include <commdlg.h> #include <assert.h> -/* No longer needed because we replaced std:min() with (std:min)() - #ifdef max - #undef max - #endif - - #ifdef min - #undef min - #endif -*/ #pragma comment( lib, "Comdlg32.lib" ) #pragma comment( lib, "comctl32.lib" ) #ifdef DLL Modified: dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp =================================================================== --- dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp 2007-11-15 16:00:50 UTC (rev 907) +++ dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp 2007-11-15 18:25:09 UTC (rev 908) @@ -61,15 +61,6 @@ updateArrow(); } -// these should be defined in CommCtrl.h, but the one in MinGW doesn't define them... (2007-11-06) -#if (_WIN32_WINNT >= 0x0501) -#ifndef HDF_SORTUP -#define HDF_SORTUP 0x0400 -#endif -#ifndef HDF_SORTDOWN -#define HDF_SORTDOWN 0x0200 -#endif -#endif void WidgetListView::updateArrow() { if(ComCtl6) { int flag = isAscending() ? HDF_SORTUP : HDF_SORTDOWN; Modified: dcplusplus/trunk/win32/WinUtil.cpp =================================================================== --- dcplusplus/trunk/win32/WinUtil.cpp 2007-11-15 16:00:50 UTC (rev 907) +++ dcplusplus/trunk/win32/WinUtil.cpp 2007-11-15 18:25:09 UTC (rev 908) @@ -132,7 +132,7 @@ xlistView.style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS; xlistView.exStyle = WS_EX_CLIENTEDGE; - xlistView.lvStyle = LVS_EX_LABELTIP | LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT; + xlistView.lvStyle = LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT | LVS_EX_LABELTIP | LVS_EX_DOUBLEBUFFER; xlistView.font = font; xtextBox.exStyle = WS_EX_CLIENTEDGE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2007-11-15 16:00:58
|
Revision: 907 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=907&view=rev Author: zouzou123gen Date: 2007-11-15 08:00:50 -0800 (Thu, 15 Nov 2007) Log Message: ----------- user command params fixed, kicking should work Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/win32/HubFrame.cpp Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2007-11-15 14:26:12 UTC (rev 906) +++ dcplusplus/trunk/changelog.txt 2007-11-15 16:00:50 UTC (rev 907) @@ -9,6 +9,7 @@ * Fixed clicking in the header of the favorite hubs list view (poy) * Update to ADC 0.14 * Fixed pressing enter in the notepad (poy) +* Fixed user commands params (poy) -- 0.703 2007-11-08 -- * Fixed invalid strings (thanks james ross) Modified: dcplusplus/trunk/win32/HubFrame.cpp =================================================================== --- dcplusplus/trunk/win32/HubFrame.cpp 2007-11-15 14:26:12 UTC (rev 906) +++ dcplusplus/trunk/win32/HubFrame.cpp 2007-11-15 16:00:50 UTC (rev 907) @@ -1148,7 +1148,7 @@ menu->setDefaultItem(IDC_GETLIST); prepareMenu(menu, UserCommand::CONTEXT_CHAT, client->getHubUrl()); - inTabMenu = true; + inTabMenu = false; menu->trackPopupMenu(this, pt, TPM_LEFTALIGN | TPM_RIGHTBUTTON); return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2007-11-15 14:26:19
|
Revision: 906 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=906&view=rev Author: zouzou123gen Date: 2007-11-15 06:26:12 -0800 (Thu, 15 Nov 2007) Log Message: ----------- Pressing enter in the notepad Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/win32/NotepadFrame.cpp Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2007-11-11 15:30:28 UTC (rev 905) +++ dcplusplus/trunk/changelog.txt 2007-11-15 14:26:12 UTC (rev 906) @@ -8,6 +8,7 @@ * Keep selection visible on move up/down in some list views (poy) * Fixed clicking in the header of the favorite hubs list view (poy) * Update to ADC 0.14 +* Fixed pressing enter in the notepad (poy) -- 0.703 2007-11-08 -- * Fixed invalid strings (thanks james ross) Modified: dcplusplus/trunk/win32/NotepadFrame.cpp =================================================================== --- dcplusplus/trunk/win32/NotepadFrame.cpp 2007-11-11 15:30:28 UTC (rev 905) +++ dcplusplus/trunk/win32/NotepadFrame.cpp 2007-11-15 14:26:12 UTC (rev 906) @@ -29,7 +29,7 @@ { { WidgetTextBox::Seed cs = WinUtil::Seeds::textBox; - cs.style = WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL; + cs.style = WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_NOHIDESEL | ES_WANTRETURN; pad = createTextBox(cs); addWidget(pad); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-11 15:30:31
|
Revision: 905 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=905&view=rev Author: arnetheduck Date: 2007-11-11 07:30:28 -0800 (Sun, 11 Nov 2007) Log Message: ----------- No xmlns in example Modified Paths: -------------- dcplusplus/trunk/ADC.txt dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/AdcHub.cpp dcplusplus/trunk/dcpp/AdcHub.h dcplusplus/trunk/dcpp/ConnectionManager.cpp dcplusplus/trunk/dcpp/UserConnection.cpp dcplusplus/trunk/dcpp/UserConnection.h dcplusplus/trunk/win32/DirectoryListingFrame.cpp dcplusplus/trunk/win32/FinishedFrameBase.h dcplusplus/trunk/win32/HubFrame.h dcplusplus/trunk/win32/PublicHubsFrame.cpp dcplusplus/trunk/win32/QueueFrame.h dcplusplus/trunk/win32/SearchFrame.cpp dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/TypedListView.h dcplusplus/trunk/win32/UsersFrame.cpp Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/ADC.txt 2007-11-11 15:30:28 UTC (rev 905) @@ -258,13 +258,13 @@ ---- <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<FileListing Version="1" CID="mycid" Generator="DC++ 0.701" Base="/" xmlns="http://dcpp.net/FileListing"> +<FileListing Version="1" CID="mycid" Generator="DC++ 0.701" Base="/"> <Directory Name="share"> <Directory Name="DC++ Prerelease"> <File Name="DCPlusPlus.pdb" Size="17648640" TTH="xxx" /> <File Name="DCPlusPlus.exe" Size="946176" TTH="yyy" /> </Directory> - <File Name="ADC.txt" Size="154112" TTH="zzz" /> + <File Name="ADC.txt" Size="154112" TTH="zzz" /> </Directory> <!-- Only used by partial lists --> <Directory Name="share2" Incomplete="1"/> Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/changelog.txt 2007-11-11 15:30:28 UTC (rev 905) @@ -7,6 +7,7 @@ * Fixed version info (poy) * Keep selection visible on move up/down in some list views (poy) * Fixed clicking in the header of the favorite hubs list view (poy) +* Update to ADC 0.14 -- 0.703 2007-11-08 -- * Fixed invalid strings (thanks james ross) Modified: dcplusplus/trunk/dcpp/AdcHub.cpp =================================================================== --- dcplusplus/trunk/dcpp/AdcHub.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/dcpp/AdcHub.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -40,6 +40,9 @@ const string AdcHub::ADCS_FEATURE("ADC0"); const string AdcHub::TCP4_FEATURE("TCP4"); const string AdcHub::UDP4_FEATURE("UDP4"); +const string AdcHub::BASE_SUPPORT("ADBASE"); +const string AdcHub::BAS0_SUPPORT("ADBAS0"); +const string AdcHub::TIGR_SUPPORT("ADTIGR"); AdcHub::AdcHub(const string& aHubURL, bool secure) : Client(aHubURL, '\n', secure), sid(0) { TimerManager::getInstance()->addListener(this); @@ -186,12 +189,26 @@ void AdcHub::handle(AdcCommand::SUP, AdcCommand& c) throw() { if(state != STATE_PROTOCOL) /** @todo SUP changes */ return; - if(find(c.getParameters().begin(), c.getParameters().end(), "ADBASE") == c.getParameters().end() - && find(c.getParameters().begin(), c.getParameters().end(), "ADBAS0") == c.getParameters().end()) - { + bool baseOk = false; + bool tigrOk = false; + for(StringIter i = c.getParameters().begin(); i != c.getParameters().end(); ++i) { + if(*i == BAS0_SUPPORT) { + baseOk = true; + tigrOk = true; + } else if(*i == BASE_SUPPORT) { + baseOk = true; + } else if(*i == TIGR_SUPPORT) { + tigrOk = true; + } + } + + if(!baseOk) { fire(ClientListener::StatusMessage(), this, "Failed to negotiate base protocol"); // @todo internationalize socket->disconnect(false); return; + } else if(!tigrOk) { + // What now? Some hubs fake BASE support without TIGR support =/ + fire(ClientListener::StatusMessage(), this, "Hub probably uses an old version of ADC, please encourage the owner to upgrade"); } } @@ -625,7 +642,7 @@ lastInfoMap.clear(); sid = 0; - send(AdcCommand(AdcCommand::CMD_SUP, AdcCommand::TYPE_HUB).addParam("ADBAS0")); + send(AdcCommand(AdcCommand::CMD_SUP, AdcCommand::TYPE_HUB).addParam(BAS0_SUPPORT).addParam(TIGR_SUPPORT)); } void AdcHub::on(Line, const string& aLine) throw() { Modified: dcplusplus/trunk/dcpp/AdcHub.h =================================================================== --- dcplusplus/trunk/dcpp/AdcHub.h 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/dcpp/AdcHub.h 2007-11-11 15:30:28 UTC (rev 905) @@ -77,6 +77,9 @@ static const string ADCS_FEATURE; static const string TCP4_FEATURE; static const string UDP4_FEATURE; + static const string BASE_SUPPORT; + static const string BAS0_SUPPORT; + static const string TIGR_SUPPORT; virtual string checkNick(const string& nick); Modified: dcplusplus/trunk/dcpp/ConnectionManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/ConnectionManager.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/dcpp/ConnectionManager.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -42,7 +42,8 @@ features.push_back(UserConnection::FEATURE_TTHL); features.push_back(UserConnection::FEATURE_TTHF); - adcFeatures.push_back("AD" + UserConnection::FEATURE_ADC_BASE); + adcFeatures.push_back("AD" + UserConnection::FEATURE_ADC_BAS0); + adcFeatures.push_back("AD" + UserConnection::FEATURE_ADC_TIGR); adcFeatures.push_back("AD" + UserConnection::FEATURE_ADC_BZIP); } @@ -327,12 +328,17 @@ } bool baseOk = false; - + bool tigrOk = false; + for(StringIterC i = cmd.getParameters().begin(); i != cmd.getParameters().end(); ++i) { if(i->compare(0, 2, "AD") == 0) { string feat = i->substr(2); - if(feat == UserConnection::FEATURE_ADC_BASE) { + if(feat == UserConnection::FEATURE_ADC_BASE || feat == UserConnection::FEATURE_ADC_BAS0) { baseOk = true; + // For bas0 tiger is implicit + if(feat == UserConnection::FEATURE_ADC_BAS0) { + tigrOk = true; + } // ADC clients must support all these... aSource->setFlag(UserConnection::FLAG_SUPPORTS_ADCGET); aSource->setFlag(UserConnection::FLAG_SUPPORTS_MINISLOTS); @@ -344,6 +350,8 @@ aSource->setFlag(UserConnection::FLAG_SUPPORTS_ZLIB_GET); } else if(feat == UserConnection::FEATURE_ADC_BZIP) { aSource->setFlag(UserConnection::FLAG_SUPPORTS_XML_BZLIST); + } else if(feat == UserConnection::FEATURE_ADC_TIGR) { + tigrOk = true; } } } Modified: dcplusplus/trunk/dcpp/UserConnection.cpp =================================================================== --- dcplusplus/trunk/dcpp/UserConnection.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/dcpp/UserConnection.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -36,8 +36,10 @@ const string UserConnection::FEATURE_ZLIB_GET = "ZLIG"; const string UserConnection::FEATURE_TTHL = "TTHL"; const string UserConnection::FEATURE_TTHF = "TTHF"; -const string UserConnection::FEATURE_ADC_BASE = "BAS0"; +const string UserConnection::FEATURE_ADC_BAS0 = "BAS0"; +const string UserConnection::FEATURE_ADC_BASE = "BASE"; const string UserConnection::FEATURE_ADC_BZIP = "BZIP"; +const string UserConnection::FEATURE_ADC_TIGR = "TIGR"; const string UserConnection::FILE_NOT_AVAILABLE = "File Not Available"; Modified: dcplusplus/trunk/dcpp/UserConnection.h =================================================================== --- dcplusplus/trunk/dcpp/UserConnection.h 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/dcpp/UserConnection.h 2007-11-11 15:30:28 UTC (rev 905) @@ -45,9 +45,11 @@ static const string FEATURE_ZLIB_GET; static const string FEATURE_TTHL; static const string FEATURE_TTHF; + static const string FEATURE_ADC_BAS0; static const string FEATURE_ADC_BASE; static const string FEATURE_ADC_BZIP; - + static const string FEATURE_ADC_TIGR; + static const string FILE_NOT_AVAILABLE; enum Modes { Modified: dcplusplus/trunk/win32/DirectoryListingFrame.cpp =================================================================== --- dcplusplus/trunk/win32/DirectoryListingFrame.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/DirectoryListingFrame.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -173,6 +173,7 @@ // This will set the widths correctly setStatus(STATUS_FILE_LIST_DIFF, TSTRING(FILE_LIST_DIFF)); + setStatus(STATUS_MATCH_QUEUE, TSTRING(MATCH_QUEUE)); setStatus(STATUS_FIND, TSTRING(FIND)); setStatus(STATUS_NEXT, TSTRING(NEXT)); @@ -720,10 +721,6 @@ } void DirectoryListingFrame::clearList() { - int j = files->size(); - for(int i = 0; i < j; i++) { - delete files->getData(i); - } files->clear(); } Modified: dcplusplus/trunk/win32/FinishedFrameBase.h =================================================================== --- dcplusplus/trunk/win32/FinishedFrameBase.h 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/FinishedFrameBase.h 2007-11-11 15:30:28 UTC (rev 905) @@ -267,7 +267,6 @@ int i; while((i = items->getNext(-1, LVNI_SELECTED)) != -1) { FinishedManager::getInstance()->remove(items->getData(i)->entry, in_UL); - delete items->getData(i); items->erase(i); } } @@ -299,10 +298,6 @@ } void clearList() { - unsigned n = items->size(); - for(unsigned i = 0; i < n; ++i) - delete items->getData(i); - items->clear(); } Modified: dcplusplus/trunk/win32/HubFrame.h =================================================================== --- dcplusplus/trunk/win32/HubFrame.h 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/HubFrame.h 2007-11-11 15:30:28 UTC (rev 905) @@ -149,7 +149,7 @@ WidgetVPanedPtr paned; WidgetCheckBoxPtr showUsers; - typedef TypedListView<HubFrame, UserInfo> WidgetUsers; + typedef TypedListView<HubFrame, UserInfo, false> WidgetUsers; typedef WidgetUsers* WidgetUsersPtr; WidgetUsersPtr users; Modified: dcplusplus/trunk/win32/PublicHubsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/PublicHubsFrame.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/PublicHubsFrame.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -280,7 +280,6 @@ } void PublicHubsFrame::updateList() { - hubs->forEachT(DeleteFunction()); hubs->clear(); users = 0; visibleHubs = 0; Modified: dcplusplus/trunk/win32/QueueFrame.h =================================================================== --- dcplusplus/trunk/win32/QueueFrame.h 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/QueueFrame.h 2007-11-11 15:30:28 UTC (rev 905) @@ -208,7 +208,7 @@ typedef WidgetDirs* WidgetDirsPtr; WidgetDirsPtr dirs; - typedef TypedListView<QueueFrame, QueueItemInfo> WidgetFiles; + typedef TypedListView<QueueFrame, QueueItemInfo, false> WidgetFiles; typedef WidgetFiles* WidgetFilesPtr; WidgetFilesPtr files; WidgetVPanedPtr paned; Modified: dcplusplus/trunk/win32/SearchFrame.cpp =================================================================== --- dcplusplus/trunk/win32/SearchFrame.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/SearchFrame.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -409,11 +409,6 @@ } void SearchFrame::postClosing() { - results->forEachT(DeleteFunction()); - results->clear(); - hubs->forEachT(DeleteFunction()); - hubs->clear(); - SettingsManager::getInstance()->set(SettingsManager::SEARCHFRAME_ORDER, WinUtil::toString(results->getColumnOrder())); SettingsManager::getInstance()->set(SettingsManager::SEARCHFRAME_WIDTHS, WinUtil::toString(results->getColumnWidths())); } @@ -761,7 +756,6 @@ void SearchFrame::handleRemove() { int i = -1; while((i = results->getNext(-1, LVNI_SELECTED)) != -1) { - delete results->getData(i); results->erase(i); } } @@ -899,7 +893,6 @@ if (nItem == n) return; - delete hubs->getData(nItem); hubs->setData(nItem, info); hubs->update(nItem); @@ -919,7 +912,6 @@ if (nItem == n) return; - delete hubs->getData(nItem); hubs->erase(nItem); hubs->setColumnWidth(0, LVSCW_AUTOSIZE); } @@ -967,7 +959,6 @@ int64_t llsize = (int64_t)lsize; - results->forEachT(DeleteFunction()); results->clear(); { Modified: dcplusplus/trunk/win32/TransferView.cpp =================================================================== --- dcplusplus/trunk/win32/TransferView.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/TransferView.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -94,8 +94,6 @@ SettingsManager::getInstance()->set(SettingsManager::MAINFRAME_ORDER, WinUtil::toString(transfers->getColumnOrder())); SettingsManager::getInstance()->set(SettingsManager::MAINFRAME_WIDTHS, WinUtil::toString(transfers->getColumnWidths())); - transfers->forEach(&ItemInfo::deleteSelf); - return 0; } @@ -345,7 +343,6 @@ ItemInfo* ii = transfers->getData(i); if(*ui == *ii) { transfers->erase(i); - delete ii; break; } } Modified: dcplusplus/trunk/win32/TypedListView.h =================================================================== --- dcplusplus/trunk/win32/TypedListView.h 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/TypedListView.h 2007-11-11 15:30:28 UTC (rev 905) @@ -19,12 +19,12 @@ #ifndef DCPLUSPLUS_WIN32_TYPED_LIST_VIEW_H #define DCPLUSPLUS_WIN32_TYPED_LIST_VIEW_H -template<class T, class ContentType> +template<class T, class ContentType, bool managed = true> class TypedListView : public T::WidgetListView { private: typedef typename T::WidgetListView BaseType; - typedef TypedListView<T, ContentType> ThisType; + typedef TypedListView<T, ContentType, managed> ThisType; public: typedef ThisType* ObjectType; @@ -33,6 +33,11 @@ } + ~TypedListView() { + if(managed) + this->clear(); + } + void create( const typename BaseType::Seed & cs = BaseType::getDefaultSeed() ) { BaseType::create(cs); @@ -57,6 +62,9 @@ } void setData(int iItem, ContentType* lparam) { + if(managed) { + delete getData(iItem); + } BaseType::setData(iItem, reinterpret_cast<LPARAM>(lparam)); } @@ -109,7 +117,9 @@ void update(ContentType* item) { int i = find(item); if(i != -1) update(i); } - using BaseType::erase; + void clear() { if(managed) this->forEachT(DeleteFunction()); this->BaseType::clear(); } + void erase(int i) { if(managed) delete getData(i); this->BaseType::erase(i); } + void erase(ContentType* item) { int i = find(item); if(i != -1) this->erase(i); } int getSortPos(ContentType* a) { Modified: dcplusplus/trunk/win32/UsersFrame.cpp =================================================================== --- dcplusplus/trunk/win32/UsersFrame.cpp 2007-11-11 15:23:38 UTC (rev 904) +++ dcplusplus/trunk/win32/UsersFrame.cpp 2007-11-11 15:30:28 UTC (rev 905) @@ -87,8 +87,6 @@ void UsersFrame::postClosing() { SettingsManager::getInstance()->set(SettingsManager::USERSFRAME_ORDER, WinUtil::toString(users->getColumnOrder())); SettingsManager::getInstance()->set(SettingsManager::USERSFRAME_WIDTHS, WinUtil::toString(users->getColumnWidths())); - - users->forEachT(DeleteFunction()); } UsersFrame::UserInfo::UserInfo(const FavoriteUser& u) : UserInfoBase(u.getUser()) { @@ -128,7 +126,6 @@ UserInfo *ui = users->getData(i); if(ui->user == aUser.getUser()) { users->erase(i); - delete ui; return; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-11 15:23:42
|
Revision: 904 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=904&view=rev Author: arnetheduck Date: 2007-11-11 07:23:38 -0800 (Sun, 11 Nov 2007) Log Message: ----------- remove tabs Modified Paths: -------------- dcplusplus/trunk/ADC.txt Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-11 14:17:04 UTC (rev 903) +++ dcplusplus/trunk/ADC.txt 2007-11-11 15:23:38 UTC (rev 904) @@ -184,72 +184,72 @@ ---- <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> - <xs:simpleType name="base32Binary"> - <xs:restriction base="xs:string"> - <xs:pattern value="[A-Za-z2-7]+"></xs:pattern> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="base32Binary"> + <xs:restriction base="xs:string"> + <xs:pattern value="[A-Za-z2-7]+"></xs:pattern> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="zeroOne"> - <xs:restriction base="xs:int"> - <xs:enumeration value="0"></xs:enumeration> - <xs:enumeration value="1"></xs:enumeration> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="zeroOne"> + <xs:restriction base="xs:int"> + <xs:enumeration value="0"></xs:enumeration> + <xs:enumeration value="1"></xs:enumeration> + </xs:restriction> + </xs:simpleType> - <xs:complexType name="ContainerType"> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:choice> - <xs:element ref="Directory"></xs:element> - <xs:element ref="File"></xs:element> - <xs:any processContents="lax"></xs:any> - </xs:choice> - </xs:sequence> - </xs:complexType> + <xs:complexType name="ContainerType"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:choice> + <xs:element ref="Directory"></xs:element> + <xs:element ref="File"></xs:element> + <xs:any processContents="lax"></xs:any> + </xs:choice> + </xs:sequence> + </xs:complexType> - <xs:attribute name="Base" type="xs:string"></xs:attribute> - <xs:attribute name="CID" type="base32Binary"></xs:attribute> - <xs:attribute name="Generator" type="xs:string"></xs:attribute> - <xs:attribute name="Incomplete" type="zeroOne" default="0"></xs:attribute> - <xs:attribute name="Name" type="xs:string"></xs:attribute> - <xs:attribute name="Size" type="xs:int"></xs:attribute> - <xs:attribute name="Version" type="xs:int"></xs:attribute> + <xs:attribute name="Base" type="xs:string"></xs:attribute> + <xs:attribute name="CID" type="base32Binary"></xs:attribute> + <xs:attribute name="Generator" type="xs:string"></xs:attribute> + <xs:attribute name="Incomplete" type="zeroOne" default="0"></xs:attribute> + <xs:attribute name="Name" type="xs:string"></xs:attribute> + <xs:attribute name="Size" type="xs:int"></xs:attribute> + <xs:attribute name="Version" type="xs:int"></xs:attribute> - <xs:element name="FileListing"> - <xs:complexType> - <xs:complexContent> - <xs:extension base="ContainerType"> - <xs:attribute ref="CID" use="required"></xs:attribute> - <xs:attribute ref="Version" use="required"></xs:attribute> - <xs:attribute ref="Generator" use="optional"></xs:attribute> - <xs:attribute ref="Base" use="required"></xs:attribute> - <xs:anyAttribute processContents="lax"></xs:anyAttribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> + <xs:element name="FileListing"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="ContainerType"> + <xs:attribute ref="CID" use="required"></xs:attribute> + <xs:attribute ref="Version" use="required"></xs:attribute> + <xs:attribute ref="Generator" use="optional"></xs:attribute> + <xs:attribute ref="Base" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> - <xs:element name="Directory"> - <xs:complexType> - <xs:complexContent> - <xs:extension base="ContainerType"> - <xs:attribute ref="Name" use="required"></xs:attribute> - <xs:anyAttribute processContents="lax"></xs:anyAttribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> + <xs:element name="Directory"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="ContainerType"> + <xs:attribute ref="Name" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> - <xs:element name="File"> - <xs:complexType> - <xs:sequence> - <xs:any minOccurs="0" maxOccurs="unbounded"></xs:any> - </xs:sequence> - <xs:attribute ref="Name" use="required"></xs:attribute> - <xs:attribute ref="Size" use="required"></xs:attribute> - <xs:anyAttribute processContents="lax"></xs:anyAttribute> - </xs:complexType> - </xs:element> + <xs:element name="File"> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded"></xs:any> + </xs:sequence> + <xs:attribute ref="Name" use="required"></xs:attribute> + <xs:attribute ref="Size" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:complexType> + </xs:element> </xs:schema> ---- @@ -259,15 +259,15 @@ ---- <?xml version="1.0" encoding="utf-8" standalone="yes"?> <FileListing Version="1" CID="mycid" Generator="DC++ 0.701" Base="/" xmlns="http://dcpp.net/FileListing"> - <Directory Name="share"> - <Directory Name="DC++ Prerelease"> - <File Name="DCPlusPlus.pdb" Size="17648640" TTH="xxx" /> - <File Name="DCPlusPlus.exe" Size="946176" TTH="yyy" /> + <Directory Name="share"> + <Directory Name="DC++ Prerelease"> + <File Name="DCPlusPlus.pdb" Size="17648640" TTH="xxx" /> + <File Name="DCPlusPlus.exe" Size="946176" TTH="yyy" /> + </Directory> + <File Name="ADC.txt" Size="154112" TTH="zzz" /> </Directory> - <File Name="ADC.txt" Size="154112" TTH="zzz" /> - </Directory> - <!-- Only used by partial lists --> - <Directory Name="share2" Incomplete="1"/> + <!-- Only used by partial lists --> + <Directory Name="share2" Incomplete="1"/> </FileListing> ---- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-11 14:17:13
|
Revision: 903 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=903&view=rev Author: arnetheduck Date: 2007-11-11 06:17:04 -0800 (Sun, 11 Nov 2007) Log Message: ----------- Add file listing xsd Added Paths: ----------- dcplusplus/trunk/FileListing.xsd Added: dcplusplus/trunk/FileListing.xsd =================================================================== --- dcplusplus/trunk/FileListing.xsd (rev 0) +++ dcplusplus/trunk/FileListing.xsd 2007-11-11 14:17:04 UTC (rev 903) @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:simpleType name="base32Binary"> + <xs:restriction base="xs:string"> + <xs:pattern value="[A-Za-z2-7]+"></xs:pattern> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="zeroOne"> + <xs:restriction base="xs:int"> + <xs:enumeration value="0"></xs:enumeration> + <xs:enumeration value="1"></xs:enumeration> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="ContainerType"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:choice> + <xs:element ref="Directory"></xs:element> + <xs:element ref="File"></xs:element> + <xs:any processContents="lax"></xs:any> + </xs:choice> + </xs:sequence> + </xs:complexType> + + <xs:attribute name="Base" type="xs:string"></xs:attribute> + <xs:attribute name="CID" type="base32Binary"></xs:attribute> + <xs:attribute name="Generator" type="xs:string"></xs:attribute> + <xs:attribute name="Incomplete" type="zeroOne" default="0"></xs:attribute> + <xs:attribute name="Name" type="xs:string"></xs:attribute> + <xs:attribute name="Size" type="xs:int"></xs:attribute> + <xs:attribute name="Version" type="xs:int"></xs:attribute> + + <xs:element name="FileListing"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="ContainerType"> + <xs:attribute ref="CID" use="required"></xs:attribute> + <xs:attribute ref="Version" use="required"></xs:attribute> + <xs:attribute ref="Generator" use="optional"></xs:attribute> + <xs:attribute ref="Base" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <xs:element name="Directory"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="ContainerType"> + <xs:attribute ref="Name" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <xs:element name="File"> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded"></xs:any> + </xs:sequence> + <xs:attribute ref="Name" use="required"></xs:attribute> + <xs:attribute ref="Size" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:complexType> + </xs:element> + +</xs:schema> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-11 14:11:48
|
Revision: 902 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=902&view=rev Author: arnetheduck Date: 2007-11-11 06:11:47 -0800 (Sun, 11 Nov 2007) Log Message: ----------- Reflow some text Modified Paths: -------------- dcplusplus/trunk/ADC.txt dcplusplus/trunk/boost/SConscript Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-11 11:00:25 UTC (rev 901) +++ dcplusplus/trunk/ADC.txt 2007-11-11 14:11:47 UTC (rev 902) @@ -15,8 +15,8 @@ Advanced Direct Connect is the first neutral thing that springs to mind =). Many ideas for the protocol come from Jan Vidar Krey's DCTNG draft. Other -contributors include Dustin Brody, Walter Doekes, Timmo Stange, Fredrik -Ullner. Jon Hess contributed the original Direct Connect idea through the +contributors include Dustin Brody, Walter Doekes, Timmo Stange, Fredrik Ullner +and others. Jon Hess contributed the original Direct Connect idea through the Neo-Modus Direct Connect client / hub. The latest draft version of this document can be downloaded from @@ -121,8 +121,8 @@ ==== Session ID Session IDs appear in all communication that interacts with the hub. They identify a unique user on a single hub and are assigned by the hub during -initial protocol negotiation. SIDs -are 20 bits long and encoded using a 4-byte base32 encoded string. +initial protocol negotiation. SIDs are 20 bits long and encoded using a 4-byte +base32 encoded string. ==== Private ID Private IDs globally identify a unique client. They function during initial @@ -154,17 +154,17 @@ Shared files are identified relative to the unnamed root "/" ("/dir/subdir/filename.ext"), while extensions can add named roots to this -namespace. For example, "TTH/..." from the TIGR extension uses the named root "TTH" to -identify files by their tiger tree hash. It is invalid for names from the -unnamed root to appear in the share without also being identified by at -least one hash value. +namespace. For example, "TTH/..." from the TIGR extension uses the named root +"TTH" to identify files by their tiger tree hash. It is invalid for names +from the unnamed root to appear in the share without also being identified by +at least one hash value. The rootless filename "files.xml" specifies the full file listing, uncompressed, in XML using the UTF-8 encoding. It is recommended that clients use an extension to transfer this list in compressed form. -Extensions may specify additional rootless filenames, but should generally avoid -doing so to avoid name clashes. +Extensions may specify additional rootless filenames, but should generally +avoid doing so to avoid name clashes. The special type "list" is used to browse partial lists. A partial file list has the same structure as a normal list, but directories may be tagged with an @@ -178,8 +178,8 @@ list represents. === File list -files.xml is the list of files intended for browsing. The file list must validate -against the following XML schema: +files.xml is the list of files intended for browsing. The file list must +validate against the following XML schema: ---- <?xml version="1.0" encoding="UTF-8"?> @@ -312,7 +312,7 @@ U | Between clients (client-client UDP) ___ -For client-client communication, this protocol is identified by the string +When requesting a new client-client connection, this protocol is identified by "ADC/1.0". In the descriptions of the commands, the message header and trailing named @@ -508,7 +508,8 @@ Contexts: F, T -A chat message. The receiving clients should precede it with '<' nick '>', to allow for uniform message displays. +A chat message. The receiving clients should precede it with "<" nick ">", to +allow for uniform message displays. Flags: @@ -603,8 +604,8 @@ States: VERIFY Password. The password (utf-8 encoded bytes), followed by the random data -(binary), passed through the session hash algorithm then converted to -base32. When validated, this transitions the server into NORMAL state. +(binary), passed through the session hash algorithm then converted to base32. +When validated, this transitions the server into NORMAL state. ==== QUI QUI sid @@ -613,11 +614,10 @@ States: IDENTIFY, VERIFY, NORMAL -The client identified by <sid> disconnected from the hub. If the SID -belongs to the client receiving the QUI, it means that it should take action -according to the reason (i.e. redirect or not reconnect in case of ban). The -hub must not send data after the QUI to the client being -disconnected. +The client identified by <sid> disconnected from the hub. If the SID belongs +to the client receiving the QUI, it means that it should take action according +to the reason (i.e. redirect or not reconnect in case of ban). The hub must +not send data after the QUI to the client being disconnected. The following flags may be present: @@ -655,7 +655,7 @@ The flag should be taken as a hint that the requesting client will be getting the subdirectories as well, so they might as well be sent in one go. Identifier must be a directory in the unnamed root, ending (and beginning) -with '/'. +with "/". Note that GET can also be used by extensions for binary transfers between hub and client. @@ -741,20 +741,20 @@ procedure. The root must be encoded using base32 encoding when converted to text. -In the file list, each File element carries an additional attribute "TTH" +In the file list, each File element carries an additional attribute "TTH" containing the base32-encoded value of the tiger tree root. In the GET/GFI type, the full tree may be accessed using the "tthl" type. -"tthl" transfers send the largest set of leaves available) as a binary -stream of leaf data, right-to-left, with no spacing in between them. -<start_pos> must be set to 0 and <bytes> to -1 when requesting the data. -<bytes> must contain the total binary size of the leaf stream in SND, and by -dividing this length by the individual hash length, the number of leaves, and -thus the leaf level can be deducted. The received leaves can then be used to -reconstruct the entire tree, and the resulting root must match the root of the -file (this verifies the integrity of the tree itself). Identifier must be a -TTH root value from the "TTH/" root. +"tthl" transfers send the largest set of leaves available) as a binary stream +of leaf data, right-to-left, with no spacing in between them. <start_pos> +must be set to 0 and <bytes> to -1 when requesting the data. <bytes> must +contain the total binary size of the leaf stream in SND, and by dividing this +length by the individual hash length, the number of leaves, and thus the leaf +level can be deducted. The received leaves can then be used to reconstruct the +entire tree, and the resulting root must match the root of the file (this +verifies the integrity of the tree itself). Identifier must be a TTH root +value from the "TTH/" root. In the GET/GFI namespace, files are identified by "TTH/<base32-encoded tree root>". @@ -790,8 +790,8 @@ chunk of data to allow for decompression by the peer. ==== ZLIB-GET -The alternative is to send "ZLIG" to indicate that zlib is supported -for binary transfers using the GET command, but not otherwise. A flag "ZL1" is +The alternative is to send "ZLIG" to indicate that zlib is supported for +binary transfers using the GET command, but not otherwise. A flag "ZL1" is added to the to the SND command to indicate that the data will come compressed, and the client receiving requests it by adding the same flag to GET (the sending client may ignore a request for a compressed transfer, but @@ -815,8 +815,8 @@ Context: F Name uniquely (per hub) identifies a particular user command. The name may -contain '/' to indicate a logical structure on the viewing client, where each -'/' introduces a new submenu level. Other than name, the command also has a +contain "/" to indicate a logical structure on the viewing client, where each +"/" introduces a new submenu level. Other than name, the command also has a number of flags that further detail what to do with it. [separator="|"] @@ -872,12 +872,22 @@ === ADCS - Secure ADC <work-in-progress> ==== Introduction -Secure ADC connections can be established using a TLS tunnel, both for hub and for client connections. Certificates can be used to authenticate both hub and user, for example by making the hub the root CA, and only allow clients signed by the hub to connect. Ephemeral keys should be use to ensure forward secrecy when possible. +Secure ADC connections can be established using a TLS tunnel, both for hub and +for client connections. Certificates can be used to authenticate both hub and +user, for example by making the hub the root CA, and only allow clients signed +by the hub to connect. Ephemeral keys should be use to ensure forward secrecy +when possible. ==== Client-Hub encryption -TLS client-hub connections can be initiated either by negotiating the feature "ADCS" on connection or by using the protocol adcs:// when initiating the connection. Hubs can choose to request a certificate for the user on login, and use this certificate to replace password-based login. +TLS client-hub connections can be initiated either by negotiating the feature +"ADCS" on connection or by using the protocol adcs:// when initiating the +connection. Hubs can choose to request a certificate for the user on login, +and use this certificate to replace password-based login. ==== Client-Client encryption -TLS client-client connections can be established either by negotiating the feature "ADCS" on connection or by specifying "ADCS/1.0" in the CTM protocol field. Clients supporting encrypted connections must indicate this in the INF SU field with "ADCS" +TLS client-client connections can be established either by negotiating the +feature "ADCS" on connection or by specifying "ADCS/1.0" in the CTM protocol +field. Clients supporting encrypted connections must indicate this in the INF +SU field with "ADCS" // vim: set syntax=asciidoc: Modified: dcplusplus/trunk/boost/SConscript =================================================================== --- dcplusplus/trunk/boost/SConscript 2007-11-11 11:00:25 UTC (rev 901) +++ dcplusplus/trunk/boost/SConscript 2007-11-11 14:11:47 UTC (rev 902) @@ -2,11 +2,7 @@ Import('dev source_path') -env, target, sources = dev.prepare_build(source_path, 'dcpp-smartwin', in_bin=False) +ret = dev.build('libs/signals/src/') -ret = [] - -ret += dev.build('libs/signals/src/') - Return('ret') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-11 11:00:29
|
Revision: 901 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=901&view=rev Author: arnetheduck Date: 2007-11-11 03:00:25 -0800 (Sun, 11 Nov 2007) Log Message: ----------- ADC 0.14 rc1, fix some unclear passages Modified Paths: -------------- dcplusplus/trunk/ADC.conf dcplusplus/trunk/ADC.txt Modified: dcplusplus/trunk/ADC.conf =================================================================== --- dcplusplus/trunk/ADC.conf 2007-11-10 18:26:11 UTC (rev 900) +++ dcplusplus/trunk/ADC.conf 2007-11-11 11:00:25 UTC (rev 901) @@ -1,6 +1,8 @@ [attributes] numbered toc +frame="all" +grid="all" [tabledef-default] colspec= Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-10 18:26:11 UTC (rev 900) +++ dcplusplus/trunk/ADC.txt 2007-11-11 11:00:25 UTC (rev 901) @@ -1,6 +1,6 @@ = ADC Protocol Draft Jacek Sieka <arn...@gm...> -0.13, October 2007 +0.14, November 2007 == Abstract ADC is a text protocol for a client-server network similar to Neo-Modus' @@ -49,12 +49,13 @@ * Extension names, protocol names and other text not entered by the user may only include viewable characters that can be encoded by one byte in the UTF-8 encoding (Unicode codepoints 33-127). ADC is case-sensitive, requiring - upper case. -* A session hash function is negotiated for each connection. The session hash - function may not be changed without a complete session renegotiation. + upper case for command names. +* Some of the commands and functionality require the use of a hash function. + The hash function is negotiated during session setup and stays the same for + the duration of the session. === Message syntax -.................... +.................. message ::= message_body? eol message_body ::= (b_message_header | cih_message_header | de_message_header | f_message_header | u_message_header | message_header) (separator positional_parameter)* (separator named_parameter)* @@ -81,7 +82,7 @@ simple_alphanum ::= [A-Z0-9] eol ::= #x0a separator ::= ' ' -.................... +.................. === Message types Message type specifies how messages should be routed, and thus which @@ -91,7 +92,7 @@ the message type when interpreting the message (after having parsed it). The following message types are defined: -[separator="|",grid="all",frame="all"] +[separator="|"] ```_ B | Broadcast | Hub must send message to all connected clients, including the sender of the message. C | Client message | Clients must use this message type when communicating directly over TCP. @@ -120,9 +121,8 @@ ==== Session ID Session IDs appear in all communication that interacts with the hub. They identify a unique user on a single hub and are assigned by the hub during -initial protocol negotiation. The hub may choose any SID for a connecting -client apart from "0" ("AAAA" in base32). "0" represents the hub itself. SIDs -are 20 bits and encoded using a 4-byte base32 encoded string. +initial protocol negotiation. SIDs +are 20 bits long and encoded using a 4-byte base32 encoded string. ==== Private ID Private IDs globally identify a unique client. They function during initial @@ -143,32 +143,28 @@ == Files === File names and structure -Filenames are relative to a fictive root in the user's share. '/' separates +Filenames are relative to a fictive root in the user's share. "/" separates directories, and each file or directory name must be unique in a case-insensitive context. All printable characters, including whitespace, are -valid names for files, the '/' and '\' being escaped by '\'. Clients must then +valid names for files, the "/" and "\" being escaped by "\". Clients must then properly filter the filename for the target file system, as well as request -filenames from other clients according to these rules. The special names '.' -and '..' may not occur as a directory or filename; any file list received -containing those must be ignored. +filenames from other clients according to these rules. The special names "." +and ".." may not occur as a directory or filename; any file list received +containing those must be ignored. All directory names must end with a "/". -Shared files are identified relative to the unnamed root '/' +Shared files are identified relative to the unnamed root "/" ("/dir/subdir/filename.ext"), while extensions can add named roots to this -namespace. "TTH/<root-base32>" from the TIGR extension for example, locates a -file in the share by TTH root rather than filename. +namespace. For example, "TTH/..." from the TIGR extension uses the named root "TTH" to +identify files by their tiger tree hash. It is invalid for names from the +unnamed root to appear in the share without also being identified by at +least one hash value. -Rootless filenames are special, for they may not appear in the file listing, -and can be used to supply binary transfers of arbitrary data, but should not -be used to avoid polluting the namespace by using a named root. All directory -names must end with a '/'. Names in the unnamed root generally find little use -identifying files, as the hash of a file does so more effectively. Hence, -commands that get files or file data may never use the unnamed root for -selecting file. It is invalid for normal files to appear in the share without -being identified by at least one hash value. +The rootless filename "files.xml" specifies the full file listing, +uncompressed, in XML using the UTF-8 encoding. It is recommended that clients +use an extension to transfer this list in compressed form. -The special, rootless filename "files.xml" specifies the full file listing, -uncompressed, in XML using the UTF-8 encoding. Clients can then compress this -list and offer the compressed one as relevant SUP features allow. +Extensions may specify additional rootless filenames, but should generally avoid +doing so to avoid name clashes. The special type "list" is used to browse partial lists. A partial file list has the same structure as a normal list, but directories may be tagged with an @@ -182,18 +178,93 @@ list represents. === File list -files.xml is the list of files intended for browsing. It has the following -general structure: +files.xml is the list of files intended for browsing. The file list must validate +against the following XML schema: ---- +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:simpleType name="base32Binary"> + <xs:restriction base="xs:string"> + <xs:pattern value="[A-Za-z2-7]+"></xs:pattern> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="zeroOne"> + <xs:restriction base="xs:int"> + <xs:enumeration value="0"></xs:enumeration> + <xs:enumeration value="1"></xs:enumeration> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="ContainerType"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:choice> + <xs:element ref="Directory"></xs:element> + <xs:element ref="File"></xs:element> + <xs:any processContents="lax"></xs:any> + </xs:choice> + </xs:sequence> + </xs:complexType> + + <xs:attribute name="Base" type="xs:string"></xs:attribute> + <xs:attribute name="CID" type="base32Binary"></xs:attribute> + <xs:attribute name="Generator" type="xs:string"></xs:attribute> + <xs:attribute name="Incomplete" type="zeroOne" default="0"></xs:attribute> + <xs:attribute name="Name" type="xs:string"></xs:attribute> + <xs:attribute name="Size" type="xs:int"></xs:attribute> + <xs:attribute name="Version" type="xs:int"></xs:attribute> + + <xs:element name="FileListing"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="ContainerType"> + <xs:attribute ref="CID" use="required"></xs:attribute> + <xs:attribute ref="Version" use="required"></xs:attribute> + <xs:attribute ref="Generator" use="optional"></xs:attribute> + <xs:attribute ref="Base" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <xs:element name="Directory"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="ContainerType"> + <xs:attribute ref="Name" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <xs:element name="File"> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded"></xs:any> + </xs:sequence> + <xs:attribute ref="Name" use="required"></xs:attribute> + <xs:attribute ref="Size" use="required"></xs:attribute> + <xs:anyAttribute processContents="lax"></xs:anyAttribute> + </xs:complexType> + </xs:element> + +</xs:schema> +---- + +An example file list: + +---- <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<FileListing Version="1" CID="my-cid" Generator="DC++ 0.401" Base="/"> +<FileListing Version="1" CID="mycid" Generator="DC++ 0.701" Base="/" xmlns="http://dcpp.net/FileListing"> <Directory Name="share"> <Directory Name="DC++ Prerelease"> - <File Name="DCPlusPlus.pdb" Size="17648640" ... /> - <File Name="DCPlusPlus.exe" Size="946176" ... /> + <File Name="DCPlusPlus.pdb" Size="17648640" TTH="xxx" /> + <File Name="DCPlusPlus.exe" Size="946176" TTH="yyy" /> </Directory> - <File Name="ADC.txt" Size="154112" ... /> + <File Name="ADC.txt" Size="154112" TTH="zzz" /> </Directory> <!-- Only used by partial lists --> <Directory Name="share2" Incomplete="1"/> @@ -233,7 +304,7 @@ clients may support using the message in additional contexts as well. The context codes are as follows: -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ F | From hub (hub-client TCP) T | To hub (hub-client TCP) @@ -275,13 +346,16 @@ Severity values: -0 Success (used for confirming commands), error code must be "00" and an additional flag "FC" contains the FOURCC of the command being confirmed if applicable. -1 Recoverable (error but no disconnect) -2 Fatal (disconnect) +[separator="|"] +``_ +0 | Success (used for confirming commands), error code must be "00" and an additional flag "FC" contains the FOURCC of the command being confirmed if applicable. +1 | Recoverable (error but no disconnect) +2 | Fatal (disconnect) +___ Error codes: -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ 00 | Generic, show description x0 | Same as 00, but categorized according to the rough structure set below @@ -378,7 +452,7 @@ Fields: -[separator="|",grid="all",frame="all"] +[separator="|"] ```_ Code | Type | Description ___ @@ -438,7 +512,7 @@ Flags: -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ PM<group-SID> | Private message, <group-SID> is the SID clients must send responses to. This field must contain the originating SID if this is a normal private conversation. ME | 1 = message should be displayed as /me in IRC ("*nick text") @@ -455,7 +529,7 @@ unless no known fields are present in which case the client must ignore the search. -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ AN, NO, EX | String search term, where AN is include (and), NO is exclude (and not), and EX is extension. Each filename (including the path to it) should be matched using case insensitive substring search as follows: match all AN, remove those that match any NO, and make sure the extension matches at least one of the EX (if it is present). Extensions must be sent without the leading '.'. LE | Smaller (less) than or equal size in bytes @@ -480,7 +554,7 @@ encouraged to supply additional fields if available. Passive results should be limited to 5 and active to 10. -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ FN | Full filename including path in share SI | Size, in bytes @@ -547,7 +621,7 @@ The following flags may be present: -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ ID | SID of the initiator of the disconnect (for example the one that issued a kick). TL | Time Left until reconnect is allowed, in seconds. -1 = forever. @@ -593,7 +667,8 @@ Get File Information. Requests that the other client returns a RES about the file as if it had responded to a SCH command. Type and identifier are the same -as for GET. +as for GET, but the identifier may come from any namespace, including the +unnamed root. ==== SND SND type identifier start_pos bytes @@ -609,7 +684,7 @@ == Examples === Client – Hub connection -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ Client | Hub ___ @@ -627,7 +702,7 @@ === Client – Client connection -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ Client | Server ___ @@ -640,15 +715,16 @@ <data> | ___ -== Standard Extensions <work-in-progress> +== Standard Extensions === TIGR - Tiger tree hash support + +==== General + This extension adds tiger tree hash support to the base protocol. It is intended to be used both for identifying files and for protocol purposes such as CID generation and password negotiation -==== General - ==== TIGR for shared files TIGR supporting clients must share only files hashed using Merkle Hash trees, as defined by http://www.open-content.net/specs/draft-jchapweske-thex-02.html. @@ -665,8 +741,8 @@ procedure. The root must be encoded using base32 encoding when converted to text. -In the file list, each file carries an additional attribute "TTH" containing -the base32-encoded value of the tiger tree root. +In the file list, each File element carries an additional attribute "TTH" +containing the base32-encoded value of the tiger tree root. In the GET/GFI type, the full tree may be accessed using the "tthl" type. @@ -683,9 +759,9 @@ In the GET/GFI namespace, files are identified by "TTH/<base32-encoded tree root>". -In searches and GFI, the following attributes are added: +In SCH and GFI, the following attributes are added: -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ TR | Tiger tree hash root, encoded with base32. TD | Tree depth, index of the highest level of tree data available, root-only = 0, first level (2 leaves) = 1, second level = 2, etc... @@ -743,7 +819,7 @@ '/' introduces a new submenu level. Other than name, the command also has a number of flags that further detail what to do with it. -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ RM | 1 = Remove command CT | Context, the following flags summed: @@ -764,7 +840,7 @@ Client parameters -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ myCID | Client CID mySID | Client SID @@ -773,7 +849,7 @@ User parameters -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ userCID | User CID userSID | SID of the user @@ -782,14 +858,14 @@ File parameters -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ fileXX | One for each flag contained within a search result or file list entry (see RES) ___ Hub parameters -[separator="|",grid="all",frame="all"] +[separator="|"] ``_ hubXX | One for each flag of the hub ___ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-10 18:26:14
|
Revision: 900 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=900&view=rev Author: arnetheduck Date: 2007-11-10 10:26:11 -0800 (Sat, 10 Nov 2007) Log Message: ----------- Initial version of adc with tiger support moved out of base Modified Paths: -------------- dcplusplus/trunk/ADC.txt Modified: dcplusplus/trunk/ADC.txt =================================================================== --- dcplusplus/trunk/ADC.txt 2007-11-09 23:37:00 UTC (rev 899) +++ dcplusplus/trunk/ADC.txt 2007-11-10 18:26:11 UTC (rev 900) @@ -15,10 +15,9 @@ Advanced Direct Connect is the first neutral thing that springs to mind =). Many ideas for the protocol come from Jan Vidar Krey's DCTNG draft. Other -contributors include Dustin Brody, Walter Doekes, Timmo Stange, Fredrik -Ullner. Jon Hess -contributed the original Direct Connect idea through the Neo-Modus Direct -Connect client / hub. +contributors include Dustin Brody, Walter Doekes, Timmo Stange, Fredrik +Ullner. Jon Hess contributed the original Direct Connect idea through the +Neo-Modus Direct Connect client / hub. The latest draft version of this document can be downloaded from $URL$. @@ -51,7 +50,9 @@ only include viewable characters that can be encoded by one byte in the UTF-8 encoding (Unicode codepoints 33-127). ADC is case-sensitive, requiring upper case. - +* A session hash function is negotiated for each connection. The session hash + function may not be changed without a complete session renegotiation. + === Message syntax .................... message ::= message_body? eol @@ -71,7 +72,7 @@ my_sid ::= encoded_sid encoded_sid ::= base32_character{4} my_cid ::= encoded_cid -encoded_cid ::= base32_character{39} +encoded_cid ::= base32_character+ base32_character ::= simple_alpha | [2-7] feature_name ::= simple_alpha simple_alphanum{3} escaped_letter ::= [^ \#x0a] | escape 's' | escape 'n' | escape escape @@ -102,6 +103,16 @@ U | UDP message | Clients must use this message type when communicating directly over UDP. ___ +=== Session hash +Certain commands require the use of a hash function. The hash function used is +negotiated each time a new connection is established using the SUP mechanism. +When a client first connects, it offers a set of hash functions as SUP +features. The server picks one of the offered functions and communicates the +choice to the client by placing it before any other hash features present in +the first SUP from the server. Clients and hubs are required to support at +least one hash function, used both for protocol purposes and file +identification. + === Client identification Each client is identified by three different IDs, Session ID (SID), Private ID (PID) and Client ID (CID). @@ -120,14 +131,15 @@ hash of the current time and primary network card MAC address if sufficient randomness cannot be generated. Hubs and clients may not disclose PIDs to other clients; doing so weakens the security of the ADC network. Clients -should should keep the same PID between sessions and hubs. PIDs are 192 bits -and encoded using a 39 byte base32 encoded string. +should should keep the same PID between sessions and hubs. PID length follows +the length of the hash algorithm used for the session. ==== Client ID Client IDs globally and publicly identify a unique client and underlie client -to client communication. They are generated by hashing the 192 bit, unencoded -PID with the Tiger hash algorithm. Hubs should register clients by CID. CIDs -are 192 bits and encoded using a 39 byte base32 encoded string. +to client communication. They are generated by hashing the (unencoded) PID +with the session hash algorithm. Hubs should register clients by CID. CID +length follows the length of the hash algorithm used for the session. Clients +must be prepared to handle CIDs of varying lengths. == Files === File names and structure @@ -138,16 +150,21 @@ properly filter the filename for the target file system, as well as request filenames from other clients according to these rules. The special names '.' and '..' may not occur as a directory or filename; any file list received -containing those must be ignored. Shared files are identified relative to the -unnamed root '/' ("/dir/subdir/filename.ext"), while extensions can add named -roots to this namespace, preferably using their SUP name. "TTH/<root-base32>", -for example, locates a file in the share by TTH root rather than filename. +containing those must be ignored. + +Shared files are identified relative to the unnamed root '/' +("/dir/subdir/filename.ext"), while extensions can add named roots to this +namespace. "TTH/<root-base32>" from the TIGR extension for example, locates a +file in the share by TTH root rather than filename. + Rootless filenames are special, for they may not appear in the file listing, and can be used to supply binary transfers of arbitrary data, but should not be used to avoid polluting the namespace by using a named root. All directory names must end with a '/'. Names in the unnamed root generally find little use -identifying files, as the TTH root does so more effectively. Hence, commands -that get files or file data may never use the unnamed root for selecting file. +identifying files, as the hash of a file does so more effectively. Hence, +commands that get files or file data may never use the unnamed root for +selecting file. It is invalid for normal files to appear in the share without +being identified by at least one hash value. The special, rootless filename "files.xml" specifies the full file listing, uncompressed, in XML using the UTF-8 encoding. Clients can then compress this @@ -164,33 +181,19 @@ "Base" attribute of "FileListing" specifies which directory a particular file list represents. -=== Hashes -ADC clients must share only files hashed using Merkle Hash trees, as defined -by http://www.open-content.net/specs/draft-jchapweske-thex-02.html. The Tiger -algorithm, as specified by http://www.cs.technion.ac.il/~biham/Reports/Tiger/ -functions as the hash algorithm. A base segment size of 1024 bytes must be -used when generating the tree, but clients may then discard parts of the tree -as long as at least 7 levels are kept or a block granularity of 64 KiB is -achieved. +=== File list +files.xml is the list of files intended for browsing. It has the following +general structure: -Generally, the root of the tree serves to identify a file uniquely. Searches -use it and it must be present in the file list. Further, the root of the file -list must also be available, and discoverable via GFI. A client may also -request the rest of the tree using the normal client-client transfer -procedure. The root must be encoded using base32 encoding when converted to -text. - -=== File list -Files.xml is the list of files intended for browsing. It has the following general structure: ---- <?xml version="1.0" encoding="utf-8" standalone="yes"?> <FileListing Version="1" CID="my-cid" Generator="DC++ 0.401" Base="/"> <Directory Name="share"> <Directory Name="DC++ Prerelease"> - <File Name="DCPlusPlus.pdb" Size="17648640" TTH="xxxxxxxxx"/> - <File Name="DCPlusPlus.exe" Size="946176" TTH="xxxxxxxxx"/> + <File Name="DCPlusPlus.pdb" Size="17648640" ... /> + <File Name="DCPlusPlus.exe" Size="946176" ... /> </Directory> - <File Name="ADC.txt" Size="154112" TTH="xxxxxxxxx"/> + <File Name="ADC.txt" Size="154112" ... /> </Directory> <!-- Only used by partial lists --> <Directory Name="share2" Incomplete="1"/> @@ -211,8 +214,6 @@ "Base" is used for partial file lists, but must be present even in the non-partial list. -"TTH" is the base32-encoded TTH root of the file. - "Incomplete" signals whether a directory in a partial file list contains unlisted items. "1" means the directory contains unlisted items, "0" that it does not. Incomplete="0" is the default and may thus be omitted. @@ -382,7 +383,7 @@ Code | Type | Description ___ ID | base32 | The CID of the client. Mandatory for C-C connections. -PD | base32 | The PID of the client. Hubs must check that the Tiger(PID) == CID and then discard the field before broadcasting it to other clients. Must not be sent in C-C connections. +PD | base32 | The PID of the client. Hubs must check that the hash(PID) == CID and then discard the field before broadcasting it to other clients. Must not be sent in C-C connections. I4 | IPv4 | IPv4 address without port. A zero address (0.0.0.0) means that the server should replace it with the real IP of the client. Hubs must check that a specified address corresponds to what the client is connecting from to avoid DoS attacks, and only allow trusted clients to specify a different address. Clients should use the zero address when connecting, but may opt not to do so at the user's discretion. Any client that supports incoming TCPv4 connections must also add the feature TCP4 to their SU field. I6 | IPv6 | IPv6 address without port. A zero address (::) means that the server should replace it with the IP of the client. Any client that supports incoming TCPv6 connections must also add the feature TCP6 to their SU field. U4 | integer | Client UDP port. Any client that supports incoming UDPv4 packets must also add the feature UDP4 to their SU field. @@ -485,8 +486,6 @@ SI | Size, in bytes SL | Slots currently available TO | Token -TR | Tiger tree hash root, encoded with base32. -TD | Tiger tree depth, index of the highest level of tree data available, root-only = 0, first level (2 leaves) = 1, second level = 2, etc… ___ ==== CTM @@ -520,8 +519,7 @@ States: VERIFY -Get Password. The data parameter is at least 24 random bytes (base32 encoded), -used to avoid replay attacks on the password. +Get Password. The data parameter is at least 24 random bytes (base32 encoded). ==== PAS PAS password @@ -531,7 +529,7 @@ States: VERIFY Password. The password (utf-8 encoded bytes), followed by the random data -(binary), passed through the Tiger hash algorithm (not TTH) then converted to +(binary), passed through the session hash algorithm then converted to base32. When validated, this transitions the server into NORMAL state. ==== QUI @@ -567,24 +565,13 @@ 0 as the first byte. <bytes> may be set to -1 to indicate that the sending client should fill it in with the number of bytes needed to complete the file from <start_pos>. <type> is a [a-zA-Z0-9]+ string that specifies the namespace -for identifier and BASE requires that clients recognize the types "file", -"tthl" and "list". Extensions may add to the identifier names as well as add -new types. +for identifier and BASE requires that clients recognize the types "file" and +"list". Extensions may add to the identifier names as well as add new types. "file" transfers transfer the file data in binary, starting at <start_pos> and -sending <bytes> bytes. Identifier must be a TTH root value from the "TTH/" -root. +sending <bytes> bytes. Identifier must come from the namespace of the current +session hash. -"tthl" transfers send the largest set of leaves available) as a binary -stream of leaf data, right-to-left, with no spacing in between them. -<start_pos> must be set to 0 and <bytes> to -1 when requesting the data. -<bytes> must contain the total binary size of the leaf stream in SND, and by -dividing this length by the individual hash length, the number of leaves, and -thus the leaf level can be deducted. The received leaves can then be used to -reconstruct the entire tree, and the resulting root must match the root of the -file (this verifies the integrity of the tree itself). Identifier must be a -TTH root value from the "TTH/" root. - "list" transfers are used for partial file lists and have a directory as identifier. <start_pos> is always 0 and <bytes> contains the uncompressed length of the generated XML text in the corresponding SND. An optional flag @@ -654,6 +641,56 @@ ___ == Standard Extensions <work-in-progress> + +=== TIGR - Tiger tree hash support +This extension adds tiger tree hash support to the base protocol. It is +intended to be used both for identifying files and for protocol purposes such +as CID generation and password negotiation + +==== General + +==== TIGR for shared files +TIGR supporting clients must share only files hashed using Merkle Hash trees, +as defined by http://www.open-content.net/specs/draft-jchapweske-thex-02.html. +The Tiger algorithm, as specified by +http://www.cs.technion.ac.il/~biham/Reports/Tiger/ functions as the hash +algorithm. A base segment size of 1024 bytes must be used when generating the +tree, but clients may then discard parts of the tree as long as at least 7 +levels are kept or a block granularity of 64 KiB is achieved. + +Generally, the root of the tree (TTH) serves to identify a file uniquely. +Searches use it and it must be present in the file list. Further, the root of +the file list must also be available, and discoverable via GFI. A client may +also request the rest of the tree using the normal client-client transfer +procedure. The root must be encoded using base32 encoding when converted to +text. + +In the file list, each file carries an additional attribute "TTH" containing +the base32-encoded value of the tiger tree root. + +In the GET/GFI type, the full tree may be accessed using the "tthl" type. + +"tthl" transfers send the largest set of leaves available) as a binary +stream of leaf data, right-to-left, with no spacing in between them. +<start_pos> must be set to 0 and <bytes> to -1 when requesting the data. +<bytes> must contain the total binary size of the leaf stream in SND, and by +dividing this length by the individual hash length, the number of leaves, and +thus the leaf level can be deducted. The received leaves can then be used to +reconstruct the entire tree, and the resulting root must match the root of the +file (this verifies the integrity of the tree itself). Identifier must be a +TTH root value from the "TTH/" root. + +In the GET/GFI namespace, files are identified by +"TTH/<base32-encoded tree root>". + +In searches and GFI, the following attributes are added: + +[separator="|",grid="all",frame="all"] +``_ +TR | Tiger tree hash root, encoded with base32. +TD | Tree depth, index of the highest level of tree data available, root-only = 0, first level (2 leaves) = 1, second level = 2, etc... +___ + === BZIP – File list compressed with bzip2 This extension adds a special file "files.xml.bz2" in the unnamed root of the share which contains "files.xml" compressed with bzip2 1.0.3+ (www.bzip.org). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-09 23:37:02
|
Revision: 899 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=899&view=rev Author: arnetheduck Date: 2007-11-09 15:37:00 -0800 (Fri, 09 Nov 2007) Log Message: ----------- Fix segments Modified Paths: -------------- dcplusplus/trunk/dcpp/QueueItem.cpp Modified: dcplusplus/trunk/dcpp/QueueItem.cpp =================================================================== --- dcplusplus/trunk/dcpp/QueueItem.cpp 2007-11-09 23:24:10 UTC (rev 898) +++ dcplusplus/trunk/dcpp/QueueItem.cpp 2007-11-09 23:37:00 UTC (rev 899) @@ -98,11 +98,15 @@ Segment block(start, end - start); bool overlaps = false; for(SegmentIter i = done.begin(); !overlaps && i != done.end(); ++i) { - int64_t dstart = i->getStart(); - int64_t dend = i->getEnd(); - // We accept partial overlaps, only consider the block done if it is fully consumed by the done block - if(dstart <= start && dend >= end) { - overlaps = true; + if(curSize <= blockSize) { + int64_t dstart = i->getStart(); + int64_t dend = i->getEnd(); + // We accept partial overlaps, only consider the block done if it is fully consumed by the done block + if(dstart <= start && dend >= end) { + overlaps = true; + } + } else { + overlaps = block.overlaps(*i); } } @@ -143,8 +147,8 @@ for(SegmentSet::iterator i = ++done.begin() ; i != done.end(); ) { SegmentSet::iterator prev = i; prev--; - if(prev->getEnd() == i->getStart()) { - Segment big(prev->getStart(), prev->getSize() + i->getSize()); + if(prev->getEnd() >= i->getStart()) { + Segment big(prev->getStart(), i->getEnd() - prev->getStart()); done.erase(prev); done.erase(i++); done.insert(big); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2007-11-09 23:24:15
|
Revision: 898 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=898&view=rev Author: zouzou123gen Date: 2007-11-09 15:24:10 -0800 (Fri, 09 Nov 2007) Log Message: ----------- readded LVS_NOSORTHEADER in FavHubsFrame, changelog update Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/win32/FavHubsFrame.cpp Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2007-11-09 22:45:47 UTC (rev 897) +++ dcplusplus/trunk/changelog.txt 2007-11-09 23:24:10 UTC (rev 898) @@ -4,6 +4,9 @@ * Fixed badly drawn arrows (thanks poy) * Fixed transfer view header widths (thanks james ross) * Fixed about years (thanks james ross) +* Fixed version info (poy) +* Keep selection visible on move up/down in some list views (poy) +* Fixed clicking in the header of the favorite hubs list view (poy) -- 0.703 2007-11-08 -- * Fixed invalid strings (thanks james ross) Modified: dcplusplus/trunk/win32/FavHubsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/FavHubsFrame.cpp 2007-11-09 22:45:47 UTC (rev 897) +++ dcplusplus/trunk/win32/FavHubsFrame.cpp 2007-11-09 23:24:10 UTC (rev 898) @@ -45,6 +45,7 @@ { { WidgetListView::Seed cs = WinUtil::Seeds::listView; + cs.style |= LVS_NOSORTHEADER; cs.lvStyle |= LVS_EX_CHECKBOXES; hubs = createListView(cs); addWidget(hubs); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-09 22:45:48
|
Revision: 897 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=897&view=rev Author: arnetheduck Date: 2007-11-09 14:45:47 -0800 (Fri, 09 Nov 2007) Log Message: ----------- Minimum segment size Modified Paths: -------------- dcplusplus/trunk/dcpp/QueueItem.cpp dcplusplus/trunk/dcpp/SettingsManager.cpp dcplusplus/trunk/dcpp/SettingsManager.h dcplusplus/trunk/dcpp/StringDefs.h dcplusplus/trunk/dcpp/UserConnection.cpp dcplusplus/trunk/dcpp/UserConnection.h dcplusplus/trunk/win32/Advanced3Page.cpp dcplusplus/trunk/win32/DCPlusPlus.rc dcplusplus/trunk/win32/resource.h Modified: dcplusplus/trunk/dcpp/QueueItem.cpp =================================================================== --- dcplusplus/trunk/dcpp/QueueItem.cpp 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/dcpp/QueueItem.cpp 2007-11-09 22:45:47 UTC (rev 897) @@ -89,9 +89,12 @@ return Segment(0, -1); } int64_t start = 0; + int64_t maxSize = std::max(blockSize, static_cast<int64_t>(SETTING(MIN_SEGMENT_SIZE) * 1024)); + maxSize = ((maxSize + blockSize - 1) / blockSize) * blockSize; // Make sure we're on an even block boundary + int64_t curSize = maxSize; while(start < getSize()) { - int64_t end = std::min(getSize(), start + blockSize); + int64_t end = std::min(getSize(), start + curSize); Segment block(start, end - start); bool overlaps = false; for(SegmentIter i = done.begin(); !overlaps && i != done.end(); ++i) { @@ -111,7 +114,12 @@ return block; } - start = end; + if(curSize > blockSize) { + curSize -= blockSize; + } else { + start = end; + curSize = maxSize; + } } return Segment(0, 0); Modified: dcplusplus/trunk/dcpp/SettingsManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/SettingsManager.cpp 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/dcpp/SettingsManager.cpp 2007-11-09 22:45:47 UTC (rev 897) @@ -58,8 +58,7 @@ "MainWindowSizeX", "MainWindowSizeY", "MainWindowPosX", "MainWindowPosY", "AutoAway", "SocksPort", "SocksResolve", "KeepLists", "AutoKick", "QueueFrameShowTree", "CompressTransfers", "ShowProgressBars", "SFVCheck", - "MaxCompression", "AntiFrag", "NoAwayMsgToBots", - "SkipZeroByte", "AdlsBreakOnFirst", + "MaxCompression", "AntiFrag", "NoAwayMsgToBots", "SkipZeroByte", "AdlsBreakOnFirst", "HubUserCommands", "AutoSearchAutoMatch", "DownloadBarColor", "UploadBarColor", "LogSystem", "LogFilelistTransfers", "SendUnknownCommands", "MaxHashSpeed", "OpenUserCmdHelp", "GetUserCountry", "FavShowJoins", "LogStatusMessages", "ShowStatusbar", @@ -77,7 +76,7 @@ "OpenWaitingUsers", "BoldWaitingUsers", "OpenSystemLog", "BoldSystemLog", "AutoRefreshTime", "UseTLS", "AutoSearchLimit", "AltSortOrder", "AutoKickNoFavs", "PromptPassword", "SpyFrameIgnoreTthSearches", "DontDlAlreadyQueued", "MaxCommandLength", "AllowUntrustedHubs", "AllowUntrustedClients", - "TLSPort", "FastHash", "SortFavUsersFirst", "ShowShellMenu", + "TLSPort", "FastHash", "SortFavUsersFirst", "ShowShellMenu", "MinSegmentSize", "SENTRY", // Int64 "TotalUpload", "TotalDownload", @@ -270,6 +269,7 @@ setDefault(FAST_HASH, true); setDefault(SORT_FAVUSERS_FIRST, false); setDefault(SHOW_SHELL_MENU, false); + setDefault(MIN_SEGMENT_SIZE, 1024); #ifdef _WIN32 setDefault(MAIN_WINDOW_STATE, SW_SHOWNORMAL); Modified: dcplusplus/trunk/dcpp/SettingsManager.h =================================================================== --- dcplusplus/trunk/dcpp/SettingsManager.h 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/dcpp/SettingsManager.h 2007-11-09 22:45:47 UTC (rev 897) @@ -70,8 +70,7 @@ MAIN_WINDOW_SIZE_X, MAIN_WINDOW_SIZE_Y, MAIN_WINDOW_POS_X, MAIN_WINDOW_POS_Y, AUTO_AWAY, SOCKS_PORT, SOCKS_RESOLVE, KEEP_LISTS, AUTO_KICK, QUEUEFRAME_SHOW_TREE, COMPRESS_TRANSFERS, SHOW_PROGRESS_BARS, SFV_CHECK, - MAX_COMPRESSION, ANTI_FRAG, NO_AWAYMSG_TO_BOTS, - SKIP_ZERO_BYTE, ADLS_BREAK_ON_FIRST, + MAX_COMPRESSION, ANTI_FRAG, NO_AWAYMSG_TO_BOTS, SKIP_ZERO_BYTE, ADLS_BREAK_ON_FIRST, HUB_USER_COMMANDS, AUTO_SEARCH_AUTO_MATCH, UPLOAD_BAR_COLOR, DOWNLOAD_BAR_COLOR, LOG_SYSTEM, LOG_FILELIST_TRANSFERS, SEND_UNKNOWN_COMMANDS, MAX_HASH_SPEED, OPEN_USER_CMD_HELP, GET_USER_COUNTRY, FAV_SHOW_JOINS, LOG_STATUS_MESSAGES, SHOW_STATUSBAR, @@ -89,7 +88,7 @@ OPEN_WAITING_USERS, BOLD_WAITING_USERS, OPEN_SYSTEM_LOG, BOLD_SYSTEM_LOG, AUTO_REFRESH_TIME, 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, + TLS_PORT, FAST_HASH, SORT_FAVUSERS_FIRST, SHOW_SHELL_MENU, MIN_SEGMENT_SIZE, INT_LAST }; enum Int64Setting { INT64_FIRST = INT_LAST + 1, Modified: dcplusplus/trunk/dcpp/StringDefs.h =================================================================== --- dcplusplus/trunk/dcpp/StringDefs.h 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/dcpp/StringDefs.h 2007-11-09 22:45:47 UTC (rev 897) @@ -467,6 +467,7 @@ SETTINGS_MAX_FILELIST_SIZE, // "Max filelist size" SETTINGS_MAX_HASH_SPEED, // "Max hash speed" SETTINGS_MAX_TAB_ROWS, // "Max tab rows" + SETTINGS_MIN_SEGMENT_SIZE, // "Min segment size" SETTINGS_MINIMIZE_TRAY, // "Minimize to tray" SETTINGS_NAME, // "Name" SETTINGS_NETWORK, // "Connection settings" Modified: dcplusplus/trunk/dcpp/UserConnection.cpp =================================================================== --- dcplusplus/trunk/dcpp/UserConnection.cpp 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/dcpp/UserConnection.cpp 2007-11-09 22:45:47 UTC (rev 897) @@ -158,6 +158,21 @@ send(c); } +void UserConnection::sup(const StringList& features) { + AdcCommand c(AdcCommand::CMD_SUP); + for(StringIterC i = features.begin(); i != features.end(); ++i) + c.addParam(*i); + send(c); +} + +void UserConnection::supports(const StringList& feat) { + string x; + for(StringList::const_iterator i = feat.begin(); i != feat.end(); ++i) { + x+= *i + ' '; + } + send("$Supports " + x + '|'); +} + void UserConnection::on(Connected) throw() { lastActivity = GET_TICK(); fire(UserConnectionListener::Connected(), this); Modified: dcplusplus/trunk/dcpp/UserConnection.h =================================================================== --- dcplusplus/trunk/dcpp/UserConnection.h 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/dcpp/UserConnection.h 2007-11-09 22:45:47 UTC (rev 897) @@ -109,27 +109,15 @@ void listLen(const string& aLength) { send("$ListLen " + aLength + '|'); } void maxedOut() { isSet(FLAG_NMDC) ? send("$MaxedOut|") : send(AdcCommand(AdcCommand::SEV_RECOVERABLE, AdcCommand::ERROR_SLOTS_FULL, "Slots full")); } void fileNotAvail(const std::string& msg = FILE_NOT_AVAILABLE) { isSet(FLAG_NMDC) ? send("$Error " + msg + "|") : send(AdcCommand(AdcCommand::SEV_RECOVERABLE, AdcCommand::ERROR_FILE_NOT_AVAILABLE, msg)); } + void supports(const StringList& feat); // ADC Stuff - void sup(const StringList& features) { - AdcCommand c(AdcCommand::CMD_SUP); - for(StringIterC i = features.begin(); i != features.end(); ++i) - c.addParam(*i); - send(c); - } + void sup(const StringList& features); void inf(bool withToken); void get(const string& aType, const string& aName, const int64_t aStart, const int64_t aBytes) { send(AdcCommand(AdcCommand::CMD_GET).addParam(aType).addParam(aName).addParam(Util::toString(aStart)).addParam(Util::toString(aBytes))); } void snd(const string& aType, const string& aName, const int64_t aStart, const int64_t aBytes) { send(AdcCommand(AdcCommand::CMD_SND).addParam(aType).addParam(aName).addParam(Util::toString(aStart)).addParam(Util::toString(aBytes))); } - void send(const AdcCommand& c) { send(c.toString(0, isSet(FLAG_NMDC))); } - void supports(const StringList& feat) { - string x; - for(StringList::const_iterator i = feat.begin(); i != feat.end(); ++i) { - x+= *i + ' '; - } - send("$Supports " + x + '|'); - } void setDataMode(int64_t aBytes = -1) { dcassert(socket); socket->setDataMode(aBytes); } void setLineMode(size_t rollback) { dcassert(socket); socket->setLineMode(rollback); } Modified: dcplusplus/trunk/win32/Advanced3Page.cpp =================================================================== --- dcplusplus/trunk/win32/Advanced3Page.cpp 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/win32/Advanced3Page.cpp 2007-11-09 22:45:47 UTC (rev 897) @@ -39,6 +39,7 @@ { IDC_SETTINGS_MB, ResourceManager::MiB }, { IDC_SETTINGS_AUTO_REFRESH_TIME, ResourceManager::SETTINGS_AUTO_REFRESH_TIME }, { IDC_SETTINGS_AUTO_SEARCH_LIMIT, ResourceManager::SETTINGS_AUTO_SEARCH_LIMIT }, + { IDC_SETTINGS_MIN_SEGMENT_SIZE, ResourceManager::SETTINGS_MIN_SEGMENT_SIZE }, { 0, ResourceManager::SETTINGS_AUTO_AWAY } }; @@ -55,6 +56,7 @@ { IDC_PRIVATE_ID, SettingsManager::PRIVATE_ID, PropPage::T_STR }, { IDC_AUTO_REFRESH_TIME, SettingsManager::AUTO_REFRESH_TIME, PropPage::T_INT }, { IDC_AUTO_SEARCH_LIMIT, SettingsManager::AUTO_SEARCH_LIMIT, PropPage::T_INT }, + { IDC_MIN_SEGMENT_SIZE, SettingsManager::MIN_SEGMENT_SIZE, PropPage::T_INT }, { 0, 0, PropPage::T_END } }; Modified: dcplusplus/trunk/win32/DCPlusPlus.rc =================================================================== --- dcplusplus/trunk/win32/DCPlusPlus.rc 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/win32/DCPlusPlus.rc 2007-11-09 22:45:47 UTC (rev 897) @@ -399,38 +399,41 @@ BEGIN RTEXT "Rollback",IDC_SETTINGS_ROLLBACK,7,10,57,8 EDITTEXT IDC_ROLLBACK,69,7,45,14,ES_AUTOHSCROLL | ES_NUMBER - LTEXT "B",IDC_SETTINGS_B,117,10,8,8 - RTEXT "Max Hash Speed",IDC_SETTINGS_MAX_HASH_SPEED,7,27,57,8,0,WS_EX_RIGHT + LTEXT "B",IDC_SETTINGS_B,117,10,16,8 + RTEXT "Max Hash Speed",IDC_SETTINGS_MAX_HASH_SPEED,7,27,57,8 EDITTEXT IDC_MAX_HASH_SPEED,69,24,45,14,ES_AUTOHSCROLL - LTEXT "MiB/s",IDC_SETTINGS_MBS,117,27,20,8 + LTEXT "MiB/s",IDC_SETTINGS_MBS,117,27,16,8 RTEXT "PM history",IDC_SETTINGS_PM_HISTORY,7,44,57,8 EDITTEXT IDC_SHOW_LAST_LINES_LOG,69,41,45,14,ES_AUTOHSCROLL RTEXT "Mini slot size",IDC_SETTINGS_TEXT_MINISLOT,7,61,57,8 EDITTEXT IDC_SET_MINISLOT_SIZE,69,58,45,14,ES_AUTOHSCROLL - LTEXT "KiB",IDC_SETTINGS_KB2,117,61,14,8 + LTEXT "KiB",IDC_SETTINGS_KB2,117,61,16,8 RTEXT "Max filelist size",IDC_SETTINGS_MAX_FILELIST_SIZE,7,78,57,8 EDITTEXT IDC_MAX_FILELIST_SIZE,69,75,45,14,ES_AUTOHSCROLL - LTEXT "MiB",IDC_SETTINGS_MB,117,78,14,8 - LTEXT "PID",IDC_STATIC,52,95,12,8 + LTEXT "MiB",IDC_SETTINGS_MB,117,78,16,8 + RTEXT "PID",IDC_STATIC,7,95,57,8 EDITTEXT IDC_PRIVATE_ID,69,92,45,14,ES_AUTOHSCROLL - LTEXT "Auto refresh time",IDC_SETTINGS_AUTO_REFRESH_TIME,7,113,57,8 + LTEXT "Auto refresh time",IDC_SETTINGS_AUTO_REFRESH_TIME,7,112,57,8 EDITTEXT IDC_AUTO_REFRESH_TIME,69,110,45,14,ES_AUTOHSCROLL - RTEXT "File write buffer",IDC_SETTINGS_WRITE_BUFFER,139,10,65,8 + RTEXT "File write buffer",IDC_SETTINGS_WRITE_BUFFER,134,10,70,8 EDITTEXT IDC_BUFFERSIZE,208,7,41,14,ES_AUTOHSCROLL - LTEXT "KiB",IDC_SETTINGS_KB,252,10,10,8 - RTEXT "Search history",IDC_SETTINGS_SEARCH_HISTORY,139,44,65,8 + LTEXT "KiB",IDC_SETTINGS_KB,252,10,16,8 + RTEXT "Auto-search limit",IDC_SETTINGS_AUTO_SEARCH_LIMIT,134,27,70,8 + EDITTEXT IDC_AUTO_SEARCH_LIMIT,208,24,41,14,ES_AUTOHSCROLL + RTEXT "Search history",IDC_SETTINGS_SEARCH_HISTORY,134,44,70,8 EDITTEXT IDC_SEARCH_HISTORY,208,41,41,14,ES_AUTOHSCROLL CONTROL "",IDC_SEARCH_HISTORY_SPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,246,41,11,14 - RTEXT "Bind address",IDC_SETTINGS_BIND_ADDRESS,139,61,65,8 + RTEXT "Bind address",IDC_SETTINGS_BIND_ADDRESS,134,61,70,8 EDITTEXT IDC_BIND_ADDRESS,208,58,41,14,ES_AUTOHSCROLL - RTEXT "Socket read buffer",IDC_SETTINGS_SOCKET_IN_BUFFER,131,78,73,8 + RTEXT "Socket read buffer",IDC_SETTINGS_SOCKET_IN_BUFFER,134,78,70,8 EDITTEXT IDC_SOCKET_IN_BUFFER,208,75,41,14,ES_AUTOHSCROLL - LTEXT "B",IDC_STATIC,252,78,8,8 - RTEXT "Socket write buffer",IDC_SETTINGS_SOCKET_OUT_BUFFER,128,96,76,8 + LTEXT "B",IDC_STATIC,252,78,16,8 + RTEXT "Socket write buffer",IDC_SETTINGS_SOCKET_OUT_BUFFER,134,95,70,8 EDITTEXT IDC_SOCKET_OUT_BUFFER,208,93,41,14,ES_AUTOHSCROLL - LTEXT "B",IDC_STATIC,252,96,8,8 - EDITTEXT IDC_AUTO_SEARCH_LIMIT,208,24,41,14,ES_AUTOHSCROLL - LTEXT "Auto-search limit",IDC_SETTINGS_AUTO_SEARCH_LIMIT,148,26,56,13 + LTEXT "B",IDC_STATIC,252,95,16,8 + RTEXT "Min segment size",IDC_SETTINGS_MIN_SEGMENT_SIZE,134,112,70,8 + EDITTEXT IDC_MIN_SEGMENT_SIZE,208,110,41,14,ES_AUTOHSCROLL + LTEXT "KiB",IDC_STATIC,252,112,16,8 END IDD_NETWORKPAGE DIALOGEX 100, 0, 275, 225 Modified: dcplusplus/trunk/win32/resource.h =================================================================== --- dcplusplus/trunk/win32/resource.h 2007-11-09 22:04:20 UTC (rev 896) +++ dcplusplus/trunk/win32/resource.h 2007-11-09 22:45:47 UTC (rev 897) @@ -431,5 +431,7 @@ #define IDC_WINDOWS_OPTIONS 2289 #define IDC_WINDOWS_STARTUP 2290 #define IDC_SETTINGS_PAGES 2291 +#define IDC_SETTINGS_MIN_SEGMENT_SIZE 2292 +#define IDC_MIN_SEGMENT_SIZE 2293 #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2007-11-09 22:04:22
|
Revision: 896 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=896&view=rev Author: zouzou123gen Date: 2007-11-09 14:04:20 -0800 (Fri, 09 Nov 2007) Log Message: ----------- too many ensureVisible's in ADLS frame... Modified Paths: -------------- dcplusplus/trunk/win32/ADLSearchFrame.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2007-11-09 22:01:31
|
Revision: 895 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=895&view=rev Author: zouzou123gen Date: 2007-11-09 14:01:30 -0800 (Fri, 09 Nov 2007) Log Message: ----------- ensureVisible on move up/down in some list views Modified Paths: -------------- dcplusplus/trunk/win32/ADLSearchFrame.cpp dcplusplus/trunk/win32/FavHubsFrame.cpp dcplusplus/trunk/win32/HubListsDlg.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2007-11-09 20:31:46
|
Revision: 894 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=894&view=rev Author: zouzou123gen Date: 2007-11-09 12:31:44 -0800 (Fri, 09 Nov 2007) Log Message: ----------- version info fix Modified Paths: -------------- dcplusplus/trunk/win32/resource.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-09 19:47:31
|
Revision: 893 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=893&view=rev Author: arnetheduck Date: 2007-11-09 11:47:30 -0800 (Fri, 09 Nov 2007) Log Message: ----------- Patches Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/Socket.cpp dcplusplus/trunk/dcpp/StringDefs.h dcplusplus/trunk/smartwin/include/smartwin/GCCHeaders.h dcplusplus/trunk/smartwin/include/smartwin/LibraryLoader.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetListView.h dcplusplus/trunk/smartwin/source/LibraryLoader.cpp dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp dcplusplus/trunk/win32/AboutDlg.cpp dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/main.cpp dcplusplus/trunk/win32/stdafx.h Added Paths: ----------- dcplusplus/trunk/tag.sh This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2007-11-08 19:23:48
|
Revision: 892 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=892&view=rev Author: ullner Date: 2007-11-08 11:23:45 -0800 (Thu, 08 Nov 2007) Log Message: ----------- help file compilation made simpler; added coral'd hub lists Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/SettingsManager.cpp dcplusplus/trunk/help/compile.cmd This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pie...@us...> - 2007-11-08 17:31:45
|
Revision: 889 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=889&view=rev Author: pietricica Date: 2007-11-08 09:22:32 -0800 (Thu, 08 Nov 2007) Log Message: ----------- 0.703 Added Paths: ----------- dcplusplus/tags/dcplusplus-0.703/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pie...@us...> - 2007-11-08 17:30:16
|
Revision: 888 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=888&view=rev Author: pietricica Date: 2007-11-08 09:20:28 -0800 (Thu, 08 Nov 2007) Log Message: ----------- edited changelog date, release script and installer to include openssl and openssl license Modified Paths: -------------- dcplusplus/trunk/DCPlusPlus.nsi dcplusplus/trunk/changelog.txt dcplusplus/trunk/release.sh This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pie...@us...> - 2007-11-08 17:28:46
|
Revision: 891 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=891&view=rev Author: pietricica Date: 2007-11-08 09:28:43 -0800 (Thu, 08 Nov 2007) Log Message: ----------- 0.703 Added Paths: ----------- dcplusplus/tags/dcplusplus-0.703/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pie...@us...> - 2007-11-08 17:26:39
|
Revision: 890 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=890&view=rev Author: pietricica Date: 2007-11-08 09:26:34 -0800 (Thu, 08 Nov 2007) Log Message: ----------- Removed file/folder Removed Paths: ------------- dcplusplus/tags/dcplusplus-0.703/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2007-11-06 15:46:23
|
Revision: 887 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=887&view=rev Author: ullner Date: 2007-11-06 07:46:22 -0800 (Tue, 06 Nov 2007) Log Message: ----------- fixed the MAP section; loads correctly Modified Paths: -------------- dcplusplus/trunk/help/DCPlusPlus.hhp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-11-05 20:49:41
|
Revision: 886 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=886&view=rev Author: arnetheduck Date: 2007-11-05 12:49:40 -0800 (Mon, 05 Nov 2007) Log Message: ----------- Fix user commands and a few other minor things Modified Paths: -------------- dcplusplus/trunk/smartwin/include/smartwin/aspects/AspectCommand.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetComboBox.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetStatic.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetTextBox.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |