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

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

?? print-ospf.c

?? TCPDUMP的C語言源代碼,是在數據鏈路層的應用
?? C
?? 第 1 頁 / 共 3 頁
字號:
                    }                    TCHECK2(*tptr, tlv_length);                    switch(tlv_type) {                    case LS_OPAQUE_RI_TLV_CAP:                        if (tlv_length != 4) {                            printf("\n\t    Bogus length %u != 4", tlv_length);                            return(ls_end);                        }                        printf("Capabilities: %s",                               bittok2str(lsa_opaque_ri_tlv_cap_values, "Unknown", EXTRACT_32BITS(tptr)));                        break;                    default:                        if (vflag <= 1) {                            if(!print_unknown_data(tptr,"\n\t      ",tlv_length))                                return(ls_end);                        }                        break;                    }                    tptr+=tlv_length;                    ls_length-=tlv_length;                }                break;            case LS_OPAQUE_TYPE_GRACE:                if (ospf_print_grace_lsa((u_int8_t *)(&lsap->lsa_un.un_grace_tlv.type),                                         ls_length) == -1) {                    return(ls_end);                }                break;	    case LS_OPAQUE_TYPE_TE:                if (ospf_print_te_lsa((u_int8_t *)(&lsap->lsa_un.un_te_lsa_tlv.type),                                      ls_length) == -1) {                    return(ls_end);                }                break;            default:                if (vflag <= 1) {                    if(!print_unknown_data((u_int8_t *)lsap->lsa_un.un_unknown,                                           "\n\t    ", ls_length))                        return(ls_end);                }                 break;            }        }        /* do we want to see an additionally hexdump ? */        if (vflag> 1)            if(!print_unknown_data((u_int8_t *)lsap->lsa_un.un_unknown,                                   "\n\t    ", ls_length)) {                return(ls_end);            }        	return (ls_end);trunc:	return (NULL);}static intospf_decode_lls(register const struct ospfhdr *op,		register u_int length){    register const u_char *dptr;    register const u_char *dataend;    register u_int length2;    register u_int16_t lls_type, lls_len;    register u_int32_t lls_flags;    switch (op->ospf_type) {    case OSPF_TYPE_HELLO:        if (!(op->ospf_hello.hello_options & OSPF_OPTION_L))            return (0);        break;    case OSPF_TYPE_DD:        if (!(op->ospf_db.db_options & OSPF_OPTION_L))            return (0);        break;    default:        return (0);    }    /* dig deeper if LLS data is available; see RFC4813 */    length2 = EXTRACT_16BITS(&op->ospf_len);    dptr = (u_char *)op + length2;    dataend = (u_char *)op + length;    if (EXTRACT_16BITS(&op->ospf_authtype) == OSPF_AUTH_MD5) {        dptr = dptr + op->ospf_authdata[3];        length2 += op->ospf_authdata[3];    }    if (length2 >= length) {        printf("\n\t[LLS truncated]");        return (1);    }    TCHECK2(*dptr, 2);    printf("\n\t  LLS: checksum: 0x%04x", (u_int)EXTRACT_16BITS(dptr));    dptr += 2;    TCHECK2(*dptr, 2);    length2 = EXTRACT_16BITS(dptr);    printf(", length: %u", length2);    dptr += 2;    TCHECK(*dptr);    while (dptr < dataend) {        TCHECK2(*dptr, 2);        lls_type = EXTRACT_16BITS(dptr);        printf("\n\t    %s (%u)",               tok2str(ospf_lls_tlv_values,"Unknown TLV",lls_type),               lls_type);        dptr += 2;        TCHECK2(*dptr, 2);        lls_len = EXTRACT_16BITS(dptr);        printf(", length: %u", lls_len);        dptr += 2;        switch (lls_type) {        case OSPF_LLS_EO:            if (lls_len != 4) {                printf(" [should be 4]");                lls_len = 4;            }            TCHECK2(*dptr, 4);            lls_flags = EXTRACT_32BITS(dptr);            printf("\n\t      Options: 0x%08x [%s]", lls_flags,                   bittok2str(ospf_lls_eo_options,"?",lls_flags));            break;        case OSPF_LLS_MD5:            if (lls_len != 20) {                printf(" [should be 20]");                lls_len = 20;            }			TCHECK2(*dptr, 4);            printf("\n\t      Sequence number: 0x%08x", EXTRACT_32BITS(dptr));            break;        }        dptr += lls_len;    }    return (0);trunc:    return (1);}static intospf_decode_v2(register const struct ospfhdr *op,    register const u_char *dataend){	register const struct in_addr *ap;	register const struct lsr *lsrp;	register const struct lsa_hdr *lshp;	register const struct lsa *lsap;	register u_int32_t lsa_count,lsa_count_max;	switch (op->ospf_type) {	case OSPF_TYPE_UMD:		/*		 * Rob Coltun's special monitoring packets;		 * do nothing		 */		break;	case OSPF_TYPE_HELLO:                printf("\n\tOptions [%s]",                       bittok2str(ospf_option_values,"none",op->ospf_hello.hello_options));                TCHECK(op->ospf_hello.hello_deadint);                printf("\n\t  Hello Timer %us, Dead Timer %us, Mask %s, Priority %u",                       EXTRACT_16BITS(&op->ospf_hello.hello_helloint),                       EXTRACT_32BITS(&op->ospf_hello.hello_deadint),                       ipaddr_string(&op->ospf_hello.hello_mask),                       op->ospf_hello.hello_priority);		TCHECK(op->ospf_hello.hello_dr);		if (op->ospf_hello.hello_dr.s_addr != 0)			printf("\n\t  Designated Router %s",			    ipaddr_string(&op->ospf_hello.hello_dr));		TCHECK(op->ospf_hello.hello_bdr);		if (op->ospf_hello.hello_bdr.s_addr != 0)			printf(", Backup Designated Router %s",			    ipaddr_string(&op->ospf_hello.hello_bdr));                ap = op->ospf_hello.hello_neighbor;                if ((u_char *)ap < dataend)                        printf("\n\t  Neighbor List:");                while ((u_char *)ap < dataend) {                        TCHECK(*ap);                        printf("\n\t    %s", ipaddr_string(ap));                        ++ap;                }		break;	/* HELLO */	case OSPF_TYPE_DD:		TCHECK(op->ospf_db.db_options);                printf("\n\tOptions [%s]",                       bittok2str(ospf_option_values,"none",op->ospf_db.db_options));		TCHECK(op->ospf_db.db_flags);                printf(", DD Flags [%s]",                       bittok2str(ospf_dd_flag_values,"none",op->ospf_db.db_flags));                TCHECK(op->ospf_db.db_ifmtu);                if (op->ospf_db.db_ifmtu) {                        printf(", MTU: %u", ntohs(op->ospf_db.db_ifmtu));                }                TCHECK(op->ospf_db.db_seq);                printf(", Sequence: 0x%08x", EXTRACT_32BITS(&op->ospf_db.db_seq));                /* Print all the LS adv's */                lshp = op->ospf_db.db_lshdr;                while (((u_char *)lshp < dataend) && ospf_print_lshdr(lshp) != -1) {                    ++lshp;                }		break;	case OSPF_TYPE_LS_REQ:                lsrp = op->ospf_lsr;                while ((u_char *)lsrp < dataend) {                    TCHECK(*lsrp);                    printf("\n\t  Advertising Router: %s, %s LSA (%u)",                           ipaddr_string(&lsrp->ls_router),                           tok2str(lsa_values,"unknown",EXTRACT_32BITS(lsrp->ls_type)),                           EXTRACT_32BITS(&lsrp->ls_type));                    switch (EXTRACT_32BITS(lsrp->ls_type)) {                        /* the LSA header for opaque LSAs was slightly changed */                    case LS_TYPE_OPAQUE_LL:                    case LS_TYPE_OPAQUE_AL:                    case LS_TYPE_OPAQUE_DW:                        printf(", Opaque-Type: %s LSA (%u), Opaque-ID: %u",                               tok2str(lsa_opaque_values, "unknown",lsrp->un_ls_stateid.opaque_field.opaque_type),                               lsrp->un_ls_stateid.opaque_field.opaque_type,                               EXTRACT_24BITS(&lsrp->un_ls_stateid.opaque_field.opaque_id));                        break;                    default:                        printf(", LSA-ID: %s",                               ipaddr_string(&lsrp->un_ls_stateid.ls_stateid));                        break;                    }                                        ++lsrp;                }		break;	case OSPF_TYPE_LS_UPDATE:                lsap = op->ospf_lsu.lsu_lsa;                TCHECK(op->ospf_lsu.lsu_count);                lsa_count_max = EXTRACT_32BITS(&op->ospf_lsu.lsu_count);                printf(", %d LSA%s",lsa_count_max, lsa_count_max > 1 ? "s" : "");                for (lsa_count=1;lsa_count <= lsa_count_max;lsa_count++) {                    printf("\n\t  LSA #%u",lsa_count);                        lsap = (const struct lsa *)ospf_print_lsa(lsap);                        if (lsap == NULL)                                goto trunc;                }		break;	case OSPF_TYPE_LS_ACK:                lshp = op->ospf_lsa.lsa_lshdr;                while (ospf_print_lshdr(lshp) != -1) {                    ++lshp;                }                break;	default:		break;	}	return (0);trunc:	return (1);}voidospf_print(register const u_char *bp, register u_int length,    const u_char *bp2 _U_){	register const struct ospfhdr *op;	register const u_char *dataend;	register const char *cp;	op = (struct ospfhdr *)bp;        /* XXX Before we do anything else, strip off the MD5 trailer */        TCHECK(op->ospf_authtype);        if (EXTRACT_16BITS(&op->ospf_authtype) == OSPF_AUTH_MD5) {                length -= OSPF_AUTH_MD5_LEN;                snapend -= OSPF_AUTH_MD5_LEN;        }	/* If the type is valid translate it, or just print the type */	/* value.  If it's not valid, say so and return */	TCHECK(op->ospf_type);	cp = tok2str(type2str, "unknown LS-type", op->ospf_type);	printf("OSPFv%u, %s, length %u",	       op->ospf_version,	       cp,	       length);	if (*cp == 'u')		return;        if(!vflag) { /* non verbose - so lets bail out here */                return;        }	TCHECK(op->ospf_len);	if (length != EXTRACT_16BITS(&op->ospf_len)) {		printf(" [len %d]", EXTRACT_16BITS(&op->ospf_len));	}	if (length > EXTRACT_16BITS(&op->ospf_len)) {		dataend = bp + EXTRACT_16BITS(&op->ospf_len);	} else {		dataend = bp + length;	}	TCHECK(op->ospf_routerid);        printf("\n\tRouter-ID %s", ipaddr_string(&op->ospf_routerid));	TCHECK(op->ospf_areaid);	if (op->ospf_areaid.s_addr != 0)		printf(", Area %s", ipaddr_string(&op->ospf_areaid));	else		printf(", Backbone Area");	if (vflag) {		/* Print authentication data (should we really do this?) */		TCHECK2(op->ospf_authdata[0], sizeof(op->ospf_authdata));                printf(", Authentication Type: %s (%u)",                       tok2str(ospf_authtype_values,"unknown",EXTRACT_16BITS(&op->ospf_authtype)),                       EXTRACT_16BITS(&op->ospf_authtype));		switch (EXTRACT_16BITS(&op->ospf_authtype)) {		case OSPF_AUTH_NONE:			break;		case OSPF_AUTH_SIMPLE:                        printf("\n\tSimple text password: ");                        safeputs((const char *)op->ospf_authdata, OSPF_AUTH_SIMPLE_LEN);			break;		case OSPF_AUTH_MD5:                        printf("\n\tKey-ID: %u, Auth-Length: %u, Crypto Sequence Number: 0x%08x",                               *((op->ospf_authdata)+2),                               *((op->ospf_authdata)+3),                               EXTRACT_32BITS((op->ospf_authdata)+4));			break;		default:			return;		}	}	/* Do rest according to version.	 */	switch (op->ospf_version) {	case 2:		/* ospf version 2 */		if (ospf_decode_v2(op, dataend))			goto trunc;		if (length > EXTRACT_16BITS(&op->ospf_len)) {			if (ospf_decode_lls(op, length))				goto trunc;		}		break;	default:		printf(" ospf [version %d]", op->ospf_version);		break;	}			/* end switch on version */	return;trunc:	fputs(tstr, stdout);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美二区三区| 国产成a人亚洲精品| 91伊人久久大香线蕉| 精品粉嫩aⅴ一区二区三区四区| 亚洲一区在线观看视频| 91美女蜜桃在线| 日韩欧美在线网站| 六月丁香婷婷色狠狠久久| 欧美色男人天堂| 亚洲成a人v欧美综合天堂下载 | 91免费视频观看| 国产亚洲欧洲997久久综合| 国产一区福利在线| 欧美视频精品在线观看| 亚洲午夜久久久久中文字幕久| 欧美午夜精品久久久久久孕妇| 亚洲一区二区视频在线观看| 色成年激情久久综合| 国产日韩av一区二区| 成人av网站在线观看| 伊人夜夜躁av伊人久久| 91极品美女在线| 日本三级亚洲精品| 在线精品观看国产| 日韩精品电影在线观看| 日韩精品一区二区三区三区免费 | 久久综合色播五月| 狠狠色伊人亚洲综合成人| 91精品国产高清一区二区三区 | 亚洲国产精品久久久久秋霞影院| 欧美日韩在线一区二区| 蜜臀av性久久久久av蜜臀妖精| 精品国产一区二区三区久久影院 | 一区二区三区在线播放| 欧美一级片在线看| 国产v日产∨综合v精品视频| 视频一区在线视频| 最好看的中文字幕久久| 日韩欧美一二区| 色成人在线视频| 国产大陆亚洲精品国产| 天天射综合影视| 国产精品久久久久久久久久久免费看| 欧美精品亚洲二区| 一本大道综合伊人精品热热| 国产精品一区二区三区网站| 天天操天天色综合| 亚洲三级视频在线观看| 国产欧美日本一区二区三区| 欧美一级精品在线| 欧美日韩精品一区二区| 粉嫩av一区二区三区在线播放| 日韩av电影免费观看高清完整版 | 亚洲三级小视频| 国产日韩欧美在线一区| 日韩午夜激情视频| 欧美性做爰猛烈叫床潮| 91免费观看在线| 成人高清免费观看| 国产成人日日夜夜| 国产一区二区不卡老阿姨| 蜜臀va亚洲va欧美va天堂| 亚洲国产中文字幕在线视频综合| 亚洲欧美激情小说另类| 最近日韩中文字幕| 中文字幕一区不卡| 中文字幕一区二区在线观看| 国产精品青草久久| 欧美国产日韩精品免费观看| 久久久精品免费免费| 久久久精品天堂| 国产人成亚洲第一网站在线播放| 久久久久国产精品麻豆| 国产欧美一区二区精品忘忧草 | 在线播放视频一区| 欧美精品三级日韩久久| 欧美老人xxxx18| 日韩一级免费观看| 精品少妇一区二区三区在线播放| 日韩视频一区二区三区在线播放| 欧美一区二区三区免费视频| 日韩欧美一区二区视频| 精品久久久久一区| 国产日韩精品一区| 国产精品二区一区二区aⅴ污介绍| 国产精品精品国产色婷婷| 亚洲少妇中出一区| 亚洲午夜久久久久久久久电影院| 日韩在线卡一卡二| 国产综合色在线视频区| 国产九色sp调教91| 91美女福利视频| 欧美伦理电影网| 久久这里只有精品6| 国产精品网站在线| 国产乱一区二区| 国产99久久久久| 成人18视频在线播放| 国产91色综合久久免费分享| 日韩电影在线免费看| 另类专区欧美蜜桃臀第一页| 国产精品一区2区| 91天堂素人约啪| 精品视频一区三区九区| 欧美精品一区二区蜜臀亚洲| 国产精品日韩成人| 天堂在线亚洲视频| 国产成人综合亚洲91猫咪| 91电影在线观看| 日韩欧美在线综合网| 成人欧美一区二区三区小说| 婷婷夜色潮精品综合在线| 国产精品影视在线| 一本色道久久加勒比精品| 337p亚洲精品色噜噜| 国产精品丝袜黑色高跟| 亚洲第一电影网| 国产成人亚洲综合a∨婷婷| 欧美亚洲高清一区| 久久一二三国产| 一区二区三区在线影院| 国产酒店精品激情| 欧美日高清视频| 国产精品嫩草影院com| 日本在线不卡视频| 91免费版pro下载短视频| 捆绑紧缚一区二区三区视频| 久久99精品国产.久久久久| 色综合久久九月婷婷色综合| 日韩精品一区国产麻豆| 一区二区视频在线| 国产精品亚洲午夜一区二区三区 | 4438成人网| 亚洲免费av观看| 国产91精品一区二区麻豆亚洲| 欧美人狂配大交3d怪物一区| 中文字幕一区二区三区四区| 捆绑调教一区二区三区| 欧美日韩精品系列| 亚洲美女精品一区| 丁香婷婷深情五月亚洲| 欧美草草影院在线视频| 一区二区国产视频| gogo大胆日本视频一区| 精品处破学生在线二十三| 日韩精品一区第一页| 欧洲亚洲国产日韩| 最近中文字幕一区二区三区| 国产ts人妖一区二区| 久久你懂得1024| 国内偷窥港台综合视频在线播放| 欧美精品自拍偷拍| 亚洲五月六月丁香激情| 色婷婷av一区| 成人欧美一区二区三区白人| 国产福利不卡视频| 久久精品水蜜桃av综合天堂| 国产一区视频网站| 久久综合九色综合欧美98| 日韩 欧美一区二区三区| 555www色欧美视频| 日韩不卡一区二区| 91精品婷婷国产综合久久竹菊| 一区二区三区四区蜜桃| 欧美在线观看一区二区| 亚洲综合成人在线视频| 在线观看成人免费视频| 亚洲一级二级在线| 欧美久久久一区| 麻豆91在线播放免费| 精品免费国产一区二区三区四区| 欧美bbbbb| 久久女同性恋中文字幕| 国产成人精品网址| 国产精品入口麻豆原神| 91热门视频在线观看| 一区二区三区精品久久久| 欧美性xxxxxx少妇| 日韩av在线发布| 久久麻豆一区二区| 99在线精品观看| 一级精品视频在线观看宜春院| 欧美日韩精品欧美日韩精品| 蜜臀av性久久久久蜜臀av麻豆 | 91香蕉视频mp4| 亚洲精品美国一| 91麻豆精品国产91久久久更新时间 | 国产美女一区二区三区| 国产精品久久久久久久第一福利 | 色综合 综合色| 午夜影院久久久| 国产亚洲污的网站| 99久久精品久久久久久清纯| 一区二区三区在线免费观看 | 欧美日韩亚州综合| 久久国产欧美日韩精品| 国产精品久久三| 欧美老女人在线| 国产一区二区在线视频| 亚洲乱码国产乱码精品精的特点|