Restructure and document retroshare.pri variables and helper functions
Link sqlite statically like other libraries on Android
qmake has multiple win32-* specs match them correctly
Move a buch of generic thing to retroshare.pri instead of having them replocated
accross project specific .pro
Fix retroshare-gui too many symbols exported on windows liking error by adding
QMAKE_LFLAGS+=-Wl,--exclude-libs,ALL
Rename retroshare-gui/src/util/win32.h because the name is too prone to
confusion and build conflicts
libreasapi avoid usage of cretar_prl link_prl that seems unreliable on some
platforms
libreasapi rename LIBRESAPI_QT to more understendable LIBRESAPI_SETTINGS
Use use_*.pri instead of copy pasting error prone qmake snippets around
Expose bitdht option to retroshare.pri
Add RS_THREAD_LIB qmake variable for better crossplatform support
Move debug and profiling generic options to retroshare.pri (avoid copy/pasting)
Remove Qt script module in qmake as it is not available anymore
The code is not elegant as this version of the API will be soon obsolete
but it offer a bunch of channels functionalities, comments and votes
are not implemented yet
/channels/list_channels get all visibile channels
/channels/get_channel get content of a subscribed channel
/channels/toggle_subscribe subscribe/unsubscribe to a channel
/channels/toggle_auto_download set/unset auto-download for files attached
to posts in a channel
/channels/toggle_read mark a post as read
/channels/create_channel create a new channel
/channels/create_post create a new post in given channel, group_id
paramenter renamed to channel_id for consistence
mChannels use reference instead of pointer as it must be valid
for the whole lifetime of the object
RsGxsCommentService and derivatives use proper types for parameter, avoid
reference when unneeded
This solve Android App being stuck at "connecting to the core" at first
run. It was caused by the ApiLocalListener running before another
retroshare thread could create .retroshare directory, so listening on
the socket failed silently and the qml app could connect to the core.
It is necessart to wait for QThread to stop before destruction
Avoid closing the socket in ApiLocalConnectionHandler destructor as
this remained as ultimate cause of crash on stop
Add an inactive friends list based on last seen Unix timestamp.
Add a method of removing a specific peer based on peer_id.
As fas as I know, the same pgp_id will discorvery themself and add online subnodes automaticlly even you remove one of them their just keep coming back, but if you accidently add your own peer_id on the WebUI, the peer list will show two identical PGP names and its subnodes, untill the retroshare gets restarted.
And this modification don't add the same peer_id as long as it belongs to your current node, it doesn't mean you can't add your new nodes with the same pgp_id but different peer_id.
Honor the Allman indent style
Avoid to forge the
[Starting distant chat. Please wait for secure tunnel to be established]
message on requesting chat id from API as it is a nuisance in most
libresapi use cases
Now it is possible to trigger a connection attempt via JSON API
The API call success with any valid peer id
/peers/attempt_connection
{"peer_id":"d441e8890164a0f335ad75acc59b5a49"}
{"data":null,"debug_msg":"","returncode":"ok"}
The API call fail if the peer id is invalid
/peers/attempt_connection
{peer_id:"9090"}
{"data":null,"debug_msg":"Invalid peer_id\n","returncode":"fail"}
Related to issue: Touching offline trusted node cloud should trigger connection attempt
https://gitlab.com/angesoc/RetroShare/issues/4
To import contact
/identity/import_key
{"radix":"AgIRBAAABd..."}
To export contact
/identity/export_key
{"gxs_id":"ffffffffffffffffffffffffffffffff"}
In both cases if everithing went fine the answer is something like
{"data":{"radix":"AgIRBAAABd...", "gxs_id":"fff..."}, "returncode":"ok"}
Some retrocompatible adaptations were necessary to libretroshare
RsGenExchange::deserializeGroupData
p3IdService::deserialiseIdentityFromMemory
Now accept an extra optional pointer parameter to return the id of the
key so we can return it back from libresapi too and can be used to
request more information about the key to the API.