Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
965d4264
Commit
965d4264
authored
Apr 21, 2011
by
Pieter Noordhuis
Browse files
Rename *ReplyReader* to *Reader*
parent
0ee7c668
Changes
2
Hide whitespace changes
Inline
Side-by-side
hiredis.c
View file @
965d4264
...
@@ -181,7 +181,7 @@ static void *createNilObject(const redisReadTask *task) {
...
@@ -181,7 +181,7 @@ static void *createNilObject(const redisReadTask *task) {
return
r
;
return
r
;
}
}
static
void
__redisRe
plyRe
aderSetError
(
redisReader
*
r
,
int
type
,
const
char
*
str
)
{
static
void
__redisReaderSetError
(
redisReader
*
r
,
int
type
,
const
char
*
str
)
{
size_t
len
;
size_t
len
;
if
(
r
->
reply
!=
NULL
&&
r
->
fn
&&
r
->
fn
->
freeObject
)
{
if
(
r
->
reply
!=
NULL
&&
r
->
fn
&&
r
->
fn
->
freeObject
)
{
...
@@ -207,17 +207,17 @@ static void __redisReplyReaderSetError(redisReader *r, int type, const char *str
...
@@ -207,17 +207,17 @@ static void __redisReplyReaderSetError(redisReader *r, int type, const char *str
r
->
errstr
[
len
]
=
'\0'
;
r
->
errstr
[
len
]
=
'\0'
;
}
}
static
void
__redisRe
plyRe
aderSetErrorProtocolByte
(
redisReader
*
r
,
char
byte
)
{
static
void
__redisReaderSetErrorProtocolByte
(
redisReader
*
r
,
char
byte
)
{
char
cbuf
[
8
],
sbuf
[
128
];
char
cbuf
[
8
],
sbuf
[
128
];
chrtos
(
cbuf
,
sizeof
(
cbuf
),
byte
);
chrtos
(
cbuf
,
sizeof
(
cbuf
),
byte
);
snprintf
(
sbuf
,
sizeof
(
sbuf
),
snprintf
(
sbuf
,
sizeof
(
sbuf
),
"Protocol error, got %s as reply type byte"
,
cbuf
);
"Protocol error, got %s as reply type byte"
,
cbuf
);
__redisRe
plyRe
aderSetError
(
r
,
REDIS_ERR_PROTOCOL
,
sbuf
);
__redisReaderSetError
(
r
,
REDIS_ERR_PROTOCOL
,
sbuf
);
}
}
static
void
__redisRe
plyRe
aderSetErrorOOM
(
redisReader
*
r
)
{
static
void
__redisReaderSetErrorOOM
(
redisReader
*
r
)
{
__redisRe
plyRe
aderSetError
(
r
,
REDIS_ERR_OOM
,
"Out of memory"
);
__redisReaderSetError
(
r
,
REDIS_ERR_OOM
,
"Out of memory"
);
}
}
static
char
*
readBytes
(
redisReader
*
r
,
unsigned
int
bytes
)
{
static
char
*
readBytes
(
redisReader
*
r
,
unsigned
int
bytes
)
{
...
@@ -347,7 +347,7 @@ static int processLineItem(redisReader *r) {
...
@@ -347,7 +347,7 @@ static int processLineItem(redisReader *r) {
}
}
if
(
obj
==
NULL
)
{
if
(
obj
==
NULL
)
{
__redisRe
plyRe
aderSetErrorOOM
(
r
);
__redisReaderSetErrorOOM
(
r
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
}
...
@@ -397,7 +397,7 @@ static int processBulkItem(redisReader *r) {
...
@@ -397,7 +397,7 @@ static int processBulkItem(redisReader *r) {
/* Proceed when obj was created. */
/* Proceed when obj was created. */
if
(
success
)
{
if
(
success
)
{
if
(
obj
==
NULL
)
{
if
(
obj
==
NULL
)
{
__redisRe
plyRe
aderSetErrorOOM
(
r
);
__redisReaderSetErrorOOM
(
r
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
}
...
@@ -422,7 +422,7 @@ static int processMultiBulkItem(redisReader *r) {
...
@@ -422,7 +422,7 @@ static int processMultiBulkItem(redisReader *r) {
/* Set error for nested multi bulks with depth > 1 */
/* Set error for nested multi bulks with depth > 1 */
if
(
r
->
ridx
==
2
)
{
if
(
r
->
ridx
==
2
)
{
__redisRe
plyRe
aderSetError
(
r
,
REDIS_ERR_PROTOCOL
,
__redisReaderSetError
(
r
,
REDIS_ERR_PROTOCOL
,
"No support for nested multi bulk replies with depth > 1"
);
"No support for nested multi bulk replies with depth > 1"
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
}
...
@@ -438,7 +438,7 @@ static int processMultiBulkItem(redisReader *r) {
...
@@ -438,7 +438,7 @@ static int processMultiBulkItem(redisReader *r) {
obj
=
(
void
*
)
REDIS_REPLY_NIL
;
obj
=
(
void
*
)
REDIS_REPLY_NIL
;
if
(
obj
==
NULL
)
{
if
(
obj
==
NULL
)
{
__redisRe
plyRe
aderSetErrorOOM
(
r
);
__redisReaderSetErrorOOM
(
r
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
}
...
@@ -450,7 +450,7 @@ static int processMultiBulkItem(redisReader *r) {
...
@@ -450,7 +450,7 @@ static int processMultiBulkItem(redisReader *r) {
obj
=
(
void
*
)
REDIS_REPLY_ARRAY
;
obj
=
(
void
*
)
REDIS_REPLY_ARRAY
;
if
(
obj
==
NULL
)
{
if
(
obj
==
NULL
)
{
__redisRe
plyRe
aderSetErrorOOM
(
r
);
__redisReaderSetErrorOOM
(
r
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
}
...
@@ -502,7 +502,7 @@ static int processItem(redisReader *r) {
...
@@ -502,7 +502,7 @@ static int processItem(redisReader *r) {
cur
->
type
=
REDIS_REPLY_ARRAY
;
cur
->
type
=
REDIS_REPLY_ARRAY
;
break
;
break
;
default:
default:
__redisRe
plyRe
aderSetErrorProtocolByte
(
r
,
*
p
);
__redisReaderSetErrorProtocolByte
(
r
,
*
p
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
}
}
else
{
}
else
{
...
@@ -527,7 +527,7 @@ static int processItem(redisReader *r) {
...
@@ -527,7 +527,7 @@ static int processItem(redisReader *r) {
}
}
}
}
redisReader
*
redisRe
plyRe
aderCreate
(
void
)
{
redisReader
*
redisReaderCreate
(
void
)
{
redisReader
*
r
;
redisReader
*
r
;
r
=
calloc
(
sizeof
(
redisReader
),
1
);
r
=
calloc
(
sizeof
(
redisReader
),
1
);
...
@@ -542,7 +542,7 @@ redisReader *redisReplyReaderCreate(void) {
...
@@ -542,7 +542,7 @@ redisReader *redisReplyReaderCreate(void) {
return
r
;
return
r
;
}
}
void
redisRe
plyRe
aderFree
(
redisReader
*
r
)
{
void
redisReaderFree
(
redisReader
*
r
)
{
if
(
r
->
reply
!=
NULL
&&
r
->
fn
&&
r
->
fn
->
freeObject
)
if
(
r
->
reply
!=
NULL
&&
r
->
fn
&&
r
->
fn
->
freeObject
)
r
->
fn
->
freeObject
(
r
->
reply
);
r
->
fn
->
freeObject
(
r
->
reply
);
if
(
r
->
buf
!=
NULL
)
if
(
r
->
buf
!=
NULL
)
...
@@ -550,7 +550,7 @@ void redisReplyReaderFree(redisReader *r) {
...
@@ -550,7 +550,7 @@ void redisReplyReaderFree(redisReader *r) {
free
(
r
);
free
(
r
);
}
}
void
redisRe
plyRe
aderFeed
(
redisReader
*
r
,
const
char
*
buf
,
size_t
len
)
{
void
redisReaderFeed
(
redisReader
*
r
,
const
char
*
buf
,
size_t
len
)
{
/* Copy the provided buffer. */
/* Copy the provided buffer. */
if
(
buf
!=
NULL
&&
len
>=
1
)
{
if
(
buf
!=
NULL
&&
len
>=
1
)
{
/* Destroy internal buffer when it is empty and is quite large. */
/* Destroy internal buffer when it is empty and is quite large. */
...
@@ -565,7 +565,7 @@ void redisReplyReaderFeed(redisReader *r, const char *buf, size_t len) {
...
@@ -565,7 +565,7 @@ void redisReplyReaderFeed(redisReader *r, const char *buf, size_t len) {
}
}
}
}
int
redisRe
plyRe
aderGetReply
(
redisReader
*
r
,
void
**
reply
)
{
int
redisReaderGetReply
(
redisReader
*
r
,
void
**
reply
)
{
/* Default target pointer to NULL. */
/* Default target pointer to NULL. */
if
(
reply
!=
NULL
)
if
(
reply
!=
NULL
)
*
reply
=
NULL
;
*
reply
=
NULL
;
...
@@ -854,7 +854,7 @@ static redisContext *redisContextInit(void) {
...
@@ -854,7 +854,7 @@ static redisContext *redisContextInit(void) {
c
->
err
=
0
;
c
->
err
=
0
;
c
->
errstr
[
0
]
=
'\0'
;
c
->
errstr
[
0
]
=
'\0'
;
c
->
obuf
=
sdsempty
();
c
->
obuf
=
sdsempty
();
c
->
reader
=
redisRe
plyRe
aderCreate
();
c
->
reader
=
redisReaderCreate
();
return
c
;
return
c
;
}
}
...
@@ -864,7 +864,7 @@ void redisFree(redisContext *c) {
...
@@ -864,7 +864,7 @@ void redisFree(redisContext *c) {
if
(
c
->
obuf
!=
NULL
)
if
(
c
->
obuf
!=
NULL
)
sdsfree
(
c
->
obuf
);
sdsfree
(
c
->
obuf
);
if
(
c
->
reader
!=
NULL
)
if
(
c
->
reader
!=
NULL
)
redisRe
plyRe
aderFree
(
c
->
reader
);
redisReaderFree
(
c
->
reader
);
free
(
c
);
free
(
c
);
}
}
...
@@ -939,7 +939,7 @@ int redisBufferRead(redisContext *c) {
...
@@ -939,7 +939,7 @@ int redisBufferRead(redisContext *c) {
__redisSetError
(
c
,
REDIS_ERR_EOF
,
"Server closed the connection"
);
__redisSetError
(
c
,
REDIS_ERR_EOF
,
"Server closed the connection"
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
else
{
}
else
{
redisRe
plyRe
aderFeed
(
c
->
reader
,
buf
,
nread
);
redisReaderFeed
(
c
->
reader
,
buf
,
nread
);
}
}
return
REDIS_OK
;
return
REDIS_OK
;
}
}
...
@@ -980,7 +980,7 @@ int redisBufferWrite(redisContext *c, int *done) {
...
@@ -980,7 +980,7 @@ int redisBufferWrite(redisContext *c, int *done) {
/* Internal helper function to try and get a reply from the reader,
/* Internal helper function to try and get a reply from the reader,
* or set an error in the context otherwise. */
* or set an error in the context otherwise. */
int
redisGetReplyFromReader
(
redisContext
*
c
,
void
**
reply
)
{
int
redisGetReplyFromReader
(
redisContext
*
c
,
void
**
reply
)
{
if
(
redisRe
plyRe
aderGetReply
(
c
->
reader
,
reply
)
==
REDIS_ERR
)
{
if
(
redisReaderGetReply
(
c
->
reader
,
reply
)
==
REDIS_ERR
)
{
__redisSetError
(
c
,
REDIS_ERR_PROTOCOL
,
c
->
reader
->
errstr
);
__redisSetError
(
c
,
REDIS_ERR_PROTOCOL
,
c
->
reader
->
errstr
);
return
REDIS_ERR
;
return
REDIS_ERR
;
}
}
...
...
hiredis.h
View file @
965d4264
...
@@ -132,12 +132,16 @@ typedef struct redisReader {
...
@@ -132,12 +132,16 @@ typedef struct redisReader {
}
redisReader
;
}
redisReader
;
/* Public API for the protocol parser. */
/* Public API for the protocol parser. */
redisReader
*
redisRe
plyRe
aderCreate
(
void
);
redisReader
*
redisReaderCreate
(
void
);
void
redisRe
plyRe
aderFree
(
redisReader
*
r
);
void
redisReaderFree
(
redisReader
*
r
);
void
redisRe
plyRe
aderFeed
(
redisReader
*
r
,
const
char
*
buf
,
size_t
len
);
void
redisReaderFeed
(
redisReader
*
r
,
const
char
*
buf
,
size_t
len
);
int
redisRe
plyRe
aderGetReply
(
redisReader
*
r
,
void
**
reply
);
int
redisReaderGetReply
(
redisReader
*
r
,
void
**
reply
);
/* Backwards compatibility, can be removed on big version bump. */
/* Backwards compatibility, can be removed on big version bump. */
#define redisReplyReaderCreate redisReaderCreate
#define redisReplyReaderFree redisReaderFree
#define redisReplyReaderFeed redisReaderFeed
#define redisReplyReaderGetReply redisReaderGetReply
#define redisReplyReaderSetPrivdata(_r, _p) (int)(((redisReader*)(_r))->privdata = (_p))
#define redisReplyReaderSetPrivdata(_r, _p) (int)(((redisReader*)(_r))->privdata = (_p))
#define redisReplyReaderGetObject(_r) (((redisReader*)(_r))->reply)
#define redisReplyReaderGetObject(_r) (((redisReader*)(_r))->reply)
#define redisReplyReaderGetError(_r) (((redisReader*)(_r))->errstr)
#define redisReplyReaderGetError(_r) (((redisReader*)(_r))->errstr)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment