Commit Graph

103 Commits

Author SHA1 Message Date
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
csoler
9e469d8baf Added proper dl queue behavior
- suppressed old DwlQueue class
	- turned mDownloads into a list of pointers to allow easy cross-info update between queue and std::map of downloads
	- added queue functionality for moving files top/bottom/up/down
	- added the necessary functions in rsFiles

Put back display of exact sizes in FileTransferInfoWidget

Suppressed some warnings.

**Warning**: this commit requires a make clean.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2493 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-06 23:29:47 +00:00
csoler
fbfff65703 fixed group chat download
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2361 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-18 22:57:45 +00:00
csoler
5ff48963a5 improved tunnel display name
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2337 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-15 21:32:06 +00:00
csoler
272d9845a6 corrected invalid memory read due to bad deletion method in std::map
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2268 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-09 21:53:49 +00:00
csoler
b899327f13 improved display of turtle routing info, corrected some minor compilation issues
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2248 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-08 23:09:46 +00:00
joss17
5aff139382 further log cleanings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2235 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-07 23:01:46 +00:00
csoler
3e921bb254 added some security checks to turtle router
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2208 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-05 22:45:52 +00:00
csoler
8ccf3c3e2d corrected bug about display/selection of anonymous files
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2176 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-03 20:59:54 +00:00
csoler
a70b106005 - added NETWORK_WIDE flag to remote dir model download
- added file priority strategy based on which files are requested first. This provides:
	- equal file speed for files with equal (source,priority)
	- effective priority speed for file of same source but different priority
- removed state variable load/save from turtle, as it's not needed anymore (FileRequest re-opens tunnels as needed)
- manage availability per peer instead of per file type: direct peer ids always assume file availability, while turtle tunnels don't

I still need to make the download queue work, and code this gui for it.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2133 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-26 20:40:21 +00:00
csoler
f42489d8e6 changed name of turtle tunnels into a more explicit and less losy name ;-)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2103 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-21 12:33:01 +00:00
joss17
9d53481946 make it run
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2003 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-13 21:01:06 +00:00
joss17
c23407cae3 get rid of p3authmgr
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2001 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-13 20:56:55 +00:00
csoler
cfaaec31c7 - Implemented chunk-based file transfer from partial sources. This in particular means:
- exchange of chunk availability maps from different peers
    - correct handling of what is available to which source before asking the data
    - correct display of chunks in the progress bars
    - generalised the use of compressed chunk maps
    - removed the size parameters from the hash search functions
   
- In addition:
    - suppressed a number of per-value transfers of std::string
    - improved the FileTransferInfo Widget, to show some additional info

Still to be done:
    - chunk map exchange for non anonymous traffic (easy)
    - improve accuracy of completion for uploads (for now it's a integer number of chunks)
    - check compilation on windows




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1993 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-11 16:00:42 +00:00
csoler
b83e894640 - added a generic RsItem to the turtle router and the methods to route it. This makes the code much more elegant.
- suppressed a cross mutex lock bug that happened rarely while digging tunnels
- changed FileDetails in ftServer so that it's now possiblt to search for hashes of files being downloaded
- improved the search code in ftdatamultiplex
- added some comments to the turtle code



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1964 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-02 21:30:19 +00:00
csoler
f4a2eaecce - implemented a visualisation for currently handled chunks, availability maps, and transfer info
- implemented transfer protocol for chunk availability maps between peers (not enabled yet though)
- suppressed rsiface directory from retroshare-gui
- moved notifyqt.{h,cpp} to gui/

next moves: 
	- send availability maps to clients; 
	- connect turtle search to unfinished files;
	- test multisource download with unfinished files.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1939 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-28 21:11:00 +00:00
joss17
fdb3673ce2 Add the tunneling connection. Warning, encryption is not implemented yet for tunnel connection, use only for testing.
Redesign the udp connection
Remove the rsiface duplicates from retroshare-gui.
Add some randomness in timings for connect manager

Merge branch 'connectionTunneling'

Conflicts:
	libretroshare/src/libretroshare.pro
	libretroshare/src/pqi/p3connmgr.cc
	retroshare-gui/src/RetroShare.pro
	retroshare-gui/src/rsiface/rsfiles.h
	retroshare-gui/src/rsiface/rstypes.h

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1867 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-13 21:59:26 +00:00
csoler
b1434fc86b removed call to rand() which lacks entropy on windows. Replaced by own congruency generator.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1631 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-09-11 14:32:06 +00:00
csoler
57ba727b6a fixed win32-x-g++ compilation
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1595 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-09-05 11:59:42 +00:00
csoler
acb1000ef2 corrected potential bug due to double destruction of rsItem
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1581 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-31 20:54:42 +00:00
alexandrut
10d44a15b8 -add support for searching and display directories
-downloading directories from search dialog not implemented yet
-needs more code clean and beautify the directory tree

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1566 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-25 20:49:50 +00:00
csoler
3c09b4f2d2 added regexp search to turtle router
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1564 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-25 12:04:43 +00:00
csoler
a293a39d1b - Integrated the turtle search and download to the gui. Now the search handles both friend and turtle searching.
- added a console in config->server->F2F routing to be able to visualize turtle routing statistics

WARNING: this is not complete yet. The fllowing still needs to be done:
- detect duplicates in search results between turtle and friends search
- RegExpr search does ot work with turtle (still to code).
- search does not search own files. Is this really needed after all ?



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1540 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-16 20:10:53 +00:00
csoler
dfeaed705b corrected potentially harmful uninitialized memory reads
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1534 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-14 07:28:58 +00:00
csoler
cb5f22a5c6 Share Flags
- now, only files with the NETWORK_WIDE flag are searchable by turtle hopping.

	Next move:
	    - integrate turtle search in default gui.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1512 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-10 19:44:45 +00:00
csoler
65e1c17dbd added a few malloc gards
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1444 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-07-27 20:52:55 +00:00
csoler
6333cc4d37 added Makefile in libretroshare/src/turtle to comply with existing build scripts
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1373 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-07-14 13:33:14 +00:00
csoler
5e91af8be0 small bug fix about not acconting identical tunnels appropriately
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1301 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-06-15 20:34:34 +00:00
csoler
0a7d39d4da - improved integration with FT
- added function for properly removing handled file hashes
- tested/debugged persistence of file hashes
- tested/debugged tunnel re-digging and maintenance


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1298 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-06-14 18:59:42 +00:00
csoler
130d846207 - made turtle tunnel ids asymetric
- cleaned up the documentation in p3turtle.h
- update tunnel time stamp only *on the way back* to avoid unsuccessful requests to update a timestamp.
- implemented persistence of which hashes are to be handled.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1297 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-06-13 19:28:47 +00:00
csoler
3d6697e28b win32 compilation fix
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1290 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-06-04 19:30:19 +00:00
csoler
48218e98cb turtle tunnel management
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1289 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-06-03 18:47:14 +00:00
joss17
a26206cfbb gcc44 compliance
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1283 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-05-28 19:41:03 +00:00
csoler
1046bdd846 First commit for the turtle download. It works without perturbating RS traffic, but still needs some (internal) smoothing
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1275 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-05-26 21:42:45 +00:00