OCT 1. 更新头文件定义

This commit is contained in:
huangxin 2023-03-16 09:57:04 +08:00
parent 80b367a01b
commit eb9c03c908
2 changed files with 95 additions and 92 deletions

View File

@ -39,7 +39,7 @@
#endif #endif
#ifndef SIOCGIFCONF #ifndef SIOCGIFCONF
#include <sys/sockio.h> #include <sys/ioctl.h>
#endif #endif
#ifndef _UIO_H_ #ifndef _UIO_H_
@ -70,19 +70,19 @@ typedef struct in_pktinfo IN_PKTINFO;
#define IFF_DYNAMIC 0x8000 #define IFF_DYNAMIC 0x8000
#endif #endif
#define MYWORD unsigned short #define MYWORD unsigned short
#define MYBYTE unsigned char #define MYBYTE unsigned char
#define MYDWORD unsigned int #define MYDWORD unsigned int
#define SOCKET_ERROR -1 #define SOCKET_ERROR -1
#define INVALID_SOCKET -1 #define INVALID_SOCKET -1
#define SOCKADDR_IN sockaddr_in #define SOCKADDR_IN sockaddr_in
#define SOCKADDR sockaddr #define SOCKADDR sockaddr
#define SOCKET int #define SOCKET int
#define BOOL bool #define BOOL bool
#define LPSOCKADDR sockaddr * #define LPSOCKADDR sockaddr *
#define closesocket close #define closesocket close
#define STR2INT(val) ((int)strtol((val), nullptr, 10)) #define STR2INT(val) ((int)strtol((val), nullptr, 10))
#define DISCOVER_RSP_NOT_BOARDCAST (0) #define DISCOVER_RSP_NOT_BOARDCAST (0)
@ -707,77 +707,77 @@ struct data15 {
}; };
//Function Prototypes //Function Prototypes
bool checkIP(data9 *req, data17 *rangeData, MYDWORD ip); bool checkIP(data9 *req, data17 *rangeData, MYDWORD ip);
bool checkMask(MYDWORD); bool checkMask(MYDWORD);
bool checkRange(data17 *, char); bool checkRange(data17 *, char);
bool detectChange(); bool detectChange();
bool getSection(const char *, char *, MYBYTE, char *); bool getSection(const char *, char *, MYBYTE, char *);
bool isInt(char *); bool isInt(char *);
bool isIP(char *); bool isIP(char *);
FILE *openSection(const char *, MYBYTE); FILE *openSection(const char *, MYBYTE);
MYBYTE pIP(void *, MYDWORD); MYBYTE pIP(void *, MYDWORD);
MYBYTE pUInt(void *raw, MYDWORD data); MYBYTE pUInt(void *raw, MYDWORD data);
MYBYTE pUShort(void *, MYWORD); MYBYTE pUShort(void *, MYWORD);
MYBYTE addServer(MYDWORD *, MYBYTE, MYDWORD); MYBYTE addServer(MYDWORD *, MYBYTE, MYDWORD);
int getRangeInd(MYDWORD); int getRangeInd(MYDWORD);
char *myTrim(char *, char *); char *myTrim(char *, char *);
char *myGetToken(char *, MYBYTE); char *myGetToken(char *, MYBYTE);
char *cloneString(char *); char *cloneString(char *);
char *getHexValue(MYBYTE *, char *, MYBYTE *); char *getHexValue(MYBYTE *, char *, MYBYTE *);
char *genHostName(char *, const MYBYTE *, MYBYTE); char *genHostName(char *, const MYBYTE *, MYBYTE);
char *hex2String(char *, const MYBYTE *, MYBYTE); char *hex2String(char *, const MYBYTE *, MYBYTE);
char *IP2String(char *, MYDWORD); char *IP2String(char *, MYDWORD);
char *myUpper(char *string); char *myUpper(char *string);
char *myLower(char *string); char *myLower(char *string);
char *readSection(char *, FILE *); char *readSection(char *, FILE *);
data7 *findDHCPEntry(char *); data7 *findDHCPEntry(char *);
data7 *createCache(data71 *pLump); data7 *createCache(data71 *pLump);
MYDWORD alad(data9 *); MYDWORD alad(data9 *);
MYDWORD resad(data9 *); MYDWORD resad(data9 *);
MYDWORD sdmess(data9 *); MYDWORD sdmess(data9 *);
MYDWORD sendRepl(data9 *req); MYDWORD sendRepl(data9 *req);
MYDWORD *findServer(MYDWORD *, MYBYTE, MYDWORD); MYDWORD *findServer(MYDWORD *, MYBYTE, MYDWORD);
int getIndex(char, MYDWORD); int getIndex(char, MYDWORD);
int addDHCPRange(char *dp); int addDHCPRange(char *dp);
void addVendClass(MYBYTE rangeSetInd, char *vendClass, MYBYTE vendClassSize); void addVendClass(MYBYTE rangeSetInd, char *vendClass, MYBYTE vendClassSize);
void addUserClass(MYBYTE rangeSetInd, char *userClass, MYBYTE userClassSize); void addUserClass(MYBYTE rangeSetInd, char *userClass, MYBYTE userClassSize);
void addMacRange(MYBYTE rangeSetInd, char *macRange); void addMacRange(MYBYTE rangeSetInd, char *macRange);
void addOptions(data9 *req); void addOptions(data9 *req);
void calcRangeLimits(MYDWORD, MYDWORD, MYDWORD *, MYDWORD *); void calcRangeLimits(MYDWORD, MYDWORD, MYDWORD *, MYDWORD *);
void closeConn(); void closeConn();
bool getInterfaces(data1 *pNetwork); bool getInterfaces(data1 *pNetwork);
void *init(void *); void *init(void *);
void lockOptions(FILE *); void lockOptions(FILE *);
void loadOptions(FILE *, const char *, data20 *); void loadOptions(FILE *, const char *, data20 *);
void mySplit(char *, char *, const char *, char); void mySplit(char *, char *, const char *, char);
void *sendHTTP(void *); void *sendHTTP(void *);
void procHTTP(data19 *); void procHTTP(data19 *);
void pvdata(data9 *, data3 *); void pvdata(data9 *, data3 *);
void recvRepl(data9 *); void recvRepl(data9 *);
void lockIP(MYDWORD); void lockIP(MYDWORD);
void sendStatus(data19 *req); void sendStatus(data19 *req);
void setTempLease(data7 *); void setTempLease(data7 *);
void setLeaseExpiry(data7 *); void setLeaseExpiry(data7 *);
void setLeaseExpiry(data7 *, MYDWORD); void setLeaseExpiry(data7 *, MYDWORD);
void *updateStateFile(void *); void *updateStateFile(void *);
MYWORD fUShort(void *); MYWORD fUShort(void *);
MYWORD gdmess(data9 *, MYBYTE); MYWORD gdmess(data9 *, MYBYTE);
MYWORD myTokenize(char *, char *, const char *, bool); MYWORD myTokenize(char *, char *, const char *, bool);
MYDWORD fIP(void *raw); MYDWORD fIP(void *raw);
MYDWORD fUInt(void *raw); MYDWORD fUInt(void *raw);
int prepareUserHtmlRespStatus(const char **pRsp); int prepareUserHtmlRespStatus(const char **pRsp);
#ifdef HTTPSERVER_ON #ifdef HTTPSERVER_ON
void opendhcp_init_http_server(); void opendhcp_init_http_server();
#endif #endif
void opendhcp_set_replication_svr(); void opendhcp_set_replication_svr();
void opendhcp_add_ip_pool_set(); void opendhcp_add_ip_pool_set();
void opendhcp_add_mac_filter(); void opendhcp_add_mac_filter();
int process_iptv_multicast(const unsigned char *p, int size, const char *mac); int process_iptv_multicast(const unsigned char *p, int size, const char *mac);
int opendhcp_add_listener(); int opendhcp_add_listener();
unsigned int opendhcp_set_lease_time(); unsigned int opendhcp_set_lease_time();
int getHwAddr(char *buff, char *mac); int getHwAddr(char *buff, char *mac);
int arpSet(const char *ifname, char *ipStr, char *mac); int arpSet(const char *ifname, char *ipStr, char *mac);
#if DISCOVER_RSP_NOT_BOARDCAST #if DISCOVER_RSP_NOT_BOARDCAST
sockaddr_in get_cliAddr(char *nicif, char *tempbuff, data9 *req); sockaddr_in get_cliAddr(char *nicif, char *tempbuff, data9 *req);
#endif #endif
#pragma clang diagnostic pop #pragma clang diagnostic pop

