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
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
warnings:
../../../trunk/libretroshare/src/services/p3idservice.h:226:24: warning:
'getServiceInfo' overrides a member function but is not marked
'override' [-Winconsistent-missing-override]
virtual RsServiceInfo getServiceInfo();
^
../../../trunk/libretroshare/src/gxs/rsgenexchange.h:122:27: note:
overridden virtual function is here
virtual RsServiceInfo getServiceInfo() = 0;
^
This doesn't need any interacion of the user at startup, unlike
retroshare-nogui which requires the user to login on the shell this doesn't
even need a TTY.
At startup this just parse command line, read the PGP keyring, look for
available locations, and start listening for JSON API requests.
Another difference with retroshare-nogui is that this is capable to
generate/import PGP identities, generate locations, and in general anything
possible through the RetroShare API.
retroshare-service is suitable also to run it as a system service, even
in very constrained systems such as Android ot a Docker container.
retroshare-service drop support for libresapi so only the new JSON API
is exposed, it will completely obsolete retroshare-android-service once
retroshare-qml-app is ported to the new JSON API.
Avoid the need of dirty patching to set the version at build time
In case RS version is not passed as argument attempt to determine it
using git describe, if unavailable use hardcoded default