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

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

?? print-pgm.c

?? TCPDUMP的C語言源代碼,是在數據鏈路層的應用
?? C
?? 第 1 頁 / 共 2 頁
字號:
	     */	    switch (EXTRACT_16BITS(&nak->pgmn_source_afi)) {	    case AFI_IP:		addr_size = sizeof(struct in_addr);		source_af = AF_INET;		break;#ifdef INET6	    case AFI_IP6:		addr_size = sizeof(struct in6_addr);		source_af = AF_INET6;		break;#endif	    default:		goto trunc;		break;	    }	    bp = (u_char *) (nak + 1);	    TCHECK2(*bp, addr_size);	    source = bp;	    bp += addr_size;	    /*	     * Skip past the group, saving info along the way	     * and stopping if we don't have enough.	     */	    switch (EXTRACT_16BITS(bp)) {	    case AFI_IP:		addr_size = sizeof(struct in_addr);		group_af = AF_INET;		break;#ifdef INET6	    case AFI_IP6:		addr_size = sizeof(struct in6_addr);		group_af = AF_INET6;		break;#endif	    default:		goto trunc;		break;	    }	    bp += (2 * sizeof(u_int16_t));	    TCHECK2(*bp, addr_size);	    group = bp;	    bp += addr_size;	    /*	     * Options decoding can go here.	     */	    inet_ntop(source_af, source, source_buf, sizeof(source_buf));	    inet_ntop(group_af, group, group_buf, sizeof(group_buf));	    switch (pgm->pgm_type) {		case PGM_NAK:		    (void)printf("NAK ");		    break;		case PGM_NULLNAK:		    (void)printf("NNAK ");		    break;		case PGM_NCF:		    (void)printf("NCF ");		    break;		default:                    break;	    }	    (void)printf("(%s -> %s), seq %u",			 source_buf, group_buf, EXTRACT_32BITS(&nak->pgmn_seq));	    break;	}	case PGM_SPMR:	    (void)printf("SPMR");	    break;	default:	    (void)printf("UNKNOWN type %0x02x", pgm->pgm_type);	    break;	}	if (pgm->pgm_options & PGM_OPT_BIT_PRESENT) {      	    /*	     * make sure there's enough for the first option header	     */	    if (!TTEST2(*bp, PGM_MIN_OPT_LEN)) {		(void)printf("[|OPT]");		return;	    } 	    /*	     * That option header MUST be an OPT_LENGTH option	     * (see the first paragraph of section 9.1 in RFC 3208).	     */	    opt_type = *bp++;	    if ((opt_type & PGM_OPT_MASK) != PGM_OPT_LENGTH) {		(void)printf("[First option bad, should be PGM_OPT_LENGTH, is %u]", opt_type & PGM_OPT_MASK);		return;	    }	    opt_len = *bp++;	    if (opt_len != 4) {		(void)printf("[Bad OPT_LENGTH option, length %u != 4]", opt_len);		return;	    }	    opts_len = EXTRACT_16BITS(bp);	    if (opts_len < 4) {		(void)printf("[Bad total option length %u < 4]", opts_len);		return;	    }	    bp += sizeof(u_int16_t);	    (void)printf(" OPTS LEN %d", opts_len);	    opts_len -= 4;	    while (opts_len) {		if (opts_len < PGM_MIN_OPT_LEN) {		    (void)printf("[Total option length leaves no room for final option]");		    return;		}		opt_type = *bp++;		opt_len = *bp++;		if (opt_len < PGM_MIN_OPT_LEN) {		    (void)printf("[Bad option, length %u < %u]", opt_len,		        PGM_MIN_OPT_LEN);		    break;		}		if (opts_len < opt_len) {		    (void)printf("[Total option length leaves no room for final option]");		    return;		}		if (!TTEST2(*bp, opt_len - 2)) {		    (void)printf(" [|OPT]");		    return;		} 		switch (opt_type & PGM_OPT_MASK) {		case PGM_OPT_LENGTH:		    if (opt_len != 4) {			(void)printf("[Bad OPT_LENGTH option, length %u != 4]", opt_len);			return;		    }		    (void)printf(" OPTS LEN (extra?) %d", EXTRACT_16BITS(bp));		    bp += sizeof(u_int16_t);		    opts_len -= 4;		    break;		case PGM_OPT_FRAGMENT:		    if (opt_len != 16) {			(void)printf("[Bad OPT_FRAGMENT option, length %u != 16]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    seq = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    offset = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    len = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    (void)printf(" FRAG seq %u off %u len %u", seq, offset, len);		    opts_len -= 16;		    break;		case PGM_OPT_NAK_LIST:		    flags1 = *bp++;		    flags2 = *bp++;		    opt_len -= sizeof(u_int32_t);	/* option header */		    (void)printf(" NAK LIST");		    while (opt_len) {			if (opt_len < sizeof(u_int32_t)) {			    (void)printf("[Option length not a multiple of 4]");			    return;			}			TCHECK2(*bp, sizeof(u_int32_t));			(void)printf(" %u", EXTRACT_32BITS(bp));			bp += sizeof(u_int32_t);			opt_len -= sizeof(u_int32_t);			opts_len -= sizeof(u_int32_t);		    }		    break;		case PGM_OPT_JOIN:		    if (opt_len != 8) {			(void)printf("[Bad OPT_JOIN option, length %u != 8]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    seq = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    (void)printf(" JOIN %u", seq);		    opts_len -= 8;		    break;		case PGM_OPT_NAK_BO_IVL:		    if (opt_len != 12) {			(void)printf("[Bad OPT_NAK_BO_IVL option, length %u != 12]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    offset = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    seq = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    (void)printf(" BACKOFF ivl %u ivlseq %u", offset, seq);		    opts_len -= 12;		    break;		case PGM_OPT_NAK_BO_RNG:		    if (opt_len != 12) {			(void)printf("[Bad OPT_NAK_BO_RNG option, length %u != 12]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    offset = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    seq = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    (void)printf(" BACKOFF max %u min %u", offset, seq);		    opts_len -= 12;		    break;		case PGM_OPT_REDIRECT:		    flags1 = *bp++;		    flags2 = *bp++;		    switch (EXTRACT_16BITS(bp)) {		    case AFI_IP:			addr_size = sizeof(struct in_addr);			nla_af = AF_INET;			break;#ifdef INET6		    case AFI_IP6:			addr_size = sizeof(struct in6_addr);			nla_af = AF_INET6;			break;#endif		    default:			goto trunc;			break;		    }		    bp += (2 * sizeof(u_int16_t));		    if (opt_len != 4 + addr_size) {			(void)printf("[Bad OPT_REDIRECT option, length %u != 4 + address size]", opt_len);			return;		    }		    TCHECK2(*bp, addr_size);		    nla = bp;		    bp += addr_size;		    inet_ntop(nla_af, nla, nla_buf, sizeof(nla_buf));		    (void)printf(" REDIRECT %s",  (char *)nla);		    opts_len -= 4 + addr_size;		    break;		case PGM_OPT_PARITY_PRM:		    if (opt_len != 8) {			(void)printf("[Bad OPT_PARITY_PRM option, length %u != 8]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    len = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    (void)printf(" PARITY MAXTGS %u", len);		    opts_len -= 8;		    break;		case PGM_OPT_PARITY_GRP:		    if (opt_len != 8) {			(void)printf("[Bad OPT_PARITY_GRP option, length %u != 8]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    seq = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    (void)printf(" PARITY GROUP %u", seq);		    opts_len -= 8;		    break;		case PGM_OPT_CURR_TGSIZE:		    if (opt_len != 8) {			(void)printf("[Bad OPT_CURR_TGSIZE option, length %u != 8]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    len = EXTRACT_32BITS(bp);		    bp += sizeof(u_int32_t);		    (void)printf(" PARITY ATGS %u", len);		    opts_len -= 8;		    break;		case PGM_OPT_NBR_UNREACH:		    if (opt_len != 4) {			(void)printf("[Bad OPT_NBR_UNREACH option, length %u != 4]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    (void)printf(" NBR_UNREACH");		    opts_len -= 4;		    break;		case PGM_OPT_PATH_NLA:		    (void)printf(" PATH_NLA [%d]", opt_len);		    bp += opt_len;		    opts_len -= opt_len;		    break;		case PGM_OPT_SYN:		    if (opt_len != 4) {			(void)printf("[Bad OPT_SYN option, length %u != 4]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    (void)printf(" SYN");		    opts_len -= 4;		    break;		case PGM_OPT_FIN:		    if (opt_len != 4) {			(void)printf("[Bad OPT_FIN option, length %u != 4]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    (void)printf(" FIN");		    opts_len -= 4;		    break;		case PGM_OPT_RST:		    if (opt_len != 4) {			(void)printf("[Bad OPT_RST option, length %u != 4]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    (void)printf(" RST");		    opts_len -= 4;		    break;		case PGM_OPT_CR:		    (void)printf(" CR");		    bp += opt_len;		    opts_len -= opt_len;		    break;		case PGM_OPT_CRQST:		    if (opt_len != 4) {			(void)printf("[Bad OPT_CRQST option, length %u != 4]", opt_len);			return;		    }		    flags1 = *bp++;		    flags2 = *bp++;		    (void)printf(" CRQST");		    opts_len -= 4;		    break;		default:		    (void)printf(" OPT_%02X [%d] ", opt_type, opt_len);		    bp += opt_len;		    opts_len -= opt_len;		    break;		}		if (opt_type & PGM_OPT_END)		    break;	     }	}	(void)printf(" [%u]", EXTRACT_16BITS(&pgm->pgm_length));	return;trunc:	fputs("[|pgm]", stdout);	if (ch != '\0')		putchar('>');}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品gif动图一区| 国产精品美女久久久久aⅴ| 久久久精品欧美丰满| 亚洲乱码国产乱码精品精98午夜 | 日韩欧美一区二区三区在线| 国产精品久久精品日日| 麻豆精品精品国产自在97香蕉| 99久久久精品免费观看国产蜜| 久久综合色婷婷| 午夜不卡av在线| 色88888久久久久久影院按摩 | 亚洲视频 欧洲视频| 国产综合成人久久大片91| 欧美视频自拍偷拍| 亚洲欧美在线视频| 成人毛片在线观看| 久久影院午夜片一区| 日本亚洲天堂网| 678五月天丁香亚洲综合网| 亚洲一级二级在线| 91国模大尺度私拍在线视频| 中文字幕在线不卡国产视频| 国精品**一区二区三区在线蜜桃| 欧美精品在线观看一区二区| 亚洲综合一二区| 91成人在线精品| 一区二区三区在线免费观看| 成人精品视频一区二区三区 | 亚洲一级电影视频| 日本电影亚洲天堂一区| 亚洲丝袜另类动漫二区| 成人精品免费看| 自拍偷拍亚洲综合| 91丝袜高跟美女视频| 亚洲欧美偷拍三级| 在线亚洲免费视频| 午夜久久福利影院| 5566中文字幕一区二区电影| 日韩国产在线观看一区| 日韩一区二区麻豆国产| 精品在线你懂的| 久久久亚洲精品一区二区三区| 国产成人无遮挡在线视频| 日本一区二区三区dvd视频在线| 成人自拍视频在线| 亚洲视频资源在线| 欧美日韩精品免费观看视频| 奇米精品一区二区三区在线观看 | 91精品国产日韩91久久久久久| 天天综合日日夜夜精品| 666欧美在线视频| 国产一区999| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91丨九色丨蝌蚪富婆spa| 亚洲国产综合视频在线观看| 欧美xxxxx牲另类人与| 国产成人亚洲综合a∨婷婷图片| 亚洲图片另类小说| 欧美亚洲国产怡红院影院| 美女精品自拍一二三四| 国产精品不卡一区| 欧美日韩精品一区二区天天拍小说| 麻豆精品视频在线观看| 国产精品看片你懂得| 欧美乱妇23p| 成人性色生活片免费看爆迷你毛片| 亚洲一区在线观看免费观看电影高清 | 美女久久久精品| 亚洲欧美综合色| 日韩久久久久久| 91麻豆精品在线观看| 久久疯狂做爰流白浆xx| 亚洲激情六月丁香| 久久久久久一二三区| 在线观看国产一区二区| 国产米奇在线777精品观看| 亚洲精品成人少妇| 精品毛片乱码1区2区3区| 欧美丝袜第三区| 成人黄色国产精品网站大全在线免费观看 | 欧美日韩成人一区二区| 国产精品91一区二区| 亚洲电影在线免费观看| 国产日韩av一区| 欧美一级黄色大片| 在线视频一区二区三| 粉嫩一区二区三区在线看| 亚洲成人黄色影院| 自拍偷拍亚洲综合| 中文字幕欧美激情一区| 精品精品国产高清一毛片一天堂| 在线看一区二区| 91在线视频在线| 成人综合婷婷国产精品久久蜜臀| 日韩电影在线一区| 亚洲超碰精品一区二区| 亚洲欧美一区二区三区久本道91 | 欧美高清性hdvideosex| 色偷偷88欧美精品久久久| 国产成人亚洲综合a∨猫咪| 久久精品国产久精国产| 午夜久久久久久久久| 亚洲精品美国一| 国产精品初高中害羞小美女文| 久久久久久夜精品精品免费| 日韩女优视频免费观看| 欧美久久久久久蜜桃| 欧美日韩国产一级片| 在线观看一区日韩| 在线看不卡av| 欧美视频在线观看一区二区| 91网站在线播放| 一本大道综合伊人精品热热| 97超碰欧美中文字幕| 99综合电影在线视频| av综合在线播放| 色综合久久久久| 欧美综合在线视频| 欧美午夜电影一区| 欧美日韩国产综合一区二区三区| 91久久精品一区二区| 欧美日韩成人激情| 日韩精品在线一区| 中文字幕欧美日韩一区| 亚洲乱码中文字幕综合| 樱花草国产18久久久久| 亚洲精品成人天堂一二三| 亚洲国产另类精品专区| 美女免费视频一区二区| 国产在线观看免费一区| 99这里只有久久精品视频| 欧洲生活片亚洲生活在线观看| 91成人免费电影| 91精品国产色综合久久不卡电影| 欧美一级艳片视频免费观看| 精品成人一区二区三区四区| 欧美激情一区二区三区四区 | 日本欧美一区二区在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 美美哒免费高清在线观看视频一区二区 | 国产mv日韩mv欧美| 91麻豆精东视频| 欧美精品日韩一区| 久久久久久久综合| 亚洲欧美一区二区久久| 日本sm残虐另类| 成人18视频在线播放| 91精品黄色片免费大全| 国产欧美视频一区二区| 亚洲成人一区二区| 国产成人在线视频免费播放| 色八戒一区二区三区| 精品第一国产综合精品aⅴ| 亚洲欧美日韩系列| 精品中文av资源站在线观看| 99精品国产99久久久久久白柏| 欧美日韩精品免费观看视频| 久久久精品2019中文字幕之3| 亚洲另类在线视频| 国产乱子伦视频一区二区三区 | 99热在这里有精品免费| 在线综合亚洲欧美在线视频| 欧美韩国日本不卡| 麻豆国产精品官网| 欧美写真视频网站| 国产视频一区在线播放| 日本欧美一区二区三区乱码| 一本一本久久a久久精品综合麻豆| 日韩欧美精品在线视频| 亚洲免费观看高清完整| 国产经典欧美精品| 欧美美女一区二区三区| 亚洲三级免费电影| 国产99一区视频免费| 欧美一级欧美一级在线播放| 亚洲精品欧美专区| 成人精品视频一区二区三区尤物| 欧美mv和日韩mv国产网站| 香蕉成人伊视频在线观看| 99久久精品免费看| 国产欧美日韩亚州综合| 久久er99精品| 日韩色在线观看| 亚洲aaa精品| 欧美性做爰猛烈叫床潮| 亚洲免费观看高清完整| 成a人片亚洲日本久久| 国产欧美日韩激情| 国产不卡视频在线观看| 欧美国产精品中文字幕| 国产经典欧美精品| 国产日产亚洲精品系列| 国产成a人亚洲精品| 久久精品视频在线看| 激情五月婷婷综合| 欧美成人r级一区二区三区| 午夜精品久久久久久久久| 欧美丰满少妇xxxbbb| 美女免费视频一区| 精品成人佐山爱一区二区|