⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layer2.h

📁 xprobe package sources code
💻 H
字号:
/*** This Programs/Libraries are (C)opyright by Sebastian Krahmer. *** You may use it under the terms of the GPL. You should have *** already received the file COPYING that shows you your rights. *** Please look at COPYING for further license-details. ***   *** THERE IS ABSOLUTELY NO WARRANTY. SO YOU USE IT AT YOUR OWN RISK. *** IT WAS WRITTEN IN THE HOPE THAT IT WILL BE USEFULL. I AM NOT RESPONSIBLE *** FOR ANY DAMAGE YOU MAYBE GET DUE TO USING MY PROGRAMS. ***/#ifndef _LAYER2_H_#define _LAYER2_H_#include "config.h"#include "usi++/usi-structs.h"#include "RX.h"#include "TX.h"#include <stdio.h>namespace usipp {/*! \class Layer2 *  Describing layer 2 */class Layer2 {private:	RX *d_rx;		// for receiving	TX *d_tx;		// for transmitting datapublic:	/*! Give us a Layer 2! Default to Raw IP sockets and	 * pcap packet capturing. This MUST NOT be. You could also	 * say you want to use ethertap devices etc.	 */	Layer2(RX *r = NULL, TX *t = NULL);		/*!*/	virtual ~Layer2();	/*! Actually, capture a packet */	virtual int sniffpack(void *, size_t);	/*! Send a packet */	virtual int sendpack(void *buf, size_t len, struct sockaddr *);	/*! Initialize a device for packet capturing */	virtual int init_device(char *dev, int promisc, size_t snaplen);	/*! Set a filter rule */	int setfilter(char *f);		/*! Set a timeout */	int timeout(struct timeval);	/*! return was timeout? */	bool timeout();		/*! register a new transmitter, return the old */	TX *register_tx(TX *t) { TX *r = d_tx; d_tx = t; return r; }		/*! register a new capturer, return the old */	RX *register_rx(RX *r) { RX *ret = d_rx; d_rx = r; return ret; }	/*! return current TX object */	TX *tx() { return d_tx; }	/*! return current RX object */	RX *rx() { return d_rx; }	};} // namespace usipp#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -