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
Pieter Noordhuis
b4dd17b57f
Remove leftover line from earlier commit
2010-11-24 15:46:50 +01:00
Pieter Noordhuis
257a9d40a9
Set error on unexpected nesting of multi bulks
2010-11-24 15:46:05 +01:00
Pieter Noordhuis
d4058be7b0
Add pointer to parent task in read tasks
2010-11-24 15:21:34 +01:00
Pieter Noordhuis
3d702d0bf1
Don't care if object returned by object function is NULL
2010-11-24 15:05:25 +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
Pieter Noordhuis
56bbeb7049
Abort on code path that should never be taken
2010-11-22 10:38:07 +01:00
Pieter Noordhuis
b6b96f776e
Make error messages consistent in casing
2010-11-22 10:37:14 +01:00
Pieter Noordhuis
cb89a472b6
Fix formatting literal percent characters
2010-11-22 10:00:45 +01:00
Pieter Noordhuis
9d9b8e1c79
Correctly format commands with empty interpolated values
2010-11-22 09:55:54 +01:00
Pieter Noordhuis
8ce0b3228d
Finding \r\n without strstr is a little harder
2010-11-04 23:52:47 +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
183220bf60
Make moveToNextTask non-recursive
2010-11-04 13:26:45 +01:00
Pieter Noordhuis
9c4ee606d6
Use strchr in a loop rather than strstr
2010-11-04 13:26:22 +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
f25a5267cc
Allow to connect using a unix socket from hiredis
2010-11-03 11:38:26 +01:00
Pieter Noordhuis
0ccb2c8d89
Add functiont to net.c to connect to a unix socket
2010-11-03 11:31:33 +01:00
Pieter Noordhuis
e13674dd4e
Expose redisGetReplyFromReader as public API
2010-11-03 00:40:07 +01:00
Pieter Noordhuis
e51ddd7c2c
Make setError receive an sds
2010-11-02 17:14:03 +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
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
Pieter Noordhuis
435e545dd2
Fix redisGetReply
2010-10-31 21:11:25 +01:00
Pieter Noordhuis
6042c569b1
Move include of stdio.h to hiredis.h for size_t
2010-10-31 17:25:20 +01:00
Pieter Noordhuis
1d4f16b571
Extract OOM killer to util.h
2010-10-31 17:21:49 +01:00
Pieter Noordhuis
a0b9f04eaa
Move stdarg.h include to the hiredis header file
2010-10-31 14:45:15 +01:00
Pieter Noordhuis
44a2d08b30
The reply object functions may not change the read tasks
2010-10-31 14:44:36 +01:00
Pieter Noordhuis
3f0394b8a9
Use a fixed size stack instead of a dynamic list for read tasks
2010-10-31 14:42:48 +01:00
Pieter Noordhuis
f463734e91
Remove reply object functions from connect functions
2010-10-31 12:53:57 +01:00
Pieter Noordhuis
47e1f77149
Refactor internal function flow and add redisAppendCommand* family
2010-10-31 12:34:45 +01:00
Pieter Noordhuis
298e9325d7
First step in decoupling reply callbacks from internals
2010-10-31 10:56:24 +01:00
Pieter Noordhuis
a3a405bcba
Format a command using an argument vector
2010-10-31 10:34:29 +01:00
Pieter Noordhuis
e95c9d4c5b
Change redisFormatCommand to return the command in a char*
...
This allows users of the API to format a command without the need to
have all the sds functions included, only for free'ing the returned
wire-level command.
2010-10-30 20:38:29 +02:00
Pieter Noordhuis
bc5dcdbc85
Status replies should have type REDIS_REPLY_STATUS
2010-10-30 17:49:39 +02:00
Pieter Noordhuis
171b5a24d4
Drop dependency on sds.h for exposed API
2010-10-30 17:47:19 +02:00
Pieter Noordhuis
1e7f5ae6bd
Rename struct
2010-10-30 16:36:08 +02:00
Pieter Noordhuis
0f745d1ac0
Run pending callbacks with NULL reply on redisDisconnect()
2010-10-19 21:26:06 +02:00
Pieter Noordhuis
d4b4a9128e
Revert e5dd32d8
that added the const qualifier for command callbacks
2010-10-19 21:24:30 +02:00
Pieter Noordhuis
ba42ab2ef8
Revert privdata in context callbacks to being non-const
2010-10-19 14:19:51 +02:00
Pieter Noordhuis
f9596db90b
Test callback sequence in non-blocking context
2010-10-18 16:27:52 +02:00
Pieter Noordhuis
e332a32b35
Change redisWriteBuffer to return OK on an empty buffer
2010-10-18 15:49:52 +02:00
Pieter Noordhuis
61ba85ce57
Move context callbacks into struct and make privdata const
2010-10-18 12:37:33 +02:00
Pieter Noordhuis
b60952f22a
Disconnect before free'ing
2010-10-07 17:38:56 +02:00
Pieter Noordhuis
9cd3b03d84
Fire callback when the context is being disconnected by the user
2010-10-07 17:36:22 +02:00
Pieter Noordhuis
e5dd32d809
Add const qualifier to privdata pointer for command callbacks
2010-10-07 17:35:31 +02:00
Pieter Noordhuis
5c7b5fca4d
Make error messages more consistent (e.g. no newline)
2010-10-06 21:23:03 +02:00
Pieter Noordhuis
1c245845ed
Trigger callbacks when a command is issued or the context is free'd
2010-09-25 22:31:07 +02:00
Pieter Noordhuis
9e417047ed
Add function to free an allocated context
2010-09-25 15:33:27 +02:00
Pieter Noordhuis
cab99f6427
Free command before returning
2010-09-25 15:26:34 +02:00
Pieter Noordhuis
bc3ec0f35a
Rename HIREDIS_BLOCK to REDIS_BLOCK
2010-09-25 15:11:59 +02:00
Pieter Noordhuis
a7d7618141
Deprecate the error object for I/O and protocol errors
...
Rather, use the return value REDIS_OK and REDIS_ERR to designate if
calling a function has a successful outcome. When there was an error in
performing the call the error field will be set inside the reader or the
context.
2010-09-25 15:09:13 +02:00
Pieter Noordhuis
e6fb160b44
Rename defines HIREDIS_* to REDIS_*
2010-09-25 12:06:47 +02:00
Pieter Noordhuis
bb668e1b94
Support callback functions in a non-blocking context
2010-09-25 12:06:00 +02:00
Pieter Noordhuis
de9c172b50
Fix comment
2010-09-25 11:07:17 +02:00
Pieter Noordhuis
817d26b81d
Use context variable to keep state for a connection
...
The context supports both blocking and non-blocking connections. All
read and write events are not handled by hiredis, but hiredis exposes an
API for buffered reading/writing to Redis.
2010-09-24 18:42:22 +02:00
Pieter Noordhuis
81f6b8ffd4
Split redisCommand to a more generic function
2010-09-24 18:42:21 +02:00
Pieter Noordhuis
af8ba74cbf
Rename functions to be more consistent, split feed from get reply
2010-09-21 11:39:18 +02:00
Pieter Noordhuis
b1bedf5c6d
Use a set of function pointers for building the reply
...
Allows libraries to wrap the reply parsing code and build the reply in a
streaming fashion. Reply objects can immediately be initialized to the
required type without having to convert an intermediary format.
2010-09-20 22:04:35 +02:00
Pieter Noordhuis
0a6e3b38e7
Add context to createErrorObject
2010-09-20 18:18:25 +02:00
Pieter Noordhuis
db5244045c
Introduce read tasks to allow hooking other code into reply parsing
2010-09-20 18:02:28 +02:00
Pieter Noordhuis
b1fa529cf9
Add function to check if the reply reader is empty
2010-09-20 15:26:18 +02:00
Pieter Noordhuis
e944ea3662
Add reply type for protocol errors, in order to never exit()
2010-09-20 14:05:23 +02:00
Pieter Noordhuis
e621f31306
Expose API for streaming bytes to a reply
2010-09-20 09:50:19 +02:00
Pieter Noordhuis
c18b58899e
Use auxiliary variable to store reply before free'ing the list
2010-09-19 20:41:03 +02:00
Pieter Noordhuis
62c8054dbe
Clean up when there is an I/O error
2010-09-19 19:01:31 +02:00
Pieter Noordhuis
457cdbf7c5
Rewrite reply parsing to use a read buffer
2010-09-19 18:47:05 +02:00
antirez
e7aa0b4b52
memory leak resolved in redisReadIntegerReply
2010-08-30 15:42:24 +02:00
antirez
4b5f030d4f
integer memory leak fixed, thanks to Amit Bakshi for both reporting and providing a patch
2010-06-11 23:13:49 +02:00
Pierre Riteau
4693a51707
Constify the API and enable -Wwrite-strings
...
The API is more similar to printf now.
2010-05-25 14:02:14 +02:00
antirez
3d8d3aa0e5
better example and license information
2010-05-18 17:45:36 +02:00
antirez
4f6fc6dfb1
hiredis was extracted from redis-tools, reverted to standard malloc/free, ported to the new protocol, and started as a stand alone project in order to support the need of a C client in the Redis community
2010-05-18 17:11:09 +02:00