Age | Commit message (Collapse) | Author |
|
Enable position-independent code, and add PDB files to packages for MSVC builds
|
|
Fix handling of NIL invalidation messages.
|
|
When CLIENT TRACKING is enabled, Redis will send an invalidation message
with a NIL payload to all tracking clients after a FLUSHDB is executed.
We didn't account for REDIS_REPLY_PUSH being a valid parent object to a
NIL payload, and were failing an assertion.
Additionally this commit adds a regression test for the logic.
|
|
clean a warning, remvoe empty else block
|
|
|
|
docs: Fix simple typo, termined -> terminated
|
|
There is a small typo in sds.c.
Should read `terminated` rather than `termined`.
|
|
|
|
|
|
builds (Release, RelWithDebInfo, etc)
|
|
|
|
|
|
|
|
|
|
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.
|