亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dhcpc.h

?? Linux下DHCP Client的實現。
?? H
字號:
// dhcpc.h
//

#ifndef __DHCPC_H__
#define __DHCPC_H__

//#include
#include <linux/if_ether.h>  //for ethhdr
#include <stdint.h>
#include "dhcpprotol.h"
#include "IntotoDNS.h"
#include "DhcpcMsg.h"	//

//#define INADDR_LOOPBACK 0x7f000001
#define BROADCAST_IP_ADDRESS 0xffffffff
#define DHCP_CLIENT_CONFIG_PORT 9000
#define MAX_INTERFACE_NAMELEN   16 
#define MAX_INTERFACE_NUM		16


//DHCPC Listen event config
#ifndef __WAG302TYPE_H__
#define TRUE 1
#define FALSE 0
#endif

#define MAX_FDS_TOPOLL		2
#define IPADDR_LEN			4

typedef uint32_t			ipaddr;
typedef	uint32_t			bool_t;

#ifndef	_NETINET_IN_H	// /usr/include/netinet/in.h
typedef uint32_t in_addr_t;
#endif


enum WaitEventType
{
	WAIT_DISCOVER = 0,
	WAIT_REQUEST,
	WAIT_INFORM
};
typedef struct DHCPWAITEvent_s
{
#define DEFAULT_DISCOVER_TIMEOUT	6
#define DEFAULT_REQUEST_TIMEOUT		6
	bool_t bStartWaitEvent;
	uint32_t iWaitStartTime;
	uint32_t iWaitTimeOutTime;
	bool_t iInitSet;
	enum WaitEventType EventType;
	int iIfIndex;//Interface 's index
	char cszIfName[MAX_INTERFACE_NAMELEN];
	struct DHCPClientBlock_s *pPointToBlock;	/*point to interface struct */
	bool_t fWillSend;
	uint32_t uiStartLeaseTime;
	int iTimeOutNums;
	int iSendNums;
	struct DHCPWAITEvent_s *Next;
}DHCPWAITEvent_t;

typedef struct DHCPClientBlock_s
{
	char cszIfName[MAX_INTERFACE_NAMELEN];
#define   MAX_VALID_MAC_ADDR_LEN   6
	uint8_t aucHwAddress[MAX_VALID_MAC_ADDR_LEN];
	uint32_t ulTransActionId;  //to identify
	uint8_t CurrentState;
	ipaddr LeasedIpAddress;
	ipaddr DHCPServerIpAddr;
	uint32_t ulLeasedTime;
	uint32_t ulStartLeaseTime;
	uint32_t ulRenewTmOut; 
	uint32_t ulRebindTmOut;
	uint32_t ulRemainingTime;	
	bool_t bUsed;
	bool_t bDHCPClientEnabled;
	//xhema 20041118
	int uiIfIndex;	//interface index
	bool_t bIfActive;	//if interface active state
	struct DhcpcIPSetting_t sAllocedStruct;		/*dhcp server alloced parma*/
	struct DhcpcIPSetting_t sDefaultConfigStruct;/*default parma */
	struct DHCPWAITEvent_s *pTimer;				/*interface's timeout point */
	//end
	//xhema 20041126
	bool_t bRequestToConnect;		//DHCP Client timeout will set default ip setting,but it still try to connect to dhcp server
	uint32_t ulLeaveTime;
	//end
	//xhema 20041201
	bool_t bSendArp;
	uint32_t ulLeaveArpSendTime;	//DHCP Client will send arp packet on minute to find ip clash
	struct DHCPClientBlock_s *next;
}DHCPClientBlock_t;

/* DHCP client Current state */
typedef enum DHCPClientCurrentStatus_t
{
	DHCP_CLIENT_INITIALIZED = 0,
	DHCP_CLIENT_SELECT,
	DHCP_CLIENT_REQUEST,
	DHCP_CLIENT_ARP_AWAIT,
	DHCP_CLIENT_BOUND,
	DHCP_CLIENT_RENEW,
	DHCP_CLIENT_REBIND,
	DHCP_CLIENT_STOP,
} DHCPClientCurrentStatus_t;

//udphdr
struct udphdr {
    uint16_t        source;     /* source port */
    uint16_t        dest;     /* destination port */
    int16_t         len;      /* udp length */
    uint16_t        check;       /* udp checksum */
};

