Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
6c4e61b3
R
redis
项目概览
xindoo
/
redis
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6c4e61b3
编写于
11月 18, 2009
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
redis-benchmark multi bulk reply support hopefully fixed
上级
2895e862
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
3 deletion
+14
-3
benchmark.c
benchmark.c
+14
-3
未找到文件。
benchmark.c
浏览文件 @
6c4e61b3
...
...
@@ -48,7 +48,7 @@
#define REPLY_INT 0
#define REPLY_RETCODE 1
#define REPLY_BULK 2
#define REPLY_MBULK
2
#define REPLY_MBULK
3
#define CLIENT_CONNECTING 0
#define CLIENT_SENDQUERY 1
...
...
@@ -218,6 +218,8 @@ static void readHandler(aeEventLoop *el, int fd, void *privdata, int mask)
c
->
ibuf
=
sdscatlen
(
c
->
ibuf
,
buf
,
nread
);
processdata:
/* Are we waiting for the first line of the command of for sdf
* count in bulk or multi bulk operations? */
if
(
c
->
replytype
==
REPLY_INT
||
c
->
replytype
==
REPLY_RETCODE
||
(
c
->
replytype
==
REPLY_BULK
&&
c
->
readlen
==
-
1
)
||
...
...
@@ -225,10 +227,14 @@ processdata:
(
c
->
replytype
==
REPLY_MBULK
&&
c
->
mbulk
==
-
1
))
{
char
*
p
;
/* Check if the first line is complete. This is only true if
* there is a newline inside the buffer. */
if
((
p
=
strchr
(
c
->
ibuf
,
'\n'
))
!=
NULL
)
{
if
(
c
->
replytype
==
REPLY_BULK
||
(
c
->
replytype
==
REPLY_MBULK
&&
c
->
mbulk
!=
-
1
))
{
/* Read the count of a bulk reply (being it a single bulk or
* a multi bulk reply). "$<count>" for the protocol spec. */
*
p
=
'\0'
;
*
(
p
-
1
)
=
'\0'
;
c
->
readlen
=
atoi
(
c
->
ibuf
+
1
)
+
2
;
...
...
@@ -239,7 +245,11 @@ processdata:
}
/* Leave all the rest in the input buffer */
c
->
ibuf
=
sdsrange
(
c
->
ibuf
,(
p
-
c
->
ibuf
)
+
1
,
-
1
);
/* fall through to reach the point where the code will try
* to check if the bulk reply is complete. */
}
else
if
(
c
->
replytype
==
REPLY_MBULK
&&
c
->
mbulk
==
-
1
)
{
/* Read the count of a multi bulk reply. That is, how many
* bulk replies we have to read next. "*<count>" protocol. */
*
p
=
'\0'
;
*
(
p
-
1
)
=
'\0'
;
c
->
mbulk
=
atoi
(
c
->
ibuf
+
1
);
...
...
@@ -259,8 +269,9 @@ processdata:
}
}
/* bulk read, did we read everything? */
if
((
c
->
replytype
==
REPLY_BULK
||
c
->
replytype
==
REPLY_MBULK
)
&&
(
unsigned
)
c
->
readlen
<=
sdslen
(
c
->
ibuf
))
if
(((
c
->
replytype
==
REPLY_MBULK
&&
c
->
mbulk
!=
-
1
)
||
(
c
->
replytype
==
REPLY_BULK
))
&&
c
->
readlen
!=
-
1
&&
(
unsigned
)
c
->
readlen
<=
sdslen
(
c
->
ibuf
))
{
if
(
c
->
replytype
==
REPLY_BULK
)
{
clientDone
(
c
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录