Commit Graph

97 Commits

Author SHA1 Message Date
csoler
454daf1981 Iproved file list handling:
- Implemented correct cacheData send to clients usign constant subid value.
- At start, the association between peers and available file list is always recomputed
- overloaded cacheAvailable() and refreshCache() in FileIndexMonitor
- added callback in rsFiles to force re-generating cache items when group layout has changed
- force re-sent file lists when moving peers between groups in the GUI
(Fixes group leaking problem) Needs full recompilation of libretroshare.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5813 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-11-12 22:51:27 +00:00
csoler
bd37e78884 debugged search functions
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-FileSharingPermissions@5760 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-11-02 14:25:35 +00:00
csoler
e753f22909 fixed flags conflicts
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-FileSharingPermissions@5758 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-11-02 13:52:29 +00:00
csoler
dc82cee700 First shot of file sharing permissions. Compiles, but needs some testing/debugging.
- added type-safe flags in retroshare/rsflags.h. This should be used to make new flags types in order to prevent mixing flags up in function prototypes.
- group handling is left to rsPeers. We'll move it to rsCircles later.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-FileSharingPermissions@5754 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-11-01 10:06:12 +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
thunder2
9aee68a2a9 Removed some std::ostringstream.
To be continued.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5108 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-04-18 00:00:59 +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
bd9cd22387 added RequestDirDetails(path,...) for file sync plugin.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4807 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-01-17 20:38:25 +00:00
csoler
1164c66d3a added new variable in config->transfers to allow reserving n slots to non cache transfers
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4775 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-01-10 23:07:53 +00:00
csoler
15758578e0 fixed display of filename when an upload is a partially downloaded file
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4629 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-10-01 21:10:03 +00:00
thunder2
35a059c44c Partial fix for ticket #146:
- set default of the signature checkbox in ConnectFriendWizard to disabled
- set the initial option for the download directory to network wide only
- set the default of a new shared directory to network wide


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4578 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-08-28 22:54:01 +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
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
f290c8eca4 Made the hash-cache more compliant with mounted/network drives:
- corrected bug that would wipe out the cache file every other start
- missing root directories are not discarded anymore, but kept empty, unless the user really removes them


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4271 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-06-15 20:03:26 +00:00
thunder2
72d9f352e3 Removed the difference of the separator for Linux and Windows.
Removed extra "/" of the filename (e.g. "E://") of the hashed file when sharing a whole drive.
Recompile of the gui needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4200 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-05-15 12:42:55 +00:00
csoler
6c2bdbe214 - added some optimization to RequestDirDetails internal functions
- improved sorting/selection in shared files flat mode
*W* Needs full recompilation.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4121 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-04-03 19:59:12 +00:00
csoler
7c6682b89f added a checkbox in settings for tuning auto-check of shared directories
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4107 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-03-28 21:52:21 +00:00
thunder2
af4dd635e3 Removed member ftController::mShareDownloadDir and calculate the value from the shared directories.
Combined the two methods for share and unshare of the download dir.
Added share incoming directory to the QuickStartWizard.
Recompile of the GUI needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4089 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-03-08 20:05:36 +00:00
thunder2
0a42b7899e The working (hashing) thread FileIndexMonitor is now stopped when RetroShare is closed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4072 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-03-03 23:30:08 +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
4e2e8f72b3 corrected missign return value
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3805 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-16 20:58:26 +00:00
csoler
ce75b486f4 corrected bug due to uninitialized memory read
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3781 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-12 15:21:49 +00:00
csoler
630156a5e8 added an optional cache for hashes, so that hashed files are remembered for some days.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3729 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-31 20:35:31 +00:00
chrisparker126
618cc702a8 added file moving utility to rsFile interface to channels file save consistent
msgs now save from field in received msgs

also allowed user to delete file added in createChanMsg dialog


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3727 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-31 19:29:26 +00:00
thunder2
ab5b2a3851 Optimized parameter "hash" of method RsFiles::FileDetails from "std::string" to "const std::string&"
Removed compiler warning of FileEntry.
Recompile of the GUI needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3703 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-27 20:01:31 +00:00
thunder2
d31cef0f11 ChannelFeed:
- Sort the ChanMsgItems of the channel by date

ChanMsgItem:
- Fixed adding all files (SubFileItem) again by pressing the unsubscribe button (only in Friend Storm)
- Enable unsubscribe button only when channel is subscribed (only in Friend Storm)
- Fixed adding files with umlauts (utf8) on Windows
- Enabled Download and Play button in ChanMsgItem, when they are enabled in the SubFileItems

ftServer:
- Added the method alreadyHaveFile for use in the GUI - recompile of GUI needed

SubFileItem:
- Added state strings like LOCAL, REMOTE, ERROR, ... for translating


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3614 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-05 20:39:14 +00:00
thunder2
fff12a58c6 Changed the reference pointer from last commit to const.
Need recompile again, sorry.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3510 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-17 19:21:14 +00:00
thunder2
ed737e2c9f Fixed umlauts (utf8) in Windows. Changed some parameters to reference pointer. Added virtual folders to the lib.
Recompile needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3509 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-17 18:27:30 +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
csoler
7b0757c4bc Merged branch commits:
3068: added verification for file size computation (bug correction)

3069: set heartbeat values to intermediate values

3070: suppressed uninitialised memory read

3071: automatic removal of file lists from deleted peers, at restart (After
      double check that this does not alter exchange of file lists in any way)



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3072 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-05 19:16:39 +00:00
thunder2
334c9b61d3 moved rsGlobalShutDown from MainWindow::doQuit to main
rsGlobalShutDown now cleans the threads and some memory on exit

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3028 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-29 15:14:25 +00:00
csoler
0634e461fb implemented a safety check for low disc space, and safe drop of disk access if too low
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2968 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-21 20:49:48 +00:00
csoler
6fee3eeeb7 corrected bug about persistence of default chunk strategy
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2817 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-04-30 21:07:21 +00:00
csoler
b000245ef5 merged branch 0.5.0 commits 2576, 2579, 2581-2583 into trunk
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2592 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-21 21:07:12 +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
154ef63474 removed potentially harmful code. Warning: needs make clean in libretroshare
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2335 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-15 20:44:37 +00:00
csoler
9753b47576 suppressed bug in creation of cache directories
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2275 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-10 20:32:21 +00:00
defnax
96caa40895 fixed windows compile
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2241 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-08 17:38:57 +00:00
csoler
3621ef4a95 resurected error msg window. Added a check for file hashes in FileRequest() to detect issues with badly formed file links
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2230 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-07 18:10:12 +00:00
csoler
2521431afa reverted last change on packet size. Seems to screw the convergence of speed. We need to tweak that a little more
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2221 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-06 22:27:44 +00:00
csoler
93aa334219 setup chunk slicing in FT to 32K instead of 8K. Seems to work perfectly, and faster, since TCP slicing is less likely to waste packets when the size is not a multiple of the TCP slice (1500 bytes?)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2210 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-05 23:10:32 +00:00
csoler
b592bdac62 added return statements is functions that missed one
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2137 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-27 08:24:39 +00:00
csoler
7fd5c7ad4b restaured priority queue methods, and made better context menues.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2135 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-26 23:25:00 +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
e70e995894 added functionnality to complain when a download is initiated over a file already in download, or in the HD
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2055 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-16 15:42:26 +00:00