- 26 Jun, 2022 7 commits
-
-
Kristján Valur Jónsson authored
-
Michael Grunder authored
Fix async connect on Windows
-
michael-grunder authored
-
Kristján Valur Jónsson authored
-
Kristján Valur Jónsson authored
-
Michael Grunder authored
Fix tests so they work for Redis 7.0
-
michael-grunder authored
* Redis >= 7.0.0 disables the `DEBUG` command by default, which we need for our unit tests. * Downgrade to Redis 6.2.x in macOS temporarily There is a macOS specific TLS error on large payloads when running against 7.x.x so temporarily run our tests against 6.2, while we investigate the root cause.
-
- 04 May, 2022 1 commit
-
-
Michael Grunder authored
Fix warnings on Win64
-
- 24 Apr, 2022 1 commit
-
-
Orgad Shaneh authored
read.c:399:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 399 | obj = (void*)(long)cur->type; | ^
-
- 23 Apr, 2022 4 commits
-
-
Michael Grunder authored
Handle push notifications before or after reply.
-
Michael Grunder authored
Use official repository for redis package.
-
Michael Grunder authored
Whitelist hiredis repo path in cygwin
-
michael-grunder authored
-
- 22 Apr, 2022 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
- 05 Apr, 2022 2 commits
-
-
Michael Grunder authored
Unsubscribe handling in async
-
Michael Grunder authored
Update hiredis sds with improvements found in redis
-
- 03 Feb, 2022 1 commit
-
-
Björn Svensson authored
Redis responds to an unsubscribe with one or many replies, depending on the current subscribe state. When channels/patterns names are provided in a command each given name will trigger a reply even if duplicated or not subscribed to. To know when we can return from the subscribed state we need to do bookkeeping on pending additional unsubscribe replies, and make sure we receive them all before switching state.
-
- 02 Feb, 2022 2 commits
-
-
Björn Svensson authored
-
Björn Svensson authored
-
- 01 Feb, 2022 4 commits
-
-
Björn Svensson authored
Equivalent changes introduced to redis sds.c via: https://github.com/redis/redis/pull/8522 https://github.com/redis/redis/pull/9584
-
Björn Svensson authored
Equivalent changes introduced to redis sds.c via: https://github.com/redis/redis/pull/4568
-
Michael Grunder authored
CentOS 8 is EOL, switch to RockyLinux
-
michael-grunder authored
-
- 28 Jan, 2022 1 commit
-
-
Bjorn Svensson authored
* No reuse of the previous reply callback When multiple replies are parsed from a socket in one read a previously found callback might get reused when the current reply has no known callback. This can be triggered by the added testcase which unsubscribe to subscribed (A,B) and a non-subscribed channel (X). Without this correction a callback for wrong channel is called. - In 'unsubscribe B X A', B's callback is called when handling X. - Now this is not done, i.e. there is no callback called for X. * Re-push monitor callback for each reply MONITORING used the same callback for all replies while parsing multiple responses. This handling was changed to avoid calling the wrong callback in some scenarios. Now also change monitorings repush to work with this change. Includes an added async monitoring testcase.
-
- 24 Jan, 2022 1 commit
-
-
Dietmar Scheidl authored
-
- 18 Jan, 2022 2 commits
-
-
MichaelSuen authored
Add timeout to libuv adapter Co-authored-by:
sunmingqi <sunmingqi@corp.netease.com> Co-authored-by:
sunmingqi <smq222@126.com> Co-authored-by:
Michael Grunder <michael.grunder@gmail.com> Co-authored-by:
Viktor Söderqvist <viktor@zuiderkwast.se>
-
Bjorn Svensson authored
* Add test of async commands after unsubscribe Verify that commands are handled after unsubscribing from a channel. A command is sent before the `unsubscribe` response is received, which currently triggers an assert in async.c:567: `redisProcessCallbacks: Assertion `(c->flags & REDIS_SUBSCRIBED || c->flags & REDIS_MONITORING)' failed.` * Handle async commands after an unsubscribe When unsubscribing from the last channel we move from the `subscribe` state to a normal state. These states uses different holders for the command callback information. By moving the callback info during the state change the callback order can be maintained.
-
- 11 Jan, 2022 1 commit
-
-
Bjorn Svensson authored
* Add test of command timeout during pubsub A timeout of a non-subscribe command will be ignored during pubsub. It will be handled as an idle timeout and a response is awaited for. * Correction for command timeout during pubsub Disconnect when a sent non-subscribe command triggers a timeout.
-
- 09 Jan, 2022 1 commit
-
-
Fabrice Fontaine authored
Define hiredis as a C project (and use a single PROJECT statement) to avoid the following build failure if a C++ compiler is not found: CMake Error at CMakeLists.txt:3 (PROJECT): The CMAKE_CXX_COMPILER: /srv/storage/autobuild/run/instance-1/output-1/host/bin/arm-linux-g++ is not a full path to an existing compiler tool. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. The only cpp source file is examples/example-qt.cpp which is never compiled with cmake buildsystem. This file is compiled only with the Makefile buildsystem so perhaps it should be removed. If it is added to the cmake buildsystem, a call to enable_language(CXX) will have to be added. Fixes: - http://autobuild.buildroot.org/results/830ec3398cd29b9fc5cde06a225ef531d7a9d850 Signed-off-by:
Fabrice Fontaine <fontaine.fabrice@gmail.com>
-
- 05 Jan, 2022 1 commit
-
-
Peter Tummillo authored
Where SOCKET is a 64-bit unsigned integer.
-
- 24 Dec, 2021 1 commit
-
-
michael-grunder authored
-
- 23 Dec, 2021 1 commit
-
-
zhenwei pi authored
Move SSL options into two blocks to make it easy to read: 1, first part: SSL variables part 1, second part: SSL building rules part and change global rules to make it easy to maintain. For the further step, it gets extensible to add another type. New version of the library building rule: static: $(STLIBNAME) $(SSL_STLIB) dynamic: $(DYLIBNAME) $(SSL_DYLIB) Compare with the orignal version: dynamic: $(DYLIBNAME) static: $(STLIBNAME) ifeq ($(USE_SSL),1) dynamic: $(SSL_DYLIBNAME) static: $(SSL_STLIBNAME) endif If we want to add a new type(Ex, RDMA), for the new version, we can do like this: ########### RDMA variables start ############### ..... ########### RDMA variables end ############### static: $(STLIBNAME) $(SSL_STLIB) $(RDMA_STLIB) dynamic: $(DYLIBNAME) $(SSL_DYLIB) $(RDMA_DYLIB) ########### RDMA building rules start ############### ..... ########### RDMA building rules end ############### Signed-off-by:
zhenwei pi <pizhenwei@bytedance.com>
-
- 22 Dec, 2021 3 commits
-
-
Eric Deng authored
add alias hiredis::hiredis and hiredis::hiredis_static so when this project is FetchContent, it behave the same as find_package-ed. e.g. ``` find_package(hiredis 1.0.2 QUIET) if (NOT hiredis_FOUND) FetchContent_Declare( hiredis GIT_REPOSITORY https://github.com/redis/hiredis.git GIT_TAG v1.0.2 ) FetchContent_MakeAvailable(hiredis) endif () # later target_link_libraries(target **hiredis::hiredis**) #can always use hiredis::hiredis to ref to this project. no matter find_package or FetchContent ``` this is actually sort of best practice when making a CMake lib.
-
sundb authored
-
Bjorn Svensson authored
RESP3 allows sending commands in parallell with pubsub handling and these commands might get responded with a REDIS_REPLY_ARRAY. This conflicts with the pubsub response handling for RESP2 and results in a faulty state when using RESP3. Add functionality to keep track of PUSH/RESP3 support on the connection and only expect the message type REDIS_REPLY_PUSH as subscribe messages when once seen.
-
- 16 Dec, 2021 2 commits
-
-
Bjorn Svensson authored
* Handle PING during pubsub in RESP2 * Rename invalid callback list Some commands are valid to send during a subscribe in RESP2, and most in RESP3. Renaming the callback list from `invalid` to `replies` to detail this fact. * Fix review comment
-
Michael Grunder authored
* BSD linkage fix proposal * Touch up the Makefile to fix BSD builds Fixes #984 * Add a build in FreeBSD to GitHub Actions Lots of people use hiredis in FreeBSD so this should reduce some pain moving forward. Co-authored-by:
David Carlier <devnexen@gmail.com>
-
- 01 Dec, 2021 1 commit
-
-
Bjorn Svensson authored
* Include `unsubscribe` as a subscribe reply in RESP3 By providing the (p)unsubscribe message via the subscribe callback, instead of via the push callback, we get the same behavior in RESP3 as in RESP2. * Add asynchronous test for pubsub using RESP3 The testcase will subscribe to a channel, and via a second client a message is published to the channel. After receiving the message the testcase will unsubscribe and disconnect. This RESP3 testcase reuses the subscribe callback from the RESP2 testcase to make sure we have a common behavior.
-
- 25 Nov, 2021 1 commit
-
-
Bjorn Svensson authored
By default Valgrind will return the exit code from the tested process. Since our test can return 0 (ALL TESTS PASS) even when a leak was found we need to tell Valgrind to return an error code. This will fail the CI job when issues are found.
-