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

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

?? ip_input.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
	pMbufTmp = pMbPktFrag->m_nextpkt; 	pMbPktFrag->m_nextpkt = NULL ; 	m_cat (pMbuf, pMbPktFrag); 	/* concatenate the fragment */	}    pIpHdrFrag = mtod(pMbuf, struct ipasfrag *);     pIpHdrFrag->ip_len = len; 		/* length of the ip packet */    if (len > 0xffff - (pIpHdrFrag->ip_hl << 2))  /* ping of death */        goto dropFrag;                            /* drop entire chain */    pIpHdrFrag->ipf_mff &= ~1;    remque(pIpFragQueue);    (void) m_free (pIpFragQueue->pMbufHdr);     /* some debugging cruft by sklower, below, will go away soon */    if (pMbuf->m_flags & M_PKTHDR)	{ /* XXX this should be done elsewhere */	len = 0; 	for (pMbufTmp = pMbuf; pMbufTmp; pMbufTmp = pMbufTmp->m_next)	    len += pMbufTmp->m_len;	pMbuf->m_pkthdr.len = len;	}    return (pMbuf);			/* return the assembled packet */    dropFrag:#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */    WV_NET_ADDRIN_EVENT_1 (NET_CORE_EVENT, WV_NET_WARNING, 8, 13,                           pIpHdr->ip_src.s_addr, pIpHdr->ip_dst.s_addr,                           WV_NETEVENT_IPIN_FRAGDROP, WV_NET_RECV, pIpHdrFrag)#endif  /* INCLUDE_WVNET */#endif#ifdef VIRTUAL_STACK    _ipstat.ips_fragdropped++;#else    ipstat.ips_fragdropped++;#endif /* VIRTUAL_STACK */    m_freem (pMbuf);			/* free the fragment */    return (NULL);    }/* * Free a fragment reassembly header and all * associated datagrams. */voidip_freef(fp)	struct ipq *fp;{	struct mbuf **  pPtrMbuf; 	struct mbuf *  pMbuf;#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_INFO event */    WV_NET_ADDRIN_MARKER_2 (NET_AUX_EVENT, WV_NET_INFO, 7, 17,                            fp->ipq_src.s_addr, fp->ipq_dst.s_addr,                            WV_NETEVENT_IPFRAGFREE_START,                            fp->ipq_src.s_addr, fp->ipq_dst.s_addr)#endif  /* INCLUDE_WVNET */#endif	/* free all fragments */	pPtrMbuf = &(fp->pMbufPkt); 	while (*pPtrMbuf)	    {	    pMbuf = (*pPtrMbuf)->m_nextpkt; 	    m_freem (*pPtrMbuf); 	    *pPtrMbuf = pMbuf; 	    }	remque(fp);	(void) m_free(fp->pMbufHdr);}n_timeiptime(){	u_long t;	/* t is time in milliseconds (i hope) */	t = ((int) tickGet () * 1000) / sysClkRateGet ();	return (htonl(t));}/* * IP timer processing; * if a timer expires on a reassembly * queue, discard it. */voidip_slowtimo(){	register struct ipq *fp;	int s = splnet();#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_INFO event */    WV_NET_MARKER_0 (NET_AUX_EVENT, WV_NET_INFO, 8, 18,                      WV_NETEVENT_IPTIMER_FRAGFREE)#endif  /* INCLUDE_WVNET */#endif#ifdef VIRTUAL_STACK	fp = _ipq.next;#else	fp = ipq.next;#endif	if (fp == 0) {		splx(s);		return;	}#ifdef VIRTUAL_STACK	while (fp != &_ipq) {#else	while (fp != &ipq) {#endif		--fp->ipq_ttl;		fp = fp->next;		if (fp->prev->ipq_ttl == 0) {#ifdef VIRTUAL_STACK			_ipstat.ips_fragtimeout++;#else			ipstat.ips_fragtimeout++;#endif /* VIRTUAL_STACK */			ip_freef(fp->prev);		}	}	splx(s);	return;}/* * Drain off all datagram fragments and excess (unused) route entries. */voidip_drain(){#ifdef VIRTUAL_STACK	while (_ipq.next != &_ipq) {		_ipstat.ips_fragdropped++;		ip_freef(_ipq.next);	}#else	while (ipq.next != &ipq) {		ipstat.ips_fragdropped++;		ip_freef(ipq.next);	}#endif /* VIRTUAL_STACK */        routeDrain();	return;}/* * Do option processing on a datagram, * possibly discarding it if bad options are encountered, * or forwarding it if source-routed. * Returns 1 if packet has been forwarded/freed, * 0 if the packet should be processed further. */intip_dooptions(m)	struct mbuf *m;{	register struct ip *ip = mtod(m, struct ip *);	register u_char *cp;	register struct ip_timestamp *ipt;	register struct in_ifaddr *ia;	int opt, optlen, cnt, off, code, type = ICMP_PARAMPROB, forward = 0;	struct in_addr *sin, dst;	n_time ntime;	dst = ip->ip_dst;	cp = (u_char *)(ip + 1);	cnt = (ip->ip_hl << 2) - sizeof (struct ip);	for (; cnt > 0; cnt -= optlen, cp += optlen) {		opt = cp[IPOPT_OPTVAL];		if (opt == IPOPT_EOL)			break;		if (opt == IPOPT_NOP)			optlen = 1;		else {			optlen = cp[IPOPT_OLEN];			if (optlen <= 0 || optlen > cnt) {				code = &cp[IPOPT_OLEN] - (u_char *)ip;				goto bad;			}		}		switch (opt) {		default:			break;		/*		 * Source routing with record.		 * Find interface with current destination address.		 * If none on this machine then drop if strictly routed,		 * or do nothing if loosely routed.		 * Record interface address and bring up next address		 * component.  If strictly routed make sure next		 * address is on directly accessible net.		 */		case IPOPT_LSRR:		case IPOPT_SSRR:			if ((off = cp[IPOPT_OFFSET]) < IPOPT_MINOFF) {				code = &cp[IPOPT_OFFSET] - (u_char *)ip;				goto bad;			}			input_ipaddr.sin_addr = ip->ip_dst;			TOS_SET (&input_ipaddr, ip->ip_tos);  /* tos routing */			ia = (struct in_ifaddr *)				ifa_ifwithaddr((struct sockaddr *)&input_ipaddr);			if (ia == 0) {				if (opt == IPOPT_SSRR) {					type = ICMP_UNREACH;					code = ICMP_UNREACH_SRCFAIL;					goto bad;				}				/*				 * Loose routing, and not at next destination				 * yet; nothing to do except forward.				 */				break;			}			off--;			/* 0 origin */			if (off > optlen - sizeof(struct in_addr)) {				/*				 * End of source route.  Should be for us.				 */#ifdef SRCRT				save_rte(cp, ip->ip_src);#endif /* SRCRT */				break;			}			/*			 * locate outgoing interface			 */			bcopy((caddr_t)(cp + off), (caddr_t)&input_ipaddr.sin_addr,			    sizeof(input_ipaddr.sin_addr));			if (opt == IPOPT_SSRR) {#define	INA	struct in_ifaddr *#define	SA	struct sockaddr *			    if ((ia = (INA)ifa_ifwithdstaddr((SA)&input_ipaddr)) == 0)				ia = (INA)ifa_ifwithnet((SA)&input_ipaddr);			} else				ia = ip_rtaddr(input_ipaddr.sin_addr);			if (ia == 0) {				type = ICMP_UNREACH;				code = ICMP_UNREACH_SRCFAIL;				goto bad;			}			ip->ip_dst = input_ipaddr.sin_addr;			bcopy((caddr_t)&(IA_SIN(ia)->sin_addr),			    (caddr_t)(cp + off), sizeof(struct in_addr));			cp[IPOPT_OFFSET] += sizeof(struct in_addr);			/*			 * Let ip_intr's mcast routing check handle mcast pkts			 */			forward = !IN_MULTICAST(ntohl(ip->ip_dst.s_addr));			break;		case IPOPT_RR:			if ((off = cp[IPOPT_OFFSET]) < IPOPT_MINOFF) {				code = &cp[IPOPT_OFFSET] - (u_char *)ip;				goto bad;			}			/*			 * If no space remains, ignore.			 */			off--;			/* 0 origin */			if (off > optlen - sizeof(struct in_addr))				break;			bcopy((caddr_t)(&ip->ip_dst), (caddr_t)&input_ipaddr.sin_addr,			    sizeof(input_ipaddr.sin_addr));			/*			 * locate outgoing interface; if we're the destination,			 * use the incoming interface (should be same).			 */			if ((ia = (INA)ifa_ifwithaddr((SA)&input_ipaddr)) == 0 &&			    (ia = ip_rtaddr(input_ipaddr.sin_addr)) == 0) {				type = ICMP_UNREACH;				code = ICMP_UNREACH_HOST;				goto bad;			}			bcopy((caddr_t)&(IA_SIN(ia)->sin_addr),			    (caddr_t)(cp + off), sizeof(struct in_addr));			cp[IPOPT_OFFSET] += sizeof(struct in_addr);			break;		case IPOPT_TS:			code = cp - (u_char *)ip;			ipt = (struct ip_timestamp *)cp;			if (ipt->ipt_len < 5)				goto bad;			if (ipt->ipt_ptr > ipt->ipt_len - sizeof (long)) {				if (++ipt->ipt_oflw == 0)					goto bad;				break;			}			sin = (struct in_addr *)(cp + ipt->ipt_ptr - 1);			switch (ipt->ipt_flg) {			case IPOPT_TS_TSONLY:				break;			case IPOPT_TS_TSANDADDR:				if (ipt->ipt_ptr + sizeof(n_time) +				    sizeof(struct in_addr) > ipt->ipt_len)					goto bad;				input_ipaddr.sin_addr = dst;				ia = (INA)ifaof_ifpforaddr((SA)&input_ipaddr,							    m->m_pkthdr.rcvif);				if (ia == 0)					continue;				bcopy((caddr_t)&IA_SIN(ia)->sin_addr,				    (caddr_t)sin, sizeof(struct in_addr));				ipt->ipt_ptr += sizeof(struct in_addr);				break;			case IPOPT_TS_PRESPEC:				if (ipt->ipt_ptr + sizeof(n_time) +				    sizeof(struct in_addr) > ipt->ipt_len)					goto bad;				bcopy((caddr_t)sin, (caddr_t)&input_ipaddr.sin_addr,				    sizeof(struct in_addr));				if (ifa_ifwithaddr((SA)&input_ipaddr) == 0)					continue;				ipt->ipt_ptr += sizeof(struct in_addr);				break;			default:				goto bad;			}			ntime = iptime();			bcopy((caddr_t)&ntime, (caddr_t)cp + ipt->ipt_ptr - 1,			    sizeof(n_time));			ipt->ipt_ptr += sizeof(n_time);		}	}	if (forward) {		ip_forward(m, 1);		return (1);	}	return (0);bad:	ip->ip_len -= ip->ip_hl << 2;   /* XXX icmp_error adds in hdr length */	if (_icmpErrorHook != NULL)	    (*_icmpErrorHook) (m, type, code, 0, 0); #ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_CRITICAL event */        WV_NET_EVENT_2 (NET_CORE_EVENT, WV_NET_CRITICAL, 18, 9,                         WV_NETEVENT_IPIN_BADOPT, WV_NET_RECV, type, code)#endif  /* INCLUDE_WVNET */#endif#ifdef VIRTUAL_STACK	_ipstat.ips_badoptions++;#else	ipstat.ips_badoptions++;#endif /* VIRTUAL_STACK */	return (1);}/* * Given address of next destination (final or next hop), * return internet address info of interface to be used to get there. */struct in_ifaddr *ip_rtaddr(dst)	 struct in_addr dst;{	register struct sockaddr_in *sin;	sin = (struct sockaddr_in *) &ipforward_rt.ro_dst;	if (ipforward_rt.ro_rt == 0 ||            (ipforward_rt.ro_rt->rt_flags & RTF_UP) == 0 ||            dst.s_addr != sin->sin_addr.s_addr) {		if (ipforward_rt.ro_rt) {			RTFREE(ipforward_rt.ro_rt);			ipforward_rt.ro_rt = 0;		}		sin->sin_family = AF_INET;		sin->sin_len = sizeof(*sin);		sin->sin_addr = dst;		ipforward_rt.ro_rt = rtalloc2 (&ipforward_rt.ro_dst);	}	if (ipforward_rt.ro_rt == 0)		return ((struct in_ifaddr *)0);	return ((struct in_ifaddr *) ipforward_rt.ro_rt->rt_ifa);}#ifdef SRCRT/* * Save incoming source route for use in replies, * to be picked up later by ip_srcroute if the receiver is interested. */voidsave_rte(option, dst)	u_char *option;	struct in_addr dst;{	unsigned olen;	olen = option[IPOPT_OLEN];#ifdef DIAGNOSTIC	if (ipprintfs)		printf("save_rte: olen %d\n", olen);#endif	if (olen > sizeof(ip_srcrt) - (1 + sizeof(dst)))		return;	bcopy((caddr_t)option, (caddr_t)ip_srcrt.srcopt, olen);	ip_nhops = (olen - IPOPT_OFFSET - 1) / sizeof(struct in_addr);	ip_srcrt.dst = dst;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品中文字幕在线观看| 国产精品福利一区二区| 欧美综合天天夜夜久久| 色噜噜狠狠色综合欧洲selulu| av毛片久久久久**hd| 色av一区二区| 精品欧美一区二区三区精品久久| 久久综合色播五月| 亚洲人成小说网站色在线| 亚洲1区2区3区视频| 国产激情一区二区三区桃花岛亚洲| 国产精品一区专区| 欧美日韩一区二区在线观看视频 | 亚洲乱码中文字幕| 日韩精品一二三四| 91网站黄www| 日本一区二区三区电影| 一区二区免费视频| 成人深夜福利app| 欧美精品在线观看播放| 一色屋精品亚洲香蕉网站| 精品一区二区久久| 欧美精品九九99久久| 国产亚洲精品bt天堂精选| 舔着乳尖日韩一区| 99re视频精品| **欧美大码日韩| 国产电影精品久久禁18| 精品国产不卡一区二区三区| 亚洲成人久久影院| 91麻豆.com| 亚洲综合色噜噜狠狠| 99精品国产视频| 亚洲少妇屁股交4| 色婷婷亚洲精品| 亚洲综合激情网| 777午夜精品免费视频| 亚洲综合色视频| 欧美亚洲自拍偷拍| 麻豆精品新av中文字幕| 欧美一二三四在线| 国产在线精品一区二区不卡了| 8x8x8国产精品| 国产一区视频在线看| 精品国产乱子伦一区| 成人免费毛片a| 亚洲国产婷婷综合在线精品| 欧美精品乱码久久久久久| 蜜桃av一区二区三区| 国产精品乱码久久久久久 | 欧美第一区第二区| 成人小视频免费观看| 一卡二卡三卡日韩欧美| 欧美精品一区二区三区四区 | 国产精品高潮呻吟| 欧美人妖巨大在线| 国产成人亚洲综合a∨猫咪| 亚洲一线二线三线久久久| 欧美不卡激情三级在线观看| 国产精品一二三区在线| 亚洲一区二区三区激情| 中文字幕欧美国产| 91精品国产91久久综合桃花| 高清国产一区二区三区| 免费久久精品视频| 亚洲高清视频的网址| 国产精品久线观看视频| 精品免费国产一区二区三区四区| 91久久国产最好的精华液| 国产精品自在在线| 国产一区二区三区视频在线播放| 亚洲妇女屁股眼交7| 中文字幕永久在线不卡| 欧美成人官网二区| 欧美mv日韩mv| 精品视频一区 二区 三区| 9人人澡人人爽人人精品| 国产suv一区二区三区88区| 极品少妇xxxx精品少妇偷拍| 国产一区二区91| 日本vs亚洲vs韩国一区三区| 亚洲狠狠爱一区二区三区| 亚洲激情六月丁香| 午夜精彩视频在线观看不卡| 亚洲国产精品久久久久婷婷884| 亚洲综合久久av| 日日夜夜精品视频天天综合网| 午夜精品福利在线| 日本aⅴ精品一区二区三区| 日本伊人色综合网| 精品一区二区三区蜜桃| 国产成人在线色| 91福利区一区二区三区| 制服丝袜亚洲播放| 国产欧美1区2区3区| 一区二区三区精品在线| 精品一区二区三区免费播放| 亚洲一区免费在线观看| 亚洲国产成人自拍| 成人免费观看男女羞羞视频| 成人精品一区二区三区四区| 一本久久a久久精品亚洲| 成人午夜av电影| 国产综合色精品一区二区三区| 午夜精品一区二区三区电影天堂 | 欧美群妇大交群中文字幕| 成人免费视频一区二区| 亚洲图片另类小说| 日韩欧美一二三| 欧美视频一区二区三区四区 | 国产98色在线|日韩| 久久无码av三级| 麻豆成人av在线| 久久精品免费观看| 国产精品一区二区久激情瑜伽| 美腿丝袜亚洲综合| 国产一本一道久久香蕉| 日韩激情在线观看| 成人sese在线| 91精品国产综合久久精品性色| 欧美精品一区二区三| 欧美va亚洲va| 丝袜亚洲另类丝袜在线| 国产精品亚洲一区二区三区在线| 乱一区二区av| 欧美性视频一区二区三区| 国产精品福利一区二区三区| 另类综合日韩欧美亚洲| 欧美日韩综合不卡| 中文字幕日韩av资源站| 精一区二区三区| 91麻豆精品国产91久久久更新时间| 国产网站一区二区| 国产在线不卡视频| 欧美激情综合在线| 美女在线观看视频一区二区| 欧美不卡一区二区| 韩国精品免费视频| 国产色爱av资源综合区| 高清不卡一区二区在线| 亚洲精品免费播放| 日韩一区二区三| 成人高清视频在线观看| 中文字幕色av一区二区三区| 97精品视频在线观看自产线路二| 亚洲免费观看在线视频| 色妞www精品视频| 一区二区三区av电影| 久久综合狠狠综合久久激情| 色综合久久九月婷婷色综合| 亚洲成人自拍网| 国产亚洲精久久久久久| 91网址在线看| 不卡一区中文字幕| 国产米奇在线777精品观看| 伊人色综合久久天天人手人婷| 日韩精品电影在线| 亚洲欧洲日韩综合一区二区| 国产精品欧美久久久久无广告| 国产欧美一区二区精品仙草咪| 国产亚洲精品超碰| 国产精品三级电影| 亚洲男帅同性gay1069| 亚洲三级久久久| 亚洲国产精品久久不卡毛片| 免费成人av在线| 国产成人鲁色资源国产91色综| 波多野结衣精品在线| 欧美性猛交xxxxxx富婆| 欧美不卡一区二区三区| 欧美日韩国产一二三| 欧美aaaaa成人免费观看视频| 亚洲欧洲精品天堂一级| 精品国产制服丝袜高跟| 日韩欧美精品三级| 91精品国产免费| 2021久久国产精品不只是精品| 欧美日韩精品三区| 欧美一级生活片| 精品国产乱码久久| 日本一区二区三区免费乱视频 | 国产精品情趣视频| 国产精品欧美极品| 亚洲乱码国产乱码精品精小说| 国产精品三级久久久久三级| 一区二区三区成人| 久久国产精品色婷婷| 成人动漫一区二区在线| 欧美人妇做爰xxxⅹ性高电影| 欧美顶级少妇做爰| 国产亚洲一区二区三区| 一区二区视频免费在线观看| 日韩不卡一二三区| 成人免费高清视频| 欧美日韩一级二级| 国产精品欧美精品| 免费在线观看一区| 在线视频你懂得一区二区三区| 精品国产一区二区国模嫣然| 一区二区三区欧美在线观看|