Commit Graph

461 Commits

Author SHA1 Message Date
drbob
d9847e2622 Fixed deadlock between p3connmgr::mtx and libbitdht::mtx
* shifted dht stats call outside of p3connmgr's mtx.

NB: As Dht callback functions hold DHT lock, then lock p3ConnectMgr...
    we cannot have any opposite locks (p3connmgr, then DHT) or we have
    potential for a deadlock.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3861 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-23 19:32:19 +00:00
drbob
7203229126 Cleaned up Transfer debug, now that we've found the windows bug.
* new uniform #define DEBUG_TRANSFERS to switch on packet timings.
 * switched off by default.
 * enabled BinData printing again.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3785 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-13 11:46:17 +00:00
thunder2
f769c66991 Fixed upload speed problem of Windows systems.
Set TCP buffer size to 128 KB.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3782 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-12 21:05:59 +00:00
drbob
d649a27fd9 Added TRANSFER debug to pqistreamer.
* print packet size and time - when actually sending it.
 * print reason for stopping to read or send packets.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3780 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-11 23:59:04 +00:00
thunder2
c19c8b5532 Send RsDiscReply information of the connected friend to himself too, when there is only one ssl id available. The reason is, that the signers of the gpg key has to be transfered. The friend skips the own RsDiscReply informations, but imports the gpg key.
Reload all gpg keys in AuthGPGimpl::LoadCertificateFromString, when new signatures are added - not only the key was imported.
Changed parameters of RsPeers and AuthGPG from "std::string" to "const std::string&"

Recompile of the GUI needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3753 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-06 16:40:18 +00:00
thunder2
0e41211f3c Added new return codes to RsInit::InitRetroShare to know, what failed.
Show error box when gpg initialization failed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3744 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-03 22:54:34 +00:00
drbob
519075c70b Changes to get DHT On/Off working, and get DHT status working too:
* Plumbed stats through the the retroshare interface.
  * Also changed Channel store period back to 10 minutes.... (Reduce overall file count).
    	This must be done some time before the any changes are made to Channels periods.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3721 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-31 13:53:28 +00:00
drbob
644f2fcbcc Added Address Test Function to strip out bad connection attempts. Logic is:
- FAIL if too old.
  - FAIL if invalid address.
  - FAIL if on BannedIpList (=1.0.0.0)
  - ACCEPT if extAddress.
  - ACCEPT if !extAddress && sameNet(localAddr).
  - FAIL all the rest.

 * Test Results are printed if CONN_DEBUG is switched on.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3705 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-27 22:16:55 +00:00
thunder2
10aa75d2c6 Removed potential memory leak in AuthSSLimpl::encrypt/decrypt in case of an error.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3693 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-23 14:03:35 +00:00
thunder2
3a60e8cecb Added service functionality to AuthGPG for load and save of certificates in the background (prepared for more when needed).
Added p3disc as service and process the certificats of RsDiscReply with AuthGPG service.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3669 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-13 16:15:26 +00:00
thunder2
c2c52a81ec Fixed crash on load of the config, when the first attempt loads some RsItem's but failed and the second attempt failed too. The loaded items are deleted twice, because the std::list of the loaded items is not clear'ed after the delete of the items of the first attempt.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3657 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-08 19:22:03 +00:00
thunder2
1207b5793b Changed p3Peers::getPeerCount to count also gpg id's only.
Show count of friends in MainWindow, not the count of locations.

Recompile of GUI needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3653 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-08 12:03:25 +00:00
thunder2
f4bbd3e933 Limit the concurrent connection attempts in Windows XP. Its's only a hack.
Problem:
RetroShare connects to all ssl's at once. In Windows XP there is a build-in connection limit of concurrent incomplete connections.

Quote:
"The TCP/IP stack in Windows XP with Service Pack 2 (SP2) installed limits the number of concurrent, incomplete outbound TCP connection attempts. When the limit is reached, subsequent connection attempts are put in a queue and resolved at a fixed rate so that there are only a limited number of connections in the incomplete state."

This results in a high usage of the nonepaged pool and when it runs over the limit it results in the following error in the system log:
German:  "TCP/IP hat das Sicherheitslimit erreicht, das für die Anzahl gleichzeitiger TCP-Verbindungsversuche festgelegt wurde."
English: "TCP/IP has reached the security limit imposed on the number of concurrent (incomplete) TCP connect attempts."

