This includes a generic CommentService, which will be used by other Services.
+ Bugfix, gxs service threads were started before global variables were set.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6186 b45a01b8-16f6-495d-af2f-9b41ad6348cc
To achieve this I created second interface RsGxsIface which RsGxsGenExchange derives from, and RsGxsIfaceImpl (renamed RsGxsIfaceHelper) now takes an instance of this instead so these interfaces don't exposed the RsGenExchange and its underlying types.
The other stuff is simply definitions and type aliases required for the front-ends to work (RsGroupMeta, RsGroupId, etc) and I've moved gxs flags also.
This is a good idea as it seem much more clear what's available to a GXS service (apart from RsGenExchange public methods).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6166 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This also switches to alternative test data path - to ensure it will be empty.
Fixed bug in p3idservice related to dummy id creation.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6114 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This brings a huge amount of goodness into the trunk,
but there is still a big chunk todo before it can be released.
* GXS Backend.
* GXS Services:
- Identities.
- Circles
- Photos
- Wiki
- GxsForums
- Posted.
* SSH no-gui server.
See branch commits for more info.
To switch on GXS stuff, enable CONFIG += gxs
in both libretroshare.pro and retroshare-gui.pro
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5996 b45a01b8-16f6-495d-af2f-9b41ad6348cc
add new, and hot ranking, and fixed top ranking for posts (not comments yet)
top ranking decay period set at 4 seconds for testing
enabled ranking posts
fixed comments generation
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5989 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Provide CircleList, and Circle Details via rs interface.
* Added debugging to help check its all working.
* disabled caching of localIds - as this just causes cache to be flushed in p3IdService
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5987 b45a01b8-16f6-495d-af2f-9b41ad6348cc
added ranking retrieval in gui
removed locks from TokenQueue
refactored gxs p3 pointers in p3face header file
and gxs services now shutdown correctly using join(led to bad segfaults on shutdown)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5972 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Switched from own token member to the new methods on TokenQueue.
- Reactivated thread from the old forum to fill the messages.
- Load all messages at once.
- Added processing of missing messages.
- Fixed new/read/unread status.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5952 b45a01b8-16f6-495d-af2f-9b41ad6348cc
commit msg from last:
Fixed minor bug in group creation
msg now set to unread and unprocessed on creation (added read flag in gxsflags.h also)
Got topic and post generation working
Additional changes:
Voting update now working
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5951 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- record which friend participates in a lobby even after they unsubscribed. The lobby list that is sent to these
friends contains the privaye lobby as well. In practice, people jsut need to be invited once to a private lobby.
Afterwards, they get the lobby in the list of nearby lobbies and can join by clicking on it.
- added new item RsChatLobbyList_deprecated2, to replace old existing item. Should be removed in v0.6
- changed PublicLobbies for VisibleLobbies in the code, to avoid confusion
- the change is backward compatible, although old peers won't receive private lobby info from new peers, of course.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5942 b45a01b8-16f6-495d-af2f-9b41ad6348cc
added code for rank calculation best,top, and newest (not enabled, not working yet...)
added variables for circles to grp meta type and modified storage and serialisation accordingly
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5930 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Flags are identity-related, meaning that all locations of the same peers have the same flags.
- It's now possible to tweak which services each peer can use. Service that can be disabled are
forums/channels, discovery, anonymous routing.
- by default, peers have all flags on.
- fixed missing error msg in p3cfgmgr when serialisation fails.
- fixed bug in RemoteDirModel causing infinite loop to happen when group name is unknown
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5924 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Completed serialiser.
- added dummy interface fns. & cleaned-up other linking issues.
- Added into rsinit.cc
* Improved GxsIdentity DummyData to fake Ids from friends
- #define to enable, must be switched off for real usage.
- cleaned up rsIdentity interface.
- removed genDummyData from public interface.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5915 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Disabled posting when no post is selected
Added notes section when viewing post (tres basic)
fix for comment item serialisation
fix for subscription token option not in this commit ;)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5913 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Defined the control group stuff.
- Background task to determine friend membership.
- Caching of Circle info,
- Added GXS interface class to gxs/rsgixs.h
- TODO: Serialiser is incomplete.
- TODO: SubCircles to be done in Phase 2.
* Improvements to RsMemCache:
- Added Value& ref(Key) to avoid data copying.
- Added Statistics to check cache performance.
- Fixed up bugs in tracking membership.
* Improvements to RsTickEvent:
- Added additional string parameter for more specificity.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5910 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- left the code for p3gxsserviceVEG and p3postedVEG, until p3posted is finished.
* Converted p3wireVEG => p3wire
* cleaned up rsinit.cc and libretroshare.pro
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5901 b45a01b8-16f6-495d-af2f-9b41ad6348cc
disabled msg synchronisation by default through compilation #define (use GXS_ENABLE_MSG_SYNC to enable message sync)
Finally removed v2 suffix from all photo components and filenames (please edit your libretroshare.pro file accordingly)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5883 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This is now pretty much complete for Phase 1 of GXS.
Still todo:
- PGPHash signatures.
- Reputations.
- Added two helper classes GxsTokenQueue: similar to TokenQueue, but for libretroshare
& RsTickEvent: schedule one shot events, and basic stats.
- Reorganised/simplified p3IdService using these two classes.
- Added fns to load/reload a list of Own Identities.
- Improved the Cache to store all GUI required Info.
- Updater retroshare/rsidentity.h with new Identity interface.
- added fns to update Cache from internal background tasks.
- Modified RsMemCache to support replace operation.
- Found nasty Bug that caused PGPHASHes not to match & Patched same bug in GXS.
- added generic CacheArbitration.
- Added AuthorIds to dummy Forum messages.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5848 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Fix for run thread loop of RsGenExchange (was using logic rather than isRunning, which led to some crashes on rs close
Added request and get MsgRelated function for ids, meta and data
added template function to ease getting meta data from back end;
Updated Nxs tests, tests passed (failed initially because of change option requirements)
Added test for msgrelated Ids, still need to add test for all msgRelated functions (bug with mask, not filtering correctly)
Made changes for forum and wiki gui to use new API but gui needs to call correct get functions now (Bob).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5817 b45a01b8-16f6-495d-af2f-9b41ad6348cc
groupid assigned to group before service_CreateGroup now (to help with identity using pgp hashes)
fixed up dummy group creation for photo service and ui
completed basic functions of GxsGroupDialog
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5809 b45a01b8-16f6-495d-af2f-9b41ad6348cc
as msg sync seems to have stopped working. will fix (qos priority change?).
Added validated field to msg meta
Removed serviceString from msg transport.
Added grp flag setting to album create to test msg validation
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5800 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Added gxsForum interface, service + serialiser to libretroshare.
- Bugfix in rsgenservices getSize() at the wrong point, Added lots of debug too.
- Dummy Collections to Wiki, can now create and retrieve Groups from the GUI.
- Bugfix in rsinit (wrong backend for wiki) + added forum to startup.
- improved debugging in GxsId serialiser.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5797 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Fixed lots of little bugs: ServiceString decoding, not saving to variables, etc.
* Added createIdentity fns. - Can create Anon, but not PGPLinked ones yet? no idea why.
* Added lots more debugging.
* Added mutex protection for class variables.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5789 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added Id & Wiki serialisers to constructors.
* Enabled cache_tick()... thought it doesn't process anything yet.
* Added debug to Id Key cache system.
* Fixed requests to match expected params.
* Added cachetest basics - this is not finished.
* Enabled generation of Lots of Dummy Ids - This demonstrates some queuing issues.
* Added #define to easily enable GxsId as only new service - for testing.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5756 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Added serialiser for wiki items (actual data to be finalised).
* Added wiki and fixed id services to be run properly.
* Disabled dummyData for ids.
* Fixed some bugs in Id serialiser.
* Added missing fns in p3wiki
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5748 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Removed V2 references: TokenQueueV2 and RsTokReqOptionsV2 are now TokenQueue and RsTokReqOptions and renamed file
Added initialisation of Posted back end service successfully
Added new msg status flags GXS_SERV::MSG_STATUS_UNPROCESSED and ::MSG_STATUS_UNREAD
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5707 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Lots of tweaks to rsidentity & rsgixs interfaces to make them match.
- added "mask" to gxs flag set operations.
- added dummy RsMsgMetaData print functions.
- enable compilation of code in .pro.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5702 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Filled in p3wiki and rswiki
* tweaked VEG files to prevent clashes.
* added serialiser header.
Still to do:
* complete design of Wiki Links, and the like.
* Finish serialiser
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5692 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Still doesn't compile yet, mainly headers and the like to fix.
NB: Interface Mismatch between RsGenExchange (vector) and individual result for getGroupData() / getMsgData()
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5689 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* Updated rgixs with new interfaces. (tentative)
* Switched rsIdentity to GXS basis.
* Added Subscribe Function to rsGxsIfaceImpl + return false to functions.
This code needs to be reviewed by chris ASAP, to see how it fits into the whole structure.
This code is currently not compiled, or compilable.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5677 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- added test to test/serialiser
- Updated all relevant gxs test (ran whole suite, added gxsdata_test, tests meta serilisation, to pro file)
Updated flag in rsgxsflags to account for authentication and private types
Changed msgId/grpId generation to sha1 hash
removed photoservice VEG file from pro file
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5630 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Photoshare UI now functional
- subscribing to an album enables message sync
- TokenQueue now operate with FIFO stack to prevent overlap in request completion
- photos are now load on demand as with comments
- fixed some noddy bugs (subscribe flag initialises incorrectly)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5624 b45a01b8-16f6-495d-af2f-9b41ad6348cc
removed VEG photoservice
Enabled group synchronisation between retroshare peers! test synchro between two rs peers worked.
Added crude commenting facility to photoshare, much tuning to be done
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5602 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* The Example services have been renamed eg. p3posted => p3postedVEG, to allow the real services to be added.
* The ServiceIDs have been shifted, to allow both VEG and GXS versions of services to run side-by-side for now.
* The DataTypes have not been renamed - but potentially should be in the future - if they cause clashes.
* Interface variables have also been renamed. eg. rsPosted => rsPostedVEG.
* This means that the GUI will not operate without changes too - TODO.
Minor changes to GXS services to better seperate them from the VEG versions.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5551 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- can add album (with thumbnail!)
- add photo (with photo!)
- can subscribe, but not added to ui yet
need to try some dummy msgs and bring up gxs_net
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5549 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- fixed segv bugs for message retrieval and improved data service meta data retrieval
- fixed compile for windows (exposed too many of rs internals in interface!)
- fixed msg signing functionality and id creation with ssl
- still need to complete photoservice gui and local meta change function
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5443 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Reactivated Photodialog. almost completed integration, publishing and item storage working,
but data retrieval algorithm needs to be changed (request flags need to be translated, based on update call rather than client assumption)
fixed bug in rsgenexchange notification.
Added LGPL notices
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5387 b45a01b8-16f6-495d-af2f-9b41ad6348cc
TokenQueueV2 added,
first change to photoshare to deal with gxs backend
needed to redirect meta types to mine in order to get compilation working and definition fixes
to rsgenexchange.
Next step is to get GxsRunner going
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5377 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- 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
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
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
- 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