diff --git a/source/dnode/mnode/impl/inc/mnodeInt.h b/source/dnode/mnode/impl/inc/mnodeInt.h index 7f7f91a3af..16322eeb55 100644 --- a/source/dnode/mnode/impl/inc/mnodeInt.h +++ b/source/dnode/mnode/impl/inc/mnodeInt.h @@ -24,16 +24,16 @@ extern "C" { #endif -typedef int32_t (*MnodeRpcFp)(SMnodeMsg *pMsg); +typedef int32_t (*MndMsgFp)(SMnode *pMnode, SMnodeMsg *pMsg); typedef struct SMnodeBak { - int32_t dnodeId; - int64_t clusterId; - tmr_h timer; - SSteps *pInitSteps; - SSteps *pStartSteps; - SMnodeOpt para; - MnodeRpcFp msgFp[TSDB_MSG_TYPE_MAX]; + int32_t dnodeId; + int64_t clusterId; + tmr_h timer; + SSteps *pInitSteps; + SSteps *pStartSteps; + SMnodeOpt para; + MndMsgFp msgFp[TSDB_MSG_TYPE_MAX]; } SMnodeBak; typedef struct SMnode { @@ -47,7 +47,7 @@ typedef struct SMnode { SSteps *pStartSteps; struct SSdb *pSdb; struct SDnode *pServer; - MnodeRpcFp msgFp[TSDB_MSG_TYPE_MAX]; + MndMsgFp msgFp[TSDB_MSG_TYPE_MAX]; PutMsgToMnodeQFp putMsgToApplyMsgFp; SendMsgToDnodeFp sendMsgToDnodeFp; SendMsgToMnodeFp sendMsgToMnodeFp; @@ -61,8 +61,7 @@ int64_t mnodeGetClusterId(); void mnodeSendMsgToDnode(SMnode *pMnode, struct SEpSet *epSet, struct SRpcMsg *rpcMsg); void mnodeSendMsgToMnode(SMnode *pMnode, struct SRpcMsg *rpcMsg); void mnodeSendRedirectMsg(SMnode *pMnode, struct SRpcMsg *rpcMsg, bool forShell); - -void mnodeSetMsgFp(int32_t msgType, MnodeRpcFp fp); +void mnodeSetMsgHandle(SMnode *pMnode, int32_t msgType, MndMsgFp fp); #ifdef __cplusplus } diff --git a/source/dnode/mnode/impl/src/mnode.c b/source/dnode/mnode/impl/src/mnode.c index 128a834729..6ea47b41fc 100644 --- a/source/dnode/mnode/impl/src/mnode.c +++ b/source/dnode/mnode/impl/src/mnode.c @@ -218,18 +218,18 @@ static void mnodeProcessRpcMsg(SMnodeMsg *pMsg) { int32_t msgType = pMsg->rpcMsg.msgType; - MnodeRpcFp fp = tsMint.msgFp[msgType]; + MndMsgFp fp = tsMint.msgFp[msgType]; if (fp == NULL) { } - int32_t code = (fp)(pMsg); + int32_t code = (*fp)(NULL, pMsg); if (code != 0) { assert(code); } } -void mnodeSetMsgFp(int32_t msgType, MnodeRpcFp fp) { - if (msgType > 0 || msgType < TSDB_MSG_TYPE_MAX) { +void mnodeSetMsgHandle(SMnode *pMnode, int32_t msgType, MndMsgFp fp) { + if (msgType >= 0 && msgType < TSDB_MSG_TYPE_MAX) { tsMint.msgFp[msgType] = fp; } } diff --git a/source/dnode/mnode/impl/src/mnodeUser.c b/source/dnode/mnode/impl/src/mnodeUser.c index b8e5706484..e67fedd5eb 100644 --- a/source/dnode/mnode/impl/src/mnodeUser.c +++ b/source/dnode/mnode/impl/src/mnodeUser.c @@ -179,7 +179,7 @@ static int32_t mnodeCreateUser(char *acct, char *user, char *pass, SMnodeMsg *pM return 0; } -static int32_t mnodeProcessCreateUserMsg(SMnodeMsg *pMsg) { +static int32_t mnodeProcessCreateUserMsg(SMnode *pMnode, SMnodeMsg *pMsg) { SCreateUserMsg *pCreate = pMsg->rpcMsg.pCont; if (pCreate->user[0] == 0) { @@ -231,7 +231,7 @@ int32_t mnodeInitUser() { .deleteFp = (SdbDeleteFp)mnodeUserActionDelete}; sdbSetTable(table); - mnodeSetMsgFp(TSDB_MSG_TYPE_CREATE_USER, mnodeProcessCreateUserMsg); + mnodeSetMsgHandle(NULL, TSDB_MSG_TYPE_CREATE_USER, mnodeProcessCreateUserMsg); return 0; }