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

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

?? udp.c

?? 這是ARM的啟動裝載代碼
?? C
字號:
/************************************************************
 * File name	: Udp.c										*
 * By 			: hugang, hgx2000@mail.china.com			*
 ************************************************************/

#include <string.h>
#include <ctype.h>
#include "Armnet.h"
#include "../inc/44blib.h"

extern NODE locnode;

/********************************************************************************************************
 * Return UDP data length (-1 if no data), 0 if not UDP 												*
 ********************************************************************************************************/
short IsUdp(IPKT *ip, short len)
{
    UDPKT *udp;
    unsigned short sum;
    short dlen=0;
                                        							// Check protocol & minimum length
    if (ip->i.pcol==PUDP && len>=sizeof(UDPHDR))
    {
        udp = (UDPKT *)ip;              							// Do checksum
        sum = CheckUdp(udp, swapl(READ_PACKED(ip->i.sip)), swapl(READ_PACKED(ip->i.dip)), len);
        if (!udp->u.check || sum==0xffff)
        {                               							// If zero or correct..
            SwapUdp(udp);              							// Do byte-swaps
            len -= sizeof(UDPHDR);      							// Subtract header len
            dlen = len>0 ? len : -1;    							// Return -1 if data len=0
        }
    }
    return(dlen);
}


/********************************************************************************************************
 * Make a UDP datagram given the source & destination, data len 										*
 ********************************************************************************************************/
short MakeUdp(ETHERFRAME *efp, NODE *srcep, NODE *destp, unsigned short dlen)
{
    UDPKT *udp;
    short ulen, ilen;

    udp = (UDPKT *)(efp->edata);
    udp->u.sport = srcep->port;          							// Set ports
    udp->u.dport = destp->port;
    udp->u.len = ulen = dlen + sizeof(UDPHDR);
    udp->u.check = 0;
    SwapUdp(udp);                      							// Byte-swap
    ilen = MakeIp(efp, srcep, destp, PUDP, (unsigned short)(ulen));
    udp->u.check = ~CheckUdp(udp, swapl(srcep->ip), swapl(destp->ip), ulen);
    if (udp->u.check == 0)              							// Change sum of 0 to FFFF
        udp->u.check = 0xffff;
    return(ilen);                       							// Return IP length
}


/********************************************************************************************************
 * Return UDP checksum, given UDP (header + data) length.												*
 * The values must be in network byte-order 															*
 ********************************************************************************************************/
unsigned short CheckUdp(UDPKT *udp, unsigned int sip, unsigned int dip, short ulen)
{
    PHDR tph;
    unsigned int sum;

    sum = csum((unsigned char *)&udp->u, (unsigned short)ulen);  	// Checksum UDP segment
    tph.len = swapw((unsigned short)ulen);                			// Make pseudo-header
    tph.srce = sip;
    tph.dest = dip;
    tph.z = 0;
    tph.pcol = udp->i.pcol;
    sum += csum((void *)&tph, sizeof(tph));             					// Checksum pseudo-header
    return((unsigned short)(sum + (sum >> 16)));          			// Return total plus carry
}


/********************************************************************************************************
 * Swap byte order of ints in UDP header 																*
 ********************************************************************************************************/
void SwapUdp(UDPKT *udp)
{
    udp->u.sport = swapw(udp->u.sport);
    udp->u.dport = swapw(udp->u.dport);
    udp->u.len = swapw(udp->u.len);
}


/********************************************************************************************************
 * Get the frame driver type, source port, IP and Ethernet addrs 										*
 ********************************************************************************************************/
void GetUdpSrce(ETHERFRAME *efp, NODE *np)
{
    UDPKT *udp;

    memset(np, 0, sizeof(NODE));        							// Clear unused fields
    GetIpSrce(efp, np);                							// Get dtype, srce IP and Ether addrs
    udp = (UDPKT *)(efp->edata);
    np->port = udp->u.sport;            							// Get source port
}


/********************************************************************************************************
 * Get the frame driver type, destination port, IP and Ethernet addrs 									*
 ********************************************************************************************************/
void GetUdpDest(ETHERFRAME *efp, NODE *np)
{
    UDPKT *udp;

    memset(np, 0, sizeof(NODE));        							// Clear unused fields
    GetIpDest(efp, np);                							// Get dtype, dest IP and Ether addrs
    udp = (UDPKT *)(efp->edata);
    np->port = udp->u.dport;            							// Get dest port
}


/********************************************************************************************************
 * UDP handler 																							*
 ********************************************************************************************************/
