Commit Graph

646 Commits

Author SHA1 Message Date
Jan-Erik Rediger
9deb78140f chore(CI): Exclude valgrind jobs on OSX 2016-06-20 11:08:34 +02:00
Ted Nyman
bc0ea5c466 Do not define _XOPEN_SOURCE for OS X
Resolves failed `make` on OS X.
2016-06-19 22:14:41 -07:00
Ted Nyman
16a459d008 Add a before_script for the OS X environment 2016-06-19 22:05:34 -07:00
Ted Nyman
fa3774081e Test on Travis for both linux and osx 2016-06-19 21:49:44 -07:00
Chris.Xin
386802e809 using new version libevent 2016-05-20 18:55:57 +08:00
Ali Volkan ATLI
f5b32e2474 Update sds.h
Fixing sds.h for building hiredis in cpp project
2016-05-14 23:11:33 +03:00
not-a-robot
e30db1a3be Auto merge of #427 - redis:pr-426, r=badboy
Pr 426

Closes #426, now with test
2016-05-14 11:45:18 +02:00
Jan-Erik Rediger
8655a6ac7a test: Add regression test for sds argv formatting 2016-05-14 11:26:18 +02:00
Paulino Huerta
360a0646bb Typo format in redisFormatSdsCommandArgv function
this issue is very significant, because not allow the proper execution of the "function redisCommandArgv". The server returns "invalid bulk length".
Thanks!
2016-05-14 01:53:48 +02:00
not-a-robot
e93c05a7aa Auto merge of #378 - thomaslee:tom_fix_kfreebsd, r=badboy
Fix strerror_r on some esoteric platforms

Defining _XOPEN_SOURCE=1 causes strange behavior on Debian kfreebsd archs -- i.e. the GNU userspace with FreeBSD kernel -- when _GNU_SOURCE is not defined (the default).

Not sure I fully understand the bizarre semantics, but it seems to use the XSI-compliant interface (int strerror_r(int, char*, size_t)) but the GNU implementation (char *strerror_r(int, char*, size_t)) such that strerror_r returns 32-bits of a 64-bit char * on x86_64 kfreebsd. We would expect strerror_r to return zero when using the XSI-compliant strerror_r implementation or a 64-bit char* when using the GNU version. Instead, we get something in between!

Unless I'm missing something, being more explicit about what version of _XOPEN_SOURCE we want seems to be the prudent thing to do here -- and if folks want the GNU implementation of strerror_r for some reason they can always -D_GNU_SOURCE explicitly.
2016-05-12 09:44:47 +02:00
not-a-robot
8ef4c472f8 Auto merge of #418 - redis:debug-flags, r=badboy
fix: Rename DEBUG to DEBUG_FLAGS

This avoids issues with environments where DEBUG is set to an arbitrary
value to force debug mode in other tools.

BREAKING CHANGE: This breaks builds that explicitely set `DEBUG` to
                 some value (even the empty value).
                 To get back the old behaviour change the `DEBUG_FLAGS`
                 variable now.

Cloes #381
2016-04-20 18:49:22 +02:00
Jan-Erik Rediger
0616677c93 docs: Add breaking change note about makefile variable 2016-04-20 18:48:39 +02:00
Jan-Erik Rediger
acf8950041 fix: Rename DEBUG to DEBUG_FLAGS
This avoids issues with environments where DEBUG is set to an arbitrary
value to force debug mode in other tools.

BREAKING CHANGE: This breaks builds that explicitely set `DEBUG` to
                 some value (even the empty value).
                 To get back the old behaviour change the `DEBUG_FLAGS`
                 variable now.
2016-04-20 18:46:35 +02:00
not-a-robot
81e8176bac Auto merge of #417 - redis:thread-safety, r=badboy
docs: Note about thread-safety
2016-04-20 18:31:34 +02:00
not-a-robot
35a16d6f69 Auto merge of #416 - redis:string-len-size_t, r=badboy
fix: Change string length type to size_t
2016-04-20 18:17:33 +02:00
not-a-robot
278745d840 Auto merge of #415 - redis:new-readme, r=badboy
docs: Add changelog for upcoming version and note about status of README
2016-04-20 17:55:43 +02:00
Jan-Erik Rediger
b2213b7643 docs: Note about thread-safety 2016-04-20 17:49:20 +02:00
not-a-robot
a91afd746b Auto merge of #379 - thomaslee:tom_test_race, r=badboy
Fix potential race in 'invalid timeout' tests

