📄 loop.c
字号:
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details */#include <stdio.h>#include <string.h>#include <mac.h>#include <config.h>#include "loop.h"#define LOOP_MTU 4096 static BOOLEAN Send(MAC_IFACE *iface, CHAIN *chain);static BOOLEAN Stat(MAC_IFACE *iface, MAC_STAT *stat);BOOLEAN LoopInit(void){ BYTE name[255]; BYTE *descr; MAC_IFACE *loop; WORD i; static BOOLEAN init = FALSE; if (!init) { i = 1; sprintf(name, "loop.iface.name.%d", i); while (ConfigGetString(name, &descr)) { loop = DnpapMalloc(sizeof(MAC_IFACE)); if (loop!=0) { strcpy(loop->descr, descr); loop->Send = Send; loop->Stat = Stat; loop->type = MAC_TYPE_SOFT_LOOPBACK; loop->speed = 0; loop->mtu = LOOP_MTU; loop->statusOper = TRUE; loop->statusAdmin = TRUE; loop->arp = MAC_ARP_NONE; loop->addrLength = 0; MacIfaceRegister(loop); } i++; sprintf(name, "loop.iface.name.%d", i); } init = TRUE; } return init;}static BOOLEAN Send(MAC_IFACE *iface, CHAIN *chain){ CHAIN *new; MAC_INFO info; WORD length; length = ChainLength(chain); new = ChainAlloc(0, 0, length, length, 0, 0); if (new) { if (ChainCopy(chain, new->buffer, length)) { info.length = length; info.copied = length; info.time = 0L; info.promiscuous = FALSE; MacRcve(iface, new, &info); ChainFree(new); return TRUE; } } return FALSE;}static BOOLEAN Stat(MAC_IFACE *iface, MAC_STAT *stat){ return TRUE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -