Commit Graph

51 Commits

Author SHA1 Message Date
drbob
85d232ff4f * added DETERMINISTIC_SYMMETRIC NAT type to Connect Logic. (CBS_NETSTATE_EXCLUSIVENAT)
* added DETERMINISTIC_SYMMETRIC NAT to retroshare/rsconfig and NetStateBox.
 * added ExclusiveMode to udpStunner.
 * Tweaked UdpStunner ping logic.
 * added TCP_WAIT to Connect Logic.

NB: This stuff is still to be tested!



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4440 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-13 11:41:25 +00:00
drbob
9ec411345d * added OwnId at p3bitdht level.
* Filter out own id from stun peers.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4438 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-13 09:12:31 +00:00
drbob
6c5d5f6cc2 Integrated NetStateBox and Activated Stunners.
* Added tick() and setRefreshPeriod() to pqiAddrAssist
 * Fixed up NETSTATE #defines, all refer to retroshare/rsconfig.h
 * added #define => string translations for NETSTATEs
 * Added NetStateBox as an independent Network State determination (has no effect on existing code).
 * added slowTick() to p3NetMgr.
 * connected p3NetMgr::getNet... to NetStateBox.
 * piped network state into NetStateBox.
 * added p3NetMgr check for changes in NatType. (to update Stun Rate / Attach Mode (TODO))
 * added NetStateBox.reset()
 * tweaked lots of debugging.
 * added Default Stun Period (pass -1 to setRefreshPeriod()) 



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4435 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-12 14:16:46 +00:00
drbob
c2a0309f05 Added RsConfig class which will in the future support most of the interface from rsinit.h & rsiface.h
* Moved rsnetwork.h => rsconfig.h
 * Implemented Network functions (call p3NetMgr) in RsConfig.
 * Implemented UserLevel (New/Basic/Casual/Power) Levels
 * added p3PeerMgr::haveOnceConnected() function, for UserLevel support.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4431 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-11 18:48:56 +00:00
drbob
81dc1d77b7 Cleaned up More debugging and started work on connections.
* switched off lots of debugging, and removed "common" messages, so we can focus on the actions.
 * Added extra debugging focused on the connections.
 * Removed "lastconnect" from p3LinkMgr.
 * added p3PeerMgr::updateLastConnect() fn, so this parameter will be stored.
 * added calls from p3LinkMgr at connect and disconnect.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4424 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-11 00:52:12 +00:00
drbob
f7ff55237e Bugfixes galore!
* Split p3bitdht_peers.cc debugging in two. Hid Id Translation debug (that code is fine)
 * Added initialisation of p3bitdht peer data structure (using values from peernet).
 * Added BITDHT_QFLAGS_UPDATES flag.
 * Added Tick() interface to NetAssistConnect  interface, tick it from p3NetMgr.
 * FIXED OLD BUG: netAssistFriend was not being called from p3LinkMgr::connectResult() this meant all peers where being searched for.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4423 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-10 19:50:12 +00:00
drbob
b2e25680ac General debugging:
* Improved debugging messages for p3linkmgr & p3netmgr, switched on debugging.
 * added ids to p3bitdht peers.
 * added datatypes to RsDht peers data structure, and translate the data.
 * add const to PeerConnectStateBox::connectState().
 * cleaned up p3LinkMgr::locked_ConnectAttempt_AddDynDNS() a bit.
 * filled in friend data types in p3LinkMgr (allows connections now!)
 * added printConnectState() in p3LinkMgr



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4421 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-10 18:19:46 +00:00
drbob
59abce2d48 Added missing functions to get retroshare running again.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4420 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-10 01:49:39 +00:00
drbob
6eb27c9a1a Completed basics of the new p3bitdht system.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4418 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-10 00:39:15 +00:00
drbob
f6f721a492 Removed p3ConnectMgr. Replaced it with p3LinkMgr, p3NetMgr and p3PeerMgr.
Updated references in other classes.
 * Most classes need p3LinkMgr, and only use two functions: OwnId() and getOnlineList()




git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4416 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-09 18:39:34 +00:00
drbob
11cc3fce04 Added External DHT Interface to display Connection Information.
* added retroshare/rsdht.h
 * extended p3bitdht to provide RsDht interface. (p3bitdht_interface.cc)
 * added UdpRelay to networking stack. 
 * started expansion of p3bitdht to handle connections.
 * added <string> header to rsthreads.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4399 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-06 13:04:50 +00:00
thunder2
de87a89437 Added a name to the RsMutex class.
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
2011-07-04 22:59:39 +00:00
drbob
702ff44194 added new dummy callback. Required for updated libbitdht.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4355 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-06-29 10:46:11 +00:00
drbob
a333b12618 Fixed the Missing Cache File bug.
* Added Old Cache Storage... so these can be retrieved.
 * Connected up the CancelCacheFile() -> FileCancel.

Other Changes.
 * Removed ipaddr = 1 bug (thought someone else had commited this earlier???)
 * added #ifdefs to remove debugging output in p3BitDht.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4330 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-06-24 15:10:52 +00:00