void  UdpRcvPacket(ETHERFRAME *efp)
{
	NODE desnode;

	GetUdpDest(efp, &desnode);
	if((desnode.port == TFTPORT) && (desnode.ip == locnode.ip))
	{
		DEBUGF(TFTP_DEBUG,("Get TFPT\n"));
		TftpRcvPacket(efp);
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本人妖一区二区| 一区二区三区欧美日韩| 亚洲高清三级视频| 91精品国产欧美一区二区成人 | 久久久99久久| 国产福利不卡视频| 亚洲精品国产精华液| 777a∨成人精品桃花网| 国产福利91精品| 国产成人综合精品三级| 成人激情免费视频| 日韩av一二三| 久久99这里只有精品| 亚洲精品伦理在线| 一级中文字幕一区二区| 日本va欧美va欧美va精品| 亚洲欧美另类小说视频| 精品国产欧美一区二区| 色婷婷一区二区| 国产成人8x视频一区二区| 免费成人你懂的| 国产一区二区三区免费| 视频一区欧美精品| 亚洲伦在线观看| 天天综合天天综合色| 亚洲综合色丁香婷婷六月图片| 中文字幕国产一区| 久久免费午夜影院| 精品处破学生在线二十三| 国产精品三级av| 精品国产1区二区| 日韩一区日韩二区| 椎名由奈av一区二区三区| 久久免费精品国产久精品久久久久| 国产精品女同一区二区三区| 亚洲狠狠爱一区二区三区| 韩国精品久久久| 久久成人综合网| 91丨porny丨户外露出| 9色porny自拍视频一区二区| 国产精品99久久久久久有的能看| 久久国产精品露脸对白| 一本色道久久综合狠狠躁的推荐| 欧美一区二区三区四区在线观看| 中文字幕亚洲在| 美美哒免费高清在线观看视频一区二区 | 亚洲欧美偷拍卡通变态| 美腿丝袜亚洲一区| 欧美午夜一区二区三区| 欧美性色综合网| 久久久91精品国产一区二区三区| 一区二区激情小说| 粉嫩aⅴ一区二区三区四区| 91精品国产综合久久久蜜臀图片| 最近日韩中文字幕| 国产传媒日韩欧美成人| 精品毛片乱码1区2区3区| 精品国产a毛片| 婷婷成人激情在线网| 91视频在线看| 中文字幕日韩欧美一区二区三区| 国产福利电影一区二区三区| 欧美mv日韩mv| 奇米一区二区三区av| 精品1区2区3区| 精品毛片乱码1区2区3区| 丝袜诱惑亚洲看片| 欧美色视频在线观看| 亚洲精品国产品国语在线app| 99精品久久只有精品| 欧美探花视频资源| 一区二区欧美在线观看| 欧美亚洲日本国产| 亚洲综合男人的天堂| 欧美手机在线视频| 亚洲成人免费影院| 高清国产一区二区| 欧美国产精品专区| 99这里都是精品| 亚洲欧洲日产国产综合网| 91在线一区二区三区| 亚洲美女屁股眼交| 欧美色大人视频| 蜜臀a∨国产成人精品| 精品国产一区久久| 国产成a人无v码亚洲福利| 亚洲欧美视频在线观看视频| 91免费小视频| 亚洲午夜影视影院在线观看| 欧美日韩一区二区三区视频| 亚洲亚洲精品在线观看| 日韩欧美视频一区| 日韩美女久久久| 欧美日韩免费电影| 国产精品福利影院| 国产在线精品一区二区| 国产欧美一区二区三区在线老狼| 日韩在线一二三区| 久久久亚洲国产美女国产盗摄| 风流少妇一区二区| 亚洲国产一区视频| 久久人人超碰精品| 日本伦理一区二区| 成人欧美一区二区三区1314| 欧美性受xxxx黑人xyx性爽| 日本在线不卡视频| 欧美国产成人在线| 欧美日韩精品一区二区三区四区| 激情六月婷婷久久| 一区二区三区加勒比av| 精品区一区二区| 日本精品一区二区三区四区的功能| 日韩va欧美va亚洲va久久| 国产女人18毛片水真多成人如厕| 欧洲在线/亚洲| 亚洲高清不卡在线| 中文乱码免费一区二区| 在线不卡免费av| 麻豆精品久久久| 樱桃视频在线观看一区| 国产日产欧美一区二区三区| 欧美三级电影精品| 成人黄色电影在线| 狠狠色丁香久久婷婷综| 亚洲国产精品久久久久秋霞影院| 久久久精品国产免大香伊| 欧美日韩国产影片| 日本韩国精品一区二区在线观看| 国内成人自拍视频| 日韩av一二三| 亚洲第一精品在线| 亚洲欧美精品午睡沙发| 国产亚洲精品精华液| 日韩精品一区二区在线观看| 欧美吞精做爰啪啪高潮| 91丨九色丨国产丨porny| 粉嫩嫩av羞羞动漫久久久| 精品一区二区三区免费| 国产日韩欧美一区二区三区乱码| 日韩亚洲欧美一区二区三区| 国产成人一级电影| 精品一区二区免费在线观看| 青娱乐精品视频在线| 亚洲一区在线观看视频| 亚洲色图一区二区| 136国产福利精品导航| 国产精品理论片| 国产精品久久久久久福利一牛影视| 2017欧美狠狠色| 在线亚洲高清视频| 一本大道久久a久久精品综合| 99久久99久久精品国产片果冻 | www.久久精品| 91在线国内视频| 色婷婷综合久久久久中文一区二区| 99久久精品国产导航| 99久久国产免费看| 91蜜桃传媒精品久久久一区二区| 91免费视频网| 欧美性淫爽ww久久久久无| 欧美高清视频不卡网| 欧美一区二区视频在线观看2020 | 久久99久久99| 国产精品伊人色| fc2成人免费人成在线观看播放 | 日韩av高清在线观看| 免费高清在线视频一区·| 精品中文字幕一区二区小辣椒| 国内精品第一页| 波多野结衣精品在线| 91久久国产最好的精华液| 欧美制服丝袜第一页| 日韩一区和二区| 国产日韩三级在线| 亚洲美女屁股眼交| 日韩av一区二区三区四区| 国产一区二区美女| 91年精品国产| 日韩色在线观看| 国产精品日韩精品欧美在线| 夜夜亚洲天天久久| 久久99精品久久久久| 成人黄色777网| 欧美视频完全免费看| 久久夜色精品一区| 亚洲精品免费视频| 国产综合色产在线精品| 91啪九色porn原创视频在线观看| 91精品国产手机| 亚洲欧美怡红院| 精品中文av资源站在线观看| 91丝袜高跟美女视频| 日韩你懂的在线观看| 亚洲天堂av一区| 黄页视频在线91| 欧美天堂一区二区三区| 国产精品人妖ts系列视频| 日韩精品一级二级| 色一区在线观看| 国产日本一区二区|