Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lzh_me
TDengine
提交
59e60e45
TDengine
项目概览
lzh_me
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
59e60e45
编写于
11月 30, 2019
作者:
H
hzcheng
提交者:
GitHub
11月 30, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #809 from taosdata/hotfix/#808
fix #808
上级
e8623789
27f52b89
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
26 deletion
+23
-26
src/rpc/src/trpc.c
src/rpc/src/trpc.c
+23
-26
未找到文件。
src/rpc/src/trpc.c
浏览文件 @
59e60e45
...
...
@@ -1059,6 +1059,16 @@ int taosBuildErrorMsgToPeer(char *pMsg, int code, char *pReply) {
return
msgLen
;
}
void
taosReportDisconnection
(
SRpcChann
*
pChann
,
SRpcConn
*
pConn
)
{
SSchedMsg
schedMsg
;
schedMsg
.
fp
=
taosProcessSchedMsg
;
schedMsg
.
msg
=
NULL
;
schedMsg
.
ahandle
=
pConn
->
ahandle
;
schedMsg
.
thandle
=
pConn
;
taosScheduleTask
(
pChann
->
qhandle
,
&
schedMsg
);
}
void
taosProcessIdleTimer
(
void
*
param
,
void
*
tmrId
)
{
SRpcConn
*
pConn
=
(
SRpcConn
*
)
param
;
if
(
pConn
->
signature
!=
param
)
{
...
...
@@ -1074,22 +1084,20 @@ void taosProcessIdleTimer(void *param, void *tmrId) {
return
;
}
int
reportDisc
=
0
;
pthread_mutex_lock
(
&
pChann
->
mutex
);
tTrace
(
"%s cid:%d sid:%d id:%s, close the connection since no activity pConn:%p"
,
pServer
->
label
,
pConn
->
chann
,
pConn
->
sid
,
pConn
->
meterId
,
pConn
);
if
(
pConn
->
rspReceived
==
0
)
{
pConn
->
rspReceived
=
1
;
SSchedMsg
schedMsg
;
schedMsg
.
fp
=
taosProcessSchedMsg
;
schedMsg
.
msg
=
NULL
;
schedMsg
.
ahandle
=
pConn
->
ahandle
;
schedMsg
.
thandle
=
pConn
;
taosScheduleTask
(
pChann
->
qhandle
,
&
schedMsg
);
reportDisc
=
1
;
}
pthread_mutex_unlock
(
&
pChann
->
mutex
);
if
(
reportDisc
)
taosReportDisconnection
(
pChann
,
pConn
);
}
void
*
taosProcessDataFromPeer
(
char
*
data
,
int
dataLen
,
uint32_t
ip
,
uint16_t
port
,
void
*
shandle
,
void
*
thandle
,
...
...
@@ -1114,11 +1122,7 @@ void *taosProcessDataFromPeer(char *data, int dataLen, uint32_t ip, uint16_t por
pConn
->
meterId
,
pConn
);
pConn
->
rspReceived
=
1
;
pConn
->
chandle
=
NULL
;
schedMsg
.
fp
=
taosProcessSchedMsg
;
schedMsg
.
msg
=
NULL
;
schedMsg
.
ahandle
=
pConn
->
ahandle
;
schedMsg
.
thandle
=
pConn
;
taosScheduleTask
(
pChann
->
qhandle
,
&
schedMsg
);
taosReportDisconnection
(
pChann
,
pConn
);
}
tfree
(
data
);
return
NULL
;
...
...
@@ -1330,6 +1334,7 @@ void taosProcessTaosTimer(void *param, void *tmrId) {
STaosHeader
*
pHeader
=
NULL
;
SRpcConn
*
pConn
=
(
SRpcConn
*
)
param
;
int
msgLen
;
int
reportDisc
=
0
;
if
(
pConn
->
signature
!=
param
)
{
tError
(
"pConn Signature:0x%x, pConn:0x%x not matched"
,
pConn
->
signature
,
param
);
...
...
@@ -1379,13 +1384,7 @@ void taosProcessTaosTimer(void *param, void *tmrId) {
pConn
->
sid
,
pConn
->
meterId
,
taosMsg
[
pConn
->
outType
],
pConn
->
peerIpstr
,
pConn
->
peerPort
,
pConn
);
if
(
pConn
->
rspReceived
==
0
)
{
pConn
->
rspReceived
=
1
;
SSchedMsg
schedMsg
;
schedMsg
.
fp
=
taosProcessSchedMsg
;
schedMsg
.
msg
=
NULL
;
schedMsg
.
ahandle
=
pConn
->
ahandle
;
schedMsg
.
thandle
=
pConn
;
taosScheduleTask
(
pChann
->
qhandle
,
&
schedMsg
);
reportDisc
=
1
;
}
}
}
...
...
@@ -1397,6 +1396,7 @@ void taosProcessTaosTimer(void *param, void *tmrId) {
pthread_mutex_unlock
(
&
pChann
->
mutex
);
if
(
reportDisc
)
taosReportDisconnection
(
pChann
,
pConn
);
}
void
taosGetRpcConnInfo
(
void
*
thandle
,
uint32_t
*
peerId
,
uint32_t
*
peerIp
,
uint16_t
*
peerPort
,
int
*
cid
,
int
*
sid
)
{
...
...
@@ -1443,22 +1443,19 @@ void taosStopRpcConn(void *thandle) {
tTrace
(
"%s cid:%d sid:%d id:%s, stop the connection pConn:%p"
,
pServer
->
label
,
pConn
->
chann
,
pConn
->
sid
,
pConn
->
meterId
,
pConn
);
int
reportDisc
=
0
;
pthread_mutex_lock
(
&
pChann
->
mutex
);
if
(
pConn
->
outType
)
{
pConn
->
rspReceived
=
1
;
SSchedMsg
schedMsg
;
schedMsg
.
fp
=
taosProcessSchedMsg
;
schedMsg
.
msg
=
NULL
;
schedMsg
.
ahandle
=
pConn
->
ahandle
;
schedMsg
.
thandle
=
pConn
;
reportDisc
=
1
;
pthread_mutex_unlock
(
&
pChann
->
mutex
);
taosScheduleTask
(
pChann
->
qhandle
,
&
schedMsg
);
}
else
{
pthread_mutex_unlock
(
&
pChann
->
mutex
);
taosCloseRpcConn
(
pConn
);
}
if
(
reportDisc
)
taosReportDisconnection
(
pChann
,
pConn
);
}
int
taosAuthenticateMsg
(
uint8_t
*
pMsg
,
int
msgLen
,
uint8_t
*
pAuth
,
uint8_t
*
pKey
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录