Commit Graph

121 Commits

Author SHA1 Message Date
antirez
f7f022e4e0 On stack buffer to read replies set to 16k (was 2k).
It was verified experimentally that this value, on Linux kernels, provides
better performances compared to the 2k value. However larger values
apparently don't produce any noticeable effect on performances.
2012-08-21 15:10:16 +02: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
Chip Salzenberg
56ae8aa110 DRY list of integer formats 2011-12-20 10:06:23 -08: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
John Zwinck
347528cf48 Fix minor inconsistencies in comment. 2011-11-28 16:37:35 -05:00
Pieter Noordhuis
2da784ce8f Abort on invalid format
There is no way we can guess the width of the argument when we cannot
infer its type from the format specifier.
2011-07-09 15:08:45 +02:00
Pieter Noordhuis
27c96dde77 Use correct type when calling va_arg in formatter 2011-07-09 15:08:45 +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
5f5b3d9787 Fix for issue #45 2011-06-09 09:25:09 +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
0cb7c27d9c Update license 2011-04-21 22:46:23 +02:00
Pieter Noordhuis
f3f02b6419 Let the async API segfault on OOM for now 2011-04-21 22:40:36 +02:00
Pieter Noordhuis
c9dc93e1de Move chrtos to hiredis.c (not used elsewhere) 2011-04-21 22:39:19 +02:00
Pieter Noordhuis
8419b060f2 Handle OOM when doing blocking requests 2011-04-21 21:34:43 +02:00
Pieter Noordhuis
e932709a66 More safety 2011-04-21 21:18:08 +02:00
Pieter Noordhuis
dd5fc26457 Make command formatters gracefully abort when out of memory 2011-04-21 20:59:41 +02:00
Pieter Noordhuis
d4ebb60d65 More OOM checks in the protocol reader 2011-04-21 18:50:10 +02:00
Pieter Noordhuis
df1d693b03 Include fmacros.h to make sure strerror_p is defined on Linux 2011-04-21 16:24:03 +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
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
e1abacb7b4 Return when memory cannot be allocated 2011-04-21 14:28:39 +02:00
Pieter Noordhuis
026636b0cd Remove accessor functions now the redisReader struct is public 2011-04-21 14:27:03 +02:00
Pieter Noordhuis
727e1babec Make redisReader struct public 2011-04-21 14:21:58 +02:00
Pieter Noordhuis
26588f5007 Test if there is a freeObject function 2011-04-21 10:54:15 +02:00
Pieter Noordhuis
eaf58bd32a Use pre-allocated buffer for error strings in reader 2011-04-20 17:06:19 +02:00
Pieter Noordhuis
5d78214557 First pass at making the protocol reader properly handle OOM 2011-04-20 13:15:58 +02:00
Pieter Noordhuis
421eec9a4d Lazily destroy protocol reader buffer 2011-04-03 18:04:15 +02:00
Pieter Noordhuis
921150fc8a Individual reply object functions may be NULL 2011-04-03 17:46:59 +02:00
Pieter Noordhuis
8e2c39200d Fix formatCommand to work with all empty interpolations 2011-03-06 11:38:07 +01: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
663d6d1258 Properly reset state after protocol error in reply reader 2011-01-27 14:39:34 +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
3e8cbd53cf Let sds.c figure out where the range stops 2011-01-19 18:10:27 +01:00
Pieter Noordhuis
f6a501001c Discard consumed part of buffer less often 2011-01-19 18:01:01 +01:00
Pieter Noordhuis
43ab0f8018 Return error on socket timeout for a blocking context 2011-01-07 13:04:42 +01:00
Pieter Noordhuis
e3776bfaa6 Add function to explicitly free an async context 2010-12-28 19:19:25 +01:00
Pieter Noordhuis
a1e2c6dfed Add myself to license in some files 2010-12-16 22:08:46 +01:00
Pieter Noordhuis
7684d556bd Add (nearly) full printf support by delegating to vsprintf 2010-12-02 16:20:55 +01:00
Pieter Noordhuis
2635feb0ac Wait with setting CONNECTED until there is an fd 2010-12-01 12:54:47 +01:00
Pieter Noordhuis
e73289a5c6 Use r->len in another spot 2010-11-26 15:25:19 +01:00
Pieter Noordhuis
4eab917a24 Use custom stroll 2010-11-26 14:48:04 +01:00
Pieter Noordhuis
f14108361b Reply objects don't need to be calloc'ed 2010-11-26 14:47:01 +01:00
Pieter Noordhuis
5cf292cdd0 Use explicit buffer length field in the reply reader 2010-11-26 13:49:15 +01:00
Pieter Noordhuis
adb0895e99 Rename 'parent' field in read tasks to 'obj' 2010-11-26 13:04:42 +01:00