#ifndef IPTOS_LOWDELAY
# define IPTOS_LOWDELAY          0x10
# define IPTOS_THROUGHPUT        0x08
# define IPTOS_RELIABILITY       0x04
# define IPTOS_LOWCOST           0x02
# define IPTOS_MINCOST           IPTOS_LOWCOST
#endif /* IPTOS_LOWDELAY */
//ip hdr
struct iphdr {
	uint8_t  ver:4,			/* version */
			 hlen:4;		/* header length */
	uint8_t  tos;		/* type of service */   //IPTOS_LOWDELAY
	int16_t	  tot_len;		/* total length */
	uint16_t id;		/* identification */
	int16_t	  frag_off;		/* fragment offset field */
#define	IP_DF 0x4000			/* dont fragment flag */
#define	IP_MF 0x2000			/* more fragments flag */
#define	IP_OFFMASK 0x1fff		/* mask for fragmenting bits */
	uint8_t  ttl;		/* time to live */
	uint8_t  protocol;			/* protocol */
	uint16_t check;		/* checksum */
	ipaddr saddr;
	ipaddr daddr; /* source and dest address */
};


//eth head struct
struct hardware
{
 uint8_t htype;
 uint8_t hlen;
 uint8_t haddr[6];
};
//arp head struct
struct arpheader
{
#define ARPHRD_ETHER	 1
#define ARPOP_REQUEST	 1
#define ARPOP_REPLY		 2
	uint16_t ar_hrd;
	uint16_t ar_pro;
	uint8_t ar_hlen;
	uint8_t ar_plen;
	uint16_t ar_op;
	uint8_t sha[6];
	uint8_t sip[4];
	//ipaddr sip;
	uint8_t tha[6];
	uint8_t tip[4];
	//ipaddr tip;
};

typedef enum ArpReplyType_t
{
	ARP_SUCCESS = 5000,
	ARP_HAVE_SAME_ADDR = 5001,
	ARP_ERROR = 5002
}ArpReplyType_t;

typedef enum ReturnValueType_t
{
	R_SUCCESS = 6000
}ReturnValueType_t;

typedef struct DHCPCIpAddressInfo_s
{
   ipaddr    ulClientIpAddress;
   uint16_t  usClientPort;
   ipaddr    ulServerIpAddress;
   uint16_t  usServerPort;
}DHCPCIpAddressInfo_t;

typedef struct DHCPClientFunctions{
	bool_t (*DHCPNetworkConfig)(const char *cszIfName, 
			struct DhcpcIPSetting_t	 *ConfigStruct);

	bool_t (*DhcpClientEnable)(const char *cszIfName);

	int (*SendPacket)(int8_t *cszIfName, uint8_t *data,
				uint32_t len, ipaddr source, ipaddr dest);

	void (*FillOptions)(const char *cszIfName, uint8_t *pData, uint32_t *ulDataLen, 
			uint8_t ucDHCPMsgType);

}DHCPClientFunctions_t;

void DHCPClientFillFunctions(DHCPClientFunctions_t *pEntry);

bool_t DHCPClientDefaultConfig(const char *cszIfName, 
			struct DhcpcIPSetting_t	 *ConfigStruct);

void DHCPCFillOptions(const char *cszIfName, 
					  uint8_t *pData, 
					  uint32_t *ulDataLen, 
					  uint8_t ucDHCPMsgType);

int DHCPClientReadPort68Message(void);

//packet Assembly
int32_t IGWCreateLpfSock(int8_t *cszIfName);
void make_discover(struct dhcp_packet *, DHCPClientBlock_t *);
int32_t ZCOM_IGWSendPacket(int8_t *cszIfName,
						   uint8_t *data,
						   uint32_t len, 
						   ipaddr source, 
						   ipaddr dest);

void DHCPCAddOptionsToPkt(uint8_t *caSendingPkt,
                            DHCPClientBlock_t *pCurCtxtBlock,
                            uint32_t  *ulTotLength,
                            uint8_t ucDHCPMsgType);

int DHCPClientGetOptionBuf( uint8_t   *pBuffer,
                        int32_t     iLength,
                        uint8_t   *DhcpMessageType,
                        ipaddr     *DHCPServerIpAddr,
                        uint32_t   *ulLeasedTime,
                        uint32_t   *ulRenewTmOut,
                        uint32_t   *ulRebindTmOut
                      ) ;

int DHCPClientGetParam(uint8_t	*pBuffer,
					   int32_t		iLength,
					   DhcpcIPSetting_t	 *ConfigStruct);

