Commit Graph

83 Commits

Author SHA1 Message Date
csoler
59712222da added an test to avodi calling a null ftController in simulation mode
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5639 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-10-04 21:26:32 +00:00
csoler
32b893ef92 made one method virtual to help simulating
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5628 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-10-01 11:50:34 +00:00
csoler
1c3d6e7c16 Improvements to turtle router:
- made faster tunnels stay longer by increasing tunnel campain time. Should favor fast tunnels. 
- desactivated tunnel shortenning since it cannot produce consistent tunnels every time
- increase cache TTL for search requests to 240 secs and tunnel requests to 120 secs.
  Will remove some zombie tunnels and search requests.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5589 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-09-23 19:58:08 +00:00
csoler
3146ddc7c2 removed debug flag left ;-)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5518 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-09-06 11:46:40 +00:00
csoler
550fa72afe fixed compilation with DEBUG flags
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5517 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-09-06 11:46:03 +00:00
csoler
f6c6af8b59 removed non-mutex-protected reference
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5157 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-05-10 19:04:31 +00:00
thunder2
3718d6ecfa Removed usages of "std::istringstream" and "std::stringstream".
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5135 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-05-03 13:41:03 +00:00
thunder2
a6dfac2a37 Removed std::stringstream.
Removed not necessary include <sstream>.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5112 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-04-19 22:10:00 +00:00
csoler
a9e496f845 Improved TR routing strategy:
- updated base forward probabilities to larger values
   - used a minimum FP to 1/nb_connected_friends instead of 0. This is the larger non-explosive value.
   - changed tunnel management time to 2 secs instead of 1, setting the overall number of TR/s emmitted 
     for all downloads to 0.5 (Should reduce the TR load for the whole network by a factor of 2).

With these settings, someone with N friends should receive at most N/2 TR/s at depth 1, which corresponds to 
N/2*50 B/s. To reach the limit of 1500 B/s, one needs to have 60 connected friends downloading. Accounting for 
friends at multiple hops, having more than 30-40 friends is likely to be unefficient, although it will not
stop the network completely as it did before.
	 


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5110 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-04-19 20:23:58 +00:00
thunder2
470951d664 Removed some std::ostringstream.
To be continued.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5104 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-04-15 14:37:44 +00:00
thunder2
3b85873313 Added patch from AC
- add missing includes "unistd.h" for compiling with gcc 4.7.0.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5096 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-04-12 23:29:39 +00:00
csoler
889a2b2433 Added deferred check of chunks during file transfer. Chunk sha1 sums are requested to the sources and checked for downloaded data.
Validated chunks are shared to other peers. Force check is now very simple since it just turns all chunks into "needs checking" mode
and sums are asked to sources. Sources maintain a temporary cache of chunks. Since sums are requested sparsely, this should not 
affect the sources in terms of performance. We can still imagine precomputing and saving sha1 of chunks while hashing them.

For backward compatibility reasons, the following has been setup *temporarily* in this version:
- unvalidated chunks are still considered as already obtained, and are shared and saved
- force check has been disabled
- final file check is maintained
- in case of file fail, the old checking mode will be used.

