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

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

?? print-vqp.c

?? TCPDUMP的C語言源代碼,是在數據鏈路層的應用
?? C
字號:
/* * Copyright (c) 1998-2006 The TCPDUMP project * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that: (1) source code * distributions retain the above copyright notice and this paragraph * in its entirety, and (2) distributions including binary code include * the above copyright notice and this paragraph in its entirety in * the documentation or other materials provided with the distribution. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT * LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE. * * support for the Cisco prop. VQP Protocol  * * Original code by Carles Kishimoto <Carles.Kishimoto@bsc.es> */#ifndef lintstatic const char rcsid[] _U_ =    "@(#) $Header: /tcpdump/master/tcpdump/print-vqp.c,v 1.3 2006-08-19 06:51:13 guy Exp $";#endif#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <tcpdump-stdinc.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include "interface.h"#include "extract.h"#include "addrtoname.h"#define VQP_VERSION            		1#define VQP_EXTRACT_VERSION(x) ((x)&0xFF)/* * VQP common header * *  0                   1                   2                   3 *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * |   Constant    | Packet type   |  Error Code   |    nitems     | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * |                Packet Sequence Number (4 bytes)               | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */struct vqp_common_header_t {    u_int8_t version;    u_int8_t msg_type;    u_int8_t error_code;    u_int8_t nitems;    u_int8_t sequence[4];};struct vqp_obj_tlv_t {    u_int8_t obj_type[4];    u_int8_t obj_length[2];};#define VQP_OBJ_REQ_JOIN_PORT  0x01#define VQP_OBJ_RESP_VLAN      0x02#define VQP_OBJ_REQ_RECONFIRM  0x03#define VQP_OBJ_RESP_RECONFIRM 0x04static const struct tok vqp_msg_type_values[] = {    { VQP_OBJ_REQ_JOIN_PORT, "Request, Join Port"},    { VQP_OBJ_RESP_VLAN, "Response, VLAN"},    { VQP_OBJ_REQ_RECONFIRM, "Request, Reconfirm"},    { VQP_OBJ_RESP_RECONFIRM, "Response, Reconfirm"},    { 0, NULL}};static const struct tok vqp_error_code_values[] = {    { 0x00, "No error"},    { 0x03, "Access denied"},    { 0x04, "Shutdown port"},    { 0x05, "Wrong VTP domain"},    { 0, NULL}};/* FIXME the heading 0x0c looks ugly - those must be flags etc. */#define VQP_OBJ_IP_ADDRESS    0x0c01#define VQP_OBJ_PORT_NAME     0x0c02#define VQP_OBJ_VLAN_NAME     0x0c03#define VQP_OBJ_VTP_DOMAIN    0x0c04#define VQP_OBJ_ETHERNET_PKT  0x0c05#define VQP_OBJ_MAC_NULL      0x0c06#define VQP_OBJ_MAC_ADDRESS   0x0c08static const struct tok vqp_obj_values[] = {    { VQP_OBJ_IP_ADDRESS, "Client IP Address" },    { VQP_OBJ_PORT_NAME, "Port Name" },    { VQP_OBJ_VLAN_NAME, "VLAN Name" },    { VQP_OBJ_VTP_DOMAIN, "VTP Domain" },    { VQP_OBJ_ETHERNET_PKT, "Ethernet Packet" },    { VQP_OBJ_MAC_NULL, "MAC Null" },    { VQP_OBJ_MAC_ADDRESS, "MAC Address" },    { 0, NULL}};voidvqp_print(register const u_char *pptr, register u_int len) {    const struct vqp_common_header_t *vqp_common_header;    const struct vqp_obj_tlv_t *vqp_obj_tlv;    const u_char *tptr;    u_int16_t vqp_obj_len;    u_int32_t vqp_obj_type;    int tlen;    u_int8_t nitems;    tptr=pptr;    tlen = len;    vqp_common_header = (const struct vqp_common_header_t *)pptr;    TCHECK(*vqp_common_header);    /*     * Sanity checking of the header.     */    if (VQP_EXTRACT_VERSION(vqp_common_header->version) != VQP_VERSION) {	printf("VQP version %u packet not supported",               VQP_EXTRACT_VERSION(vqp_common_header->version));	return;    }    /* in non-verbose mode just lets print the basic Message Type */    if (vflag < 1) {        printf("VQPv%u %s Message, error-code %s (%u), length %u",               VQP_EXTRACT_VERSION(vqp_common_header->version),               tok2str(vqp_msg_type_values, "unknown (%u)",vqp_common_header->msg_type),               tok2str(vqp_error_code_values, "unknown (%u)",vqp_common_header->error_code),	       vqp_common_header->error_code,               len);        return;    }        /* ok they seem to want to know everything - lets fully decode it */    nitems = vqp_common_header->nitems;    printf("\n\tVQPv%u, %s Message, error-code %s (%u), seq 0x%08x, items %u, length %u",           VQP_EXTRACT_VERSION(vqp_common_header->version),	   tok2str(vqp_msg_type_values, "unknown (%u)",vqp_common_header->msg_type),	   tok2str(vqp_error_code_values, "unknown (%u)",vqp_common_header->error_code),	   vqp_common_header->error_code,           EXTRACT_32BITS(&vqp_common_header->sequence),           nitems,           len);    /* skip VQP Common header */    tptr+=sizeof(const struct vqp_common_header_t);    tlen-=sizeof(const struct vqp_common_header_t);    while (nitems > 0 && tlen > 0) {        vqp_obj_tlv = (const struct vqp_obj_tlv_t *)tptr;        vqp_obj_type = EXTRACT_32BITS(vqp_obj_tlv->obj_type);        vqp_obj_len = EXTRACT_16BITS(vqp_obj_tlv->obj_length);        tptr+=sizeof(struct vqp_obj_tlv_t);        tlen-=sizeof(struct vqp_obj_tlv_t);        printf("\n\t  %s Object (0x%08x), length %u, value: ",               tok2str(vqp_obj_values, "Unknown", vqp_obj_type),               vqp_obj_type, vqp_obj_len);        /* basic sanity check */        if (vqp_obj_type == 0 || vqp_obj_len ==0) {            return;        }        /* did we capture enough for fully decoding the object ? */        if (!TTEST2(*tptr, vqp_obj_len))             goto trunc;        switch(vqp_obj_type) {	case VQP_OBJ_IP_ADDRESS:            printf("%s (0x%08x)", ipaddr_string(tptr), EXTRACT_32BITS(tptr));            break;            /* those objects have similar semantics - fall through */        case VQP_OBJ_PORT_NAME:	case VQP_OBJ_VLAN_NAME:	case VQP_OBJ_VTP_DOMAIN:	case VQP_OBJ_ETHERNET_PKT:            safeputs((const char *)tptr, vqp_obj_len);            break;            /* those objects have similar semantics - fall through */	case VQP_OBJ_MAC_ADDRESS:	case VQP_OBJ_MAC_NULL:	      printf("%s", etheraddr_string(tptr));              break;        default:            if (vflag <= 1)                print_unknown_data(tptr, "\n\t    ", vqp_obj_len);            break;        }	tptr += vqp_obj_len;	tlen -= vqp_obj_len;	nitems--;    }    return;trunc:    printf("\n\t[|VQP]");}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线一区二区| 日本亚洲欧美天堂免费| 美日韩一区二区三区| 色综合视频在线观看| 久久综合狠狠综合久久激情 | 亚洲激情在线激情| 国产精品一色哟哟哟| 欧美巨大另类极品videosbest | 久久成人免费电影| 欧美吞精做爰啪啪高潮| 国产精品免费av| 国产精品一区二区男女羞羞无遮挡 | 麻豆久久久久久| 欧美日韩在线三级| 亚洲另类春色国产| eeuss影院一区二区三区| 久久久久9999亚洲精品| 日韩黄色一级片| 欧美日韩国产精选| 亚洲图片有声小说| 91官网在线免费观看| 综合欧美一区二区三区| 国产a视频精品免费观看| 精品国产制服丝袜高跟| 蜜桃av一区二区三区电影| 制服丝袜激情欧洲亚洲| 亚洲3atv精品一区二区三区| 欧美日韩综合一区| 亚洲成人综合视频| 欧美精品在线观看播放| 免费人成网站在线观看欧美高清| 欧美精品久久99久久在免费线| 一区二区三区欧美| 欧美日韩亚洲国产综合| 日韩和欧美的一区| 日韩一级片网站| 国内精品在线播放| 国产欧美日韩在线看| 福利电影一区二区| 亚洲柠檬福利资源导航| 日本福利一区二区| 偷偷要91色婷婷| 欧美成人一区二区三区片免费 | 亚洲成人在线免费| 日韩欧美高清一区| 国产精品影视在线| 亚洲精品国久久99热| 欧美日韩免费观看一区三区| 日本不卡一区二区| 久久久精品国产免大香伊| 成a人片亚洲日本久久| 最新中文字幕一区二区三区| 日本道在线观看一区二区| 日本麻豆一区二区三区视频| 久久久91精品国产一区二区精品| 国产剧情在线观看一区二区| 国产精品久久精品日日| 欧美午夜一区二区三区免费大片| 日韩精品成人一区二区三区| 久久久蜜桃精品| 欧美在线观看18| 国产一区二区日韩精品| 亚洲三级免费电影| 日韩三级中文字幕| 成年人午夜久久久| 免费成人小视频| 中文字幕在线一区| 日韩午夜在线影院| 91丨九色丨尤物| 美女脱光内衣内裤视频久久影院| 国产精品福利在线播放| 欧美狂野另类xxxxoooo| www.日本不卡| 欧美aaaaa成人免费观看视频| 中文字幕第一页久久| 在线不卡一区二区| 99国产精品国产精品久久| 日本不卡视频一二三区| 亚洲天堂精品在线观看| 精品国产凹凸成av人网站| 日本精品免费观看高清观看| 国产精品一区二区不卡| 日精品一区二区| 自拍偷拍国产精品| 2021久久国产精品不只是精品| 欧美视频中文字幕| 99综合电影在线视频| 国模无码大尺度一区二区三区| 亚洲午夜激情网页| 亚洲精品伦理在线| 国产精品嫩草影院com| 精品日韩在线观看| 欧美日韩一区在线| 色综合久久久久综合| 成人综合日日夜夜| 国产酒店精品激情| 另类小说一区二区三区| 日韩高清不卡一区二区| 一区二区三区蜜桃| 日韩毛片精品高清免费| 一区二区中文字幕在线| 中文字幕巨乱亚洲| 国产欧美日韩视频在线观看| 精品国产露脸精彩对白| 日韩一区二区三区高清免费看看| 欧美精品九九99久久| 欧美日韩日日夜夜| 欧美高清www午色夜在线视频| 欧美天天综合网| 91成人网在线| 欧美视频在线不卡| 欧美视频中文一区二区三区在线观看 | 精品一二三四区| 免费观看日韩av| 日韩精品成人一区二区三区| 日韩精品乱码免费| 日韩av在线免费观看不卡| 视频一区视频二区中文| 蜜桃精品在线观看| 精品亚洲aⅴ乱码一区二区三区| 久久se精品一区精品二区| 捆绑变态av一区二区三区| 狠狠色综合播放一区二区| 国模娜娜一区二区三区| 国产99久久久精品| 99久久99久久精品国产片果冻| 99re在线视频这里只有精品| 日本道色综合久久| 欧美精品三级在线观看| 日韩精品一区二区三区四区| 久久男人中文字幕资源站| 国产精品视频你懂的| 亚洲精品午夜久久久| 秋霞电影一区二区| 国产成人精品一区二| thepron国产精品| 欧美日本免费一区二区三区| 日韩欧美电影在线| 国产精品天美传媒沈樵| 亚洲一二三四在线观看| 免费人成在线不卡| 99久久综合狠狠综合久久| 欧美性猛交xxxxxxxx| 日韩亚洲欧美在线观看| 欧美国产亚洲另类动漫| 午夜精品视频在线观看| 国产成人在线视频网址| 欧洲精品在线观看| 国产欧美一区二区三区沐欲| 亚洲一区在线观看免费| 久88久久88久久久| 日本丶国产丶欧美色综合| 精品精品欲导航| 综合婷婷亚洲小说| 极品美女销魂一区二区三区免费| 99re成人在线| 久久网站热最新地址| 午夜精品久久久久久不卡8050| 国产99久久久久久免费看农村| 欧美吻胸吃奶大尺度电影| 欧美国产精品专区| 蜜桃一区二区三区在线观看| 91在线一区二区三区| 欧美精品一区二区三区在线播放| 亚洲在线一区二区三区| 成人午夜看片网址| 精品国免费一区二区三区| 香港成人在线视频| 91蜜桃免费观看视频| 久久久久久久久免费| 蜜桃传媒麻豆第一区在线观看| 在线欧美日韩精品| 国产精品美女视频| 国产一区二区三区精品视频| 欧美色区777第一页| 国产精品欧美综合在线| 国产一区在线精品| 欧美成人在线直播| 日本伊人色综合网| 欧美三级电影在线观看| 亚洲视频一区在线| 国产成人亚洲综合a∨猫咪 | 欧美日韩小视频| 亚洲精品国产一区二区精华液| 成人高清在线视频| 国产欧美va欧美不卡在线 | 亚洲国产美国国产综合一区二区| 国产成人综合亚洲91猫咪| 久久这里只精品最新地址| 青娱乐精品视频在线| 91精品国产全国免费观看| 亚洲国产一二三| 欧美视频三区在线播放| 伊人开心综合网| 色综合久久久久网| 亚洲五月六月丁香激情| 在线电影院国产精品| 午夜久久电影网| 日韩情涩欧美日韩视频| 韩国午夜理伦三级不卡影院|