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
Major changes are:
* Improvements to tcponudp library to allow multiple UdpStacks / ports, with alternative recievers.
* Resurrected the UdpStunner code, and improved it.
* Added UdpRelay code.
* Modified startup code and ssludp code to use the new tcponudp and add a stunner.
* fixed buggy rs_inet_ntoa
* fixed a bunch of apple gcc warnings. mainly for(;;); => for(;;) ;
These changes shouldn't affect libretroshare stability... those changes will follow!
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4359 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- ported LinksCloud to a new plugin, and removed it from main sources
Next moves:
- add gui for managing plugins
- handle windows compilation
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4275 b45a01b8-16f6-495d-af2f-9b41ad6348cc
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
Added new button in ConnectFriendWizard for cleaning the certificate.
Fixed cleaning:
- added blank line after the armor header
- moved the checksum to a new line
Recompile of the GUI needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4134 b45a01b8-16f6-495d-af2f-9b41ad6348cc
so RS ended up with 200+ zombie child processes. This prevented gpg from being called.
The fix was to add waitpid() calls to cleanup the zombies.
* added cleanupZombies() to authgpg.cc (OSX only).
* updated OSX gpgme libraries to 1.3.0 (added libassuan to RetroShare.pro).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3974 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- authssl would call OPENSSL_malloc without OPENSSL_free
- pqistore was not deleting items in pqiSSLStore when BIN_FLAGS_NO_DELETE is not here
- rsdir/rsinit were calling opendir withoug closedir (which might eat FDs, in addition)
- udplayer was not freeing it's 16KB buffer at end of loop.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3948 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Changed the usage of RsPeerDetails.validLvl to RsPeerDetails.trustLvl for the display in the column "Did I authenticated peer" in NetworkDialog.
Added an icon to the MessageBox of the NotifySysMessage.
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3926 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* 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
* 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
* 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
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
* 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
- 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
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
* 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
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
- 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
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
* 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
- 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
* 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
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
* 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
* 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
* 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
* 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
(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
Every call to RsInit::LoadCertificates() now creates a file:
~/.retroshare/xxxxxxxxxxxxxxxxxxxx/lock
which is then bound to a system lock (fcntl F_SETLK).
If the lock request fails, it means another instance is already
running with the same profile.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3241 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Rework of AuthSSL: cleanup and split up.
* Split out independent SSL functions into sslfns.h / sslfns.cc
* Reworked SSL certificate storage.
* Reworked SignDataBin / VerifyDataBin (fixed memory leaks).
* Removed funny code: /* cert->cert_info->key->pkey is NULL */
- just use X509_get_pubkey() instead.
* Removed lots of old code.
* Fixed up Mutex usage in AuthSSL - which was random.
* Removed certificates from tlvSignature serialiser obj.
* removed certificates from p3distrib messages.
* Starting removing "unused parameter" compiler warnings.
* Various related changes to make libretroshare compile.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3222 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* restored AuthSSL::Failed/CheckCertificate() calls.
* removed mConnMgr->isConnected() checks. These should be elsewhere.
* enabled exit(1) call if cannot open listening socket.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3218 b45a01b8-16f6-495d-af2f-9b41ad6348cc
p3connmgr: This needs major help... and will be revisited.
Only changes to get code compiling for now.
* revert peerStatus() function signatures (to match pqimonitor.h)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3217 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This functionality might need to be restored later,
but should be done with list<> for both Local and Remote Addrs.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3215 b45a01b8-16f6-495d-af2f-9b41ad6348cc
AuthSSL / AuthGPG: Bits and pieces still need fixing up.
AuthSSL will be rechecked later ;)
* Mutex bug in authGPG (not very serious one).
* removed _locked() suffix from functions (as they do the locking now).
* added dummy FailedCertificate / CheckCertificate fns to AuthSSL
* removed last bits of awful SSL_ex_data hack.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3213 b45a01b8-16f6-495d-af2f-9b41ad6348cc
so I can properly document what is being changed!
Revert / Merge : pqissl / pqissludp code.
* restored original timeout system.
* removed weird testing code - should never have been here!
* switched extra checks to generate ALERT msgs - we want to know if they happen.
* removed quietShutdown (breaks TLS protocol - why was this added?)
* switched listening on all the time. (helps restore disconnects).
* restored common connect parameters (removed duplicates in ssludp).
* restored AuthSSL->Failed/CheckCertificate() calls ... useful.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3212 b45a01b8-16f6-495d-af2f-9b41ad6348cc