Commit Graph

450 Commits

Author SHA1 Message Date
thunder2
1207b5793b Changed p3Peers::getPeerCount to count also gpg id's only.
Show count of friends in MainWindow, not the count of locations.

Recompile of GUI needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3653 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-08 12:03:25 +00:00
thunder2
f4bbd3e933 Limit the concurrent connection attempts in Windows XP. Its's only a hack.
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
2010-10-07 11:17:42 +00:00
csoler
a90f332a40 bug correction. Please do not use begin ( ) from returns of a function without const & s
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3612 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-05 15:46:08 +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
chrisparker126
fa6af9a1ca fixed channel edit problem and added some documentation for pqimonitor
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3596 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-10-03 21:48:19 +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
thunder2
acf57ed3fd Removed read/write mutex from AuthGPGimpl and from the sources.
Added RsThread as base class to AuthGPGimpl and load all gpg keys every hour.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3571 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-30 19:05:43 +00:00
thunder2
d3fc7f3982 Reindroduce the read/write mutex for AuthGPG as mutex for the data member.
Added second mutex for the gpg engine.
Now the call to the gpg engine (for example AuthGPGimpl::LoadCertificateFromString) doesn't block the GUI.
The existing problem is still the call of AuthGPGimpl::storeAllKeys every minute before access the gpg data.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3555 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-28 22:30:57 +00:00
chrisparker126
22472209b7 enabled two pass load for new config saving. was mistakenly not enabled i.e. bug
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3543 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-27 21:42:44 +00:00
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
chrisparker126
8b1ffdb5d9 fixed transitioning of msg service config files from global signature format
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3522 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-21 22:02:35 +00:00
chrisparker126
52e0d2a095 added new individual config saving system
global signature file format will be converted


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3514 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-09-18 19:09:11 +00:00
thunder2
340982b996 p3ConnectMgr::connectResult
- added "mStatusChanged = true" on disconnect of a peer - the statusChange was not notified in time

MessengerWindow
- removed unused method updatePeersAvatar

Changes in status service:
- removed unused method statusAvailable
- new notifier for status change
- enabled the tick for receiving items
  - always up to date status map
  - no huge memory usage, if no list is visible who call getStatus and processed the received items
  - send notify on status change
- renamed getStatus to getStatusList and created a new method getStatus to get status of one peer
- fixed: send status directly after the connect of a peer

Now the frame around the avatar in private chat changes when the peer change the state.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3380 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-20 18:45:44 +00:00
thunder2
fa9ea81ad7 Changed some mutex around p3ConnectMgr::mOwnState. Please review.
Made getIPAddressFromString thread safe, just in case.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3374 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-16 07:29:51 +00:00
thunder2
8ef8174227 Optimized usage of getOwnId in p3ConnectMgr::loadList
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3371 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-15 12:48:09 +00:00
thunder2
efac8eec85 Removed compiler warnings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3369 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-14 14:17:49 +00:00
thunder2
c4167ba0ac Removed memory leak in cleanUpCertificate when the certificate can't be cleaned.
Switched from char* to std::string, because the char* is unnecessary and wasn't freed on some returns.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3368 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-14 11:51:15 +00:00
thunder2
7b4364035e Added missing break in AuthGPGimpl::VerifySignature
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3348 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-06 22:45:59 +00:00
leander-256
4bb4fc11e2 This intimidating patch renames libretroshare/src/rsiface/ to
libretroshare/src/retroshare/

All the relevant headers have been modified to reflect that change.

This allows installation of libretroshare on a system, headers will
be put in $WHEREVER/retroshare/ and we keep the ability to compile
against them, be it on the system or in the SVN tree.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3342 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-06 09:40:23 +00:00
thunder2
e69300ccdc Changed the values of ETIMEDOUT to 10060 like in pthread.h to prevent compiler warnings.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3341 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-08-04 11:27:16 +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
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
csoler
012808ea00 - Implemented CRC32 map traffic through direct downloads
- replaced the findItems() call into a hand-written search (this was causing a rare bug in displaying downloads)


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3318 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-29 21:07:07 +00:00
csoler
cee8600a93 - implemented bidirectional exchange of chunk maps for direct downloads, to allow showing proper completion of transfers from direct friends.
- moved the direction flag upward in the pipeline (ftDataSend instead of p3turtle)




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3313 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-25 19:04:31 +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
chrisparker126
3291e61291 reimplemented encrypt/decrypt using openinit and sealinit envelope encryption of openssl
- to aid with portability into the future

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3291 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-14 21:27:26 +00:00
thunder2
04366bc279 fixed unlock of connMtx in p3ConnectMgr::netExtCheck
unlock was too early

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3288 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-13 14:03:05 +00:00
drbob
31c9832978 Fixed Bad SSL Timeout code.
* Added TS check to SSL_RETURN_ZERO code. 
	- Existing code was dependent on tick rate. (could kill connection in 2-3 seconds)
	- If nothing is received within 15 seconds - the connection will be killed.
  * Removed "No send if RETURN_ZERO" check. 
	- This causes deadlocks and kills connections.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3287 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-13 12:13:56 +00:00
