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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? udp_usrreq.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
                    {                    /*                     * No matching pcb found; discard datagram.                     * (No need to send an ICMP Port Unreachable                     * for a broadcast or multicast datgram.)                     */#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_WARNING, 18, 8,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_SEARCHFAIL, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   ip->ip_dst.s_addr, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif                    udpstat.udps_noportbcast++;                    goto bad;                    }#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_INFO event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_INFO, 56, 18,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_PCBGOOD, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   last->so_fd, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif		if (sbappendaddr(&last->so_rcv, (struct sockaddr *)&udp_in,                                 m, (struct mbuf *)0) == 0)                    {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_1 (NET_CORE_EVENT, WV_NET_WARNING, 17, 7,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_FULLSOCK, WV_NET_RECV,                                   last->so_fd)#endif  /* INCLUDE_WVNET */#endif                    udpstat.udps_fullsock++;                    goto bad;                    }		sorwakeup(last);		return;                }            }        	if (in_broadcast(ip->ip_dst, m->m_pkthdr.rcvif)) {		struct socket *last;		/*		 * Deliver a multicast or broadcast datagram to *all* sockets		 * for which the local and remote addresses and ports match		 * those of the incoming datagram.  This allows more than		 * one process to receive multi/broadcasts on the same port.		 * (This really ought to be done for unicast datagrams as		 * well, but that would cause problems with existing		 * applications that open both address-specific sockets and		 * a wildcard socket listening to the same port -- they would		 * end up receiving duplicates of every unicast datagram.		 * Those applications open the multiple sockets to overcome an		 * inadequacy of the UDP socket interface, but for backwards		 * compatibility we avoid the problem here rather than		 * fixing the interface.  Maybe 4.5BSD will remedy this?)		 */		/*		 * Construct sockaddr format source address.		 */		udp_in.sin_port = uh->uh_sport;		udp_in.sin_addr = ip->ip_src;		m->m_len -= sizeof (struct udpiphdr);		m->m_data += sizeof (struct udpiphdr);		/*		 * Locate pcb(s) for datagram.		 * (Algorithm copied from raw_intr().)		 */		last = NULL;		for (inp = udb.lh_first; inp != NULL;                     inp = inp->inp_list.le_next) {			if (inp->inp_lport != uh->uh_dport)				continue;			if (inp->inp_laddr.s_addr != INADDR_ANY) {				if (inp->inp_laddr.s_addr !=				    ip->ip_dst.s_addr)					continue;			}			if (inp->inp_faddr.s_addr != INADDR_ANY) {				if (inp->inp_faddr.s_addr !=				    ip->ip_src.s_addr ||				    inp->inp_fport != uh->uh_sport)					continue;			}			if (last != NULL) {				struct mbuf *n;				if ((n = m_copy(m, 0, M_COPYALL)) != NULL) {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_INFO event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_INFO, 56, 18,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_PCBGOOD, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   last->so_fd, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif					if (sbappendaddr(&last->so_rcv,						(struct sockaddr *)&udp_in,						n, (struct mbuf *)0) == 0) {						m_freem(n);#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_1 (NET_CORE_EVENT, WV_NET_WARNING, 17, 7,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_FULLSOCK, WV_NET_RECV,                                   last->so_fd)#endif  /* INCLUDE_WVNET */#endif						udpstat.udps_fullsock++;					} else						sorwakeup(last);				}			}			last = inp->inp_socket;			/*			 * Don't look for additional matches if this one does			 * not have either the SO_REUSEPORT or SO_REUSEADDR			 * socket options set.  This heuristic avoids searching			 * through all pcbs in the common case of a non-shared			 * port.  It * assumes that an application will never			 * clear these options after setting them.			 */			if ((last->so_options & (SO_REUSEPORT|SO_REUSEADDR))                            == 0)				break;		}		if (last == NULL) {			/*			 * No matching pcb found; discard datagram.			 * (No need to send an ICMP Port Unreachable			 * for a broadcast or multicast datgram.)			 */#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_WARNING, 18, 8,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_SEARCHFAIL, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   ip->ip_dst.s_addr, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif			udpstat.udps_noportbcast++;			goto bad;		}#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_INFO event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_INFO, 56, 18,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_PCBGOOD, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   last->so_fd, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif		if (sbappendaddr(&last->so_rcv, (struct sockaddr *)&udp_in,		     m, (struct mbuf *)0) == 0) {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_1 (NET_CORE_EVENT, WV_NET_WARNING, 17, 7,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_FULLSOCK, WV_NET_RECV,                                   last->so_fd)#endif  /* INCLUDE_WVNET */#endif			udpstat.udps_fullsock++;			goto bad;		}		sorwakeup(last);		return;	}	/*	 * Locate pcb for datagram. use the cached pcb if it matches.	 */	inp = udp_last_inpcb;        if ((inp != NULL) &&            (inp->inp_lport == uh->uh_dport) &&	    (inp->inp_fport == uh->uh_sport) &&	    (inp->inp_faddr.s_addr == ip->ip_src.s_addr) &&            (inp->inp_laddr.s_addr == ip->ip_dst.s_addr))            {            goto pcbMatchFound;            }        else            {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_VERBOSE event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_VERBOSE, 44, 17,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_CACHEMISS, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   ip->ip_dst.s_addr, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif            udpstat.udpps_pcbcachemiss++;            /*             * Locate pcb for datagram.             */            inp = in_pcblookuphash(&udbinfo, ip->ip_src, uh->uh_sport,                                       ip->ip_dst, uh->uh_dport, 1);            if (inp == NULL)                { /* look up for the wildcard match, hash look up failed */                udpstat.udpps_pcbhashmiss++;                udpstat.udps_noport++;#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_WARNING, 18, 8,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_SEARCHFAIL, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   ip->ip_dst.s_addr, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif                if (m->m_flags & (M_BCAST | M_MCAST))                    {                    udpstat.udps_noportbcast++;                    goto bad;                    }#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_WARNING, 19, 9,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_NOPORT, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   ip->ip_dst.s_addr, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif                *ip = save_ip;                /* bug fix mentioned in Stevens VolII page774,(vinai) */                /* ip->ip_len += iphlen; */                if (_icmpErrorHook != NULL)                    (*_icmpErrorHook) (m, ICMP_UNREACH, ICMP_UNREACH_PORT,                                        0, 0);                return;                }            }        udp_last_inpcb = inp;        pcbMatchFound:#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_INFO event */            WV_NET_PORTIN_EVENT_4 (NET_CORE_EVENT, WV_NET_INFO, 56, 18,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_PCBGOOD, WV_NET_RECV,                                   ip->ip_src.s_addr, uh->uh_sport,                                   inp->inp_socket->so_fd, uh->uh_dport)#endif  /* INCLUDE_WVNET */#endif	/*	 * Construct sockaddr format source address.	 * Stuff source address and datagram in user buffer.	 */	udp_in.sin_port = uh->uh_sport;	udp_in.sin_addr = ip->ip_src;	if (inp->inp_flags & INP_CONTROLOPTS) {		struct mbuf **mp = &opts;		if (inp->inp_flags & INP_RECVDSTADDR) {			*mp = udp_saveopt((caddr_t) &ip->ip_dst,			    sizeof(struct in_addr), IP_RECVDSTADDR);			if (*mp)				mp = &(*mp)->m_next;		}#ifdef notyet		/* options were tossed above */		if (inp->inp_flags & INP_RECVOPTS) {			*mp = udp_saveopt((caddr_t) opts_deleted_above,			    sizeof(struct in_addr), IP_RECVOPTS);			if (*mp)				mp = &(*mp)->m_next;		}		/* ip_srcroute doesn't do what we want here, need to fix */		if (inp->inp_flags & INP_RECVRETOPTS) {			*mp = udp_saveopt((caddr_t) ip_srcroute(),			    sizeof(struct in_addr), IP_RECVRETOPTS);			if (*mp)				mp = &(*mp)->m_next;		}#endif	}	iphlen += sizeof(struct udphdr);	m->m_len -= iphlen;	m->m_pkthdr.len -= iphlen;	m->m_data += iphlen;	if (sbappendaddr(&inp->inp_socket->so_rcv, (struct sockaddr *)&udp_in,	    m, opts) == 0) {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_WARNING event */            WV_NET_PORTIN_EVENT_1 (NET_CORE_EVENT, WV_NET_WARNING, 17, 7,                                   uh->uh_sport, uh->uh_dport,                                   WV_NETEVENT_UDPIN_FULLSOCK, WV_NET_RECV,                                   inp->inp_socket->so_fd)#endif  /* INCLUDE_WVNET */#endif		udpstat.udps_fullsock++;		goto bad;	}	sorwakeup(inp->inp_socket);	return;bad:	m_freem(m);	if (opts)		m_freem(opts);}/* * Create a "control" mbuf containing the specified data * with the specified type for presentation with a datagram. */struct mbuf *udp_saveopt(p, size, type)	caddr_t p;	register int size;	int type;{	register struct cmsghdr *cp;	struct mbuf *m;	if ((m = mBufClGet(M_DONTWAIT, MT_CONTROL, CL_SIZE_128, TRUE)) == NULL)		return ((struct mbuf *) NULL);	cp = (struct cmsghdr *) mtod(m, struct cmsghdr *);	bcopy(p, CMSG_DATA(cp), size);	size += sizeof(*cp);	m->m_len = size;	cp->cmsg_len = size;	cp->cmsg_level = IPPROTO_IP;	cp->cmsg_type = type;	return (m);}/* * Notify a udp user of an asynchronous error; * just wake up so that he can collect error status. */static voidudp_notify(inp, error)	register struct inpcb *inp;	int error;{#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_INFO event */    WV_NET_MARKER_2 (NET_AUX_EVENT, WV_NET_INFO, 48, 12,                     WV_NETEVENT_UDPNOTIFY_START,                     inp->inp_socket->so_fd, error)#endif  /* INCLUDE_WVNET */#endif	inp->inp_socket->so_error = error;	sorwakeup(inp->inp_socket);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
男女激情视频一区| 日韩一级视频免费观看在线| 国产激情一区二区三区四区| 久久精品国产一区二区三 | 国产精品第13页| 久久日韩粉嫩一区二区三区| 欧美不卡一区二区三区四区| 日韩亚洲欧美一区| 日韩精品一区二区三区视频在线观看| 欧美精品黑人性xxxx| 欧美精品欧美精品系列| 欧美日韩中文字幕一区| 欧美日韩一区二区三区在线看| 欧美体内she精视频| 欧美性欧美巨大黑白大战| 欧美三级资源在线| 欧美久久婷婷综合色| 欧美一区二区三区电影| 精品国产伦一区二区三区观看方式| 日韩女优视频免费观看| 久久久综合视频| 一区二区三区高清在线| 玉米视频成人免费看| 性欧美疯狂xxxxbbbb| 免费观看在线色综合| 国产在线视频一区二区三区| 国产电影一区在线| 91小视频在线观看| 欧美日韩性生活| 日韩欧美久久一区| 国产欧美日韩激情| 亚洲欧洲一区二区在线播放| 国产精品久久久久久久久图文区| 一区二区三区日韩精品视频| 日韩高清不卡一区二区| 精品写真视频在线观看| 国产成人亚洲综合色影视| 一本大道久久a久久综合婷婷| 欧美视频一区二区在线观看| 欧美videos中文字幕| 中文字幕 久热精品 视频在线| 亚洲乱码国产乱码精品精可以看| 亚洲高清中文字幕| 激情丁香综合五月| 99国产精品一区| 欧美一激情一区二区三区| 国产精品久久久久久久裸模| 香蕉影视欧美成人| 国产91丝袜在线播放0| 欧美性一区二区| 精品福利一二区| 亚洲另类春色校园小说| 青青草伊人久久| eeuss影院一区二区三区 | 欧美成人免费网站| 中文字幕日韩av资源站| 丝袜美腿高跟呻吟高潮一区| 国产福利一区在线| 欧美怡红院视频| 久久一区二区视频| 亚洲国产精品久久不卡毛片| 风间由美一区二区av101 | 久久精品在这里| 亚洲一区二区三区国产| 国产一区二区在线视频| 色综合天天综合狠狠| 精品久久久久久无| 亚洲国产日韩a在线播放| 成人美女视频在线观看18| 欧美人伦禁忌dvd放荡欲情| 国产日产精品一区| 蜜臀久久99精品久久久久久9| 91麻豆国产福利精品| 精品久久久久久最新网址| 亚洲r级在线视频| 99在线精品观看| 久久香蕉国产线看观看99| 亚洲一区二区三区四区在线| 菠萝蜜视频在线观看一区| 日韩欧美国产精品| 亚洲国产日韩a在线播放 | 国产精品妹子av| 亚洲福利视频导航| 亚洲欧洲99久久| 久久精品国产99| 欧美视频第二页| 国产欧美精品一区二区三区四区 | 粉嫩一区二区三区在线看| 欧美日本在线一区| 亚洲精品视频在线看| 成人做爰69片免费看网站| 日韩免费高清视频| 日韩av一级电影| 欧美久久久久久蜜桃| 亚洲国产一区二区a毛片| 91在线码无精品| 国产精品久久久久久久裸模| 成人性视频免费网站| 国产日韩一级二级三级| 国产一区二区免费在线| 2021中文字幕一区亚洲| 九九精品一区二区| 日韩视频一区在线观看| 日本不卡不码高清免费观看| 欧美日韩一二三区| 亚洲成a人片在线不卡一二三区| 日本精品免费观看高清观看| **性色生活片久久毛片| 99久久99久久久精品齐齐| 综合色中文字幕| 91免费观看国产| 亚洲精选一二三| 日本乱人伦aⅴ精品| 伊人夜夜躁av伊人久久| 色天天综合色天天久久| 一区二区久久久| 欧美色电影在线| 日韩综合一区二区| 日韩欧美aaaaaa| 国产美女视频一区| 中文字幕在线一区免费| 91在线观看一区二区| 亚洲一区二三区| 91麻豆精品国产91久久久使用方法| 午夜精品久久久久久| 欧美一区二区三区免费观看视频 | 丁香激情综合国产| 国产精品不卡一区二区三区| 91麻豆国产福利在线观看| 亚洲成av人影院| 日韩精品一区二区三区在线播放| 国产一区二区三区免费看| 亚洲欧洲日本在线| 欧美精品日韩一本| 国产中文一区二区三区| 中文字幕五月欧美| 欧美性猛片xxxx免费看久爱| 久久精品免费看| 国产精品毛片a∨一区二区三区| 在线国产电影不卡| 久久99精品久久久久久 | 精品无人区卡一卡二卡三乱码免费卡| 欧美成人国产一区二区| 国产福利精品导航| 亚洲成年人影院| 国产亚洲欧美在线| 日本高清视频一区二区| 麻豆精品蜜桃视频网站| 亚洲欧美在线另类| 3d成人动漫网站| 成人免费毛片高清视频| 午夜电影网一区| 国产精品国产成人国产三级 | 国产精品麻豆一区二区| 欧美日韩1234| 成人一级片网址| 三级在线观看一区二区| 国产欧美日韩在线| 911精品国产一区二区在线| 国产精品1区二区.| 亚洲va欧美va天堂v国产综合| 久久精品亚洲麻豆av一区二区 | 久久伊99综合婷婷久久伊| 色狠狠色狠狠综合| 国产麻豆成人传媒免费观看| 亚洲精品老司机| 久久久久久一二三区| 欧美高清视频一二三区 | 一区二区三区在线视频免费| 精品少妇一区二区| 欧美三级一区二区| 国产不卡高清在线观看视频| 亚洲成a人v欧美综合天堂| 国产精品免费人成网站| 欧美一区二区三区四区高清| 99久久精品免费看国产免费软件| 免费成人在线观看视频| 亚洲另类色综合网站| 久久精品网站免费观看| 欧美一区午夜精品| 色婷婷综合视频在线观看| 国产剧情在线观看一区二区| 日韩电影一二三区| 一区二区三区欧美日| 国产拍欧美日韩视频二区| 欧美一区二区三区四区在线观看| 色噜噜狠狠色综合欧洲selulu| 粉嫩13p一区二区三区| 国产又粗又猛又爽又黄91精品| 亚洲bt欧美bt精品777| 亚洲精品欧美综合四区| 国产精品国产精品国产专区不蜜| 精品粉嫩超白一线天av| 日韩一级黄色片| 欧美日韩国产综合视频在线观看 | 欧美一区二区在线免费观看| 97精品久久久久中文字幕| 国产成人综合网| 国产综合一区二区| 久久国产夜色精品鲁鲁99|