Order of serialization doesn't matter ATM as we use those only for
JSON API.
Those classes should be rewritten anyway with proper naming of the
memebers and using std::uintptr_t instead of void* and rstime_t for
timestamps
Now the possible id of the cannel/post is returned and channel/post is
indexed on creation without having to wait for gxsutil scan to happen
Note that the id is correct in normal usage, but if one try to overload
the API per eventually get the id of another channel/post with same data
but created by a different call, it is not dangerous so one trying to
overload the API is just getting a possibly wrong but equivalent
channel/post id returned.
If the member was not present in the JSON it was zeroed while it should
be left untouched in that case.
This was discovered because in JSON API defualt argument value for
methods wasn't onored for t_RsFlags32 arguments.
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.
/libretroshare/src/pqi/authssl.cc:160: warning: ‘void
dyn_destroy_function(CRYPTO_dynlock_value*, const char*, int)’ defined
but not used [-Wunused-function]
static void dyn_destroy_function(struct CRYPTO_dynlock_value *l, const
char */*file*/, int /*line*/)
/libretroshare/src/pqi/authssl.cc:143: warning: ‘void
dyn_lock_function(int, CRYPTO_dynlock_value*, const char*, int)’ defined
but not used [-Wunused-function]
static void dyn_lock_function(int mode, struct CRYPTO_dynlock_value *l,
const char */*file*/, int /*line*/)
/libretroshare/src/pqi/authssl.cc:121: warning: ‘CRYPTO_dynlock_value*
dyn_create_function(const char*, int)’ defined but not used [-Wunused-
function]
static struct CRYPTO_dynlock_value *dyn_create_function(const char */
*file*/, int /*line*/)
/libretroshare/src/pqi/authssl.cc:106: warning: ‘long unsigned int
id_function()’ defined but not used [-Wunused-function]
static unsigned long id_function(void)
/libretroshare/src/pqi/authssl.cc:92: warning: ‘void
locking_function(int, int, const char*, int)’ defined but not used [-
Wunused-function]
static void locking_function(int mode, int n, const char */*file*/, int
/*line*/)
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.
Makefile.libretroshare:3811: warning: overriding recipe for target
'temp/linux-g++/obj/hashstream.o'
Makefile.libretroshare:3772: warning: ignoring old recipe for target
'temp/linux-g++/obj/hashstream.o'
jsonapi-generator is now capable of generating API for headers outside
retroshare/ directory
jsonapi-generator do a bit of methods parameter sanity check
JsonApiServer is now integrated in the rsinit hell like other services
Add *::exportGPGKeyPairToString to a bunch of classes in cascade
RsControl is now capable of calling back a function when retroshare is almost
completely stopped, this is useful when running retroshare toghether with
externally managed runloop such as QCoreApplication
Expose a bunch of methods through JSON API
retroshare-nogui remove some dead code and fix stopping from the RetroShare API
Remove unnecessary dangerous method from RsLoginHelper
Fix documentation for RsServiceControl::getServiceName that was breaking
JSON API and causing compilation warning
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
Enforce it being 127.0.0.1 by default, I assumed 127.0.0.1 was restbed
default, but as reported by sehraf is not alwayd the case
JSON API bind address now is also configurable via commandline on
retroshare-android-service and retroshare-nogui, while it obey the
configuration of webui (execept for that port is incremented by 2)
in retroshare-gui
Added also new method for better usability via the API that allow to add
friend directly for RetroShare invitation (supports also URL) without
having to call to mulptiple metods to set IP etc.
RsPeers::acceptInvite
/rsPeers/acceptInvite
/rsLoginHelper/isLoggedIn to check if already logged in
/rsAccounts/getCurrentAccountId to get the id of current selected
account, beware that an account may be selected without actually logging in
Manually expose /rsFiles/getFileData to stream/preview files
Automatically expose a bunch of methods via JSON API
Implement serial_process for std::pair
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 )
Some modifications breaks retrocompatibility of GXS search:
remove horrible templated RsTypeSerializer::serial_process for
RsGxsGroupSummary with hardcoded member names
RsGxsGroupSummary doesn't use old TLV serialization format anymore
RsGxsGroupSummary remove unused description member
RsGxsGroupSummary derive from RsSerializable and use serialization
helper macro
Add autor id and signature flags to the index so there is no need to
retrive them from GXS, thus improving performances
RsGroupNetworkStats initialize members properly
RsGxsGroupSummary rename members to follow usual mMemberName convention
Implement a "normal" way to login RsLoginHelper::attemptLogin
Implement a way to get locations list RsLoginHelper::getLocations
Enable JSON API into retroshare-android-service
Thanks sehraf for reporting
retroshare://forum?name=fucking%20genius&id=8fd22bd8f99754461e7ba1ca8a727995&msgid=503d75bf7ed7fa7568eeae4db5c8d31a7e124c98
RsGxsIfaceHelper::requestStatus expose it to JSON API
Implemented RsGxsIfaceHelper::waitToken to wait for GXS operations
RsItem::serial_process fix doxygen warning as it's a comment not documentation
RsTypeSerializer add JSON conversion methods for double [de]serialization not
implemented yet
RsTypeSerializer_PRIVATE_{FROM,TO}_JSON_ARRAY fix doxygen warning as it's a
comment not documentation
make GxsChannels::ExtraFileHash a bit more reasonable
jsonapi-generator fix unused variable warning if there is no input or output
paramethers
jsonapi-generator fix generation for inerithed jsonapi methods
Convert to RsSerializable some Gxs structs for the JSON API
qmake file add jsonapi-generator target to compile JSON API generator
qmake files add rs_jsonapi CONFIG option to enable/disable JSON API at compile
time
RsTypeSerializer pass down same serialization flags when creating new context
for nested objects serial job
RsGxsChannels expose a few methods through JSON API as example
Derive a few GXS types (RsGxsChannelGroup, RsGxsChannelPost, RsGxsFile,
RsMsgMetaData) from RsSerializables so they can be used for the JSON API
Create RsGenericSerializer::SERIALIZATION_FLAG_YIELDING so JSON objects that
miss some fields can be still deserialized, this improve API usability
SerializeContext offer friendly constructor with default paramethers
Add restbed 4.6 library as git submodule as most systems doesn't have it yet
Add a bit of documentation about JSON API into jsonapi-generator/README.adoc
Add JsonApiServer class to expose the JSON API via HTTP protocol
Add WrongValue StyleSheet property, when bad directory selected.
Update QLineEdit with current setting so it's possible to see if
something is modified. No need to restart.
/libretroshare/src/rsitems/rsitem.h:92: warning:
Cppcheck(duplInheritedMember): The class 'RsPeerNetItem' defines member
variable with name 'peerId' also defined in its parent struct 'RsItem'.
/libretroshare/src/rsitems/rsitem.h:92: warning:
Cppcheck(duplInheritedMember): The class 'RsHistoryMsgItem' defines
member variable with name 'peerId' also defined in its parent struct
'RsItem'.
/libretroshare/src/rsitems/rsitem.h:91: warning:
Cppcheck(duplInheritedMember): The class 'RsBanListConfigItem' defines
member variable with name 'type' also defined in its parent struct
'RsItem'.
/libretroshare/src/rsitems/rsitem.h:92: warning:
Cppcheck(duplInheritedMember): The class 'RsBanListConfigItem' defines
member variable with name 'peerId' also defined in its parent struct
'RsItem'.
/libretroshare/src/ft/ftcontroller.cc:91: warning:
Cppcheck(passedByValue): Function parameter 'fname' should be passed by
reference.
/libretroshare/src/ft/ftcontroller.cc:92: warning:
Cppcheck(passedByValue): Function parameter 'tmppath' should be passed
by reference.
/libretroshare/src/ft/ftcontroller.cc:92: warning:
Cppcheck(passedByValue): Function parameter 'dest' should be passed by
reference.
/libretroshare/src/ft/ftcontroller.cc:1482: warning:
Cppcheck(stlIfStrFind): Inefficient usage of string::find() in
condition; string::compare() would be faster.
/libretroshare/src/ft/ftcontroller.cc:1491: warning:
Cppcheck(stlIfStrFind): Inefficient usage of string::find() in
condition; string::compare() would be faster.
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
In case of hidden node the listen address was not properly converted to
ipv4 mapped format causing bind to fail
Use sockaddr_storage_copy instead of = as sockaddr_storage is not
guaranted to be copyable
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
Due to a regression introduced in
dedfcb2b60 the local address was not
updated correctly causing part of RS networking being stuck and printing
lot of invalid sockaddr_storage messages, this commit fix the regression
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
Workaround RS single local address flawed assumption by spreading
all viables local addrresses via discovery
Spread addresses also through hidden node as they are the only hope
to help direct connection happening for common trusted nodes
behind nasty firewalls
Workaround RS single local address flawed assumption by spreading
all viables local addrresses via discovery
Spread addresses also through hidden node as they are the only hope
to help direct connection happening for common trusted nodes
behind nasty firewalls
/trunk/tests/unittests/libretroshare/gxs/nxs_test/nxsmsgsync_test.cc:28:
warning: deleting object of abstract class type ‘RsGixsReputation’ which
has non-virtual destructor will cause undefined behavior [-Wdelete-non-
virtual-dtor]
delete mRep ;
/trunk/tests/unittests/libretroshare/gxs/nxs_test/nxsmsgsync_test.cc:29:
warning: deleting object of abstract class type ‘RsGcxs’ which has non-
virtual destructor will cause undefined behavior [-Wdelete-non-virtual-
dtor]
delete mCircles;
/trunk/tests/unittests/libretroshare/gxs/nxs_test/nxsmsgsync_test.cc:30:
warning: deleting object of abstract class type ‘PgpAuxUtils’ which has
non-virtual destructor will cause undefined behavior [-Wdelete-non-
virtual-dtor]
delete mPgpUtils;
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.
Abstract serialization concept to pure virtaul class RsSerializable
from which every other serializable class must inherit from
Use RapidJSON for JSON manipulation
Add TO_JSON and FROM_JSON SerializeJob
Deprecate unused SerializationFormat
Remove some unused old piece of code
Adjust many lines to max 80 columns for better readability on little
screens
Clean up documentation and code, remove old cruft
Add copyright notice on edited files that miss it
/libretroshare/src/upnp/UPnPBase.cpp:62: warning:
Cppcheck(funcArgOrderDifferent): Function 'CUPnPPortMapping' argument
order different: declaration 'in_port, ex_port, protocol, enabled,
description' definition 'ex_port, in_port, protocol, enabled,
description'
/libretroshare/src/upnp/UPnPBase.h:109: warning:
Cppcheck(noExplicitConstructor): Class 'CUPnPLib' has a constructor with
1 argument that is not explicit.
/libretroshare/src/upnp/UPnPBase.h:577: warning:
Cppcheck(noExplicitConstructor): Class 'CUPnPControlPoint' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/turtle/p3turtle.cc:1450: warning:
Cppcheck(unusedVariable): Unused variable: info
/libretroshare/src/turtle/p3turtle.cc:1875: warning:
Cppcheck(redundantIfRemove): Redundant checking of STL container element
existence before removing it.
/libretroshare/src/services/p3postbase.cc:628: warning:
Cppcheck(invalidScanfArgType_int): %d in format string (no. 1) requires
'int *' but the argument type is 'unsigned int *'.
/libretroshare/src/services/p3postbase.cc:628: warning:
Cppcheck(invalidScanfArgType_int): %d in format string (no. 2) requires
'int *' but the argument type is 'unsigned int *'.
/libretroshare/src/services/p3postbase.cc:628: warning:
Cppcheck(invalidScanfArgType_int): %d in format string (no. 3) requires
'int *' but the argument type is 'unsigned int *'.
/libretroshare/src/services/p3bwctrl.h:77: warning:
Cppcheck(noExplicitConstructor): Class 'p3BandwidthControl' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/services/autoproxy/p3i2pbob.h:176: warning:
Cppcheck(noExplicitConstructor): Class 'p3I2pBob' has a constructor with
1 argument that is not explicit.
/libretroshare/src/serialiser/rstlvstring.h:40: warning:
Cppcheck(noExplicitConstructor): Class 'RsTlvStringSet' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsserver/rsaccounts.cc:808: warning:
Cppcheck(ConfigurationNotChecked): Skipping configuration 'DATA_DIR'
since the value of 'DATA_DIR' is unknown. Use -D if you want to check
it. You can use -U to skip it explicitly.
/libretroshare/src/rsserver/rsaccounts.cc:1057: warning:
Cppcheck(redundantAssignment): Variable 'bio_out' is reassigned a value
before the old one has been used.
/libretroshare/src/rsserver/rsaccounts.cc:674: warning:
Cppcheck(unusedVariable): Unused variable: userName
/libretroshare/src/rsserver/rsaccounts.cc:1005: warning:
Cppcheck(unreadVariable): Variable 'pgp_name' is assigned a value that
is never used.
/libretroshare/src/rsserver/rsaccounts.cc:663: warning:
Cppcheck(passedByValue): Function parameter 'accountdir' should be
passed by reference.
/libretroshare/src/rsserver/p3status.h:42: warning:
Cppcheck(noExplicitConstructor): Class 'p3Status' has a constructor with
1 argument that is not explicit.
/libretroshare/src/rsitems/rspluginitems.h:39: warning:
Cppcheck(noExplicitConstructor): Class 'RsPluginItem' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:117: warning:
Cppcheck(uninitMemberVar): Member variable
'RsNxsSyncGrpStatsItem::request_type' is not initialized in the
constructor.
/libretroshare/src/rsitems/rsnxsitems.h:117: warning:
Cppcheck(uninitMemberVar): Member variable
'RsNxsSyncGrpStatsItem::number_of_posts' is not initialized in the
constructor.
/libretroshare/src/rsitems/rsnxsitems.h:117: warning:
Cppcheck(uninitMemberVar): Member variable
'RsNxsSyncGrpStatsItem::last_post_TS' is not initialized in the
constructor.
/libretroshare/src/rsitems/rsnxsitems.h:371: warning:
Cppcheck(uninitMemberVar): Member variable 'RsNxsMsg::pos' is not
initialized in the constructor.
/libretroshare/src/rsitems/rsnxsitems.h:371: warning:
Cppcheck(uninitMemberVar): Member variable 'RsNxsMsg::count' is not
initialized in the constructor.
/libretroshare/src/rsitems/rsnxsitems.h:410: warning:
Cppcheck(uninitMemberVar): Member variable 'RsNxsSearchReqItem::nHops'
is not initialized in the constructor.
/libretroshare/src/rsitems/rsnxsitems.h:410: warning:
Cppcheck(uninitMemberVar): Member variable 'RsNxsSearchReqItem::token'
is not initialized in the constructor.
/libretroshare/src/rsitems/rsnxsitems.h:410: warning:
Cppcheck(uninitMemberVar): Member variable
'RsNxsSearchReqItem::expiration' is not initialized in the constructor.
/libretroshare/src/rsitems/rsnxsitems.h:431: warning:
Cppcheck(uninitMemberVar): Member variable
'RsNxsSearchResultMsgItem::token' is not initialized in the constructor.
/libretroshare/src/rsitems/rsnxsitems.h:431: warning:
Cppcheck(uninitMemberVar): Member variable
'RsNxsSearchResultMsgItem::expiration' is not initialized in the
constructor.
/libretroshare/src/rsitems/rsnxsitems.h:99: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSyncGrpReqItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:117: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSyncGrpStatsItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:140: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsGroupPublishKeyItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:183: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsTransacItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:211: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSyncGrpItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:257: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsEncryptedDataItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:283: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsGrp' has a constructor with
1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:327: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSyncMsgReqItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:351: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSyncMsgItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:371: warning:
Cppcheck(noExplicitConstructor): Struct 'RsNxsMsg' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:410: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSearchReqItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:500: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSerialiser' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsnxsitems.h:237: warning:
Cppcheck(noExplicitConstructor): Class 'RsNxsSessionKeyItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsrttitems.h:56: warning:
Cppcheck(uninitMemberVar): Member variable 'RsRttPingItem::mSeqNo' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsrttitems.h:56: warning:
Cppcheck(uninitMemberVar): Member variable 'RsRttPingItem::mPingTS' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsrttitems.h:70: warning:
Cppcheck(uninitMemberVar): Member variable 'RsRttPongItem::mSeqNo' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsrttitems.h:70: warning:
Cppcheck(uninitMemberVar): Member variable 'RsRttPongItem::mPingTS' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsrttitems.h:70: warning:
Cppcheck(uninitMemberVar): Member variable 'RsRttPongItem::mPongTS' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsrttitems.h:46: warning:
Cppcheck(noExplicitConstructor): Class 'RsRttItem' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsitem.h:15: warning:
Cppcheck(noExplicitConstructor): Class 'RsItem' has a constructor with 1
argument that is not explicit.
/libretroshare/src/rsitems/rsgxsrecognitems.h:56: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsRecognReqItem::issued_at' is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsrecognitems.h:56: warning:
Cppcheck(uninitMemberVar): Member variable 'RsGxsRecognReqItem::period'
is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsrecognitems.h:56: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsRecognReqItem::tag_class' is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsrecognitems.h:56: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsRecognReqItem::tag_type' is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsrecognitems.h:82: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsRecognTagItem::valid_from' is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsrecognitems.h:82: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsRecognTagItem::valid_to' is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsrecognitems.h:82: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsRecognTagItem::tag_class' is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsrecognitems.h:82: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsRecognTagItem::tag_type' is not initialized in the constructor.
/libretroshare/src/rsitems/rsgxsupdateitems.h:88: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsGrpConfigItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsgxsupdateitems.h:109: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsGrpUpdateItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsgxsupdateitems.h:131: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsServerGrpUpdateItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsgxsupdateitems.h:157: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsMsgUpdateItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsgxsupdateitems.h:179: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsServerMsgUpdateItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsgxsupdateitems.h:194: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsUpdateSerialiser' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/rsitems/rsconfigitems.h:74: warning:
Cppcheck(uninitMemberVar): Member variable 'RsPeerNetItem::netMode' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsconfigitems.h:74: warning:
Cppcheck(uninitMemberVar): Member variable 'RsPeerNetItem::vs_disc' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsconfigitems.h:74: warning:
Cppcheck(uninitMemberVar): Member variable 'RsPeerNetItem::vs_dht' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsconfigitems.h:74: warning:
Cppcheck(uninitMemberVar): Member variable 'RsPeerNetItem::lastContact'
is not initialized in the constructor.
/libretroshare/src/rsitems/rsconfigitems.h:74: warning:
Cppcheck(uninitMemberVar): Member variable 'RsPeerNetItem::domain_port'
is not initialized in the constructor.
/libretroshare/src/rsitems/rsconfigitems.h:146: warning:
Cppcheck(uninitMemberVar): Member variable 'RsNodeGroupItem::flag' is
not initialized in the constructor.
/libretroshare/src/rsitems/rsconfigitems.h:243: warning:
Cppcheck(uninitMemberVar): Member variable 'RsFileConfigItem::flags' is
not initialized in the constructor.
/libretroshare/src/retroshare/rswire.h:111: warning:
Cppcheck(noExplicitConstructor): Class 'RsWire' has a constructor with 1
argument that is not explicit.
/libretroshare/src/retroshare/rsservicecontrol.h:46: warning:
Cppcheck(passedByValue): Function parameter 'service_name' should be
passed by reference.
/libretroshare/src/retroshare/rsposted.h:81: warning:
Cppcheck(noExplicitConstructor): Class 'RsPosted' has a constructor with
1 argument that is not explicit.
/libretroshare/src/retroshare/rsidentity.h:269: warning:
Cppcheck(noExplicitConstructor): Class 'RsIdentity' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/retroshare/rsgxsforums.h:66: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsForums' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/retroshare/rsphoto.h:162: warning:
Cppcheck(noExplicitConstructor): Class 'RsPhotoComment' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/retroshare/rsgxschannels.h:82: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsChannels' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/pqi/pqiqos.h:62: warning: Cppcheck(uninitMemberVar):
Member variable 'ItemQueue::_threshold' is not initialized in the
constructor.
/libretroshare/src/pqi/pqiqos.h:62: warning: Cppcheck(uninitMemberVar):
Member variable 'ItemQueue::_counter' is not initialized in the
constructor.
/libretroshare/src/pqi/pqiqos.h:62: warning: Cppcheck(uninitMemberVar):
Member variable 'ItemQueue::_inc' is not initialized in the constructor.
/libretroshare/src/pqi/pqiindic.h:39: warning:
Cppcheck(noExplicitConstructor): Class 'Indicator' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/pqi/pqi_base.h:195: warning:
Cppcheck(noExplicitConstructor): Class 'PQInterface' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/pqi/p3servicecontrol.cc:840: warning:
Cppcheck(unreadVariable): Variable 'changes' is assigned a value that is
never used.
/libretroshare/src/pqi/p3servicecontrol.cc:941: warning:
Cppcheck(unusedVariable): Unused variable: mit
/libretroshare/src/pqi/p3servicecontrol.cc:972: warning:
Cppcheck(unusedVariable): Unused variable: mit
/libretroshare/src/pqi/p3servicecontrol.cc:88: warning:
Cppcheck(uninitMemberVar): Member variable
'p3ServiceControl::mServiceServer' is not initialized in the
constructor.
/libretroshare/src/pqi/p3servicecontrol.h:69: warning:
Cppcheck(noExplicitConstructor): Class 'p3ServiceControl' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/pqi/p3servicecontrol.cc:45: warning:
Cppcheck(noExplicitConstructor): Class 'RsServiceControlItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/pqi/p3servicecontrol.cc:52: warning:
Cppcheck(noExplicitConstructor): Class 'RsServicePermissionItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/pqi/p3servicecontrol.cc:359: warning:
Cppcheck(passedByValue): Function parameter 'serviceName' should be
passed by reference.
/libretroshare/src/pqi/p3netmgr.cc:926: warning:
Cppcheck(unreadVariable): Variable 'title' is assigned a value that is
never used.
/libretroshare/src/pqi/p3netmgr.cc:1808: warning:
Cppcheck(unreadVariable): Variable 'connectstr' is assigned a value that
is never used.
/libretroshare/src/pqi/p3historymgr.cc:353: warning:
Cppcheck(invalidScanfArgType_int): %d in format string (no. 1) requires
'int *' but the argument type is 'unsigned int *'.
/libretroshare/src/pqi/p3cfgmgr.h:154: warning:
Cppcheck(noExplicitConstructor): Class 'p3ConfigMgr' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/pqi/authssl.cc:857: warning:
Cppcheck(redundantAssignment): Variable 'buf_in' is reassigned a value
before the old one has been used.
/libretroshare/src/pqi/authssl.cc:864: warning:
Cppcheck(redundantAssignment): Variable 'buf_hashout' is reassigned a
value before the old one has been used.
/libretroshare/src/pqi/authssl.cc:867: warning:
Cppcheck(redundantAssignment): Variable 'buf_sigout' is reassigned a
value before the old one has been used.
/libretroshare/src/pqi/authssl.cc:1006: warning:
Cppcheck(redundantAssignment): Variable 'buf_in' is reassigned a value
before the old one has been used.
/libretroshare/src/pqi/authssl.cc:1013: warning:
Cppcheck(redundantAssignment): Variable 'buf_hashout' is reassigned a
value before the old one has been used.
/libretroshare/src/pqi/authssl.cc:1016: warning:
Cppcheck(redundantAssignment): Variable 'buf_sigout' is reassigned a
value before the old one has been used.
/libretroshare/src/pqi/authssl.cc:1451: warning:
Cppcheck(redundantAssignment): Variable 'ek' is reassigned a value
before the old one has been used.
/libretroshare/src/pqi/authssl.cc:366: warning:
Cppcheck(unreadVariable): Variable 'dh_prime_2048_hex' is assigned a
value that is never used.
/libretroshare/src/pqi/authssl.cc:1508: warning:
Cppcheck(unreadVariable): Variable 'in_offset' is assigned a value that
is never used.
/libretroshare/src/pqi/authssl.cc:249: warning:
Cppcheck(useInitializationList): Variable 'name' is assigned in
constructor body. Consider performing initialization in initialization
list.
/libretroshare/src/pqi/authgpg.cc:124: warning:
Cppcheck(uninitMemberVar): Member variable 'AuthGPG::mStoreKeyTime' is
not initialized in the constructor.
/libretroshare/src/pqi/authgpg.h:58: warning:
Cppcheck(noExplicitConstructor): Class 'AuthGPGOperation' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/plugins/pluginmanager.h:48: warning:
Cppcheck(noExplicitConstructor): Class 'RsPluginManager' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/pgp/rscertificate.cc:75: warning:
Cppcheck(unusedVariable): Unused variable: res
/libretroshare/src/pgp/rscertificate.h:55: warning:
Cppcheck(operatorEqVarError): Member variable
'RsCertificate::ipv4_external_ip_and_port' is not assigned a value in
'RsCertificate::operator='.
/libretroshare/src/pgp/rscertificate.h:55: warning:
Cppcheck(operatorEqVarError): Member variable
'RsCertificate::ipv4_internal_ip_and_port' is not assigned a value in
'RsCertificate::operator='.
/libretroshare/src/pgp/rscertificate.h:55: warning:
Cppcheck(operatorEqVarError): Member variable
'RsCertificate::binary_pgp_key' is not assigned a value in
'RsCertificate::operator='.
/libretroshare/src/pgp/rscertificate.h:55: warning:
Cppcheck(operatorEqVarError): Member variable
'RsCertificate::binary_pgp_key_size' is not assigned a value in
'RsCertificate::operator='.
/libretroshare/src/pgp/rscertificate.h:55: warning:
Cppcheck(operatorEqVarError): Member variable 'RsCertificate::only_pgp'
is not assigned a value in 'RsCertificate::operator='.
/libretroshare/src/pgp/rscertificate.h:55: warning:
Cppcheck(operatorEqVarError): Member variable
'RsCertificate::hidden_node' is not assigned a value in
'RsCertificate::operator='.
/libretroshare/src/pgp/rscertificate.h:16: warning:
Cppcheck(noExplicitConstructor): Class 'RsCertificate' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:75: warning:
Cppcheck(uninitMemberVar): Member variable 'RsGxsTunnelDataItem::flags'
is not initialized in the constructor.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:76: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsTunnelDataItem::unique_item_counter' is not initialized in the
constructor.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:76: warning:
Cppcheck(uninitMemberVar): Member variable 'RsGxsTunnelDataItem::flags'
is not initialized in the constructor.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:76: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsTunnelDataItem::service_id' is not initialized in the constructor.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:111: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsTunnelDataAckItem::unique_item_counter' is not initialized in the
constructor.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:128: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGxsTunnelDHPublicKeyItem::public_key' is not initialized in the
constructor.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:145: warning:
Cppcheck(operatorEqVarError): Member variable
'RsGxsTunnelDHPublicKeyItem::public_key' is not assigned a value in
'RsGxsTunnelDHPublicKeyItem::operator='.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:56: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsTunnelItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/gxstunnel/rsgxstunnelitems.h:76: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsTunnelDataItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/gxstunnel/p3gxstunnel.h:127: warning:
Cppcheck(noExplicitConstructor): Class 'p3GxsTunnelService' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/gxstrans/p3gxstransitems.h:42: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsTransBaseMsgItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/gxstrans/p3gxstrans.h:296: warning:
Cppcheck(noExplicitConstructor): Class 'GxsTransIntegrityCleanupThread'
has a constructor with 1 argument that is not explicit.
/libretroshare/src/gxs/rsgxsdataaccess.h:40: warning:
Cppcheck(noExplicitConstructor): Class 'RsGxsDataAccess' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/gxs/rsgixs.h:179: warning: Cppcheck(uninitMemberVar):
Member variable 'GixsReputation::reputation_level' is not initialized in
the constructor.
/libretroshare/src/gxs/rsgenexchange.cc:2165: warning:
Cppcheck(redundantAssignment): Variable 'serialOk' is reassigned a value
before the old one has been used.
/libretroshare/src/gxs/rsgenexchange.cc:1227: warning:
Cppcheck(unusedVariable): Unused variable: metaL
/libretroshare/src/gxs/rsgenexchange.cc:2254: warning:
Cppcheck(unreadVariable): Variable 's' is assigned a value that is never
used.
/libretroshare/src/gxs/rsgenexchange.cc:71: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGenExchange::mCheckStarted' is not initialized in the constructor.
/libretroshare/src/gxs/gxstokenqueue.h:51: warning:
Cppcheck(noExplicitConstructor): Class 'GxsTokenQueue' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/grouter/p3grouter.cc:2295: warning:
Cppcheck(cstyleCast): C-style pointer casting
/libretroshare/src/grouter/p3grouter.h:82: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterDataInfo::last_activity_TS' is not initialized in the
constructor.
/libretroshare/src/grouter/p3grouter.cc:206: warning:
Cppcheck(uninitMemberVar): Member variable 'p3GRouter::mTurtle' is not
initialized in the constructor.
/libretroshare/src/grouter/p3grouter.cc:206: warning:
Cppcheck(uninitMemberVar): Member variable 'p3GRouter::mLinkMgr' is not
initialized in the constructor.
/libretroshare/src/grouter/grouteritems.h:93: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterAbstractMsgItem::flags' is not initialized in the constructor.
/libretroshare/src/grouter/grouteritems.h:106: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterGenericDataItem::data_size' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:106: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterGenericDataItem::data_bytes' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:106: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterGenericDataItem::duplication_factor' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:159: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterTransactionChunkItem::chunk_start' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:159: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterTransactionChunkItem::chunk_size' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:159: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterTransactionChunkItem::total_size' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:159: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterTransactionChunkItem::chunk_data' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:220: warning:
Cppcheck(uninitMemberVar): Member variable
'RsGRouterMatrixTrackItem::time_stamp' is not initialized in the
constructor.
/libretroshare/src/grouter/grouteritems.h:62: warning:
Cppcheck(noExplicitConstructor): Class 'RsGRouterItem' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/grouter/grouteritems.h:93: warning:
Cppcheck(noExplicitConstructor): Class 'RsGRouterAbstractMsgItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/grouter/grouteritems.h:147: warning:
Cppcheck(noExplicitConstructor): Class 'RsGRouterTransactionItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/grouter/grouteritems.h:274: warning:
Cppcheck(noExplicitConstructor): Class 'RsGRouterSerialiser' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/grouter/groutertypes.h:99: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterRoutingInfo::data_status' is not initialized in the constructor.
/libretroshare/src/grouter/groutertypes.h:99: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterRoutingInfo::tunnel_status' is not initialized in the
constructor.
/libretroshare/src/grouter/groutertypes.h:99: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterRoutingInfo::received_time_TS' is not initialized in the
constructor.
/libretroshare/src/grouter/groutertypes.h:99: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterRoutingInfo::last_sent_TS' is not initialized in the
constructor.
/libretroshare/src/grouter/groutertypes.h:99: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterRoutingInfo::last_tunnel_request_TS' is not initialized in the
constructor.
/libretroshare/src/grouter/groutertypes.h:99: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterRoutingInfo::sending_attempts' is not initialized in the
constructor.
/libretroshare/src/grouter/groutertypes.h:99: warning:
Cppcheck(uninitMemberVar): Member variable
'GRouterRoutingInfo::routing_flags' is not initialized in the
constructor.
/libretroshare/src/ft/ftturtlefiletransferitem.h:36: warning:
Cppcheck(uninitMemberVar): Member variable
'RsTurtleFileRequestItem::chunk_offset' is not initialized in the
constructor.
/libretroshare/src/ft/ftturtlefiletransferitem.h:36: warning:
Cppcheck(uninitMemberVar): Member variable
'RsTurtleFileRequestItem::chunk_size' is not initialized in the
constructor.
/libretroshare/src/ft/ftturtlefiletransferitem.h:52: warning:
Cppcheck(uninitMemberVar): Member variable
'RsTurtleFileDataItem::chunk_offset' is not initialized in the
constructor.
/libretroshare/src/ft/ftturtlefiletransferitem.h:52: warning:
Cppcheck(uninitMemberVar): Member variable
'RsTurtleFileDataItem::chunk_size' is not initialized in the
constructor.
/libretroshare/src/ft/ftturtlefiletransferitem.h:52: warning:
Cppcheck(uninitMemberVar): Member variable
'RsTurtleFileDataItem::chunk_data' is not initialized in the
constructor.
/libretroshare/src/ft/ftturtlefiletransferitem.h:102: warning:
Cppcheck(uninitMemberVar): Member variable
'RsTurtleChunkCrcRequestItem::chunk_number' is not initialized in the
constructor.
/libretroshare/src/ft/ftturtlefiletransferitem.h:116: warning:
Cppcheck(uninitMemberVar): Member variable
'RsTurtleChunkCrcItem::chunk_number' is not initialized in the
constructor.
/libretroshare/src/ft/fttransfermodule.cc:158: warning:
Cppcheck(unreadVariable): Variable 'mit' is assigned a value that is
never used.
/libretroshare/src/ft/fttransfermodule.h:59: warning:
Cppcheck(noExplicitConstructor): Class 'peerInfo' has a constructor with
1 argument that is not explicit.
/libretroshare/src/ft/fttransfermodule.h:114: warning:
Cppcheck(noExplicitConstructor): Class 'ftFileStatus' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/ft/fttransfermodule.cc:548: warning:
Cppcheck(noExplicitConstructor): Class 'HashThread' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/ft/ftserver.cc:134: warning:
Cppcheck(unreadVariable): Variable 'localcachedir' is assigned a value
that is never used.
/libretroshare/src/ft/ftserver.cc:135: warning:
Cppcheck(unreadVariable): Variable 'remotecachedir' is assigned a value
that is never used.
/libretroshare/src/ft/ftfilecreator.cc:86: warning:
Cppcheck(unusedVariable): Unused variable: it
/libretroshare/src/ft/ftfilecreator.cc:545: warning:
Cppcheck(unreadVariable): Variable 'chunks_for_this_peer' is modified
but its new value is never used.
/libretroshare/src/file_sharing/p3filelists.h:86: warning:
Cppcheck(noExplicitConstructor): Class 'p3FileDatabase' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/file_sharing/rsfilelistitems.h:78: warning:
Cppcheck(uninitMemberVar): Member variable
'RsFileListsSyncRequestItem::flags' is not initialized in the
constructor.
/libretroshare/src/file_sharing/rsfilelistitems.h:78: warning:
Cppcheck(uninitMemberVar): Member variable
'RsFileListsSyncRequestItem::last_known_recurs_modf_TS' is not
initialized in the constructor.
/libretroshare/src/file_sharing/rsfilelistitems.h:78: warning:
Cppcheck(uninitMemberVar): Member variable
'RsFileListsSyncRequestItem::request_id' is not initialized in the
constructor.
/libretroshare/src/file_sharing/rsfilelistitems.h:94: warning:
Cppcheck(uninitMemberVar): Member variable
'RsFileListsSyncResponseItem::flags' is not initialized in the
constructor.
/libretroshare/src/file_sharing/rsfilelistitems.h:94: warning:
Cppcheck(uninitMemberVar): Member variable
'RsFileListsSyncResponseItem::last_known_recurs_modf_TS' is not
initialized in the constructor.
/libretroshare/src/file_sharing/rsfilelistitems.h:94: warning:
Cppcheck(uninitMemberVar): Member variable
'RsFileListsSyncResponseItem::request_id' is not initialized in the
constructor.
/libretroshare/src/file_sharing/rsfilelistitems.h:52: warning:
Cppcheck(noExplicitConstructor): Class 'RsFileListsItem' has a
constructor with 1 argument that is not explicit.
/libretroshare/src/file_sharing/hash_cache.h:57: warning:
Cppcheck(noExplicitConstructor): Class 'HashStorage' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/file_sharing/p3filelists.cc:375: warning:
Cppcheck(unusedVariable): Unused variable: mit
/libretroshare/src/file_sharing/p3filelists.cc:1530: warning:
Cppcheck(unreadVariable): Variable 'indent' is assigned a value that is
never used.
/libretroshare/src/file_sharing/hash_cache.h:57: warning:
Cppcheck(noExplicitConstructor): Class 'HashStorage' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/file_sharing/directory_storage.h💯 warning:
Cppcheck(noExplicitConstructor): Class 'FileIterator' has a constructor
with 1 argument that is not explicit.
/libretroshare/src/file_sharing/directory_storage.cc:579: warning:
Cppcheck(unusedVariable): Unused variable: peers
/libretroshare/src/file_sharing/dir_hierarchy.cc:883: warning:
Cppcheck(unreadVariable): Variable 'nunknown' is modified but its new
value is never used.
/libretroshare/src/file_sharing/dir_hierarchy.h:71: warning:
Cppcheck(noExplicitConstructor): Class 'DirEntry' has a constructor with
1 argument that is not explicit.
/libretroshare/src/file_sharing/dir_hierarchy.cc:1056: warning:
Cppcheck(noExplicitConstructor): Class 'read_error' has a constructor
with 1 argument that is not explicit.
In lastest Qt versions linux-* mkspec doesn't match android anymore,
this was triggering a compilation error as DATA_DIR was not defined the
RsAccountsDetail::PathDataDirectory(bool check) code has been rearranged
so it works reasonably also on Android and do not depend on DATA_DIR
define anymore
Updated Android compiling documentation
/libretroshare/src/file_sharing/p3filelists.cc👎 In static member
function ‘static bool p3FileDatabase::convertPointerToEntryIndex(const
void*, p3FileDatabase::EntryIndex&, uint32_t&)’:
/libretroshare/src/file_sharing/p3filelists.cc:624: warning:
dereferencing type-punned pointer will break strict-aliasing rules [-
Wstrict-aliasing]
e = EntryIndex( *reinterpret_cast<uint32_t*>(&p) &
ENTRY_INDEX_BIT_MASK ) ;
/home/phenom/GIT/RetroShare/trunk/libretroshare/src/file_sharing/
p3filelists.cc:625: warning: dereferencing type-punned pointer will
break strict-aliasing rules [-Wstrict-aliasing]
friend_index = (*reinterpret_cast<uint32_t*>(&p)) >>
NB_ENTRY_INDEX_BITS ;
/libretroshare/src/gxstrans/p3gxstransitems.h:29: In file included from
../../../trunk/libretroshare/src/gxstrans/p3gxstransitems.h:29:0,
/libretroshare/src/gxstrans/p3gxstransitems.cc:19: from ../../../trunk/
libretroshare/src/gxstrans/p3gxstransitems.cc:19:
/libretroshare/src/gxstrans/p3gxstransitems.cc👎 In member function
‘virtual void
OutgoingRecord_deprecated::serial_process(RsGenericSerializer::SerializeJob,
RsGenericSerializer::SerializeContext&)’:
/libretroshare/src/serialiser/rstypeserializer.h:61: warning:
dereferencing type-punned pointer will break strict-aliasing rules [-
Wstrict-aliasing]
RsTypeSerializer::serial_process<T>(j, ctx, reinterpret_cast<T&>(I),
#I);\
/libretroshare/src/gxstrans/p3gxstransitems.cc:51: in expansion of macro
‘RS_REGISTER_SERIAL_MEMBER_TYPED’
RS_REGISTER_SERIAL_MEMBER_TYPED(clientService, uint16_t);
/libretroshare/src/gxstrans/p3gxstransitems.cc👎 In member function
‘virtual void
OutgoingRecord::serial_process(RsGenericSerializer::SerializeJob,
RsGenericSerializer::SerializeContext&)’:
/libretroshare/src/serialiser/rstypeserializer.h:61: warning:
dereferencing type-punned pointer will break strict-aliasing rules [-
Wstrict-aliasing]
RsTypeSerializer::serial_process<T>(j, ctx, reinterpret_cast<T&>(I),
#I);\
/libretroshare/src/gxstrans/p3gxstransitems.cc:65: in expansion of macro
‘RS_REGISTER_SERIAL_MEMBER_TYPED’
RS_REGISTER_SERIAL_MEMBER_TYPED(clientService, uint16_t);
/retroshare-gui/src/gui/common/RsBanListToolButton.cpp👎 In member
function ‘void RsBanListToolButton::applyIp()’:
/retroshare-gui/src/gui/common/RsBanListToolButton.cpp:163: warning:
‘list_type’ may be used uninitialized in this function [-Wmaybe-
uninitialized]
changed = rsBanList->removeIpRange(addr, masked_bytes, list_type);
/libretroshare/src/services/p3idservice.cc:1216: error:
Cppcheck(eraseDereference): Iterator 'it' used after element has been
erased.
/libretroshare/src/services/p3idservice.cc:1346: error:
Cppcheck(eraseDereference): Iterator 'it' used after element has been
erased.
/libretroshare/src/services/p3idservice.cc:448: error:
Cppcheck(uninitvar): Uninitialized variable: max_keep_time
previously declared as a class
/libretroshare/src/chat/p3chatservice.h:56: warning: 'p3ChatService'
defined as a struct here but previously declared as a class [-
Wmismatched-tags]
struct p3ChatService :
/libretroshare/src/rsserver/p3msgs.h:33: did you mean struct here?
class p3ChatService;
previously declared as a class
/libretroshare/src/services/p3msgservice.h:58: warning: 'p3MsgService'
defined as a struct here but previously declared as a class [-
Wmismatched-tags]
struct p3MsgService :
/libretroshare/src/rsserver/p3msgs.h:32: did you mean struct here?
class p3MsgService;
/libretroshare/src/dht/connectstatebox.cc:394: warning: this statement
may fall through [-Wimplicit-fallthrough=]
if (mNextAttemptTS > now)
/libretroshare/src/dht/connectstatebox.cc:401: here
default:
/libretroshare/src/dht/connectstatebox.cc:406: warning: this statement
may fall through [-Wimplicit-fallthrough=]
if (mState != CSB_FAILED_WAIT)
/libretroshare/src/dht/connectstatebox.cc:414: here
case CSB_START:
/libretroshare/src/dht/connectstatebox.cc:530: warning: this statement
may fall through [-Wimplicit-fallthrough=]
if (mNextAttemptTS > now)
/libretroshare/src/dht/connectstatebox.cc:540: here
default:
/libretroshare/src/dht/connectstatebox.cc:543: warning: this statement
may fall through [-Wimplicit-fallthrough=]
if (mState != CSB_FAILED_WAIT)
/libretroshare/src/dht/connectstatebox.cc:551: here
case CSB_START:
/libretroshare/src/gxs/rsgxsnetservice.cc:247: warning: unused variable
'GIXS_CUT_OFF' [-Wunused-const-variable]
static const uint32_t GIXS_CUT_OFF =
0;
/libretroshare/src/gxs/rsgxsnetservice.cc:251: warning: unused variable
'SECURITY_DELAY_TO_FORCE_CLIENT_REUPDATE' [-Wunused-const-variable]
static const uint32_t SECURITY_DELAY_TO_FORCE_CLIENT_REUPDATE =
3600; // force re-update if there happens to be a large delay between
our server side TS and the client side TS of friends
/libretroshare/src/chat/distributedchat.cc:57: warning: unused variable
'MAX_MESSAGES_PER_SECONDS_NUMBER' [-Wunused-const-variable]
static const uint32_t MAX_MESSAGES_PER_SECONDS_NUMBER = 5 ; // max
number of messages from a given peer in a window for duration below
declared as a struct
/libretroshare/src/gxstrans/p3gxstrans.h:88: warning: 'p3GxsTrans'
defined as a class here but previously declared as a struct [-
Wmismatched-tags]
class p3GxsTrans : public RsGenExchange, public GxsTokenQueue, public
p3Config, public RsGxsTrans
/libretroshare/src/gxstrans/p3gxstrans.h:31: did you mean class here?
struct p3GxsTrans;
/libretroshare/src/gxstrans/p3gxstrans.cc:870: warning: this statement
may fall through [-Wimplicit-fallthrough=]
pr.sent_ts = time(NULL) ; //pr.mailItem.meta.mPublishTs = time(NULL);
/libretroshare/src/gxstrans/p3gxstrans.cc:872: here
case GxsTransSendStatus::PENDING_PREFERRED_GROUP:
/libretroshare/src/gxstrans/p3gxstrans.cc:883: warning: this statement
may fall through [-Wimplicit-fallthrough=]
pr.group_id = mPreferredGroupId ; //pr.mailItem.meta.mGroupId =
mPreferredGroupId;
/libretroshare/src/gxstrans/p3gxstrans.cc:885: here
case GxsTransSendStatus::PENDING_RECEIPT_CREATE:
/libretroshare/src/gxstrans/p3gxstrans.cc:906: warning: this statement
may fall through [-Wimplicit-fallthrough=]
pr.presignedReceipt.msg.setBinData(&grsrz[0], grsz);
/libretroshare/src/gxstrans/p3gxstrans.cc:908: here
case GxsTransSendStatus::PENDING_RECEIPT_SIGNATURE: // (cyril)
This step is never actually used.
/libretroshare/src/gxstrans/p3gxstrans.cc:924: warning: this statement
may fall through [-Wimplicit-fallthrough=]
pr.presignedReceipt.meta.setBinData(&srx[0], metaSize);
/libretroshare/src/gxstrans/p3gxstrans.cc:926: here
case GxsTransSendStatus::PENDING_PAYLOAD_CREATE:
/libretroshare/src/gxstrans/p3gxstrans.cc:938: warning: this statement
may fall through [-Wimplicit-fallthrough=]
memcpy(&pr.mailItem.payload[offset], &pr.mailData[0], datasize);
/libretroshare/src/gxstrans/p3gxstrans.cc:940: here
case GxsTransSendStatus::PENDING_PAYLOAD_ENCRYPT:
/libretroshare/src/gxstrans/p3gxstrans.cc:982: warning: this statement
may fall through [-Wimplicit-fallthrough=]
}
/libretroshare/src/gxstrans/p3gxstrans.cc:984: here
case GxsTransSendStatus::PENDING_PUBLISH:
/libretroshare/src/gxs/rsgxsnetservice.cc:867: warning: variable ‘it’
set but not used [-Wunused-but-set-variable]
std::map<RsGxsGroupId,RsGxsServerMsgUpdate>::iterator it =
mServerMsgUpdateMap.find(grpId) ;
/libretroshare/src/gxs/rsgxsnetservice.cc:2434: warning: variable ‘it’
set but not used [-Wunused-but-set-variable]
ClientGrpMap::iterator it =
mClientGrpUpdateMap.find(peerFrom);
/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:
/libretroshare/src/rsserver/p3serverconfig.cc:292: warning: this
statement may fall through [-Wimplicit-fallthrough=]
if (mPeerMgr->getFriendCount(true, false) > MIN_BASIC_FRIENDS)
/libretroshare/src/rsserver/p3serverconfig.cc:297: here
case RSCONFIG_USER_LEVEL_BASIC:
/libretroshare/src/rsserver/p3serverconfig.cc:300: warning: this
statement may fall through [-Wimplicit-fallthrough=]
if (mPeerMgr->haveOnceConnected())
/libretroshare/src/rsserver/p3serverconfig.cc:306: here
case RSCONFIG_USER_LEVEL_CASUAL:
/libretroshare/src/rsserver/rsaccounts.cc:130: warning: variable
‘pgpNameFound’ set but not used [-Wunused-but-set-variable]
bool pgpNameFound = false;
/libretroshare/src/pqi/pqissl.cc:449: warning: this statement may fall
through [-Wimplicit-fallthrough=]
sslmode = PQISSL_ACTIVE; /* we're starting this one */
/libretroshare/src/pqi/pqissl.cc:456: here
case WAITING_DELAY:
/libretroshare/src/pqi/pqisslpersongrp.cc:125: warning: this statement
may fall through [-Wimplicit-fallthrough=]
std::cerr << " --> falling back to Tor" << std::endl;
/libretroshare/src/pqi/pqisslpersongrp.cc:126: here
case RS_HIDDEN_TYPE_TOR:
/libretroshare/src/pqi/p3peermgr.cc:2619: warning: variable ‘peerIt1’
set but not used [-Wunused-but-set-variable]
std::set<RsPgpId>::iterator peerIt1 =
groupItem.peerIds.find(*peerIt);
/libretroshare/src/pgp/pgphandler.cc:62: warning: this statement may
fall through [-Wimplicit-fallthrough=]
case OPS_PARSER_CMD_GET_SK_PASSPHRASE_PREV_WAS_BAD: prev_was_bad =
true ;
/libretroshare/src/pgp/pgphandler.cc:63: here
case OPS_PARSER_CMD_GET_SK_PASSPHRASE:
/libretroshare/src/ft/ftchunkmap.cc:190: warning: this statement may
fall through [-Wimplicit-fallthrough=]
case FileChunksInfo::CHUNK_CHECKING: _file_is_complete = false ;
/libretroshare/src/ft/ftchunkmap.cc:191: here
case FileChunksInfo::CHUNK_DONE: _total_downloaded +=
sizeOfChunk(i) ;
/libretroshare/src/tcponudp/bss_tou.c:246: warning: this statement may
fall through [-Wimplicit-fallthrough=]
num=0;
/libretroshare/src/tcponudp/bss_tou.c:247: here
case BIO_C_FILE_SEEK:
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
pqi/authssl.cc: In member function 'virtual X509*
AuthSSLimpl::SignX509ReqWithGPG(X509_REQ*, long int)':
pqi/authssl.cc:929:3: error: jump to label 'err' [-fpermissive]
err:
^
pqi/authssl.cc:872:22: error: from here [-fpermissive]
goto err;
^
pqi/authssl.cc:877:24: error: crosses initialization of 'unsigned
char* p'
unsigned char *p=buf_in;
^
pqi/authssl.cc: In member function 'virtual bool
AuthSSLimpl::AuthX509WithGPG(X509*, uint32_t&)':
pqi/authssl.cc:1091:1: error: jump to label 'err' [-fpermissive]
err:
^
pqi/authssl.cc:1027:8: error: from here [-fpermissive]
goto err;
^
pqi/authssl.cc:1035:17: error: crosses initialization of 'unsigned
char* p'
unsigned char *p=buf_in;
^
RsItem added some comment and more verbose error reporting
RsTypeSerializer added support for RsItem derived classes as members
added utility macros for better readability of the code and easier
handling of RsItem derived members
RS_REGISTER_SERIAL_MEMBER(I)
RS_REGISTER_SERIAL_MEMBER_TYPED(I, T)
RS_REGISTER_ITEM_TYPE(T)
RsNxsMsg::serial_process use new macros for better readability and to
have an exemple of usage with RsTlvItem derived class
Fix undefined reference to RsNxsMsg::print
/libretroshare/src/pqi/pqiservice.h:80: warning: unused parameter
‘names’ [-Wunused-parameter]
virtual void getItemNames(std::map<uint8_t,std::string>& names)
const {} // This does nothing by default. Service should derive it in
order to give info for the UI
^~~~~
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.
warning: implicit conversion from 'int' to 'char' changes value from 255
to -1 [-Wconstant-conversion]
asctobin()[i] = 255; /* used to
detect invalid characters */
warning: private field 'mAutoBanIdentitiesLimit' is not used [-Wunused-
private-field]
float mAutoBanIdentitiesLimit ;
warning: private field 'mFiles' is not used [-Wunused-private-field]
RsFiles* mFiles;
warning: private field 'lastGroupId' is not used [-Wunused-private-
field]
uint32_t lastGroupId;
warning: private field 'waittimes' is not used [-Wunused-private-field]
int waittimes;
warning: private field 'listen_checktime' is not used [-Wunused-private-
field]
long listen_checktime;
/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;
~~~ ^ ~~~
ChatHandler::handleUnreadMsgs(...) deprecate 'id' field
in favour of 'chat_id'
IdentityHandler::handleWildcard(...) reduce sleep time from 500 to 50 ms
IdentityHandler::handleWildcard(...) expose 'is_contact' to JSON API
Split contacts list delegate into GxsIdentityDelegate.qml
Update to QtQuick.Controls 2.0 because 1.4 is not supported anymore and
2.1 is not available yet in Qt 5.7.1
ChatView.qml mark messages as read
Set refreshTimer.triggeredOnStart=true to improve reponsiveness of views
Contacts.qml use a Popup that is available in Controls 2.0 instead of a
castrated Dialog to display full fingerprint
TrustedNodesView.qml check if locations[*].is_online is an array before
attempting calling reduce
main.qml added menuentry to shutdown de core
main.qml added menuantry to search contact
GxsTrans is a generic transport service, use more generic name trans
instead of mail to avoid confusion
Renamed size(...) to seria_size(...) for costistence whit the codebase
Moved GxsTrans and related things to gxstrans directory
Removed outdated and now uncompatible gxsmail test service
Avoid expose internal items in public interface methods
DistantChatService::initiateDistantChatConnexion(...) made notification
message optional (enabled by default)
p3ChatService removed duplicion avoidance as it is not necessary
p3ChatService::sendStatusString(...) send status only if peer is online
protect p3ChatService::mDistantGxsMap with mutex as operation on it may
be done by different threads
p3ChatService::receiveGxsMai(...) set chat message item peer id with
distant tunnel id, so it is recognized as a distant message later
made p3GxsTunnelService::makeGxsTunnelId(...) static as it need no
access to this, now it can be used easier by other components
rename RsGxsMailItem::recipientsHint to recipientHint as for now only
one recipient is possible (TODO: update documentation too)
GxsMailsClient::receiveGxsMail(...) changed paramethers for better
abstracion, now destination id is passed too because it is usually a
very useful information
ChatWidget some adaptation to async chat, a couple of method have been
deprecated too
PopupDistantChatDialog::updateDisplay(...) adapt message shown to the
user to the new async chat paradigm (TODO: need review)
To implement async distant chat p3ChatService use p3GxsMails in a similar
way that has been done with p3MsgService tought as p3ChatService was not
thinked for async comunication in the first place the result is quite
clumsy. A proper chat service should be rewritten from scratch in the near
future, with proper chat history and other desiderables features.
deprecated empty p3ChatService::locked_storeIncomingMsg(...)
RsServer properly handle deletion (childs are not yet)
p3GxsMails properly handle deletion
RsControl::instance() use proper static initialization
p3GxsMails register configuration files at right time
RsGxsMailBaseItem take in account offset in header pointer
RsGxsMailSerializer use C++11 safe enum class for items types
RsGxsMailItem take in account offset in header pointer
RsGxsMailItem::deserialize(...) properly calculate final offset
p3GxsMails::handleResponse(...) delete group items after usage
move ex inner struct OutgoingRecord to gxs mail items header
p3MsgService::saveList removed unused variable
p3MsgService::notifyDataStatus(...) take in account multiple backends
p3MsgService::receiveGxsMail(...) take in account multiple backends
p3MsgService::receiveGRouterData(...) take in account multiple backends
Added prersistence to p3MsgService::gxsOngoingMessages
RsTemporaryMemory was complaining of being initialized with size 0 in
case of empty list was passed to the method, this is a legitimate use
case when one want have an empty list as state, so in this case pass 1
as argument to RsTemporaryMemory constructor
Moved testing code to TestGxsMailClientService
RsGxsMailPresignedReceipt and RsGxsMailItem inherit RsGxsMailBaseItem
p3GxsMails::sendMail(...) check paramenters and return immediately
Added GxsMailsClient::notifySendMailStatus(...) to notify sent mails status
Added p3GxsMails::querySendMailStatus(...) so clients can query status
This method does protect recipient metadata but doesn't support multicasting so
if a mail has N recipients N copies of the mail need to be sent to the group
RsGenExchange made some members protected instead of private so child classes
can use them
Create Rs{G,N}xsMailPresignedReceipt items to prepare and dispatch receipts
Move RsNxsMsg deserialization to RsNxsMsg::deserialize(...) method
Add notice about param not being checked in GxsSecurity
Use proper types for RsGenExchange::getMsg* params
Implement bitwise or and not operators for t_RsGenericIdType
GxsMail unsubscribe old unused groups
GxsMail initial work on supporting client services
Implemented p3IdService::encryptData(...) for multiple recipients
Periodically pool GXS backend for new groups and subscribe to all.
A group is created and an email can be sent to it but for some reason
the group and and the email are not received by friends.
RsGxsDataAccess deprecate unused ansType
RsGxsDataAccess::setReq(...) use proper types for params
RsGxsDataAccess::getGroupData(...) print useful information in case of error
GxsRequest proper initialization in constructor
GxsRequest deprecate meaningless ansType
RsGroupMetaData Fix comment to avoid confusion
Deprecated meaningless RS_TOKREQ_ANSTYPE_* common source of confusion
p3GxsCircles::request_CircleIdList() removed unused variable
p3GxsCircles::request_CircleIdList() preper return value
Fix a warning in RsGenExchange::messagePublicationTest(...)
Fix documentation for RsGenExchange::{generatePublicToken(), acknowledgeTokenGrp(...)}
Properly initialize RsGroupMetaData, RsMsgMetaData and p3GxsForums members
Cleanup RsGxsNotify
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.
Autologin is disabled by default at compile time, and a warning to
discourage it's usage is printed if it is enabled.
This will make default RetroShare build safer and reduce dependencies as
example we don't depends anymore on gnome keyring is not needed in default
build for linux anymore.