add rpc update interface

This commit is contained in:
yihaoDeng 2023-09-01 20:11:48 +08:00
parent bf41ee6bc8
commit 2045fd4605
1 changed files with 26 additions and 2 deletions

View File

@ -189,11 +189,31 @@ static void uvHandleActivityTimeout(uv_timer_t* handle) {
tDebug("%p timeout since no activity", conn);
}
static bool uvCheckIp(char* range, char* ip) {
// impl later
return strcmp(range, ip) == 0;
}
static bool uvFilteByWhiteList(SWorkThrd* pThrd, char* user, uint32_t ip) {
// impl check
SArray** pWhite = taosHashGet(pThrd->pWhiteList, user, strlen(user));
if (pWhite == NULL || *pWhite == NULL) {
return true;
}
bool valid = false;
char userIp[64] = {0};
tinet_ntoa(userIp, ip);
for (int i = 0; i < taosArrayGetSize(*pWhite); i++) {
char* range = taosArrayGetP(*pWhite, i);
valid = uvCheckIp(range, userIp);
if (valid) {
return valid;
}
}
return valid;
}
static bool uvHandleReq(SSvrConn* pConn) {
STrans* pTransInst = pConn->pTransInst;
SWorkThrd* pThrd = pConn->hostThrd;
STransMsgHead* pHead = NULL;
@ -202,6 +222,9 @@ static bool uvHandleReq(SSvrConn* pConn) {
tError("%s conn %p read invalid packet", transLabel(pTransInst), pConn);
return false;
}
if (uvFilteByWhiteList(pThrd, pHead->user, pConn->clientIp) == false) {
return false;
}
if (transDecompressMsg((char**)&pHead, msgLen) < 0) {
tError("%s conn %p recv invalid packet, failed to decompress", transLabel(pTransInst), pConn);
@ -1208,6 +1231,7 @@ void uvHandleRegister(SSvrMsg* msg, SWorkThrd* thrd) {
void uvHandleUpdate(SSvrMsg* msg, SWorkThrd* thrd) {
// update white ip
bool ret = (msg->func)(msg->arg);
taosMemoryFree(msg);
return;
}