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

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

?? if.c

?? vxworks下的實現網絡TCPIP協議的原代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next) {		if (ifa->ifa_addr->sa_family != af)			continue;		ifa_maybe = ifa;		if (ifa->ifa_netmask == 0) {			if (equal(addr, ifa->ifa_addr) ||			    (ifa->ifa_dstaddr && equal(addr, ifa->ifa_dstaddr)))				return (ifa);			continue;		}		cp = addr->sa_data;		cp2 = ifa->ifa_addr->sa_data;		cp3 = ifa->ifa_netmask->sa_data;		cplim = ifa->ifa_netmask->sa_len + (char *)ifa->ifa_netmask;		for (; cp3 < cplim; cp3++)			if ((*cp++ ^ *cp2++) & *cp3)				break;		if (cp3 == cplim)			return (ifa);	}	return (ifa_maybe);}/*  * Find an interface address for a specified destination or gateway */struct ifaddr *ifa_ifwithroute(flags, dst, gateway)	int flags;	struct sockaddr	*dst, *gateway;{	register struct ifaddr *ifa;	if ((flags & RTF_GATEWAY) == 0) {		/*		 * If we are adding a route to an interface,		 * and the interface is a pt to pt link		 * we should search for the destination		 * as our clue to the interface.  Otherwise		 * we can use the local address.		 */		ifa = 0;		if (flags & RTF_HOST) 			ifa = ifa_ifwithdstaddr(dst);		if (ifa == 0)			ifa = ifa_ifwithaddr(gateway);	} else {		/*		 * If we are adding a route to a remote net		 * or host, the gateway may still be on the		 * other end of a pt to pt link.		 */		ifa = ifa_ifwithdstaddr(gateway);	}	if (ifa == 0)		ifa = ifa_ifwithnet(gateway);	if (ifa == 0) {		struct rtentry *rt = rtalloc1(dst, 0);		if (rt == 0)			return (0);		rt->rt_refcnt--;		if ((ifa = rt->rt_ifa) == 0)			return (0);	}	if (ifa->ifa_addr->sa_family != dst->sa_family) {		struct ifaddr *oifa = ifa;		ifa = ifaof_ifpforaddr(dst, ifa->ifa_ifp);		if (ifa == 0)			ifa = oifa;	}	return (ifa);}/* free the interface address */voidifafree(ifa)	register struct ifaddr *ifa;{	if (ifa == NULL)		panic("ifafree");	if (ifa->ifa_refcnt == 0)		{		FREE(ifa, MT_IFADDR);  		}	else		ifa->ifa_refcnt--;}/* * Default action when installing a route with a Link Level gateway. * Lookup an appropriate real ifa to point to. * This should be moved to /sys/net/link.c eventually. */voidlink_rtrequest(cmd, rt, sa)	int cmd;	register struct rtentry *rt;	struct sockaddr *sa;{	register struct ifaddr *ifa;	struct sockaddr *dst;	struct ifnet *ifp;	if (cmd != RTM_ADD || ((ifa = rt->rt_ifa) == 0) ||	    ((ifp = ifa->ifa_ifp) == 0) || ((dst = rt_key(rt)) == 0))		return;	if ((ifa = ifaof_ifpforaddr(dst, ifp))) {		IFAFREE(rt->rt_ifa);		rt->rt_ifa = ifa;		ifa->ifa_refcnt++;		if (ifa->ifa_rtrequest && ifa->ifa_rtrequest != link_rtrequest)			ifa->ifa_rtrequest(cmd, rt, sa);	}}/* * Mark an interface down and notify protocols of * the transition. * NOTE: must be called at splnet or eqivalent. */voidif_down(ifp)	register struct ifnet *ifp;{	register struct ifaddr *ifa;	ifp->if_flags &= ~IFF_UP;	for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next)		pfctlinput(PRC_IFDOWN, ifa->ifa_addr);	if_qflush(&ifp->if_snd);        if (_rtIfaceMsgHook)             (*_rtIfaceMsgHook) (ifp);}/* * Mark an interface up and notify protocols of * the transition. * NOTE: must be called at splnet or equivalent. */voidif_up(ifp)	register struct ifnet *ifp;{	ifp->if_flags |= IFF_UP;#ifdef notyet        {	register struct ifaddr *ifa;	/* this has no effect on IP, and will kill all ISO connections XXX */	for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next)		pfctlinput(PRC_IFUP, ifa->ifa_addr);        }#endif        if (_rtIfaceMsgHook)             (*_rtIfaceMsgHook) (ifp);}/* * Flush an interface queue. */voidif_qflush(ifq)	register struct ifqueue *ifq;{	register struct mbuf *m, *n;	n = ifq->ifq_head;	while ((m = n)) {		n = m->m_act;		m_freem(m);	}	ifq->ifq_head = 0;	ifq->ifq_tail = 0;	ifq->ifq_len = 0;}/* * Handle interface watchdog timer routines.  Called * from softclock, we decrement timers (if set) and * call the appropriate interface routine on expiration. */void if_slowtimo (void)    {    register struct ifnet *ifp;    for (ifp = ifnet; ifp; ifp = ifp->if_next)	{	if (ifp->if_timer == 0 || --ifp->if_timer)	    continue;	if (ifp->if_watchdog)	    (*ifp->if_watchdog)(ifp->if_unit);	}    /* XXX using watchdogs good idea? calculate clock rate once only -gae */    wdStart (ifslowtimoWd, sysClkRateGet()/IFNET_SLOWHZ,	    (FUNCPTR) netJobAdd, (int) if_slowtimo);    }/* ifunit () has been moved to ifLib.c *//* * Interface ioctls. */intifioctl(so, cmd, data)	struct socket *so;	u_long cmd;	caddr_t data;{	register struct ifnet *ifp;	register struct ifreq *ifr;	switch (cmd) {	case SIOCGIFCONF:	case OSIOCGIFCONF:		return (ifconf(cmd, data));#ifdef	INET	case SIOCSARP:	case SIOCDARP:		/* FALL THROUGH */	case SIOCGARP:		return (arpioctl(cmd, data));#endif	/* INET */	}	ifr = (struct ifreq *)data;	ifp = ifunit(ifr->ifr_name);	if (ifp == 0)		return (ENXIO);	switch (cmd) {	case SIOCGIFFLAGS:		ifr->ifr_flags = ifp->if_flags;		break;	case SIOCGIFMETRIC:		ifr->ifr_metric = ifp->if_metric;		break;	case SIOCSIFFLAGS:		if (ifp->if_flags & IFF_UP && (ifr->ifr_flags & IFF_UP) == 0) {			int s = splimp();			if_down(ifp);			splx(s);                        m2SetIfLastChange(ifp->if_name, ifp->if_unit,			                  ifp->if_flags);		}		if (ifr->ifr_flags & IFF_UP && (ifp->if_flags & IFF_UP) == 0) {			int s = splimp();			if_up(ifp);			splx(s);                        m2SetIfLastChange(ifp->if_name, ifp->if_unit,			                  ifp->if_flags);		}		ifp->if_flags = (ifp->if_flags & IFF_CANTCHANGE) |			(ifr->ifr_flags &~ IFF_CANTCHANGE);		ifr->ifr_flags = ifp->if_flags;		if (ifp->if_ioctl)			(void) (*ifp->if_ioctl)(ifp, cmd, data);		break;	case SIOCSIFMETRIC:		ifp->if_metric = ifr->ifr_metric;		break;	case SIOCADDMULTI:	case SIOCDELMULTI:		if (ifp->if_ioctl == 0)			return (EOPNOTSUPP);		return ((*ifp->if_ioctl)(ifp, cmd, data));	default:		if (so->so_proto == 0)			return (EOPNOTSUPP);#ifndef COMPAT_43		return ((*so->so_proto->pr_usrreq)(so, PRU_CONTROL,			cmd, data, ifp));#else	    {                int error = 0;		int ocmd = cmd;		switch (cmd) {		case SIOCSIFDSTADDR:		case SIOCSIFADDR:		case SIOCSIFBRDADDR:		case SIOCSIFNETMASK:#if _BYTE_ORDER != _BIG_ENDIAN			if (ifr->ifr_addr.sa_family == 0 &&			    ifr->ifr_addr.sa_len < 16) {				ifr->ifr_addr.sa_family = ifr->ifr_addr.sa_len;				ifr->ifr_addr.sa_len = 16;			}#else			if (ifr->ifr_addr.sa_len == 0)				ifr->ifr_addr.sa_len = 16;#endif			break;		case OSIOCGIFADDR:			cmd = SIOCGIFADDR;			break;		case OSIOCGIFDSTADDR:			cmd = SIOCGIFDSTADDR;			break;		case OSIOCGIFBRDADDR:			cmd = SIOCGIFBRDADDR;			break;		case OSIOCGIFNETMASK:			cmd = SIOCGIFNETMASK;		}		error =  ((*so->so_proto->pr_usrreq)(so, PRU_CONTROL,							    cmd, data, ifp));		switch (ocmd) {		case OSIOCGIFADDR:		case OSIOCGIFDSTADDR:		case OSIOCGIFBRDADDR:		case OSIOCGIFNETMASK:			*(u_short *)&ifr->ifr_addr = ifr->ifr_addr.sa_family;		}		return (error);	    }#endif	}	return (0);}/* * Return interface configuration * of system.  List may be used * in later ioctl's (above) to get * other information. *//*ARGSUSED*/intifconf(cmd, data)	int cmd;	caddr_t data;{	register struct ifconf *ifc = (struct ifconf *)data;	register struct ifnet *ifp = ifnet;	register struct ifaddr *ifa;	register char *cp, *ep;	struct ifreq ifr, *ifrp;	int space = ifc->ifc_len, error = 0;	ifrp = ifc->ifc_req;	ep = ifr.ifr_name + sizeof (ifr.ifr_name) - 2;	for (; space > sizeof (ifr) && ifp; ifp = ifp->if_next) {		strncpy(ifr.ifr_name, ifp->if_name, sizeof(ifr.ifr_name) - 2);		for (cp = ifr.ifr_name; cp < ep && *cp; cp++)			continue;		*cp++ = '0' + ifp->if_unit; *cp = '\0';		if ((ifa = ifp->if_addrlist) == 0) {			bzero((caddr_t)&ifr.ifr_addr, sizeof(ifr.ifr_addr));			error = copyout((caddr_t)&ifr, (caddr_t)ifrp,			    sizeof(ifr));			if (error)				break;			space -= sizeof (ifr), ifrp++;		} else 		    for ( ; space > sizeof (ifr) && ifa; ifa = ifa->ifa_next) {			register struct sockaddr *sa = ifa->ifa_addr;#ifdef COMPAT_43			if (cmd == OSIOCGIFCONF) {				struct osockaddr *osa =					 (struct osockaddr *)&ifr.ifr_addr;				ifr.ifr_addr = *sa;				osa->sa_family = sa->sa_family;				error = copyout((caddr_t)&ifr, (caddr_t)ifrp,						sizeof (ifr));				ifrp++;			} else#endif			if (sa->sa_len <= sizeof(*sa)) {				ifr.ifr_addr = *sa;				error = copyout((caddr_t)&ifr, (caddr_t)ifrp,						sizeof (ifr));				ifrp++;			} else {				space -= sa->sa_len - sizeof(*sa);				if (space < sizeof (ifr))					break;				error = copyout((caddr_t)&ifr, (caddr_t)ifrp,						sizeof (ifr.ifr_name));				if (error == 0)				    error = copyout((caddr_t)sa,				      (caddr_t)&ifrp->ifr_addr, sa->sa_len);				ifrp = (struct ifreq *)					(sa->sa_len + (caddr_t)&ifrp->ifr_addr);			}			if (error)				break;			space -= sizeof (ifr);		}	}	ifc->ifc_len -= space;	return (error);}/* * Set/clear promiscuous mode on interface ifp based on the truth value * of pswitch.  The calls are reference counted so that only the first * "on" request actually has an effect, as does the final "off" request. * Results are undefined if the "off" and "on" requests are not matched. */intifpromisc(ifp, pswitch)	struct ifnet *ifp;	int pswitch;{	struct ifreq ifr;	/*	 * If the device is not configured up, we cannot put it in	 * promiscuous mode.	 */	if ((ifp->if_flags & IFF_UP) == 0)		return (ENETDOWN);	if (pswitch) {		if (ifp->if_pcount++ != 0)			return (0);		ifp->if_flags |= IFF_PROMISC;	} else {		if (--ifp->if_pcount > 0)			return (0);		ifp->if_flags &= ~IFF_PROMISC;	}	ifr.ifr_flags = ifp->if_flags;	return ((*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr));}static char *sprint_d(n, buf, buflen)	u_int n;	char *buf;	int buflen;{	register char *cp = buf + buflen - 1;	*cp = 0;	do {		cp--;		*cp = "0123456789"[n % 10];		n /= 10;	} while (n != 0);	return (cp);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日本一区二区| 日本一二三不卡| 色综合天天综合| 日本丶国产丶欧美色综合| 色婷婷精品大在线视频| 91麻豆免费视频| 日韩视频永久免费| 日韩欧美你懂的| 精品久久久久久久人人人人传媒 | 欧美网站大全在线观看| 在线观看日韩电影| 9191成人精品久久| 国产欧美精品一区二区色综合朱莉| 久久蜜桃av一区精品变态类天堂| 亚洲综合无码一区二区| 免费av网站大全久久| 日韩一区二区电影| 一区精品在线播放| 午夜精品福利一区二区三区蜜桃| 日本欧美韩国一区三区| 国产另类ts人妖一区二区| 欧美在线观看18| 久久亚洲影视婷婷| 午夜精品久久久久久久| 成人激情图片网| 在线不卡的av| 玉足女爽爽91| 丰满白嫩尤物一区二区| 精品国产伦一区二区三区观看体验| 国产精品麻豆久久久| 久久精品国产精品亚洲精品| 欧美在线看片a免费观看| 久久久精品国产免大香伊 | 日产国产高清一区二区三区| 不卡av在线免费观看| 欧美电视剧在线看免费| 综合电影一区二区三区 | 国产欧美精品一区aⅴ影院| 日韩精品亚洲专区| 色综合天天狠狠| 综合激情成人伊人| 99re成人在线| 亚洲乱码国产乱码精品精98午夜| 国产福利一区二区| 久久精品日产第一区二区三区高清版| 欧美aaaaaa午夜精品| 欧美一区二区在线播放| 精品一区二区综合| 国产色婷婷亚洲99精品小说| 国内精品久久久久影院色| 欧美精品一区二区三区四区| 极品少妇一区二区三区精品视频 | 日产国产欧美视频一区精品| 中文字幕一区二区三区蜜月| 极品销魂美女一区二区三区| 国产人久久人人人人爽| 色哟哟国产精品| 婷婷久久综合九色综合绿巨人| 欧美日韩一区二区三区高清| 午夜精品福利视频网站 | 石原莉奈一区二区三区在线观看| 欧美肥妇free| 岛国精品在线观看| 日日摸夜夜添夜夜添精品视频 | 亚洲高清视频中文字幕| 日韩一区二区三区视频| 99re亚洲国产精品| 蜜臀av一区二区在线观看 | 国产福利一区二区三区视频| 亚洲一区二区三区在线看| 精品理论电影在线| 欧美这里有精品| 91在线播放网址| 精油按摩中文字幕久久| 亚洲一区二区三区中文字幕在线 | 国产一区二区三区免费| 伊人夜夜躁av伊人久久| 国产精品天美传媒| 欧美精品一区二区三区蜜桃 | 怡红院av一区二区三区| 国产精品天干天干在观线| 精品噜噜噜噜久久久久久久久试看| 日本高清视频一区二区| 99久久99久久免费精品蜜臀| 国产精品主播直播| 国产精品一二一区| 成人久久18免费网站麻豆| 国产精品亚洲а∨天堂免在线| 亚洲国产视频a| 亚洲欧美日韩中文字幕一区二区三区| 国产日韩欧美在线一区| 久久亚洲欧美国产精品乐播| 久久蜜桃av一区精品变态类天堂| 精品日韩一区二区| 欧美激情综合五月色丁香小说| 久久久噜噜噜久噜久久综合| 日韩一级成人av| 国产色一区二区| 一区二区三区欧美久久| 一区二区三区蜜桃| 捆绑调教美女网站视频一区| 国产一区二区看久久| 成人久久18免费网站麻豆| 色综合天天综合| 日韩精品最新网址| 国产精品久久久久久久蜜臀| 亚洲成人动漫av| 成人黄色小视频| 制服.丝袜.亚洲.中文.综合| 欧美国产成人在线| 久久国产乱子精品免费女| 99久久婷婷国产综合精品电影| 欧美日韩精品电影| 中文字幕一区二区视频| 精品一区精品二区高清| 99精品久久久久久| 2024国产精品视频| 日韩中文字幕区一区有砖一区 | 久久色在线视频| 日韩 欧美一区二区三区| 91蜜桃网址入口| 国产亚洲欧美一级| 久久精品国内一区二区三区| 色综合天天综合色综合av| 国产欧美日韩不卡免费| 麻豆成人av在线| 欧美日韩三级在线| 亚洲乱码国产乱码精品精98午夜 | 精品国产髙清在线看国产毛片| 亚洲欧美乱综合| 日本韩国欧美三级| 国产精品―色哟哟| 成人激情黄色小说| 国产精品免费aⅴ片在线观看| 国产高清久久久| 国产精品免费久久| 成人一级黄色片| 伊人开心综合网| 亚洲免费大片在线观看| 国产精品第13页| 亚洲v中文字幕| 欧美精品丝袜中出| 美日韩一区二区| 久久久久久久久久久久久夜| 国产麻豆视频一区二区| 中文在线免费一区三区高中清不卡| 国产精品自产自拍| |精品福利一区二区三区| 欧美日韩国产首页| 日本大胆欧美人术艺术动态| 久久综合九色综合欧美亚洲| 成人av电影在线网| 天堂资源在线中文精品| 久久久久久麻豆| 欧美三级中文字| 成人视屏免费看| 免费成人在线网站| 综合欧美一区二区三区| 精品蜜桃在线看| 欧美日韩在线播放三区| 高潮精品一区videoshd| 午夜电影一区二区| 中文字幕亚洲在| 久久久久久电影| 5月丁香婷婷综合| 欧美影院午夜播放| 99re视频精品| 色综合色综合色综合色综合色综合| 奇米在线7777在线精品 | 日本欧美韩国一区三区| 亚洲另类春色校园小说| 国产精品国产三级国产aⅴ原创| 欧美一区二区三区的| 欧美日韩一级黄| 精品视频一区二区不卡| 91论坛在线播放| 欧美综合视频在线观看| 色综合久久中文字幕| 91视频国产观看| 色久综合一二码| 欧美日韩www| 日韩欧美久久久| 中文字幕欧美三区| 日韩一区日韩二区| 中文字幕中文字幕中文字幕亚洲无线| 国产欧美日韩麻豆91| 国产精品久久久久毛片软件| 国产精品国产自产拍高清av王其| 久久视频一区二区| 亚洲欧洲精品天堂一级| 亚洲最大的成人av| 免费日本视频一区| 国产成人免费视频网站| 92国产精品观看| 在线不卡一区二区| 亚洲国产成人一区二区三区| 夜夜爽夜夜爽精品视频| 日本强好片久久久久久aaa| 成人小视频在线观看| 欧美中文字幕久久|