Commit Graph

82 Commits

Author SHA1 Message Date
drbob
d93c56a355 * Switched on Turtle transfers for Channels,
* Enabled srcIds from secondary file transfer requests to be used.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3002 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-25 20:42:56 +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
f7305de302 added a workaround for a bug in the cache system that asks for files of size 2^64-1. This results into a division by zero in ftChunkMap. Bu the time I find this bug, the workaroudn should avoid crashes.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2932 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-17 21:05:28 +00:00
leander-256
b30056e17f This patch allows Windows users to share files and folders with "exotic" characters.
The problem was that libretroshare handles files in UTF-8 but Windows's ANSI/POSIX C functions automatically assume that the char* parameters are encoded with the system's code page. There is no way to set that code page as UTF-8. So now under Windows the code translates the file name to UTF-16 before feeding it to one of the Unicode functions (they are usually prefixed or suffixed by 'w'). Please note that it is not very efficient.

Furthermore, Windows does not provide a Unicode version of opendir/readdir/closedir, so it was necessary to use FindFirstFileW/FindNextFileW/FindClose which has a different behaviour as well as different structures. The FolderIterator class was created in order to mimic the Unix way of traversing folders contents. Hence the algorithm is unchanged and the systems differences masked.

As it was necessary to use some functions from the Windows API, <windows.h> had to be included in a few files were it didn't appear before, creating macros and #define conflicts. In order to solve them, util/rswin.h must be included first in a file (if necessary). Otherwise the preprocessor will fail on purpose to avoid the code being compiled with different _WIN32_WINNT values.

As another side-effect, rstlvutil.h and rstlvutil.cc have been removed from libretroshare.pro file. They are only used by testing units and include util/utest.h which defines a macro FAILED that already exists in <windows.h>. I don't know if unit tests are still in use and I don't plan on coding often on Windows, so I'll leave that as an exercise (hot potato?) to a motivated fellow Windows programmer.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2924 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-16 23:26:45 +00:00
csoler
c8576d98ad added missign lock in ftcontroller. This is likely to correct a bug.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2920 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-16 21:21:41 +00:00
thunder2
b242b73f31 Memory leaks:
- ftController::copyFile -> buffer and file pointer leaks in case of error
- PeersDialog::insertSendList -> new QTreeWidgetItem for all online peers, this function is not ready yet
- PeersDialog::insertPeers -> gpg_item = new QTreeWidgetItem(0); in case of no more accept connection
- pqissl::reset -> missing SSL_free of ssl_connection

Missing return:
- IntroPage::nextId


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2891 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-12 20:10:22 +00:00
csoler
c87844277a implemented a short circuit to local cache transfers. This saves a large number of file descriptors, and improves reactivity of the software
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2876 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-09 13:52:05 +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
08065b4298 ported branch v0.5.0 commits 2623, 2624, 2626, 2633, 2634, 2643, 2644, 2646, 2651 and 2654 to trunk
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2660 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-28 20:46:45 +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
f8d6590952 ported v0.5.0 commits 2561,2562 and 2574 to trunk
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2575 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-17 15:34:36 +00:00
csoler
cc17744ee3 ported branch v0.5.0 commits 2529 and 2544 to trunk
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2545 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-15 12:57:08 +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
144669e672 suppressed debug msg
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2494 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-06 23:37:42 +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
5633e7b5f4 made complete files stay in the download list
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2373 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-19 20:36:47 +00:00
csoler
5926c79822 corrected bug in file completion
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2301 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-13 20:42:49 +00:00
csoler
b0f7275ac0 suppressed uninitialized memory read
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2277 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-10 21:32:45 +00:00
joss17
bf67301d71 remove a maximum of debug outputs for the release
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2232 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-07 21:28:40 +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
0e7f9df638 made contextual menus in FT more contextual, added info about transfer type and chunking strategy, load/save of transfer flags
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2114 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-22 23:23:37 +00:00
csoler
e2b807aad7 added regular cleaning of inactive chunks and slices, so that they can be treated by a different peer
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2102 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-21 12:31:00 +00:00
csoler
3afd4442c9 forgot flag in ::alreadyHaveFile()
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2059 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-16 23:51:46 +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
csoler
96147a9734 added flags to file request: RS_FILE_HINTS_ASSUME_AVAILABILITY to not wait/ask for chunk maps. Used for cache transfer and also whenever the turtle traffic is not involved, such as chat file exchange, and RS_FILE_HINTS_NETWORK_WIDE to force using turtle routing for traffic. Also moved turtle tunnel start/stop orders from ftServer to ftController
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1995 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-11 22:38:18 +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
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
35631d180e add ifdef for debug logs
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1880 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-14 18:10:34 +00:00
joss17
3cac0c1ce9 add ifdef for debug logs
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1879 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-14 18:10:20 +00:00
csoler
b6c048a5fd Implemented load/save of chunk maps for current downloads.
The side effect is that even when stopped, downloads show the correct downloaded size (up to the size of one chunk).



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1865 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-10 22:55:27 +00:00
csoler
25a09900e9 - Added a ChunkMap class responsible for allocating new chunks to be downloaded, according to
- a given chunk strategy
	- the availablility map of each source 
- Integrated this into ftFileCreator
- added gui menu in file transfer+right click to change the chunk strategy: streaming vs. random

Next step: 
	- loading/saving file downloading state and availability map
	- displaying chunk details in the selected transfer tab (e.g. list of currently worked chunks, and their current downloading completion)



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1863 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-08 22:29:52 +00:00
csoler
e88d2c1928 Added consistent display of chunk map
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1837 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-18 23:02:37 +00:00
csoler
95a577ccd0 Integrated turtle download to all kind of user-requested downloads
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1625 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-09-09 20:14:43 +00:00
alexandrut
339fcd53ed add persistence to download queue
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1510 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-10 19:01:27 +00:00
csoler
fc6a86b592 forgot to commit this one.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1488 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-04 09:19:32 +00:00
alexandrut
3394239297 let hash name for partial files, use qfile link instead
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1448 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-07-28 15:29:21 +00:00
alexandrut
e7b42238cb use real name instead hash name for partials for preview; hope to work now
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1400 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-07-21 21:37:51 +00:00
alexandrut
f98d4f080b added extension for file names in partial dir, so them can be previewed in windows
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1390 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-07-18 12:23:34 +00:00
alexandrut
990ed277bd share of incoming directory by default
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1359 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-07-12 13:22:31 +00:00
csoler
51eb8b8eaf added removal of turtle handling when canceling/ending a file transfer. next step: Turtle download is now ready for gui integration
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1299 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-06-14 19:34:22 +00:00
alexandrut
9b7d486d6c bug fixing when storing incoming and partials directory
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1296 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-06-11 21:41:42 +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
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
joss17
ec072e53f4 add include complying to gcc 4.4
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1217 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-05-11 14:30:53 +00:00
joss17
e34173759e timeout on fil index cache transfer \n Set fileIndex cache transfer timeout to 300sec \n Remove the downloads item for file index cache transfer
Merge branch 'fiIndexCacheTransfertImprove'


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1180 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-05-06 20:48:32 +00:00
csoler
1ff00dcf07 it happens sometimes that files of size 0 are transfered. In such a case the destination file is not written down, and the following calls to moveFile in ftcontroller.cc produce an error. Ive put an if to avoid this.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1117 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-04-06 19:41:40 +00:00
csoler
ef54d9d176 win32 compatibility
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1095 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-03-23 14:45:51 +00:00
csoler
12113df4b7 fixed file moving between different file systems, which forced people to have their Incoming directory on the same file system than the Partials directory
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1087 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-03-19 12:49:11 +00:00