drbob
bb102750f3 Fixed up mutexes and removed recursive call into libbitdht on callback.
* mUdpBitDht doesn't need to be protected by a mutex - as it is static for all intensive purposes.
  * updated PeerCallback() fn signature, and removed extra address callback. (part of args now!).



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3858 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-23 00:06:54 +00:00
csoler
02d228b94b added missing locks
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3841 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-11-21 15:08:33 +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
71ab42d74d * added startDHT() command to startup code....
This will be reworked into a user controllable switch in the near future.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3679 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-17 20:56:19 +00:00
drbob
93ad430d54 * removed some DHT debugging output
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3616 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-05 21:57:54 +00:00
drbob
5321c35d30 * Disabled personal signatures on Channel Messages.
* Made "ConnectCallback" more accurate.
 * Improved DHT display slightly.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3606 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-04 22:25:12 +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
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
drbob
6cf3521e0b * Extra Debugging for DHT integration.
* Moved bootstrap location from current directory to CONFIG/bdboot.txt
 * Corrected DHT OwnId.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3579 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-01 19:48:53 +00:00
csoler
a999c317ff added missing return call
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3339 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-04 09:54:41 +00:00
drbob
74b36a6af6 Integration with libbitdht.
* Added debuging #defs for annoying output.
 * fixed compiler "unused parameter" warning for rsiface.h



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3327 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-01 18:22:37 +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
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
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
863a29fda1 NETWORK REWORK (cont)
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
2010-06-26 12:31:24 +00:00
drbob
545a465735 NETWORK REWORK (cont)
Changes required elsewhere
 * peerStatus() fn signature updates.
 * changed Heartbeat fn call in p3disc (think Heartbeat should be rethought!)
 * removed p3tunnel from libretroshare (used BAD getPeer() function).
 * removed optimisations from debugging.
 * removed test cases from libretroshare.a source list.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3221 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 22:13:52 +00:00
drbob
56e9536336 Modified libretroshare to compile under MacOSX.
1) b64.c used c++ functions -> b64.cc
2) OSX will use miniupnpc for now -> modified #defines.
3) change in openssl fn signature?
4) updated build file for OSX.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2344 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-16 22:25:58 +00:00
joss17
d2f9f1c4f1 final code, working on local machine
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1811 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-11 16:49:11 +00:00
joss17
7b4c7384b5 Merge branch 'gcc44'
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1279 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-05-27 20:59:48 +00:00
csoler
9d89c12a38 added NULL gard in dhtPublish()
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1116 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-04-06 18:57:30 +00:00
csoler
c7adb4907c Corrected a bug in openDHT for 64 bits systems: a 64 bit string::size_type was returned into a uint32_t variable and further compared the 64 bits string::npos
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@937 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-01-21 13:49:50 +00:00
drbob
33032e8a83 * Modified p3ConnectMgr to enable Standalone testing of components.
* 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
2008-08-16 15:02:24 +00:00
drbob
ca69e3d5e3 Removed most of the output to stderr.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@641 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-07-09 09:55:09 +00:00
drbob
d69c2f72f1 * Fixed up various memory leaks (mainly serialiser cleanup).
* Added pthread_detach() to allow proper thread cleanup (affected ony Linux!)



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@460 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-04-02 13:55:45 +00:00
drbob
0c0147abe6 BUGFIX: Big BUG in External Port notification! FIXED.
An invalid comparison was being made - meaning the EXT_PORT_FLAG was not set.
 This can lead to failed connection attempts.

Added dht_check_peers program.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@409 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-03-23 22:27:43 +00:00
drbob
247e583a35 Addition of a new Automatic DHT Bootstrap system. This will need to be tweaked as the numbers of users increase.
* 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
2008-03-21 19:06:34 +00:00
drbob
7044822e1f Addition of several utility functions:
(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
2008-03-21 02:02:58 +00:00
drbob
7eeb4420fe Modifications to Game Launcher to fixup the display of names / status.
Added Date check to DHT Server File, so we don't download each restart.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@378 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-03-05 19:03:51 +00:00
drbob
fd1beee309 More Tweaks before first release.
* 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
2008-03-03 16:01:25 +00:00
drbob
9bdd44d0f5 Changes required to get Retroshare V0.4 working under windows.
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
2008-03-03 14:41:15 +00:00
drbob
85aa75ef5d A series of small bugfixes - as we head towards the first v0.4 release.
* 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
2008-03-03 14:01:52 +00:00
drbob
63828f77a8 Significant improvements to DHT behaviour, and reconnection attempts.
* 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
2008-03-02 14:25:59 +00:00
drbob
100a7aea82 Changed DHT string output to use std::ostringstream, as snprintf wasn't working
with inet_ntoa.... also added some other debug and fixed notifytxt.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@353 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-25 21:39:08 +00:00
drbob
3f582afe5a enabled dht, and tweaked some parameters.
disabled notification checks if ext ports.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@347 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-11 23:27:17 +00:00
drbob
3451af6152 Changes to libretroshare to make the system compile on Mac OSX 10.3
* minor changes to networking headers.
* addition of several virtual destructors (remove warnings)
* switched Makefiles to new system.
* added macosx specific configuration file.
* removed KadC compilation checks.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@324 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-03 06:17:33 +00:00
drbob
456325dc08 Commit of the new UDP Connection methods and
the rewrite of the retroshare core networking stack.

This check-in commits the changes to the dht code.
An interface to a second new DHT system (OpenDHT) has been added.
This has a number of features that make it preferable to the KAD dht network.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@309 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-01-25 07:22:15 +00:00