Commit Graph

87 Commits (8d5bc445e53ad4114aaac1dd4ff438b638aecede)

Author SHA1 Message Date
Allen.Dou 8d5bc445e5 SetKeepAlive
Keep client alive even though no command was sent to server for a long time.
2013-04-19 11:26:43 +08:00
Pieter Noordhuis 0fff0f182b Bump minor version because reader struct changed 2012-08-27 23:55:52 -07:00
antirez 51ab89d899 Max depth of multi-bulk reply moved from 2 to 7.
Hiredis can handle multi bulk replies with a fixed (hardcoded) level of
nesting. This should be changed in the future in order to avoid
hardcoded limits. As a quick fix this commit moves the max nesting from 2
to 7, so that there are no problems when processing replies from the SLOWLOG
command, from Redis Sentinel, or generated by Redis Lua Scripts (that are
allowed to generate replies with any level of nesting).
2012-08-21 15:06:06 +02:00
antirez 7f095053c6 Configurable reader max idle buffer size.
Hiredis used to free unused redisReader buffers bigger than 16k. Now
this limit is configurable (see the documentation updated by this commit)
in order to allow working with big payloads without incurring to speed
penalty.
2012-08-21 15:01:47 +02:00
Alex Leverington 01cce89d9d async: support for determining monitor mode, if so, repush replies callback in expectation of another reply. 2012-07-11 02:53:58 -05:00
mrb 52a29a124b increase read depth by one, would allow ruby redis client to read from slowlog 2011-12-02 08:45:13 -05:00
Pieter Noordhuis 3cc6a7f299 Bump patch version 2011-06-19 13:45:36 +02:00
Pieter Noordhuis 375ba48eea Revert "Add function to retrieve formatted reply"
This reverts commit 77540aa316. The change
in buffer strategy is too large to put in a minor release. It is put in
a separate branch in the meantime, so it can be refined and released
together with a minor version bump.
2011-06-19 13:41:25 +02:00
Pieter Noordhuis 77540aa316 Add function to retrieve formatted reply
This is done by only truncating the read buffer once a full reply has
been read. The buffer is no longer truncated halfway through reading a
reply. In addition: pass offset/length of protocol and content via the
read tasks.
2011-05-05 17:01:34 +02:00
Pieter Noordhuis 6d026b70d0 Bump version to 0.10.0 2011-04-22 12:15:50 +02:00
Pieter Noordhuis 0cb7c27d9c Update license 2011-04-21 22:46:23 +02:00
Pieter Noordhuis 8419b060f2 Handle OOM when doing blocking requests 2011-04-21 21:34:43 +02:00
Pieter Noordhuis d4ebb60d65 More OOM checks in the protocol reader 2011-04-21 18:50:10 +02:00
Pieter Noordhuis 965d42640f Rename *ReplyReader* to *Reader* 2011-04-21 16:03:32 +02:00
Pieter Noordhuis 0ee7c66818 Use static buffer for error string on context 2011-04-21 15:56:22 +02:00
Pieter Noordhuis 6d207ea98e Create protocol reader when creating context 2011-04-21 15:04:42 +02:00
Pieter Noordhuis 58caf62a52 Move prototypes around in header 2011-04-21 14:39:03 +02:00
Pieter Noordhuis a926232293 Reply object functions can be set by the user after creating the reader 2011-04-21 14:37:29 +02:00
Pieter Noordhuis 5ba49014da Privdata can be set directly on the struct 2011-04-21 14:34:03 +02:00
Pieter Noordhuis 2002218981 Remove useless casts 2011-04-21 14:31:02 +02:00
Pieter Noordhuis 026636b0cd Remove accessor functions now the redisReader struct is public 2011-04-21 14:27:03 +02:00
Pieter Noordhuis f0307c6172 Move definitions around 2011-04-21 14:23:59 +02:00
Pieter Noordhuis 41d4d9c6f4 Forward declaration is not necessary 2011-04-21 14:22:27 +02:00
Pieter Noordhuis 727e1babec Make redisReader struct public 2011-04-21 14:21:58 +02:00
Pieter Noordhuis eaf58bd32a Use pre-allocated buffer for error strings in reader 2011-04-20 17:06:19 +02:00
Pieter Noordhuis 2fc0d8756e Use select(2) for enforce a timeout on blocking connect(2) 2011-02-04 15:26:28 +01:00
Pieter Noordhuis 864bce944b redisReplyReaderFeed should take a const char* 2011-01-27 14:07:06 +01:00
Pieter Noordhuis fbe756d838 Avoid warnings with -Wstrict-prototypes 2011-01-27 12:50:55 +01:00
Pieter Noordhuis 43ab0f8018 Return error on socket timeout for a blocking context 2011-01-07 13:04:42 +01:00
Pieter Noordhuis 3ce8d5b08b Change reply processing code to prepare for pub/sub 2010-12-31 15:49:21 +01:00
Pieter Noordhuis 29ea901b24 Fix the async free() and disconnect() functions
To make sure that these functions can also be called from functions
other than command callbacks, the flag IN_CALLBACK is introduced that
holds whether the context is currently executing a callback. If so,
redisAsyncFree() and redisAsyncDisconnect() should delegate their task
to the reply processor to avoid segfaults.
2010-12-28 20:29:29 +01:00
Pieter Noordhuis e3776bfaa6 Add function to explicitly free an async context 2010-12-28 19:19:25 +01:00
Pieter Noordhuis 0fbfa45f23 Bump version 2010-12-16 23:22:13 +01:00
Pieter Noordhuis a1e2c6dfed Add myself to license in some files 2010-12-16 22:08:46 +01:00
Pieter Noordhuis 2ef9c2e5f7 Redefine REDIS_REPLY_ERROR to be non-zero
When no reply object functions are defined, the reply type integer is
returned from redisGetReply(). This sets the *reply argument to the
consumed reply, where 0 means that it was not possible to consume a full
reply. With REDIS_REPLY_ERROR having the same value, there is no way to
tell the difference between an error reply and not consuming a reply.
2010-12-16 21:50:37 +01:00
Pieter Noordhuis 89c6927282 Bump version 2010-11-26 15:31:53 +01:00
Pieter Noordhuis adb0895e99 Rename 'parent' field in read tasks to 'obj' 2010-11-26 13:04:42 +01:00
Pieter Noordhuis d4058be7b0 Add pointer to parent task in read tasks 2010-11-24 15:21:34 +01:00
Pieter Noordhuis 1927c643da Add privdata field to reply reader
This field is set in the read tasks that are passed to the reply object
functions. This allows to curry arbitrary data to these functions.
2010-11-24 12:27:46 +01:00
Ryan Tecco 74254a3b39 add extern "C" for C++ compiles 2010-11-19 12:25:04 +01:00
Pieter Noordhuis 8b616d3547 The buffer length to feed should be a size_t 2010-11-04 20:55:03 +01:00
Pieter Noordhuis 2e5e9a49fd Return the reply type when the reply object function set is NULL 2010-11-04 13:15:44 +01:00
Pieter Noordhuis 3be1d6e66d Add version information to hiredis.h 2010-11-03 11:50:46 +01:00
Pieter Noordhuis f25a5267cc Allow to connect using a unix socket from hiredis 2010-11-03 11:38:26 +01:00
Pieter Noordhuis e13674dd4e Expose redisGetReplyFromReader as public API 2010-11-03 00:40:07 +01:00
Pieter Noordhuis b8b296654d Strip net.c down to the bare minimum 2010-11-02 17:09:26 +01:00
Pieter Noordhuis ffa8666a64 Change error reporting to have an explicit type
When there is an I/O error, errno should be used to find out what is
wrong. In other cases, errno cannot be used. So, use an explicit type in
Hiredis to define the different error scenarios that can occur.
2010-11-02 16:36:38 +01:00
Pieter Noordhuis 5db8008d97 Remove superfluous definition 2010-11-02 14:55:24 +01:00
Pieter Noordhuis 5fa8d30599 There is no longer need for a separate redisDisconnect 2010-11-01 14:20:51 +01:00
Pieter Noordhuis ef995accb2 Strip non-blocking callbacks from hiredis.c 2010-11-01 14:13:03 +01:00