This could be used to request the online peers to pull updates from us
ASAP, as an exaple when a group is created a pull request can be
emitted too so the online peers pull the groups from us ASAP instead
of waiting for the usual 60 seconds. A mechanism like this is
especially useful on mobile phones where the internet connection is
usually turned on only in a few moments (as an example while the user
is interacting with the app).
Cleanup a few old corners in the code keeping retro-compatibility and
make the code more welcoming to new developers.
Put a bunch of dead code under #ifdef.
One of the reason libretroshare dependend on Qt on Android
and in particular in networking module is the lack of
`getifaddrs` with API level < 24, we included Android
Gingerbread internal implementation so this dependency can be avoided
at compile time.
The code depending on Qt has been placed under `#if` and can be enabled
at compile time by appending `DEFINES+=LIBRETROSHARE_ANDROID_IFADDRS_QT`
to `qmake` command line.
Avoid compiler warning due to virtual method being called in destructor
at this point the empty default version would be called without damage
but making the compiler concernig about the semantic being different
from the one the programmer meant.
Delete old superseeded function and do not depend on it on RsThread.
Add variadic style macro helpers that make debugging code disappear completely
(also the paramethers evaluation) when debugging level is lower
Chained style << is now atomic like variadic style, still can't benefit
of paramethers eveluation stripping
Reduced to minimum the difference between Android and other platform
debugging code
Port debugging code to new helpers, expecially a few corner cases to
test it, and as examples of how to use it.
Fix bug in array-like containers serialization which could cause almost infinite
loop on malformed input
Implement VLQ integer serialization
Unify sequence containers serialization code
Add support for VLQ serialization also for string size
Use VLQ compression for file links
Add templated function to fix endiannes for all integer types
Use bitset to print flags in binary form
Unify serialization code for integral types
Serialize 64bit integers types to JSON object with both string and integer
representation, so it is posible to have this representation also for
containers types like std::vetor or std::map this breaks retrocompatibility
but is necessary to support clients written in languages which doesn't have
64 bit integers support such as JavaScript or Dart
Implement URL safe base64 for file links
Implement sneaking file data into URL fragment
Deprecate Radix65 in favore of RsBase64 which supports also URL safe encoding
Removed antipattern abstraction RsSingleJobThread
Rename runloop() method to run() in RsThread
Ported few classes ineriting from RsSingleJobThread to RsThread
RsThread use std::atomic instead of self implemented strange binary semaphores
Removed RsTickingThread::shutdown() use RsThread::askForStop() instead
Removed RsTickingThread::fullstop() use RsThread::fullstop() instead
Stop properly JSON API server in retroshare-gui
Centralize errno traslation to literal in util/rserrno.*
FSFE licensing checking program lint is now happy
$ reuse lint
* Bad licenses:
* Missing licenses:
* Unused licenses:
* Used licenses: AGPL-3.0-only, AGPL-3.0-or-later, Apache-2.0, CC-BY-SA-4.0, CC0-1.0, GPL-3.0-or-later, LGPL-3.0-or-later, MIT
* Read errors: 0
* Files with copyright information: 6324 / 6324
* Files with license information: 6324 / 6324
Congratulations! Your project is compliant with version 3.0 of the REUSE Specification :-)
A copy of the repository freezed before this deletion to ease old code
viewing is available at
https://github.com/RetroShare/zz_archive_RetroShare_libresapi
Removed some more cruft
Temporarly disabled JSON API generation of RsWebUi methods due to
compilation breakage when rs_webui is disabled, RsWebUi keeps working
but cannot be restarted from JSON API
Add FLAC standalone indexer
Add indexing common music tags for all formats supported by taglib
File indexer reindex files that have been indexed by older versions of
the indexer and reindex them
Sparse improvements to deep indexing
ATM it support extracting metadata only from OGG files.
The system has been designed to be easly extensible to more file formats
registering more indexer functions which just need to extract metadata
from a certain type of file and feed it to Xapian.
The system has been integrated into existent file search system to
through generric search requests and results, it keep a good level of
retro-compatibility due to some tricks.
The indexing system is released under AGPLv3 so when libretroshare is compiled
with deep search enabled AGPLv3 must be honored instead of LGPLv3-or-later.
Cleaned up the debian copyright file using non-deprecated license
code-names.