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

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

?? dhcp_support.c

?? Mavell 無線模塊原廠IC AP32源代碼。DHCP客戶端與服務端源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*==========================================================================////      dhcp_support.c////      Support code == friendly API for DHCP client////==========================================================================//####ECOSPDCOPYRIGHTBEGIN####//// Copyright (C) 2000, 2001, 2002 Red Hat, Inc.// All Rights Reserved.//// Permission is granted to use, copy, modify and redistribute this// file.////####ECOSPDCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):   hmt// Contributors: gthomas// Date:        2000-07-01// Purpose:     DHCP support// Description: ////####DESCRIPTIONEND####////========================================================================*/#include <pkgconf/system.h>#include <pkgconf/net.h>/* Define these locally because we are porting this code from a later package, * therefore these are not defined in pkgconf/net.h */#define DHCP_MIB_VERSION  9#define CYGPKG_NET_DHCP#define CYGOPT_NET_DHCP_DHCP_THREAD#ifdef CYGPKG_NET_DHCP#include <network.h>#include <dhcp.h>#if defined(GATEWAY) && defined(DHCPS)#if PROD_NAME == 0#include "timer.h"Timer LinkStatusTimer;#endif                /* Inform DHCP Server application */extern void dhcpsSetDNS ( unsigned long prim_dns_addr, unsigned long sec_dns_addr);#endif//#define CYGDBG_NET_DHCP_CHATTER#if defined(GATEWAY)        /* Inform Fast Routing module */extern void        FR_Main_WanIP_update();#endiftypedef struct MIB_DHCP_s{    unsigned long IPAddr;    unsigned long SubnetMask;    unsigned long GwyAddr;    unsigned long PrimaryDNS;    unsigned long SecondaryDNS;}MIB_DHCP;#if defined(GATEWAY)typedef struct MIB_IP_LAN_s{    unsigned long IPAddr;    unsigned long SubnetMask;}MIB_IP_LAN;extern MIB_IP_LAN mib_IP_LAN;extern in_addr_t         inet_addr (char  *cp);#define _string(s) #s#define string(s) _string(s)#endif#ifdef AP5XMIB_DHCP mib_DHCP= {0x34020202, 0xFFFFFF00, 0, 0, 0};#define MIB_DHCP_P  (&mib_DHCP)#define SUBNETMASK  (mib_DHCP.SubnetMask)#define IPADDR      (mib_DHCP.IPAddr)#define GWYADDR     (mib_DHCP.GwyAddr)#define PRIMARYDNS      (mib_DHCP.PrimaryDNS)#define SECONDARYDNS     (mib_DHCP.SecondaryDNS)#elseextern MIB_DHCP *mib_DHCP_p;#define MIB_DHCP_P  (mib_DHCP_p)#define SUBNETMASK  (mib_DHCP_p->SubnetMask)#define IPADDR      (mib_DHCP_p->IPAddr)#define GWYADDR     (mib_DHCP_p->GwyAddr)#endifextern unsigned char mib_dhcpenable;extern int SetUserConfig(void);extern void Reset(void);// ---------------------------------------------------------------------------#ifdef CYGHWR_NET_DRIVER_ETH0cyg_uint8 eth0_dhcpstate = 0;#endif#ifdef CYGHWR_NET_DRIVER_ETH1cyg_uint8 eth1_dhcpstate = 0;#endifcyg_sem_t dhcp_needs_attention;#ifdef CYGHWR_NET_DRIVER_ETH0struct dhcp_lease eth0_lease =    {        &dhcp_needs_attention, 0, 0, 0, 0, 0, 0    };#endif#ifdef CYGHWR_NET_DRIVER_ETH1struct dhcp_lease eth1_lease =    {        &dhcp_needs_attention, 0, 0, 0, 0, 0, 0    };#endif#if PROD_NAME == 0unsigned int LinkStatusCheckTimeOut(unsigned char *data){ 	extern int gWanPort;	#define LINK_NO_CHANGE 0	#define LINK_TO_UP 1	#define LINK_TO_DOWN 2	#define TRUE 1	#define FALSE 0	static unsigned char wanPortStatusChange = LINK_NO_CHANGE;	static unsigned char wanLinkUp = FALSE;	if(wanPortStatusChange != LINK_NO_CHANGE)	{		if(wanPortStatusChange == LINK_TO_UP)			initiate_dhcp(1);			wanPortStatusChange = LINK_NO_CHANGE;	}	else	{		if(isPortLinkUp(gWanPort))		{			if(wanLinkUp == FALSE)			   wanPortStatusChange = LINK_TO_UP;				wanLinkUp = TRUE;		}		else		{			if(wanLinkUp == TRUE)			   wanPortStatusChange = LINK_TO_DOWN;				wanLinkUp = FALSE;					}	}    return 0;}#endifstatic unsigned char *add_tag(unsigned char *vp,        unsigned char tag,        void *val,        int len){    int i;    unsigned char *xp = (unsigned char *)val;    *vp++ = tag;    *vp++ = len;    for (i = 0; i < len; i++)    {        *vp++ = *xp++;    }    return vp;}unsigned long inet_address(unsigned long addr){    return htonl(addr);}static voidbuild_bootp_record(struct bootp *bp,                   const char *addrs_ip,                   const char *addrs_netmask,                   const char *addrs_broadcast,                   const char *addrs_gateway,                   const char *addrs_server){    int i;    in_addr_t addr;    unsigned char *vp;    unsigned char cookie[] = VM_RFC1048;    bzero(bp, sizeof(struct bootp));    bp->bp_op = BOOTREPLY;    bp->bp_htype = HTYPE_ETHERNET;    bp->bp_hlen = 6;    for (i = 0;  i < bp->bp_hlen;  i++) {        bp->bp_chaddr[i] = 0xFF;    }    bp->bp_ciaddr.s_addr = inet_addr(addrs_ip);    bp->bp_yiaddr.s_addr = inet_addr(addrs_ip);    bp->bp_siaddr.s_addr = inet_addr(addrs_server);    bp->bp_giaddr.s_addr = inet_addr(addrs_gateway);    vp = &bp->bp_vend[0];    bcopy(&cookie, vp, sizeof(cookie));    vp += sizeof(cookie);    addr = inet_addr(addrs_netmask);    vp = add_tag(vp, TAG_SUBNET_MASK, &addr, sizeof(in_addr_t));    addr = inet_addr(addrs_broadcast);    vp = add_tag(vp, TAG_IP_BROADCAST, &addr, sizeof(in_addr_t));    *vp = TAG_END;}/* used at init to BUILD FROM from mib or when moving from dhcp to static*/void dhcp_build_bootp(struct bootp *bp,					  cyg_uint32 my_addr,                      cyg_uint32 my_mask,                      cyg_uint32 gateway,                      cyg_uint32 server){    unsigned int i;    unsigned char *vp;    unsigned char cookie[] = VM_RFC1048;    bzero(bp, sizeof(struct bootp));    bp->bp_op = BOOTREPLY;    bp->bp_htype = HTYPE_ETHERNET;    bp->bp_hlen = 6;    for (i = 0;  i < bp->bp_hlen;  i++) {        bp->bp_chaddr[i] = 0xFF;    }    bp->bp_ciaddr.s_addr = htonl(my_addr);    bp->bp_yiaddr.s_addr = htonl(my_addr);    bp->bp_siaddr.s_addr = htonl(my_addr);   	bp->bp_giaddr.s_addr = htonl(my_addr);    vp = &bp->bp_vend[0];    bcopy(&cookie, vp, sizeof(cookie));    vp += sizeof(cookie);    my_mask  = htonl(my_mask);    vp = add_tag(vp, TAG_SUBNET_MASK, &my_mask, sizeof(in_addr_t));    if(gateway){/* add default gateway tag */    	gateway = htonl(gateway);	    vp = add_tag(vp, TAG_GATEWAY, &gateway, sizeof(in_addr_t));    }    *vp = TAG_END;}#define INIT_WAN_ONLY 1#define INIT_LAN_ONLY 2#define INIT_ALL 0voidinit_my_network_interfaces(int flag){    extern unsigned char mib_version;#ifdef CYGHWR_NET_DRIVER_ETH0#ifdef CYGHWR_NET_DRIVER_ETH0_BOOTP// Perform a complete initialization, using BOOTP/DHCP    eth0_up = true;    if (do_bootp(eth0_name, &eth0_bootp_data)) {#ifdef CYGHWR_NET_DRIVER_ETH0_BOOTP_SHOW        show_bootp(eth0_name, &eth0_bootp_data);#endif    } else {        //diag_printf("BOOTP failed on eth0\n");        eth0_up = false;    }#elif defined(CYGHWR_NET_DRIVER_ETH0_ADDRS_IP)    eth0_up = true;	if(flag != INIT_LAN_ONLY)	{    if(mib_version != DHCP_MIB_VERSION )        build_bootp_record(&eth0_bootp_data,                       string(CYGHWR_NET_DRIVER_ETH0_ADDRS_IP),                       string(CYGHWR_NET_DRIVER_ETH0_ADDRS_NETMASK),                       string(CYGHWR_NET_DRIVER_ETH0_ADDRS_BROADCAST),                       0/*string(CYGHWR_NET_DRIVER_ETH0_ADDRS_IP)*/,                       0/*string(CYGHWR_NET_DRIVER_ETH0_ADDRS_IP)*/);    else        dhcp_build_bootp(&eth0_bootp_data,                          IPADDR,                          SUBNETMASK,                          GWYADDR,                          0);    show_bootp(eth0_name, &eth0_bootp_data);	}#endif#endif#ifdef CYGHWR_NET_DRIVER_ETH1#ifdef CYGHWR_NET_DRIVER_ETH1_BOOTP// Perform a complete initialization, using BOOTP/DHCP    eth1_up = true;    if (do_bootp(eth1_name, &eth1_bootp_data)) {#ifdef CYGHWR_NET_DRIVER_ETH1_BOOTP_SHOW        show_bootp(eth1_name, &eth1_bootp_data);#endif    } else {        //diag_printf("BOOTP failed on eth1\n");        eth1_up = false;    }#elif defined(CYGHWR_NET_DRIVER_ETH1_ADDRS_IP)    eth1_up = true;	if(flag != INIT_WAN_ONLY)	{    if(mib_version != DHCP_MIB_VERSION )    {        build_bootp_record(&eth1_bootp_data,                       string(CYGHWR_NET_DRIVER_ETH1_ADDRS_IP),                       string(CYGHWR_NET_DRIVER_ETH1_ADDRS_NETMASK),                       string(CYGHWR_NET_DRIVER_ETH1_ADDRS_BROADCAST),                       0/*string(CYGHWR_NET_DRIVER_ETH1_ADDRS_GATEWAY)*/,                       0/*string(CYGHWR_NET_DRIVER_ETH1_ADDRS_SERVER)*/);        mib_IP_LAN.IPAddr   =  inet_addr(string(CYGHWR_NET_DRIVER_ETH1_ADDRS_IP));        mib_IP_LAN.IPAddr   =  htonl(mib_IP_LAN.IPAddr);        mib_IP_LAN.SubnetMask = inet_addr(string(CYGHWR_NET_DRIVER_ETH1_ADDRS_NETMASK));        mib_IP_LAN.SubnetMask = htonl(mib_IP_LAN.SubnetMask);    }    else	{		if(mib_IP_LAN.IPAddr == 0)		{        	mib_IP_LAN.IPAddr   =  inet_addr(string(CYGHWR_NET_DRIVER_ETH1_ADDRS_IP));        	mib_IP_LAN.IPAddr   =  htonl(mib_IP_LAN.IPAddr);		}		if(mib_IP_LAN.SubnetMask == 0)		{        	mib_IP_LAN.SubnetMask = inet_addr(string(CYGHWR_NET_DRIVER_ETH1_ADDRS_NETMASK));        	mib_IP_LAN.SubnetMask = htonl(mib_IP_LAN.SubnetMask);		}        dhcp_build_bootp(&eth1_bootp_data,                           mib_IP_LAN.IPAddr,                           mib_IP_LAN.SubnetMask,                          0,                          0);    }    show_bootp(eth1_name, &eth1_bootp_data);	}#endif#endif#ifdef CYGHWR_NET_DRIVER_ETH0#ifndef CYGHWR_NET_DRIVER_ETH0_MANUAL    if (eth0_up) {        if (!init_net(eth0_name, &eth0_bootp_data)) {            //diag_printf("Network initialization failed for eth0\n");            eth0_up = false;        }    }#endif#endif#ifdef CYGHWR_NET_DRIVER_ETH1#ifndef CYGHWR_NET_DRIVER_ETH1_MANUAL    if (eth1_up) {        if (!init_net(eth1_name, &eth1_bootp_data)) {            //diag_printf("Network initialization failed for eth1\n");            eth1_up = false;        }    }#endif#endif}#define DHCP_FIX 1void update_IP_Info(void){    struct bootp *bp;    unsigned char *op, *ap = 0;    struct in_addr addr[32];    unsigned char name[128];    int i, len;    unsigned long tmpaddr;#ifdef DHCP_FIX    unsigned long dnsServer = 0, defaultGW =0 ;#endif#ifdef CYGDBG_NET_DHCP_CHATTER     diag_printf("update_IP_Info\n");#endif    bp = &eth0_bootp_data;    IPADDR = inet_address(eth0_bootp_data.bp_yiaddr.s_addr);    GWYADDR = inet_address(eth0_bootp_data.bp_giaddr.s_addr);#ifdef CYGDBG_NET_DHCP_CHATTER     diag_printf("update_IP_Info: set ip %x\n", mib_DHCP_p->IPAddr);#endif    if (bp->bp_vend[0])    {        op = &bp->bp_vend[4];        while (*op != TAG_END)        {            switch (*op)            {            case TAG_SUBNET_MASK:                ap = (unsigned char *) & tmpaddr;                len = *(op + 1);                for (i = 0; i < len; i++)                {                    *ap++ = *(op + i + 2);                }                while (len > 0)                {                    len -= sizeof(struct in_addr);                    ap += sizeof(struct in_addr);                }                SUBNETMASK = inet_address(tmpaddr);                break;            case TAG_GATEWAY:#ifdef DHCP_FIX                defaultGW = 1;#endif                ap = (unsigned char *) & tmpaddr;                len = *(op + 1);                for (i = 0; i < len; i++)                {                    *ap++ = *(op + i + 2);                }                while (len > 0)                {                    len -= sizeof(struct in_addr);                    ap += sizeof(struct in_addr);                }                GWYADDR = inet_address(tmpaddr);                break;            case TAG_IP_BROADCAST:                ap = (unsigned char *) & addr[0];                len = *(op + 1);                for (i = 0; i < len; i++)                {                    *ap++ = *(op + i + 2);                }                if (*op == TAG_SUBNET_MASK)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美va亚洲va在线观看蝴蝶网| 日韩理论片网站| 国产精品久99| 蜜臀av国产精品久久久久| 色综合久久综合网| 曰韩精品一区二区| 极品少妇一区二区三区精品视频| 91亚洲国产成人精品一区二区三| 亚洲精品在线一区二区| 亚洲 欧美综合在线网络| bt欧美亚洲午夜电影天堂| 日韩欧美电影一二三| 日韩在线一二三区| 欧日韩精品视频| 亚洲欧洲精品一区二区三区| 九九国产精品视频| 欧美一区中文字幕| 五月天国产精品| 欧美午夜电影网| 国产一区二区导航在线播放| 精品视频一区三区九区| 亚洲欧洲综合另类在线| 成人精品高清在线| 亚洲国产成人自拍| 成人午夜电影久久影院| 精品国产乱码久久久久久牛牛| 天堂va蜜桃一区二区三区| 色激情天天射综合网| 国产精品毛片a∨一区二区三区| 欧美三级资源在线| 午夜久久久久久电影| 久久精品免费在线观看| 亚洲精品在线观看网站| www.日韩在线| 日韩电影一二三区| 欧美一区二区三区精品| 国产成人免费网站| 亚洲最大色网站| 日韩一区在线看| 中文字幕一区二区三中文字幕| 日韩一区二区在线看片| 欧美丰满一区二区免费视频| va亚洲va日韩不卡在线观看| 麻豆精品蜜桃视频网站| 国产精品久久久久久一区二区三区| 中文字幕精品一区二区三区精品| 欧美电影免费观看高清完整版在线| 欧美一区二区三区系列电影| 老司机午夜精品| 欧美激情一区二区| 国产91在线观看| 欧美tickling网站挠脚心| 美女网站视频久久| 欧美极品xxx| 国产日韩欧美一区二区三区乱码| 日韩欧美一二三四区| 精品成人a区在线观看| 国产精品伦一区二区三级视频| 日韩毛片一二三区| 国产成人午夜精品影院观看视频| 午夜精品福利久久久| 国产乱码字幕精品高清av| 欧美成人乱码一区二区三区| 国产精品网站在线| 一本色道亚洲精品aⅴ| 亚洲二区视频在线| 精品美女一区二区| 日韩一级视频免费观看在线| 国产91对白在线观看九色| 中文字幕亚洲一区二区av在线 | 大白屁股一区二区视频| 日韩视频一区二区在线观看| 色成人在线视频| 亚洲自拍偷拍网站| 欧美精品一区二区三区蜜桃| 99国产欧美另类久久久精品| 亚洲成在线观看| 国产精品第一页第二页第三页| 在线不卡中文字幕播放| 国产suv精品一区二区6| 日本中文字幕不卡| 亚洲视频1区2区| 亚洲成a人片在线观看中文| 久久综合久久鬼色中文字| 91久久精品一区二区| 国产精品18久久久久久vr | 在线免费观看日本欧美| 国产一区二区三区四区五区美女| 亚洲一区二区三区国产| 国产精品视频yy9299一区| 在线不卡免费欧美| 一本一本大道香蕉久在线精品 | 免费国产亚洲视频| 一区二区三区四区不卡在线| 国产日本亚洲高清| 欧美va日韩va| 日韩精品一区二区三区中文精品| 欧美在线色视频| av爱爱亚洲一区| 成人午夜精品一区二区三区| 久久99精品久久只有精品| 欧美性一区二区| 蓝色福利精品导航| 日本一区二区三区在线观看| 偷拍亚洲欧洲综合| 一区二区在线观看不卡| 精品国产一区二区三区忘忧草 | 91精品久久久久久蜜臀| gogogo免费视频观看亚洲一| 国产成人丝袜美腿| 国产精品伊人色| 老司机免费视频一区二区| 青青草精品视频| 午夜电影一区二区三区| 91日韩精品一区| 丰满少妇久久久久久久| 国内成+人亚洲+欧美+综合在线 | 一区二区三区四区不卡在线 | 久久99精品一区二区三区| 性做久久久久久| 日韩精品高清不卡| 成人免费av资源| 91麻豆国产在线观看| 色婷婷av一区二区三区软件| 欧日韩精品视频| 91精品国产一区二区三区| 日韩欧美激情四射| 久久午夜国产精品| 国产精品伦理在线| 亚洲一卡二卡三卡四卡五卡| 亚洲午夜在线视频| 色999日韩国产欧美一区二区| av爱爱亚洲一区| 精品视频999| 日韩精品一区二区三区蜜臀| 久久久.com| 亚洲天堂av一区| 日韩精品欧美精品| 国产精品小仙女| 色悠悠亚洲一区二区| 67194成人在线观看| 久久日韩粉嫩一区二区三区| 中文无字幕一区二区三区| 亚洲免费在线看| 色天天综合久久久久综合片| 欧美色图片你懂的| 久久夜色精品国产噜噜av| 国产精品九色蝌蚪自拍| 日韩专区在线视频| 懂色av中文一区二区三区| 欧美色窝79yyyycom| 国产亚洲制服色| 亚洲福中文字幕伊人影院| 国产精品亚洲а∨天堂免在线| 欧美午夜一区二区三区免费大片| 欧美一级二级在线观看| 国产主播一区二区三区| 91丨porny丨国产| 精品理论电影在线| 亚洲午夜私人影院| 国产福利一区二区| 欧美久久一区二区| 综合久久久久综合| 精品亚洲成a人在线观看| 色老综合老女人久久久| 国产亚洲自拍一区| 日本视频免费一区| 91福利在线免费观看| 日本中文字幕一区二区视频| 北岛玲一区二区三区四区| 日韩欧美黄色影院| 日韩专区在线视频| 欧美亚洲国产一区二区三区| 国产精品素人视频| 精品一区二区三区久久| 欧美裸体一区二区三区| 一区二区三区在线视频免费 | 精品一区二区综合| 国产亚洲精品免费| 狠狠色丁香婷综合久久| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品久久久久久久午夜片| 丝袜美腿亚洲综合| 欧美成人精精品一区二区频| 国产精品电影一区二区| 国产高清在线观看免费不卡| 日韩精品最新网址| 天天综合日日夜夜精品| av激情亚洲男人天堂| 国产日产精品一区| 成人午夜精品一区二区三区| 久久综合久久久久88| 狠狠久久亚洲欧美| 26uuu欧美日本| 国产精品一区二区果冻传媒| 精品国产网站在线观看| 欧美午夜免费电影| 有坂深雪av一区二区精品| 91天堂素人约啪| 亚洲综合视频在线|