Avoid problems to serialization on different platforms, without breaking
nested STL containers serialization.
The conversion have been made with sed, and checked with grep, plus
kdiff3 visual ispection, plus rutime tests, so it should be fine.
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
Move JSON helpers to util/rsjson.* for better usability
Implement JSON ostream manipulator to print compact and pretty JSON
Use lambdas for API wrappers, integrate better and avoid namespace
pollution
Removed experimental JSON API for notify client wrapper, notifications
can be implemented automatically with moderns async API calls
Implement and automatically expose to JSON API
RsGxsChannels::turtleSearchRequest(
const std::string& matchString,
const std::function<void (const RsGxsGroupSummary&)>& multiCallback,
std::time_t maxWait )
With this commit IPv6-v3 surpass v0.6-IPv6-2 in term of features
obsoleting it.
p3BitDht handle gracefully unwanted non IPv4 addresses
rsUdpStack handle gracefully unwanted non IPv4 addresses
pqissludp handle gracefully unwanted non IPv4 addresses
Move single address limitation workaround from
p3discovery2::sendOwnContactInfo to better
place p3PeerMgrIMPL::UpdateOwnAddress this way local address list is
queried less often and only id there is some suggestion that it may
have changed (probably ir will not be called all the times there is a
changes in local network interfaces but is good enough)
Implement crossplatform rs_setsockopt to avoid too much ifdef around
Implement sockaddr_storage_copy to safely copy sockaddr_storage objects
Changed unix_connect signature to be more comfortable for dual stack
usage
Remove dead code in pqissl::pqissl(...)
Adapt p3I2pBob::connectI2P() to new unix_connect
Adapt extaddrfinder to new unix_connect
Add sockaddr_storage_ipv4_to_ipv6 to convert from flat IPv4 to IPv4
mapped as IPv6
This should solve APIPA address being always selected as preferred local
address on Windows which was causing problems connecting to machines on
the same local network.
Now the link local address is used as fallback only if there is non link
local private address available.
/libretroshare/src/util/dnsresolver.cc:49: warning: this statement may
fall through [-Wimplicit-fallthrough=]
case DNSResolver::DNS_LOOKUP_ERROR: if(it-
>second.last_lookup_time + MAX_TIME_BEFORE_RETRY > now)
/libretroshare/src/util/dnsresolver.cc:52: here
case DNSResolver::DNS_DONT_HAVE: next_call = it->first ;
/libretroshare/src/util/rsnet_ss.cc:1031: warning: this statement may
fall through [-Wimplicit-fallthrough=]
success = inet_ntop( addr.ss_family, (const void *) &(addrv4p-
>sin_addr), ipStr, INET_ADDRSTRLEN );
/libretroshare/src/util/rsnet_ss.cc:1033: here
case AF_INET6:
/libretroshare/src/util/rscompress.cc:165: warning: this statement may
fall through [-Wimplicit-fallthrough=]
ret = Z_DATA_ERROR; /* and fall through */
/home/phenom/GIT/RetroShare/trunk/libretroshare/src/util/rscompress.cc:
166: here
case Z_DATA_ERROR:
warning: implicit conversion from 'int' to 'char' changes value from 255
to -1 [-Wconstant-conversion]
asctobin()[i] = 255; /* used to
detect invalid characters */
/home/phenom/GIT/RetroShare/trunk/libretroshare/src/util/radix64.h:96:
warning: explicitly assigning value of variable of type 'int' to itself
[-Wself-assign]
idx = idx;
~~~ ^ ~~~
Deprecate id field in JSON API as it may cause problems in Qml
Offer gxs_id field in JSON API as an id alternative
LibresapiLocalClient support callbacks now an instance may be shared for
different tasks
Expose an instance of LibresapiLocalClient to Qml, type exposure is kept
for retrocompatibility but deprecated
Qml app now has a tab that permit to exchange some message with selected
distant peer
Added macro to deprecate symbols usage in a crossplatform way.
Deprecated Request::mMethod and related stuff that make implementation
more complex without advantage.
Added /chat/{initiate_distant_chat, distant_chat_status,
close_distant_chat} to libresapi.
Solved subtle bug in ChatId::ChatId(std::string str) that caused zeroed
DistantChatPeerId being created.
getifaddrs is not present on android and an alternative implementation
crashed, use QNetworkInterface::allAddresses() to retrieve local
addresses list instead
This
/libretroshare/src/gxs/rsgenexchange.cc:2850: erreur : Cppcheck:
Dereferencing 'grp' after it is deallocated / released
/libretroshare/src/gxstunnel/p3gxstunnel.cc:1004: erreur : Cppcheck:
Invalid usage of output stream: '<< std::cerr'.
/libretroshare/src/util/contentvalue.cc:185: erreur : Cppcheck: Memory
leak: dest
/openpgpsdk/src/openpgpsdk/reader_armoured.c:575: erreur : Cppcheck:
Common realloc mistake: 'buf' nulled but not freed upon failure
/retroshare-gui/src/gui/FileTransfer/DLListDelegate.cpp:103: erreur :
Cppcheck: Array 'byteUnits[4]' accessed at index 4, which is out of
bounds.
/retroshare-gui/src/gui/FileTransfer/DLListDelegate.cpp:122: erreur :
Cppcheck: Array 'byteUnits[4]' accessed at index 4, which is out of
bounds.
/retroshare-gui/src/gui/FileTransfer/DLListDelegate.cpp:141: erreur :
Cppcheck: Array 'byteUnits[4]' accessed at index 4, which is out of
bounds.
/retroshare-gui/src/gui/FileTransfer/ULListDelegate.cpp:92: erreur :
Cppcheck: Array 'byteUnits[4]' accessed at index 4, which is out of
bounds.
/retroshare-gui/src/gui/FileTransfer/ULListDelegate.cpp:111: erreur :
Cppcheck: Array 'byteUnits[4]' accessed at index 4, which is out of
bounds.
/retroshare-gui/src/gui/People/PeopleDialog.cpp:774: erreur : Cppcheck:
Uninitialized variable: layout
/retroshare-gui/src/gui/People/PeopleDialog.cpp:864: erreur : Cppcheck:
Uninitialized variable: layout
/retroshare-gui/src/gui/common/AvatarWidget.cpp:225: erreur : Cppcheck:
Uninitialized variable: status
/retroshare-nogui/src/rpc/proto/rpcprotostream.cc:805: erreur :
Cppcheck: Memory leak: buffer
/supportlibs/pegmarkdown/GLibFacade.c:150: erreur : Cppcheck: va_list
'args' was opened but not closed by va_end().
/openpgpsdk/src/openpgpsdk/reader_armoured.c:575: erreur : Cppcheck:
Common realloc mistake: 'buf' nulled but not freed upon failure
/tests/unittests/libretroshare/serialiser/rsturtleitem_test.cc:213:
erreur : Cppcheck: Return value of allocation function 'init_item' is
not stored.