redis-client 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/Gemfile +1 -2
  4. data/Gemfile.lock +2 -3
  5. data/README.md +66 -3
  6. data/Rakefile +43 -23
  7. data/lib/redis_client/command_builder.rb +83 -0
  8. data/lib/redis_client/config.rb +9 -48
  9. data/lib/redis_client/connection_mixin.rb +38 -0
  10. data/lib/redis_client/decorator.rb +84 -0
  11. data/lib/redis_client/pooled.rb +38 -30
  12. data/lib/redis_client/ruby_connection/buffered_io.rb +153 -0
  13. data/lib/redis_client/{resp3.rb → ruby_connection/resp3.rb} +0 -26
  14. data/lib/redis_client/{connection.rb → ruby_connection.rb} +26 -31
  15. data/lib/redis_client/version.rb +1 -1
  16. data/lib/redis_client.rb +162 -36
  17. data/redis-client.gemspec +2 -4
  18. metadata +12 -59
  19. data/.rubocop.yml +0 -190
  20. data/ext/redis_client/hiredis/export.clang +0 -2
  21. data/ext/redis_client/hiredis/export.gcc +0 -7
  22. data/ext/redis_client/hiredis/extconf.rb +0 -62
  23. data/ext/redis_client/hiredis/hiredis_connection.c +0 -708
  24. data/ext/redis_client/hiredis/vendor/.gitignore +0 -9
  25. data/ext/redis_client/hiredis/vendor/.travis.yml +0 -131
  26. data/ext/redis_client/hiredis/vendor/CHANGELOG.md +0 -364
  27. data/ext/redis_client/hiredis/vendor/CMakeLists.txt +0 -165
  28. data/ext/redis_client/hiredis/vendor/COPYING +0 -29
  29. data/ext/redis_client/hiredis/vendor/Makefile +0 -308
  30. data/ext/redis_client/hiredis/vendor/README.md +0 -664
  31. data/ext/redis_client/hiredis/vendor/adapters/ae.h +0 -130
  32. data/ext/redis_client/hiredis/vendor/adapters/glib.h +0 -156
  33. data/ext/redis_client/hiredis/vendor/adapters/ivykis.h +0 -84
  34. data/ext/redis_client/hiredis/vendor/adapters/libev.h +0 -179
  35. data/ext/redis_client/hiredis/vendor/adapters/libevent.h +0 -175
  36. data/ext/redis_client/hiredis/vendor/adapters/libuv.h +0 -117
  37. data/ext/redis_client/hiredis/vendor/adapters/macosx.h +0 -115
  38. data/ext/redis_client/hiredis/vendor/adapters/qt.h +0 -135
  39. data/ext/redis_client/hiredis/vendor/alloc.c +0 -86
  40. data/ext/redis_client/hiredis/vendor/alloc.h +0 -91
  41. data/ext/redis_client/hiredis/vendor/appveyor.yml +0 -24
  42. data/ext/redis_client/hiredis/vendor/async.c +0 -887
  43. data/ext/redis_client/hiredis/vendor/async.h +0 -147
  44. data/ext/redis_client/hiredis/vendor/async_private.h +0 -75
  45. data/ext/redis_client/hiredis/vendor/dict.c +0 -352
  46. data/ext/redis_client/hiredis/vendor/dict.h +0 -126
  47. data/ext/redis_client/hiredis/vendor/fmacros.h +0 -12
  48. data/ext/redis_client/hiredis/vendor/hiredis-config.cmake.in +0 -13
  49. data/ext/redis_client/hiredis/vendor/hiredis.c +0 -1174
  50. data/ext/redis_client/hiredis/vendor/hiredis.h +0 -336
  51. data/ext/redis_client/hiredis/vendor/hiredis.pc.in +0 -12
  52. data/ext/redis_client/hiredis/vendor/hiredis_ssl-config.cmake.in +0 -13
  53. data/ext/redis_client/hiredis/vendor/hiredis_ssl.h +0 -157
  54. data/ext/redis_client/hiredis/vendor/hiredis_ssl.pc.in +0 -12
  55. data/ext/redis_client/hiredis/vendor/net.c +0 -612
  56. data/ext/redis_client/hiredis/vendor/net.h +0 -56
  57. data/ext/redis_client/hiredis/vendor/read.c +0 -739
  58. data/ext/redis_client/hiredis/vendor/read.h +0 -129
  59. data/ext/redis_client/hiredis/vendor/sds.c +0 -1289
  60. data/ext/redis_client/hiredis/vendor/sds.h +0 -278
  61. data/ext/redis_client/hiredis/vendor/sdsalloc.h +0 -44
  62. data/ext/redis_client/hiredis/vendor/sockcompat.c +0 -248
  63. data/ext/redis_client/hiredis/vendor/sockcompat.h +0 -92
  64. data/ext/redis_client/hiredis/vendor/ssl.c +0 -544
  65. data/ext/redis_client/hiredis/vendor/test.c +0 -1401
  66. data/ext/redis_client/hiredis/vendor/test.sh +0 -78
  67. data/ext/redis_client/hiredis/vendor/win32.h +0 -56
  68. data/lib/redis_client/buffered_io.rb +0 -151
  69. data/lib/redis_client/hiredis_connection.rb +0 -80
