Commit Graph

603 Commits

Author SHA1 Message Date
Gioacchino Mazzurco
9c7a8d479f
Pass initialization value in RS_DEFAULT_STORAGE_PARAM 2019-04-15 00:09:01 +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
G10h4ck
276328dd91
Merge pull request #1512 from G10h4ck/csoler-jsonapi-channel
Improve GxsChannels API
2019-04-11 10:13:52 +02:00
Gioacchino Mazzurco
9ad79f0c89
Improve documentation 2019-04-10 21:10:21 +02:00
zapek
3f8611f40f the cache is corrected and saved 2019-04-06 00:15:01 +02:00
Gioacchino Mazzurco
ab80d9a374
Fix compilation, retrocompatibility and enums
Workaround miss-behaviour on old Android phones
Cleanup indentation a bit
Consistent param naming
Introduce default parameter values also for output paramethers
2019-04-05 01:43:23 +02:00
Gioacchino Mazzurco
7a2c81d06b
Deprecate rs_usleep as it is not useful anymore
C++11 standard library offer better functions
2019-02-13 17:07:03 -03:00
csoler
a802e494f8
Merge pull request #1401 from G10h4ck/forum_api
0.6.5 Safer forum API
2018-11-20 21:45:45 +01:00
csoler
8c8ce53e4b
Merge pull request #1385 from G10h4ck/safer_api
0.6.5 Safer rsGxsChannel API
2018-11-20 21:44:40 +01:00
csoler
630609c11c
fixed retroshare.project email in licenses 2018-11-11 20:42:48 +01:00
Gioacchino Mazzurco
b8d2d9cade
Print stack trace on crash 2018-11-11 14:25:44 +01:00
csoler
9c3d5acd8e
fixed license in libretroshare 2018-11-11 14:24:48 +01:00
Gioacchino Mazzurco
f84824271f
Implement ostream operator<< for RsSerializable
So it is not necessary to define it for each class we want to print in
  debug
