Commit Graph

75 Commits

Author SHA1 Message Date
thunder2
c6beee44ec Removed unused parameter warnings in libretroshare.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4558 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-08-12 13:42:30 +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
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
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
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
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
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
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
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
bbd11e69c1 Changes to libretroshare to get it to compile (still missing fns - so won't link yet!)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4419 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-07-10 00:41:39 +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
b683e663d6 Merged Changes /branches/v0.5-peernet/libretroshare/:r4237-4358
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
2011-06-29 18:02:44 +00:00
thunder2
bc113326e4 Fixed problem with utf characters in the %APPDATA% path on Windows.
Added function for opening files on Windows and Linux - RsDirUtil::rs_fopen.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4124 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-04-03 23:11:38 +00:00
csoler
40f4009ca7 made the DNS calls in a separate thread, using new DNSResolver class. Added test program for that class as well. Moved extaddrfinder to util/
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3980 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2011-01-24 22:05:10 +00:00
chrisparker126
9e86265f91 moved test sources to test directory and deleted a few dead files , created new util test directory.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3396 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-25 19:54:28 +00:00
csoler
43e9f65003 fixed compilation issue on ubuntu
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3340 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-04 10:14:22 +00:00
thunder2
6000233267 Fixed compile of libbitdht on Windows
Enabled bitdht in RetroShare.pro and retroshare-nogui.pro too
Fixed link of RetroShare on Windows
-> added ws2_32 after bitdht, maybe someone has a better solution

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3335 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-03 12:15:20 +00:00
drbob
627b0f88a2 * Fixed up UDP Port "netReset()" (was stuck on 7812, now follows your tcp port).
* 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
2010-08-02 23:21:59 +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
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
csoler
0d14351b8a Ported branch commits:
3099: libretroshare/src/tcponudp/udplayer.cc 
      libretroshare/src/tcponudp/udplayer.h 	
      libretroshare/src/util/rsnet.cc 	
      libretroshare/src/util/rsnet.h

	moved operator<<(ostream&,sockaddr_in) to rsnet.h, as it is used at
	different places

3100: libretroshare/src/util/rsdiscspace.cc
	suppressed debug mode

3101: libretroshare/src/serialiser/rsdiscitems.cc

	put correct (i.e. non conservative) size for RsDiscReply packets

3102: libretroshare/src/services/p3disc.cc

	Made a pass on the code in p3disc. Corrected some bugs:
		- suppressed an unwanted return in packet treatment
		- prevented sending info to a peer about itself
		- changed askInfoToAllPeers() such as not to discard info
		  from peers with NODISC flag (because we especially need
		  info for these)
		- enabled receiving p3disc info even if p3discovery is
		  disabled. Indeed, disabeling p3disc is a measure of
		  protection, so it should limit the export of p3disc info,
		  not the import.
		- removed test discarding info about dummy friends, because
		  it is useless
		- don't discard info about peers that have the NODISC flag
		  (meaning that we especially need info for them)
		- added safety check about received GPG keys. Before we
		  relied on this test being performed by
		  p3ConnMgr::addFriend()
		- added some debug info

3103: libretroshare/src/ft/ftcontroller.cc
	removed debug info



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3104 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-10 13:42:49 +00:00
thunder2
334c9b61d3 moved rsGlobalShutDown from MainWindow::doQuit to main
rsGlobalShutDown now cleans the threads and some memory on exit

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3028 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-29 15:14:25 +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
leander-256
b30056e17f This patch allows Windows users to share files and folders with "exotic" characters.
The problem was that libretroshare handles files in UTF-8 but Windows's ANSI/POSIX C functions automatically assume that the char* parameters are encoded with the system's code page. There is no way to set that code page as UTF-8. So now under Windows the code translates the file name to UTF-16 before feeding it to one of the Unicode functions (they are usually prefixed or suffixed by 'w'). Please note that it is not very efficient.

Furthermore, Windows does not provide a Unicode version of opendir/readdir/closedir, so it was necessary to use FindFirstFileW/FindNextFileW/FindClose which has a different behaviour as well as different structures. The FolderIterator class was created in order to mimic the Unix way of traversing folders contents. Hence the algorithm is unchanged and the systems differences masked.

As it was necessary to use some functions from the Windows API, <windows.h> had to be included in a few files were it didn't appear before, creating macros and #define conflicts. In order to solve them, util/rswin.h must be included first in a file (if necessary). Otherwise the preprocessor will fail on purpose to avoid the code being compiled with different _WIN32_WINNT values.

As another side-effect, rstlvutil.h and rstlvutil.cc have been removed from libretroshare.pro file. They are only used by testing units and include util/utest.h which defines a macro FAILED that already exists in <windows.h>. I don't know if unit tests are still in use and I don't plan on coding often on Windows, so I'll leave that as an exercise (hot potato?) to a motivated fellow Windows programmer.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2924 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-16 23:26:45 +00:00
leander-256
e49cc6552c Minor fixes
pqi/authgpg.cc:
- remove French comment (with nasty non-unicode characters)
- use std::cerr instead of fprintf

tcponudp/extaddrfinder.cc:
- initialize correctly the sockaddr_in, former code wouldn't pad sin_zero
  (which is required by the standard)


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2909 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-14 18:50:20 +00:00
thunder2
465cd42463 Memory leak:
- getLocalInterfaces -> iptable = (MIB_IPADDRTABLE *) malloc(dwSize);
- main -> RshareSettings  *_settings = new RshareSettings();

ExtAddrFinder::~ExtAddrFinder - use free for pointer allocated with malloc


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2882 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-05-09 21:58:28 +00:00
csoler
7b183f41a1 suppressed deadlock (mutex explicitely locked before thread exit)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2466 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-03-01 20:35:32 +00:00
joss17
be5957742c remove some exit(1)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2425 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-25 22:43:04 +00:00
csoler
0d67e991e3 suppressed possible un-necessary infinite wait
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2405 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-23 21:54:35 +00:00
joss17
b46cf457db further log cleanings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2271 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-10 10:56:54 +00:00
joss17
bf67301d71 remove a maximum of debug outputs for the release
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2232 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-02-07 21:28:40 +00:00
csoler
b592bdac62 added return statements is functions that missed one
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2137 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-27 08:24:39 +00:00
joss17
f481dbef59 add include for latest gcc. Comment usleep fonction in tou_net.h
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2101 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-20 22:02:43 +00:00
csoler
ad96c86f68 Added dynamic local and external ip reconfiguration. I still need to reset connexions when changing ips.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1796 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-06 22:12:58 +00:00
joss17
cabf6260c2 fix uninitialized pointer fir libupnp
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1782 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-10-30 00:45:25 +00:00
joss17
62111d00ca change timer and fix log messages
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1780 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-10-30 00:44:44 +00:00
joss17
4295eee208 change timers
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1779 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-10-30 00:44:24 +00:00
joss17
95888fed59 add a timeout to ext addr finder
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1778 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-10-30 00:44:04 +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
drbob
6e5d2f43d8 This is a little experimental modification to the TCP/UDP listening ports.
* Modified bind calls to attach to 0.0.0.0:XXXX instead of specific
    IP:Port combinations. This will help connectivity when RS chooses
    the wrong interface.
  * These changes are within #defines so they can be easily reverted.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1498 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-08-06 10:46:37 +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
drbob
a023a0bfcd Major change to the way certificates are stored now defaults to ~/.retroshare/SSLID/
* supports Multiple Accounts on same computer.
	* Enabled libretroshare tests using Makefiles.
	* restructured RsInit functions: Config Data is now private.
	* switch OpenPGP on by default (added #define to rsinit).
	


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1451 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-07-30 21:27:47 +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
drbob
5466c447ae Added missing files (extaddrfinder & p3turtle) to Makefiles.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1139 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-04-21 19:12:43 +00:00
csoler
1aaf6f5c27 Corrected potential mutex lock problem
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1130 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-04-16 19:36:58 +00:00