redis-client 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rubocop.yml +190 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +23 -0
- data/Gemfile.lock +67 -0
- data/LICENSE.md +21 -0
- data/README.md +347 -0
- data/Rakefile +86 -0
- data/ext/redis_client/hiredis/extconf.rb +54 -0
- data/ext/redis_client/hiredis/hiredis_connection.c +696 -0
- data/ext/redis_client/hiredis/vendor/.gitignore +9 -0
- data/ext/redis_client/hiredis/vendor/.travis.yml +131 -0
- data/ext/redis_client/hiredis/vendor/CHANGELOG.md +364 -0
- data/ext/redis_client/hiredis/vendor/CMakeLists.txt +165 -0
- data/ext/redis_client/hiredis/vendor/COPYING +29 -0
- data/ext/redis_client/hiredis/vendor/Makefile +308 -0
- data/ext/redis_client/hiredis/vendor/README.md +664 -0
- data/ext/redis_client/hiredis/vendor/adapters/ae.h +130 -0
- data/ext/redis_client/hiredis/vendor/adapters/glib.h +156 -0
- data/ext/redis_client/hiredis/vendor/adapters/ivykis.h +84 -0
- data/ext/redis_client/hiredis/vendor/adapters/libev.h +179 -0
- data/ext/redis_client/hiredis/vendor/adapters/libevent.h +175 -0
- data/ext/redis_client/hiredis/vendor/adapters/libuv.h +117 -0
- data/ext/redis_client/hiredis/vendor/adapters/macosx.h +115 -0
- data/ext/redis_client/hiredis/vendor/adapters/qt.h +135 -0
- data/ext/redis_client/hiredis/vendor/alloc.c +86 -0
- data/ext/redis_client/hiredis/vendor/alloc.h +91 -0
- data/ext/redis_client/hiredis/vendor/appveyor.yml +24 -0
- data/ext/redis_client/hiredis/vendor/async.c +887 -0
- data/ext/redis_client/hiredis/vendor/async.h +147 -0
- data/ext/redis_client/hiredis/vendor/async_private.h +75 -0
- data/ext/redis_client/hiredis/vendor/dict.c +352 -0
- data/ext/redis_client/hiredis/vendor/dict.h +126 -0
- data/ext/redis_client/hiredis/vendor/fmacros.h +12 -0
- data/ext/redis_client/hiredis/vendor/hiredis-config.cmake.in +13 -0
- data/ext/redis_client/hiredis/vendor/hiredis.c +1174 -0
- data/ext/redis_client/hiredis/vendor/hiredis.h +336 -0
- data/ext/redis_client/hiredis/vendor/hiredis.pc.in +12 -0
- data/ext/redis_client/hiredis/vendor/hiredis_ssl-config.cmake.in +13 -0
- data/ext/redis_client/hiredis/vendor/hiredis_ssl.h +157 -0
- data/ext/redis_client/hiredis/vendor/hiredis_ssl.pc.in +12 -0
- data/ext/redis_client/hiredis/vendor/net.c +612 -0
- data/ext/redis_client/hiredis/vendor/net.h +56 -0
- data/ext/redis_client/hiredis/vendor/read.c +739 -0
- data/ext/redis_client/hiredis/vendor/read.h +129 -0
- data/ext/redis_client/hiredis/vendor/sds.c +1289 -0
- data/ext/redis_client/hiredis/vendor/sds.h +278 -0
- data/ext/redis_client/hiredis/vendor/sdsalloc.h +44 -0
- data/ext/redis_client/hiredis/vendor/sockcompat.c +248 -0
- data/ext/redis_client/hiredis/vendor/sockcompat.h +92 -0
- data/ext/redis_client/hiredis/vendor/ssl.c +544 -0
- data/ext/redis_client/hiredis/vendor/test.c +1401 -0
- data/ext/redis_client/hiredis/vendor/test.sh +78 -0
- data/ext/redis_client/hiredis/vendor/win32.h +56 -0
- data/lib/redis-client.rb +3 -0
- data/lib/redis_client/buffered_io.rb +149 -0
- data/lib/redis_client/config.rb +174 -0
- data/lib/redis_client/connection.rb +86 -0
- data/lib/redis_client/hiredis_connection.rb +78 -0
- data/lib/redis_client/pooled.rb +86 -0
- data/lib/redis_client/resp3.rb +225 -0
- data/lib/redis_client/sentinel_config.rb +134 -0
- data/lib/redis_client/version.rb +5 -0
- data/lib/redis_client.rb +438 -0
- data/redis-client.gemspec +34 -0
- metadata +125 -0
@@ -0,0 +1,131 @@
|
|
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
|
@@ -0,0 +1,364 @@
|
|
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.
|
@@ -0,0 +1,165 @@
|
|
1
|
+
CMAKE_MINIMUM_REQUIRED(VERSION 3.4.0)
|
2
|
+
INCLUDE(GNUInstallDirs)
|
3
|
+
PROJECT(hiredis)
|
4
|
+
|
5
|
+
OPTION(ENABLE_SSL "Build hiredis_ssl for SSL support" OFF)
|
6
|
+
OPTION(DISABLE_TESTS "If tests should be compiled or not" OFF)
|
7
|
+
OPTION(ENABLE_SSL_TESTS, "Should we test SSL connections" OFF)
|
8
|
+
|
9
|
+
MACRO(getVersionBit name)
|
10
|
+
SET(VERSION_REGEX "^#define ${name} (.+)$")
|
11
|
+
FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/hiredis.h"
|
12
|
+
VERSION_BIT REGEX ${VERSION_REGEX})
|
13
|
+
STRING(REGEX REPLACE ${VERSION_REGEX} "\\1" ${name} "${VERSION_BIT}")
|
14
|
+
ENDMACRO(getVersionBit)
|
15
|
+
|
16
|
+
getVersionBit(HIREDIS_MAJOR)
|
17
|
+
getVersionBit(HIREDIS_MINOR)
|
18
|
+
getVersionBit(HIREDIS_PATCH)
|
19
|
+
getVersionBit(HIREDIS_SONAME)
|
20
|
+
SET(VERSION "${HIREDIS_MAJOR}.${HIREDIS_MINOR}.${HIREDIS_PATCH}")
|
21
|
+
MESSAGE("Detected version: ${VERSION}")
|
22
|
+
|
23
|
+
PROJECT(hiredis VERSION "${VERSION}")
|
24
|
+
|
25
|
+
SET(ENABLE_EXAMPLES OFF CACHE BOOL "Enable building hiredis examples")
|
26
|
+
|
27
|
+
SET(hiredis_sources
|
28
|
+
alloc.c
|
29
|
+
async.c
|
30
|
+
dict.c
|
31
|
+
hiredis.c
|
32
|
+
net.c
|
33
|
+
read.c
|
34
|
+
sds.c
|
35
|
+
sockcompat.c)
|
36
|
+
|
37
|
+
SET(hiredis_sources ${hiredis_sources})
|
38
|
+
|
39
|
+
IF(WIN32)
|
40
|
+
ADD_COMPILE_DEFINITIONS(_CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN)
|
41
|
+
ENDIF()
|
42
|
+
|
43
|
+
ADD_LIBRARY(hiredis SHARED ${hiredis_sources})
|
44
|
+
|
45
|
+
SET_TARGET_PROPERTIES(hiredis
|
46
|
+
PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE
|
47
|
+
VERSION "${HIREDIS_SONAME}")
|
48
|
+
IF(WIN32 OR MINGW)
|
49
|
+
TARGET_LINK_LIBRARIES(hiredis PRIVATE ws2_32)
|
50
|
+
ENDIF()
|
51
|
+
|
52
|
+
TARGET_INCLUDE_DIRECTORIES(hiredis PUBLIC $<INSTALL_INTERFACE:.> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
53
|
+
|
54
|
+
CONFIGURE_FILE(hiredis.pc.in hiredis.pc @ONLY)
|
55
|
+
|
56
|
+
INSTALL(TARGETS hiredis
|
57
|
+
EXPORT hiredis-targets
|
58
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
59
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
60
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
61
|
+
|
62
|
+
INSTALL(FILES hiredis.h read.h sds.h async.h alloc.h
|
63
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hiredis)
|
64
|
+
|
65
|
+
INSTALL(DIRECTORY adapters
|
66
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hiredis)
|
67
|
+
|
68
|
+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis.pc
|
69
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
70
|
+
|
71
|
+
export(EXPORT hiredis-targets
|
72
|
+
FILE "${CMAKE_CURRENT_BINARY_DIR}/hiredis-targets.cmake"
|
73
|
+
NAMESPACE hiredis::)
|
74
|
+
|
75
|
+
SET(CMAKE_CONF_INSTALL_DIR share/hiredis)
|
76
|
+
SET(INCLUDE_INSTALL_DIR include)
|
77
|
+
include(CMakePackageConfigHelpers)
|
78
|
+
configure_package_config_file(hiredis-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hiredis-config.cmake
|
79
|
+
INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR}
|
80
|
+
PATH_VARS INCLUDE_INSTALL_DIR)
|
81
|
+
|
82
|
+
INSTALL(EXPORT hiredis-targets
|
83
|
+
FILE hiredis-targets.cmake
|
84
|
+
NAMESPACE hiredis::
|
85
|
+
DESTINATION ${CMAKE_CONF_INSTALL_DIR})
|
86
|
+
|
87
|
+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis-config.cmake
|
88
|
+
DESTINATION ${CMAKE_CONF_INSTALL_DIR})
|
89
|
+
|
90
|
+
|
91
|
+
IF(ENABLE_SSL)
|
92
|
+
IF (NOT OPENSSL_ROOT_DIR)
|
93
|
+
IF (APPLE)
|
94
|
+
SET(OPENSSL_ROOT_DIR "/usr/local/opt/openssl")
|
95
|
+
ENDIF()
|
96
|
+
ENDIF()
|
97
|
+
FIND_PACKAGE(OpenSSL REQUIRED)
|
98
|
+
SET(hiredis_ssl_sources
|
99
|
+
ssl.c)
|
100
|
+
ADD_LIBRARY(hiredis_ssl SHARED
|
101
|
+
${hiredis_ssl_sources})
|
102
|
+
|
103
|
+
IF (APPLE)
|
104
|
+
SET_PROPERTY(TARGET hiredis_ssl PROPERTY LINK_FLAGS "-Wl,-undefined -Wl,dynamic_lookup")
|
105
|
+
ENDIF()
|
106
|
+
|
107
|
+
SET_TARGET_PROPERTIES(hiredis_ssl
|
108
|
+
PROPERTIES
|
109
|
+
WINDOWS_EXPORT_ALL_SYMBOLS TRUE
|
110
|
+
VERSION "${HIREDIS_SONAME}")
|
111
|
+
|
112
|
+
TARGET_INCLUDE_DIRECTORIES(hiredis_ssl PRIVATE "${OPENSSL_INCLUDE_DIR}")
|
113
|
+
TARGET_LINK_LIBRARIES(hiredis_ssl PRIVATE ${OPENSSL_LIBRARIES})
|
114
|
+
IF (WIN32 OR MINGW)
|
115
|
+
TARGET_LINK_LIBRARIES(hiredis_ssl PRIVATE hiredis)
|
116
|
+
ENDIF()
|
117
|
+
CONFIGURE_FILE(hiredis_ssl.pc.in hiredis_ssl.pc @ONLY)
|
118
|
+
|
119
|
+
INSTALL(TARGETS hiredis_ssl
|
120
|
+
EXPORT hiredis_ssl-targets
|
121
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
122
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
123
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
124
|
+
|
125
|
+
INSTALL(FILES hiredis_ssl.h
|
126
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hiredis)
|
127
|
+
|
128
|
+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl.pc
|
129
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
130
|
+
|
131
|
+
export(EXPORT hiredis_ssl-targets
|
132
|
+
FILE "${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl-targets.cmake"
|
133
|
+
NAMESPACE hiredis::)
|
134
|
+
|
135
|
+
SET(CMAKE_CONF_INSTALL_DIR share/hiredis_ssl)
|
136
|
+
configure_package_config_file(hiredis_ssl-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl-config.cmake
|
137
|
+
INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR}
|
138
|
+
PATH_VARS INCLUDE_INSTALL_DIR)
|
139
|
+
|
140
|
+
INSTALL(EXPORT hiredis_ssl-targets
|
141
|
+
FILE hiredis_ssl-targets.cmake
|
142
|
+
NAMESPACE hiredis::
|
143
|
+
DESTINATION ${CMAKE_CONF_INSTALL_DIR})
|
144
|
+
|
145
|
+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl-config.cmake
|
146
|
+
DESTINATION ${CMAKE_CONF_INSTALL_DIR})
|
147
|
+
ENDIF()
|
148
|
+
|
149
|
+
IF(NOT DISABLE_TESTS)
|
150
|
+
ENABLE_TESTING()
|
151
|
+
ADD_EXECUTABLE(hiredis-test test.c)
|
152
|
+
IF(ENABLE_SSL_TESTS)
|
153
|
+
ADD_DEFINITIONS(-DHIREDIS_TEST_SSL=1)
|
154
|
+
TARGET_LINK_LIBRARIES(hiredis-test hiredis hiredis_ssl)
|
155
|
+
ELSE()
|
156
|
+
TARGET_LINK_LIBRARIES(hiredis-test hiredis)
|
157
|
+
ENDIF()
|
158
|
+
ADD_TEST(NAME hiredis-test
|
159
|
+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/test.sh)
|
160
|
+
ENDIF()
|
161
|
+
|
162
|
+
# Add examples
|
163
|
+
IF(ENABLE_EXAMPLES)
|
164
|
+
ADD_SUBDIRECTORY(examples)
|
165
|
+
ENDIF(ENABLE_EXAMPLES)
|