2018-11-10 16:24:47 +01:00
Gioacchino Mazzurco
f6b22d25da
Fix typo in documentation 2018-11-09 12:41:09 +01:00
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
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
Gioacchino Mazzurco
81cad2ab02
Fix missing include 2018-11-05 14:02:44 +01:00
Gioacchino Mazzurco
c0ca1a5aad
Print stack trace on crash 2018-11-05 00:19:45 +01:00
csoler
eb078d462e
added more info to deserialization warning in rsrecogn 2018-11-01 21:42:07 +01:00
Gioacchino Mazzurco
7a1375ff6f
rsPeers add few JSON API calls 2018-10-20 21:13:10 +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
G10h4ck
047ae7f723
Merge branch 'master' into jsonapi 2018-10-10 22:23:28 +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
ddf3164545
Fix ctime(&rstime_t) error on windows
rstime_t not neccesary in those cases so use plain time_t instead
2018-10-07 14:41:13 +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
csoler
4de0498208
fixed bad signature checking code for config files 2018-10-05 16:54:36 +02:00
Gioacchino Mazzurco
e6e5700ed6
Fix warning caused by clang defining _GNUC_ 2018-10-03 19:07:46 +02:00
Gioacchino Mazzurco
0078501dba
Initial work on a RetroShare cross-platform service
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.
2018-09-29 00:15:10 +02:00
Gioacchino Mazzurco
92f90178c4
RS version is now parametrizable at compile time
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
2018-09-12 10:49:36 +02:00
csoler
c294971633
Merge pull request #1289 from G10h4ck/jsonapi
Implement automatic JSON API generation
2018-08-28 19:11:08 +02:00
sehraf
9557a5246e
remove unnecessary locking, print log entries also to stdout 2018-08-25 17:54:34 +02:00
Gioacchino Mazzurco
396fe49312
Merge branch 'master' into jsonapi 2018-08-22 16:59:42 +02:00
Gioacchino Mazzurco
4b6f751b09
Implement JSON API generation for async API calls
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 )
2018-08-16 23:48:21 +02:00
csoler
cc51298de6
fixed warning about badly overloaded function in rsexpr.h 2018-08-02 14:13:14 +02:00
csoler
c948517c3d
Merge pull request #1306 from csoler/v0.6-TorOnly
V0.6 tor only
2018-07-31 14:18:24 +02:00
csoler
1297d2e106
fixed double calls to pthread_exit() (one being implicit after return from main thread method) -- patch from sss 2018-07-30 10:50:32 +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
csoler
6848a586f3
merged upstream/master 2018-07-08 21:17:48 +02:00
Gioacchino Mazzurco
1dd707710b
Merge branch 'master' into extra_locators_merge 2018-07-02 12:22:23 +02:00
csoler
8641da189c
relicensed util/ and moved rsaes to crypto/ 2018-05-30 21:34:38 +02:00
csoler
858dcfc14c
removed unused tempering in random number generator, added comments and license text 2018-05-30 21:19:53 +02:00
csoler
6cf2090149
relicensed tcponudp, turtle, unused, upnp, and part of util/ 2018-05-30 21:19:13 +02:00
Gioacchino Mazzurco
f20705b36d
Workaround for systems that miss IPV6_V6ONLY
This should improve compatibility with old systems that miss
IPV6_V6ONLY and in particular for Windows XP
2018-04-15 12:32:39 +02:00
csoler
73c6deebf4
Merge pull request #1191 from G10h4ck/IPv6-v3
IPv6 support
2018-03-27 20:54:31 +02:00
Gioacchino Mazzurco
bed856425f
Share additional addresses via RsCertificate 2018-03-03 00:08:56 +01:00
Gioacchino Mazzurco
8542abd4f0
Few fixes in RsUrl 2018-03-02 20:08:50 +01:00
Gioacchino Mazzurco
518df99243
Merge branch 'master' into extra_locators 2018-03-02 19:31:37 +01:00
Gioacchino Mazzurco
923c383a13
Add naif URL manipulation class RsUrl
Use RsUrl to convert sockaddre_storage from/to string
2018-03-02 19:20:56 +01:00
Gioacchino Mazzurco
f5160338ed
sockaddr_storage_familytostring be quite if not debugging 2018-02-25 13:18:34 +01:00
Gioacchino Mazzurco
9a446fc1ff
Fix compilation for Android 2018-02-25 11:28:26 +01:00
Gioacchino Mazzurco
4a138e07b9
Implement IPv6 listening
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
2018-02-24 17:14:49 +01:00
Gioacchino Mazzurco
b3c7d195c8
Port pqissl to dual stack IPv6+IPv4
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
2018-02-24 14:29:56 +01:00
Gioacchino Mazzurco
0c99975800
Use link local address only if necessary
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.
2018-02-19 23:23:15 +01:00
csoler
8f7582588a fixed windows compilation 2018-01-27 20:59:11 +01:00
csoler
d0039241d3 replaced usleep() by rstime::rs_usleep() which accepts times >= 1 sec. Should fix problems on windows 2018-01-27 20:22:31 +01:00
csoler
122f6af30a fixed compilation on ubuntu precise 2017-12-24 11:06:03 +01:00
csoler
99e35b131c rename file in partials into real name before moving it; check for destination directory before moving file 2017-12-16 15:04:16 +01:00
csoler
7472f78223 added sha256 calculation functions, and non backward compatible SSL Id computation code to active later (0.7) 2017-11-15 23:24:43 +01:00
csoler
ba7cf4995b
Merge pull request #1037 from RetroPooh/searchspy
Searchspy
2017-11-14 20:53:24 +01:00
RetroPooh
919d6503d7 in search strings change comma to space for better look 2017-11-14 16:09:05 +03:00
csoler
5fab053fb8 added toStdString() method to search strings so as to display what is searched 2017-11-13 23:37:53 +01:00
csoler
3bb694f439 added display of hashing speed. Changed hashing buffer size to 10MB to improve performance 2017-10-29 21:24:34 +01:00
RetroPooh
41251fdd9e search spy 2017-09-15 15:03:06 +03:00
Gioacchino Mazzurco
541b1ea498 Introduce C++11 compatibility macro for gcc < 4.6 2017-07-31 18:26:51 +02:00
csoler
286e7e0b1a Merge pull request #961 from csoler/v0.6.3
V0.6.3
2017-07-26 14:01:28 +02:00
csoler
461ccf3b84 removed aliasing in storeMessages/storeGroups, removed several memory leaks in unittests, improved auto-delete structures in rsgxsutil, added deletion for members of RsGenExchange, removed shared pointers from unittests (they cause a memory leak and are only used in unittests) 2017-07-25 00:07:53 +02:00
Phenom
2afc1bf423 Fix CppCheck Error in contentvalue.cc
/libretroshare/src/util/contentvalue.cc:189: error: Cppcheck(memleak):
Memory leak: dest
2017-07-21 15:04:34 +02:00
Phenom
f888913800 Set Operating Mode in RsInit::InitRetroShare so noGUI could use it. 2017-07-17 15:40:14 +02:00
Phenom
b11022a239 Fix warning: this statement may fall through
/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 ;
2017-07-16 20:38:43 +02:00
Phenom
0e302e254e Fix warning: this statement may fall through
/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:
2017-07-16 20:36:16 +02:00
Phenom
7b4d3c5a24 Fix warning: this statement may fall through
/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:
2017-07-16 20:34:38 +02:00
csoler
9c391cb015 added an additional param to BinToHex so as to limit the size of the output 2017-07-15 22:15:51 +02:00
csoler
3e3ee1a34b little improvement to command line help display 2017-07-09 22:12:01 +02:00
csoler
79825eb2e2 fixed thread issue in RsGxsCleanupThread that caused random crashes 2017-06-12 20:36:02 +02:00
csoler
1ebcc6006b Merge pull request #861 from RetroShare/v0.6-GxsTransport
V0.6 gxs transport
2017-05-30 22:22:06 +02:00
csoler
a7eb167f96 fixed a bug in RsThread which made finished threads unaware of their state 2017-05-30 20:57:20 +02:00
sehraf
a3ee85a30d Add I2P BOB support to libretroashare and RetroShare GUI 2017-05-24 19:40:01 +02:00
csoler
dbc23969f4 Merge pull request #830 from Gottox/fix-libressl
fix building with libressl
2017-05-21 14:52:20 +02:00
Enno Boland
a578acdea8 fix building with musl libc 2017-05-21 10:54:19 +02:00
Enno Boland
2046d9eaae fix building with libressl 2017-05-21 10:48:58 +02:00
csoler
9a0df3f757 Merge pull request #804 from PhenomRetroShare/Fix_Warnings
Fix warnings
2017-05-08 22:21:28 +02:00
Gioacchino Mazzurco
f67617a449 Add override and final placeolders for old GCC compatibility 2017-05-08 16:57:37 +02:00
Phenom
ee7e92d6c4 Fix Warnings: this ‘if’ clause does not guard...
warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
     if(buffer.empty())
     ^~