After a longer runtime of RetroShare and a very high usage of the nonepaged pool all connections of all running programs are lost and no new connections can be made. At the end it can cause a blue screen.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3631 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-07 11:17:42 +00:00
csoler
a90f332a40 bug correction. Please do not use begin ( ) from returns of a function without const & s
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3612 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-05 15:46:08 +00:00
drbob
0ea899de29 * Added hack to remove DODGEY peers. (This should probably be moved to libbitdht).
* NOTE about how to correctly implement Peer filtering.
 * added peerConnectRequest() when PeerCallback(success) happens... starts UDP connection.
 * Split the p3conmgr::tryConnect() functions into sub functions.
 * added p3ConnMgr functions for UDP connections.
 * Added AddifUnique(conect_address), to ConnMgr, this should reduce the number of connection attempts, by removing dups.
 * Disabled bitdht in libretroshare.pro for the moment.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3605 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-04 21:42:31 +00:00
chrisparker126
fa6af9a1ca fixed channel edit problem and added some documentation for pqimonitor
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3596 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-03 21:48:19 +00:00
drbob
05e908df12 Changes to Integrate DHT... first tests appear successful.
* Added testing stuff to libretroshare.pro, enabled UDP again,
 * fixed NO_TCP #define in p3connmgr.cc
 * Added PeerStatus() call to p3bitdht.cc to start connect to DHT address.
 * HACK change to p3peers.cc to display DHT results.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3586 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-02 00:52:59 +00:00
thunder2
acf57ed3fd Removed read/write mutex from AuthGPGimpl and from the sources.
Added RsThread as base class to AuthGPGimpl and load all gpg keys every hour.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3571 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-30 19:05:43 +00:00
thunder2
d3fc7f3982 Reindroduce the read/write mutex for AuthGPG as mutex for the data member.
Added second mutex for the gpg engine.
Now the call to the gpg engine (for example AuthGPGimpl::LoadCertificateFromString) doesn't block the GUI.
The existing problem is still the call of AuthGPGimpl::storeAllKeys every minute before access the gpg data.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3555 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-28 22:30:57 +00:00
chrisparker126
22472209b7 enabled two pass load for new config saving. was mistakenly not enabled i.e. bug
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3543 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-27 21:42:44 +00:00
thunder2
077b2871f1 Groups for friends in PeersDialog.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3523 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-22 22:37:57 +00:00
chrisparker126
8b1ffdb5d9 fixed transitioning of msg service config files from global signature format
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3522 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-21 22:02:35 +00:00
chrisparker126
52e0d2a095 added new individual config saving system
global signature file format will be converted


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3514 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-18 19:09:11 +00:00
thunder2
340982b996 p3ConnectMgr::connectResult
- added "mStatusChanged = true" on disconnect of a peer - the statusChange was not notified in time

MessengerWindow
- removed unused method updatePeersAvatar

Changes in status service:
- removed unused method statusAvailable
- new notifier for status change
- enabled the tick for receiving items
  - always up to date status map
  - no huge memory usage, if no list is visible who call getStatus and processed the received items
  - send notify on status change
- renamed getStatus to getStatusList and created a new method getStatus to get status of one peer
- fixed: send status directly after the connect of a peer

Now the frame around the avatar in private chat changes when the peer change the state.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3380 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-20 18:45:44 +00:00
thunder2
fa9ea81ad7 Changed some mutex around p3ConnectMgr::mOwnState. Please review.
Made getIPAddressFromString thread safe, just in case.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3374 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-16 07:29:51 +00:00
thunder2
8ef8174227 Optimized usage of getOwnId in p3ConnectMgr::loadList
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3371 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-15 12:48:09 +00:00
thunder2
efac8eec85 Removed compiler warnings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3369 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-14 14:17:49 +00:00
thunder2
c4167ba0ac Removed memory leak in cleanUpCertificate when the certificate can't be cleaned.
Switched from char* to std::string, because the char* is unnecessary and wasn't freed on some returns.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3368 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-14 11:51:15 +00:00
thunder2
7b4364035e Added missing break in AuthGPGimpl::VerifySignature
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3348 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-06 22:45:59 +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
thunder2
e69300ccdc Changed the values of ETIMEDOUT to 10060 like in pthread.h to prevent compiler warnings.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3341 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-04 11:27:16 +00:00
drbob
627b0f88a2 * Fixed up UDP Port "netReset()" (was stuck on 7812, now follows your tcp port).
* OSX Bug: doesn't like classes in C files. switched to void * pointer.
 * A little extra debugging in pqissl on disconnects.
 * switched on bitdht by default in libretroshare.pro



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3334 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-02 23:21:59 +00:00
drbob
fcdd7ee113 Changes to integrate bitdht into libretroshare.
Mainly re-organising tcponudp... 
	tests->test area
	network->trash (uses libbitdht classes).
	new udp interfaces (udppeer + udpstunner)