int DHCPClientSendDHCPRequest(DHCPClientBlock_t *pCurCtxtBlock);
int DHCPClientSendDHCPRelease(DHCPClientBlock_t *pCurCtxtBlock);
int DHCPClientSendDHCPDecline(DHCPClientBlock_t *pCurCtxtBlock);
int DHCPClientSelectDHCPOffer(DHCPClientBlock_t *pCurCtxtBlock);
int DHCPClientSelectDHCPDiscover(DHCPClientBlock_t *pCurCtxtBlock);

ArpReplyType_t DHCPClientSendArp(char *cszIfName, 
								uint8_t *shaddr, //source hardware addr
								uint8_t *thaddr, 
								ipaddr source, ipaddr dest
								);

void GetHwAddr(uint8_t *hw, const char *cszIfName);
bool_t  IsValidIP(in_addr_t ulIP);
void IGWAssembleEthernetHeader (uint8_t *buf, 
								int *bufix, 
								struct hardware *from,
								struct hardware *to);
void IGWAssembleUdpIpHeader(uint8_t *buf, 
							int32_t *bufix,
							ipaddr from, 
							ipaddr to,
							int32_t port,
							uint8_t *data,
							int32_t len);

void DHCPClientMonitor(void);
bool_t DHCPClientInit(void);
bool_t DHCPClientEnable(const char *cszIfName);
uint32_t checksum (uint8_t *buf,int nbytes,uint32_t sum);
uint32_t wrapsum (uint32_t sum);
int32_t DHCPClientActiveSocketFd(int32_t bActive);
bool_t InterfaceGatewaySet(const char *cszIfName, in_addr_t ulGateway);

bool_t IntotoStaticNameServerUpdate(
	in_addr_t	inDnsPrimary,
	in_addr_t	inDnsSecondary
	);
void IntotoStaticNameServerRemoveAll(void);
bool_t IntotoStaticNameServerAdd(in_addr_t ulIP);

int DHCPClientSendDHCPDiscover(DHCPClientBlock_t *pCurCtxtBlock);
void DHCPClientUpdateIfStatus(DHCPWAITEvent_t *pEvent);
int DHCPClientDiscoverTimeoutProcess(DHCPWAITEvent_t *p, 	DHCPClientBlock_t *pCurCtxtBlock);
int DHCPClientRequestTimeoutProcess(DHCPWAITEvent_t *p);

