Commit Graph

876 Commits

Author SHA1 Message Date
Gioacchino Mazzurco
16d606b513
refactor LoadCheckX509 into safer AuthSSL::parseX509DetailsFromFile 2019-05-14 22:05:42 +02:00
Gioacchino Mazzurco
41d4599fe3
Cleanup huge amount of AuthSSL cruft
Make reduntant auth check in pqi effective (even if redundant only
  siganture was checked but friendess wasn't)
Evidence redundant auth check in pqi by putting it inside #ifdef this
  way the beaviior being the same with and without redundat check can be
  verified easier
Solve lot of compiler warnings and made code more readable
Remove dangerous sslcert wrapper
Remove misleading messeges and notification about peer not giving cert,
  FailedCertificate logic is wrong since many years as authentication is
  fully handled inside VerifyX509Callback
2019-05-03 17:05:49 +02:00
Gioacchino Mazzurco
de0dd63e3f
Remove a bunch of deadcode
RsSerializable already provide std::ostream &operator<<
Add deprecation notice for RsNotify
2019-05-03 16:55:57 +02:00
Gioacchino Mazzurco
b1285a5de7
Gossip discovery refinement
Rename from RsDisc to more descriptive RsGossipDiscovery
Keep full retrocompatibility suggesting usage of RsGossipDiscovery
Add capability to send and receive full RetroShare invitation
Emit event when receiving a full invitation
Start using new debug utilities
Use enum class instead of defines and constant where appropriate
2019-05-03 16:54:16 +02:00
csoler
ccf7dc24b8
Merge pull request #1549 from G10h4ck/rscert_cleanup
Safer RsCertificate API
2019-05-01 22:31:30 +02:00
Gioacchino Mazzurco
5fe8ba0665
Safer RsCertificate API
Deprecate costructors that may fails, offer alternative methods which
  suggest correct usage to the programmer

Internally still use too much try,catch,throw but at least the API
  dosn't expose those anymore.
2019-04-28 15:49:57 +02:00
Gioacchino Mazzurco
42612e3f58
Fix miniupnp module include error 2019-04-25 00:12:58 +02:00
Gioacchino Mazzurco
650c5f1fa8
Fix compilation with libupnp-1.8.x 2019-04-24 23:36:40 +02:00
Gioacchino Mazzurco
3c5ac8b6e6
Include p3face-info.cc use miniupnpc only if available 2019-04-24 19:58:43 +02:00
Gioacchino Mazzurco
fb4f206427
Attempt to detect best UPnP library available
Because we don't support libupnp-1.8.x yet avoid using that library
If libupnp-1.6.x is available use that, if not try to use miniupnc if
  if unavailble print a warning and disable RetroShare UPnP support
2019-04-24 18:08:35 +02:00
G10h4ck
9a7ce1ae72
Merge pull request #1520 from G10h4ck/broadcast_discovery
Broadcast Domain friends IP:Port Discovery
2019-04-23 17:18:54 +02:00
Gioacchino Mazzurco
5dda6eb771
Remove zeroconf deadcode 2019-04-23 11:57:30 +02:00
Gioacchino Mazzurco
7dab487bde
Implement a JSON API friendly notification system
This should bit by bit substitute RsNotify which would be very difficult
  to support properly in JSON API.
The new system is much simpler to use also from the C++ side of the
  moon.
BroadcastDiscovery take advantage of the new system to notify about new
  non friend peer discovered, tested successfully also in JSON API.
2019-04-15 00:31:49 +02:00
Gioacchino Mazzurco
7b38c1c75a
Initial work on Broadcast Domain Discovery
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
2019-04-12 02:53:39 +02:00
csoler
43a5312194
Merge pull request #1509 from RetroPooh/trafcount
display session traffic
2019-04-10 21:04:53 +02:00
RetroPooh
7504964899 display session traffic 2019-04-03 17:29:13 +03:00
Gioacchino Mazzurco
81d23fa607
JSON API to collect extra entropy 2018-11-22 21:56:55 +01:00
csoler
630609c11c
fixed retroshare.project email in licenses 2018-11-11 20:42:48 +01:00
csoler
9c3d5acd8e
fixed license in libretroshare 2018-11-11 14:24:48 +01:00
csoler
ddca91b0c9
moved some files to unfinished and deleted soem unused files 2018-11-11 14:24:48 +01:00
Gioacchino Mazzurco
eca4f8adf7
JSON API to check if PGP id is friend 2018-11-01 23:26:42 +01: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
6543d713e4
JSON API import/export PGP key to file 2018-10-21 17:12:13 +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
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
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
Gioacchino Mazzurco
329050a9c2
Use safer rstime_t instead of time_t
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.
2018-10-07 13:07:06 +02:00
Gioacchino Mazzurco
1d8bb44811
Fix warnings 2018-10-05 01:55:18 +02:00
sehraf
150af40e09
jsonapi: convert and add getMessageCount 2018-10-04 22:43:12 +02:00
Gioacchino Mazzurco
7c986b926d
Remove overloaded GetRetroshareInvite method
now the original method has default paramether that return invite for
  own node, this way JSON API is more friendly
2018-10-04 19:14:16 +02:00
Gioacchino Mazzurco
1c7f02655e
Fix crash at startup if jsonapi not enabled 2018-09-21 01:40:26 +02:00
Gioacchino Mazzurco
bf98166197
RsServer fix crash on stop if shutdown callback not set 2018-09-21 01:39:48 +02:00
Gioacchino Mazzurco
add97dede0
p3face include jsonapi.h only if enabled 2018-09-19 22:02:07 +02:00
Gioacchino Mazzurco
eb77f921ec
Implement JSON API HTTP Basic authentication
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
2018-09-19 21:28:26 +02:00
Gioacchino Mazzurco
1694e37c58
More fixes to JSON API
Remove unnecessary dangerous method from RsLoginHelper
Fix documentation for RsServiceControl::getServiceName that was breaking
  JSON API and causing compilation warning
2018-09-12 10:49:37 +02:00
csoler
3402f7d9b5
auto send of own signed GXS ids to friends in discovery 2018-09-06 21:15:25 +02:00
Gioacchino Mazzurco
2c8aa5a1fe
RsAccounts::getCurrentAccountId is now static 2018-09-06 02:04:48 +02:00
Gioacchino Mazzurco
cc6f0b1f05
Expose RsPeers JSON API
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
2018-08-30 21:45:51 +02:00
Gioacchino Mazzurco
a8ddec03fc
Expose more login related JSON API
/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
2018-08-30 19:09:50 +02:00
Gioacchino Mazzurco
3094146c13
RsLoginHelper::attemptLogin clear cached passphrase after usage
Thanks Cyril for suggestion
2018-08-28 14:35:29 +02:00
Gioacchino Mazzurco
b98246ee21
Fix location creation via JSON API
To complete location creation login is needed
2018-08-25 00:19:26 +02:00
Gioacchino Mazzurco
ab6a5c07cc
RsLoginHelper::createLocation expose capability of creating hidden locations 2018-08-22 17:22:27 +02:00
Gioacchino Mazzurco
396fe49312
Merge branch 'master' into jsonapi 2018-08-22 16:59:42 +02:00
csoler
985be3504e
fixed compilation with RS_AUTO_LOGIN 2018-08-01 23:05:36 +02:00
csoler
d7c7e35d71
fixed compilation on MacOS 2018-07-27 15:15:04 +02:00
csoler
cc1a05ddc9
fixed certificate creation in TorAuto mode 2018-07-27 12:33:06 +02:00
csoler
62b9a74324
fixed running with TorControl in new mode 2018-07-25 15:31:18 +02:00
csoler
d1a375cbd0
removed RETROTOR #ifdef and started using RsAccounts::isTorAuto() instead. Unfinished yet. 2018-07-25 11:37:40 +02:00
csoler
0f758902cd
started cleaning the mess with rsAccounts: only exposed useful functionality of rsAccount beyond a static class and removed all references to rsAccounts in the code 2018-07-24 23:47:32 +02:00