Commit Graph

1472 Commits

Author SHA1 Message Date
drbob
91e10f1590 * Fixed up network configuration.
- p3peermgr now uses RS_NET_MODE_XXXX instead of RS_NET_MODE_TRY_XXXX
	- p3netmgr maintains both TRY and ACTUAL mode.
	- actual mode is not visible through old interface (TO FIX).
	- added default to UPNP mode.
 * Added debug to show changes to peer->VisState.
	- It seems that this is never updated by p3disc. BUG, (TO FIX).
 * disabled extra debug in rsdiscitems.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4498 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-30 12:18:56 +00:00
drbob
da0d410b8d * Added further debug to pqistreamer.
* clear mOldNatHole/NatType during netReset.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4497 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-29 15:20:40 +00:00
drbob
3d71e6338e Added more debug to serialisers.
* print out messages when serialisation fails.
 * removed BUG in TlvGetString() which allows a zero length TLV 



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4496 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-29 15:17:39 +00:00
drbob
1ee26e3ef2 disabled DIRECT UDP connections...
1) Not always stable, especially if you are firewalled.
2) not needed as a TCP connection can be made!



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4495 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-28 13:05:20 +00:00
csoler
b903217317 fixed declarations instead of initialization
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4494 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-27 17:02:05 +00:00
csoler
ab37ea0ce1 fixed uninitialized memory read
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4493 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-27 16:56:37 +00:00
csoler
00711753ad fixed uninitialized memory read
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4492 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-27 16:32:54 +00:00
csoler
095168f4ec fixed uninitialized memory read
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4491 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-27 16:29:25 +00:00
drbob
f67da9f8ce * modified code to add PeerId to stunner->exclusiveMode.
* fixed missing releaseExclusiveMode.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4490 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-27 13:56:35 +00:00
drbob
461378a3de * Increase UDP buffer size, as this might fix connection issue?
* Added peerId to udpstunner->exclusiveMode for debugging purposes.
 * added timeout for exclusive mode, this can happen if connection is lost at lower levels.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4489 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-27 13:55:19 +00:00
csoler
b3052e0208 set maximum port value to 65535 instead of old arbitrary value of 50000, and warned about system-reserved ports in server settings gui
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4486 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-23 20:07:06 +00:00
drbob
b56ddfeb5b * Switched on Dht "Attach" Mode if RS is firewalled. (and not nice firewall).
* Added interfaces to enable AttachMode switch.
 * Added further tcponudp tests.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4484 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-21 11:28:19 +00:00
drbob
d0f52f1d5f Bugfixes for TcoOnUdp:
* Reduce Maximum Transmission size from 1500 -> 1000.  
	This is the cause of Failed Connections. It looks like UDP packets are being truncated from 1520 -> 1492 bytes.
	and this is killing the TCP protocol. Windows is the main suspect. UDP packets this large are liable to get fragmented anyway.
	We will start at 1000, verify that connections are okay, then start increasing this parameter.
	There is up to 64 bytes of Headers (IP + UDP + Relay + TOU), so 1400 + 64 = 1464 is below the 1492 cutoff. This is the target!
 * Switch to RSRandom for Sequence numbers. rand() is rubbish on Windows.
 * Added code to handle Larger Packets coming in (e.g. 1500 Bytes input, now that Max Size is 1000).

