OCT 1. 重新格式化代码
This commit is contained in:
parent
694da892ee
commit
5b1822198f
|
@ -13,9 +13,6 @@ extern "C" {
|
||||||
|
|
||||||
#include "user_info.h"
|
#include "user_info.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2,7 +2,7 @@ SET(DHCPD_PROJECT_TARGET opendhcpd)
|
||||||
|
|
||||||
PROJECT(${DHCPD_PROJECT_TARGET} CXX)
|
PROJECT(${DHCPD_PROJECT_TARGET} CXX)
|
||||||
|
|
||||||
add_definitions(-Wno-write-strings)
|
ADD_DEFINITIONS(-Wno-write-strings)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(../libs/include ./ ../httpserver/include)
|
INCLUDE_DIRECTORIES(../libs/include ./ ../httpserver/include)
|
||||||
|
|
||||||
|
|
|
@ -530,14 +530,14 @@ int dhcpd_main(int daemon, const char *pInifile, const char *pStatusFile, const
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < MAX_SERVERS && network.dhcpConn[i].ready; i++) {
|
for (int i = 0; i < MAX_SERVERS && network.dhcpConn[i].ready; i++) {
|
||||||
if (FD_ISSET(network.dhcpConn[i].sock, &readfds) && gdmess(&dhcpr_local, i)
|
if (FD_ISSET(network.dhcpConn[i].sock, &readfds) && gdmess(&dhcpr_local, i) &&
|
||||||
&& sdmess(&dhcpr_local)) {
|
sdmess(&dhcpr_local)) {
|
||||||
alad(&dhcpr_local);
|
alad(&dhcpr_local);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FD_ISSET(network.dhcpListener.sock, &readfds) && gdmess(&dhcpr_local, 255)
|
if (FD_ISSET(network.dhcpListener.sock, &readfds) && gdmess(&dhcpr_local, 255) &&
|
||||||
&& sdmess(&dhcpr_local)) {
|
sdmess(&dhcpr_local)) {
|
||||||
alad(&dhcpr_local);
|
alad(&dhcpr_local);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -803,7 +803,8 @@ void prepareUserHtmlRespStatus(data19 *req) {
|
||||||
} else {
|
} else {
|
||||||
fp += sprintf(fp, "<tr><th colspan=\"4\"><font size=\"5\"><i>Active Leases</i></font></th></tr>\n");
|
fp += sprintf(fp, "<tr><th colspan=\"4\"><font size=\"5\"><i>Active Leases</i></font></th></tr>\n");
|
||||||
fp += sprintf(
|
fp += sprintf(
|
||||||
fp, "<tr><th>Mac Address</th><th>IP</th><th>Lease Expiry</th><th>Hostname (first 20 chars)</th></tr>\n");
|
fp,
|
||||||
|
"<tr><th>Mac Address</th><th>IP</th><th>Lease Expiry</th><th>Hostname (first 20 chars)</th></tr>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (p = dhcpCache.begin(); kRunning && p != dhcpCache.end() && fp < maxData; p++) {
|
for (p = dhcpCache.begin(); kRunning && p != dhcpCache.end() && fp < maxData; p++) {
|
||||||
|
@ -1170,12 +1171,12 @@ bool checkRange(data17 *rangeData, char rangeInd) {
|
||||||
//printf("checkRange entered, macFound=%i vendFound=%i userFound=%i\n", macFound, vendFound, userFound);
|
//printf("checkRange entered, macFound=%i vendFound=%i userFound=%i\n", macFound, vendFound, userFound);
|
||||||
|
|
||||||
if ((!rangeData->macFound && !rangeSet->macSize[0]) || (rangeData->macFound && rangeData->macArray[rangeSetInd])) {
|
if ((!rangeData->macFound && !rangeSet->macSize[0]) || (rangeData->macFound && rangeData->macArray[rangeSetInd])) {
|
||||||
if ((!rangeData->vendFound && !rangeSet->vendClassSize[0])
|
if ((!rangeData->vendFound && !rangeSet->vendClassSize[0]) ||
|
||||||
|| (rangeData->vendFound && rangeData->vendArray[rangeSetInd])) {
|
(rangeData->vendFound && rangeData->vendArray[rangeSetInd])) {
|
||||||
if ((!rangeData->userFound && !rangeSet->userClassSize[0])
|
if ((!rangeData->userFound && !rangeSet->userClassSize[0]) ||
|
||||||
|| (rangeData->userFound && rangeData->userArray[rangeSetInd])) {
|
(rangeData->userFound && rangeData->userArray[rangeSetInd])) {
|
||||||
if ((!rangeData->subnetFound && !rangeSet->subnetIP[0])
|
if ((!rangeData->subnetFound && !rangeSet->subnetIP[0]) ||
|
||||||
|| (rangeData->subnetFound && rangeData->subnetArray[rangeSetInd])) {
|
(rangeData->subnetFound && rangeData->subnetArray[rangeSetInd])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1263,8 +1264,10 @@ MYDWORD resad(data9 *req) {
|
||||||
return req->dhcpEntry->ip;
|
return req->dhcpEntry->ip;
|
||||||
} else {
|
} else {
|
||||||
if (verbatim || cfig.dhcpLogLevel) {
|
if (verbatim || cfig.dhcpLogLevel) {
|
||||||
sprintf(
|
sprintf(logBuff,
|
||||||
logBuff, "Static DHCP Host %s (%s) has No IP, DHCPDISCOVER ignored", req->chaddr, req->hostname);
|
"Static DHCP Host %s (%s) has No IP, DHCPDISCOVER ignored",
|
||||||
|
req->chaddr,
|
||||||
|
req->hostname);
|
||||||
logDHCPMess(logBuff, 1);
|
logDHCPMess(logBuff, 1);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1287,8 +1290,8 @@ MYDWORD resad(data9 *req) {
|
||||||
//printf("%s\n", hex2String(tempbuff, rangeSet->macStart[i], rangeSet->macSize[i]));
|
//printf("%s\n", hex2String(tempbuff, rangeSet->macStart[i], rangeSet->macSize[i]));
|
||||||
//printf("%s\n", hex2String(tempbuff, rangeSet->macEnd[i], rangeSet->macSize[i]));
|
//printf("%s\n", hex2String(tempbuff, rangeSet->macEnd[i], rangeSet->macSize[i]));
|
||||||
|
|
||||||
if (memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macStart[i], rangeSet->macSize[i]) >= 0
|
if (memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macStart[i], rangeSet->macSize[i]) >= 0 &&
|
||||||
&& memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macEnd[i], rangeSet->macSize[i]) <= 0) {
|
memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macEnd[i], rangeSet->macSize[i]) <= 0) {
|
||||||
rangeData.macArray[rangeSetInd] = 1;
|
rangeData.macArray[rangeSetInd] = 1;
|
||||||
rangeData.macFound = true;
|
rangeData.macFound = true;
|
||||||
//printf("mac Found, rangeSetInd=%i\n", rangeSetInd);
|
//printf("mac Found, rangeSetInd=%i\n", rangeSetInd);
|
||||||
|
@ -1297,8 +1300,8 @@ MYDWORD resad(data9 *req) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->vendClass.size && rangeSet->vendClassSize[i]; i++) {
|
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->vendClass.size && rangeSet->vendClassSize[i]; i++) {
|
||||||
if (rangeSet->vendClassSize[i] == req->vendClass.size
|
if (rangeSet->vendClassSize[i] == req->vendClass.size &&
|
||||||
&& !memcmp(req->vendClass.value, rangeSet->vendClass[i], rangeSet->vendClassSize[i])) {
|
!memcmp(req->vendClass.value, rangeSet->vendClass[i], rangeSet->vendClassSize[i])) {
|
||||||
rangeData.vendArray[rangeSetInd] = 1;
|
rangeData.vendArray[rangeSetInd] = 1;
|
||||||
rangeData.vendFound = true;
|
rangeData.vendFound = true;
|
||||||
//printf("vend Found, rangeSetInd=%i\n", rangeSetInd);
|
//printf("vend Found, rangeSetInd=%i\n", rangeSetInd);
|
||||||
|
@ -1307,8 +1310,8 @@ MYDWORD resad(data9 *req) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->userClass.size && rangeSet->userClassSize[i]; i++) {
|
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->userClass.size && rangeSet->userClassSize[i]; i++) {
|
||||||
if (rangeSet->userClassSize[i] == req->userClass.size
|
if (rangeSet->userClassSize[i] == req->userClass.size &&
|
||||||
&& !memcmp(req->userClass.value, rangeSet->userClass[i], rangeSet->userClassSize[i])) {
|
!memcmp(req->userClass.value, rangeSet->userClass[i], rangeSet->userClassSize[i])) {
|
||||||
rangeData.userArray[rangeSetInd] = 1;
|
rangeData.userArray[rangeSetInd] = 1;
|
||||||
rangeData.userFound = true;
|
rangeData.userFound = true;
|
||||||
//printf("user Found, rangeSetInd=%i\n", rangeSetInd);
|
//printf("user Found, rangeSetInd=%i\n", rangeSetInd);
|
||||||
|
@ -1501,8 +1504,8 @@ MYDWORD chkaddr(data9 *req) {
|
||||||
//printf("%s\n", hex2String(tempbuff, rangeSet->macStart[i], rangeSet->macSize[i]));
|
//printf("%s\n", hex2String(tempbuff, rangeSet->macStart[i], rangeSet->macSize[i]));
|
||||||
//printf("%s\n", hex2String(tempbuff, rangeSet->macEnd[i], rangeSet->macSize[i]));
|
//printf("%s\n", hex2String(tempbuff, rangeSet->macEnd[i], rangeSet->macSize[i]));
|
||||||
|
|
||||||
if (memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macStart[i], rangeSet->macSize[i]) >= 0
|
if (memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macStart[i], rangeSet->macSize[i]) >= 0 &&
|
||||||
&& memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macEnd[i], rangeSet->macSize[i]) <= 0) {
|
memcmp(req->dhcpp.header.bp_chaddr, rangeSet->macEnd[i], rangeSet->macSize[i]) <= 0) {
|
||||||
rangeData.macArray[rangeSetInd] = 1;
|
rangeData.macArray[rangeSetInd] = 1;
|
||||||
rangeData.macFound = true;
|
rangeData.macFound = true;
|
||||||
//printf("mac Found, rangeSetInd=%i\n", rangeSetInd);
|
//printf("mac Found, rangeSetInd=%i\n", rangeSetInd);
|
||||||
|
@ -1511,8 +1514,8 @@ MYDWORD chkaddr(data9 *req) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->vendClass.size && rangeSet->vendClassSize[i]; i++) {
|
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->vendClass.size && rangeSet->vendClassSize[i]; i++) {
|
||||||
if (rangeSet->vendClassSize[i] == req->vendClass.size
|
if (rangeSet->vendClassSize[i] == req->vendClass.size &&
|
||||||
&& !memcmp(req->vendClass.value, rangeSet->vendClass[i], rangeSet->vendClassSize[i])) {
|
!memcmp(req->vendClass.value, rangeSet->vendClass[i], rangeSet->vendClassSize[i])) {
|
||||||
rangeData.vendArray[rangeSetInd] = 1;
|
rangeData.vendArray[rangeSetInd] = 1;
|
||||||
rangeData.vendFound = true;
|
rangeData.vendFound = true;
|
||||||
//printf("vend Found, rangeSetInd=%i\n", rangeSetInd);
|
//printf("vend Found, rangeSetInd=%i\n", rangeSetInd);
|
||||||
|
@ -1521,8 +1524,8 @@ MYDWORD chkaddr(data9 *req) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->userClass.size && rangeSet->userClassSize[i]; i++) {
|
for (MYBYTE i = 0; i < MAX_RANGE_FILTERS && req->userClass.size && rangeSet->userClassSize[i]; i++) {
|
||||||
if (rangeSet->userClassSize[i] == req->userClass.size
|
if (rangeSet->userClassSize[i] == req->userClass.size &&
|
||||||
&& !memcmp(req->userClass.value, rangeSet->userClass[i], rangeSet->userClassSize[i])) {
|
!memcmp(req->userClass.value, rangeSet->userClass[i], rangeSet->userClassSize[i])) {
|
||||||
rangeData.userArray[rangeSetInd] = 1;
|
rangeData.userArray[rangeSetInd] = 1;
|
||||||
rangeData.userFound = true;
|
rangeData.userFound = true;
|
||||||
//printf("user Found, rangeSetInd=%i\n", rangeSetInd);
|
//printf("user Found, rangeSetInd=%i\n", rangeSetInd);
|
||||||
|
@ -1544,12 +1547,12 @@ MYDWORD chkaddr(data9 *req) {
|
||||||
data14 *rangeSet = &cfig.rangeSet[rangeSetInd];
|
data14 *rangeSet = &cfig.rangeSet[rangeSetInd];
|
||||||
rangeOK = false;
|
rangeOK = false;
|
||||||
|
|
||||||
if ((!rangeData.macFound && !rangeSet->macSize[0])
|
if ((!rangeData.macFound && !rangeSet->macSize[0]) ||
|
||||||
|| (rangeData.macFound && rangeData.macArray[rangeSetInd])) {
|
(rangeData.macFound && rangeData.macArray[rangeSetInd])) {
|
||||||
if ((!rangeData.vendFound && !rangeSet->vendClassSize[0])
|
if ((!rangeData.vendFound && !rangeSet->vendClassSize[0]) ||
|
||||||
|| (rangeData.vendFound && rangeData.vendArray[rangeSetInd])) {
|
(rangeData.vendFound && rangeData.vendArray[rangeSetInd])) {
|
||||||
if ((!rangeData.userFound && !rangeSet->userClassSize[0])
|
if ((!rangeData.userFound && !rangeSet->userClassSize[0]) ||
|
||||||
|| (rangeData.userFound && rangeData.userArray[rangeSetInd])) {
|
(rangeData.userFound && rangeData.userArray[rangeSetInd])) {
|
||||||
rangeOK = true;
|
rangeOK = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1668,8 +1671,8 @@ MYDWORD sdmess(data9 *req) {
|
||||||
//printf("repl1=%s\n", IP2String(tempbuff, cfig.zoneServers[1]));
|
//printf("repl1=%s\n", IP2String(tempbuff, cfig.zoneServers[1]));
|
||||||
//printf("IP=%s bytes=%u replication=%i\n", IP2String(tempbuff, req->remote.sin_addr.s_addr), req->bytes, cfig.replication);
|
//printf("IP=%s bytes=%u replication=%i\n", IP2String(tempbuff, req->remote.sin_addr.s_addr), req->bytes, cfig.replication);
|
||||||
|
|
||||||
if ((cfig.replication == 1 && req->remote.sin_addr.s_addr == cfig.zoneServers[1])
|
if ((cfig.replication == 1 && req->remote.sin_addr.s_addr == cfig.zoneServers[1]) ||
|
||||||
|| (cfig.replication == 2 && req->remote.sin_addr.s_addr == cfig.zoneServers[0])) {
|
(cfig.replication == 2 && req->remote.sin_addr.s_addr == cfig.zoneServers[0])) {
|
||||||
recvRepl(req);
|
recvRepl(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1692,8 +1695,8 @@ MYDWORD sdmess(data9 *req) {
|
||||||
if (req->reqIP && req->reqIP == chkaddr(req) && req->dhcpEntry->expiry > t) {
|
if (req->reqIP && req->reqIP == chkaddr(req) && req->dhcpEntry->expiry > t) {
|
||||||
req->resp_type = DHCP_MESS_ACK;
|
req->resp_type = DHCP_MESS_ACK;
|
||||||
req->dhcpp.header.bp_yiaddr = req->reqIP;
|
req->dhcpp.header.bp_yiaddr = req->reqIP;
|
||||||
} else if (req->dhcpp.header.bp_ciaddr && req->dhcpp.header.bp_ciaddr == chkaddr(req)
|
} else if (req->dhcpp.header.bp_ciaddr && req->dhcpp.header.bp_ciaddr == chkaddr(req) &&
|
||||||
&& req->dhcpEntry->expiry > t) {
|
req->dhcpEntry->expiry > t) {
|
||||||
req->resp_type = DHCP_MESS_ACK;
|
req->resp_type = DHCP_MESS_ACK;
|
||||||
req->dhcpp.header.bp_yiaddr = req->dhcpp.header.bp_ciaddr;
|
req->dhcpp.header.bp_yiaddr = req->dhcpp.header.bp_ciaddr;
|
||||||
req->dhcpp.header.bp_ciaddr = 0;
|
req->dhcpp.header.bp_ciaddr = 0;
|
||||||
|
@ -1712,8 +1715,8 @@ MYDWORD sdmess(data9 *req) {
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else if (req->dhcpp.header.bp_ciaddr && req->dhcpp.header.bp_ciaddr == chkaddr(req)
|
} else if (req->dhcpp.header.bp_ciaddr && req->dhcpp.header.bp_ciaddr == chkaddr(req) &&
|
||||||
&& req->dhcpEntry->expiry > t) {
|
req->dhcpEntry->expiry > t) {
|
||||||
req->resp_type = DHCP_MESS_ACK;
|
req->resp_type = DHCP_MESS_ACK;
|
||||||
req->dhcpp.header.bp_yiaddr = req->dhcpp.header.bp_ciaddr;
|
req->dhcpp.header.bp_yiaddr = req->dhcpp.header.bp_ciaddr;
|
||||||
req->dhcpp.header.bp_ciaddr = 0;
|
req->dhcpp.header.bp_ciaddr = 0;
|
||||||
|
@ -1772,8 +1775,12 @@ MYDWORD sdmess(data9 *req) {
|
||||||
(sockaddr *)&cliAddr,
|
(sockaddr *)&cliAddr,
|
||||||
sizeof(req->remote));
|
sizeof(req->remote));
|
||||||
} else {
|
} else {
|
||||||
req->bytes = (int)sendto(
|
req->bytes = (int)sendto(network.dhcpConn[req->sockInd].sock,
|
||||||
network.dhcpConn[req->sockInd].sock, req->raw, packSize, 0, (sockaddr *)&cliAddr, sizeof(req->remote));
|
req->raw,
|
||||||
|
packSize,
|
||||||
|
0,
|
||||||
|
(sockaddr *)&cliAddr,
|
||||||
|
sizeof(req->remote));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (errno || req->bytes <= 0) {
|
if (errno || req->bytes <= 0) {
|
||||||
|
@ -2173,8 +2180,8 @@ MYDWORD sendRepl(data9 *req) {
|
||||||
req->dhcpp.header.bp_op = BOOTP_REQUEST;
|
req->dhcpp.header.bp_op = BOOTP_REQUEST;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
|
|
||||||
req->bytes = (int)sendto(
|
req->bytes = (int)
|
||||||
cfig.dhcpReplConn.sock, req->raw, req->bytes, 0, (sockaddr *)&token.remote, sizeof(token.remote));
|
sendto(cfig.dhcpReplConn.sock, req->raw, req->bytes, 0, (sockaddr *)&token.remote, sizeof(token.remote));
|
||||||
|
|
||||||
//errno = WSAGetLastError();
|
//errno = WSAGetLastError();
|
||||||
|
|
||||||
|
@ -2278,8 +2285,10 @@ void recvRepl(data9 *req) {
|
||||||
req->chaddr,
|
req->chaddr,
|
||||||
IP2String(ipbuff, ip));
|
IP2String(ipbuff, ip));
|
||||||
} else {
|
} else {
|
||||||
sprintf(
|
sprintf(logBuff,
|
||||||
logBuff, "DHCP Update ignored for %s (%s) from Primary Server", req->chaddr, IP2String(ipbuff, ip));
|
"DHCP Update ignored for %s (%s) from Primary Server",
|
||||||
|
req->chaddr,
|
||||||
|
IP2String(ipbuff, ip));
|
||||||
}
|
}
|
||||||
|
|
||||||
logDHCPMess(logBuff, 1);
|
logDHCPMess(logBuff, 1);
|
||||||
|
@ -2367,8 +2376,10 @@ void recvRepl(data9 *req) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (cfig.replication == 1) {
|
if (cfig.replication == 1) {
|
||||||
sprintf(
|
sprintf(logBuff,
|
||||||
logBuff, "DHCP Update ignored for %s (%s) from Secondary Server", req->chaddr, IP2String(ipbuff, ip));
|
"DHCP Update ignored for %s (%s) from Secondary Server",
|
||||||
|
req->chaddr,
|
||||||
|
IP2String(ipbuff, ip));
|
||||||
} else {
|
} else {
|
||||||
sprintf(logBuff, "DHCP Update ignored for %s (%s) from Primary Server", req->chaddr, IP2String(ipbuff, ip));
|
sprintf(logBuff, "DHCP Update ignored for %s (%s) from Primary Server", req->chaddr, IP2String(ipbuff, ip));
|
||||||
}
|
}
|
||||||
|
@ -2735,8 +2746,10 @@ void loadOptions(FILE *f, const char *sectionName, data20 *optionData) {
|
||||||
dp += valSize;
|
dp += valSize;
|
||||||
buffsize -= (valSize + 2);
|
buffsize -= (valSize + 2);
|
||||||
} else {
|
} else {
|
||||||
sprintf(
|
sprintf(logBuff,
|
||||||
logBuff, "Warning: section [%s] option %s, no more space for options", sectionName, raw);
|
"Warning: section [%s] option %s, no more space for options",
|
||||||
|
sectionName,
|
||||||
|
raw);
|
||||||
logDHCPMess(logBuff, 1);
|
logDHCPMess(logBuff, 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -2877,11 +2890,11 @@ void loadOptions(FILE *f, const char *sectionName, data20 *optionData) {
|
||||||
|
|
||||||
if (valType == 2 && valSize == 1 && *value < 2) {
|
if (valType == 2 && valSize == 1 && *value < 2) {
|
||||||
j = *value;
|
j = *value;
|
||||||
} else if (valType == 1
|
} else if (valType == 1 &&
|
||||||
&& (!strcasecmp(value, "yes") || !strcasecmp(value, "on") || !strcasecmp(value, "true"))) {
|
(!strcasecmp(value, "yes") || !strcasecmp(value, "on") || !strcasecmp(value, "true"))) {
|
||||||
j = 1;
|
j = 1;
|
||||||
} else if (valType == 1
|
} else if (valType == 1 &&
|
||||||
&& (!strcasecmp(value, "no") || !strcasecmp(value, "off") || !strcasecmp(value, "false"))) {
|
(!strcasecmp(value, "no") || !strcasecmp(value, "off") || !strcasecmp(value, "false"))) {
|
||||||
j = 0;
|
j = 0;
|
||||||
} else if (valType == 6 && STR2INT(value) < 2) {
|
} else if (valType == 6 && STR2INT(value) < 2) {
|
||||||
j = STR2INT(value);
|
j = STR2INT(value);
|
||||||
|
@ -2967,8 +2980,8 @@ void lockOptions(FILE *f) {
|
||||||
MYBYTE n = sizeof(opData) / sizeof(data4);
|
MYBYTE n = sizeof(opData) / sizeof(data4);
|
||||||
|
|
||||||
for (op_index = 0; op_index < n; op_index++) {
|
for (op_index = 0; op_index < n; op_index++) {
|
||||||
if (!strcasecmp(name, opData[op_index].opName)
|
if (!strcasecmp(name, opData[op_index].opName) ||
|
||||||
|| (opData[op_index].opTag && STR2INT(name) == opData[op_index].opTag)) {
|
(opData[op_index].opTag && STR2INT(name) == opData[op_index].opTag)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3032,10 +3045,10 @@ void addDHCPRange(char *dp) {
|
||||||
for (; m < MAX_DHCP_RANGES && cfig.dhcpRanges[m].rangeStart; m++) {
|
for (; m < MAX_DHCP_RANGES && cfig.dhcpRanges[m].rangeStart; m++) {
|
||||||
range = &cfig.dhcpRanges[m];
|
range = &cfig.dhcpRanges[m];
|
||||||
|
|
||||||
if ((rs >= range->rangeStart && rs <= range->rangeEnd)
|
if ((rs >= range->rangeStart && rs <= range->rangeEnd) ||
|
||||||
|| (re >= range->rangeStart && re <= range->rangeEnd)
|
(re >= range->rangeStart && re <= range->rangeEnd) ||
|
||||||
|| (range->rangeStart >= rs && range->rangeStart <= re)
|
(range->rangeStart >= rs && range->rangeStart <= re) ||
|
||||||
|| (range->rangeEnd >= rs && range->rangeEnd <= re)) {
|
(range->rangeEnd >= rs && range->rangeEnd <= re)) {
|
||||||
sprintf(logBuff, "Warning: DHCP Range %s overlaps with another range, ignored", dp);
|
sprintf(logBuff, "Warning: DHCP Range %s overlaps with another range, ignored", dp);
|
||||||
logDHCPMess(logBuff, 1);
|
logDHCPMess(logBuff, 1);
|
||||||
return;
|
return;
|
||||||
|
@ -3254,8 +3267,8 @@ void loadDHCP() {
|
||||||
for (MYDWORD iip = cfig.dhcpRanges[rangeInd].rangeStart; iip <= cfig.dhcpRanges[rangeInd].rangeEnd; iip++) {
|
for (MYDWORD iip = cfig.dhcpRanges[rangeInd].rangeStart; iip <= cfig.dhcpRanges[rangeInd].rangeEnd; iip++) {
|
||||||
MYDWORD ip = htonl(iip);
|
MYDWORD ip = htonl(iip);
|
||||||
|
|
||||||
if ((cfig.dhcpRanges[rangeInd].mask | (~ip)) == UINT_MAX
|
if ((cfig.dhcpRanges[rangeInd].mask | (~ip)) == UINT_MAX ||
|
||||||
|| (cfig.dhcpRanges[rangeInd].mask | ip) == UINT_MAX) {
|
(cfig.dhcpRanges[rangeInd].mask | ip) == UINT_MAX) {
|
||||||
cfig.dhcpRanges[rangeInd].expiry[iip - cfig.dhcpRanges[rangeInd].rangeStart] = MY_MAX_TIME;
|
cfig.dhcpRanges[rangeInd].expiry[iip - cfig.dhcpRanges[rangeInd].rangeStart] = MY_MAX_TIME;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3380,8 +3393,8 @@ void loadDHCP() {
|
||||||
//sprintf(logBuff, "Loading %s=%s", dhcpData.hostname, IP2String(ipbuff, dhcpData.ip));
|
//sprintf(logBuff, "Loading %s=%s", dhcpData.hostname, IP2String(ipbuff, dhcpData.ip));
|
||||||
//logDHCPMess(logBuff, 1);
|
//logDHCPMess(logBuff, 1);
|
||||||
|
|
||||||
if (dhcpData.expiry > (t - 31 * 24 * 3600) && dhcpData.bp_hlen <= 16
|
if (dhcpData.expiry > (t - 31 * 24 * 3600) && dhcpData.bp_hlen <= 16 &&
|
||||||
&& !findServer(network.allServers, MAX_SERVERS, dhcpData.ip)) {
|
!findServer(network.allServers, MAX_SERVERS, dhcpData.ip)) {
|
||||||
hex2String(mapname, dhcpData.bp_chaddr, dhcpData.bp_hlen);
|
hex2String(mapname, dhcpData.bp_chaddr, dhcpData.bp_hlen);
|
||||||
|
|
||||||
auto p = dhcpCache.begin();
|
auto p = dhcpCache.begin();
|
||||||
|
@ -3394,8 +3407,8 @@ void loadDHCP() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((p != dhcpCache.end())
|
if ((p != dhcpCache.end()) &&
|
||||||
&& (strcasecmp(mapname, dhcpEntry->mapname) != 0 || dhcpEntry->ip != dhcpData.ip)) {
|
(strcasecmp(mapname, dhcpEntry->mapname) != 0 || dhcpEntry->ip != dhcpData.ip)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3573,8 +3586,8 @@ char *readSection(char *buff, FILE *f) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((*buff) >= '0' && (*buff) <= '9' || (*buff) >= 'A' && (*buff) <= 'Z' || (*buff) >= 'a' && (*buff) <= 'z'
|
if ((*buff) >= '0' && (*buff) <= '9' || (*buff) >= 'A' && (*buff) <= 'Z' || (*buff) >= 'a' && (*buff) <= 'z' ||
|
||||||
|| ((*buff) && strchr("/\\?*", (*buff)))) {
|
((*buff) && strchr("/\\?*", (*buff)))) {
|
||||||
return buff;
|
return buff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4462,8 +4475,8 @@ void *init(void *lparam) {
|
||||||
sprintf(logBuff, "Section [REPLICATION_SERVERS] Missing Secondary Server");
|
sprintf(logBuff, "Section [REPLICATION_SERVERS] Missing Secondary Server");
|
||||||
logDHCPMess(logBuff, 1);
|
logDHCPMess(logBuff, 1);
|
||||||
} else if (cfig.zoneServers[0] && cfig.zoneServers[1]) {
|
} else if (cfig.zoneServers[0] && cfig.zoneServers[1]) {
|
||||||
if (findServer(newNetwork.allServers, MAX_SERVERS, cfig.zoneServers[0])
|
if (findServer(newNetwork.allServers, MAX_SERVERS, cfig.zoneServers[0]) &&
|
||||||
&& findServer(newNetwork.allServers, MAX_SERVERS, cfig.zoneServers[1])) {
|
findServer(newNetwork.allServers, MAX_SERVERS, cfig.zoneServers[1])) {
|
||||||
sprintf(logBuff, "Section [REPLICATION_SERVERS] Primary & Secondary should be Different Boxes");
|
sprintf(logBuff, "Section [REPLICATION_SERVERS] Primary & Secondary should be Different Boxes");
|
||||||
logDHCPMess(logBuff, 1);
|
logDHCPMess(logBuff, 1);
|
||||||
} else if (findServer(newNetwork.allServers, MAX_SERVERS, cfig.zoneServers[0])) {
|
} else if (findServer(newNetwork.allServers, MAX_SERVERS, cfig.zoneServers[0])) {
|
||||||
|
@ -4684,8 +4697,9 @@ void *init(void *lparam) {
|
||||||
SO_BROADCAST,
|
SO_BROADCAST,
|
||||||
(char *)&newNetwork.dhcpConn[i].broadCastVal,
|
(char *)&newNetwork.dhcpConn[i].broadCastVal,
|
||||||
newNetwork.dhcpConn[i].broadCastSize);
|
newNetwork.dhcpConn[i].broadCastSize);
|
||||||
int nRet = bind(
|
int nRet = bind(newNetwork.dhcpConn[i].sock,
|
||||||
newNetwork.dhcpConn[i].sock, (sockaddr *)&newNetwork.dhcpConn[i].addr, sizeof(struct sockaddr_in));
|
(sockaddr *)&newNetwork.dhcpConn[i].addr,
|
||||||
|
sizeof(struct sockaddr_in));
|
||||||
|
|
||||||
if (nRet == SOCKET_ERROR) {
|
if (nRet == SOCKET_ERROR) {
|
||||||
close(newNetwork.dhcpConn[i].sock);
|
close(newNetwork.dhcpConn[i].sock);
|
||||||
|
@ -4796,8 +4810,8 @@ void *init(void *lparam) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newNetwork.httpConn.server != inet_addr("127.0.0.1")
|
if (newNetwork.httpConn.server != inet_addr("127.0.0.1") &&
|
||||||
&& !findServer(newNetwork.allServers, MAX_SERVERS, newNetwork.httpConn.server)) {
|
!findServer(newNetwork.allServers, MAX_SERVERS, newNetwork.httpConn.server)) {
|
||||||
bindfailed = true;
|
bindfailed = true;
|
||||||
newNetwork.httpConn.loaded = false;
|
newNetwork.httpConn.loaded = false;
|
||||||
sprintf(logBuff, "Warning: Section [HTTP_INTERFACE], %s not available, ignored", raw);
|
sprintf(logBuff, "Warning: Section [HTTP_INTERFACE], %s not available, ignored", raw);
|
||||||
|
@ -4846,8 +4860,9 @@ void *init(void *lparam) {
|
||||||
newNetwork.httpConn.addr.sin_addr.s_addr = newNetwork.httpConn.server;
|
newNetwork.httpConn.addr.sin_addr.s_addr = newNetwork.httpConn.server;
|
||||||
newNetwork.httpConn.addr.sin_port = htons(newNetwork.httpConn.port);
|
newNetwork.httpConn.addr.sin_port = htons(newNetwork.httpConn.port);
|
||||||
|
|
||||||
int nRet = bind(
|
int nRet = bind(newNetwork.httpConn.sock,
|
||||||
newNetwork.httpConn.sock, (sockaddr *)&newNetwork.httpConn.addr, sizeof(struct sockaddr_in));
|
(sockaddr *)&newNetwork.httpConn.addr,
|
||||||
|
sizeof(struct sockaddr_in));
|
||||||
|
|
||||||
if (nRet == SOCKET_ERROR) {
|
if (nRet == SOCKET_ERROR) {
|
||||||
bindfailed = true;
|
bindfailed = true;
|
||||||
|
@ -5001,8 +5016,8 @@ void getInterfaces(data1 *pNetwork) {
|
||||||
flags = 0;
|
flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addr && mask && (flags & IFF_RUNNING) && (flags & IFF_UP) && !(flags & IFF_LOOPBACK)
|
if (addr && mask && (flags & IFF_RUNNING) && (flags & IFF_UP) && !(flags & IFF_LOOPBACK) &&
|
||||||
&& !(flags & IFF_POINTOPOINT)) {
|
!(flags & IFF_POINTOPOINT)) {
|
||||||
MYBYTE k = addServer(pNetwork->allServers, MAX_SERVERS, addr);
|
MYBYTE k = addServer(pNetwork->allServers, MAX_SERVERS, addr);
|
||||||
|
|
||||||
if (k != MAX_SERVERS) {
|
if (k != MAX_SERVERS) {
|
||||||
|
@ -5098,8 +5113,12 @@ MYWORD gdmess(data9 *req, MYBYTE sockInd) {
|
||||||
req->sockInd = sockInd;
|
req->sockInd = sockInd;
|
||||||
req->sockLen = sizeof(req->remote);
|
req->sockLen = sizeof(req->remote);
|
||||||
errno = 0;
|
errno = 0;
|
||||||
req->bytes = (int)recvfrom(
|
req->bytes = (int)recvfrom(network.dhcpConn[sockInd].sock,
|
||||||
network.dhcpConn[sockInd].sock, req->raw, sizeof(dhcp_packet), 0, (sockaddr *)&req->remote, &req->sockLen);
|
req->raw,
|
||||||
|
sizeof(dhcp_packet),
|
||||||
|
0,
|
||||||
|
(sockaddr *)&req->remote,
|
||||||
|
&req->sockLen);
|
||||||
|
|
||||||
if (errno || req->bytes <= 0) {
|
if (errno || req->bytes <= 0) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -294,8 +294,8 @@ struct data4 {
|
||||||
bool permitted;
|
bool permitted;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) \
|
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || \
|
||||||
|| defined(__ia64) || defined(_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
defined(__ia64) || defined(_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
||||||
#define MY_MAX_TIME UINT_MAX
|
#define MY_MAX_TIME UINT_MAX
|
||||||
struct data8 //client
|
struct data8 //client
|
||||||
{
|
{
|
||||||
|
|
|
@ -458,10 +458,7 @@ static void response_complete(void *user_data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void proto_response_error(hw_http_response *response,
|
static void proto_response_error(hw_http_response *response, int httpCode, const char *httpCodeStr, int errCode) {
|
||||||
int httpCode,
|
|
||||||
const char *httpCodeStr,
|
|
||||||
int errCode) {
|
|
||||||
cJSON *pRspMsg = cJSON_CreateObject();
|
cJSON *pRspMsg = cJSON_CreateObject();
|
||||||
|
|
||||||
cJSON_AddNumberToObject(pRspMsg, "status", errCode);
|
cJSON_AddNumberToObject(pRspMsg, "status", errCode);
|
||||||
|
@ -473,9 +470,7 @@ static void proto_response_error(hw_http_response *response,
|
||||||
free((void *)pStrPro);
|
free((void *)pStrPro);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void opendhcp_http_info(http_request *request,
|
static void opendhcp_http_info(http_request *request, hw_http_response *response, void *UNUSED(user_data)) {
|
||||||
hw_http_response *response,
|
|
||||||
void *UNUSED(user_data)) {
|
|
||||||
hw_string status_code;
|
hw_string status_code;
|
||||||
hw_string content_type_name;
|
hw_string content_type_name;
|
||||||
hw_string content_type_value;
|
hw_string content_type_value;
|
||||||
|
@ -518,9 +513,7 @@ static void opendhcp_http_info(http_request *request,
|
||||||
hw_http_response_send(response, req, response_complete);
|
hw_http_response_send(response, req, response_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void opendhcp_http_get_userinfo(http_request *request,
|
static void opendhcp_http_get_userinfo(http_request *request, hw_http_response *response, void *UNUSED(user_data)) {
|
||||||
hw_http_response *response,
|
|
||||||
void *UNUSED(user_data)) {
|
|
||||||
hw_string status_code;
|
hw_string status_code;
|
||||||
hw_string content_type_name;
|
hw_string content_type_name;
|
||||||
hw_string content_type_value;
|
hw_string content_type_value;
|
||||||
|
@ -568,9 +561,7 @@ static void opendhcp_http_get_userinfo(http_request *request,
|
||||||
hw_http_response_send(response, req, response_complete);
|
hw_http_response_send(response, req, response_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void opendhcp_http_get_alluser(http_request *request,
|
static void opendhcp_http_get_alluser(http_request *request, hw_http_response *response, void *UNUSED(user_data)) {
|
||||||
hw_http_response *response,
|
|
||||||
void *UNUSED(user_data)) {
|
|
||||||
hw_string status_code;
|
hw_string status_code;
|
||||||
hw_string content_type_name;
|
hw_string content_type_name;
|
||||||
hw_string content_type_value;
|
hw_string content_type_value;
|
||||||
|
@ -618,9 +609,7 @@ static void opendhcp_http_get_alluser(http_request *request,
|
||||||
hw_http_response_send(response, req, response_complete);
|
hw_http_response_send(response, req, response_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void opendhcp_http_expand_rangeset(http_request *request,
|
static void opendhcp_http_expand_rangeset(http_request *request, hw_http_response *response, void *UNUSED(user_data)) {
|
||||||
hw_http_response *response,
|
|
||||||
void *UNUSED(user_data)) {
|
|
||||||
hw_string status_code;
|
hw_string status_code;
|
||||||
hw_string content_type_name;
|
hw_string content_type_name;
|
||||||
hw_string content_type_value;
|
hw_string content_type_value;
|
||||||
|
|
Loading…
Reference in New Issue