All changes for next version are kept in the define 'USE_NEW_CHUNK_CHECKING_CODE' that will be made the default in a few weeks.
At start, I expect most chunk to stya yellow during download, until most sources are able to provide chunk hashs.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5019 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-03-15 19:55:43 +00:00
csoler
fd83e5950f added control over TR forward rate, so that we can experiment with it on large bandwidth servers
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4918 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-02-10 22:23:06 +00:00
csoler
2805d4ca1e disabled turtle routing for relayed connexions
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4799 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-01-14 13:27:48 +00:00
csoler
303f6333f6 obfuscation of TR and SR by random rare non-increase of length 1 requests (original idea by Costa)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4647 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-10-21 21:39:36 +00:00
csoler
c650265704 added display of TR forwarding probability as a function of depth
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4625 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-10-01 11:46:00 +00:00
csoler
0ed60eaf86 merge of QoS branch into trunk
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4588 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-09-04 20:01:30 +00:00
thunder2
c6beee44ec Removed unused parameter warnings in libretroshare.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4558 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-08-12 13:42:30 +00:00
drbob
8e3e7d5209 Cleaned up rsPeers to remove 10 minute reconnect. The reconnect was caused by
the periodical call of cleanupUsedLocation, which was reloading all the GPG Keys - for each cleanup Key.
This required cleaning up various bits (AuthGPG, rsPeers, p3Disc).

 * moved rsPeer::cleanUnusedLocations => p3PeerMgr::removeUnusedLocations();
 	- made the function light-weight, no loading of GPG Keys.
 * moved getSSLCertsFromGPG() fn from rsPeers => p3PeerMgr
 * added p3PeerMgr::removeAllFriendLocations() to cleanup when removing a GPG Friend.
 * cleaned up rsPeers, made addFriend() / removeFriend() universal functions.
 * remove bool   p3Peers::setAcceptToConnectGPGCertificate(const std::string &gpg_id, bool acceptance)
 * removed all Dummy SSL Ids. - There is no need for this!
 * Major changes to p3disc to correct FLAWED logic.  (needs more testing).
 * removed as many dependancies on retroshare/rspeer.h as possible.
 * changed p3turtle dependancy on rsPeers ==> mLinkMgr.
 * added p3LinkMgr::getPeerName() and p3PeerMgr::getPeerName()
 * added return 1 to pqissllistener::closeConnection().
 * removed unused code from AuthGPG().
 * removed storeAllKeys() calls in AuthGPG::AllowConnection().



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4542 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-08-07 21:11:00 +00:00
drbob
f6f721a492 Removed p3ConnectMgr. Replaced it with p3LinkMgr, p3NetMgr and p3PeerMgr.
Updated references in other classes.
 * Most classes need p3LinkMgr, and only use two functions: OwnId() and getOnlineList()




git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4416 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-09 18:39:34 +00:00
thunder2
de87a89437 Added a name to the RsMutex class.
You can enable the debugging of the waiting time for a lock of RsMutex in rsthreads.h with
#define RSMUTEX_DEBUG 300
That means all locks waiting longer than 300ms are logged into the stderr.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4392 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-04 22:59:39 +00:00
csoler
e77913914d fixed bug in search with size in MB. Caused crash due to deserialization error.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4347 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-06-28 08:18:54 +00:00
csoler
ee278b45b7 corrected uninitialized value
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4327 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-06-23 19:16:10 +00:00
csoler
0baaa271e9 added missing info for search depths
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4227 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-05-31 21:22:18 +00:00
csoler
7edcf59116 moved TR filtering to beginning of TR handlign function. Makes it more consistent w.t.r. the displayed turtle statistics
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4223 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-05-28 20:36:52 +00:00
csoler
f3ca5b9941 added automatic limitation of turtle search and turtle tunnel requests as a function of current traffic
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4222 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-05-28 14:39:47 +00:00
csoler
4d846513e2 added additional statistics from turtle router. Needs full recompilation.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4221 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-05-26 22:11:06 +00:00
csoler
3f21835114 added a display of turtle search/tunnel requests over time, to help spotting potential spammers
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4216 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-05-23 21:45:25 +00:00
csoler
61b387447f fixed display inconsistency in tunnel local src/dst when getPeerDetails() call fails
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4170 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-04-25 14:15:57 +00:00
csoler
4ea647b78c implemented a verification for tunnel results. When the network gets heavily loaded, some tunnel results happen to get back twice. This stops the tunnel result sibblings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4152 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-04-10 19:22:15 +00:00
csoler
8e6962808d - added random bias to search and tunnel request maximum depth
- added random (and biased) re-routing of tunnel request to improve tunnel length.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4130 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-04-07 20:16:43 +00:00
csoler
9e2be4b5be implemented a better management of tunnel requests
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4093 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-03-15 23:09:31 +00:00
csoler
c448e82987 suppressed --probably-- harmless data race
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4021 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-02-08 19:37:01 +00:00
chrisparker126
2f559dae96 removed channel delete feature
added optimisation suggestion with load/savelist

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3920 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-12-18 19:35:07 +00:00
csoler
9bb5f304b7 changed function name addDistantPeer to locked_addDistantPeer
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3899 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-12-07 21:45:12 +00:00
csoler
64e66f7f4c using new random generator for turtle tunnel ids.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3490 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-14 21:26:18 +00:00
thunder2
1c2db7eb9b Added missing return to p3turtle::loadList.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3467 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-11 11:11:58 +00:00
csoler
73f3fa3223 suppressed some warnings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3440 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-03 19:23:49 +00:00
leander-256
4bb4fc11e2 This intimidating patch renames libretroshare/src/rsiface/ to
libretroshare/src/retroshare/