NB: The code is here needs to be optimised, there are excessive numbers of malloc(), new() & memcpy(), which should be removed.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4482 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-20 18:37:21 +00:00
drbob
fcd51a8439 Added some more serious tests.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4479 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-20 01:35:57 +00:00
drbob
c3c6fb87be updated pair_tou test - its not vary good at the moment, more work to do.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4478 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 22:53:13 +00:00
drbob
6722fa24c5 repaired regression tests.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4477 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 22:23:33 +00:00
drbob
d656e0912f added scripts to run tests.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4476 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 21:30:35 +00:00
csoler
179693e2a4 fixed missign return, and pointer-to-uint32_t cast
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4475 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 18:55:32 +00:00
drbob
c73bf9a71a returned MAX_SEG to 1500, as this definitely causes a bug (code is dependent on not getting larger packets).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4474 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 11:29:59 +00:00
drbob
608cc32938 Reduce MAX_SEG to 1000 bytes. Previously it was at 1500 + HEADER, which could have been larger than MTU
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4473 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 10:05:14 +00:00
drbob
5ff19cf9d7 increased TCP WAIT time to allow external port to stabilize.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4472 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 08:14:25 +00:00
drbob
ed114cc9e5 Enable TCP connections again.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4471 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 00:17:54 +00:00
drbob
cc9df9a80f Removed Lots of Debug, and fixed a couple of bugs.
* Increased Timeout Periods for UDP connections - this was stopping half of them from succeeding.
 * The other bug (Heartbeat / stream issues) has not been solved.
 * Fixed up initialisation of p3BitDht data. 
 * add DropPeers() as NON-ACTIVE (this allows peers which aren't VISIBLE to still try and connect)
 * export AddFriends/FOF/Others to LinkMgr to allow further SSL IDs to be added to p3BitDht.
 * Export UDP Addresses to DhtWindow.
 * switch off lots of debugging.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4469 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-19 00:06:09 +00:00
drbob
b61b590f79 Silly Bug, overwritten the mConnectFlag with the Bandwidth parameter.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4467 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-18 18:28:20 +00:00
drbob
69c14461cb Merged v0.5-netupgrade branch back into the trunk ( --- Merging r4410 through r4465 into '.' )
This brings lots of improvements:
 * UDP Connection Code - this it the majority of the new code.
 * Simplification of p3ConnectMgr => p3LinkMgr, p3PeerMgr & p3NetMgr.
 * Notifications of Failed Connection Attempts
 * Addition of a "Getting Started Guide".
 



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4466 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-18 09:25:15 +00:00
drbob
619b2416ac disabled Relay connections, and enabled UDP connections.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4464 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-18 08:37:11 +00:00
drbob
96ec46478a Changes to support the delay / bandwidth changes in libbitdht
* switched off the TESTING PERIODS.
 * added BASE PROXY wait time.
 * Increased PEERNET_CONNECT_TIMEOUT to 120
 * Prevented connection startup with Request underway (dpd->mPeerReqState == RSDHT_PEERREQ_RUNNING)
 * corrected calculation of Exclusive Delay (Target of MIN_DETERMINISTIC_SWITCH_PERIOD = 60 secs).
 * don't do UDP Failed ConnectLogic update when connection was initiated remotely.
 * Extended UdpRelay to allow flexible Bandwidth limits in the future.
 * Added Timeout for Relays (30min for unknowns - 2hrs for friends).
 * Extract bandwidth from UdpRelay, at installation.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4463 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-17 23:41:30 +00:00
drbob
c33b415ef4 Bugfixes for ExclusiveProxy Mode.
* changed PeerConnectStateBox::getNetState() to calcNetState() to provide up-to-date info (internal mNetState can be stale!)
 * Added "bool addrChangeLikely" parameter to ReleaseProxyExclusiveLock() - this parameter is determined by whether we actually started a UDP connection.
 * disabled ForceRestun in UdpStunner if addrChange is unlikely.
 * Reduced Stunner Period Slow from 3 minutes to 2 minutes - exact value will only be known after real-world testing.
 * More debugging.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4458 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-17 16:24:45 +00:00
drbob
181ad06e33 Added Exclusive Proxy Lock for DETERMINISTIC SYM Nats.
* tweaked time periods as these type of connections take longer.
 * added NatHoleType() to ConnectStateBox logic - as its required for ProxyPort Determination.
 * added ConnectStateBox::getNetState() so we can work out if in ExclusiveNat mode.
 * added ExclusiveLock checks at Connection Initiation / Proxy Connection Auth & Connection Ends.
 * added Simulation of Symmetric / Exclusive Nat to UdpStunner.
 * exported ExclusiveProxyLock for GUI display.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4457 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-17 13:48:37 +00:00
csoler
7d4b8288ca fixed compilation
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4456 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-16 13:11:26 +00:00
drbob
a5c77d02e7 Added Random Timeouts / Retries to p3bitdht level.
* Fixed UdpRelay Interface Output.
 * added more variables to ConnectStateBox.
 * Changed Wait logic from sec since last attempt, to explicit attemptTS.
 * Improved PeerConnectStateBox::connectState().
 * Added RETRY_ATTEMPT updateCB.
 * removed stupid clearing of addresses (killed Relay connections).
 * added more debugging



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4455 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-16 13:01:08 +00:00
csoler
a2cefdf8f4 added www.myip.dk, and removed debug info
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4453 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-15 19:06:38 +00:00
csoler
cfd43e63cf removed showmyip.org address from extaddrfinder
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4452 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-15 19:00:00 +00:00
csoler
d071cee94b fixed bug in dnsresolver reset function
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4451 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-15 18:55:33 +00:00
drbob
44b494e1fd connection bugfixes.
* Print DHT translations (for debugging)
 * enable all connection modes.
 * reduced timeout periods for testing.
 * kill connectionRequest after UDP Fail. (used to restart it).
 * fixed up UDP Fail / Connection Close code.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4450 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-15 16:05:37 +00:00
drbob
bffaf6e5ef More Udp Connection Bugfixes:
* connected Dht ConnectCallback()
 * added missing break statement in peernet logic (directattempt).
 * added state update if ConnectionRequest is rejected by DHT (normally because MODE UNAVAILABLE).
 * switched off UdpStunner.
 * added Debug Modes to rsUdpStack & rsFixedUdpStack.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4448 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-15 11:13:20 +00:00
drbob
0229ef1fe8 Disabled UDP connections (in p3LinkMgr) for now.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4447 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-14 15:01:41 +00:00
drbob
86bdc5dfd0 More Plumbing changes.
* Forgot that RELAY connections need extra parameters.
 * Added proxyAddr, srcAddr and Bandwidth parameters to connection attempts.
 * Completed UDP connection callouts from p3bitdht.
 * Added TCP connection attempt initiation from p3bitdht.
 * Added PASSIVE / ACTIVE determination in p3bitdht.
 * completed UDP connection logic in pqissludp.
 * enabled UDPSTUN_ALLOW_LOCALNET for testing.
 * added CONSTs for TOU Receiver Indices.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4446 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-14 14:56:33 +00:00
drbob
22debbce34 Turns out that the current implementation of p3NetMgr has NO dependancies on p3PeerMgrIMPL or p3LinkMgrIMPL.
Infact, it doesn't use these two classes at all (so you could pass void in the init function)...
  - It should actually update p3PeerMgr when it detects a Net Address change (TODO).

This means that there is potentially no need for a dummy object - p3NetMgrIMPL can be used almost as is!

 * changed p3PeerMgrIMPL & p3LinkMgrIMPL pointers back to p3PeerMgr and p3LinkMgr pointers.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4445 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-13 23:23:47 +00:00
drbob
387db6e7b6 Done most of the piping/callback between the DHT and LinkMgr/NetMgr.
* Added ConnectionFeedback fn to NetAssistConnect & p3BitDht.
 * Added TYPE definitions to pqiassist.h
 * added extra parameters to p3LinkMgr::connectAttempt() (flags which will be used to pass DIRECT/PROXY/DIRECT + PASSIVE/ACTIVE)
 * Added callback from p3LinkMgr to NetMgr::netAssistStatusUpdate() => Dht::ConnectionFeedback.
 * updated peerConnectRequest to trigger either TCP attempt (first) or UDP connection.
 * updated parameters for p3LinkMgrIMPL::tryConnectUDP()
 * added p3LinkMgrIMPL::locked_ConnectAttempt_SpecificAddress() for DHT => TCP attempt.
 * added extra parameter to addAddressIfUnique... bool addFront =>  DHT attempts get pushed to front of Queue due to timing requirements.
 * added extra parameter (flags) to pqiperson::connect() - matches extra parameters to p3LinkMgr::connectAttempt().
 * added p3NetMgr::netAssistStatusUpdate()
 * added mConnectFlags to pqissludp



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4443 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-13 22:23:40 +00:00
drbob
8d5bde1b50 Added Virtual Interfaces for p3LinkMgr, p3NetMgr & p3PeerMgr.
Shifted real functionality to p3LinkMgrIMPL, p3NetMgrIMPL p3PeerMgrIMPL
This allows us to test most objects with dummy objects (i.e. no need for full AuthSSL/AuthGPG objects)



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4441 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-13 14:22:25 +00:00
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
csoler
fc05314af0 corrected a bug due to reading uint64_t with wrong format on some systems, which caused the hash cache to sometime fail
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4437 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-12 20:07:28 +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
csoler
e4f89892a3 added missing mutex protection that caused random SIGSEGV
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4433 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-11 19:04:56 +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
96b4651b7c Updated flags to add additional NewsFeed Type: Security!
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4428 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-11 15:52:29 +00:00
drbob
d643f168a0 Fixed up Adding / Removing Peers.
* added OthersList to p3linkmgr. this is important so we can send ACTIONS for removed Peers.
 * added missing mStatusChanged when adding Friend.
 * added printPeerLists to PeerMgr and LinkMgr.
 * tweaked debugging.
 


git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4427 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-11 12:11:58 +00:00
drbob
53c71daca0 Major improvement to libretroshare!
* Catch Failed Connections, and add to NewsFeed for GUI notifications.
 * outgoing connections are captured via pqissl::FailedCertificate() functions.
 * incoming connections are captured at certificate verification.
 * Certs are passed to AuthSSL, which calls the notification system.
 * Additional types have been added to rsnotify to handle these cases.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4425 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-11 00:55:06 +00:00