- Revisions 4771 => 5334
* This merge brings a lot of unfinished code for GXS (new cache system)
- See branch commits for more details.
* Code is disabled, and should have minimal effect on trunk build.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5338 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- switch to OSX10.6 for upgraded SSL, with different fn signature.
- correct library paths in libretroshare.pro
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5331 b45a01b8-16f6-495d-af2f-9b41ad6348cc
started implementing gen exchange client calls
finished implementing msgrelated info dataAccess routine
more refinements to various interface - need to think about how meta is passed about the various
layers of gxs and kept consistent with sqldb
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5321 b45a01b8-16f6-495d-af2f-9b41ad6348cc
a transfer not finish if the original surce for a crc is not here anymore.
If you have a unfinished transfer do a force-check after restart to get back chunks that
where still on verificaiton stage.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5315 b45a01b8-16f6-495d-af2f-9b41ad6348cc
User-level changes:
==================
- libgpgme is not used anymore; it is replaced by a built-in piece of code called OpenPGP-SDK
(http://openpgp.nominet.org.uk/cgi-bin/trac.cgi) that was improved to be used by RetroShare
for handling PGP keys.
- the gnupg keyring is not used anymore. Now, RetroShare has it's own gpg keyring, shared by all instances.
On linux it's located in ~/.retroshare/pgp/. A lock system prevents multiple locations to read/write keyrings
simultaneously.
- the trust database from gnupg is not documented, so RetroShare cannot import it. This comes from the fact that
the GPG standard (RFC4880) asks explicitly not to export trust information. So RetroShare has it's own
trust DB shared by locations. This means you need to re-trust people. Sorry for that!
- at start, if no keyring is found, RS will propose to copy the gnupg keyring to use your existing keys. Clicking on
"OK" will do the copy, and you should find back all existing locations, except for DSA keys.
- locations for which the suitable keypair is not in the keyring will not be displayed in the login window
- locations for which the suitable keypair is not a RSA/RSA key will not be displayed. RetroShare does not
support DSA/Elgamal keypairs yet.
- a key import/export exchange function has been added in the certificate creation window (you go there from the login
window by clicking on "manage keys/locations". This allows to easily create a new location with the same pgp key on
another computer. To obtain a suitable keypair using gnupg, you need to concatenate the encrypted private key and the
public key into an ascii file. This can be done using:
gpg -a --export-secret-keys [your ID] > mykey.asc
gpg -a --export [your ID] >> mykey.asc
- importing a key with subkeys in not yet possible. Please remove subkeys before importing.
- The code has been tested for a reasonnable amount of time, but it's not possible to prevent some new bugs
to appear. Please report them asap supplying: call-stacks if possible, and terminal output. In particular,
openpgp has some assert()'s that should not be triggered unless RetroShare is calling it in an improper way.
Internal changes
================
- a specific component, PGPHandler, takes care of the interface between openpgp-sdk and RetroShare
openpgp-sdk is c-code, with it's own memory management, which has been kept well separated from
RetroShare.
- GPG Ids are now a specific class (not a std::string anymore) for code consistency reasons. As strings are
still used in many places, this requires a few conversions. In particular, AuthGPG takes strings as
function params and calls GPGHandler with the proper PGPIdType class. In the future, RetroShare should
only use PGPIdType. The same will be done for SSL ids.
- signature cleaning is still handled by the Retroshare built-in function, not by openpgp, but we will
do this later.
Still to do
===========
- DSA needs subkey handling, since the encryption is performed by a Elgamal subkey. Not sure this will be done.
- GPGIds/SSLIds cleaning (meaning replace strings by appropriate types). Lots of confusion throughout the code in retroshare-gui in particular.
- key removal from keyring. This is a challenge to keep locations synchronised.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5293 b45a01b8-16f6-495d-af2f-9b41ad6348cc
added new nxs net test hub code for testing nxs netservice (fails at the moment)
also a completed definitions and other related compile time issue due to incorrect inheritance statements
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5290 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Modified dummy data so new comments / votes get added in (testing background processing).
- exposed fns for GUI rankings & testing.
- corrected order of extraction from ranking Map.
- fixed up debug output.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5280 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Defined expected parameters for GxsGroups (see comments in rsidentity.h)
- Added Various #defines for Groups / Msgs (again in rsidentity.h)
- Converted new Group / new Msg into async "token" calls, returing MetaData.
- Refined Grp/Msg Status Flags... similarly to how Forums used them...
Expect UNREAD & UNPROCESSED flags to be set for a new msg,
and UPDATED flag to be set for the corresponding group.
There is flexibility for services to add their own flags too.
- removed groupsChanged(). This can alternatively be implemented using.
getGroupList(opts.Status == UPDATED)...
- refined SubscribeFlags in a similar manner.
- Added "ServiceString" to Group/Msg MetaData. This is freeform cache
storage for service to use... currently p3Posted uses it to count Votes.
- Added MsgStatus & SubscribeFlag filtering to Cache Requests.
- Implemented these filters in GxsDataProxy (no efficient yet!)
* Cleaned up all 6 new Cache Services to conform to new interface.
* Removed old interface code that was #ifdef'd out.
* Implemented Basic Ranking algorithms for p3posted:
- Background process to process new votes/comments.
- getRanking(token) interface call.
- Intercept StatusRequests, etc to hide internal data requests.
- While the basic code is complete, it needs much testing / tweaking.
- Should shift work to a seperate thread.
- Comment Ranking has still to be done.
- Interfacing with GUI not yet attempted.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5276 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Updated dataservice tests and fixed subsequent bugs
added bug fixes for RetroDb and fixed postability issue (removed map.at use)
Added:
Data access module used as token service
gxs service backend (RsGenExchange)
RsPhotoV2 which is a modification to deal with different interface provided by RsGenExchange
also added subsequent p3photoserviceV2
NxsTestHub to help with testing nxsnetservice (RsGxsNetService is not yet working)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5274 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added p3Posted service. This is a *better* Links Cloud, based on the new Cache system.
* Fixed p3GxsService retrival of Thread / Children messages. (for Forum support).
* Added Dummy Data for testing Forum integration.
* switched on both these services in libretroshare
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5268 b45a01b8-16f6-495d-af2f-9b41ad6348cc
timestamp has been added to grp sync item
updated data service and grps to deal with this
added msg and grp meta types which serves to hold meta data of grp and msg
removed observer temporarily
updated nxs item tests, need to update data service tests
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5256 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Fixed retransmit algorithm. Much more closely matched to TCP standard: http://tools.ietf.org/html/rfc2988
- This increases retransmit timeouts, and reduces the number of packets resent.
- Added better debugging for retrans/close as separate #defines.
- Further testing is required ;)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5252 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- p3bwctrl.h/.cc & rsbwctrlitems.h/.cc
- New Interface in pqihandler to extract the data.
- New Interface in rsconfig to display in GUI.
- Added extra debugging in pqistreamer for catching big outqueues.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5241 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- added PublishTS and AuthorID to GropuMetaData.
- added Mod & Set Flags to PhotoData. (mainly for the GUI).
- added "isNew" parameter to sumbitPhoto/Album calls.
- support modifications to Photos.
- improved Photo Thumbnail handling. (still not right).
- added LATEST msg search in GxsService.
- added ATTRIB flags to rsphoto.h
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5238 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- unchecked chunks are not made available to swarming sources, not saved as done.
- force check now uses the simple method to put all chunks in checking mode
- force checked files can be cancelled (finally!)
- improved display (use red for active chunks, yellow for checking)
- cache file are not using chunk checking (assume_availability=true)
The code still contains the #ifdef. It should be removed soon if everything works ok.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5235 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Added missing check of file pointer in PGPHandler::decryptTextFromFile
- Added missing fclose of the ssl passphrase file in RsLoginHandler::getSSLPasswdFromGPGFile. Is this still needed, because PGPHandler::decryptTextFromFile does the same check?
- Fixed possible memory leak in ops_decrypt_memory.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-OpenPGP@5222 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Defined a generalised Group/Msg retrieval interface (RsTokenService), which is defined in rsidentity.h
- Defined MetaData for both Groups and Messages (not finalised yet).
- Implemented a general Data Backend for Local Testing of interface - inside p3gxsservice.cc
- Modified services to use this temporary backend.
- Added Wire and ForumV2 services.
Still lots to do:
- work out request options.
- finalise metadata.
- group permissions.
- identities
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5219 b45a01b8-16f6-495d-af2f-9b41ad6348cc
added orig msgid and removed sign from nxsmsg, renamed nxsitems more appropriately
added more code to nxs net service
removed msg versioning from data service and added extra msgField
modified nxsitem test and datastore service appropriately, all pass
added serialisation of transactions and added transaction number to nxsitems
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5215 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Fixed crash after the second call to RsInit::InitRetroShare when keyring does not exist.
The instance of AuthSSL was created twice and AuthGPG was deleted without stopping the thread. Stopped the AuthGPG thread on exit of RetroShare.
- Added the correct path to the keyring for Windows in RsInit::copyGnuPGKeyrings.
- Changed the detection of the portable version on Windows from the file "gpg.exe" to the file "portable".
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-OpenPGP@5211 b45a01b8-16f6-495d-af2f-9b41ad6348cc
As opposed to the previous ones, this ends up with a massively complicated set of data calls to build
the tree of modifications... It suggests the need for a dbase cache of MetaData for both Groups and Msgs.
- modified rsphoto/p3PhotoService interface to conform to 'developing style'
- shifted fakeprocessrequests() to p3GxsService - as its generic.
- added requestMsgRelatedList() request to allow searching for OrigMsgId, MsgVersions + LatestVersions.
- added RsTokReqOptions class to allow fine tuning of requests.
- major changes to p3WikiService to conform to new standard.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5204 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Moved notify of lobby nick name change from the gui to p3ChatService.
Added missing mutex locks for p3ChatService::_default_nick_name.
Recompile needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5184 b45a01b8-16f6-495d-af2f-9b41ad6348cc
updated rsnxsitems with discrete msgs and grp item rather than collection of msgs/grps
added flags header file
added first declaration of implemented genexchange service (client API interface)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5180 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- tunnels can borrow data chunks from only slower tunnels, to prevent blocking fast tunnels
- tunnels can handle up to 50 data chunks at once instead of 5
Multi-source transfers are generaly faster and more stable.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5156 b45a01b8-16f6-495d-af2f-9b41ad6348cc
RS_CHAT_LOBBY_EVENT_PEER_CHANGE_NICKNAME is send, when changing nickname, so the blocklist can be updated (in future).
This will never wort for 100% as discussed in the developer forum, but should stop the most spam.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5150 b45a01b8-16f6-495d-af2f-9b41ad6348cc
nxsitems not tested yet
renamed retrodb src file to .cc regular librs naming convention
wrote deserialisation section of nxsitems, need to write print and clear rsitem base functions
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5144 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Show "RetroShare" as sender of system messages to myself.
Added new quick view in MessagesDialog to filter system messages.
Changed RetroShare link in friend request message to certificate.
Added new subject image for the system messages (defnax).
Removed not used notify in message service.
Recompile needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5129 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- updated base forward probabilities to larger values
- used a minimum FP to 1/nb_connected_friends instead of 0. This is the larger non-explosive value.
- changed tunnel management time to 2 secs instead of 1, setting the overall number of TR/s emmitted
for all downloads to 0.5 (Should reduce the TR load for the whole network by a factor of 2).
With these settings, someone with N friends should receive at most N/2 TR/s at depth 1, which corresponds to
N/2*50 B/s. To reach the limit of 1500 B/s, one needs to have 60 connected friends downloading. Accounting for
friends at multiple hops, having more than 30-40 friends is likely to be unefficient, although it will not
stop the network completely as it did before.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5110 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* fixed utf8 in dropping links to channels
* fixed pasting cert links in the friend list
* added code to allow pasting GPG certificates missing a newline at the end.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5064 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- set auto check of shared directories to 15 minutes
- set time to idle mode to 5 minutes
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5041 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- handled backward compatibility by keeping/sending old LobbyList item. Should be remove in the near future.
- removed constraint to have at least one friends invited when creating a new lobby.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5024 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Validated chunks are shared to other peers. Force check is now very simple since it just turns all chunks into "needs checking" mode
and sums are asked to sources. Sources maintain a temporary cache of chunks. Since sums are requested sparsely, this should not
affect the sources in terms of performance. We can still imagine precomputing and saving sha1 of chunks while hashing them.
For backward compatibility reasons, the following has been setup *temporarily* in this version:
- unvalidated chunks are still considered as already obtained, and are shared and saved
- force check has been disabled
- final file check is maintained
- in case of file fail, the old checking mode will be used.
All changes for next version are kept in the define 'USE_NEW_CHUNK_CHECKING_CODE' that will be made the default in a few weeks.
At start, I expect most chunk to stya yellow during download, until most sources are able to provide chunk hashs.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5019 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Moved update of the friends from QTimer to signals.
Combined p3LinkMgr::getFriendCount and p3LinkMgr::getOnlineCount and moved to p3PeerMgr.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4986 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- improved VOIP plugin to add RTT statistics tab to RS gui.
- added comments in rsplugins.h
- added big tooltip in transfers that would be stuck in checking... mode
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4979 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- made config page system more automatic, to allow addign config pages from plugins
- added (disabled) checkbox and function to allow all plugins for development
- added config page methods to RsPlugin class
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4957 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added -Wextra to the Windows compile.
Added new define in libbitdht for snprintf and fprintf to proper handling of "%ll" under Windows.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4951 b45a01b8-16f6-495d-af2f-9b41ad6348cc
in particular what the features are:
- search
- on-demand : for messages
- all data received via call back from gxs runner (RsThread)
Added functions are:
remoteSearch
createIdentity
and removed a few data request functions
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@4949 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- corrected 2 potential flaws of swarming causing request of unavailable data (This should normally be taken care of on the server side!)
- improved swarming test code with fault simulation
- only ask CRC32 maps to peers that have a complete file.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4947 b45a01b8-16f6-495d-af2f-9b41ad6348cc
The forum/channel news feed is removed when the user reads the message in forums/channels.
Recompile needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4927 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- added check for RS_NET_MODE_EXT instead of RS_NET_MODE_TRY_EXT... as trys aren't used in p3PeerMgr.
- removed tryMode from external interface - as this data is not available anymore.
- Removed setting this parameter in p3peers.cc
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4919 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Updated English Email Invite (sorry guys, you'll have to redo translations).
- Set OSX default style to "Cleanlooks" - as AQUA style hides some windows.
- Updated Version strings to V0.5.3a. / 4874
- Fixed missing headers for plugin manager.
- Disabled ZEROCONF for OSX.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4874 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- adding a time stamp to lobby events (new item tag)
- controllign time stamp of lobby msg and event: drop packets if time is older than cache duration.
- moved connexion challenge code to lobby management loop
- added new type of lobby invite to handle connexion challenges and avoid false invitations in the GUI
New lobby event format is not backward compatible -> "peer typing" and "peer joined/left" will need
the new version. Messages are still compatible)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4859 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- added checkbox in ConfCertDialog to allow adding/removing signatures
- enabled again key signature button in friend wizard
- RS cert links now use small keys.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4836 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- This will only effect people who upgrade from a very old version.
- Other people will have to switch it on manually.
- Default is 0 friends, 1 FOF & 1 General @ 1kb/s... max 4kb/s usage per peer.
* Switched off lots of debugging.
* Bugfix for natassist (zeroconf returns 0.0.0.0:0 when its doesn't work).
* Logged IP Addresses for Failed incoming connections.
* Hacked IP address into the NewsFeed notifications (ugly).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4827 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added limit of 10kB for Certificate size. If it is bigger - discard certificate.
* Remove certificates for slow / trickle connections (for Relay connections).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4822 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Certificate transmission will be disabled until we have worked out how to export Minimal Certs.
* Disabled check for gpgcert text in p3disc.
* Disabled creation of GPG Cert in AuthGPG.
* Added extra error code to pqinetwork.
This change will mean that friends of friends certificates will no-longer be shared if you have discovery on.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4821 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added DataRate accounting to Relay and Dht.
* Rates are exposed through rsDht.h interface.
* Added LastIncomingTS() to pqistreamer.
* Turned HeartBeat reset() into a warning.
* Added NoPacket in 60 sec reset().
* Minor typos/errors corrected.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4818 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Hid lots of DEBUG_BASIC behind #defines in pqissl.
- Added PeerID() in many places, so grep for a single peer.
- fixed linkMgr output so we can tell a FAILURE vs FAILED ATTEMPT
- reduced most logging to a single line.
- print out of errno in HumanText for SSL errors.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4814 b45a01b8-16f6-495d-af2f-9b41ad6348cc
In this case, don't cancel the old one - just keep going!
This should fix the issues associated with cache restarts and frequent peer disconnects.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4808 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added an own ui for the ChatLobbyDialog.
Saved settings of the ChatLobbyDialog.
Changed parameters of RsStatus interface from "std::string" to "const std::string&"
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4806 b45a01b8-16f6-495d-af2f-9b41ad6348cc
that are invited.
- added auto-clean of nicknames
- added auto-clean of public lobby records.
Warning: this commit breaks one small bit of compatibility:
* direct invitations from new versions will pass accross versions (private lobbies will need the new version)
* but people can still join public lobbies accross versions.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4801 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* new classe p3zcNatAssist
* moved some common ZeroConf functions / definitions around.
* moved virtual tick() to parent class: pqiNetAssist
* added zcNetAssist section to makefiles. (active for OSX build)
* setup switch between p3zcNatAssist & upnphandler in rsinit.cc
NOTE: Still to test network restart, etc, and correct exchange of external Ip Address.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4800 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Changes to support Relays.
* added p3BitDht::addKnownNode() so that DhtIds can be used instead of SslIds.
* switched from bdStdDht() functions to use bdModDht().
* made DhtFunctions a class variable.
* added function to modify NodePerBucket() parameter.
* Bugfix for LinkType. peerConnectAddress.flags was not initialised.
* Extra debugging of LinkType data (use LINKMGR_DEBUG_LINKTYPE).
* cleaned up udprelay output.
* Added Compile Rules to libretroshare.pro for building LocalNet Testing Version. (testnetwork)
* Added NumQueryNodes() function to bdDhtFunctions.
* Switched bdquery.cc to use bdNumQueryNodes().
* Extended bdStdDht class to bdModDht to allow NodesPerBucket to be modified.
* Fixed up Connection Fail Callback for Relay Servers.
* Added Extra debugging for Proxy Connections.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4796 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* added p3BitDht::addKnownNode() so that DhtIds can be used instead of SslIds.
* switched from bdStdDht() functions to use bdModDht().
* made DhtFunctions a class variable.
* added function to modify NodePerBucket() parameter.
* Bugfix for LinkType. peerConnectAddress.flags was not initialised.
* Extra debugging of LinkType data (use LINKMGR_DEBUG_LINKTYPE).
* cleaned up udprelay output.
* Added Compile Rules to libretroshare.pro for building LocalNet Testing Version. (testnetwork)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4795 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- added new notifier to p3ChatService
GUI:
- list all public and private chat lobbies
- added subscribe/unsubscribe
- added new basic widget ChatTabWidget and use it in PopupChatWindow and ChatLobbyDialog
- added a tabbed dialog for every subscribed chat lobby
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4782 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Merging Dht Relay improvements into the trunk. These changes should finally make relays functional.
There are still some service changes required to reduce the traffic over relays.
Summary of Changes
---------------------
* Changed the way proxy/relay peers are selected in bdConnection. (needs more work).
* Added LinkType to peer info in p3LinkMgr & rspeers.h interface.
* Added getConnectionType() to p3PeerMgr. This defaults to FRIEND for the moment.
* Provide information about Bandwidth, Transport and Peer Type via LinkType().
* Added RateCap() to limit traffic over Relay connections.
* Set Internal Rate to 75% of Relay Limit to account for transport overhead.
* Added various #include "util/rswin.h" to fix compile errors with standard ssl package.
* Removed Local variables (mConnectProxyAddr, etc) which were hiding Class Variables.
* Cleaned up bits in pqissl.cc and p3linkmgr.cc
* Increased UDP Relay Packet size (max transport of 1400 bytes per UDP packet)
* Modified checkRelay() to use Low Pass Filter to calculate Relay Bandwidth.
* Improved udprelay debugging.
* increased (x2) Relay Lifetimes - this is so that enough useful data can be transported (1meg).
* Added LOCALNET_TESTING code to rsinit.cc. This allows Port Restrictions to simulate firewalls.
* more debugging and minor bugfixes.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4780 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Disabled lots of debugging.
* Disabled LOCAL test mode in udpstunner, rsinit
* Enabled BadPeer checking in bitdht.
* Restored normal timeout periods for connection attempts.
* Restored normal connection levels for dht status.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4779 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Improved Relay Status Output & print when checkRelay() is called.
* initialise timer variable (mMinuteTS) - was causing checkRelay to never be called.
* switched to 10 second calling of checkRelay().
* Increased RELAY lifetimes (x2). now GENERAL = 1 hr, so they can at least transfer 1 meg (minimum block size)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4777 b45a01b8-16f6-495d-af2f-9b41ad6348cc
of the overhead associated with TCP and Relay connections:
* The Internal rate is calculated based on transmitted data (a reliable stream).
* The Relay rate is calculated at UDP packet level and is x1.1 - x1.2 higher than internal rate.
The Relay will drop the connection if peers exceed specified level - so best to leave some head room.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4773 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added LinkType to p3LinkMgr => exposed via rspeers.h
* Added ConnectionType to p3PeerMgr. This is dummy default to FRIEND at the moment.
* Flag bandwidth limited Relay links as such.
* Switched DNS Address connect to in front of historical addresses.
* Reverted Flags in p3LinkMgr to what they were.
* Added LinkType Flags to rspeers.h
* removed getConnectFlags() as it was a bad way to do things.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4769 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Adding more detailed flags to each connection.
* Cleaned up unneeded stuff from p3LinkMgr.
* Added rswin.h includes before openssl - allows compilation using std Win OpenSSL.
* Added getConnectFlags() to Net Base.
* removed net_attempt and associated obsolete variables from pqissl
* Made NetBinInterface protected in pqiperson (is this okay?)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4767 b45a01b8-16f6-495d-af2f-9b41ad6348cc
NB: Reverse Most of these changes - before adding to Trunk!!!!
* Added missing BitDht callback functions for test/example code.
* Switch tests/example to OSX compile.
* DISABLE_BAD_PEER_FILTER (as it doesn't like local net)
* Reduced Minimum Peer Counts for DHT to be considered active.
* Added LOCALNET_TESTING to rsinit.cc
- new Commandline Option -R <lport-uport> to restrict UDP ports.
- Enables LocalNet in UdpStunner.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4756 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- added generic methods and items for bouncing generic objects through lobbies
- added handling of peer typing status
- proper handling of peer join/leave lobby
- added sub item ids to lobby messages to allow proper message splitting
- made 2 different message splitting methods for normal chat vs. lobbies. In v0.6, we'll have to handle all messages the same way.
- added parent id to RsChatLobbyMsgItem, to allow threaded chat.
- added possibility to make a lobby public/private (not yet fully working)
- added items for requesting/exchanging list of public lobbies at friends' (not yet fully working)
- major cleaning of p3chatservice.cc
Next move:
- gui for listing friend public lobbies, joining them, etc.
- load/save of persistent lobbies.
- autoremove of inactive lobbies
Warning: lobby message items of this version are incompatible with previous versions. It won't crash, but
messages will not pass through.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4755 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Added Timeouts for Resolve and QueryIP, as these can continue indefinitely.
- Added more debugging.
- rotated port number using ntohs().
- Filtered Self.
- Allowed Other SSL IDs of Self to connect.
- Fixed QueryIP to use hosttarget instead of servicename.
- fixed Id order in mPeerMgr->addFriend().
- fixed p3ZeroConf initialisation call.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4752 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Modified UdpRelay handles the counting...
now each Relay Class has a bandwidth limit,
and you can drop down to a lower class - if your one is full.
This ensures that the desired bandwidth is kept, and allows more friends to use the relays.
* Added Interface in p3bitdht.
TODO: Test this stuff!
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4728 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- registers oneself, browses and resolves services.
- Lots still TODO:
- parse TxtRecords.
- Track peers.
- feedback to libretroshare
- etc, etc.
Enabled ZeroConf in libretroshare.pro & rsinit.cc. Compiles and runs on OSX.
Added RelayHandler to Dht, to enable external control of Relays.
Marked pqiAssist Interface for changes... will be revamped with ZeroConf.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4727 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Fixed small hangs of RetroShare by removing the core lock in RsServer::ConfigGetDataRates. Is that needed?
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4725 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Summary of changes:
* Switched on Local BadPeer DHT Filter.
- This will remove any peer detected to be spoofing yourself or your friends.
- This list is also shared with you friends. (in Test Mode).
* Added Cleanup of BadPeer Filter.
- Instead of permanent ban, peers are be banned for 6 hours.
- bdManager periodically calls this - which prints out ban list too.
* Added Checks against spoofing to UdpStunner.
- Throw away Stun Results where remote_addr = reported ext_addr.
- Added extra checks to ensure that the same Ext IP is returned, before reporting.
- accept BadPeer List from DHT BadPeer Detection.
* Changed BanList Service Id from Test ID to Real ID.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4718 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added UdpStunner::dropStunPeer() code to remove bad peer from stun list.
* added calls to UdpStunner::dropStunPeer for BanLists going to/from DHT.
* added DEBUG_BANLIST_CONDENSE to remove unnecessary debug.
* Improved UdpStunner::status() print out of stunlist.
* Added extra check to throw away stun reports where remote_addr == reported ext_addr.
- This was causing peers to get the wrong IP addresses.
* Modified UdpStunner ExtAddr checks to make sure the IP addresses match.
* Changed BANLIST service Id to from Test ID to real ID.
NOTE: These are stop-gap methods to avoid the wrong Stun reports.
A more robust scheme must be implemented. I'd expect that it would
involve a strict initial check to establish your IP address...
(e.g. require 4 peers to confirm it, allowing for some fake entries)
After this we can have a weaker check ensuring IP address matches.
If we detect a likely REAL change of IP address - drop back to requiring
a strick check again.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4717 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- FT_TM_DOWNLOAD_TIMEOUT: 10 -> 20 secs (RTT limit of 10 secs is too low -> transfers in long tunnels kept switching between active and inactive)
- INACTIVE_CHUNKS_CHECK_DELAY: 60 -> 240 secs (Chunks are kept longer before beign cancelled, which is now affordable)
- MAX_TIME_INACTIVE_REQUEUED: 60 -> 120 secs.(Transfers a kept longer before being re-prioritized in queue)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4707 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Summary Of Changes:
* Reduced Default DHT Message rate from (50msg/sec) => (5msg/sec)
- Searches now take longer, but it should make crappy firewalls happy.
* Added Interface to allow this rate to be dynamically changed.
* Bugfixes for p3BanList: removed internal IPs from Lists, fixed AddBanPeer() logic bug.
* Disabled p3Dsdv, after brief test.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4705 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Full Changes can be extracted from logs associated with the following checkins:
r4674 r4678 r4679 r4680 r4681 r4684 r4686 r4687 r4697 r4698 r4699
Summary of changes:
DHT Improvements:
Added knowledge of Friends / FoFs and Relays to DHT.
Added bdFriendList class to store this information.
Added Checks against known Peer:IP information to detect bad peers.
Bad Peer Checking is in Test Mode Only for the moment,
New Interfaces to exchange above information with libretroshare
Cleaned up various compiler warnings.
libretroshare Improvements:
Added p3BanList Service and DataTypes to exchange Bad Peer information.
Added Plumbing to get info from network to DHT and back.
Supply Friend List from p3LinkMgr
Supply Friend of Friend List from p3Disc.
Added p3Dsdv Service and DataTypes for NetworkWide Routing (Testing Mode).
Various BugFixes.
Patch Manual Forward mode to preserve user selected Port.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4700 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Store all possible routes (will be useful later!)
* Periodically cycle through and choose the most stable one.
* added ValidSince field... for tracking age.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4697 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added p3BanList as a service.
* Added interfaces to communicate addresses.
* Added debug to p3BanList.
* Fixed several bugs in the AddEntry/Condense
* Fixed Mutex deadlocks.
Improvements to Dsdv code too.
* Added p3Dsdv as a service.
* Added Function to create a TEST service for routing.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4687 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Added missing Mutex protection in p3BitDht.
- Added p3BitDht::addKnownPeer() to communicate with libbitdht.
- Disabled placeholder versions (addFriend/AddFriendOfFriend)
- Added netAssistKnownPeer() libretroshare interface.
- Added calls to netAssistKnownPeer() from p3disc and p3NetMgr.
- Check for NULL ptr in p3NetMgr before calling p3PeerMgr.
- Added FIX to maintain MANUAL FORWARD port (untested!)
- Removed some compiler warnings.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4681 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- removed dependency of mRateIncrease into measured rtt -> would cause very slow transfers through long tunnels
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4671 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- servers now compute the map in a separate thread
- CRC32Maps are kept in cache for 30 mins
- CRC32Maps requests cannot be used to overflood a server anymore since their number is limited.
- Transfer modules now send keep alive packets to maintain tunnels when asking for a CRC32Map
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4661 b45a01b8-16f6-495d-af2f-9b41ad6348cc
re-organises (e.g. defragments) data such that
- when the DL is finished, the file is in the correct order (no need to re-order it)
- during the DL, only the n*_chunk_size first bytes of the partial file are written, where n is the total number of downloaded chunks.
- the total amount of copy operations does not exceed the total size of the file. In practice, it's much lower.
That suppresses the lag when downloading large files due to writing isolated chunks in the middle of the file.
Next:
- integration into ftFileCreator
- load/save in ft_transfers
- retrocompatibility with existing transfers.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4658 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Now the history is saved encrypted. Please delete all files with "chat*.xml" in your profile folder.
Added new config p3HistoryMgr and interface p3History.
Added new option to limit the count of the saved history items.
Added new simple html optimizer "RsHtml::optimizeHtml" to reduce the size of the html strings.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4623 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Compilation for FreeBSD.
* Notes that MT is not cryptographically secure.
* modified sorting of DHT Window.
Only one change that I didn't commit:
bitdht {
- LIBS += ../../libbitdht/src/lib/libbitdht.a
- PRE_TARGETDEPS *= ../../libbitdht/src/lib/libbitdht.a
+ LIBS += ../../libbitdht/src/libbitdht.a
+ PRE_TARGETDEPS *= ../../libbitdht/src/libbitdht.a
}
As this would have broken compilation on the other platforms.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4619 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- added a lock into ftTransferModule::recvFileData() (Crash reported by Costa due to storing data in a deleted transfer module)
- changed names of functions in ftTransferModules to locked_* when appropriate (helps debugging)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4612 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- set default of the signature checkbox in ConnectFriendWizard to disabled
- set the initial option for the download directory to network wide only
- set the default of a new shared directory to network wide
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4578 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added new buttons to SecurityItem to add/remove the peer and view peer details.
Added new call to notifyListChange with NOTIFY_LIST_FRIENDS in AuthGPGimpl::AllowConnection.
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4572 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Moved ProfileView and ProfileEdit to the folder unfinished.
- Removed "location:" before the ssl name in FriendsDialog and MessengerWindow.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4567 b45a01b8-16f6-495d-af2f-9b41ad6348cc
I've reduced the frequency, and increased the age for removal.
* Cleared every 31 minutes, first cleaning after 1 hour.
* old peer is no contact for 90 days.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4547 b45a01b8-16f6-495d-af2f-9b41ad6348cc
=> Giving new peers a chance to connect.
* Fixed missing return in p3PeerMgr::removeUnusedLocations()
* moved RTT defines to top of file, and increased to 150 results.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4546 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* WARNING is printed out & LOGGED if it takes more than 0.2 Seconds to complete.
-> This happens occasionally, need to watch it.
-> This is one of the things that kills connections.
-> Ideally want to get the cycle down to 0.05 seconds.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4544 b45a01b8-16f6-495d-af2f-9b41ad6348cc
the periodical call of cleanupUsedLocation, which was reloading all the GPG Keys - for each cleanup Key.
This required cleaning up various bits (AuthGPG, rsPeers, p3Disc).
* moved rsPeer::cleanUnusedLocations => p3PeerMgr::removeUnusedLocations();
- made the function light-weight, no loading of GPG Keys.
* moved getSSLCertsFromGPG() fn from rsPeers => p3PeerMgr
* added p3PeerMgr::removeAllFriendLocations() to cleanup when removing a GPG Friend.
* cleaned up rsPeers, made addFriend() / removeFriend() universal functions.
* remove bool p3Peers::setAcceptToConnectGPGCertificate(const std::string &gpg_id, bool acceptance)
* removed all Dummy SSL Ids. - There is no need for this!
* Major changes to p3disc to correct FLAWED logic. (needs more testing).
* removed as many dependancies on retroshare/rspeer.h as possible.
* changed p3turtle dependancy on rsPeers ==> mLinkMgr.
* added p3LinkMgr::getPeerName() and p3PeerMgr::getPeerName()
* added return 1 to pqissllistener::closeConnection().
* removed unused code from AuthGPG().
* removed storeAllKeys() calls in AuthGPG::AllowConnection().
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4542 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
* SSL_Peek is called on new connections, and we only accept it when there is data.
* This should stop some of the unstable connections caused by wrong IP:Ports
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4533 b45a01b8-16f6-495d-af2f-9b41ad6348cc
It was using the same port as the DHT, and switching to a Random one, on its own.
* Added debugging for net reset.
* Added further debugging for ssl (reset + killing existing connections)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4530 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Measures Lag and Clock offset, by pinging peers periodically.
* added interface so the results can be plotted.
* added serialisers for ping/pong data types.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4519 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* extract external address from DhtStunner if possible.
* added p3PeerMgr::UpdateOwnAddress(), which should only be called by p3netmgr.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4512 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* set PortForward in NetStateBox when the Network has been setup.
* add GeneralConfig to rsConfig external interface.
* enabled ADVANCED configuration option.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4500 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- 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
* 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
* 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
* 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
* 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
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
* 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
* 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
* 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
* 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
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
* 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
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
* 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
* 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
* 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
* 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
* switched off lots of debugging, and removed "common" messages, so we can focus on the actions.
* Added extra debugging focused on the connections.
* Removed "lastconnect" from p3LinkMgr.
* added p3PeerMgr::updateLastConnect() fn, so this parameter will be stored.
* added calls from p3LinkMgr at connect and disconnect.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4424 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Split p3bitdht_peers.cc debugging in two. Hid Id Translation debug (that code is fine)
* Added initialisation of p3bitdht peer data structure (using values from peernet).
* Added BITDHT_QFLAGS_UPDATES flag.
* Added Tick() interface to NetAssistConnect interface, tick it from p3NetMgr.
* FIXED OLD BUG: netAssistFriend was not being called from p3LinkMgr::connectResult() this meant all peers where being searched for.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4423 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Improved debugging messages for p3linkmgr & p3netmgr, switched on debugging.
* added ids to p3bitdht peers.
* added datatypes to RsDht peers data structure, and translate the data.
* add const to PeerConnectStateBox::connectState().
* cleaned up p3LinkMgr::locked_ConnectAttempt_AddDynDNS() a bit.
* filled in friend data types in p3LinkMgr (allows connections now!)
* added printConnectState() in p3LinkMgr
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4421 b45a01b8-16f6-495d-af2f-9b41ad6348cc
conflict in unix and windows style directory names
led to cleaning of remote and local directories in
Cachestrapper::loadlist()
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4403 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* added retroshare/rsdht.h
* extended p3bitdht to provide RsDht interface. (p3bitdht_interface.cc)
* added UdpRelay to networking stack.
* started expansion of p3bitdht to handle connections.
* added <string> header to rsthreads.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4399 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Added configuration saving for plugin manager and serialization methods
- added a list of accepted plugin hashes
- added plugin widget for each plugin in settings, to allow enabling/disabling plugins
- updated LinkCloud plugin to new rsPlugin class
- put the addconfiguration for plugin manager in rsinit.cc a bit earlier to allow to load
the list of accepted hashes early enough
- added icon for disabled plugins
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4393 b45a01b8-16f6-495d-af2f-9b41ad6348cc
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
(caused by not marking cache opt loaded files as local or not)
also missing own-msgs bug caused by not accounting for msgs created by users
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4374 b45a01b8-16f6-495d-af2f-9b41ad6348cc
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
the TOU interface no longer supports multiple sockets..
all the connections are attached to the same UdpStack.
Multiple sockets will be re-introduced in the next TOU iteration.
At that point the remaining tests will be fixed up.
* tweaked regress.mk
* added scripts to launch tests.
* replaced UdpLayer with UdpStacks.
* only two proper tests: udp_server (passes), test_tou (fails)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4341 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added Old Cache Storage... so these can be retrieved.
* Connected up the CancelCacheFile() -> FileCancel.
Other Changes.
* Removed ipaddr = 1 bug (thought someone else had commited this earlier???)
* added #ifdefs to remove debugging output in p3BitDht.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4330 b45a01b8-16f6-495d-af2f-9b41ad6348cc
serialiser:
added tests for rsconfigitems
added regression reporting for tlvrandom_test
fixed rstatusitem_tests
fixed tlvbase_test2 tests, any fix rstlvipaddrv4 from this revision should not break regression
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4320 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Fixed compile under Windows.
Removed CloseHandle of GetModuleHandle.
Added missing return when the function entry of the plugin is NULL.
Fixed checking for the extension ".dll".
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4287 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- ported LinksCloud to a new plugin, and removed it from main sources
Next moves:
- add gui for managing plugins
- handle windows compilation
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4275 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- corrected bug that would wipe out the cache file every other start
- missing root directories are not discarded anymore, but kept empty, unless the user really removes them
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4271 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- used "const std::string&" for the parameters
- used "std::map" for the read status
- removed useless variables
Added new define DEBUG_FORUMS in ForumsDialog.cpp.
Added function to generate mass data for the forum messages.
Fixed german language for the FriendsDialog.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4236 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Removed extra "/" of the filename (e.g. "E://") of the hashed file when sharing a whole drive.
Recompile of the gui needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4200 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- sending large messages now works, thanks to RsChatMsgItem splitting (not 100% backward compatible, but avoids crashing)
- removed crash due to dynamic_cast onto a deleted pointer.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4187 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added new command line parameter "-r retroshare://..." for adding links to the registered running RetroShare.
Recompile of the GUI needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4156 b45a01b8-16f6-495d-af2f-9b41ad6348cc
also added logic to deal with case where auto dl has been disabled then re-enabled after a manual download
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4137 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added new button in ConnectFriendWizard for cleaning the certificate.
Fixed cleaning:
- added blank line after the armor header
- moved the checksum to a new line
Recompile of the GUI needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4134 b45a01b8-16f6-495d-af2f-9b41ad6348cc