It's possible for the call to connect() to succeed on the very first try, in which case the logic for checking for invalid timeout fields is never executed. When this happens, the tests fail because they expect a REDIS_ERR_IO but no such failure has occurred.

Tests aside, this is a potential source of irritating and hard-to-find intermittent bugs.

This patch forces the validation to occur early so that we get predictable behavior whenever an invalid timeout is specified.
2016-04-20 17:42:04 +02:00
not-a-robot
d3c7df33a1 Auto merge of #406 - DongwenHuang:patch-1, r=badboy
Update read.c

static char *seekNewline(char *s, size_t len)  :
this function can not parse the string,such as "hello world\r". the case that  the last char is '\r'.
2016-04-20 17:24:30 +02:00
not-a-robot
be2c4272c4 Auto merge of #413 - charsyam:feature/remove-unused-code, r=badboy
remove unnecessory code

remove some  unnecessory code. It is not used any other parts
2016-04-20 17:07:21 +02:00
Jan-Erik Rediger
dba8e32f3e docs: Add changelog for upcoming version and note about status of README
[ci-skip]
2016-04-20 17:01:17 +02:00
Jan-Erik Rediger
97ac0d1f50 fix: Change string length type to size_t 2016-04-20 17:00:14 +02:00
not-a-robot
f201e79bf4 Auto merge of #411 - redis:backwards-compatibility-macros, r=badboy
fix: Remove backwards compatibility macro's

Closes #296

BREAKING CHANGE: This removes the redisReplyReader* functions, which are
                 already replaced by redisReader* functions.
                 It renames `redisReplyReaderSetPrivdata`,
                 `redisReplyReaderGetObject` and `redisReplyReaderGetError`
                 to `redisReaderSetPrivdata`, `redisReaderGetObject`
                 and `redisReaderGetError`.
2016-04-20 16:54:36 +02:00
charsyam
f51fdfb7af remove unnessory code 2016-04-20 23:49:42 +09:00
not-a-robot
92d0e23661 Auto merge of #414 - redis:fix-cygwin, r=badboy
Fix cygwin
2016-04-20 16:44:15 +02:00
not-a-robot
2e11f0c892 Auto merge of #410 - redis:updated-sds, r=badboy
Updated sds
2016-04-20 16:24:57 +02:00
charsyam
921e1aa84b remove unused code 2016-04-20 23:15:41 +09:00
Jan-Erik Rediger
3cba03237e chore: Cleanup appveyor configuration 2016-04-20 16:11:59 +02:00
owent
6c3e40cc8c remove werror in cygwin 2016-04-20 16:10:38 +02:00
owent
6c53d6803a Add CI for Windows
- fix macro problem in mingw-gcc
- fix typedef in cygwin
2016-04-20 16:10:02 +02:00
not-a-robot
cec13a9c46 Auto merge of #407 - xor-gate:fix-wundef-warning, r=badboy
fmacros.h: Fix warning when compiled with -Wundef

When compiling with the flag `-Wundef` the following warning is emitted:

```
[ 40%] Building C object CMakeFiles/hiredis-STATIC.dir/read.c.o
In file included from /data/files/users/jerry/github/hiredis/read.c:33:0:
/data/files/users/jerry/github/hiredis/fmacros.h:17:5: warning: "__APPLE__" is not defined [-Wundef]
 #if __APPLE__ && __MACH__
     ^
In file included from /usr/include/string.h:25:0,
                 from /data/files/users/jerry/github/hiredis/read.c:34:
```
2016-04-20 15:52:12 +02:00
Jan-Erik Rediger
8f5265ded3 fix: Remove backwards compatibility macro's
Closes #296

BREAKING CHANGE: This removes the redisReplyReader* functions, which are
                 already replaced by redisReader* functions.
                 It renames `redisReplyReaderSetPrivdata`,
                 `redisReplyReaderGetObject` and `redisReplyReaderGetError`
                 to `redisReaderSetPrivdata`, `redisReaderGetObject`
                 and `redisReaderGetError`.
2016-04-20 15:42:10 +02:00
Jan-Erik Rediger
a72860765f fix: Add sdsalloc.h file 2016-04-20 15:36:51 +02:00
not-a-robot
36bddcf6ed Auto merge of #391 - redis:catch-error-buf-overflow, r=badboy
Prevent buffer overflow when formatting the error

strncat might copy n+1 bytes (n bytes from the source plus a terminating nul byte).
Also strncat appends after the first found nul byte. But all we pass is
a buffer we might not have zeroed out already.

