/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.