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

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

?? ether_mod-2.6.c

?? libnet安裝文件 linux 下使用 解壓后就能使用
?? C
字號:
/* *  $Id: ether_mod-2.6.c,v 1.1.1.1 2000/05/25 00:28:49 route Exp $ * *  libnet *  OpenBSD 2.6 ether_mod.c - lkm replacement for ether_output *  UNTESTED as of Thu Mar  9 21:52:03 PST 2000. * *  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麻豆国产香蕉久久精品| 国产在线一区观看| 国产一区二区三区国产| 国产乱一区二区| 国产乱理伦片在线观看夜一区 | 成人性色生活片| 国产精品88av| 成+人+亚洲+综合天堂| 成人黄色综合网站| 日本高清无吗v一区| 日本精品免费观看高清观看| 色呦呦国产精品| 欧美日韩精品免费观看视频| 91精品国产91久久久久久最新毛片| 欧美乱妇23p| 精品国产在天天线2019| 日韩精品一区二区三区三区免费| 欧美变态口味重另类| 久久久国产精华| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美精品电影在线播放| 3atv在线一区二区三区| 日韩精品一区二区三区四区 | 亚洲欧洲成人精品av97| 亚洲午夜免费视频| 捆绑变态av一区二区三区| 盗摄精品av一区二区三区| 色婷婷久久久亚洲一区二区三区 | 国产精品亚洲视频| 色哟哟一区二区在线观看| 91精品综合久久久久久| 国产精品国产三级国产a| 日韩高清中文字幕一区| 国产91综合网| 欧美一区二区三区系列电影| 欧美韩日一区二区三区四区| 爽好久久久欧美精品| 成人免费电影视频| 91精品国产手机| 亚洲日本一区二区| 久久99久久99| 91高清视频在线| 亚洲国产精品成人综合色在线婷婷 | 日韩高清不卡一区| 成人av高清在线| 久久只精品国产| 天堂久久一区二区三区| www.欧美色图| 亚洲大片精品永久免费| 国产麻豆成人精品| 制服视频三区第一页精品| 国产精品色哟哟网站| 久久99精品视频| 制服丝袜中文字幕亚洲| 一区二区三区中文字幕电影| 国产不卡在线一区| 欧美大片一区二区三区| 亚洲成年人影院| 欧美三级日韩三级| 亚洲日本韩国一区| 成人精品国产福利| 欧美激情资源网| 久久99久久99| 精品少妇一区二区三区免费观看| 亚洲福利一二三区| 在线观看视频91| 亚洲三级电影全部在线观看高清| 国产精品一二三四| 久久综合九色综合97_久久久| 性欧美疯狂xxxxbbbb| 欧美性大战久久久久久久| 亚洲欧洲精品一区二区精品久久久| 国产精品1区2区| 国产蜜臀av在线一区二区三区| 激情综合网激情| 久久久久久久久久久久久夜| 国产一区欧美一区| 国产亚洲精品bt天堂精选| 国产一区二区三区久久久 | 一区二区三区小说| 一本一道波多野结衣一区二区| 最新热久久免费视频| 色天使久久综合网天天| 亚洲综合色噜噜狠狠| 欧美日韩精品一区二区| 日韩专区在线视频| 久久日韩精品一区二区五区| 国产高清精品在线| 亚洲欧洲中文日韩久久av乱码| av中文字幕不卡| 污片在线观看一区二区| 精品区一区二区| av在线一区二区三区| 亚洲国产视频一区| 精品国产免费视频| 91美女在线看| 日韩国产在线观看一区| 久久久久久99精品| 色婷婷狠狠综合| 国产中文字幕一区| 亚洲欧美日韩综合aⅴ视频| 欧美日韩视频专区在线播放| 久久精品国产**网站演员| 欧美国产日本视频| 欧美日韩视频在线一区二区| 美女www一区二区| 亚洲欧美日本在线| 精品国产一区久久| 在线中文字幕一区二区| 久久99这里只有精品| 亚洲免费av网站| 日韩精品资源二区在线| 91在线播放网址| 精品一区二区三区免费视频| 亚洲乱码精品一二三四区日韩在线| 欧美精品在线观看一区二区| 成人午夜免费av| 免费欧美日韩国产三级电影| 综合分类小说区另类春色亚洲小说欧美| 欧美系列在线观看| 成人av资源站| 精品制服美女丁香| 午夜视频一区在线观看| 国产精品国产自产拍高清av王其| 日韩免费电影一区| 欧美视频在线观看一区| 成人免费看片app下载| 激情久久五月天| 日本午夜精品一区二区三区电影| 亚洲欧美一区二区在线观看| 久久综合99re88久久爱| 欧美日韩高清在线播放| 在线观看一区日韩| 94-欧美-setu| zzijzzij亚洲日本少妇熟睡| 国产成人午夜99999| 精品午夜久久福利影院| 日韩高清在线一区| 五月天丁香久久| 同产精品九九九| 亚洲第一成年网| 性久久久久久久| 日韩成人一级大片| 首页综合国产亚洲丝袜| 午夜伊人狠狠久久| 亚洲动漫第一页| 五月综合激情网| 日韩电影在线免费看| 日本麻豆一区二区三区视频| 亚洲成a天堂v人片| 性久久久久久久| 日韩中文字幕av电影| 免费欧美在线视频| 美美哒免费高清在线观看视频一区二区| 午夜成人免费电影| 琪琪一区二区三区| 久久超碰97人人做人人爱| 久久99久久99| 粉嫩久久99精品久久久久久夜| 国产成人精品综合在线观看| 成人av网站免费观看| 色哟哟一区二区三区| 欧美精品vⅰdeose4hd| 日韩一区二区三区四区| 久久人人97超碰com| 中文字幕精品—区二区四季| 亚洲乱码中文字幕| 日韩av一区二区在线影视| 国产一区二区三区四| 99精品欧美一区二区三区综合在线| 91在线视频观看| 91精品国产欧美一区二区18| 久久久精品国产99久久精品芒果| 亚洲国产成人在线| 亚洲午夜国产一区99re久久| 免费观看91视频大全| 高清成人免费视频| 欧美日韩一区二区三区四区 | 欧美综合久久久| 日韩午夜激情视频| 国产欧美视频一区二区三区| 亚洲乱码国产乱码精品精可以看 | 精品少妇一区二区三区日产乱码| 中文字幕不卡在线观看| 亚洲精品久久嫩草网站秘色| 免费精品视频在线| 91免费视频大全| 精品国产伦理网| 亚洲永久免费视频| 国产精品456| 欧美精品日韩一本| 成人欧美一区二区三区黑人麻豆 | 午夜精品久久久| 不卡电影免费在线播放一区| 欧美午夜精品免费| 国产精品美女久久久久av爽李琼 |