Changes include:
	* p3bitdht: added "addReceiver() call, and more debugging. 
	* p3bitdht: added DO_IDLE flag so searches are continous.
	* p3bitdht/pqiassist: matched up Assist interface.
	* fixed pqiNetListener interface.
	* rsinit/p3connmgr: setup udp init
	* tcpstream: switched to new udp receiver.
	* added "blogs" switch in libretroshare.pro (was stopping compiling ;)
	* added "bitdht" switch in libretroshare.pro 



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3323 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-31 18:14:10 +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
drbob
4157aff291 * Removed old DHT Code, removed other references too.
* Added interface class to bitDHT. (p3bitdht.h)
 * Added Optional section in libretroshare.pro



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3296 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-17 17:00:19 +00:00
chrisparker126
3291e61291 reimplemented encrypt/decrypt using openinit and sealinit envelope encryption of openssl
- to aid with portability into the future

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3291 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-14 21:27:26 +00:00
thunder2
04366bc279 fixed unlock of connMtx in p3ConnectMgr::netExtCheck
unlock was too early

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3288 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-13 14:03:05 +00:00
drbob
31c9832978 Fixed Bad SSL Timeout code.
* Added TS check to SSL_RETURN_ZERO code. 
	- Existing code was dependent on tick rate. (could kill connection in 2-3 seconds)
	- If nothing is received within 15 seconds - the connection will be killed.
  * Removed "No send if RETURN_ZERO" check. 
	- This causes deadlocks and kills connections.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3287 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-13 12:13:56 +00:00
thunder2
c005f7d4a8 pqinetwork.cc: removed compiler warnings on windows, errors was fixed already
sslfns.h: test for existing function with #ifdef doesn't work, used OPENSSL_VERSION_NUMBER instead - please test

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3284 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-11 00:07:19 +00:00
drbob
9efe0b2e9e another windows bugfix.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3283 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-10 23:51:04 +00:00
drbob
fba4a1b4da Bugfix for windows compilation?
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3282 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-10 23:22:47 +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
drbob
0b298f6ca1 Fix p3ConnectMgr:;setExtAddress() bug... my fault.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3280 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-10 17:53:34 +00:00
thunder2
1a9d68b536 Fixed compile on Windows
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3255 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-05 11:37:07 +00:00
drbob
6a40e1b2f3 Switched p3distrib (forums) personal signatures from ssl to pgp.
* Changed calls from AuthSSL to AuthGPG and tested. looks like it works!
 * added extra connect addresses in p3connmgr (current[local/server]addr)
 * added mConnMgr->addFriend() call to pqissllistener to add unknown ssl certs.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3253 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 22:23:45 +00:00
drbob
8b2cb688a8 Restored p3disc functionality.
* Bugfix in correctly adding ipList.
 * restored setLocal/Ext calls from peer.
 * Added extra debugging in p3disc.
 * Cleaned up debugging in p3connmgr.
 * switched off debugging in rsdiscitems.
 * reorder ipList (most recent first).
 * removed DEBUG switches in libretroshare.pro



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3252 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 15:16:52 +00:00
drbob
6f219d4fef Bugfixes:
* Corrected mLocal -> mExt in ipset.cc
  * Added pqiipset_test
  * added both Ext and Local address to GUI display.
  * p3connmgr: Ip Addresses only updated if we connected (otherwise port is wrong).
  * p3connmgr: update external address when we get it.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3251 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 13:19:09 +00:00
drbob
f4331da483 Networking REWORK: Major cleanup of p3ConnectMgr.
(Sorry for the ridiculously large check-in, wants to fix lots of stuff.)

Other Changes:
 * Added SSL Test Harness. (authssltest)
 * Added GPG Test Harness. (authssltest)
 * Reworked SSL/GPG startup to enable test harnesses
 * pqiperson: added notify of FAIL if connection method unavailable.
 * added p3tunnel to pqissltunnel init.
 * pqimonitor: added ipHistory to connect callback.
 
p3ConnectMgr Changes:
 * removed STUN system - wasn't operating correctly anyway without DHT.
 * switched to new IpAddress history data types. (removed lots of code)
 * Added Addr history for both Local and Ext addresses.
 * removed p3tunnel references in p3connmgr
 * fixed up mUseTunnelConnection flags (now used!)
 * fixed up mUseExtFinder flags (now used!)
 * added improved Net Status.
 * corrected UPNP / EXT / UDP startup. (was always UPNP).
 * fixed netReset() and netStartup().
 * removed unnecessary DEBUG code.
 * added UPNP timeout code (600 secs - why does it take so long?)
 * added improved netExtCheck().
 * removed wierd netConsistencyCheck() ... to rework.
 * corrected connect / reconnect code.
 * removed DHT notify code.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3247 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 10:35:38 +00:00
drbob
3575f12240 Network REWORK
* Added separate classes to handle IpAddress History.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3245 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 10:15:56 +00:00