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

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

?? print-mobility.c

?? TCPDUMP的C語言源代碼,是在數據鏈路層的應用
?? C
字號:
/* * Copyright (C) 2002 WIDE Project. * 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. Neither the name of the project 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 PROJECT 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 PROJECT 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. */#ifdef HAVE_CONFIG_H#include "config.h"#endif#ifndef lintstatic const char rcsid[] _U_ =     "@(#) $Header: /tcpdump/master/tcpdump/print-mobility.c,v 1.12 2005-04-20 22:21:00 guy Exp $";#endif#ifdef INET6#include <tcpdump-stdinc.h>#include <stdio.h>#include "ip6.h"#include "interface.h"#include "addrtoname.h"#include "extract.h"		/* must come after interface.h *//* Mobility header */struct ip6_mobility {	u_int8_t ip6m_pproto;	/* following payload protocol (for PG) */	u_int8_t ip6m_len;	/* length in units of 8 octets */	u_int8_t ip6m_type;	/* message type */	u_int8_t reserved;	/* reserved */	u_int16_t ip6m_cksum;	/* sum of IPv6 pseudo-header and MH */	union {		u_int16_t	ip6m_un_data16[1]; /* type-specific field */		u_int8_t	ip6m_un_data8[2];  /* type-specific fiedl */	} ip6m_dataun;};#define ip6m_data16	ip6m_dataun.ip6m_un_data16#define ip6m_data8	ip6m_dataun.ip6m_un_data8#define IP6M_MINLEN	8/* message type */#define IP6M_BINDING_REQUEST	0	/* Binding Refresh Request */#define IP6M_HOME_TEST_INIT	1	/* Home Test Init */#define IP6M_CAREOF_TEST_INIT	2	/* Care-of Test Init */#define IP6M_HOME_TEST		3	/* Home Test */#define IP6M_CAREOF_TEST	4	/* Care-of Test */#define IP6M_BINDING_UPDATE	5	/* Binding Update */#define IP6M_BINDING_ACK	6	/* Binding Acknowledgement */#define IP6M_BINDING_ERROR	7	/* Binding Error *//* Mobility Header Options */#define IP6MOPT_MINLEN		2#define IP6MOPT_PAD1          0x0	/* Pad1 */#define IP6MOPT_PADN          0x1	/* PadN */#define IP6MOPT_REFRESH	      0x2	/* Binding Refresh Advice */#define IP6MOPT_REFRESH_MINLEN  4#define IP6MOPT_ALTCOA        0x3	/* Alternate Care-of Address */#define IP6MOPT_ALTCOA_MINLEN  18#define IP6MOPT_NONCEID       0x4	/* Nonce Indices */#define IP6MOPT_NONCEID_MINLEN  6#define IP6MOPT_AUTH          0x5	/* Binding Authorization Data */#define IP6MOPT_AUTH_MINLEN    12static voidmobility_opt_print(const u_char *bp, int len){	int i;	int optlen;	for (i = 0; i < len; i += optlen) {		if (bp[i] == IP6MOPT_PAD1)			optlen = 1;		else {			if (i + 1 < len)				optlen = bp[i + 1] + 2;			else				goto trunc;		}		if (i + optlen > len)			goto trunc;		switch (bp[i]) {		case IP6MOPT_PAD1:			printf("(pad1)");			break;		case IP6MOPT_PADN:			if (len - i < IP6MOPT_MINLEN) {				printf("(padn: trunc)");				goto trunc;			}			printf("(padn)");			break;		case IP6MOPT_REFRESH:			if (len - i < IP6MOPT_REFRESH_MINLEN) {				printf("(refresh: trunc)");				goto trunc;			}			/* units of 4 secs */			printf("(refresh: %d)",				EXTRACT_16BITS(&bp[i+2]) << 2);			break;		case IP6MOPT_ALTCOA:			if (len - i < IP6MOPT_ALTCOA_MINLEN) {				printf("(altcoa: trunc)");				goto trunc;			}			printf("(alt-CoA: %s)", ip6addr_string(&bp[i+2]));			break;		case IP6MOPT_NONCEID:			if (len - i < IP6MOPT_NONCEID_MINLEN) {				printf("(ni: trunc)");				goto trunc;			}			printf("(ni: ho=0x%04x co=0x%04x)",				EXTRACT_16BITS(&bp[i+2]),				EXTRACT_16BITS(&bp[i+4]));			break;		case IP6MOPT_AUTH:			if (len - i < IP6MOPT_AUTH_MINLEN) {				printf("(auth: trunc)");				goto trunc;			}			printf("(auth)");			break;		default:			if (len - i < IP6MOPT_MINLEN) {				printf("(sopt_type %d: trunc)", bp[i]);				goto trunc;			}			printf("(type-0x%02x: len=%d)", bp[i], bp[i + 1]);			break;		}	}	return;trunc:	printf("[trunc] ");}/* * Mobility Header */intmobility_print(const u_char *bp, const u_char *bp2 _U_){	const struct ip6_mobility *mh;	const u_char *ep;	int mhlen, hlen, type;	mh = (struct ip6_mobility *)bp;	/* 'ep' points to the end of available data. */	ep = snapend;	if (!TTEST(mh->ip6m_len)) {		/*		 * There's not enough captured data to include the		 * mobility header length.		 *		 * Our caller expects us to return the length, however,		 * so return a value that will run to the end of the		 * captured data.		 *		 * XXX - "ip6_print()" doesn't do anything with the		 * returned length, however, as it breaks out of the		 * header-processing loop.		 */		mhlen = ep - bp;		goto trunc;	}	mhlen = (int)((mh->ip6m_len + 1) << 3);	/* XXX ip6m_cksum */	TCHECK(mh->ip6m_type);	type = mh->ip6m_type;	switch (type) {	case IP6M_BINDING_REQUEST:		printf("mobility: BRR");		hlen = IP6M_MINLEN;		break;	case IP6M_HOME_TEST_INIT:	case IP6M_CAREOF_TEST_INIT:		printf("mobility: %soTI",			type == IP6M_HOME_TEST_INIT ? "H" : "C");		hlen = IP6M_MINLEN;    		if (vflag) {			TCHECK2(*mh, hlen + 8);			printf(" %s Init Cookie=%08x:%08x",			       type == IP6M_HOME_TEST_INIT ? "Home" : "Care-of",			       EXTRACT_32BITS(&bp[hlen]),			       EXTRACT_32BITS(&bp[hlen + 4]));		}		hlen += 8;		break;	case IP6M_HOME_TEST:	case IP6M_CAREOF_TEST:		printf("mobility: %soT",			type == IP6M_HOME_TEST ? "H" : "C");		TCHECK(mh->ip6m_data16[0]);		printf(" nonce id=0x%x", EXTRACT_16BITS(&mh->ip6m_data16[0]));		hlen = IP6M_MINLEN;    		if (vflag) {			TCHECK2(*mh, hlen + 8);			printf(" %s Init Cookie=%08x:%08x",			       type == IP6M_HOME_TEST ? "Home" : "Care-of",			       EXTRACT_32BITS(&bp[hlen]),			       EXTRACT_32BITS(&bp[hlen + 4]));		}		hlen += 8;    		if (vflag) {			TCHECK2(*mh, hlen + 8);			printf(" %s Keygen Token=%08x:%08x",			       type == IP6M_HOME_TEST ? "Home" : "Care-of",			       EXTRACT_32BITS(&bp[hlen]),			       EXTRACT_32BITS(&bp[hlen + 4]));		}		hlen += 8;		break;	case IP6M_BINDING_UPDATE:		printf("mobility: BU");		TCHECK(mh->ip6m_data16[0]);		printf(" seq#=%d", EXTRACT_16BITS(&mh->ip6m_data16[0]));		hlen = IP6M_MINLEN;		TCHECK2(*mh, hlen + 1);		if (bp[hlen] & 0xf0)			printf(" ");		if (bp[hlen] & 0x80)			printf("A");		if (bp[hlen] & 0x40)			printf("H");		if (bp[hlen] & 0x20)			printf("L");		if (bp[hlen] & 0x10)			printf("K");		/* Reserved (4bits) */		hlen += 1;		/* Reserved (8bits) */		hlen += 1;		TCHECK2(*mh, hlen + 2);		/* units of 4 secs */		printf(" lifetime=%d", EXTRACT_16BITS(&bp[hlen]) << 2);		hlen += 2;		break;	case IP6M_BINDING_ACK:		printf("mobility: BA");		TCHECK(mh->ip6m_data8[0]);		printf(" status=%d", mh->ip6m_data8[0]);		if (mh->ip6m_data8[1] & 0x80)			printf(" K");		/* Reserved (7bits) */		hlen = IP6M_MINLEN;		TCHECK2(*mh, hlen + 2);		printf(" seq#=%d", EXTRACT_16BITS(&bp[hlen]));		hlen += 2;		TCHECK2(*mh, hlen + 2);		/* units of 4 secs */		printf(" lifetime=%d", EXTRACT_16BITS(&bp[hlen]) << 2);		hlen += 2;		break;	case IP6M_BINDING_ERROR:		printf("mobility: BE");		TCHECK(mh->ip6m_data8[0]);		printf(" status=%d", mh->ip6m_data8[0]);		/* Reserved */		hlen = IP6M_MINLEN;		TCHECK2(*mh, hlen + 16);		printf(" homeaddr %s", ip6addr_string(&bp[hlen]));		hlen += 16;		break;	default:		printf("mobility: type-#%d len=%d", type, mh->ip6m_len);		return(mhlen);		break;	}    	if (vflag)		mobility_opt_print(&bp[hlen], mhlen - hlen);	return(mhlen); trunc:	fputs("[|MOBILITY]", stdout);	return(mhlen);}#endif /* INET6 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆91在线播放| 欧美放荡的少妇| 精品福利一区二区三区免费视频| 天天影视网天天综合色在线播放| 在线一区二区视频| 亚洲国产裸拍裸体视频在线观看乱了| 欧美日韩中文国产| 免费在线观看一区| 久久精品一区二区三区不卡牛牛 | 亚洲欧美日韩系列| 欧美日韩精品综合在线| 久久超碰97中文字幕| 欧美国产精品专区| 欧美亚洲图片小说| 国产在线播放一区三区四| 国产精品狼人久久影院观看方式| 色综合久久久久久久久| 肉丝袜脚交视频一区二区| 久久综合九色综合97_久久久| 成年人国产精品| 偷偷要91色婷婷| 国产亚洲制服色| 色先锋资源久久综合| 美女精品自拍一二三四| 日韩毛片精品高清免费| 91精品在线免费| gogo大胆日本视频一区| 全部av―极品视觉盛宴亚洲| 中文字幕一区二区三区乱码在线 | 7777精品伊人久久久大香线蕉完整版| 蜜桃视频一区二区三区在线观看| 国产精品女上位| 欧美一区二区三区视频在线 | 日韩一区二区麻豆国产| 一本色道久久综合精品竹菊| 精品一区二区在线播放| 亚洲国产精品久久久男人的天堂| 国产日韩欧美电影| 日韩一区二区在线看片| 在线区一区二视频| 成人国产视频在线观看| 激情五月婷婷综合| 青青青爽久久午夜综合久久午夜| 一区二区不卡在线视频 午夜欧美不卡在| 精品国产免费人成电影在线观看四季 | 日本不卡在线视频| 亚洲精品成人在线| 亚洲欧洲三级电影| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品伦理在线| 2024国产精品视频| 精品成人免费观看| 日韩欧美一区二区视频| 欧美日韩高清在线播放| 91视频国产观看| 99精品桃花视频在线观看| 国产一本一道久久香蕉| 国产一区二区在线看| 久久电影国产免费久久电影 | 日韩精品一区二区三区视频播放 | 午夜精品久久久久久久久久| 亚洲免费观看高清| 亚洲精品五月天| 一区二区高清免费观看影视大全| 亚洲精品国产视频| 亚洲综合免费观看高清在线观看| 亚洲国产成人av网| 国产成人av电影在线| 久久电影网站中文字幕| 国产在线乱码一区二区三区| 久久99久久精品| 成人性生交大片免费看视频在线 | 一区二区三区免费在线观看| 亚洲人吸女人奶水| 亚洲网友自拍偷拍| 美女诱惑一区二区| 成人小视频在线| 在线免费精品视频| 欧美一级理论性理论a| 久久理论电影网| 中文字幕在线不卡| 亚洲国产精品视频| 国模套图日韩精品一区二区| 国产激情视频一区二区三区欧美| av在线不卡免费看| 欧美人妖巨大在线| 国产亚洲视频系列| 最近日韩中文字幕| 日本亚洲视频在线| 高清av一区二区| 欧美网站大全在线观看| 日韩你懂的电影在线观看| 中文字幕二三区不卡| 亚洲第一在线综合网站| 久久成人av少妇免费| 色婷婷av一区| 精品美女一区二区| 亚洲欧洲日产国产综合网| 亚洲第一激情av| 成人天堂资源www在线| 欧美日韩三级视频| 婷婷六月综合网| 激情综合亚洲精品| 欧美日精品一区视频| 国产亚洲一本大道中文在线| 亚洲chinese男男1069| 成人午夜激情片| 精品国产乱码久久久久久闺蜜| 国产精品卡一卡二| 久久99这里只有精品| 欧美日韩亚洲综合一区二区三区| 国产亚洲欧美日韩在线一区| 天天综合网天天综合色| 91麻豆国产在线观看| 国产欧美日韩卡一| 国产最新精品免费| 91精品欧美综合在线观看最新| 成人欧美一区二区三区黑人麻豆| 久久精品国产澳门| 在线观看日韩高清av| 国产精品久久午夜| 国产精品一区二区三区乱码| 欧美精品一级二级| 一区二区三区色| 91丨九色porny丨蝌蚪| 亚洲国产高清不卡| 国产成人在线视频免费播放| 精品日韩在线一区| 日韩精品一卡二卡三卡四卡无卡| 91福利在线看| 亚洲精品国产第一综合99久久| av爱爱亚洲一区| 中文字幕一区在线| 97精品久久久久中文字幕 | 2021国产精品久久精品| 五月开心婷婷久久| 3d成人动漫网站| 成人国产电影网| 国产视频一区二区在线| 国产呦萝稀缺另类资源| 久久久久九九视频| 国产a精品视频| 日韩一区中文字幕| 欧美在线视频全部完| 亚洲精品综合在线| 欧美视频一区二区三区在线观看| 亚洲精品一二三| 欧美精品亚洲一区二区在线播放| 午夜精品久久久久久久| 91麻豆精品国产91久久久久 | 99re成人精品视频| 亚洲一区自拍偷拍| 日韩一级免费观看| 国产精品资源在线| 国产精品福利一区二区三区| 成人avav在线| 亚洲日本欧美天堂| 欧美精品18+| 久久精品国产秦先生| 国产无一区二区| 欧美亚洲另类激情小说| 三级欧美在线一区| 久久久激情视频| 欧洲人成人精品| 精品制服美女丁香| 中文字幕亚洲欧美在线不卡| 在线亚洲一区二区| 久久国产精品99久久久久久老狼 | 7777精品伊人久久久大香线蕉完整版 | 麻豆国产一区二区| 久久精品视频免费| 在线影院国内精品| 国产综合成人久久大片91| 自拍视频在线观看一区二区| 欧美日韩视频在线观看一区二区三区| 青椒成人免费视频| 国产精品国产三级国产普通话99 | 视频一区二区三区在线| 国产三级一区二区| 欧美精品免费视频| 成人免费黄色大片| 免费黄网站欧美| 一区二区三区四区视频精品免费| 这里是久久伊人| av电影在线观看完整版一区二区| 日韩中文字幕亚洲一区二区va在线| 国产亚洲视频系列| 欧美一区日韩一区| 91极品视觉盛宴| 成人网男人的天堂| 久久se精品一区精品二区| 亚洲黄色小视频| 亚洲国产激情av| 精品sm捆绑视频| 欧美日本视频在线| 欧洲一区二区三区在线| jizz一区二区| 大白屁股一区二区视频| 久久国产精品第一页| 午夜亚洲国产au精品一区二区|