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

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

?? ether_mod-2.5.c

?? libnet安裝文件 linux 下使用 解壓后就能使用
?? C
字號(hào):
/* *  $Id: ether_mod-2.5.c,v 1.1.1.1 2000/05/25 00:28:49 route Exp $ * *  libnet *  OpenBSD 2.5 ether_mod.c - lkm replacement for ether_output * *  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);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品免费网站| 精品一区二区三区免费| 色视频成人在线观看免| 一区二区激情小说| 88在线观看91蜜桃国自产| 蜜臀国产一区二区三区在线播放| 欧美精品一区二区三区高清aⅴ | 白白色亚洲国产精品| 欧美激情综合在线| 在线观看91视频| 免费成人在线影院| 国产欧美一区二区在线| 91精品1区2区| 美女久久久精品| 国产精品理论片| 欧美区在线观看| 欧美精品第1页| 国产精品99久久久久久久女警| 亚洲欧洲在线观看av| 欧美日韩高清在线| 国产黑丝在线一区二区三区| 成人欧美一区二区三区| 欧美一级高清片| 成人午夜又粗又硬又大| 亚洲成人一区在线| 国产网红主播福利一区二区| 在线欧美日韩国产| 国产一区不卡视频| 亚洲成人av免费| 欧美激情一区二区三区蜜桃视频| 欧美日韩一区成人| 成人一区二区视频| 久久国产视频网| 亚洲精品成人在线| 欧美国产日韩亚洲一区| 欧美电影在线免费观看| eeuss影院一区二区三区| 麻豆精品一区二区| 一区二区在线免费观看| 国产欧美一区二区三区鸳鸯浴 | 欧美中文字幕一区二区三区亚洲| 久久se精品一区精品二区| 亚洲欧美日韩国产成人精品影院 | 国产清纯白嫩初高生在线观看91| 色综合久久天天| 国产精品乡下勾搭老头1| 日韩国产在线一| 亚洲老妇xxxxxx| 国产午夜三级一区二区三| 欧美日免费三级在线| 色综合天天天天做夜夜夜夜做| 精品一区二区三区在线播放| 亚洲成人在线网站| 一区二区三区四区国产精品| 国产日产欧美一区二区视频| 日韩欧美国产系列| 欧美日韩国产精品自在自线| 一本久道久久综合中文字幕| 欧美一区二区三区色| 欧美三级中文字| 91麻豆swag| 99精品国产视频| eeuss鲁片一区二区三区在线看| 国产精品香蕉一区二区三区| 日本va欧美va欧美va精品| 午夜私人影院久久久久| 亚洲国产cao| 亚洲电影你懂得| 亚洲电影你懂得| 亚洲午夜久久久| 亚洲午夜日本在线观看| 亚洲福利视频一区二区| 亚洲成精国产精品女| 亚洲va韩国va欧美va| 午夜电影网亚洲视频| 午夜视频久久久久久| 日韩电影在线观看一区| 免费在线欧美视频| 久久疯狂做爰流白浆xx| 国产一区二区三区精品视频| 国产麻豆精品一区二区| 国产成人在线视频网站| 成人午夜免费视频| 日本精品裸体写真集在线观看| 色激情天天射综合网| 欧美另类一区二区三区| 欧美一级搡bbbb搡bbbb| 久久五月婷婷丁香社区| 欧美国产精品一区二区| 欧美激情一区三区| 怡红院av一区二区三区| 亚洲第一精品在线| 老司机精品视频一区二区三区| 精品一区二区三区免费| 成人免费黄色大片| 欧美三级视频在线播放| 日韩欧美一二三区| 中文一区一区三区高中清不卡| 中文字幕中文字幕一区二区| 亚洲一区在线播放| 美国精品在线观看| 成人av动漫在线| 欧洲视频一区二区| 2020国产精品| 亚洲在线一区二区三区| 久久精品72免费观看| 成人激情黄色小说| 欧美日韩一区二区三区不卡 | 高清免费成人av| 欧美在线免费观看视频| 日韩欧美一二三| 亚洲人精品一区| 麻豆国产精品777777在线| 丁香激情综合国产| 欧美一区二区在线不卡| 国产精品免费视频网站| 日韩av网站在线观看| 北条麻妃国产九九精品视频| 91精品久久久久久蜜臀| **性色生活片久久毛片| 另类调教123区| 色综合久久六月婷婷中文字幕| 精品捆绑美女sm三区| 一区二区成人在线观看| 成人午夜视频网站| 欧美成人官网二区| 亚洲一区二区三区影院| 粉嫩久久99精品久久久久久夜| 欧美三级在线播放| 亚洲视频在线一区观看| 精品综合久久久久久8888| 欧美亚洲综合一区| 久久精品国产一区二区三| 91激情五月电影| 中文子幕无线码一区tr| 精品亚洲成av人在线观看| 欧美日韩国产片| 亚洲欧美电影一区二区| 成人免费观看av| 久久免费精品国产久精品久久久久 | 男男视频亚洲欧美| 欧美手机在线视频| 亚洲老司机在线| av电影天堂一区二区在线| 久久久久久免费网| 久久99热99| 精品国产第一区二区三区观看体验| 亚洲午夜久久久| 欧洲国内综合视频| 最好看的中文字幕久久| 国产91精品欧美| 久久精品亚洲麻豆av一区二区| 青青草原综合久久大伊人精品| 在线观看91精品国产入口| 亚洲欧美色一区| 色婷婷久久久久swag精品| 亚洲视频在线一区观看| 91免费看`日韩一区二区| 国产精品美女一区二区三区| 丁香婷婷综合色啪| 国产精品久久久久久户外露出| 国产成人午夜高潮毛片| 国产欧美一区二区精品婷婷| 国产很黄免费观看久久| 欧美国产日韩亚洲一区| 成人国产亚洲欧美成人综合网| 中文字幕av资源一区| 99久久精品99国产精品| 亚洲欧美激情在线| 91福利小视频| 亚洲成人精品一区| 欧美一级免费大片| 免费成人在线观看| 久久久久亚洲蜜桃| 成人综合婷婷国产精品久久蜜臀| 中文字幕免费一区| 色呦呦一区二区三区| 无码av中文一区二区三区桃花岛| 日韩一区二区三免费高清| 久久99久久99| 国产精品伦一区二区三级视频| 91浏览器打开| 日韩精品一级中文字幕精品视频免费观看 | 午夜视频久久久久久| 欧美一级久久久久久久大片| 国产综合成人久久大片91| 蜜桃久久av一区| 久久久精品免费网站| 成年人网站91| 亚洲成av人片在线| 精品久久久久久久久久久久久久久 | 欧美日韩黄色影视| 九九国产精品视频| 国产精品久久久久久久久快鸭 | 国产成人精品免费网站| 亚洲欧洲日产国码二区| 欧美日韩视频在线第一区| 狠狠色丁香久久婷婷综合_中| 中文字幕亚洲视频| 91精品国产综合久久福利|