redis-client 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +190 -0
  3. data/CHANGELOG.md +3 -0
  4. data/Gemfile +23 -0
  5. data/Gemfile.lock +67 -0
  6. data/LICENSE.md +21 -0
  7. data/README.md +347 -0
  8. data/Rakefile +86 -0
  9. data/ext/redis_client/hiredis/extconf.rb +54 -0
  10. data/ext/redis_client/hiredis/hiredis_connection.c +696 -0
  11. data/ext/redis_client/hiredis/vendor/.gitignore +9 -0
  12. data/ext/redis_client/hiredis/vendor/.travis.yml +131 -0
  13. data/ext/redis_client/hiredis/vendor/CHANGELOG.md +364 -0
  14. data/ext/redis_client/hiredis/vendor/CMakeLists.txt +165 -0
  15. data/ext/redis_client/hiredis/vendor/COPYING +29 -0
  16. data/ext/redis_client/hiredis/vendor/Makefile +308 -0
  17. data/ext/redis_client/hiredis/vendor/README.md +664 -0
  18. data/ext/redis_client/hiredis/vendor/adapters/ae.h +130 -0
  19. data/ext/redis_client/hiredis/vendor/adapters/glib.h +156 -0
  20. data/ext/redis_client/hiredis/vendor/adapters/ivykis.h +84 -0
  21. data/ext/redis_client/hiredis/vendor/adapters/libev.h +179 -0
  22. data/ext/redis_client/hiredis/vendor/adapters/libevent.h +175 -0
  23. data/ext/redis_client/hiredis/vendor/adapters/libuv.h +117 -0
  24. data/ext/redis_client/hiredis/vendor/adapters/macosx.h +115 -0
  25. data/ext/redis_client/hiredis/vendor/adapters/qt.h +135 -0
  26. data/ext/redis_client/hiredis/vendor/alloc.c +86 -0
  27. data/ext/redis_client/hiredis/vendor/alloc.h +91 -0
  28. data/ext/redis_client/hiredis/vendor/appveyor.yml +24 -0
  29. data/ext/redis_client/hiredis/vendor/async.c +887 -0
  30. data/ext/redis_client/hiredis/vendor/async.h +147 -0
  31. data/ext/redis_client/hiredis/vendor/async_private.h +75 -0
  32. data/ext/redis_client/hiredis/vendor/dict.c +352 -0
  33. data/ext/redis_client/hiredis/vendor/dict.h +126 -0
  34. data/ext/redis_client/hiredis/vendor/fmacros.h +12 -0
  35. data/ext/redis_client/hiredis/vendor/hiredis-config.cmake.in +13 -0
  36. data/ext/redis_client/hiredis/vendor/hiredis.c +1174 -0
  37. data/ext/redis_client/hiredis/vendor/hiredis.h +336 -0
  38. data/ext/redis_client/hiredis/vendor/hiredis.pc.in +12 -0
  39. data/ext/redis_client/hiredis/vendor/hiredis_ssl-config.cmake.in +13 -0
  40. data/ext/redis_client/hiredis/vendor/hiredis_ssl.h +157 -0
  41. data/ext/redis_client/hiredis/vendor/hiredis_ssl.pc.in +12 -0
  42. data/ext/redis_client/hiredis/vendor/net.c +612 -0
  43. data/ext/redis_client/hiredis/vendor/net.h +56 -0
  44. data/ext/redis_client/hiredis/vendor/read.c +739 -0
  45. data/ext/redis_client/hiredis/vendor/read.h +129 -0
  46. data/ext/redis_client/hiredis/vendor/sds.c +1289 -0
  47. data/ext/redis_client/hiredis/vendor/sds.h +278 -0
  48. data/ext/redis_client/hiredis/vendor/sdsalloc.h +44 -0
  49. data/ext/redis_client/hiredis/vendor/sockcompat.c +248 -0
  50. data/ext/redis_client/hiredis/vendor/sockcompat.h +92 -0
  51. data/ext/redis_client/hiredis/vendor/ssl.c +544 -0
  52. data/ext/redis_client/hiredis/vendor/test.c +1401 -0
  53. data/ext/redis_client/hiredis/vendor/test.sh +78 -0
  54. data/ext/redis_client/hiredis/vendor/win32.h +56 -0
  55. data/lib/redis-client.rb +3 -0
  56. data/lib/redis_client/buffered_io.rb +149 -0
  57. data/lib/redis_client/config.rb +174 -0
  58. data/lib/redis_client/connection.rb +86 -0
  59. data/lib/redis_client/hiredis_connection.rb +78 -0
  60. data/lib/redis_client/pooled.rb +86 -0
  61. data/lib/redis_client/resp3.rb +225 -0
  62. data/lib/redis_client/sentinel_config.rb +134 -0
  63. data/lib/redis_client/version.rb +5 -0
  64. data/lib/redis_client.rb +438 -0
  65. data/redis-client.gemspec +34 -0
  66. 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)