View File

@ -5,18 +5,14 @@
#include <map> #include <map>
using namespace std; using namespace std;
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <net/if.h> #include <net/if.h>
#include <arpa/inet.h> #include <arpa/inet.h>
#include <unistd.h>
#include <memory.h> #include <memory.h>
#include <cstdlib> #include <cstdlib>
#include "opendhcpd.h" #include "opendhcpd.h"
#include "s2j/cJSON.h" #include "s2j/cJSON.h"
#include "misc.h" #include "misc.h"
#include <net/if_arp.h>
#include <uv.h> #include <uv.h>
#include "config.h" #include "config.h"
#include "proto.h" #include "proto.h"
@ -27,6 +23,12 @@ using namespace std;
#include "http_svr.h" #include "http_svr.h"
#include "task_manager.h" #include "task_manager.h"
#if DISCOVER_RSP_NOT_BOARDCAST
#include <sys/socket.h>
#include <unistd.h>
#include <net/if_arp.h>
#endif
extern data2 cfig; extern data2 cfig;
extern bool kRunning; extern bool kRunning;
extern dhcpMap dhcpCache; extern dhcpMap dhcpCache;
@ -45,11 +47,12 @@ static PIPTV_DEV_SET g_iptvCacheDevs = nullptr;
static uv_rwlock_t g_uvCacheLock; static uv_rwlock_t g_uvCacheLock;
#ifdef JSON_SCHEMA_ON #ifdef JSON_SCHEMA_ON
// clang-format off
const char *g_json_msg[] = { const char *g_json_msg[] = {
"{\"type\":\"object\",\"required\":[\"rangeSet\"],\"properties\":{\"rangeSet\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"type\":\"object\",\"required\":[\"dhcpRange\"]}}}}", R"({"type":"object","required":["rangeSet"],"properties":{"rangeSet":{"type":"array","minItems":1,"items":{"type":"object","required":["dhcpRange"]}}}})",
"{\"type\":\"object\",\"required\":[\"dhcpRange\"],\"properties\":{\"dhcpRange\":{\"type\":\"array\",\"minItems\":1}}}", R"({"type":"object","required":["dhcpRange"],"properties":{"dhcpRange":{"type":"array","minItems":1}}})",
"{\"type\":\"object\",\"required\":[\"userMac\"],\"properties\":{\"userMac\":{\"type\":\"array\",\"minItems\":1}}}" R"({"type":"object","required":["userMac"],"properties":{"userMac":{"type":"array","minItems":1}}})"};
}; // clang-format on
#endif #endif
static int dhcp_get_user_info(const char **pRsp, const char *pRequest) { static int dhcp_get_user_info(const char **pRsp, const char *pRequest) {
@ -977,8 +980,8 @@ static HTTP_ROUTE_INFO g_routeTable[] = {
}; };
void opendhcp_init_http_server() { void opendhcp_init_http_server() {
static int added = FALSE; static int added = FALSE;
static uv_timer_t uvTm; static uv_timer_t uvTm;
if (!added) { if (!added) {
uv_rwlock_init(&g_uvCacheLock); uv_rwlock_init(&g_uvCacheLock);
uv_timer_init(get_task_manager(), &uvTm); uv_timer_init(get_task_manager(), &uvTm);