@@ -1,9 +0,0 @@
1
- /hiredis-test
2
- /examples/hiredis-example*
3
- /*.o
4
- /*.so
5
- /*.dylib
6
- /*.a
7
- /*.pc
8
- *.dSYM
9
- tags
@@ -1,131 +0,0 @@
1
- language: c
2
- compiler:
3
- - gcc
4
- - clang
5
-
6
- os:
7
- - linux
8
- - osx
9
-
10
- dist: bionic
11
-
12
- branches:
13
- only:
14
- - staging
15
- - trying
16
- - master
17
- - /^release\/.*$/
18
-
19
- install:
20
- - if [ "$BITS" == "64" ]; then
21
- wget https://github.com/redis/redis/archive/6.0.6.tar.gz;
22
- tar -xzvf 6.0.6.tar.gz;
23
- pushd redis-6.0.6 && BUILD_TLS=yes make && export PATH=$PWD/src:$PATH && popd;
24
- fi
25
-
26
- before_script:
27
- - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
28
- curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.6.2-10.13-HighSierra.pkg;
29
- sudo installer -pkg MacPorts-2.6.2-10.13-HighSierra.pkg -target /;
30
- export PATH=$PATH:/opt/local/bin && sudo port -v selfupdate;
31
- sudo port -N install openssl redis;
32
- fi;
33
-
34
- addons:
35
- apt:
36
- sources:
37
- - sourceline: 'ppa:chris-lea/redis-server'
38
- packages:
39
- - libc6-dbg
40
- - libc6-dev
41
- - libc6:i386
42
- - libc6-dev-i386
43
- - libc6-dbg:i386
44
- - gcc-multilib
45
- - g++-multilib
46
- - libssl-dev
47
- - libssl-dev:i386
48
- - valgrind
49
- - redis
50
-
51
- env:
52
- - BITS="32"
53
- - BITS="64"
54
-
55
- script:
56
- - EXTRA_CMAKE_OPTS="-DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON";
57
- if [ "$BITS" == "64" ]; then
58
- EXTRA_CMAKE_OPTS="$EXTRA_CMAKE_OPTS -DENABLE_SSL_TESTS:BOOL=ON";
59
- fi;
60
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then
61
- if [ "$BITS" == "32" ]; then
62
- CFLAGS="-m32 -Werror";
63
- CXXFLAGS="-m32 -Werror";
64
- LDFLAGS="-m32";
65
- EXTRA_CMAKE_OPTS=;
66
- else
67
- CFLAGS="-Werror";
68
- CXXFLAGS="-Werror";
69
- fi;
70
- else
71
- TEST_PREFIX="valgrind --track-origins=yes --leak-check=full";
72
- if [ "$BITS" == "32" ]; then
73
- CFLAGS="-m32 -Werror";
74
- CXXFLAGS="-m32 -Werror";
75
- LDFLAGS="-m32";
76
- EXTRA_CMAKE_OPTS=;
77
- else
78
- CFLAGS="-Werror";
79
- CXXFLAGS="-Werror";
80
- fi;
81
- fi;
82
- export CFLAGS CXXFLAGS LDFLAGS TEST_PREFIX EXTRA_CMAKE_OPTS
83
- - make && make clean;
84
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then
85
- if [ "$BITS" == "64" ]; then
86
- OPENSSL_PREFIX="$(ls -d /usr/local/Cellar/openssl@1.1/*)" USE_SSL=1 make;
87
- fi;
88
- else
89
- USE_SSL=1 make;
90
- fi;
91
- - mkdir build/ && cd build/
92
- - cmake .. ${EXTRA_CMAKE_OPTS}
93
- - make VERBOSE=1
94
- - if [ "$BITS" == "64" ]; then
95
- TEST_SSL=1 SKIPS_AS_FAILS=1 ctest -V;
96
- else
97
- SKIPS_AS_FAILS=1 ctest -V;
98
- fi;
99
-
100
- jobs:
101
- include:
102
- # Windows MinGW cross compile on Linux
103
- - os: linux
104
- dist: xenial
105
- compiler: mingw
106
- addons:
107
- apt:
108
- packages:
109
- - ninja-build
110
- - gcc-mingw-w64-x86-64
111
- - g++-mingw-w64-x86-64
112
- script:
113
- - mkdir build && cd build
114
- - CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_WITH_INSTALL_RPATH=on
115
- - ninja -v
116
-
117
- # Windows MSVC 2017
118
- - os: windows
119
- compiler: msvc
120
- env:
121
- - MATRIX_EVAL="CC=cl.exe && CXX=cl.exe"
122
- before_install:
123
- - eval "${MATRIX_EVAL}"
124
- install:
125
- - choco install ninja
126
- - choco install -y memurai-developer
127
- script:
128
- - mkdir build && cd build
129
- - cmd.exe //C 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat' amd64 '&&'
130
- cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_EXAMPLES=ON '&&' ninja -v
131
- - ./hiredis-test.exe
@@ -1,364 +0,0 @@
1
- ## [1.0.2](https://github.com/redis/hiredis/tree/v1.0.2) - (2021-10-07)
2
-
3
- Announcing Hiredis v1.0.2, which fixes CVE-2021-32765 but returns the SONAME to the correct value of `1.0.0`.
4
-
5
- - [Revert SONAME bump](https://github.com/redis/hiredis/commit/d4e6f109a064690cde64765c654e679fea1d3548)
6
- ([Michael Grunder](https://github.com/michael-grunder))
7
-
8
- ## [1.0.1](https://github.com/redis/hiredis/tree/v1.0.1) - (2021-10-04)
9
-
10
- <span style="color:red">This release erroneously bumped the SONAME, please use [1.0.2](https://github.com/redis/hiredis/tree/v1.0.2)</span>
11
-
12
- Announcing Hiredis v1.0.1, a security release fixing CVE-2021-32765
13
-
14
- - Fix for [CVE-2021-32765](https://github.com/redis/hiredis/security/advisories/GHSA-hfm9-39pp-55p2)
15
- [commit](https://github.com/redis/hiredis/commit/76a7b10005c70babee357a7d0f2becf28ec7ed1e)
16
- ([Yossi Gottlieb](https://github.com/yossigo))
17
-
18
- _Thanks to [Yossi Gottlieb](https://github.com/yossigo) for the security fix and to [Microsoft Security Vulnerability Research](https://www.microsoft.com/en-us/msrc/msvr) for finding the bug._ :sparkling_heart:
19
-
20
- ## [1.0.0](https://github.com/redis/hiredis/tree/v1.0.0) - (2020-08-03)
21
-
22
- Announcing Hiredis v1.0.0, which adds support for RESP3, SSL connections, allocator injection, and better Windows support! :tada:
23
-
24
- _A big thanks to everyone who helped with this release. The following list includes everyone who contributed at least five lines, sorted by lines contributed._ :sparkling_heart:
25
-
26
- [Michael Grunder](https://github.com/michael-grunder), [Yossi Gottlieb](https://github.com/yossigo),
27
- [Mark Nunberg](https://github.com/mnunberg), [Marcus Geelnard](https://github.com/mbitsnbites),
28
- [Justin Brewer](https://github.com/justinbrewer), [Valentino Geron](https://github.com/valentinogeron),
29
- [Minun Dragonation](https://github.com/dragonation), [Omri Steiner](https://github.com/OmriSteiner),
30
- [Sangmoon Yi](https://github.com/jman-krafton), [Jinjiazh](https://github.com/jinjiazhang),
31
- [Odin Hultgren Van Der Horst](https://github.com/Miniwoffer), [Muhammad Zahalqa](https://github.com/tryfinally),
32
- [Nick Rivera](https://github.com/heronr), [Qi Yang](https://github.com/movebean),
33
- [kevin1018](https://github.com/kevin1018)
34
-
35
- [Full Changelog](https://github.com/redis/hiredis/compare/v0.14.1...v1.0.0)
36
-
37
- **BREAKING CHANGES**:
38
-
39
- * `redisOptions` now has two timeout fields. One for connecting, and one for commands. If you're presently using `options->timeout` you will need to change it to use `options->connect_timeout`. (See [example](https://github.com/redis/hiredis/commit/38b5ae543f5c99eb4ccabbe277770fc6bc81226f#diff-86ba39d37aa829c8c82624cce4f049fbL36))
40
-
41
- * Bulk and multi-bulk lengths less than -1 or greater than `LLONG_MAX` are now protocol errors. This is consistent
42
- with the RESP specification. On 32-bit platforms, the upper bound is lowered to `SIZE_MAX`.
43
-
44
- * `redisReplyObjectFunctions.createArray` now takes `size_t` for its length parameter.
45
-
46
- **New features:**
47
- - Support for RESP3
48
- [\#697](https://github.com/redis/hiredis/pull/697),
49
- [\#805](https://github.com/redis/hiredis/pull/805),
50
- [\#819](https://github.com/redis/hiredis/pull/819),
51
- [\#841](https://github.com/redis/hiredis/pull/841)
52
- ([Yossi Gottlieb](https://github.com/yossigo), [Michael Grunder](https://github.com/michael-grunder))
53
- - Support for SSL connections
54
- [\#645](https://github.com/redis/hiredis/pull/645),
55
- [\#699](https://github.com/redis/hiredis/pull/699),
56
- [\#702](https://github.com/redis/hiredis/pull/702),
57
- [\#708](https://github.com/redis/hiredis/pull/708),
58
- [\#711](https://github.com/redis/hiredis/pull/711),
59
- [\#821](https://github.com/redis/hiredis/pull/821),
60
- [more](https://github.com/redis/hiredis/pulls?q=is%3Apr+is%3Amerged+SSL)
61
- ([Mark Nunberg](https://github.com/mnunberg), [Yossi Gottlieb](https://github.com/yossigo))
62
- - Run-time allocator injection
63
- [\#800](https://github.com/redis/hiredis/pull/800)
64
- ([Michael Grunder](https://github.com/michael-grunder))
65
- - Improved Windows support (including MinGW and Windows CI)
66
- [\#652](https://github.com/redis/hiredis/pull/652),
67
- [\#663](https://github.com/redis/hiredis/pull/663)
68
- ([Marcus Geelnard](https://www.bitsnbites.eu/author/m/))
69
- - Adds support for distinct connect and command timeouts
70
- [\#839](https://github.com/redis/hiredis/pull/839),
71
- [\#829](https://github.com/redis/hiredis/pull/829)
72
- ([Valentino Geron](https://github.com/valentinogeron))
73
- - Add generic pointer and destructor to `redisContext` that users can use for context.
74
- [\#855](https://github.com/redis/hiredis/pull/855)
75
- ([Michael Grunder](https://github.com/michael-grunder))
76
-
77
- **Closed issues (that involved code changes):**
78
-
79
- - Makefile does not install TLS libraries [\#809](https://github.com/redis/hiredis/issues/809)
80
- - redisConnectWithOptions should not set command timeout [\#722](https://github.com/redis/hiredis/issues/722), [\#829](https://github.com/redis/hiredis/pull/829) ([valentinogeron](https://github.com/valentinogeron))
81
- - Fix integer overflow in `sdsrange` [\#827](https://github.com/redis/hiredis/issues/827)
82
- - INFO & CLUSTER commands failed when using RESP3 [\#802](https://github.com/redis/hiredis/issues/802)
83
- - Windows compatibility patches [\#687](https://github.com/redis/hiredis/issues/687), [\#838](https://github.com/redis/hiredis/issues/838), [\#842](https://github.com/redis/hiredis/issues/842)
84
- - RESP3 PUSH messages incorrectly use pending callback [\#825](https://github.com/redis/hiredis/issues/825)
85
- - Asynchronous PSUBSCRIBE command fails when using RESP3 [\#815](https://github.com/redis/hiredis/issues/815)
86
- - New SSL API [\#804](https://github.com/redis/hiredis/issues/804), [\#813](https://github.com/redis/hiredis/issues/813)
87
- - Hard-coded limit of nested reply depth [\#794](https://github.com/redis/hiredis/issues/794)
88
- - Fix TCP_NODELAY in Windows/OSX [\#679](https://github.com/redis/hiredis/issues/679), [\#690](https://github.com/redis/hiredis/issues/690), [\#779](https://github.com/redis/hiredis/issues/779), [\#785](https://github.com/redis/hiredis/issues/785),
89
- - Added timers to libev adapter. [\#778](https://github.com/redis/hiredis/issues/778), [\#795](https://github.com/redis/hiredis/pull/795)
90
- - Initialization discards const qualifier [\#777](https://github.com/redis/hiredis/issues/777)
91
- - \[BUG\]\[MinGW64\] Error setting socket timeout [\#775](https://github.com/redis/hiredis/issues/775)
92
- - undefined reference to hi_malloc [\#769](https://github.com/redis/hiredis/issues/769)
93
- - hiredis pkg-config file incorrectly ignores multiarch libdir spec'n [\#767](https://github.com/redis/hiredis/issues/767)
94
- - Don't use -G to build shared object on Solaris [\#757](https://github.com/redis/hiredis/issues/757)
95
- - error when make USE\_SSL=1 [\#748](https://github.com/redis/hiredis/issues/748)
96
- - Allow to change SSL Mode [\#646](https://github.com/redis/hiredis/issues/646)
97
- - hiredis/adapters/libevent.h memleak [\#618](https://github.com/redis/hiredis/issues/618)
98
- - redisLibuvPoll crash when server closes the connetion [\#545](https://github.com/redis/hiredis/issues/545)
99
- - about redisAsyncDisconnect question [\#518](https://github.com/redis/hiredis/issues/518)
100
- - hiredis adapters libuv error for help [\#508](https://github.com/redis/hiredis/issues/508)
101
- - API/ABI changes analysis [\#506](https://github.com/redis/hiredis/issues/506)
102
- - Memory leak patch in Redis [\#502](https://github.com/redis/hiredis/issues/502)
103
- - Remove the depth limitation [\#421](https://github.com/redis/hiredis/issues/421)
104
-
105
- **Merged pull requests:**
106
-
107
- - Move SSL management to a distinct private pointer [\#855](https://github.com/redis/hiredis/pull/855) ([michael-grunder](https://github.com/michael-grunder))
108
- - Move include to sockcompat.h to maintain style [\#850](https://github.com/redis/hiredis/pull/850) ([michael-grunder](https://github.com/michael-grunder))
109
- - Remove erroneous tag and add license to push example [\#849](https://github.com/redis/hiredis/pull/849) ([michael-grunder](https://github.com/michael-grunder))
110
- - fix windows compiling with mingw [\#848](https://github.com/redis/hiredis/pull/848) ([rmalizia44](https://github.com/rmalizia44))
111
- - Some Windows quality of life improvements. [\#846](https://github.com/redis/hiredis/pull/846) ([michael-grunder](https://github.com/michael-grunder))
112
- - Use \_WIN32 define instead of WIN32 [\#845](https://github.com/redis/hiredis/pull/845) ([michael-grunder](https://github.com/michael-grunder))
113
- - Non Linux CI fixes [\#844](https://github.com/redis/hiredis/pull/844) ([michael-grunder](https://github.com/michael-grunder))
114
- - Resp3 oob push support [\#841](https://github.com/redis/hiredis/pull/841) ([michael-grunder](https://github.com/michael-grunder))
115
- - fix \#785: defer TCP\_NODELAY in async tcp connections [\#836](https://github.com/redis/hiredis/pull/836) ([OmriSteiner](https://github.com/OmriSteiner))
116
- - sdsrange overflow fix [\#830](https://github.com/redis/hiredis/pull/830) ([michael-grunder](https://github.com/michael-grunder))
117
- - Use explicit pointer casting for c++ compatibility [\#826](https://github.com/redis/hiredis/pull/826) ([aureus1](https://github.com/aureus1))
118
- - Document allocator injection and completeness fix in test.c [\#824](https://github.com/redis/hiredis/pull/824) ([michael-grunder](https://github.com/michael-grunder))
119
- - Use unique names for allocator struct members [\#823](https://github.com/redis/hiredis/pull/823) ([michael-grunder](https://github.com/michael-grunder))
120
- - New SSL API to replace redisSecureConnection\(\). [\#821](https://github.com/redis/hiredis/pull/821) ([yossigo](https://github.com/yossigo))
121
- - Add logic to handle RESP3 push messages [\#819](https://github.com/redis/hiredis/pull/819) ([michael-grunder](https://github.com/michael-grunder))
122
- - Use standrad isxdigit instead of custom helper function. [\#814](https://github.com/redis/hiredis/pull/814) ([tryfinally](https://github.com/tryfinally))
123
- - Fix missing SSL build/install options. [\#812](https://github.com/redis/hiredis/pull/812) ([yossigo](https://github.com/yossigo))
124
- - Add link to ABI tracker [\#808](https://github.com/redis/hiredis/pull/808) ([michael-grunder](https://github.com/michael-grunder))
125
- - Resp3 verbatim string support [\#805](https://github.com/redis/hiredis/pull/805) ([michael-grunder](https://github.com/michael-grunder))
126
- - Allow users to replace allocator and handle OOM everywhere. [\#800](https://github.com/redis/hiredis/pull/800) ([michael-grunder](https://github.com/michael-grunder))
127
- - Remove nested depth limitation. [\#797](https://github.com/redis/hiredis/pull/797) ([michael-grunder](https://github.com/michael-grunder))
128
- - Attempt to fix compilation on Solaris [\#796](https://github.com/redis/hiredis/pull/796) ([michael-grunder](https://github.com/michael-grunder))
129
- - Support timeouts in libev adapater [\#795](https://github.com/redis/hiredis/pull/795) ([michael-grunder](https://github.com/michael-grunder))
130
- - Fix pkgconfig when installing to a custom lib dir [\#793](https://github.com/redis/hiredis/pull/793) ([michael-grunder](https://github.com/michael-grunder))
131
- - Fix USE\_SSL=1 make/cmake on OSX and CMake tests [\#789](https://github.com/redis/hiredis/pull/789) ([michael-grunder](https://github.com/michael-grunder))
132
- - Use correct libuv call on Windows [\#784](https://github.com/redis/hiredis/pull/784) ([michael-grunder](https://github.com/michael-grunder))
133
- - Added CMake package config and fixed hiredis\_ssl on Windows [\#783](https://github.com/redis/hiredis/pull/783) ([michael-grunder](https://github.com/michael-grunder))
134
- - CMake: Set hiredis\_ssl shared object version. [\#780](https://github.com/redis/hiredis/pull/780) ([yossigo](https://github.com/yossigo))
135
- - Win32 tests and timeout fix [\#776](https://github.com/redis/hiredis/pull/776) ([michael-grunder](https://github.com/michael-grunder))
136
- - Provides an optional cleanup callback for async data. [\#768](https://github.com/redis/hiredis/pull/768) ([heronr](https://github.com/heronr))
137
- - Housekeeping fixes [\#764](https://github.com/redis/hiredis/pull/764) ([michael-grunder](https://github.com/michael-grunder))
138
- - install alloc.h [\#756](https://github.com/redis/hiredis/pull/756) ([ch1aki](https://github.com/ch1aki))
139
- - fix spelling mistakes [\#746](https://github.com/redis/hiredis/pull/746) ([ShooterIT](https://github.com/ShooterIT))
140
- - Free the reply in redisGetReply when passed NULL [\#741](https://github.com/redis/hiredis/pull/741) ([michael-grunder](https://github.com/michael-grunder))
141
- - Fix dead code in sslLogCallback relating to should\_log variable. [\#737](https://github.com/redis/hiredis/pull/737) ([natoscott](https://github.com/natoscott))
142
- - Fix typo in dict.c. [\#731](https://github.com/redis/hiredis/pull/731) ([Kevin-Xi](https://github.com/Kevin-Xi))
143
- - Adding an option to DISABLE\_TESTS [\#727](https://github.com/redis/hiredis/pull/727) ([pbotros](https://github.com/pbotros))
144
- - Update README with SSL support. [\#720](https://github.com/redis/hiredis/pull/720) ([yossigo](https://github.com/yossigo))
145
- - Fixes leaks in unit tests [\#715](https://github.com/redis/hiredis/pull/715) ([michael-grunder](https://github.com/michael-grunder))
146
- - SSL Tests [\#711](https://github.com/redis/hiredis/pull/711) ([yossigo](https://github.com/yossigo))
147
- - SSL Reorganization [\#708](https://github.com/redis/hiredis/pull/708) ([yossigo](https://github.com/yossigo))
148
- - Fix MSVC build. [\#706](https://github.com/redis/hiredis/pull/706) ([yossigo](https://github.com/yossigo))
149
- - SSL: Properly report SSL\_connect\(\) errors. [\#702](https://github.com/redis/hiredis/pull/702) ([yossigo](https://github.com/yossigo))
150
- - Silent SSL trace to stdout by default. [\#699](https://github.com/redis/hiredis/pull/699) ([yossigo](https://github.com/yossigo))
151
- - Port RESP3 support from Redis. [\#697](https://github.com/redis/hiredis/pull/697) ([yossigo](https://github.com/yossigo))
152
- - Removed whitespace before newline [\#691](https://github.com/redis/hiredis/pull/691) ([Miniwoffer](https://github.com/Miniwoffer))
153
- - Add install adapters header files [\#688](https://github.com/redis/hiredis/pull/688) ([kevin1018](https://github.com/kevin1018))
154
- - Remove unnecessary null check before free [\#684](https://github.com/redis/hiredis/pull/684) ([qlyoung](https://github.com/qlyoung))
155
- - redisReaderGetReply leak memory [\#671](https://github.com/redis/hiredis/pull/671) ([movebean](https://github.com/movebean))
156
- - fix timeout code in windows [\#670](https://github.com/redis/hiredis/pull/670) ([jman-krafton](https://github.com/jman-krafton))
157
- - test: fix errstr matching for musl libc [\#665](https://github.com/redis/hiredis/pull/665) ([ghost](https://github.com/ghost))
158
- - Windows: MinGW fixes and Windows Travis builders [\#663](https://github.com/redis/hiredis/pull/663) ([mbitsnbites](https://github.com/mbitsnbites))
159
- - The setsockopt and getsockopt API diffs from BSD socket and WSA one [\#662](https://github.com/redis/hiredis/pull/662) ([dragonation](https://github.com/dragonation))
160
- - Fix Compile Error On Windows \(Visual Studio\) [\#658](https://github.com/redis/hiredis/pull/658) ([jinjiazhang](https://github.com/jinjiazhang))
161
- - Fix NXDOMAIN test case [\#653](https://github.com/redis/hiredis/pull/653) ([michael-grunder](https://github.com/michael-grunder))
162
- - Add MinGW support [\#652](https://github.com/redis/hiredis/pull/652) ([mbitsnbites](https://github.com/mbitsnbites))
163
- - SSL Support [\#645](https://github.com/redis/hiredis/pull/645) ([mnunberg](https://github.com/mnunberg))
164
- - Fix Invalid argument after redisAsyncConnectUnix [\#644](https://github.com/redis/hiredis/pull/644) ([codehz](https://github.com/codehz))
165
- - Makefile: use predefined AR [\#632](https://github.com/redis/hiredis/pull/632) ([Mic92](https://github.com/Mic92))
166
- - FreeBSD build fix [\#628](https://github.com/redis/hiredis/pull/628) ([devnexen](https://github.com/devnexen))
167
- - Fix errors not propagating properly with libuv.h. [\#624](https://github.com/redis/hiredis/pull/624) ([yossigo](https://github.com/yossigo))
168
- - Update README.md [\#621](https://github.com/redis/hiredis/pull/621) ([Crunsher](https://github.com/Crunsher))
169
- - Fix redisBufferRead documentation [\#620](https://github.com/redis/hiredis/pull/620) ([hacst](https://github.com/hacst))
170
- - Add CPPFLAGS to REAL\_CFLAGS [\#614](https://github.com/redis/hiredis/pull/614) ([thomaslee](https://github.com/thomaslee))
171
- - Update createArray to take size\_t [\#597](https://github.com/redis/hiredis/pull/597) ([justinbrewer](https://github.com/justinbrewer))
172
- - fix common realloc mistake and add null check more [\#580](https://github.com/redis/hiredis/pull/580) ([charsyam](https://github.com/charsyam))
173
- - Proper error reporting for connect failures [\#578](https://github.com/redis/hiredis/pull/578) ([mnunberg](https://github.com/mnunberg))
174
-
175
- \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
176
-
177
- ## [1.0.0-rc1](https://github.com/redis/hiredis/tree/v1.0.0-rc1) - (2020-07-29)
178
-
179
- _Note: There were no changes to code between v1.0.0-rc1 and v1.0.0 so see v1.0.0 for changelog_
180
-
181
- ### 0.14.1 (2020-03-13)
182
-
183
- * Adds safe allocation wrappers (CVE-2020-7105, #747, #752) (Michael Grunder)
184
-
185
- ### 0.14.0 (2018-09-25)
186
- **BREAKING CHANGES**:
187
-
188
- * Change `redisReply.len` to `size_t`, as it denotes the the size of a string
189
-
190
- User code should compare this to `size_t` values as well.
191
- If it was used to compare to other values, casting might be necessary or can be removed, if casting was applied before.
192
-
193
- * Make string2ll static to fix conflict with Redis (Tom Lee [c3188b])
194
- * Use -dynamiclib instead of -shared for OSX (Ryan Schmidt [a65537])
195
- * Use string2ll from Redis w/added tests (Michael Grunder [7bef04, 60f622])
196
- * Makefile - OSX compilation fixes (Ryan Schmidt [881fcb, 0e9af8])
197
- * Remove redundant NULL checks (Justin Brewer [54acc8, 58e6b8])
198
- * Fix bulk and multi-bulk length truncation (Justin Brewer [109197])
199
- * Fix SIGSEGV in OpenBSD by checking for NULL before calling freeaddrinfo (Justin Brewer [546d94])
200
- * Several POSIX compatibility fixes (Justin Brewer [bbeab8, 49bbaa, d1c1b6])
201
- * Makefile - Compatibility fixes (Dimitri Vorobiev [3238cf, 12a9d1])
202
- * Makefile - Fix make install on FreeBSD (Zach Shipko [a2ef2b])
203
- * Makefile - don't assume $(INSTALL) is cp (Igor Gnatenko [725a96])
204
- * Separate side-effect causing function from assert and small cleanup (amallia [b46413, 3c3234])
205
- * Don't send negative values to `__redisAsyncCommand` (Frederik Deweerdt [706129])
206
- * Fix leak if setsockopt fails (Frederik Deweerdt [e21c9c])
207
- * Fix libevent leak (zfz [515228])
208
- * Clean up GCC warning (Ichito Nagata [2ec774])
209
- * Keep track of errno in `__redisSetErrorFromErrno()` as snprintf may use it (Jin Qing [25cd88])
210
- * Solaris compilation fix (Donald Whyte [41b07d])
211
- * Reorder linker arguments when building examples (Tustfarm-heart [06eedd])
212
- * Keep track of subscriptions in case of rapid subscribe/unsubscribe (Hyungjin Kim [073dc8, be76c5, d46999])
213
- * libuv use after free fix (Paul Scott [cbb956])
214
- * Properly close socket fd on reconnect attempt (WSL [64d1ec])
215
- * Skip valgrind in OSX tests (Jan-Erik Rediger [9deb78])
216
- * Various updates for Travis testing OSX (Ted Nyman [fa3774, 16a459, bc0ea5])
217
- * Update libevent (Chris Xin [386802])
218
- * Change sds.h for building in C++ projects (Ali Volkan ATLI [f5b32e])
219
- * Use proper format specifier in redisFormatSdsCommandArgv (Paulino Huerta, Jan-Erik Rediger [360a06, 8655a6])
220
- * Better handling of NULL reply in example code (Jan-Erik Rediger [1b8ed3])
221
- * Prevent overflow when formatting an error (Jan-Erik Rediger [0335cb])
222
- * Compatibility fix for strerror_r (Tom Lee [bb1747])
223
- * Properly detect integer parse/overflow errors (Justin Brewer [93421f])
224
- * Adds CI for Windows and cygwin fixes (owent, [6c53d6, 6c3e40])
225
- * Catch a buffer overflow when formatting the error message
226
- * Import latest upstream sds. This breaks applications that are linked against the old hiredis v0.13
227
- * Fix warnings, when compiled with -Wshadow
228
- * Make hiredis compile in Cygwin on Windows, now CI-tested
229
- * Bulk and multi-bulk lengths less than -1 or greater than `LLONG_MAX` are now
230
- protocol errors. This is consistent with the RESP specification. On 32-bit
231
- platforms, the upper bound is lowered to `SIZE_MAX`.
232
-
233
- * Remove backwards compatibility macro's
234
-
235
- This removes the following old function aliases, use the new name now:
236
-
237
- | Old | New |
238
- | --------------------------- | ---------------------- |
239
- | redisReplyReaderCreate | redisReaderCreate |
240
- | redisReplyReaderCreate | redisReaderCreate |
241
- | redisReplyReaderFree | redisReaderFree |
242
- | redisReplyReaderFeed | redisReaderFeed |
243
- | redisReplyReaderGetReply | redisReaderGetReply |
244
- | redisReplyReaderSetPrivdata | redisReaderSetPrivdata |
245
- | redisReplyReaderGetObject | redisReaderGetObject |
246
- | redisReplyReaderGetError | redisReaderGetError |
247
-
248
- * The `DEBUG` variable in the Makefile was renamed to `DEBUG_FLAGS`
249
-
250
- Previously it broke some builds for people that had `DEBUG` set to some arbitrary value,
251
- due to debugging other software.
252
- By renaming we avoid unintentional name clashes.
253
-
254
- Simply rename `DEBUG` to `DEBUG_FLAGS` in your environment to make it working again.
255
-
256
- ### 0.13.3 (2015-09-16)
257
-
258
- * Revert "Clear `REDIS_CONNECTED` flag when connection is closed".
259
- * Make tests pass on FreeBSD (Thanks, Giacomo Olgeni)
260
-
261
-
262
- If the `REDIS_CONNECTED` flag is cleared,
263
- the async onDisconnect callback function will never be called.
264
- This causes problems as the disconnect is never reported back to the user.
265
-
266
- ### 0.13.2 (2015-08-25)
267
-
268
- * Prevent crash on pending replies in async code (Thanks, @switch-st)
269
- * Clear `REDIS_CONNECTED` flag when connection is closed (Thanks, Jerry Jacobs)
270
- * Add MacOS X addapter (Thanks, @dizzus)
271
- * Add Qt adapter (Thanks, Pietro Cerutti)
272
- * Add Ivykis adapter (Thanks, Gergely Nagy)
273
-
274
- All adapters are provided as is and are only tested where possible.
275
-
276
- ### 0.13.1 (2015-05-03)
277
-
278
- This is a bug fix release.
279
- The new `reconnect` method introduced new struct members, which clashed with pre-defined names in pre-C99 code.
280
- Another commit forced C99 compilation just to make it work, but of course this is not desirable for outside projects.
281
- Other non-C99 code can now use hiredis as usual again.
282
- Sorry for the inconvenience.
283
-
284
- * Fix memory leak in async reply handling (Salvatore Sanfilippo)
285
- * Rename struct member to avoid name clash with pre-c99 code (Alex Balashov, ncopa)
286
-
287
- ### 0.13.0 (2015-04-16)
288
-
289
- This release adds a minimal Windows compatibility layer.
290
- The parser, standalone since v0.12.0, can now be compiled on Windows
291
- (and thus used in other client libraries as well)
292
-
293
- * Windows compatibility layer for parser code (tzickel)
294
- * Properly escape data printed to PKGCONF file (Dan Skorupski)
295
- * Fix tests when assert() undefined (Keith Bennett, Matt Stancliff)
296
- * Implement a reconnect method for the client context, this changes the structure of `redisContext` (Aaron Bedra)
297
-
298
- ### 0.12.1 (2015-01-26)
299
-
300
- * Fix `make install`: DESTDIR support, install all required files, install PKGCONF in proper location
301
- * Fix `make test` as 32 bit build on 64 bit platform
302
-
303
- ### 0.12.0 (2015-01-22)
304
-
305
- * Add optional KeepAlive support
306
-
307
- * Try again on EINTR errors
308
-
309
- * Add libuv adapter
310
-
311
- * Add IPv6 support
312
-
313
- * Remove possibility of multiple close on same fd
314
-
315
- * Add ability to bind source address on connect
316
-
317
- * Add redisConnectFd() and redisFreeKeepFd()
318
-
319
- * Fix getaddrinfo() memory leak
320
-
321
- * Free string if it is unused (fixes memory leak)
322
-
323
- * Improve redisAppendCommandArgv performance 2.5x
324
-
325
- * Add support for SO_REUSEADDR
326
-
327
- * Fix redisvFormatCommand format parsing
328
-
329
- * Add GLib 2.0 adapter
330
-
331
- * Refactor reading code into read.c
332
-
333
- * Fix errno error buffers to not clobber errors
334
-
335
- * Generate pkgconf during build
336
-
337
- * Silence _BSD_SOURCE warnings
338
-
339
- * Improve digit counting for multibulk creation
340
-
341
-
342
- ### 0.11.0
343
-
344
- * Increase the maximum multi-bulk reply depth to 7.
345
-
346
- * Increase the read buffer size from 2k to 16k.
347
-
348
- * Use poll(2) instead of select(2) to support large fds (>= 1024).
349
-
350
- ### 0.10.1
351
-
352
- * Makefile overhaul. Important to check out if you override one or more
353
- variables using environment variables or via arguments to the "make" tool.
354
-
355
- * Issue #45: Fix potential memory leak for a multi bulk reply with 0 elements
356
- being created by the default reply object functions.
357
-
358
- * Issue #43: Don't crash in an asynchronous context when Redis returns an error
359
- reply after the connection has been made (this happens when the maximum
360
- number of connections is reached).
361
-
362
- ### 0.10.0
363
-
364
- * See commit log.