Commit Graph

5220 Commits

Author SHA1 Message Date
Gioacchino Mazzurco
ea86fe2615
Safer RsGxsChannel API
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
2018-11-09 12:41:08 +01:00
Gioacchino Mazzurco
8fd22c8fd1
Safer rsGxsChannel API
Protect data members with mutexes
Print messages when errors happens
2018-11-09 12:41:08 +01:00
G10h4ck
5e6e9e03e5
Merge pull request #1390 from G10h4ck/jsonapi
JSON API to check if PGP id is friend
2018-11-09 11:09:56 +01:00
Gioacchino Mazzurco
c4cbcf78f3
Fix DNS resolution for hostnames that has also AAAA record
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).
2018-11-08 13:23:06 +01:00
csoler
cfb194a8ef
Merge pull request #1392 from G10h4ck/hotfix_udp_crash
WIP: Attempt to fix crash in pqissludp
2018-11-06 23:28:54 +01:00
csoler
09f92642d6
removed memory leak in gxsnettunnel 2018-11-06 20:55:10 +01:00
csoler
f976e1c525
removed memory leak in handlign of old chat lobby items 2018-11-06 20:38:35 +01:00
Gioacchino Mazzurco
a3c81e163d
Fix compilation for ubuntu 18.04 LTS
Ubuntu 18.04 still ships OpenSSL 1.1.0g which has bugs in BIO API, this
commit work around those bugs
2018-11-06 13:02:56 +01:00
Gioacchino Mazzurco
d00d0816ff
Use only BIO_METHOD pointer in openssl >= 1.1.0
The type declaration is hidden so we can't declare variable but only
pointers
Fix compilation on Android
2018-11-05 23:39:10 +01:00
Gioacchino Mazzurco
18e02c9f4a
TOU avoid forging BIO_METHOD in openssl >= 1.1.0
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
2018-11-05 22:23:40 +01:00
sehraf
66dff9bf0b
Add a build-time switch to set whether GXS distributes all available data or only sends data withint the configured sync period. 2018-11-05 18:56:11 +01:00
Gioacchino Mazzurco
81cad2ab02
Fix missing include 2018-11-05 14:02:44 +01:00
Gioacchino Mazzurco
1ef9876610
Merge branch 'stacktrace_on_crash' into hotfix_udp_crash 2018-11-05 00:20:33 +01:00
Gioacchino Mazzurco
c0ca1a5aad
Print stack trace on crash 2018-11-05 00:19:45 +01:00
Gioacchino Mazzurco
7d6fba7e8c
Attempt to fix crash in pqissludp
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.
2018-11-04 00:09:28 +01:00
Gioacchino Mazzurco
eca4f8adf7
JSON API to check if PGP id is friend 2018-11-01 23:26:42 +01:00
csoler
4aedfddb9f
fixed bug in GRouter failing to set proper service ID in return receipts 2018-11-01 22:10:17 +01:00
csoler
33b39a8be6
removed uninitialized memory read in determination of own IP 2018-11-01 22:05:22 +01:00
csoler
cb5d247565
removed unnecessry debug output from pqissl 2018-11-01 21:45:59 +01:00
csoler
eb078d462e
added more info to deserialization warning in rsrecogn 2018-11-01 21:42:07 +01:00
csoler
3c6dd1af1c
removed unnecessary saving of config in p3turtle 2018-10-28 17:45:21 +01:00
csoler
20391371c7
fixed bug causing some GXS sync tunnels to remain unused and prevent new tunnels to be created 2018-10-28 17:29:48 +01:00
Gioacchino Mazzurco
e5805e9047
Avoid external port being reset without necessity
Fix RetroSahre behaviour when manually configured external port is
  different to local port
