Age | Commit message (Collapse) | Author |
|
|
|
|
|
Explicitly set c99 in CMake
|
|
See #869
|
|
Fix sockaddr typo
|
|
Fixes #867
|
|
See: #862
|
|
Release of v1.0.0
Hiredis v1.0.0 marks the first stable release of Hiredis and introduces
RESP3 support, SSL connections, allocator injection, better Windows support,
and more.
IMPORTANT: There are breaking changes in this release meaning your code
will need to be recompiled and may need small changes. The exact
details of the breaking changes can be found in README.md.
CHANGELOG.md has a detailed list of changes between v0.14.1 and v1.0.0.
~~~
Thank you to everyone who contriubuted to the project by submitting PRs,
reporting bugs, or helping answer people's questions.
And a special thank you to the following people who contributed at least
five lines of code to this release (sorted by lines contributed) \o/
Michael Grunder, Yossi Gottlieb, Mark Nunberg, Marcus Geelnard, Justin Brewer,
Minun Dragonation, Omri Steiner, Sangmoon Yi, Jinjiazh, Odin Hultgren Van Der Horst,
Nick Rivera, Qi Yang, kevin1018
|
|
|
|
Addresses #642
|
|
Avoids issues like #860
|
|
|
|
|
|
|
|
|
|
We need to allow our users to use redisContext->privdata as context
for any RESP3 PUSH messages, which means we can't use it for managing
SSL connections.
Bulletpoints:
* Create a secondary redisContext member for internal use only called
privctx and rename the redisContextFuncs->free_privdata accordingly.
* Adds a `free_privdata` function pointer so the user can tie allocated
memory to the lifetime of a redisContext (like they can already do
with redisAsyncContext)
* Enables SSL tests in .travis.yml
|
|
Small change to the logic introduced in #839
|
|
Add an additional timeout so the user has a convenient way of controlling distinct connect and command timeouts
|
|
|
|
Static analyzer's can't tell that hi_calloc is calloc-like, and report a
potential null pointer dereference. This isn't possible but it's
probably smarter to make the test anyway in the event code changes.
|
|
See #848
|
|
|
|
|
|
Proper support for RESP3 PUSH messages.
By default, PUSH messages are now intercepted and the reply memory freed.
This means existing code should work unchanged when connecting to Redis
>= 6.0.0 even if `CLIENT TRACKING` were then enabled.
Additionally, we define two callbacks users can configure if they wish to handle
these messages in a custom way:
void redisPushFn(void *privdata, void *reply);
void redisAsyncPushFn(redisAsyncContext *ac, void *reply);
See #825
|
|
* Don't try to ignore SIGPIPE in Windows (it doesn't exist).
* Add an include to our win32.h compatibility header.
* Enable building examples on Travis in Windows.
See #831
|
|
It appears that _WIN32 is always defined by MSVC whereas WIN32 may not
be, depending on configuration.
|
|
* Switch to memurai for Windows tests
* Switch to macports from brew.
|
|
Co-authored-by: Omri Steiner <omri@insoundz.com>
|
|
When connecting with a timeout, we shouldn't also call `redisSetTimeout` which will implement a timeout for commands.
See related issue #722
|
|
Fix overflow bug in `sdsrange`
|
|
|
|
|
|
|
|
|
|
|
|
Using `strdup` as a struct member causes issues in older gcc
|
|
|
|
* Adds an indirection to every allocation/deallocation to allow users to
plug in ones of their choosing (use custom functions, jemalloc, etc).
* Gracefully handle OOM everywhere in hiredis. This should make it possible
for users of the library to have more flexibility in how they handle such situations.
* Changes `redisReaderTask->elements` from an `int` to a `long long` to prevent
a possible overflow when transferring the task elements into a `redisReply`.
* Adds a configurable `max elements` member to `redisReader` that defaults to
2^32 - 1. This can be set to "unlimited" by setting the value to zero.
|
|
Fixes #815
|
|
Standard function available and on most platforms uses a lookup table and not
a check with 3 ranges.
|
|
Pull RESP3 verbatim string handling from Redis
Fixes #802
|
|
* Fix missing SSL build/install options.
* Use different build commands for non-Linux linkers.
* Add missing install targets.
Fixes #809
|
|
Addresses #506
|
|
* Remove nested depth limitation.
This commit removes the nested multi-bulk depth limitation of 7.
We do this by switching to pointer to pointer indirection and
growing the stack in chunks when needed.
See: #794, #421
|
|
Add support for timeouts in our libev adapter.
See #795
|
|
See #757
|
|
* Respect overridden libdir in CMake
See: #767
|
|
* Fix linker problems when building with SSL enabled on OSX
* Corrects `HIREDIS_SSL=ON` to `USE_SSL=ON` so we test building with
SSL enabled on travis.
|
|
|
|
Explicitly call `uv_poll_init_socket` as that has slightly different semantics on Windows (and is identical to `uv_poll_init` on Linux).
http://docs.libuv.org/en/v1.x/poll.html#c.uv_poll_init_socket
|