* service->SendItem() now goes direct to pqistreamer buffer.
* split p3FastService out of p3Service.
p3FastService removes the recv buffer for faster processing.
p3Service maintains its original interface, so derivate classes can remain unchanged.
* Added uint32_t usec (wait period) to BinInterface.moretoread() & cansend() for future threading.
* Added Mutex protection to pqistreamer, pqissl and derivatives of both.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-initdev@6783 b45a01b8-16f6-495d-af2f-9b41ad6348cc
In preparation for making RS support IPv6.
NB: This breaks the build of retroshare-gui, as the
sockaddr_storage_xxx fns are only defined as prototypes for now.
All the aux libraries like udp / stun / tcponudp / dht have still to be converted.
These changes will probably break various things and need to be tested thoroughly.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-initdev@6735 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Internally moved storage of data rate from pqipersongroup -> p3serverconfig
* made DataRate + Operating Mode work together.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5889 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- In general it is okay, except for: DataRate Handling, and Win32 specific: WaitingList.
- Cleaned up some functions.
- renamed createPerson and createListener to locked_createPerson and locked_createListener.
This is required as neither Listener nor Person are thread safe (TODO).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5888 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* log p3disc::sendHeartbeat(), successful p3linkmgr::connectAttempt()
* log reason for each pqissl::reset().
* log linkmgr & peermgr addFriend() and removeFriend().
* log pqiperson::connect(), p3PeerMgr::cleanUnusedLocations().
* Modify timing of cleanUnusedLocations (=>8min) & NETSTATE_PARAM_TIMEOUT (=>15min) (see if it has an effect).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4539 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* 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
* 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
* 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
* 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
* 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
Problem:
RetroShare connects to all ssl's at once. In Windows XP there is a build-in connection limit of concurrent incomplete connections.
Quote:
"The TCP/IP stack in Windows XP with Service Pack 2 (SP2) installed limits the number of concurrent, incomplete outbound TCP connection attempts. When the limit is reached, subsequent connection attempts are put in a queue and resolved at a fixed rate so that there are only a limited number of connections in the incomplete state."
This results in a high usage of the nonepaged pool and when it runs over the limit it results in the following error in the system log:
German: "TCP/IP hat das Sicherheitslimit erreicht, das für die Anzahl gleichzeitiger TCP-Verbindungsversuche festgelegt wurde."
English: "TCP/IP has reached the security limit imposed on the number of concurrent (incomplete) TCP connect attempts."
After a longer runtime of RetroShare and a very high usage of the nonepaged pool all connections of all running programs are lost and no new connections can be made. At the end it can cause a blue screen.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3631 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* 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
* 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
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
* 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
* Added call to function when loading certificate from a string.
(ie when the user cut n pastes it).
* added return 1 call to pqipersongrp.cc
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@714 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
* Fixed up Variable Ticking -> max = 1.0 sec now.
* Removed debug output which was massively increasing CPU load.
* Removed some old code from p3face-server.cc
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@461 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* 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
* 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