Creating GXS groups imply a bunch of crypto operations that require lot
of time expecially on embedded device, channel creation was reported
as failed while it was still pending.
Reduce too long lines.
Print API error messages also on std::cerr.
Discover peers on the same broadcast domain/LAN
Implements own node announcement
Implements others announcement listening
Implements API to get notifiend when other nodes get discovered
Implements API to get discovered nodes
Add discovered peer locator to rsPeers if it is already friend
Yet a bunch of things to do to take full advantage of this new
implementation
Workaround miss-behaviour on old Android phones
Cleanup indentation a bit
Consistent param naming
Introduce default parameter values also for output paramethers
In file included from ../../../trunk/libretroshare/src/gxs/rsgxsutil.cc:
26:
../../../trunk/libretroshare/src/gxs/rsgxsutil.h:217:16: warning:
private field 'mSerializer' is not used [-Wunused-private-field]
RsSerialType& mSerializer;
^
In file included from ../../../trunk/libretroshare/src/turtle/
p3turtle.cc:30:
In file included from ../../../trunk/libretroshare/src/rsserver/p3face.h:
38:
In file included from ../../../trunk/libretroshare/src/chat/
p3chatservice.h:30:
In file included from ../../../trunk/libretroshare/src/rsitems/
rsmsgitems.h:34:
In file included from ../../../trunk/libretroshare/src/grouter/
grouteritems.h:32:
In file included from ../../../trunk/libretroshare/src/grouter/
groutermatrix.h:29:
In file included from ../../../trunk/libretroshare/src/grouter/
groutertypes.h:28:
../../../trunk/libretroshare/src/turtle/p3turtle.h:447:8: warning:
private field '_force_digg_new_tunnels' is not used [-Wunused-private-
field]
bool _force_digg_new_tunnels ;
^
../../../trunk/libretroshare/src/services/autoproxy/
rsautoproxymonitor.cc:263:24: warning: pragma diagnostic pop could not
pop, no matching push [-Wunknown-pragmas]
^
../../../trunk/libretroshare/src/services/autoproxy/
rsautoproxymonitor.cc:295:24: warning: pragma diagnostic pop could not
pop, no matching push [-Wunknown-pragmas]
^
./../../trunk/retroshare-gui/src/gui/FileTransfer/TransfersDialog.cpp:
723: warning: pragma diagnostic pop could not pop, no matching push [-
Wunknown-pragmas]
^
'RsGxsChannels::createVote' hides overloaded virtual function
In file included from temp/moc/moc_GxsChannelGroupItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelGroupItem.h:24:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:116:15:
warning: 'RsGxsChannels::createComment' hides overloaded virtual
function [-Woverloaded-virtual]
virtual bool createComment(RsGxsComment& comment) = 0;
^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:172:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createComment'
declared here: different number of parameters (2 vs 1)
virtual bool createComment(uint32_t &token, RsGxsComment
&comment) = 0;
^
In file included from temp/moc/moc_GxsChannelGroupItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelGroupItem.h:24:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:132:15:
warning: 'RsGxsChannels::createVote' hides overloaded virtual function
[-Woverloaded-virtual]
virtual bool createVote(RsGxsVote& vote) = 0;
^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:173:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createVote'
declared here: different number of parameters (2 vs 1)
virtual bool createVote(uint32_t &token, RsGxsVote &vote) = 0;
^
In file included from temp/moc/moc_GxsChannelPostItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelPostItem.h:26:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:116:15:
warning: 'RsGxsChannels::createComment' hides overloaded virtual
function [-Woverloaded-virtual]
virtual bool createComment(RsGxsComment& comment) = 0;
^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:172:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createComment'
declared here: different number of parameters (2 vs 1)
virtual bool createComment(uint32_t &token, RsGxsComment
&comment) = 0;
^
In file included from temp/moc/moc_GxsChannelPostItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelPostItem.h:26:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:132:15:
warning: 'RsGxsChannels::createVote' hides overloaded virtual function
[-Woverloaded-virtual]
virtual bool createVote(RsGxsVote& vote) = 0;
^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:173:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createVote'
declared here: different number of parameters (2 vs 1)
virtual bool createVote(uint32_t &token, RsGxsVote &vote) = 0;
^
virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/
8.2.1/../../../../include/c++/8.2.1/algorithm:62:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/
8.2.1/../../../../include/c++/8.2.1/bits/stl_algo.h:62:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/
8.2.1/../../../../include/c++/8.2.1/bits/stl_tempbuf.h:60:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:98:7: warning: destructor called on non-final
'xxx' that has virtual functions but non-virtual destructor [-Wdelete-
non-virtual-dtor]
{ __pointer->~_Tp(); }
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:108:11: note: in instantiation of function
template specialization 'std::_Destroy<xxx>' requested here
std::_Destroy(std::__addressof(*__first));
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:137:2: note: in instantiation of function
template specialization 'std::_Destroy_aux<false>::__destroy<xxx *>'
requested here
__destroy(__first, __last);
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:206:7: note: in instantiation of function
template specialization 'std::_Destroy<xxx *>' requested here
_Destroy(__first, __last);
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_vector.h:567:7: note: in instantiation of function
template specialization 'std::_Destroy<xxx *, xxx>' requested here
std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
^
../../../trunk/libretroshare/src/retroshare/xxx:*:*: note: in
instantiation of member function 'std::vector<xxx, std::allocator<xxx>
>::~vector' requested here
Something():
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:98:19: note: qualify call to silence this
warning
{ __pointer->~_Tp(); }
^
In case an object was expected while another type was got RsSerializable
JSON deserialization code was crashing, this commit solve the crash in
this not so corner case
This was causing scary error message in RsGxsChannels with autodoanload
enabled, when all messages where already processed none matched the
filter so all messages where returned,
making p3GxsChannels::handleUnprocessedPost furious
more details into this forum post
retroshare://forum?name=Scary%20message%2C%20but%20which%20doesn%27t%20seem%20to%20be%20the%20source%20of%20the%20problems%20Was%3A%20More%20GXS%20strange%20messages&id=8fd22bd8f99754461e7ba1ca8a727995&msgid=04f10ff97f761c6840c33f1610cb050f0f73da8d
Deprecated old method which exposed interna async mechanism to the API
users, making their and out life difficult
Things that really need to be async like turtle search/requests now accept
callbacks, so the caller can be notified everytime some result is got
back
Implement RsThread::async commodity wrapper to execute blocking API
calls without blocking the caller, this could be optimized
trasparently using a thread pool if necessary
Added hints into some retroshare-gui files on how to use RsThread::async
thoghether with QMetaObject::invokeMethod and blocking RetroShare API
to simplyfy interaction between GUI and libretroshare
rsGetHostByName doesn't support IPv6 addresses.
Before this commit when
an hostname had both AAAA and A record rsGetHostByName retrurned success
but with 0.0.0.0 invalid address. As rsGetHostByName is not capable of
handling IPv6 (fixing it would require API change and a bunch of
refactors around) just avoid to receive IPv6 addresses on resolition, so
the correct IPv4 address is returned if present, otherwise fail
gracefully (A record not found).
Forging of BIO_METHOD may be the cause of the stack overflow as the
internal structure in openssl changed so the methods get assigned to
wrong pointer.
Kudos Cyril to notice newer openssl internal struct had one new pointer
inserted as second member
Caused by unneeded pointer usages + not enough careful IPv6 porting
I haven't managed to reproduce the crash nor to test the fix due it
happening only when UDP relayed connection happens (apparently never on
my nodes.
I have managed to discover where the bug comes from thanks to multiple
user reports, specially to Ilario report which documented 3 crashes
happening on 0.6.4 with complete log.
/retroshare-gui/src/gui/settings/MessagePage.cpp:62:19: warning:
deleting object of polymorphic class type 'Rs::Msgs::MsgTagType' which
has non-virtual destructor might cause undefined behavior [-Wdelete-non-
virtual-dtor]
/retroshare-gui/src/gui/settings/MessagePage.cpp:62: warning: delete
called on non-final 'Rs::Msgs::MsgTagType' that has virtual functions
but non-virtual destructor
/retroshare-gui/src/gui/settings/MessagePage.cpp:86: warning: use of
old-style cast
/retroshare-gui/src/gui/settings/MessagePage.cpp:172: warning: zero as
null pointer constant
/retroshare-gui/src/gui/settings/MessagePage.cpp:176: warning: implicit
conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int')
/retroshare-gui/src/gui/settings/MessagePage.cpp:203: warning: zero as
null pointer constant
/retroshare-gui/src/gui/settings/MessagePage.cpp:207: warning: implicit
conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int')
/retroshare-gui/src/gui/settings/MessagePage.cpp:261: warning: implicit
conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int')
/libretroshare/src/retroshare/rsmsgs.h:168: warning:
'Rs::Msgs::MessageInfo' has virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:168: warning: 'MessageInfo' has
no out-of-line virtual method definitions; its vtable will be emitted in
every translation unit
/libretroshare/src/retroshare/rsmsgs.h:234: warning:
'Rs::Msgs::MsgInfoSummary' has virtual functions but non-virtual
destructor
/libretroshare/src/retroshare/rsmsgs.h:234: warning: 'MsgInfoSummary'
has no out-of-line virtual method definitions; its vtable will be
emitted in every translation unit
/libretroshare/src/retroshare/rsmsgs.h:261: warning:
'Rs::Msgs::MsgTagInfo' has virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:328: warning: 'ChatId' has
virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:400: warning: 'ChatLobbyInvite'
has virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:420: warning:
'VisibleChatLobbyRecord' has virtual functions but non-virtual
destructor
/libretroshare/src/retroshare/rsmsgs.h:420: warning:
'VisibleChatLobbyRecord' has no out-of-line virtual method definitions;
its vtable will be emitted in every translation unit
/libretroshare/src/retroshare/rsmsgs.h:449: warning: 'ChatLobbyInfo' has
virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:486: warning: 'RsMsgs' has no
out-of-line virtual method definitions; its vtable will be emitted in
every translation unit
About vtable:
https://stackoverflow.com/questions/23746941/what-is-the-meaning-of-
clangs-wweak-vtables
https://stackoverflow.com/questions/50463374/avoid-weak-vtable-warnings-
for-classes-only-defined-in-a-source-file
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved1' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved2' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved3' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved4' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved5' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved6' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved7' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:34: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:55: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:120: warning: use of old-
style cast
/libretroshare/src/rsserver/rsloginhandler.cc:122: warning: missing
field 'reserved' initializer
/libretroshare/src/rsserver/rsloginhandler.cc:243: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:244: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:248: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:254: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:443: warning: 'return'
will never be executed
/libretroshare/src/rsserver/rsloginhandler.cc:270: warning: 'return'
will never be executed
/libretroshare/src/rsserver/rsloginhandler.cc:468: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:470: warning: use of old-
style cast
/libretroshare/src/rsserver/rsloginhandler.cc:470: warning: cast from
'const char *' to 'char *' drops const qualifier
/libretroshare/src/rsserver/rsloginhandler.cc:471: warning: use of old-
style cast
/libretroshare/src/rsserver/rsloginhandler.cc:471: warning: cast from
'const char *' to 'char *' drops const qualifier
/libretroshare/src/rsserver/rsloginhandler.cc:472: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:476: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:630: warning: 'return'
will never be executed
/libretroshare/src/rsserver/rsloginhandler.cc:650: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:651: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:655: warning: zero as null
pointer constant