2018-10-24 05:39:31 +02:00
Phenom
358f27be06 Fix warnings in MessagePage.cpp
/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
2018-10-23 17:43:01 +02:00
Phenom
da6778934d Fix Warnings in rsloginhandler.cc
/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
2018-10-23 17:37:19 +02:00
Gioacchino Mazzurco
e746b5b4a0
JSON API unauthenticated access to /rsAccounts/getCurrentAccountId 2018-10-22 00:24:02 +02:00
Gioacchino Mazzurco
6543d713e4
JSON API import/export PGP key to file 2018-10-21 17:12:13 +02:00
Gioacchino Mazzurco
7a1375ff6f
rsPeers add few JSON API calls 2018-10-20 21:13:10 +02:00
csoler
cfe95a57a0
Merge pull request #1377 from G10h4ck/jsonapi
GXS deep search notify results also of already known groups
2018-10-20 14:47:37 +02:00
Gioacchino Mazzurco
2d497d7303
Fix compilation with deep search and rm dead code 2018-10-20 14:07:39 +02:00
Gioacchino Mazzurco
aca29e3ea7
Merge branch 'v0.6-GxsFix2' of https://github.com/csoler/RetroShare into csoler-v0.6-GxsFix2 2018-10-20 13:51:11 +02:00
Gioacchino Mazzurco
5699d81ae7
GXS deep search notify results also of known groups 2018-10-20 13:48:16 +02:00
Gioacchino Mazzurco
9e2c4ce49e
JSON API authorize token in createLocation
Solve uncoherent 401 behaviour at first use without login
2018-10-19 15:10:15 +02:00
Gioacchino Mazzurco
945775e9f5
Fix deep search compiling on 32bit time_t targets 2018-10-18 04:27:30 +02:00
csoler
9b4c48c540
created a connexion between token and meta data of created posts and grps 2018-10-16 22:40:27 +02:00
Gioacchino Mazzurco
2bb24075c4
Print warning also when serializing negative rstime_t 2018-10-16 16:19:23 +02:00
G10h4ck
03cdd6c7b6
Merge pull request #1363 from G10h4ck/jsonapi
New cross-platform target retroshare-service
2018-10-16 16:06:09 +02:00
thunder2
6e1de5b5ed Fixed Windows compile with MinGW 2018-10-14 15:28:20 +02:00
csoler
fae02741d4
Merge pull request #1370 from sehraf/pr_remove-debug-output
remove debug output
2018-10-14 15:00:09 +02:00
csoler
74022a5e10
fixed bug in recent commit that broke turtle generic search 2018-10-13 22:59:26 +02:00
Gioacchino Mazzurco
15b729b35c
Fix crash in p3Peers::loadCertificateFromString
This function is part of the public API so it must be safe to call with
any input, before this commit if would crash if feeded with a broken or
empty certificate radix string.
2018-10-12 22:28:44 +02:00
csoler
9c90b32def
fixed dangerous memcpy in RsTurtleGenericSearchResultItem::clone() function 2018-10-12 22:19:07 +02:00
sehraf
e6febe0297
remove debug output 2018-10-12 18:20:55 +02:00
Gioacchino Mazzurco
fc14300b06
Re-add ftServer::requestDirDetails implementation
The implementation has disappeared merging master causing linking error
2018-10-10 23:43:01 +02:00
Gioacchino Mazzurco
b3d73ba6a5
Suppress aliasing warning in DirDetails and DirStub
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
2018-10-10 23:32:32 +02:00
G10h4ck
047ae7f723
Merge branch 'master' into jsonapi 2018-10-10 22:23:28 +02:00
csoler
18eee374f1
Merge pull request #1361 from sehraf/pr_jsonfy-rsMsg
[jsonapi] add most remaining functions of rsMsg
2018-10-10 22:04:32 +02:00
csoler
09b109d522
Merge pull request #1364 from G10h4ck/safer_time
Use safer rstime_t instead of time_t
2018-10-10 22:03:51 +02:00
Gioacchino Mazzurco
a47eec14e4
Print a warning if deserialized rstime_t is negative 2018-10-10 21:54:50 +02:00
Gioacchino Mazzurco
321fc8a8d4
Implement mostly decent JSON API for channels and post creation
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.
2018-10-10 06:40:56 +02:00