Commit Graph

812 Commits

Author SHA1 Message Date
qi.yang
918e24c83b redisReaderGetReply leak memory 2019-05-30 15:03:38 +08:00
Eivind Uggedal
993af7710e test: fix errstr matching for musl libc
This makes the tests pass on musl[1] based distros like Alpine Linux.

[1]: https://www.musl-libc.org/
2019-05-14 07:29:26 +00:00
Minun Dragonation
76394f1be8 remove useless type casting 2019-05-13 23:20:05 +08:00
Minun Dragonation
f5454d509f fix bugs on socket timeout tv usec calculation 2019-05-05 21:58:34 +08:00
Minun Dragonation
4a94ce6326 fix bugs for optlen output on size not big enough for timeout events 2019-05-05 21:46:34 +08:00
Minun Dragonation
82252440de fix bugs on ref address incorrect on sockcompact with getsockopt 2019-05-05 21:39:46 +08:00
Minun Dragonation
d8f814d48b fix bugs of setsockopt diff in win compact implementation 2019-05-05 21:34:28 +08:00
Mark Nunberg
f5f855c912
Merge pull request #658 from jinjiazhang/master
Fix Compile Error On Windows (Visual Studio)
2019-04-13 09:16:46 -04:00
jinjiazhang
cdb836d5f8 Fix Compile Error On Windows (Visual Studio) 2019-04-13 10:38:34 +08:00
Mark Nunberg
5aa2397f9e fix blocking timeouts on SSL reads/writes 2019-04-11 15:08:27 -04:00
Mark Nunberg
dc3c6ce85c build ssl example if ssl is enabled 2019-04-10 08:36:34 -04:00
Mark Nunberg
4830786c84 ensure that blocking timeout is set 2019-04-10 08:36:06 -04:00
Mark Nunberg
ca153fa4a8
Merge pull request #652 from mbitsnbites/mingw-support
Add MinGW support
2019-04-02 01:17:11 -04:00
m
e38cd75562 CMake: Minor modernization
Rely more on transitive dependencies, as provided by
TARGET_LINK_LIBRARIES. Avoid using ADD_DEFINITIONS and
INCLUDE_DIRECTORIES. This avoids leakage/pollution of defines and
includes.
2019-04-01 11:54:37 +02:00
m
dc6d19b9ec Port network layer to Winsock
With this change, Hiredis builds with MinGW and runs on Windows.
2019-04-01 11:54:37 +02:00
m
1d092a235a Use recv/send instead of read/write
The recv/send calls are more portable than read/write, since unlike the
latter, the former work with Windows sockets.

We also check for EWOULDBLOCK instead of EAGAIN. On most Unices, EAGAIN
and EWOULDBLBOCK are the same thing. However, on Windows they are
different, and send/recv are expected to give EWOULDBLOCK for
non-blocking sockets.
2019-04-01 11:52:24 +02:00
m
e84086cb92 Introduce a redisFD type
The redisFD type should be equal to the system native socket file
desciptor type (for POSIX, this is a plain int).

We also introduce the REDIS_INVALID_FD value, which maps to -1 on POSIX
systems.
2019-04-01 11:52:24 +02:00
m
1788f41f16 Move network I/O calls to net.c
This makes hiredis.c free from system calls related to socket I/O. This
is also makes the treatment of raw socket connections more similar to
the SSL backend.
2019-04-01 11:52:24 +02:00
Mark Nunberg
1c43a3823f
Merge pull request #653 from michael-grunder/bad-domain-test-fix
Fix NXDOMAIN test case
2019-03-31 20:35:33 -04:00
michael-grunder
afcc11cc5a Fix NXDOMAIN test case
As it turns out 'idontexist.com' actually does exist.
2019-03-31 13:46:05 -07:00
Mark Nunberg
17b4174089 Retain the same semantics for connection error on connection timeout
This ensures that a disconnect occurs.

This commit also ensures that disconnects will clean the socket even if
the user is in no-auto-free mode
2019-03-11 09:20:21 -04:00
Mark Nunberg
297de989a6
Merge pull request #645 from redis/ssl
SSL Support
2019-02-21 13:05:58 -05:00
Mark Nunberg
ffceb87ec3 SSL: build in travis 2019-02-21 12:09:17 -05:00
Mark Nunberg
792bdbab7e cmake: ssl disabled by default 2019-02-21 12:04:53 -05:00
Mark Nunberg
5eb6958870 Allow option for async connections to not automatically free 2019-02-21 11:49:25 -05:00
Mark Nunberg
1ec4aefba6 Fix ifeq condition (thanks @regae) 2019-02-21 06:21:53 -05:00
Mark Nunberg
3949c8a153 Disable SSL by default 2019-02-20 09:11:10 -05:00
Mark Nunberg
3511c8df68 gitignore: dSYM 2019-02-20 09:11:10 -05:00
Mark Nunberg
4b90429640 Remove redundant line after rebase 2019-02-20 09:11:10 -05:00
valentino
d9e0299f1c fix redisLibeventEvents init 2019-02-20 09:11:10 -05:00
valentino
271f33953f fix pkg config 2019-02-20 09:11:10 -05:00
Mark Nunberg
ea9f9d2515 fixed wrong memset args 2019-02-20 09:11:10 -05:00
Mark Nunberg
f0a7595056 libevent: call destroy from cleanup
also, indentation fix
2019-02-20 09:11:10 -05:00
Mark Nunberg
1eb44cf0c4 scrub redisContext before freeing
This helps us detect use-after-free
2019-02-20 09:11:10 -05:00
Mark Nunberg
f60c5506fe Add EV_PERSIST flag to read events
This will avoid the need to constantly reschedule the event
2019-02-20 09:11:10 -05:00
Mark Nunberg
24e6166fed libevent: fix invalid mem access on delete within callback enter 2019-02-20 09:11:10 -05:00
Mark Nunberg
5f633ac4ec fix potential uninitialized read
If callback was set before scheduleTimer was set (i..e before one of the
attach()) calls.
2019-02-20 09:11:10 -05:00
Mark Nunberg
0bc2356ed5 CMake: update for SSL 2019-02-20 09:11:10 -05:00
valentino
847a20122f Fix memory leaks 2019-02-20 09:10:10 -05:00
valentino
58222c26f4 Support SNI 2019-02-20 09:10:10 -05:00
valentino
389e694abe Fix compilation on Ubuntu 2019-02-20 09:10:10 -05:00
Mark Nunberg
3a547b8ec0 Unix: set addrlen so async reconnect uses proper size 2019-02-20 09:10:10 -05:00
Mark Nunberg
f51363a70c Don't warn on missing field initializers 2019-02-20 09:10:10 -05:00
Mark Nunberg
f4f6b6d65c minor fixes: initialize options struct with 0 always
also, clean up redisContextInit -- we're just zeoring the struct
2019-02-20 09:10:10 -05:00
Mark Nunberg
7b705936f6 libevent-example: Use timeout 2019-02-20 09:10:10 -05:00
Mark Nunberg
53d9b12b76 Fix bug in options macro 2019-02-20 09:10:10 -05:00
Mark Nunberg
deba8d956d Allow connectWithOptions for async as well 2019-02-20 09:10:10 -05:00
Mark Nunberg
35a0a1f369 read/write timeouts 2019-02-20 09:10:10 -05:00
Mark Nunberg
e4a78006e7 Provide option-struct initialization
This reduces the boilerplate of all the redisConnectXXX functions, and
allows us to provide more connection options in the future.
2019-02-20 09:10:10 -05:00
Mark Nunberg
d329cc952a Use SSL by default 2019-02-20 09:10:10 -05:00