Commit Graph

1252 Commits

Author SHA1 Message Date
4d307e18eb Add new thread safe suggestion API.
Previous API were using an internal vector to store the suggestions search
results.

The new API takes a vector as out argument. So user can call the functions
without having to protect the search.

We should change the android API to reflect the change but it is a bit
more complex to do at JNI level. As android do not call it multithreaded
we are safe for now. And we need the new API asap for kiwix-desktop.

So we keep the same API on android for now, the new api will be made
in next version.
2020-07-01 17:16:13 +02:00
e05bd8efd6 Release 9.2.3 9.2.3 2020-07-01 11:33:30 +02:00
71462696bd Merge pull request #372 from kiwix/link-atomic
Pass -latomic for architectures that need it
2020-06-29 14:43:16 +02:00
fb79cde729 Pass -latomic for architectures that need it
Some architectures, specifically armel, mipsel, m68k & powerpc in
Debian, need to explicitly link to atomic.

Use meson to see if the target's CPU family is one of those, and if so,
pass -latomic to the linker.

Tested on armel and mipsel machines to verify passing -latomic works, and
on armhf and amd64 to ensure normal builds aren't broken.

Fixes #371.
2020-06-29 00:18:13 -07:00
c986290d83 Merge pull request #359 from kiwix/packaged-mustache
Support building against packaged libkainjow-mustache
2020-06-12 11:13:05 +02:00
af9afab821 Support building against packaged libkainjow-mustache
The Debian/Ubuntu package for mustache.hpp installs it to
/usr/include/kainjow/mustache.hpp. Have meson look for it in that include
directory as well before erroring out.

Fixes #318.
2020-06-12 11:09:34 +02:00
14af7b756e Merge pull request #366 from kiwix/fix_build_windows
Include missing `algorithm` header.
2020-06-10 16:00:36 +02:00
ff605873ed Include missing algorithm header.
`min` and `max` functions are defined here.
2020-06-10 15:27:51 +02:00
6c49c7ee0a Merge pull request #362 from kiwix/build_ci_bionic 2020-06-09 12:13:34 +02:00
157d1664cf Fix test compilation on bionic 2020-06-09 12:10:05 +02:00
6f92b7e120 Build the CI also on bionic.
Bionic has a more recent compiler who will catch more issue with the
code.
2020-06-09 12:10:05 +02:00
fd62acd232 Merge pull request #365 from kiwix/server_corner_cases_unit_test 2020-06-08 15:28:59 +02:00
1cdf830217 Testing of byte-range requests of 0-sized entries 2020-06-03 14:18:22 +04:00
0b48ab20bb Enhanced the server unit-test with corner cases 2020-06-03 13:45:31 +04:00
081a2b2fa6 New version 9.2.2 9.2.2 2020-06-03 10:47:39 +02:00
bf93d10cde Merge pull request #364 from kiwix/issue363
Fix for the failing assertion in the ByteRange constructor
2020-06-03 10:43:16 +02:00
05ef5d5f51 Assertion in ByteRange allows 0-sized content
The assertion in the ByteRange constructor was written under the assumption that the content must have non-zero size. Now it allows that corner case.
2020-06-02 21:53:47 +04:00
4cdae3ca98 New version 9.2.1 9.2.1 2020-06-02 10:18:12 +02:00
7dcaeed33a Merge pull request #360 from kiwix/http_byte_range 2020-06-01 17:41:59 +02:00
f52b220d01 Dropped RequestContext::has_range() 2020-05-26 14:10:26 +04:00
50a850f3a9 Fixed a comment 2020-05-26 14:04:18 +04:00
886ae17274 Fixed a CodeFactor issue 2020-05-26 13:59:47 +04:00
a9b6d481cc ServerTest.RangeHasPrecedenceOverCompression 2020-05-26 13:58:20 +04:00
85d6daabac Rolled back minor unneeded changes 2020-05-26 13:10:50 +04:00
5f1918d005 Split a long line 2020-05-26 13:04:03 +04:00
16bd79fa1b Final clean-up of byte_range.{h,cpp} 2020-05-26 12:50:08 +04:00
c2ebdefe8d Handling of unsatisfiable ranges 2020-05-26 02:11:26 +04:00
37032892a4 Fixed compilation error under win32_*
ERROR is a macro under Windows
2020-05-26 01:58:17 +04:00
6b43438b74 Fixed compilation error under native_dyn
MHD_HTTP_RANGE_NOT_SATISFIABLE is not defined in the older version of
libmicrohttpd (that is used under CI/Linux native_dyn).
2020-05-26 01:54:36 +04:00
7301bf89bb Some refactoring of byte-range parsing 2020-05-26 01:50:29 +04:00
ff23b28e7c Removed unnecessary qualifier 2020-05-26 01:41:37 +04:00
931e95f391 Invalid byte ranges result in 416 responses 2020-05-26 01:40:07 +04:00
f7571b5b69 Content-Range header is set only for partial content 2020-05-25 17:42:18 +04:00
801ad18a89 ByteRange::resolve() 2020-05-25 17:27:35 +04:00
67a347c0c4 Moved byte-range parsing to byte_range.cpp 2020-05-25 17:21:10 +04:00
693905eb68 Default constructed ByteRange is a full range 2020-05-25 17:17:56 +04:00
f3e79c6b4c Introduced src/server/byte_range.cpp 2020-05-25 16:43:44 +04:00
52f207eaa6 Support for single-ended byte ranges 2020-05-25 16:37:01 +04:00
67294217a8 ByteRange::Kind 2020-05-25 16:23:44 +04:00
d111a40ce8 Response::m_byteRange 2020-05-23 20:35:22 +04:00
0c5bb3fcfe Moved ByteRange to a header file of its own 2020-05-23 20:08:53 +04:00
3fba8c20a0 Converted RequestContext::ByteRange to a class
Also renamed the `range_pair` data member of `RequestContext` to `byteRange_`
2020-05-23 19:59:47 +04:00
54db6049b7 Byte-range parsing not exposed in the header file 2020-05-23 18:58:19 +04:00
81c38d6b2b parse_byte_range() without side-effects 2020-05-23 18:53:16 +04:00
e6a86c02ae Got rid of RequestContext::accept_range 2020-05-23 17:15:42 +04:00
a0f7f32570 Re-ordered function definitions 2020-05-23 17:11:26 +04:00
c39fce8839 RequestContext::parse_byte_range() 2020-05-23 17:09:51 +04:00
bd2d0bc489 Unit-test for valid single range requests 2020-05-22 17:39:00 +04:00
de37489c53 Range header starts with a unit spec
After this commit valid ranges of the form "bytes=firstbyte-lastbyte" should
be handled correctly.
2020-05-22 17:17:31 +04:00
2a35a86de6 Fixed the size value used creating a response
In case of a partial response the size of the response is different
from the served entry size.
2020-05-22 16:49:35 +04:00