Commit Graph

193 Commits

Author SHA1 Message Date
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
csoler
af8ad4e862 removed the "emergency shutdown" feature in tickPeerTransfer(), that would stuck some transfers on the lowest rate 128 B/s. On my tests this emergency shutdown is never needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3676 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-16 21:09:48 +00:00
csoler
630e7dfe6b code cleaning. Removed debug info
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3675 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-16 16:49:35 +00:00
csoler
c8f6770b7d moved the callback information into flags in ftFileControl. Side effect: code is simpler, channel transfers are saved in a backward compatible way
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3674 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-16 15:21:37 +00:00
csoler
8369d42600 corrected a bug in chunkmaps that affected file creators being providers at the same time, which could corrupt data. Added some debug info to chunk maps.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3673 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-15 22:12:29 +00:00
csoler
82057a5f69 corrected initialised memory read
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3645 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-07 21:31:42 +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
csoler
d71dd2889d added safety check to ftChunkMap call to p3turtle, mainly for tests to run
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3582 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-01 20:07:29 +00:00
csoler
978528824b added missing dummy class definitions for linking test programs
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3580 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-01 19:52:24 +00:00
csoler
47b48769e4 simplified the code in the post download CRC check routine and removed a potential bug.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3574 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-30 21:02:37 +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
csoler
8ee92483ee added missing return which would create ghost cache self-transfers
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3504 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-15 19:53:58 +00:00
csoler
d41089b30f suppressed debug info
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3503 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-15 19:48:49 +00:00
csoler
301b7daa88 changed insertion in queue for cache files: these are always placed before the first non cache file, hence giving cache files a higher priority over normal downloads.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3502 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-15 19:48:13 +00:00
csoler
4ea6b0b31f corrected bug about missing da39... null file
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3489 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-14 21:24:51 +00:00
chrisparker126
9e86265f91 moved test sources to test directory and deleted a few dead files , created new util test directory.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3396 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-25 19:54:28 +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
1069ed0c58 - corrected 1 bug in serialisation of CRC32Maps for peer transfer
- corrected 1 bug (missing hashing thread deletion on failure)


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3321 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-30 21:01:51 +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
81203b3cfd - modified ftFileProvider so as to keep multiple client peers per instance
- updated TransfersDialog to display this info correctly


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3316 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-27 16:05:21 +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
drbob
648e15bcf7 Found cause of OSX network resets / lost connections: inet_ntoa is not thread-safe.
* Added thread-safe rs_inet_ntoa function (util/rsnet.cc)
 * Switched all calls to this function (most of the changes)
 * Modified getLocalInterfaces() and getPreferredInterface() to avoid string conversions.
   - NB: Modified windows functions too, but unable to test (hope it compiles!)

Also:
 * Added  EVP_CIPHER_CTX_rand_key() replacement function for old versions of SSL (pre 0.9.8)  (for OSX 10.5)
   - NB: This code should be reworked to remove these calls anyway.
 * Updated tests/pqi to handle above changes.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3281 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-10 20:34:03 +00:00
csoler
fbd8a33db0 added display of checking stage in GUI (at end of transfer). Gave names to the states in ftTransferModule. Added a flag for ForceCheck files (not functional yet)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3274 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-09 21:04:29 +00:00
csoler
458a8faf70 - implemented post-download hash re-check. For now, if the hash does not match, the download is canceled, but in the near future, per-chunk comparison wil occur
.
- corrected a bug that caused file copy error: a closeFile() was missing when the file is complete. Because of delays in fwrite, the file would not be always co
mplete, nor exist at all for small files (e.g. cache files), which in the later case caused the copy error.

Warning: needs a make clean in libretroshare to recompile.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3261 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-06 05:04:11 +00:00
csoler
c8fc75c75c added some safety checks to setting chunk strategy against inconsistent values.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3236 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-29 20:51:16 +00:00
csoler
531567997d branch commit 3185: removed deadlock situation in data multiplex
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3186 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-21 19:10:55 +00:00
drbob
3855be974b * Moved final serialiser test over, and test notes from ft.
* removed tests from lib directories for serialiser / dbase / ft



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3177 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-20 12:37:04 +00:00
drbob
05bc4ba76e * fixed ftdata testharness functions (ftdata.h)
* Added existing ft tests to tests directory (don't work yet!)
 * Added dbase tests to tests directory (don't work yet!)
 * moved net_setup test to tests/general directory (don't work yet!)



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3176 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-20 12:24:05 +00:00
leander-256
9033e4fa56 Bugfix on file manipulation
Corrects wrong logic when using Win32 API for handling the filesystem, Win32 functions return 0 for an error while POSIX functions return 0 for a success.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3146 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-16 16:18:08 +00:00
csoler
0d14351b8a Ported branch commits:
3099: libretroshare/src/tcponudp/udplayer.cc 
      libretroshare/src/tcponudp/udplayer.h 	
      libretroshare/src/util/rsnet.cc 	
      libretroshare/src/util/rsnet.h

	moved operator<<(ostream&,sockaddr_in) to rsnet.h, as it is used at
	different places

3100: libretroshare/src/util/rsdiscspace.cc
	suppressed debug mode

3101: libretroshare/src/serialiser/rsdiscitems.cc

	put correct (i.e. non conservative) size for RsDiscReply packets

3102: libretroshare/src/services/p3disc.cc

	Made a pass on the code in p3disc. Corrected some bugs:
		- suppressed an unwanted return in packet treatment
		- prevented sending info to a peer about itself
		- changed askInfoToAllPeers() such as not to discard info
		  from peers with NODISC flag (because we especially need
		  info for these)
		- enabled receiving p3disc info even if p3discovery is
		  disabled. Indeed, disabeling p3disc is a measure of
		  protection, so it should limit the export of p3disc info,
		  not the import.
		- removed test discarding info about dummy friends, because
		  it is useless
		- don't discard info about peers that have the NODISC flag
		  (meaning that we especially need info for them)
		- added safety check about received GPG keys. Before we
		  relied on this test being performed by
		  p3ConnMgr::addFriend()
		- added some debug info

3103: libretroshare/src/ft/ftcontroller.cc
	removed debug info



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3104 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-10 13:42:49 +00:00
leander-256
21efccfdd6 Memory leak and compiler warnings fixes:
- memory leaks in pqi/cleanupxpgp.cc , 2 new char[] => 2 delete[]
- reordering some constructors' initializing order
- char* myString = "foo" constructs must be prefixed by "const"
- using size_t for variable types when dealing with STL


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3079 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-07 01:47:15 +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
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
a3a75b7aea Ported branch commit 3017:
- added failure tests for fwrite. Some where missing.
	- added a test against the IP 1.0.0.0, which pops up on MacOS (when the peer is not connected to the internet?)
	- put some additional debug messages.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3018 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-28 14:00:35 +00:00
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
csoler
48556396ee added a check to avoid (possibly rare) data races
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2901 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-14 11:29:15 +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
03d0058ca4 suppressed unused files
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2865 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-08 14:43:55 +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