Closes #380
2016-04-20 15:31:23 +02:00
Jan-Erik Rediger
63e1cf0c63 feat: Include latests changes from sds upstream 2016-04-20 15:27:38 +02:00
clark.kang
d76e13b6d5 apply sds from redis 2016-04-20 15:27:11 +02:00
not-a-robot
2139f78c71 Auto merge of #409 - xor-gate:fix-shadow-in-test, r=badboy
test.c: Fix shadowed name with typedef when compiling with -Wshadow

Fixes:
```
/data/files/users/jerry/github/hiredis/test.c: In function 'test_free_null':
/data/files/users/jerry/github/hiredis/test.c:331:11: warning: declaration of 'redisContext' shadows a global declaration [-Wshadow]
     void *redisContext = NULL;
           ^
In file included from /data/files/users/jerry/github/hiredis/test.c:13:0:
/data/files/users/jerry/github/hiredis/hiredis.h:161:3: note: shadowed declaration is here
 } redisContext;
   ^
```
2016-04-20 15:01:17 +02:00
Jerry Jacobs
8a5fdf0c9e test.c: Fix shadowed name with typedef when compiling with -Wshadow 2016-04-17 20:33:59 +00:00
Jerry Jacobs
9317a74ae5 fmacros.h: Fix warning when compiled with -Wundef 2016-04-17 20:23:42 +00:00
DongwenHuang
6bfc580a34 Update read.c
static char *seekNewline(char *s, size_t len)  : 
this function can not parse the string,such as "hello world\r". the case that  the last char is '\r'.
2016-04-11 23:27:45 +08:00
Jan-Erik Rediger
1b8ed38843 docs: Handle NULL in example
Closes #361
2016-03-26 01:02:48 +01:00
Jan-Erik Rediger
0335cb3e98 Prevent buffer overflow when formatting the error
strncat might copy n+1 bytes (n bytes from the source plus a terminating nul byte).
Also strncat appends after the first found nul byte. But all we pass is
a buffer we might not have zeroed out already.

Closes #380
2015-11-18 14:37:47 +01:00
Tom Lee
d4b715f0aa Fix potential race in 'invalid timeout' tests
It's possible for the call to connect() to succeed on the very first
try, in which case the logic for checking for invalid timeout fields is
never executed. When this happens, the tests fail because they expect a
REDIS_ERR_IO but no such failure has occurred.

Tests aside, this is a potential source of irritating and hard-to-find
intermittent bugs.

This patch forces the validation to occur early so that we get
predictable behavior whenever an invalid timeout is specified.
2015-11-18 00:36:29 -08:00
Tom Lee
bb1747b1bf Fix strerror_r on some esoteric platforms
Defining _XOPEN_SOURCE=1 causes strange behavior on Debian kfreebsd
archs (i.e. GNU userspace with FreeBSD kernel) when _GNU_SOURCE is not
defined.

Not sure I fully understand the bizarre semantics, but it seems to
use the XSI-compliant interface
(int strerror_r(int, char*, size_t)) but the GNU implementation
(char *strerror_r(int, char*, size_t)) such that strerror_r returns
32-bits of a 64-bit char * on x86_64 kfreebsd. We would expect
strerror_r to return zero when using the XSI-compliant strerror_r
implementation or a 64-bit char* when using the GNU version. Instead,
we get something in between!

Unless I'm missing something, being more explicit about what version
of _XOPEN_SOURCE we want seems to be the prudent thing to do here --
and if folks want the GNU implementation of strerror_r for some reason
they can always -D_GNU_SOURCE explicitly.
2015-11-18 00:28:10 -08:00
Jan-Erik Rediger
db1c46dac7 Merge pull request #373 from charsyam/feature/typos
fixing typos
2015-10-27 18:28:34 +01:00
charsyam
e2f6ee239c fixing typos 2015-10-28 02:19:24 +09:00
Jan-Erik Rediger
4b3786d57e Merge pull request #369 from jamel/snprintf
fix snprintf format string
2015-10-18 22:47:57 +02:00
Sergey Polovko
f932f0ed27 fix snprintf format string 2015-10-05 16:22:00 +03:00
Jan-Erik Rediger
010756025e Release version 0.13.3 2015-09-16 12:25:02 +02:00
olgeni
3d4b5c29ba Add FreeBSD message to test_blocking_connection_errors. 2015-09-16 12:24:03 +02:00