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
* 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
(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
* Stun code now runs continually - to check external network state.
* Udpsorter controls DHT stun is on/off. (via p3ConnectMgr)
* added code to enable threads to join/restart
* enabled NetRestart for UDP and TCP.
* tweaked networking code for faster startup (now ~30 seconds - can still be improved).
* tweaked debug messages for testing networking
* Added test for checking external IP address determination.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1492 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Created pqiNetAssist interfaces for DHT and UPnP.
* Created PQIHub etc for standalone testing (in ft/pqitestor.h for now).
* Add basics of first server test ... its not quite complete yet.
* Improvements to ftserver.
* Changes to many tests to match other mods.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@689 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Switched off most of std::cerr output. (expect UPnP)
* moved pqi/pqidebug to util/rsdebug to allow greater usage.
* added Mutexes to logging.
* Downgraded many log messages to DEBUG.
* New Log messages for connections, dht and udp code.
* Added check for bad UDP socket.
* Added check for non-firewalled scenario.
* Increased Storage period from 1 Month to 6 Months for Links & Blog.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@644 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Switched p3Ranking to share Friends Links as well as own.
* Modified rankmsgs to contain source id.
* Fixed up rsNotify, added pqiNotify and global function call to get it.
* Added notify for Bad Incoming Directory
* Added Emergency Incoming directory so RS can keep running.
* Added notify for Bad Packet (connecting to V0.3.X)
* Added notify for Incomplete Packet Read (not been triggered yet!)
* added close() to BinInterface, close on pqissl calls reset()
* removed exit(1) calls from pqistreamer, replaced with bio->close().
* Increased Maximum Packet Size for HTML messages.
* Fixed Online/Offline Message Forwarding. (TEST).
* Increased DHT bootstrap buckets to 4.
* Cleaned up much of serialiser debug (was slowing down Mac)
* Added directory path to File Listings.
* added ConvertSharedFilePath() so correct local dir can be found.
* Added ForceDirectoryCheck() and InDirectoryCheck() for file hashing.
* removed old TMP cache loading.
* switched off Cache debug.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@448 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* hashed keys are posted to specific DHT entries, to create a series of bootstrap lists.
* these are fetched as needed to bootstrap new clients.
* Modified Bootstrap monitor program.
Created a minimal backup bootstrap list (temporary)
Added "-e" option to commandline to force 'external port' mode
Bugfix for multiple connection methods, could kill an active connection.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@397 b45a01b8-16f6-495d-af2f-9b41ad6348cc
(1) xpgp_id to extract the name/id from a certificate.
(2) dht_bootstrap to check the status of the bootstrap peers.
Various bits of code needed to be rearranged to make these utilities possible.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@394 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* searching for STUN ID's continues until RS_STUN_FOUND_MIN are found (10).
* abandon STUN search if Ext or Upnp mode.
* add Bootstrap IDs to rear of mStunList. (bugfix)
Force saving of certificates after "oldFormat" loading.
Corrected printStunList() fn call.
Added a notification system:
(1) libretroshare System Notifications.
- System notification if Firewall Status is bad.
(2) PopUp messages.
- Popup for a connected peer.
- Popup for a new message.
* New interface (to be revised).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@376 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Switched on RELEASE flag.
* renamed incomplete work to "Unfinished"
* updated version strings.
* Added Configuration path to DhtMgr.
* reduced uPnP timeout to 30 seconds (from 60).
* more Bin -> BinToHex printouts.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@373 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Most of these changes relate to:
(1) rand() is different
(2) sleep() don't exist on Windows.
(3) networking headers are different - these need to be cleaned up in general.
(4) disabled tests that won't compile on Windows.
Will probably have to rollback some of these changes for Unix later.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@372 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added stun bootstrap functionality.
* Added in two temporary StunServers.
* Reconnect attempts are TCP only.
* enabled AUTOCONNECT and TCP Connections.
* reduced UDP keepAlive timer to 15 secs.
* made UPnP the default startup behaviour.
* Removed StunId raw printouts -> now use BinToHex()
* Unified TTLS and PERIODS in p3dhtmgr.h
* DHT bugfix (data not passed to ConnMgr).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@370 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added GUI interface for auto connect state.
* Added HTTP retrieval and storage of DHT peers update.
* Added code for partial recv() from DHT peers.
* Disabled Chat/Disc/Udplayer/tcpstream debug output.
* Added Unreachable Check to connMgr.
* Added auto reconnect functions to connMgr (#define to disable).
* Restructured DHT notify code... much cleaner.
* DHT now flags out of date DHT results.
* DHT notifies ConnMgr on any results (same or diff).
* Added Fns to cleanup old udp connection.
* other bugfixes.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@369 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Enabled a lease duration (requires mods to miniupnpc library)
* this is set at 10 mins for the moment.
* Added Check functions to see if UPnP forwarding is still up.
* improved error checking in Forward() function.
* added #define for UDP local address testing.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@359 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added Period and Delay parameters to connections.
- Delay is used to avoid simultaneous TCP connections.
- Period is used to regulate UDP connections.
* added Delay code to pqissl.
* added Period code to tcponudp / pqissludp.
* modified TTL modification code.
* increased SynPktRetransmit value.
* fixed retrans() timeout (one reason code wasn't working before!)
* fixed tou_close() SEGV bug.
* modified pqissludp tou_socket creation. (non permanent now).
* Modified format of peerConnectRequest() CB to make it more useful and rewrote function.
* Enabled pqissludp NetInterface.
* using Id comparision to determine Active/Passive UDP connection state.
* added #def to disable TCP connections. (for testing)
* enabled UDP connections from retryConnect() function.
* corrected EXT check in retryConnect() function.
* + lots of debug output and other stuff.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@358 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added a Type parameter, so that the connection Mgr can determine if there is
an external port available or not.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@354 b45a01b8-16f6-495d-af2f-9b41ad6348cc
the rewrite of the retroshare core networking stack.
This check-in commits the changes to the pqi code,
and provides the majority of the improvements.
(1) Introduced new interfaces for DHT and UPnP abstraction: p3dhtmgr.h, p3upnpmgr.h
(2) Introduces abstraction for Authentication: p3authmgr.h
(3) New Connection Manager to coordinate networking code: p3connmgr.h
(4) New Configuration Manager: p3cfgmgr.h
This library has been significantly modified to support DHT synced connections
to enable connections between Firewalled Friends. The connection code has
been rewritten within a new framework, which should make extensions easier to code.
Also removed significant amount of old code relating to Tunnels, Channels etc.
This will be recycled later as higher level services that should not be
part of the core networking library.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@306 b45a01b8-16f6-495d-af2f-9b41ad6348cc