Commit Graph

837 Commits

Author SHA1 Message Date
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
Jan-Erik Rediger
3c3a406ec4 Change date format in CHANGELOG
Easier to read, easier to sort.
2015-09-14 15:50:38 +02:00
Jan-Erik Rediger
d323b5ef9c Revert "redisBufferRead: Clear REDIS_CONNECTED flag when server closed connection"
This reverts commit 1db17f257b.

If the `REDIS_CONNECTED` flag is cleared,
the async onDisconnect callback function will never be called.
This causes problems as the disconnect is never reported back to the user.

Closes #359
2015-09-14 14:58:05 +02:00
Jan-Erik Rediger
53c32439bf Release version 0.13.2 2015-08-25 14:16:20 +02:00
Jerry Jacobs
1db17f257b redisBufferRead: Clear REDIS_CONNECTED flag when server closed connection 2015-08-24 17:03:16 +02:00
Jan-Erik Rediger
8e6d8195a9 Merge branch 'soname-stable' into unstable 2015-08-24 16:54:48 +02:00
Jan-Erik Rediger
a9a0af1d35 Use container-based Travis by installing packages through the addon 2015-07-28 00:21:24 +02:00
Jan-Erik Rediger
36a9802c54 Prevent crash on pending replies in async code
Fixes #335.
2015-07-27 23:35:02 +02:00
Jan-Erik Rediger
ded5374763 Fix a typo in the Mac OSX example 2015-07-27 23:19:41 +02:00
Dmitry Bakhvalov
c18a564818 Added MacOS X addapter and corresponding example.
Added MacOS X support via CoreFoundation run loop.
2015-07-27 23:19:14 +02:00