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

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

?? ether_mod-2.7.c

?? libnet安裝文件 linux 下使用 解壓后就能使用
?? C
字號:
/* *  $Id: ether_mod-2.7.c,v 1.1.1.1 2000/05/25 00:28:49 route Exp $ * *  libnet *  OpenBSD 2.7 ether_mod.c - lkm replacement for ether_output *  update by obecian <obecian@subterrain.net> * *  Copyright (c) 1999, 2000 Trevor Scheroeder <tschroed@zweknu.org> *  Copyright (c) 1998, 1999, 2000 Mike D. Schiffman <mike@infonexus.com> *  Original code and idea 1997 Thomas Ptacek <tqbf@pobox.com * *  Copyright (c) 1982, 1989, 1993 *      The Regents of the University of California.  All rights reserved. *       * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright    *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *      This product includes software developed by the University of *      California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *      @(#)if_ethersubr.c      8.1 (Berkeley) 6/10/93 *//*%%% portions-copyright-nrl-95Portions of this software are Copyright 1995-1998 by Randall Atkinson,Ronald Lee, Daniel McDonald, Bao Phan, and Chris Winters. All RightsReserved. All rights under this copyright have been assigned to the USNaval Research Laboratory (NRL). The NRL Copyright Notice and LicenseAgreement Version 1.1 (January 17, 1995) applies to these portions of thesoftware.You should have received a copy of the license with this software. If youdidn't get a copy, you may request one from <license@ipv6.nrl.navy.mil>.*/#include <sys/param.h>#include <sys/systm.h>#include <sys/kernel.h>#include <sys/malloc.h>#include <sys/mbuf.h>#include <sys/protosw.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <sys/errno.h>#include <sys/syslog.h>#include <machine/cpu.h>#include <net/if.h>#include <net/netisr.h>#include <net/route.h>#include <net/if_llc.h>#include <net/if_dl.h>#include <net/if_types.h>#include <netinet/in.h>#ifdef INET#include <netinet/in_var.h>#endif#include <netinet/if_ether.h>/*#include "bridge.h"*/#if NBRIDGE > 0#include <net/if_bridge.h>#endif#ifdef NS#include <netns/ns.h>#include <netns/ns_if.h>#endif#ifdef IPX#include <netipx/ipx.h>#include <netipx/ipx_if.h>#endif#ifdef ISO#include <netiso/argo_debug.h>#include <netiso/iso.h>#include <netiso/iso_var.h>#include <netiso/iso_snpac.h>#endif#include <netccitt/x25.h>#include <netccitt/pk.h>#include <netccitt/pk_extern.h>#include <netccitt/dll.h>#include <netccitt/llc_var.h>#ifdef NETATALK#include <netatalk/at.h>#include <netatalk/at_var.h>#include <netatalk/at_extern.h>#define llc_snap_org_code llc_un.type_snap.org_code#define llc_snap_ether_type llc_un.type_snap.ether_typeextern u_char	at_org_code[ 3 ];extern u_char	aarp_org_code[ 3 ];#endif /* NETATALK */#if defined(CCITT)#include <sys/socketvar.h>#endif#ifdef INET6#include <netinet6/in6.h>#include <netinet6/in6_var.h>#endif /* INET6 */#define senderr(e) { error = (e); goto bad;}/* * Ethernet output routine. * Encapsulate a packet of type family for the local net. * Assumes that ifp is actually pointer to arpcom structure. */intether_output_spoof(ifp, m0, dst, rt0)	register struct ifnet *ifp;	struct mbuf *m0;	struct sockaddr *dst;	struct rtentry *rt0;{	u_int16_t etype;	int s, error = 0; 	u_char edst[6], esrc[6];	register struct mbuf *m = m0;	register struct rtentry *rt;	struct mbuf *mcopy = (struct mbuf *)0;	register struct ether_header *eh;	struct arpcom *ac = (struct arpcom *)ifp;	if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING))		senderr(ENETDOWN);	ifp->if_lastchange = time;	if ((rt = rt0) != NULL) {		if ((rt->rt_flags & RTF_UP) == 0) {			if ((rt0 = rt = rtalloc1(dst, 1)) != NULL)				rt->rt_refcnt--;			else				senderr(EHOSTUNREACH);		}		if (rt->rt_flags & RTF_GATEWAY) {			if (rt->rt_gwroute == 0)				goto lookup;			if (((rt = rt->rt_gwroute)->rt_flags & RTF_UP) == 0) {				rtfree(rt); rt = rt0;			lookup: rt->rt_gwroute = rtalloc1(rt->rt_gateway, 1);				if ((rt = rt->rt_gwroute) == 0)					senderr(EHOSTUNREACH);			}		}		if (rt->rt_flags & RTF_REJECT)			if (rt->rt_rmx.rmx_expire == 0 ||			    time.tv_sec < rt->rt_rmx.rmx_expire)				senderr(rt == rt0 ? EHOSTDOWN : EHOSTUNREACH);	}	switch (dst->sa_family) {#ifdef INET	case AF_INET:		if (!arpresolve(ac, rt, m, dst, edst))			return (0);	/* if not yet resolved */		/* If broadcasting on a simplex interface, loopback a copy */		if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX))			mcopy = m_copy(m, 0, (int)M_COPYALL);		etype = htons(ETHERTYPE_IP);		bcopy(ac->ac_enaddr, esrc, sizeof (edst));		break;#endif#ifdef NS	case AF_NS:		etype = htons(ETHERTYPE_NS); 		bcopy((caddr_t)&(((struct sockaddr_ns *)dst)->sns_addr.x_host),		    (caddr_t)edst, sizeof (edst));		if (!bcmp((caddr_t)edst, (caddr_t)&ns_thishost, sizeof(edst)))			return (looutput(ifp, m, dst, rt));		/* If broadcasting on a simplex interface, loopback a copy */		if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX))			mcopy = m_copy(m, 0, (int)M_COPYALL);		break;#endif#ifdef IPX	case AF_IPX:		etype = htons(ETHERTYPE_IPX); 		bcopy((caddr_t)&satosipx(dst)->sipx_addr.ipx_host,		    (caddr_t)edst, sizeof (edst));		if (!bcmp((caddr_t)edst, (caddr_t)&ipx_thishost, sizeof(edst)))			return (looutput(ifp, m, dst, rt));		/* If broadcasting on a simplex interface, loopback a copy */		if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX))			mcopy = m_copy(m, 0, (int)M_COPYALL);		break;#endif#ifdef INET6	case AF_INET6:		/*		 * The bottom line here is to either queue the outgoing packet		 * in the discovery engine, or fill in edst with something		 * that'll work.		 */		if (m->m_flags & M_MCAST) {			/*			 * If multicast dest., then use IPv6 -> Ethernet			 * mcast mapping.  Really simple.			 */			ETHER_MAP_IN6_MULTICAST(((struct sockaddr_in6 *)dst)->sin6_addr,			    edst);		} else {			/* Do unicast neighbor discovery stuff. */			if (!ipv6_discov_resolve(ifp, rt, m, dst, edst))				return 0;		}		etype = htons(ETHERTYPE_IPV6);		break;#endif /* INET6 */#ifdef NETATALK	case AF_APPLETALK: {		struct at_ifaddr *aa;		if (!aarpresolve(ac, m, (struct sockaddr_at *)dst, edst)) {#ifdef NETATALKDEBUG			extern char *prsockaddr(struct sockaddr *);			printf("aarpresolv: failed for %s\n", prsockaddr(dst));#endif /* NETATALKDEBUG */			return (0);		}		/*		 * ifaddr is the first thing in at_ifaddr		 */		aa = (struct at_ifaddr *)at_ifawithnet(			(struct sockaddr_at *)dst,			ifp->if_addrlist.tqh_first);		if (aa == 0)			goto bad;		/*		 * In the phase 2 case, we need to prepend an mbuf for the llc		 * header. Since we must preserve the value of m, which is		 * passed to us by value, we m_copy() the first mbuf,		 * and use it for our llc header.		 */		if ( aa->aa_flags & AFA_PHASE2 ) {			struct llc llc;			/* XXX Really this should use netisr too */			M_PREPEND(m, AT_LLC_SIZE, M_WAIT);			/*			 * FreeBSD doesn't count the LLC len in			 * ifp->obytes, so they increment a length			 * field here. We don't do this.			 */			llc.llc_dsap = llc.llc_ssap = LLC_SNAP_LSAP;			llc.llc_control = LLC_UI;			bcopy(at_org_code, llc.llc_snap_org_code,				sizeof(at_org_code));			llc.llc_snap_ether_type = htons( ETHERTYPE_AT );			bcopy(&llc, mtod(m, caddr_t), AT_LLC_SIZE);			etype = htons(m->m_pkthdr.len);		} else {			etype = htons(ETHERTYPE_AT);		}		} break;#endif /* NETATALK */#ifdef	ISO	case AF_ISO: {		int	snpalen;		struct	llc *l;		register struct sockaddr_dl *sdl;		if (rt && (sdl = (struct sockaddr_dl *)rt->rt_gateway) &&		    sdl->sdl_family == AF_LINK && sdl->sdl_alen > 0) {			bcopy(LLADDR(sdl), (caddr_t)edst, sizeof(edst));		} else {			error = iso_snparesolve(ifp, (struct sockaddr_iso *)dst,						(char *)edst, &snpalen);			if (error)				goto bad; /* Not Resolved */		}		/* If broadcasting on a simplex interface, loopback a copy */		if (*edst & 1)			m->m_flags |= (M_BCAST|M_MCAST);		if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX) &&		    (mcopy = m_copy(m, 0, (int)M_COPYALL))) {			M_PREPEND(mcopy, sizeof (*eh), M_DONTWAIT);			if (mcopy) {				eh = mtod(mcopy, struct ether_header *);				bcopy(edst, eh->ether_dhost, sizeof (edst));				bcopy(ac->ac_enaddr, eh->ether_shost,				    sizeof (edst));			}		}		M_PREPEND(m, 3, M_DONTWAIT);		if (m == NULL)			return (0);		etype = htons(m->m_pkthdr.len);		l = mtod(m, struct llc *);		l->llc_dsap = l->llc_ssap = LLC_ISO_LSAP;		l->llc_control = LLC_UI;#ifdef ARGO_DEBUG		if (argo_debug[D_ETHER]) {			int i;			printf("unoutput: sending pkt to: ");			for (i=0; i<6; i++)				printf("%x ", edst[i] & 0xff);			printf("\n");		}#endif		} break;#endif /* ISO *//*	case AF_NSAP: */	case AF_CCITT: {		register struct sockaddr_dl *sdl =			(struct sockaddr_dl *) rt -> rt_gateway;		if (sdl && sdl->sdl_family == AF_LINK		    && sdl->sdl_alen > 0) {			bcopy(LLADDR(sdl), (char *)edst,				sizeof(edst));		} else goto bad; /* Not a link interface ? Funny ... */		if ((ifp->if_flags & IFF_SIMPLEX) && (*edst & 1) &&		    (mcopy = m_copy(m, 0, (int)M_COPYALL))) {			M_PREPEND(mcopy, sizeof (*eh), M_DONTWAIT);			if (mcopy) {				eh = mtod(mcopy, struct ether_header *);				bcopy(edst, eh->ether_dhost, sizeof (edst));				bcopy(esrc,eh->ether_shost,				    sizeof (edst));			}		}		etype = htons(m->m_pkthdr.len);#ifdef LLC_DEBUG		{			int i;			register struct llc *l = mtod(m, struct llc *);			printf("ether_output: sending LLC2 pkt to: ");			for (i=0; i<6; i++)				printf("%x ", edst[i] & 0xff);			printf(" len 0x%x dsap 0x%x ssap 0x%x control 0x%x\n",			    m->m_pkthdr.len, l->llc_dsap & 0xff, l->llc_ssap &0xff,			    l->llc_control & 0xff);		}#endif /* LLC_DEBUG */		} break;	case AF_UNSPEC:		eh = (struct ether_header *)dst->sa_data; 		bcopy((caddr_t)eh->ether_dhost, (caddr_t)edst, sizeof (edst)); 		bcopy((caddr_t)eh->ether_shost, (caddr_t)esrc, sizeof (edst));		/* AF_UNSPEC doesn't swap the byte order of the ether_type. */		etype = eh->ether_type;		break;	default:		printf("%s: can't handle af%d\n", ifp->if_xname,			dst->sa_family);		senderr(EAFNOSUPPORT);	}	if (mcopy)		(void) looutput(ifp, mcopy, dst, rt);	/*	 * Add local net header.  If no space in first mbuf,	 * allocate another.	 */	M_PREPEND(m, sizeof (struct ether_header), M_DONTWAIT);	if (m == 0)		senderr(ENOBUFS);	eh = mtod(m, struct ether_header *);	bcopy((caddr_t)&etype,(caddr_t)&eh->ether_type,		sizeof(eh->ether_type)); 	bcopy((caddr_t)edst, (caddr_t)eh->ether_dhost, sizeof (edst)); 	bcopy((caddr_t)esrc, (caddr_t)eh->ether_shost,	        sizeof(eh->ether_shost));/* 	bcopy((caddr_t)ac->ac_enaddr, (caddr_t)eh->ether_shost,	    sizeof(eh->ether_shost)); */#if NBRIDGE > 0	/*	 * Interfaces that are bridge members need special handling	 * for output.	 */	if (ifp->if_bridge) {		bridge_output(ifp, m, NULL, NULL);		return (error);	}#endif	s = splimp();	/*	 * Queue message on interface, and start output if interface	 * not yet active.	 */	if (IF_QFULL(&ifp->if_snd)) {		IF_DROP(&ifp->if_snd);		splx(s);		senderr(ENOBUFS);	}	ifp->if_obytes += m->m_pkthdr.len;	IF_ENQUEUE(&ifp->if_snd, m);	if (m->m_flags & M_MCAST)		ifp->if_omcasts++;	if ((ifp->if_flags & IFF_OACTIVE) == 0)		(*ifp->if_start)(ifp);	splx(s);	return (error);bad:	if (m)		m_freem(m);	return (error);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲欧美综合| 日韩一区二区三区免费观看| 蜜臀91精品一区二区三区 | 精品一区二区三区日韩| 亚洲国产精品嫩草影院| 亚洲一二三四区不卡| 亚洲一卡二卡三卡四卡五卡| 亚洲a一区二区| 日韩高清在线一区| 国产一区二三区好的| 国产盗摄女厕一区二区三区| 成人精品小蝌蚪| 在线视频中文字幕一区二区| 欧美色大人视频| 欧美白人最猛性xxxxx69交| 精品国产电影一区二区 | eeuss鲁片一区二区三区在线观看| 国产精品一区二区三区网站| 成人av网站在线| 欧美午夜一区二区| 日韩精品一区二区三区在线| 国产日韩欧美精品一区| 亚洲免费看黄网站| 精品一区二区在线看| 懂色av一区二区三区免费看| 色综合久久天天综合网| 欧美一级黄色录像| 亚洲特黄一级片| 美女精品一区二区| 成人高清在线视频| 欧美美女网站色| 中文av一区特黄| 全部av―极品视觉盛宴亚洲| 成人自拍视频在线| 91.麻豆视频| 国产精品久久久久婷婷| 视频一区在线播放| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 久久久久久一二三区| 亚洲丝袜美腿综合| 美脚の诱脚舐め脚责91 | 精品国产乱码久久久久久牛牛| 国产精品成人在线观看| 麻豆精品国产91久久久久久| 色综合一个色综合亚洲| 精品日韩欧美在线| 亚洲成av人片在线| 99久久精品国产导航| 久久美女艺术照精彩视频福利播放| 亚洲国产精品自拍| 99视频一区二区三区| 久久嫩草精品久久久精品| 日韩成人av影视| 欧美亚洲国产bt| 亚洲婷婷综合色高清在线| 国产一区二区三区精品视频| 69av一区二区三区| 午夜日韩在线电影| 欧美日韩在线播| 夜夜操天天操亚洲| 色噜噜狠狠一区二区三区果冻| 2022国产精品视频| 久久国产视频网| 欧美一区二区高清| 日韩激情中文字幕| 欧美日韩久久久久久| 一区二区三区蜜桃网| 99久久久无码国产精品| 国产精品欧美极品| 粉嫩av一区二区三区粉嫩| 久久五月婷婷丁香社区| 久久99国产精品久久99果冻传媒| 欧美一区二区三区精品| 日本不卡一二三| 日韩一卡二卡三卡国产欧美| 青娱乐精品视频在线| 666欧美在线视频| 奇米888四色在线精品| 欧美日韩国产另类一区| 首页国产欧美日韩丝袜| 欧美一区二区三区爱爱| 麻豆一区二区在线| 久久午夜色播影院免费高清| 国产精品自在欧美一区| 中文字幕亚洲在| 91黄色免费网站| 日本女优在线视频一区二区| 日韩美女视频在线| 国产盗摄女厕一区二区三区| 亚洲视频一区在线观看| 欧美亚洲日本一区| 久久99精品久久久久久国产越南| 国产性天天综合网| 97久久精品人人澡人人爽| 亚洲色图一区二区| 精品视频999| 九一久久久久久| |精品福利一区二区三区| 在线亚洲一区二区| 青青草国产精品97视觉盛宴| 欧美精品一区二区三区蜜臀| 成人中文字幕在线| 天堂成人国产精品一区| 久久亚洲欧美国产精品乐播| 成人精品电影在线观看| 亚洲6080在线| 久久久五月婷婷| 欧美撒尿777hd撒尿| 国产一区二区三区黄视频 | 韩国一区二区三区| 日韩美女精品在线| 欧美一区二区福利在线| 成人午夜av影视| 日日摸夜夜添夜夜添亚洲女人| 久久亚洲精品小早川怜子| 一本色道a无线码一区v| 久久国产精品99久久久久久老狼| 成人欧美一区二区三区黑人麻豆| 欧美日韩电影在线| 成人精品高清在线| 久久99精品国产.久久久久| 亚洲区小说区图片区qvod| 欧美mv日韩mv亚洲| 在线免费精品视频| 国产99久久久国产精品免费看| 亚洲小说欧美激情另类| 国产精品久久久久影院亚瑟 | 欧美一级精品大片| 色噜噜夜夜夜综合网| 激情丁香综合五月| 亚洲国产欧美一区二区三区丁香婷 | 欧美在线一二三| 国产精品亚洲午夜一区二区三区| 亚洲国产成人精品视频| 中文字幕在线一区| 久久夜色精品国产欧美乱极品| 91成人国产精品| 色综合久久久久久久久久久| 成人小视频免费在线观看| 久久99久久99精品免视看婷婷| 午夜国产不卡在线观看视频| 亚洲精品国产a| 亚洲人快播电影网| 中文字幕综合网| 中文字幕在线视频一区| 中文幕一区二区三区久久蜜桃| 久久中文字幕电影| 精品国产一区a| 精品国产髙清在线看国产毛片| 欧美一区二区三区在线观看 | 久久日韩粉嫩一区二区三区| 日韩一区二区三区高清免费看看| 欧美色网站导航| 欧美另类z0zxhd电影| 欧美片在线播放| 7777精品伊人久久久大香线蕉 | 成人av午夜影院| www.日韩精品| 91在线视频18| 91免费版在线| 欧美中文一区二区三区| 精品视频一区二区不卡| 91精品视频网| 精品久久久网站| 国产偷国产偷精品高清尤物 | 日本精品视频一区二区三区| 99国产精品久久久久久久久久| 丁香六月久久综合狠狠色| 国产成人8x视频一区二区| 成人福利在线看| 日本高清免费不卡视频| 欧美卡1卡2卡| 亚洲精品在线电影| 欧美经典三级视频一区二区三区| 国产精品每日更新| 亚洲激情第一区| 青青草成人在线观看| 国产精品伊人色| 色综合久久久久| 在线不卡中文字幕| 国产免费久久精品| 亚洲自拍都市欧美小说| 麻豆精品一区二区三区| 成人v精品蜜桃久久一区| 欧美性xxxxxx少妇| 久久久久国产精品免费免费搜索| 亚洲欧洲精品一区二区三区| 洋洋av久久久久久久一区| 美女视频第一区二区三区免费观看网站| 狠狠色狠狠色综合系列| 91网站在线播放| 欧美成人高清电影在线| 亚洲欧美在线另类| 蜜臀av性久久久久av蜜臀妖精| 福利一区二区在线观看| 综合分类小说区另类春色亚洲小说欧美 | 欧美videossexotv100| 69堂国产成人免费视频| 精品久久久久久无| 亚洲最快最全在线视频|