All the relevant headers have been modified to reflect that change.

This allows installation of libretroshare on a system, headers will
be put in $WHEREVER/retroshare/ and we keep the ability to compile
against them, be it on the system or in the SVN tree.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3342 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-06 09:40:23 +00:00
csoler
012808ea00 - Implemented CRC32 map traffic through direct downloads
- replaced the findItems() call into a hand-written search (this was causing a rare bug in displaying downloads)


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3318 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-29 21:07:07 +00:00
csoler
cee8600a93 - implemented bidirectional exchange of chunk maps for direct downloads, to allow showing proper completion of transfers from direct friends.
- moved the direction flag upward in the pipeline (ftDataSend instead of p3turtle)




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3313 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-25 19:04:31 +00:00
csoler
8bfc74485a First implementation of per-chunk CRC32 check. This is triggered
- by the right-click+Force Check on files.
- when a global hash on a downloaded file does not match the announced hash.

When a CRC map check is ordered, the CRC map is requested to one of the sources for the current file download.
When received, all downloaded chunks are checked w.r.t the reference CRC and marked as not done if the CRCs do not match.
The exchange of CRC32 map and requests has been tested, as well as CRC map checking during download (force check).

To be implemented soon:
    - caching of CRC32 maps (although these are fast to compute)
    - CRC32 map packets for normal downloads. For now these work only for turtle tunnels.
    - handling of errors if the CRC never comes. For now, the download will stay stuck in "Checking..." mode.

So, don't play too much with the force check feature for now...





git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3310 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-21 23:14:10 +00:00
leander-256
c0ba17fce3 Several fixes:
- stores an iterator rather than searching a map twice
- deletes a message when it can't be routed in routeGenericTunnelItem()
- deletes a message when its contents allocation failed in sendFileData()


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3244 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 05:50:33 +00:00
csoler
bcd281f3e8 implemented speed measurement and display for turtle tunnels
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3161 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-19 12:11:44 +00:00
csoler
95c5c4b1a1 Added in RsItem a new virtual method queueType() that returns the type of the queue to
use for handling the packet: RsItem::DATA_QUEUE for data and RsItem::CONTROL_QUEUE for 
control packets, to be used in pqistreamer.

Up to now, File data chunks where the only packets that were going into the --less prioritized--
data queue. Now, the default in RsItem::queueType() being to return CONTROL_QUEUE, developpers can
choose which queue t use by simply overloading this method so that it returns a different value.

The first use of this was to make generic turtle tunnel packets use the data queue instead of 
the control queuem, which restores a correct balance between turtle downloads and friends downloads.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3153 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-16 21:09:58 +00:00
thunder2
c3b6da6386 cleaned some compiler warnings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3092 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-09 19:51:46 +00:00
csoler
b80aef1228 Suppressed the possibility for browsable only files to be searched by hash from turtle router.
This avoids that an attacker that captures a broadcast hash request can also ask for the file.

This needed to add back explicit sources in SearchDialog and private chat transfer. I dynamically search
for sources in file lists just before calling FileRequest.

When RS links anchorClick() will work properly with Qt, we can remove the search flag "EXTRA" from the
tunnel digging in p3turtle.cc, otherwise, people having this bug can't transfer files in private chat by
copy+paste of a RS link.
    
	Also:
	    - added missing mutexes in search requests into fimonitor.cc
		- suppressed some debug info in connect manager
		- added check for write fails when dumping config files



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3027 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-29 13:17:09 +00:00
csoler
ef67dbf244 fixed win32 compilation pb
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2537 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-13 12:24:14 +00:00
csoler
c22799b996 moved removal of sources off turtle mutex to avoid cross-lock. Added a closeFile() call when moving files out of the queue
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2523 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-12 19:39:23 +00:00
csoler
5f7486f160 added proper dynamic suppression of sources from chunkmap, and updated the gui
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2498 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-07 14:42:13 +00:00