#endif//__DHCPC_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91久久综合桃花| 五月天一区二区| 国产激情一区二区三区四区| 香蕉av福利精品导航| 亚洲精品亚洲人成人网| 亚洲日本青草视频在线怡红院| 国产亚洲制服色| 久久综合色之久久综合| 久久综合色一综合色88| 97se狠狠狠综合亚洲狠狠| 成年人午夜久久久| 9久草视频在线视频精品| av一二三不卡影片| 国产成人一级电影| 成人美女在线观看| 国产高清精品网站| 97se狠狠狠综合亚洲狠狠| 成人av网址在线观看| 99久久综合精品| 欧美性猛交xxxxxx富婆| 555www色欧美视频| 亚洲精品一区二区三区99| 国产日韩影视精品| 亚洲激情综合网| 蜜桃视频在线观看一区二区| 国内国产精品久久| 91美女精品福利| 欧美日产国产精品| 国产欧美精品区一区二区三区 | 狠狠色伊人亚洲综合成人| 美女视频免费一区| 播五月开心婷婷综合| 欧美日韩一区二区不卡| 26uuu精品一区二区| 中文字幕成人网| 午夜精品123| 国产不卡视频一区| 日韩一区二区精品在线观看| 国产精品少妇自拍| 日产欧产美韩系列久久99| 国产经典欧美精品| 日韩一区二区在线播放| 亚洲国产成人自拍| 日韩av一级电影| 91在线视频18| 久久综合久久久久88| 亚洲国产美女搞黄色| 国产精品一区二区三区乱码| 欧美日韩午夜在线| 国产精品毛片大码女人| 日韩精品91亚洲二区在线观看| 韩国精品主播一区二区在线观看 | 国产v日产∨综合v精品视频| 欧美日本韩国一区二区三区视频| 久久精品视频一区二区三区| 日韩精品电影在线观看| 在线中文字幕不卡| 国产精品久久久久久久午夜片| 午夜精品一区二区三区三上悠亚| 成人av在线网站| 久久久久久一二三区| 欧美aa在线视频| 欧美精品乱码久久久久久| 亚洲欧美日韩国产手机在线| 国产超碰在线一区| 欧美一级久久久| 亚洲风情在线资源站| 91小视频在线| 自拍偷拍国产精品| www.欧美精品一二区| 久久久精品免费免费| 激情六月婷婷综合| 精品少妇一区二区三区视频免付费| 亚洲一区二区三区小说| 色狠狠色噜噜噜综合网| 亚洲乱码国产乱码精品精98午夜| 亚洲黄网站在线观看| 精品无人码麻豆乱码1区2区| 欧美性大战xxxxx久久久| 中日韩av电影| 成人av午夜电影| 欧美激情资源网| youjizz国产精品| 国产三级精品三级| 97久久超碰国产精品电影| 国产精品高潮呻吟| 99综合影院在线| 亚洲午夜免费视频| 在线观看日韩精品| 天堂蜜桃一区二区三区 | 国产午夜精品福利| 国产电影精品久久禁18| 国产精品嫩草99a| 色偷偷久久人人79超碰人人澡| 亚洲国产精品国自产拍av| 麻豆精品一二三| 日韩亚洲欧美在线| 国产二区国产一区在线观看| 国产精品私人影院| 91福利资源站| 久久av中文字幕片| 中文字幕在线视频一区| 一二三区精品视频| 欧美大胆人体bbbb| 国产成人av影院| 夜夜亚洲天天久久| 久久尤物电影视频在线观看| www.欧美日韩| 免费精品视频在线| 国产欧美精品一区二区色综合| 色嗨嗨av一区二区三区| 日韩高清一区二区| 国产精品久久久久永久免费观看| 在线视频国产一区| 国产揄拍国内精品对白| 伊人性伊人情综合网| 精品久久国产老人久久综合| 成a人片国产精品| 美女视频黄久久| 亚洲综合丝袜美腿| 国产亚洲女人久久久久毛片| 欧美亚洲动漫精品| 国产91精品久久久久久久网曝门| 亚洲欧美福利一区二区| 精品国产91久久久久久久妲己 | 五月天久久比比资源色| 久久久久久**毛片大全| 日本韩国精品一区二区在线观看| 久久99国产精品免费网站| 亚洲欧美一区二区三区极速播放| 欧美成人a视频| 欧美日韩国产首页| 91在线看国产| 国产ts人妖一区二区| 久久精品国产精品青草| 亚洲国产一区视频| 亚洲另类在线一区| 国产精品国产三级国产a| 精品粉嫩aⅴ一区二区三区四区| 91高清视频在线| 91免费版pro下载短视频| 国产成人综合网| 国产精品一区免费在线观看| 日本一不卡视频| 秋霞午夜av一区二区三区| 亚洲午夜视频在线观看| 亚洲国产一区二区在线播放| 中文字幕亚洲区| 最新国产精品久久精品| 久久精品这里都是精品| 国产喷白浆一区二区三区| 久久人人爽爽爽人久久久| 精品日韩一区二区三区| 精品国产免费一区二区三区香蕉| 欧美一区二区大片| 欧美一区二视频| 欧美一区二区在线播放| 日韩精品一区二区三区四区| 日韩手机在线导航| 精品国产乱码久久久久久图片| 日韩无一区二区| 国产亚洲精品久| 国产精品久久久久aaaa| 亚洲欧美日韩在线| 亚洲妇女屁股眼交7| 偷拍日韩校园综合在线| 奇米影视一区二区三区| 精品一区二区三区视频| 国产成人在线色| 91小视频在线| 欧美一区二区三区在线| 久久综合久久99| 国产精品久久久一本精品| 亚洲欧美另类小说| 首页亚洲欧美制服丝腿| 精品一区二区三区免费观看| 国产成人综合在线| 97se亚洲国产综合自在线观| 欧美精品xxxxbbbb| 日韩精品中文字幕一区二区三区 | 中文字幕欧美区| 一区二区三区中文字幕精品精品| 亚洲国产视频在线| 国模套图日韩精品一区二区| 成人丝袜18视频在线观看| 97久久超碰国产精品电影| 欧美性色欧美a在线播放| 精品国产精品网麻豆系列| 中文字幕一区在线观看| 日本不卡123| 99久精品国产| 欧美精品一区在线观看| 一区二区免费在线| 国内久久精品视频| 欧美专区亚洲专区| 久久久久综合网| 亚洲va国产va欧美va观看| 风流少妇一区二区| 4hu四虎永久在线影院成人| 国产精品久久免费看|