thunder2
c005f7d4a8 pqinetwork.cc: removed compiler warnings on windows, errors was fixed already
sslfns.h: test for existing function with #ifdef doesn't work, used OPENSSL_VERSION_NUMBER instead - please test

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3284 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-11 00:07:19 +00:00
drbob
9efe0b2e9e another windows bugfix.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3283 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-10 23:51:04 +00:00
drbob
fba4a1b4da Bugfix for windows compilation?
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3282 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-10 23:22:47 +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
0b298f6ca1 Fix p3ConnectMgr:;setExtAddress() bug... my fault.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3280 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-10 17:53:34 +00:00
thunder2
1a9d68b536 Fixed compile on Windows
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3255 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-05 11:37:07 +00:00
drbob
6a40e1b2f3 Switched p3distrib (forums) personal signatures from ssl to pgp.
* Changed calls from AuthSSL to AuthGPG and tested. looks like it works!
 * added extra connect addresses in p3connmgr (current[local/server]addr)
 * added mConnMgr->addFriend() call to pqissllistener to add unknown ssl certs.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3253 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 22:23:45 +00:00
drbob
8b2cb688a8 Restored p3disc functionality.
* Bugfix in correctly adding ipList.
 * restored setLocal/Ext calls from peer.
 * Added extra debugging in p3disc.
 * Cleaned up debugging in p3connmgr.
 * switched off debugging in rsdiscitems.
 * reorder ipList (most recent first).
 * removed DEBUG switches in libretroshare.pro



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3252 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 15:16:52 +00:00
drbob
6f219d4fef Bugfixes:
* Corrected mLocal -> mExt in ipset.cc
  * Added pqiipset_test
  * added both Ext and Local address to GUI display.
  * p3connmgr: Ip Addresses only updated if we connected (otherwise port is wrong).
  * p3connmgr: update external address when we get it.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3251 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 13:19:09 +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
3575f12240 Network REWORK
* Added separate classes to handle IpAddress History.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3245 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-04 10:15:56 +00:00
leander-256
fe46d7618a Prevent multiple instances from running on Unix systems.
Every call to RsInit::LoadCertificates() now creates a file:
~/.retroshare/xxxxxxxxxxxxxxxxxxxx/lock
which is then bound to a system lock (fcntl F_SETLK).

If the lock request fails, it means another instance is already
running with the same profile.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3241 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-07-01 20:30:36 +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
713d956882 NETWORK REWORK (cont)
* removing old tests and unused code.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3220 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 22:10:21 +00:00
drbob
bfa9965c9b NETWORK REWORK (cont)
* Removed unused FLAGS from pqi_base.h
 * corrected pqiStatus() fn signature in dhtmgr.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3219 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 22:09:07 +00:00
drbob
5df785ed4e NETWORK REWORK (cont)
* restored AuthSSL::Failed/CheckCertificate() calls.
 * removed mConnMgr->isConnected() checks. These should be elsewhere.
 * enabled exit(1) call if cannot open listening socket.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3218 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 22:06:49 +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
drbob
9f4deb1cf7 NETWORK REWORK (cont)
pqiperson / pqipersongrp: generally okay, One Nasty BUG.

  * removed pqipersongrp::getPeer() fn. Violated Mutex protections!!!!
  * reworked heartbeat code, which used getPeer() fn.
  * switched all notifyConnect() calls to include remote_addr.
  * added explicit stoplistening() call when removing peer.
  * removed funny DO_NEXT_ATTEMPT callback code.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3216 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 22:00:38 +00:00
drbob
00d0d999dc * Removed list<IpAddressTimed> from callback
This functionality might need to be restored later, 
     but should be done with list<> for both Local and Remote Addrs.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3215 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 21:54:41 +00:00
drbob
ab3b044791 * changed misleading comment about Mutexs
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3214 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 21:52:21 +00:00
drbob
e4e80778e4 Networking REWORK (cont)
AuthSSL / AuthGPG: Bits and pieces still need fixing up.
AuthSSL will be rechecked later ;)

 * Mutex bug in authGPG (not very serious one).
 * removed _locked() suffix from functions (as they do the locking now).
 * added dummy FailedCertificate / CheckCertificate fns to AuthSSL
 * removed last bits of awful SSL_ex_data hack.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3213 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 21:50:46 +00:00
drbob
69ba03dbd2 First of the Networking REWORK checkings. I'm doing these is stages,
so I can properly document what is being changed!

Revert / Merge : pqissl / pqissludp code.
   * restored original timeout system.
   * removed weird testing code - should never have been here!
   * switched extra checks to generate ALERT msgs - we want to know if they happen.
   * removed quietShutdown (breaks TLS protocol - why was this added?)
   * switched listening on all the time. (helps restore disconnects).
   * restored common connect parameters (removed duplicates in ssludp).
   * restored AuthSSL->Failed/CheckCertificate() calls ... useful.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3212 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-06-25 21:44:24 +00:00