Removed antipattern abstraction RsSingleJobThread
Rename runloop() method to run() in RsThread
Ported few classes ineriting from RsSingleJobThread to RsThread
RsThread use std::atomic instead of self implemented strange binary semaphores
Removed RsTickingThread::shutdown() use RsThread::askForStop() instead
Removed RsTickingThread::fullstop() use RsThread::fullstop() instead
Stop properly JSON API server in retroshare-gui
Centralize errno traslation to literal in util/rserrno.*
A copy of the repository freezed before this deletion to ease old code
viewing is available at
https://github.com/RetroShare/zz_archive_RetroShare_libresapi
Removed some more cruft
Temporarly disabled JSON API generation of RsWebUi methods due to
compilation breakage when rs_webui is disabled, RsWebUi keeps working
but cannot be restarted from JSON API
In Restbed one is not supposed to call session->yield outside the
threads controlled by Restbed. RetroShare JSON API async call were
calling session->yield from threads controlled by RetroShare all the
times, this caused crashes in some cases, like when the JSON API
socket timed out concurrently with the session->yield call .
To solve this problem session->yield from async
calls are now wrapped insto mService->schedule to ensure they are
executed on the right thread (aka one of the threads controlled by
Restbed).
While solving this issue I realized also that passing RsEvents as const
references around was quite limiting in cases where the event need to
be finally handled in another thread, in that case passing by const
reference the RsEvent needed to be copied by value into the thread
that process it, in this copy by value process the information of
which was the original specific type is lost, and then only the data
and methods from general RsEvents are available, unless the handler
does tricky stuff with type coercion etc. To solve this limitation
pass the events as std::shared_ptr<const RsEvent> seems the safer and
more elegant solution.
Make reduntant auth check in pqi effective (even if redundant only
siganture was checked but friendess wasn't)
Evidence redundant auth check in pqi by putting it inside #ifdef this
way the beaviior being the same with and without redundat check can be
verified easier
Solve lot of compiler warnings and made code more readable
Remove dangerous sslcert wrapper
Remove misleading messeges and notification about peer not giving cert,
FailedCertificate logic is wrong since many years as authentication is
fully handled inside VerifyX509Callback
Rename from RsDisc to more descriptive RsGossipDiscovery
Keep full retrocompatibility suggesting usage of RsGossipDiscovery
Add capability to send and receive full RetroShare invitation
Emit event when receiving a full invitation
Start using new debug utilities
Use enum class instead of defines and constant where appropriate
Deprecate costructors that may fails, offer alternative methods which
suggest correct usage to the programmer
Internally still use too much try,catch,throw but at least the API
dosn't expose those anymore.
Because we don't support libupnp-1.8.x yet avoid using that library
If libupnp-1.6.x is available use that, if not try to use miniupnc if
if unavailble print a warning and disable RetroShare UPnP support
This should bit by bit substitute RsNotify which would be very difficult
to support properly in JSON API.
The new system is much simpler to use also from the C++ side of the
moon.
BroadcastDiscovery take advantage of the new system to notify about new
non friend peer discovered, tested successfully also in JSON API.
Discover peers on the same broadcast domain/LAN
Implements own node announcement
Implements others announcement listening
Implements API to get notifiend when other nodes get discovered
Implements API to get discovered nodes
Add discovered peer locator to rsPeers if it is already friend
Yet a bunch of things to do to take full advantage of this new
implementation