Merge remote-tracking branch 'origin/3.0' into feature/check
This commit is contained in:
commit
434b2d9291
|
@ -198,6 +198,9 @@ static void vmProcessApplyQueue(SQueueInfo *pInfo, STaosQall *qall, int32_t numO
|
||||||
rsp.refId = pMsg->rpcMsg.refId;
|
rsp.refId = pMsg->rpcMsg.refId;
|
||||||
tmsgSendRsp(&rsp);
|
tmsgSendRsp(&rsp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rpcFreeCont(pMsg->rpcMsg.pCont);
|
||||||
|
taosFreeQitem(pMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,6 +214,9 @@ static void vmProcessSyncQueue(SQueueInfo *pInfo, STaosQall *qall, int32_t numOf
|
||||||
// todo
|
// todo
|
||||||
SRpcMsg *pRsp = NULL;
|
SRpcMsg *pRsp = NULL;
|
||||||
(void)vnodeProcessSyncReq(pVnode->pImpl, &pMsg->rpcMsg, &pRsp);
|
(void)vnodeProcessSyncReq(pVnode->pImpl, &pMsg->rpcMsg, &pRsp);
|
||||||
|
|
||||||
|
rpcFreeCont(pMsg->rpcMsg.pCont);
|
||||||
|
taosFreeQitem(pMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -822,7 +822,7 @@ int32_t castFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutp
|
||||||
varDataSetLen(output, len);
|
varDataSetLen(output, len);
|
||||||
}
|
}
|
||||||
//for constant conversion, need to set proper length of pOutput description
|
//for constant conversion, need to set proper length of pOutput description
|
||||||
if (len < outputLen - VARSTR_HEADER_SIZE) {
|
if (len < outputLen) {
|
||||||
pOutput->columnData->info.bytes = len;
|
pOutput->columnData->info.bytes = len;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -72,6 +72,8 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
|
||||||
"pSyncNode->pRaftStore->currentTerm:%lu",
|
"pSyncNode->pRaftStore->currentTerm:%lu",
|
||||||
pEntry->term, pSyncNode->pRaftStore->currentTerm);
|
pEntry->term, pSyncNode->pRaftStore->currentTerm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
syncEntryDestory(pEntry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@ typedef struct TdDirEntry {
|
||||||
WIN32_FIND_DATA findFileData;
|
WIN32_FIND_DATA findFileData;
|
||||||
} TdDirEntry;
|
} TdDirEntry;
|
||||||
|
|
||||||
|
|
||||||
typedef struct TdDir {
|
typedef struct TdDir {
|
||||||
TdDirEntry dirEntry;
|
TdDirEntry dirEntry;
|
||||||
HANDLE hFind;
|
HANDLE hFind;
|
||||||
|
@ -275,7 +274,6 @@ TdDirPtr taosOpenDir(const char *dirname) {
|
||||||
#else
|
#else
|
||||||
return (TdDirPtr)opendir(dirname);
|
return (TdDirPtr)opendir(dirname);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TdDirEntryPtr taosReadDir(TdDirPtr pDir) {
|
TdDirEntryPtr taosReadDir(TdDirPtr pDir) {
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#else
|
#else
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <net/if.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <netinet/ip.h>
|
#include <netinet/ip.h>
|
||||||
|
@ -638,6 +639,73 @@ int32_t taosKeepTcpAlive(TdSocketPtr pSocket) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int taosGetLocalIp(const char *eth, char *ip) {
|
||||||
|
#if defined(WINDOWS)
|
||||||
|
// DO NOTHAING
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
int fd;
|
||||||
|
struct ifreq ifr;
|
||||||
|
struct sockaddr_in sin;
|
||||||
|
|
||||||
|
fd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
|
if (-1 == fd) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
strncpy(ifr.ifr_name, eth, IFNAMSIZ);
|
||||||
|
ifr.ifr_name[IFNAMSIZ - 1] = 0;
|
||||||
|
|
||||||
|
if (ioctl(fd, SIOCGIFADDR, &ifr) < 0) {
|
||||||
|
taosCloseSocketNoCheck1(fd);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
|
||||||
|
snprintf(ip, 64, "%s", inet_ntoa(sin.sin_addr));
|
||||||
|
taosCloseSocketNoCheck1(fd);
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int taosValidIp(uint32_t ip) {
|
||||||
|
#if defined(WINDOWS)
|
||||||
|
// DO NOTHAING
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
int ret = -1;
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
struct ifconf ifconf;
|
||||||
|
|
||||||
|
char buf[512] = {0};
|
||||||
|
ifconf.ifc_len = 512;
|
||||||
|
ifconf.ifc_buf = buf;
|
||||||
|
|
||||||
|
if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ioctl(fd, SIOCGIFCONF, &ifconf);
|
||||||
|
struct ifreq *ifreq = (struct ifreq *)ifconf.ifc_buf;
|
||||||
|
for (int i = (ifconf.ifc_len / sizeof(struct ifreq)); i > 0; i--) {
|
||||||
|
char ip_str[64] = {0};
|
||||||
|
if (ifreq->ifr_flags == AF_INET) {
|
||||||
|
ret = taosGetLocalIp(ifreq->ifr_name, ip_str);
|
||||||
|
if (ret != 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ret = -1;
|
||||||
|
if (ip == (uint32_t)taosInetAddr(ip_str)) {
|
||||||
|
ret = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ifreq++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
taosCloseSocketNoCheck1(fd);
|
||||||
|
return ret;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool taosValidIpAndPort(uint32_t ip, uint16_t port) {
|
bool taosValidIpAndPort(uint32_t ip, uint16_t port) {
|
||||||
struct sockaddr_in serverAdd;
|
struct sockaddr_in serverAdd;
|
||||||
SocketFd fd;
|
SocketFd fd;
|
||||||
|
@ -677,13 +745,8 @@ bool taosValidIpAndPort(uint32_t ip, uint16_t port) {
|
||||||
taosCloseSocket(&pSocket);
|
taosCloseSocket(&pSocket);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (listen(pSocket->fd, 1024) < 0) {
|
|
||||||
// printf("listen tcp server socket failed, 0x%x:%hu(%s)", ip, port, strerror(errno));
|
|
||||||
taosCloseSocket(&pSocket);
|
taosCloseSocket(&pSocket);
|
||||||
return false;
|
return 0 == taosValidIp(ip) ? true : false;
|
||||||
}
|
|
||||||
taosCloseSocket(&pSocket);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
TdSocketServerPtr taosOpenTcpServerSocket(uint32_t ip, uint16_t port) {
|
TdSocketServerPtr taosOpenTcpServerSocket(uint32_t ip, uint16_t port) {
|
||||||
struct sockaddr_in serverAdd;
|
struct sockaddr_in serverAdd;
|
||||||
|
|
Loading…
Reference in New Issue