Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5f6afc66
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
5f6afc66
编写于
7月 18, 2023
作者:
W
wade zhang
提交者:
GitHub
7月 18, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #22107 from taosdata/fix/TD-25232
fix/TD-25232: alter keeptimeoffset by 'k v' or 'k' 'v'
上级
7e896221
dfaf9134
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
10 deletion
+34
-10
source/dnode/mnode/impl/src/mndDnode.c
source/dnode/mnode/impl/src/mndDnode.c
+34
-10
未找到文件。
source/dnode/mnode/impl/src/mndDnode.c
浏览文件 @
5f6afc66
...
...
@@ -70,6 +70,8 @@ static void mndCancelGetNextConfig(SMnode *pMnode, void *pIter);
static
int32_t
mndRetrieveDnodes
(
SRpcMsg
*
pReq
,
SShowObj
*
pShow
,
SSDataBlock
*
pBlock
,
int32_t
rows
);
static
void
mndCancelGetNextDnode
(
SMnode
*
pMnode
,
void
*
pIter
);
static
int32_t
mndMCfgGetValInt32
(
SMCfgDnodeReq
*
pInMCfgReq
,
int32_t
opLen
,
int32_t
*
pOutValue
);
int32_t
mndInitDnode
(
SMnode
*
pMnode
)
{
SSdbTable
table
=
{
.
sdbType
=
SDB_DNODE
,
...
...
@@ -1061,22 +1063,19 @@ static int32_t mndProcessConfigDnodeReq(SRpcMsg *pReq) {
strcpy
(
dcfgReq
.
config
,
"monitor"
);
snprintf
(
dcfgReq
.
value
,
TSDB_DNODE_VALUE_LEN
,
"%d"
,
flag
);
}
else
if
(
strncasecmp
(
cfgReq
.
config
,
"keeptimeoffset"
,
14
)
==
0
)
{
if
(
' '
!=
cfgReq
.
config
[
14
]
&&
0
!=
cfgReq
.
config
[
14
])
{
mError
(
"dnode:%d, failed to config keeptimeoffset since invalid conf:%s"
,
cfgReq
.
dnodeId
,
cfgReq
.
config
);
terrno
=
TSDB_CODE_INVALID_CFG
;
return
-
1
;
}
int32_t
optLen
=
strlen
(
"keeptimeoffset"
);
int32_t
flag
=
-
1
;
int32_t
code
=
mndMCfgGetValInt32
(
&
cfgReq
,
optLen
,
&
flag
);
if
(
code
<
0
)
return
code
;
const
char
*
value
=
cfgReq
.
value
;
int32_t
offset
=
atoi
(
value
);
if
(
offset
<
0
||
offset
>
23
)
{
mError
(
"dnode:%d, failed to config keepTimeOffset since value:%d. Valid range: [0, 23]"
,
cfgReq
.
dnodeId
,
offset
);
if
(
flag
<
0
||
flag
>
23
)
{
mError
(
"dnode:%d, failed to config keepTimeOffset since value:%d. Valid range: [0, 23]"
,
cfgReq
.
dnodeId
,
flag
);
terrno
=
TSDB_CODE_INVALID_CFG
;
return
-
1
;
}
strcpy
(
dcfgReq
.
config
,
"keeptimeoffset"
);
snprintf
(
dcfgReq
.
value
,
TSDB_DNODE_VALUE_LEN
,
"%d"
,
offset
);
snprintf
(
dcfgReq
.
value
,
TSDB_DNODE_VALUE_LEN
,
"%d"
,
flag
);
#ifdef TD_ENTERPRISE
}
else
if
(
strncasecmp
(
cfgReq
.
config
,
"activeCode"
,
10
)
==
0
||
strncasecmp
(
cfgReq
.
config
,
"cActiveCode"
,
11
)
==
0
)
{
int8_t
opt
=
strncasecmp
(
cfgReq
.
config
,
"a"
,
1
)
==
0
?
DND_ACTIVE_CODE
:
DND_CONN_ACTIVE_CODE
;
...
...
@@ -1309,3 +1308,28 @@ static void mndCancelGetNextDnode(SMnode *pMnode, void *pIter) {
SSdb
*
pSdb
=
pMnode
->
pSdb
;
sdbCancelFetch
(
pSdb
,
pIter
);
}
// get int32_t value from 'SMCfgDnodeReq'
static
int32_t
mndMCfgGetValInt32
(
SMCfgDnodeReq
*
pMCfgReq
,
int32_t
opLen
,
int32_t
*
pOutValue
)
{
terrno
=
0
;
if
(
' '
!=
pMCfgReq
->
config
[
opLen
]
&&
0
!=
pMCfgReq
->
config
[
opLen
])
{
goto
_err
;
}
if
(
' '
==
pMCfgReq
->
config
[
opLen
])
{
// 'key value'
if
(
strlen
(
pMCfgReq
->
value
)
!=
0
)
goto
_err
;
*
pOutValue
=
atoi
(
pMCfgReq
->
config
+
opLen
+
1
);
}
else
{
// 'key' 'value'
if
(
strlen
(
pMCfgReq
->
value
)
==
0
)
goto
_err
;
*
pOutValue
=
atoi
(
pMCfgReq
->
value
);
}
return
0
;
_err:
mError
(
"dnode:%d, failed to config keeptimeoffset since invalid conf:%s"
,
pMCfgReq
->
dnodeId
,
pMCfgReq
->
config
);
terrno
=
TSDB_CODE_INVALID_CFG
;
return
-
1
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录