Age | Commit message (Collapse) | Author |
|
Makefile: use predefined AR
|
|
|
|
To minimize code changes, a simple `u` (or UNIX, Unix, unix, etc -- as
long as the first character is u or U) is used as a marker for the
'port' argument. In this case, the hostname is interpreted to be the
path to the unix socket.
|
|
This allows to override it for cross compilation.
|
|
Fix errors not propagating properly with libuv.h.
|
|
FreeBSD build fix
|
|
|
|
|
|
Fix redisBufferRead documentation
|
|
Referred to redisContextReadReply which I cannot find in this codebase
nor the old redis-tools one. Presumably this meant to say
redisGetReplyFromReader which is how redisBufferRead is used in this
file. Could've also meant the interface function redisReaderGetReply.
|
|
Proper error reporting for connect failures
|
|
fix common realloc mistake and add null check more
|
|
Add CPPFLAGS to REAL_CFLAGS
|
|
|
|
|
|
Some ISPs like to inject their own "Suggestions" page whenever you hit
NXDOMAIN. This confuses Redis as well as addrinfo (black-holing the
route).
|
|
|
|
Not sizeof saddr.
|
|
This retrieves the actual error which occurred, as getsockopt is not
always reliable in this regard.
|
|
Prepare for the 0.14.0 release
|
|
SONAME bumped to 0.14 because we've broken ABI compatibility with 0.13.x
|
|
Make string2ll static to avoid conflict with redis
|
|
See discussion on #609. This should also make it easier for redis to
update the vendored/bundled hiredis (though not by much).
|
|
-dynamiclib is the correct documented flag to use to create dynamic
libraries on macOS. Newer toolchains recognize -shared as a synonym
of -dynamiclib but older toolchains don't.
|
|
This should have been included in
93421f9d84868989ab0e401fb3be7b31c7a9c181 but was missed.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
|
|
|
|
This commit pulls string2ll from Redis (with permission from Antirez)
as strtoll is 2-3x slower and even worse vs the original version in
hiredis that didn't check for overflow at all.
By using string2ll there is almost no measurable performance impact
of overflow detection even in integer parsing heavy workloads (e.g.
INCRBY commands).
|
|
processMultiBulkItem truncates the value read from readLongLong,
resulting in a corrupted state when the next item is read.
createArray takes an int, so bound to INT_MAX.
Inspection showed that processBulkItem had the same truncation issue.
createString takes size_t, so bound to SIZE_MAX. This only has an
effect on 32-bit platforms.
A strict lower bound is also added, since negative lengths other
than -1 are invalid according to RESP.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
Badly formatted or out-of-range integers are now protocol errors.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
|
|
|
|
|
|
Use cp -pPR instead of cp -a
|
|
This should be equivalent but compatible with older versions of cp.
|
|
Fixes #437.
|
|
|
|
|
|
|
|
free(NULL) is a valid NOP. Most of the hiredis free functions behave the
same way. redisReaderFree is updated to also be NULL-safe.
There is one redundant NULL check at sds.c:1036, but it's left as is
since sds is imported from upstream.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
calloc is guaranteed to provide a zero-initialized buffer. There is
no need to set fields to zero explicitly.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
freeaddrinfo is not required by POSIX to be NULL-safe. OpenBSD will
SIGSEGV. NetBSD will assert. FreeBSD up to 11.1 will SIGSEGV, while in
future versions, it will be a silent NOP [1].
Commit d4b715f0aa97 ("Fix potential race in 'invalid timeout' tests")
added a code path to _redisContextConnectTcp which calls
freeaddrinfo(NULL), triggering the segfault. Put a NULL check around the
call to freeaddrinfo.
[1] - https://github.com/freebsd/freebsd/commit/e9167239034a1e475c3238f8d133ebf703424ee0
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
Since _GNU_SOURCE is now guaranteed to be unset, it is no longer
necessary to support the GNU-specific version of strerror_r.
Drop __redis_strerror_r from the header, and call strerror_r directly.
This breaks any external users of this macro, but they shouldn't have
been using it in the first place.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
strerror_r and addrinfo require _POSIX_C_SOURCE >= 200112L, which is
implied by _XOPEN_SOURCE >= 600. With the removal of AF_LOCAL usage,
the only non-standard features being used are the TCP_KEEP* socket
flags. _DARWIN_C_SOURCE is required to expose TCP_KEEPALIVE.
Fall back to using _XOPEN_SOURCE 600 for all platforms, and
additionally define _DARWIN_C_SOURCE for Darwin.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
AF_LOCAL is the old, non-standardized name for AF_UNIX. Just use
AF_UNIX, rather than wrestling with platform specifics of AF_LOCAL
definitions.
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
|
|
|
|
569: Ibm aix fix r=badboy
|
|
Closes #422
|
|
568: Make XOPEN_SOURCE definition explicit per architecture r=badboy
Fixes #441
|
|
Fixes #441
|