📄 ether.c
字号:
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details */#include <memory.h>#include <mac.h>#include <ip.h>#include "ether.h"typedef struct _HDR HDR;struct _HDR{ BYTE dst[6]; BYTE src[6]; WORD type;};static CHAIN *Encode(CHAIN *chain, MAC_HDR *hdr);static CHAIN *Decode(CHAIN *chain, MAC_HDR *hdr);MAC_TYPE etherMac ={ Encode, Decode, MAC_TYPE_ETHERNET_CSMACD};BOOLEAN EtherInit(void){ static BOOLEAN init = FALSE; if (!init) { init = MacTypeRegister(ðerMac); } return init;}static CHAIN *Encode(CHAIN *chain, MAC_HDR *hdr){ HDR *h; h=(HDR *)ChainPush(&chain, 14); if (h==0) return 0; memcpy(h->src, hdr->src, 6); memcpy(h->dst, hdr->dst, 6); h->type = IpH2NWord(hdr->type); return chain;}static CHAIN *Decode(CHAIN *chain, MAC_HDR *hdr){ HDR *h; h=(HDR *)ChainPop(&chain, 14); if (h==0) return 0; hdr->src = h->src; hdr->dst = h->dst; hdr->type = IpN2HWord(h->type); return chain;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -