Commit Graph

45 Commits

Author SHA1 Message Date
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
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
981724a8f1 NETWORK REWORK (cont)
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
2010-06-25 22:02:59 +00:00
csoler
347c80fb1e Ported branch commits:
3148: modified the update system for address lists, so that the list is totally
      replaced (and not merged) when it comes from the peer itself. This helps
      cleaning wrong addresses

	  libretroshare/src/pqi/authssl.cc
	  libretroshare/src/pqi/p3connmgr.cc
	  libretroshare/src/pqi/p3connmgr.h
	  libretroshare/src/services/p3disc.cc

3149: removed uninitialized memory read
      
	  libretroshare/src/pqi/authgpg.cc

3151: corrected missed update of peer info when connected. Disabled setting
	  peer connexion IP from p3disc info (does not make sense, and leads to
	  errors)

      libretroshare/src/services/p3disc.cc



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3152 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-16 20:18:46 +00:00
joss17
7db10d1f6f add a modular (with friends number taking into account) retry time for connection attempt
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2991 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-24 18:56:11 +00:00
csoler
757aa7a95d Ported branch commits 2980/1: cleaned the code in IP address lists management. Removed some bugs. Changed the strategy a bit: only keep the most recent port for identical ips. Changed the interface of extAddrFinder to make it mroe secure.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2983 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-23 22:27:10 +00:00
thunder2
84a87fa11b New methods for calculating the count of peers and messages. It should be faster than getting all data in std::list.
Now used in MainWindow.cpp, MessagesDialog.cpp and peerstatus.cpp

void p3Peers::getPeerCount (unsigned int *pnFriendCount, unsigned int *pnOnlineCount);
void p3Msgs::getMessageCount(unsigned int *pnInbox, unsigned int *pnInboxNew, unsigned int *pnOutbox, unsigned int *pnDraftbox, unsigned int *pnSentbox);


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2898 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-13 19:20:40 +00:00
joss17
948e4fb61d Commmit the code from Thunder
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2754 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-04-22 18:49:08 +00:00
joss17
9976b80566 remove the ssl cert storage. Big rewrite of ssl cert and friend management
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2017 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-13 21:22:52 +00:00
joss17
c23407cae3 get rid of p3authmgr
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2001 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-13 20:56:55 +00:00
joss17
bccd4e7d22 don't add an external address if we are not reachable with it
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1934 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-22 18:43:04 +00:00
joss17
106645f5e5 start listener not immediately after net reset to avoid connection flickering. Stop listeners is here but not implemented
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1924 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-20 13:27:46 +00:00
joss17
4f25178d47 improve extract of external ip address from the ip address list
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1888 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-15 16:56:58 +00:00
joss17
76d5072624 add ext address detector when connectiong to peers
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1882 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-14 18:11:19 +00:00
joss17
fdb3673ce2 Add the tunneling connection. Warning, encryption is not implemented yet for tunnel connection, use only for testing.
Redesign the udp connection
Remove the rsiface duplicates from retroshare-gui.
Add some randomness in timings for connect manager

Merge branch 'connectionTunneling'

Conflicts:
	libretroshare/src/libretroshare.pro
	libretroshare/src/pqi/p3connmgr.cc
	retroshare-gui/src/RetroShare.pro
	retroshare-gui/src/rsiface/rsfiles.h
	retroshare-gui/src/rsiface/rstypes.h

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1867 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-12-13 21:59:26 +00:00
joss17
573e7b2474 remove upnp mapping before adding new ones
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1821 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-12 22:19:45 +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
fcea2d3a24 implemented the ipAddressList methods
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1809 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-11 16:47:10 +00:00
joss17
864c504eb4 dummy implementation of the peerConnectState ipAddressList methods
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1808 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-11 16:46:28 +00:00
joss17
f85adf7c25 change to only one ip list instead of one local and one remote
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1807 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-11 16:45:46 +00:00
joss17
9a6ff52da1 add the serializing of ip adress list, and the process to ad ip to the list when a connection is made to a peer
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1806 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-11 16:44:51 +00:00
joss17
00361c22a5 first commit, change some members name from localaddr to currentlocaladdr, and add ip lists in the classes. Not used yet to connect or exchange
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1804 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-11 16:43:51 +00:00
joss17
2e5130a1da rewrite connection manager
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1769 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-10-30 00:41:24 +00:00
joss17
938c2edef2 removed unimplemented tcp flag
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1751 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-10-30 00:35:59 +00:00
drbob
2bf94b909a Reworking of networking code to enable Net Restart.
* 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
2009-08-04 23:22:44 +00:00
csoler
fac2a1cb83 made ip service checkbox permanent
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1125 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-04-09 21:13:48 +00:00
csoler
4bb497a905 Cleaned the gui a little bit:
- added a checkbox to control the use of external servers for ip determination.
- put back Network on the left
- put channels out of RS_RELEASE_VERSION, as it's not working yet.
- NetworkDialog:
	- set the info in columns about trust to be more explicit
	- changed dark green into light green to comply with colors in the trust matrix (it's also more readable in light green)
	- corrected trust strings that appeared in the Last Contact column
- changed "generate certificate" in connect friends wizard into "export my certificate..." which is more appropriate



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1113 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-04-05 13:04:18 +00:00
csoler
e23bd13bc9 added server-based ip determination as a fallback to existing methods. Forced Dht publishing as soon as an external ip is known
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1109 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-04-03 09:21:20 +00:00
csoler
19aa089701 Added the infrastructure for propagating trust info through third parties
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@892 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-12-23 16:23:54 +00:00
drbob
bc98b9ea7d BugFix: DHT was not turning on.
also updated the ServerDialog with more info on exact network state.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@753 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-10-18 16:02:06 +00:00
drbob
eb8dacc798 Integration of ft into a working system.
* Made ftTransferModule compile.
 * bugfixes to make ftserver1test work.
 * New P3Pipe / P3Hub ...
 * Added Test Notes.
 * First functions added to ftcontroller
 * added isOnline to p3ConnectMgr.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@698 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-08-17 15:23:11 +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
94371600be Fixed upnp issues
* Removed periodic Check and thread.
 * Added Shutdown.
 * switched to terminating background thread.
 * removed temporary lease.
 * A bit of a HACK - this class could be cleaned up significantly.

Adding the start of forums/channels.
 * Dummy Interface and Forum data (so GUI work can start)
 * rough p3distrib - needs a lot of work.

Added shutdown function to p3connmgr, to shutdown Upnp.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@493 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-04-09 12:54:15 +00:00
drbob
8d3f9a3ec6 Important changes to tighten up the connection methods:
* Switched to miniupnpc-1.0
 * modified miniupnpc to add lease duration.
 * set lease duration to 1 Hr.
 * Modified configure scripts to use miniupnpc-1.0

 * added TIMEOUT to all connections (5 sec for TCP - Important!)
 * reduced TCP offset delay to 2 seconds.
 * BUGFIX: Added missing connect_parameter wrapper function.
 * added reset to other connection methods when connection is made.
 * Added Connection Type (TCP/UDP) information to feedback/GUI

 * Increased default Data Rates: from 50/50 to 100/500 kB/s
 * Removed Default Bootstrap Ids. (only automatic now!)



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@423 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-03-26 15:35:09 +00:00
drbob
0bdc3522a6 Improved the bootstrap Stun system.
* 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
2008-03-05 16:32:18 +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
2dc2954f40 Added Code to detect Symmetric NAT (BAD!) Firewalls.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@361 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-28 15:58:54 +00:00
drbob
6dd3d30d8e Additions to tcponudp to add a TouKeepAlive system.
This is only used if we are in 'firewalled' mode.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@360 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-28 10:43:33 +00:00
drbob
8b230a55cf Significant changes to aid UDP connections.
* 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
2008-02-27 02:32:20 +00:00
drbob
06cb9e0121 Added a seperation between 'desired' net mode and 'actual' net mode
this is needed for accurate stunlist creation. Also added stunStatus
calls from discovery.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@355 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-26 16:14:13 +00:00
drbob
685182ff0b Modified DHT to notify of all possible stun peers, as it doesn't know whether we need to stun or not.
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
2008-02-25 23:56:23 +00:00
drbob
806b8285f2 Lots of little changes to libretroshare. Improvements mainly focused
on configuration storage and loading:
 * Improved Configuration Manager (almost finished)
 * Mutex protections for Configuration system
 * added Configuration storage to p3ConnectMgr.
 * added Configuration storage to p3MsgService.
 * bugfixes in p3GeneralConfig.
 * Added Config Save notification where necessary.
 * added safe FinalConfigSave before exit().
 * added RsPeerNetItem + RsPeerStunItem (serialiser)
 * reordered startup for correct config loading.
 * enabled Loading of certs in AuthXPGP.
 * move sockaddr_clear() to util/rsnet.h
 * switched p3MsgService sendMessage checking to pqiMonitor syste,.
 * corrected pqiarchive saving of PeerIds.
 * added setNetworkMode() & setVisState() to p3ConnectMgr.
 * added Mutex protection to p3ranking.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@336 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-07 16:18:34 +00:00
drbob
06aae24efd * Addition of almost completed p3ranking class - still streaming / ranking to do.
* Major modifications to p3disc to use the new AuthMgr and ConnMgr.
 * Modified RsDiscItems to match new p3disc.
 * Modified ConnMgr to accept information from p3disc.
 * Addition of new Load/Save Certificate From/To Binary to AuthMgr.
 * Corrected default build to Linux.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@325 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-02-03 06:29:02 +00:00
drbob
6435357c07 Commit of the new UDP Connection methods and
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
2008-01-25 06:36:40 +00:00