From cee2e18bb222f9167bb9b2d057f4a5984edc149b Mon Sep 17 00:00:00 2001 From: slguan Date: Sun, 23 Feb 2020 11:03:15 +0800 Subject: [PATCH] change message name --- src/client/src/tscProfile.c | 16 +- src/client/src/tscServer.c | 34 ++-- src/inc/mnode.h | 6 +- src/inc/taosmsg.h | 34 ++-- src/mnode/inc/mgmtProfile.h | 2 +- src/mnode/inc/mgmtShell.h | 2 +- src/mnode/src/mgmtAcct.c | 11 + src/mnode/src/mgmtProfile.c | 28 +-- src/mnode/src/mgmtShell.c | 389 ++++++++++++++++++------------------ 9 files changed, 262 insertions(+), 260 deletions(-) diff --git a/src/client/src/tscProfile.c b/src/client/src/tscProfile.c index d6af2f59dc..00c8d77619 100644 --- a/src/client/src/tscProfile.c +++ b/src/client/src/tscProfile.c @@ -209,16 +209,16 @@ void tscKillStream(STscObj *pObj, uint32_t killId) { } char *tscBuildQueryStreamDesc(char *pMsg, STscObj *pObj) { - SCMQqueryList *pQList = (SCMQqueryList *)pMsg; + SQqueryList *pQList = (SQqueryList *)pMsg; char * pMax = pMsg + TSDB_PAYLOAD_SIZE - 256; - SCMQueryDesc *pQdesc = pQList->qdesc; + SQueryDesc *pQdesc = pQList->qdesc; pQList->numOfQueries = 0; // We extract the lock to tscBuildHeartBeatMsg function. /* pthread_mutex_lock (&pObj->mutex); */ - pMsg += sizeof(SCMQqueryList); + pMsg += sizeof(SQqueryList); SSqlObj *pSql = pObj->sqlList; while (pSql) { /* @@ -239,15 +239,15 @@ char *tscBuildQueryStreamDesc(char *pMsg, STscObj *pObj) { pQList->numOfQueries++; pQdesc++; pSql = pSql->next; - pMsg += sizeof(SCMQueryDesc); + pMsg += sizeof(SQueryDesc); if (pMsg > pMax) break; } - SCMStreamList *pSList = (SCMStreamList *)pMsg; - SCMStreamDesc *pSdesc = pSList->sdesc; + SStreamList *pSList = (SStreamList *)pMsg; + SStreamDesc *pSdesc = pSList->sdesc; pSList->numOfStreams = 0; - pMsg += sizeof(SCMStreamList); + pMsg += sizeof(SStreamList); SSqlStream *pStream = pObj->streamList; while (pStream) { strncpy(pSdesc->sql, pStream->pSql->sqlstr, TSDB_SHOW_SQL_LEN - 1); @@ -265,7 +265,7 @@ char *tscBuildQueryStreamDesc(char *pMsg, STscObj *pObj) { pSList->numOfStreams++; pSdesc++; pStream = pStream->next; - pMsg += sizeof(SCMStreamDesc); + pMsg += sizeof(SStreamDesc); if (pMsg > pMax) break; } diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 24a6cb6178..e1076eee10 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -116,7 +116,7 @@ void tscProcessHeartBeatRsp(void *param, TAOS_RES *tres, int code) { SSqlRes *pRes = &pSql->res; if (code == 0) { - SCMHeartBeatRsp *pRsp = (SCMHeartBeatRsp *)pRes->pRsp; + SHeartBeatRsp *pRsp = (SHeartBeatRsp *)pRes->pRsp; SRpcIpSet * pIpList = &pRsp->ipList; tscSetMgmtIpList(pIpList); @@ -1693,13 +1693,13 @@ int32_t tscBuildCreateDnodeMsg(SSqlObj *pSql, SSqlInfo *pInfo) { int32_t tscBuildAcctMsg(SSqlObj *pSql, SSqlInfo *pInfo) { SSqlCmd *pCmd = &pSql->cmd; - pCmd->payloadLen = sizeof(SCMCreateAcctMsg); + pCmd->payloadLen = sizeof(SCreateAcctMsg); if (TSDB_CODE_SUCCESS != tscAllocPayload(pCmd, pCmd->payloadLen)) { tscError("%p failed to malloc for query msg", pSql); return TSDB_CODE_CLI_OUT_OF_MEMORY; } - SCMCreateAcctMsg *pAlterMsg = (SCMCreateAcctMsg *)pCmd->payload; + SCreateAcctMsg *pAlterMsg = (SCreateAcctMsg *)pCmd->payload; SSQLToken *pName = &pInfo->pDCLInfo->user.user; SSQLToken *pPwd = &pInfo->pDCLInfo->user.passwd; @@ -1737,13 +1737,13 @@ int32_t tscBuildAcctMsg(SSqlObj *pSql, SSqlInfo *pInfo) { } int32_t tscBuildUserMsg(SSqlObj *pSql, SSqlInfo *pInfo) { - SCMCreateUserMsg *pAlterMsg; + SCreateUserMsg *pAlterMsg; char * pMsg, *pStart; SSqlCmd *pCmd = &pSql->cmd; pMsg = doBuildMsgHeader(pSql, &pStart); - pAlterMsg = (SCMCreateUserMsg *)pMsg; + pAlterMsg = (SCreateUserMsg *)pMsg; SUserInfo *pUser = &pInfo->pDCLInfo->user; strncpy(pAlterMsg->user, pUser->user.z, pUser->user.n); @@ -1758,7 +1758,7 @@ int32_t tscBuildUserMsg(SSqlObj *pSql, SSqlInfo *pInfo) { strncpy(pAlterMsg->pass, pUser->passwd.z, pUser->passwd.n); } - pMsg += sizeof(SCMCreateUserMsg); + pMsg += sizeof(SCreateUserMsg); pCmd->payloadLen = pMsg - pStart; if (pUser->type == TSDB_ALTER_USER_PASSWD || pUser->type == TSDB_ALTER_USER_PRIVILEGES) { @@ -1871,18 +1871,18 @@ int32_t tscBuildDropDnodeMsg(SSqlObj *pSql, SSqlInfo *pInfo) { } int32_t tscBuildDropAcctMsg(SSqlObj *pSql, SSqlInfo *pInfo) { - SCMDropUserMsg *pDropMsg; + SDropUserMsg *pDropMsg; char * pMsg, *pStart; SSqlCmd *pCmd = &pSql->cmd; pMsg = doBuildMsgHeader(pSql, &pStart); - pDropMsg = (SCMDropUserMsg *)pMsg; + pDropMsg = (SDropUserMsg *)pMsg; SMeterMetaInfo *pMeterMetaInfo = tscGetMeterMetaInfo(pCmd, pCmd->clauseIndex, 0); strcpy(pDropMsg->user, pMeterMetaInfo->name); - pMsg += sizeof(SCMDropUserMsg); + pMsg += sizeof(SDropUserMsg); pCmd->payloadLen = pMsg - pStart; pCmd->msgType = TSDB_MSG_TYPE_DROP_USER; @@ -2334,14 +2334,14 @@ int tscBuildConnectMsg(SSqlObj *pSql, SSqlInfo *pInfo) { STscObj *pObj = pSql->pTscObj; SSqlCmd *pCmd = &pSql->cmd; pCmd->msgType = TSDB_MSG_TYPE_CONNECT; - pCmd->payloadLen = sizeof(SCMConnectMsg); + pCmd->payloadLen = sizeof(SConnectMsg); if (TSDB_CODE_SUCCESS != tscAllocPayload(pCmd, pCmd->payloadLen)) { tscError("%p failed to malloc for query msg", pSql); return TSDB_CODE_CLI_OUT_OF_MEMORY; } - SCMConnectMsg *pConnect = (SCMConnectMsg*)pCmd->payload; + SConnectMsg *pConnect = (SConnectMsg*)pCmd->payload; char *db; // ugly code to move the space db = strstr(pObj->db, TS_PATH_DELIMITER); @@ -2611,18 +2611,18 @@ int tscEstimateHeartBeatMsgLength(SSqlObj *pSql) { STscObj *pObj = pSql->pTscObj; size += tsRpcHeadSize + sizeof(SMgmtHead); - size += sizeof(SCMQqueryList); + size += sizeof(SQqueryList); SSqlObj *tpSql = pObj->sqlList; while (tpSql) { - size += sizeof(SCMQueryDesc); + size += sizeof(SQueryDesc); tpSql = tpSql->next; } - size += sizeof(SCMStreamList); + size += sizeof(SStreamList); SSqlStream *pStream = pObj->streamList; while (pStream) { - size += sizeof(SCMStreamDesc); + size += sizeof(SStreamDesc); pStream = pStream->next; } @@ -3043,7 +3043,7 @@ int tscProcessConnectRsp(SSqlObj *pSql) { STscObj *pObj = pSql->pTscObj; SSqlRes *pRes = &pSql->res; - SCMConnectRsp *pConnect = (SCMConnectRsp *)pRes->pRsp; + SConnectRsp *pConnect = (SConnectRsp *)pRes->pRsp; strcpy(pObj->acctId, pConnect->acctId); // copy acctId from response int32_t len = sprintf(temp, "%s%s%s", pObj->acctId, TS_PATH_DELIMITER, pObj->db); @@ -3051,7 +3051,7 @@ int tscProcessConnectRsp(SSqlObj *pSql) { strncpy(pObj->db, temp, tListLen(pObj->db)); // SIpList * pIpList; -// char *rsp = pRes->pRsp + sizeof(SCMConnectRsp); +// char *rsp = pRes->pRsp + sizeof(SConnectRsp); // pIpList = (SIpList *)rsp; // tscSetMgmtIpList(pIpList); diff --git a/src/inc/mnode.h b/src/inc/mnode.h index b4691de04e..8fb82b2bfc 100644 --- a/src/inc/mnode.h +++ b/src/inc/mnode.h @@ -257,8 +257,8 @@ typedef struct _user_obj { char updateEnd[1]; struct _user_obj *prev, *next; struct _acctObj * pAcct; - SCMQqueryList * pQList; // query list - SCMStreamList * pSList; // stream list + SQqueryList * pQList; // query list + SStreamList * pSList; // stream list } SUserObj; typedef struct { @@ -282,7 +282,7 @@ typedef struct { typedef struct _acctObj { char user[TSDB_USER_LEN]; char pass[TSDB_KEY_LEN]; - SCMAcctCfg cfg; + SAcctCfg cfg; int32_t acctId; int64_t createdTime; int8_t reserved[15]; diff --git a/src/inc/taosmsg.h b/src/inc/taosmsg.h index 2138272fc7..0a0203606b 100644 --- a/src/inc/taosmsg.h +++ b/src/inc/taosmsg.h @@ -315,7 +315,7 @@ typedef struct { char clientVersion[TSDB_VERSION_LEN]; char msgVersion[TSDB_VERSION_LEN]; char db[TSDB_TABLE_ID_LEN]; -} SCMConnectMsg; +} SConnectMsg; typedef struct { char acctId[TSDB_ACCT_LEN]; @@ -323,7 +323,7 @@ typedef struct { int8_t writeAuth; int8_t superAuth; SRpcIpSet ipList; -} SCMConnectRsp; +} SConnectRsp; typedef struct { int32_t maxUsers; @@ -337,24 +337,24 @@ typedef struct { int64_t maxInbound; int64_t maxOutbound; int8_t accessState; // Configured only by command -} SCMAcctCfg; +} SAcctCfg; typedef struct { char user[TSDB_USER_LEN]; char pass[TSDB_KEY_LEN]; - SCMAcctCfg cfg; -} SCMCreateAcctMsg, SCMAlterAcctMsg; + SAcctCfg cfg; +} SCreateAcctMsg, SAlterAcctMsg; typedef struct { char user[TSDB_USER_LEN]; -} SCMDropUserMsg, SCMDropAcctMsg; +} SDropUserMsg, SDropAcctMsg; typedef struct { char user[TSDB_USER_LEN]; char pass[TSDB_KEY_LEN]; int8_t privilege; int8_t flag; -} SCMCreateUserMsg, SCMAlterUserMsg; +} SCreateUserMsg, SAlterUserMsg; typedef struct { char db[TSDB_TABLE_ID_LEN]; @@ -785,7 +785,7 @@ typedef struct { uint32_t queryId; int64_t useconds; int64_t stime; -} SCMQueryDesc; +} SQueryDesc; typedef struct { char sql[TSDB_SHOW_SQL_LEN]; @@ -796,29 +796,29 @@ typedef struct { int64_t stime; int64_t slidingTime; int64_t interval; -} SCMStreamDesc; +} SStreamDesc; typedef struct { int32_t numOfQueries; - SCMQueryDesc qdesc[]; -} SCMQqueryList; + SQueryDesc qdesc[]; +} SQqueryList; typedef struct { int32_t numOfStreams; - SCMStreamDesc sdesc[]; -} SCMStreamList; + SStreamDesc sdesc[]; +} SStreamList; typedef struct { - SCMQqueryList qlist; - SCMStreamList slist; -} SCMHeartBeatMsg; + SQqueryList qlist; + SStreamList slist; +} SHeartBeatMsg; typedef struct { uint32_t queryId; uint32_t streamId; int8_t killConnection; SRpcIpSet ipList; -} SCMHeartBeatRsp; +} SHeartBeatRsp; typedef struct { uint64_t handle; diff --git a/src/mnode/inc/mgmtProfile.h b/src/mnode/inc/mgmtProfile.h index bb5e518cc7..beeefacffa 100644 --- a/src/mnode/inc/mgmtProfile.h +++ b/src/mnode/inc/mgmtProfile.h @@ -30,7 +30,7 @@ int32_t mgmtRetrieveQueries(SShowObj *pShow, char *data, int32_t rows, void *pCo int32_t mgmtRetrieveStreams(SShowObj *pShow, char *data, int32_t rows, void *pConn); -int32_t mgmtSaveQueryStreamList(SCMHeartBeatMsg *pHBMsg); +int32_t mgmtSaveQueryStreamList(SHeartBeatMsg *pHBMsg); int32_t mgmtKillQuery(char *qidstr, void *pConn); diff --git a/src/mnode/inc/mgmtShell.h b/src/mnode/inc/mgmtShell.h index b530fe01ba..0a49526759 100644 --- a/src/mnode/inc/mgmtShell.h +++ b/src/mnode/inc/mgmtShell.h @@ -27,7 +27,7 @@ extern "C" { int32_t mgmtInitShell(); void mgmtCleanUpShell(); -extern int32_t (*mgmtCheckRedirectMsg)(void *pConn, int32_t msgType); +extern int32_t (*mgmtCheckRedirectMsg)(void *pConn); extern int32_t (*mgmtProcessAlterAcctMsg)(void *pCont, int32_t contLen, void *ahandle); extern int32_t (*mgmtProcessCreateDnodeMsg)(void *pCont, int32_t contLen, void *ahandle); extern int32_t (*mgmtProcessCfgMnodeMsg)(void *pCont, int32_t contLen, void *ahandle); diff --git a/src/mnode/src/mgmtAcct.c b/src/mnode/src/mgmtAcct.c index a8eabb5ebe..0fb2c752b3 100644 --- a/src/mnode/src/mgmtAcct.c +++ b/src/mnode/src/mgmtAcct.c @@ -155,3 +155,14 @@ static int32_t mgmtRetrieveAcctsImp(SShowObj *pShow, char *data, int32_t rows, v } int32_t (*mgmtRetrieveAccts)(SShowObj *pShow, char *data, int32_t rows, void *pConn) = mgmtRetrieveAcctsImp; + +SAcctObj *mgmtGetAcctFromConn(void *pConn) { + SRpcConnInfo connInfo; + rpcGetConnInfo(pConn, &connInfo); + SUserObj *pUser = mgmtGetUser(connInfo.user); + if(pUser != NULL) { + return pUser->pAcct; + } + + return NULL; +} diff --git a/src/mnode/src/mgmtProfile.c b/src/mnode/src/mgmtProfile.c index 64d0c9467c..82b1429617 100644 --- a/src/mnode/src/mgmtProfile.c +++ b/src/mnode/src/mgmtProfile.c @@ -32,7 +32,7 @@ typedef struct { int32_t numOfQueries; SCDesc * connInfo; SCDesc **cdesc; - SCMQueryDesc qdesc[]; + SQueryDesc qdesc[]; } SQueryShow; typedef struct { @@ -40,10 +40,10 @@ typedef struct { int32_t numOfStreams; SCDesc * connInfo; SCDesc **cdesc; - SCMStreamDesc sdesc[]; + SStreamDesc sdesc[]; } SStreamShow; -int32_t mgmtSaveQueryStreamList(SCMHeartBeatMsg *pHBMsg) { +int32_t mgmtSaveQueryStreamList(SHeartBeatMsg *pHBMsg) { // SAcctObj *pAcct = pConn->pAcct; // // if (contLen <= 0 || pAcct == NULL) { @@ -60,7 +60,7 @@ int32_t mgmtSaveQueryStreamList(SCMHeartBeatMsg *pHBMsg) { // pConn->pQList = realloc(pConn->pQList, contLen); // memcpy(pConn->pQList, cont, contLen); // -// pConn->pSList = (SCMStreamList *)(((char *)pConn->pQList) + pConn->pQList->numOfQueries * sizeof(SCMQueryDesc) + sizeof(SCMQqueryList)); +// pConn->pSList = (SStreamList *)(((char *)pConn->pQList) + pConn->pQList->numOfQueries * sizeof(SQueryDesc) + sizeof(SQqueryList)); // // pAcct->acctInfo.numOfQueries += pConn->pQList->numOfQueries; // pAcct->acctInfo.numOfStreams += pConn->pSList->numOfStreams; @@ -76,7 +76,7 @@ int32_t mgmtGetQueries(SShowObj *pShow, void *pConn) { // // pthread_mutex_lock(&pAcct->mutex); // -// pQueryShow = malloc(sizeof(SCMQueryDesc) * pAcct->acctInfo.numOfQueries + sizeof(SQueryShow)); +// pQueryShow = malloc(sizeof(SQueryDesc) * pAcct->acctInfo.numOfQueries + sizeof(SQueryShow)); // pQueryShow->numOfQueries = 0; // pQueryShow->index = 0; // pQueryShow->connInfo = NULL; @@ -87,7 +87,7 @@ int32_t mgmtGetQueries(SShowObj *pShow, void *pConn) { // pQueryShow->cdesc = (SCDesc **)malloc(pAcct->acctInfo.numOfQueries * sizeof(SCDesc *)); // // pConn = pAcct->pConn; -// SCMQueryDesc * pQdesc = pQueryShow->qdesc; +// SQueryDesc * pQdesc = pQueryShow->qdesc; // SCDesc * pCDesc = pQueryShow->connInfo; // SCDesc **ppCDesc = pQueryShow->cdesc; // @@ -97,7 +97,7 @@ int32_t mgmtGetQueries(SShowObj *pShow, void *pConn) { // pCDesc->port = pConn->port; // strcpy(pCDesc->user, pConn->pUser->user); // -// memcpy(pQdesc, pConn->pQList->qdesc, sizeof(SCMQueryDesc) * pConn->pQList->numOfQueries); +// memcpy(pQdesc, pConn->pQList->qdesc, sizeof(SQueryDesc) * pConn->pQList->numOfQueries); // pQdesc += pConn->pQList->numOfQueries; // pQueryShow->numOfQueries += pConn->pQList->numOfQueries; // for (int32_t i = 0; i < pConn->pQList->numOfQueries; ++i, ++ppCDesc) *ppCDesc = pCDesc; @@ -193,7 +193,7 @@ int32_t mgmtKillQuery(char *qidstr, void *pConn) { // while (pConn) { // if (pConn->ip == ip && pConn->port == port && pConn->pQList) { // int32_t i; -// SCMQueryDesc *pQDesc = pConn->pQList->qdesc; +// SQueryDesc *pQDesc = pConn->pQList->qdesc; // for (i = 0; i < pConn->pQList->numOfQueries; ++i, ++pQDesc) { // if (pQDesc->queryId == queryId) break; // } @@ -229,7 +229,7 @@ int32_t mgmtRetrieveQueries(SShowObj *pShow, char *data, int32_t rows, void *pCo if (rows > pQueryShow->numOfQueries - pQueryShow->index) rows = pQueryShow->numOfQueries - pQueryShow->index; while (numOfRows < rows) { - SCMQueryDesc *pNode = pQueryShow->qdesc + pQueryShow->index; + SQueryDesc *pNode = pQueryShow->qdesc + pQueryShow->index; SCDesc *pCDesc = pQueryShow->cdesc[pQueryShow->index]; cols = 0; @@ -275,7 +275,7 @@ int32_t mgmtGetStreams(SShowObj *pShow, void *pConn) { // // pthread_mutex_lock(&pAcct->mutex); // -// pStreamShow = malloc(sizeof(SCMStreamDesc) * pAcct->acctInfo.numOfStreams + sizeof(SQueryShow)); +// pStreamShow = malloc(sizeof(SStreamDesc) * pAcct->acctInfo.numOfStreams + sizeof(SQueryShow)); // pStreamShow->numOfStreams = 0; // pStreamShow->index = 0; // pStreamShow->connInfo = NULL; @@ -286,7 +286,7 @@ int32_t mgmtGetStreams(SShowObj *pShow, void *pConn) { // pStreamShow->cdesc = (SCDesc **)malloc(pAcct->acctInfo.numOfStreams * sizeof(SCDesc *)); // // pConn = pAcct->pConn; -// SCMStreamDesc * pSdesc = pStreamShow->sdesc; +// SStreamDesc * pSdesc = pStreamShow->sdesc; // SCDesc * pCDesc = pStreamShow->connInfo; // SCDesc **ppCDesc = pStreamShow->cdesc; // @@ -296,7 +296,7 @@ int32_t mgmtGetStreams(SShowObj *pShow, void *pConn) { // pCDesc->port = pConn->port; // strcpy(pCDesc->user, pConn->pUser->user); // -// memcpy(pSdesc, pConn->pSList->sdesc, sizeof(SCMStreamDesc) * pConn->pSList->numOfStreams); +// memcpy(pSdesc, pConn->pSList->sdesc, sizeof(SStreamDesc) * pConn->pSList->numOfStreams); // pSdesc += pConn->pSList->numOfStreams; // pStreamShow->numOfStreams += pConn->pSList->numOfStreams; // for (int32_t i = 0; i < pConn->pSList->numOfStreams; ++i, ++ppCDesc) *ppCDesc = pCDesc; @@ -386,7 +386,7 @@ int32_t mgmtRetrieveStreams(SShowObj *pShow, char *data, int32_t rows, void *pCo if (rows > pStreamShow->numOfStreams - pStreamShow->index) rows = pStreamShow->numOfStreams - pStreamShow->index; while (numOfRows < rows) { - SCMStreamDesc *pNode = pStreamShow->sdesc + pStreamShow->index; + SStreamDesc *pNode = pStreamShow->sdesc + pStreamShow->index; SCDesc *pCDesc = pStreamShow->cdesc[pStreamShow->index]; cols = 0; @@ -461,7 +461,7 @@ int32_t mgmtKillStream(char *qidstr, void *pConn) { // while (pConn) { // if (pConn->ip == ip && pConn->port == port && pConn->pSList) { // int32_t i; -// SCMStreamDesc *pSDesc = pConn->pSList->sdesc; +// SStreamDesc *pSDesc = pConn->pSList->sdesc; // for (i = 0; i < pConn->pSList->numOfStreams; ++i, ++pSDesc) { // if (pSDesc->streamId == streamId) break; // } diff --git a/src/mnode/src/mgmtShell.c b/src/mnode/src/mgmtShell.c index 40b839aa56..efe27471ec 100644 --- a/src/mnode/src/mgmtShell.c +++ b/src/mnode/src/mgmtShell.c @@ -15,7 +15,11 @@ #define _DEFAULT_SOURCE #include "os.h" - +#include "taosmsg.h" +#include "tlog.h" +#include "trpc.h" +#include "tstatus.h" +#include "tsched.h" #include "dnodeSystem.h" #include "mnode.h" #include "mgmtAcct.h" @@ -30,11 +34,6 @@ #include "mgmtTable.h" #include "mgmtUser.h" #include "mgmtVgroup.h" -#include "taosmsg.h" -#include "tlog.h" -#include "tstatus.h" -#include "tsched.h" -#include "trpc.h" #define MAX_LEN_OF_METER_META (sizeof(SMultiMeterMeta) + sizeof(SSchema) * TSDB_MAX_COLUMNS + sizeof(SSchema) * TSDB_MAX_TAGS + TSDB_MAX_TAGS_LEN) @@ -634,196 +633,190 @@ int32_t mgmtProcessKillConnectionMsg(void *pCont, int32_t contLen, void *ahandle } int32_t mgmtProcessCreateUserMsg(void *pCont, int32_t contLen, void *ahandle) { -// SCMCreateUserMsg *pCreate = (SCMCreateUserMsg *)pMsg; -// int32_t code = 0; -// -// if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_CREATE_USER_RSP) != 0) { -// return 0; -// } -// -// if (pConn->superAuth) { -// code = mgmtCreateUser(pConn->pAcct, pCreate->user, pCreate->pass); -// if (code == TSDB_CODE_SUCCESS) { -// mLPrint("user:%s is created by %s", pCreate->user, pConn->pUser->user); -// } -// } else { -// code = TSDB_CODE_NO_RIGHTS; -// } -// -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_CREATE_USER_RSP, code); + if (mgmtCheckRedirectMsg(ahandle) != 0) { + return TSDB_CODE_REDIRECT; + } - return 0; + SUserObj *pUser = mgmtGetUserFromConn(ahandle); + if (pUser == NULL) { + rpcSendResponse(ahandle, TSDB_CODE_INVALID_USER, NULL, 0); + return TSDB_CODE_INVALID_USER; + } + + int32_t code; + if (pUser->superAuth) { + SCreateUserMsg *pCreate = pCont; + code = mgmtCreateUser(pUser->pAcct, pCreate->user, pCreate->pass); + if (code == TSDB_CODE_SUCCESS) { + mLPrint("user:%s is created by %s", pCreate->user, pUser->user); + } + } else { + code = TSDB_CODE_NO_RIGHTS; + } + + rpcSendResponse(ahandle, code, NULL, 0); + return code; } int32_t mgmtProcessAlterUserMsg(void *pCont, int32_t contLen, void *ahandle) { -// SCMAlterUserMsg *pAlter = (SCMAlterUserMsg *)pMsg; -// int32_t code = 0; -// SUserObj * pUser; -// SUserObj * pOperUser; -// -// if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_ALTER_USER_RSP) != 0) { -// return 0; -// } -// -// pUser = mgmtGetUser(pAlter->user); -// pOperUser = mgmtGetUser(pConn->pUser->user); -// -// if (pUser == NULL) { -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_ALTER_USER_RSP, TSDB_CODE_INVALID_USER); -// return 0; -// } -// -// if (pOperUser == NULL) { -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_ALTER_USER_RSP, TSDB_CODE_INVALID_USER); -// return 0; -// } -// -// if (strcmp(pUser->user, "monitor") == 0 || (strcmp(pUser->user + 1, pUser->acct) == 0 && pUser->user[0] == '_')) { -// code = TSDB_CODE_NO_RIGHTS; -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_ALTER_USER_RSP, code); -// return 0; -// } -// -// if ((pAlter->flag & TSDB_ALTER_USER_PASSWD) != 0) { -// bool hasRight = false; -// if (strcmp(pOperUser->user, "root") == 0) { -// hasRight = true; -// } else if (strcmp(pUser->user, pOperUser->user) == 0) { -// hasRight = true; -// } else if (pOperUser->superAuth) { -// if (strcmp(pUser->user, "root") == 0) { -// hasRight = false; -// } else if (strcmp(pOperUser->acct, pUser->acct) != 0) { -// hasRight = false; -// } else { -// hasRight = true; -// } -// } -// -// if (hasRight) { -// memset(pUser->pass, 0, sizeof(pUser->pass)); -// taosEncryptPass((uint8_t*)pAlter->pass, strlen(pAlter->pass), pUser->pass); -// code = mgmtUpdateUser(pUser); -// mLPrint("user:%s password is altered by %s, code:%d", pAlter->user, pConn->pUser->user, code); -// } else { -// code = TSDB_CODE_NO_RIGHTS; -// } -// -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_ALTER_USER_RSP, code); -// return 0; -// } -// -// if ((pAlter->flag & TSDB_ALTER_USER_PRIVILEGES) != 0) { -// bool hasRight = false; -// -// if (strcmp(pUser->user, "root") == 0) { -// hasRight = false; -// } else if (strcmp(pUser->user, pUser->acct) == 0) { -// hasRight = false; -// } else if (strcmp(pOperUser->user, "root") == 0) { -// hasRight = true; -// } else if (strcmp(pUser->user, pOperUser->user) == 0) { -// hasRight = false; -// } else if (pOperUser->superAuth) { -// if (strcmp(pUser->user, "root") == 0) { -// hasRight = false; -// } else if (strcmp(pOperUser->acct, pUser->acct) != 0) { -// hasRight = false; -// } else { -// hasRight = true; -// } -// } -// -// if (pAlter->privilege == 1) { // super -// hasRight = false; -// } -// -// if (hasRight) { -// //if (pAlter->privilege == 1) { // super -// // pUser->superAuth = 1; -// // pUser->writeAuth = 1; -// //} -// if (pAlter->privilege == 2) { // read -// pUser->superAuth = 0; -// pUser->writeAuth = 0; -// } -// if (pAlter->privilege == 3) { // write -// pUser->superAuth = 0; -// pUser->writeAuth = 1; -// } -// -// code = mgmtUpdateUser(pUser); -// mLPrint("user:%s privilege is altered by %s, code:%d", pAlter->user, pConn->pUser->user, code); -// } else { -// code = TSDB_CODE_NO_RIGHTS; -// } -// -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_ALTER_USER_RSP, code); -// return 0; -// } -// -// code = TSDB_CODE_NO_RIGHTS; -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_ALTER_USER_RSP, code); - return 0; + if (mgmtCheckRedirectMsg(ahandle) != 0) { + return TSDB_CODE_REDIRECT; + } + + SUserObj *pOperUser = mgmtGetUserFromConn(ahandle); + if (pOperUser == NULL) { + rpcSendResponse(ahandle, TSDB_CODE_INVALID_USER, NULL, 0); + return TSDB_CODE_INVALID_USER; + } + + SAlterUserMsg *pAlter = pCont; + SUserObj *pUser = mgmtGetUser(pAlter->user); + if (pUser == NULL) { + rpcSendResponse(ahandle, TSDB_CODE_INVALID_USER, NULL, 0); + return TSDB_CODE_INVALID_USER; + } + + if (strcmp(pUser->user, "monitor") == 0 || (strcmp(pUser->user + 1, pUser->acct) == 0 && pUser->user[0] == '_')) { + rpcSendResponse(ahandle, TSDB_CODE_NO_RIGHTS, NULL, 0); + return TSDB_CODE_NO_RIGHTS; + } + + int code; + if ((pAlter->flag & TSDB_ALTER_USER_PASSWD) != 0) { + bool hasRight = false; + if (strcmp(pOperUser->user, "root") == 0) { + hasRight = true; + } else if (strcmp(pUser->user, pOperUser->user) == 0) { + hasRight = true; + } else if (pOperUser->superAuth) { + if (strcmp(pUser->user, "root") == 0) { + hasRight = false; + } else if (strcmp(pOperUser->acct, pUser->acct) != 0) { + hasRight = false; + } else { + hasRight = true; + } + } + + if (hasRight) { + memset(pUser->pass, 0, sizeof(pUser->pass)); + taosEncryptPass((uint8_t*)pAlter->pass, strlen(pAlter->pass), pUser->pass); + code = mgmtUpdateUser(pUser); + mLPrint("user:%s password is altered by %s, code:%d", pAlter->user, pUser->user, code); + } else { + code = TSDB_CODE_NO_RIGHTS; + } + + rpcSendResponse(ahandle, code, NULL, 0); + return code; + } + + if ((pAlter->flag & TSDB_ALTER_USER_PRIVILEGES) != 0) { + bool hasRight = false; + + if (strcmp(pUser->user, "root") == 0) { + hasRight = false; + } else if (strcmp(pUser->user, pUser->acct) == 0) { + hasRight = false; + } else if (strcmp(pOperUser->user, "root") == 0) { + hasRight = true; + } else if (strcmp(pUser->user, pOperUser->user) == 0) { + hasRight = false; + } else if (pOperUser->superAuth) { + if (strcmp(pUser->user, "root") == 0) { + hasRight = false; + } else if (strcmp(pOperUser->acct, pUser->acct) != 0) { + hasRight = false; + } else { + hasRight = true; + } + } + + if (pAlter->privilege == 1) { // super + hasRight = false; + } + + if (hasRight) { + //if (pAlter->privilege == 1) { // super + // pUser->superAuth = 1; + // pUser->writeAuth = 1; + //} + if (pAlter->privilege == 2) { // read + pUser->superAuth = 0; + pUser->writeAuth = 0; + } + if (pAlter->privilege == 3) { // write + pUser->superAuth = 0; + pUser->writeAuth = 1; + } + + code = mgmtUpdateUser(pUser); + mLPrint("user:%s privilege is altered by %s, code:%d", pAlter->user, pUser->user, code); + } else { + code = TSDB_CODE_NO_RIGHTS; + } + + rpcSendResponse(ahandle, code, NULL, 0); + return code; + } + + code = TSDB_CODE_NO_RIGHTS; + rpcSendResponse(ahandle, code, NULL, 0); + return code; } int32_t mgmtProcessDropUserMsg(void *pCont, int32_t contLen, void *ahandle) { -// SCMDropUserMsg *pDrop = (SCMDropUserMsg *)pMsg; -// int32_t code = 0; -// SUserObj * pUser; -// SUserObj * pOperUser; -// -// if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_DROP_USER_RSP) != 0) { -// return 0; -// } -// -// pUser = mgmtGetUser(pDrop->user); -// pOperUser = mgmtGetUser(pConn->pUser->user); -// -// if (pUser == NULL) { -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_DROP_USER_RSP, TSDB_CODE_INVALID_USER); -// return 0; -// } -// -// if (pOperUser == NULL) { -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_DROP_USER_RSP, TSDB_CODE_INVALID_USER); -// return 0; -// } -// -// if (strcmp(pUser->user, "monitor") == 0 || (strcmp(pUser->user + 1, pUser->acct) == 0 && pUser->user[0] == '_')) { -// code = TSDB_CODE_NO_RIGHTS; -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_DROP_USER_RSP, code); -// return 0; -// } -// -// bool hasRight = false; -// if (strcmp(pUser->user, "root") == 0) { -// hasRight = false; -// } else if (strcmp(pOperUser->user, "root") == 0) { -// hasRight = true; -// } else if (strcmp(pUser->user, pOperUser->user) == 0) { -// hasRight = false; -// } else if (pOperUser->superAuth) { -// if (strcmp(pUser->user, "root") == 0) { -// hasRight = false; -// } else if (strcmp(pOperUser->acct, pUser->acct) != 0) { -// hasRight = false; -// } else { -// hasRight = true; -// } -// } -// -// if (hasRight) { -// code = mgmtDropUser(pConn->pAcct, pDrop->user); -// if (code == 0) { -// mLPrint("user:%s is dropped by %s", pDrop->user, pConn->pUser->user); -// } -// } else { -// code = TSDB_CODE_NO_RIGHTS; -// } -// -// taosSendSimpleRsp(pConn->thandle, TSDB_MSG_TYPE_DROP_USER_RSP, code); - return 0; + if (mgmtCheckRedirectMsg(ahandle) != 0) { + return TSDB_CODE_REDIRECT; + } + + SUserObj *pOperUser = mgmtGetUserFromConn(ahandle); + if (pOperUser == NULL) { + rpcSendResponse(ahandle, TSDB_CODE_INVALID_USER, NULL, 0); + return TSDB_CODE_INVALID_USER; + } + + SDropUserMsg *pDrop = pCont; + SUserObj *pUser = mgmtGetUser(pDrop->user); + if (pUser == NULL) { + rpcSendResponse(ahandle, TSDB_CODE_INVALID_USER, NULL, 0); + return TSDB_CODE_INVALID_USER; + } + + if (strcmp(pUser->user, "monitor") == 0 || (strcmp(pUser->user + 1, pUser->acct) == 0 && pUser->user[0] == '_')) { + rpcSendResponse(ahandle, TSDB_CODE_NO_RIGHTS, NULL, 0); + return TSDB_CODE_NO_RIGHTS; + } + + bool hasRight = false; + if (strcmp(pUser->user, "root") == 0) { + hasRight = false; + } else if (strcmp(pOperUser->user, "root") == 0) { + hasRight = true; + } else if (strcmp(pUser->user, pOperUser->user) == 0) { + hasRight = false; + } else if (pOperUser->superAuth) { + if (strcmp(pUser->user, "root") == 0) { + hasRight = false; + } else if (strcmp(pOperUser->acct, pUser->acct) != 0) { + hasRight = false; + } else { + hasRight = true; + } + } + + int32_t code; + if (hasRight) { + code = mgmtDropUser(pUser->pAcct, pDrop->user); + if (code == TSDB_CODE_SUCCESS) { + mLPrint("user:%s is dropped by %s", pDrop->user, pUser->user); + } + } else { + code = TSDB_CODE_NO_RIGHTS; + } + + rpcSendResponse(ahandle, code, NULL, 0); + return code; } int32_t mgmtProcessDropDbMsg(void *pCont, int32_t contLen, void *ahandle) { @@ -1188,10 +1181,10 @@ int32_t mgmtProcessCfgDnodeMsg(void *pCont, int32_t contLen, void *ahandle) { } int32_t mgmtProcessHeartBeatMsg(void *pCont, int32_t contLen, void *ahandle) { - SCMHeartBeatMsg *pHBMsg = (SCMHeartBeatMsg *) pCont; + SHeartBeatMsg *pHBMsg = (SHeartBeatMsg *) pCont; mgmtSaveQueryStreamList(pHBMsg); - SCMHeartBeatRsp *pHBRsp = (SCMHeartBeatRsp *) rpcMallocCont(contLen); + SHeartBeatRsp *pHBRsp = (SHeartBeatRsp *) rpcMallocCont(contLen); if (pHBRsp == NULL) { rpcSendResponse(ahandle, TSDB_CODE_SERV_OUT_OF_MEMORY, NULL, 0); rpcFreeCont(pCont); @@ -1225,9 +1218,7 @@ int32_t mgmtProcessHeartBeatMsg(void *pCont, int32_t contLen, void *ahandle) { pHBRsp->streamId = 0; pHBRsp->killConnection = 0; - rpcSendResponse(ahandle, TSDB_CODE_SUCCESS, pHBRsp, sizeof(SCMHeartBeatMsg)); - rpcFreeCont(pCont); - + rpcSendResponse(ahandle, TSDB_CODE_SUCCESS, pHBRsp, sizeof(SHeartBeatMsg)); return TSDB_CODE_SUCCESS; } @@ -1247,7 +1238,7 @@ int32_t mgmtRetriveUserAuthInfo(char *user, char *spi, char *encrypt, char *secr } static int32_t mgmtProcessConnectMsg(void *pCont, int32_t contLen, void *thandle) { - SCMConnectMsg *pConnectMsg = (SCMConnectMsg *) pCont; + SConnectMsg *pConnectMsg = (SConnectMsg *) pCont; SRpcConnInfo connInfo; rpcGetConnInfo(thandle, &connInfo); int32_t code; @@ -1284,7 +1275,7 @@ static int32_t mgmtProcessConnectMsg(void *pCont, int32_t contLen, void *thandle } } - SCMConnectRsp *pConnectRsp = rpcMallocCont(sizeof(SCMConnectRsp)); + SConnectRsp *pConnectRsp = rpcMallocCont(sizeof(SConnectRsp)); if (pConnectRsp == NULL) { code = TSDB_CODE_SERV_OUT_OF_MEMORY; goto connect_over; @@ -1316,7 +1307,7 @@ connect_over: rpcSendResponse(thandle, code, NULL, 0); } else { mLPrint("user:%s login from %s, code:%d", connInfo.user, taosIpStr(connInfo.clientIp), code); - rpcSendResponse(thandle, code, pConnectRsp, sizeof(SCMConnectRsp)); + rpcSendResponse(thandle, code, pConnectRsp, sizeof(SConnectRsp)); } return code; @@ -1404,10 +1395,10 @@ void mgmtInitProcessShellMsg() { mgmtProcessShellMsg[TSDB_MSG_TYPE_KILL_CONNECTION] = mgmtProcessKillConnectionMsg; } -int32_t mgmtCheckRedirectMsgImp(void *pConn, int32_t msgType) { +int32_t mgmtCheckRedirectMsgImp(void *pConn) { return 0; } -int32_t (*mgmtCheckRedirectMsg)(void *pConn, int32_t msgType) = mgmtCheckRedirectMsgImp; +int32_t (*mgmtCheckRedirectMsg)(void *pConn) = mgmtCheckRedirectMsgImp; static int32_t mgmtProcessUnSupportMsg(void *pCont, int32_t contLen, void *ahandle) { rpcSendResponse(ahandle, TSDB_CODE_OPS_NOT_SUPPORT, NULL, 0); -- GitLab