2017-05-08 12:15:45 +02:00
csoler
e913f3689a fixed crash when trying to deserialize an empty buffer in rsrecogn 2017-05-04 21:40:32 +02:00
csoler
cecd9a3368 merged upstream/master 2017-04-30 20:14:23 +02:00
csoler
5cba0059c8 moved recognitems to rsitems/ 2017-04-28 23:32:47 +02:00
electron128
8b9c447063 fixed possible crash and return value in rsGetHostByName(), thanks to Kotyara for reporting this 2017-04-22 10:13:23 +02:00
Phenom
37331372c1 Fix Clang warnings: implicit conversion
warning: implicit conversion from 'int' to 'char' changes value from 255
to -1 [-Wconstant-conversion]
                                asctobin()[i] = 255;    /* used to
detect invalid characters */
2017-04-18 11:25:41 +02:00
Phenom
5bc6558567 Fix Clang warnings: explicitly assigning value to itself
/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;
                        ~~~ ^ ~~~
2017-04-17 21:19:06 +02:00
csoler
8bdf4f3dad fixed sharing of sshfs mounted dirs by allowing files of type DT_UNKNOWN to be explored 2017-03-03 23:28:35 +01:00
csoler
5c95b88095 compilation fix for openssl-1.1.0 (pqissl+authssl part) 2017-02-19 22:38:02 +01:00
Phenom
aa05d60894 Fix all warnings in UnitTest 2017-01-21 16:31:45 +01:00
csoler
d8233bb101 merged updatream/master 2016-12-26 16:59:52 +01:00
Gio
06a1020724 Add workaround to see debug messages from native code in android service 2016-12-22 13:50:44 +01:00
csoler
0a3ec9706d added statistics info for key requests 2016-12-22 00:14:16 +01:00
Gio
c3aca0cf26 Implement a working Distant Chat prototype in Qml
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
2016-12-08 15:56:23 +01:00
Gio
9eef412b44 Expose libresapi for distant chat
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.
2016-12-07 20:29:33 +01:00
Phenom
674b6de381 Fix Some gcc warnings 383 to 208 lines
Left explicit #warning and deprecated.
Some lines are wrong indented and produce mal formed code.
2016-11-30 22:01:01 +01:00
mr-alice
3f3efca22d removed canonicalize_file_name from MacOS compilation 2016-11-25 20:33:27 +01:00