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

📄 ulogd.h

📁 snifferjoke嗅探代码,供大家一起学习.
💻 H
字号:
#ifndef _ULOGD_H#define _ULOGD_H/* ulogd, Version $Revision: 5369 $ * * userspace logging daemon for netfilter ULOG target * of the linux 2.4 netfilter subsystem. * * (C) 2000 by Harald Welte <laforge@gnumonks.org> * * this code is released under the terms of GNU GPL * * $Id: ulogd.h 5369 2005-05-04 01:16:57Z laforge $ */#include <libipulog/libipulog.h>#include <stdio.h>#include <signal.h>	/* need this because of extension-sighandler *//* All types with MSB = 1 make use of value.ptr * other types use one of the union's member *//* types without length */#define ULOGD_RET_NONE		0x0000#define ULOGD_RET_INT8		0x0001#define ULOGD_RET_INT16		0x0002#define ULOGD_RET_INT32		0x0003#define ULOGD_RET_INT64		0x0004#define ULOGD_RET_UINT8		0x0011#define ULOGD_RET_UINT16	0x0012#define ULOGD_RET_UINT32	0x0013#define ULOGD_RET_UINT64	0x0014#define ULOGD_RET_BOOL		0x0050#define ULOGD_RET_IPADDR	0x0100/* types with length field */#define ULOGD_RET_STRING	0x8020#define ULOGD_RET_RAW		0x8030/* FLAGS */#define ULOGD_RETF_NONE		0x0000#define ULOGD_RETF_VALID	0x0001	/* contains a valid result */#define ULOGD_RETF_FREE		0x0002	/* ptr needs to be free()d *//* maximum length of ulogd key */#define ULOGD_MAX_KEYLEN 32#define ULOGD_DEBUG	1	/* debugging information */#define ULOGD_INFO	3#define ULOGD_NOTICE	5	/* abnormal/unexpected condition */#define ULOGD_ERROR	7	/* error condition, requires user action */#define ULOGD_FATAL	8	/* fatal, program aborted */typedef struct ulog_iret {	/* next interpreter return (key) in the global list */	struct ulog_iret *next;	/* next interpreter in linked list for current result */	struct ulog_iret *cur_next;	/* length of the returned value (only for lengthed types */	u_int32_t len;	/* type of the returned value (ULOGD_IRET_...) */	u_int16_t type;	/* flags (i.e. free, ...) */	u_int16_t flags;	/* name of this key */	char key[ULOGD_MAX_KEYLEN];	/* and finally the returned value */	union {		u_int8_t	b;		u_int8_t	ui8;		u_int16_t	ui16;		u_int32_t	ui32;		u_int64_t	ui64;		int8_t		i8;		int16_t		i16;		int32_t		i32;		int64_t		i64;		void		*ptr;	} value;} ulog_iret_t;typedef struct ulog_interpreter {	/* next interpreter in old-style linked list */	struct ulog_interpreter *next;	/* name of this interpreter (predefined by plugin) */	char name[ULOGD_MAX_KEYLEN];	/* ID for this interpreter (dynamically assigned) */	unsigned int id;	/* function to call for each packet */	ulog_iret_t* (*interp)(struct ulog_interpreter *ip, 				ulog_packet_msg_t *pkt);	/* number of keys this interpreter has */	unsigned int key_num;	/* keys of this particular interpreter */	ulog_iret_t *result;} ulog_interpreter_t;typedef struct ulog_output {	/* next output in the linked list */	struct ulog_output *next;	/* name of this ouput plugin */	char name[ULOGD_MAX_KEYLEN];	/* callback for initialization */	int (*init)(void);	/* callback for de-initialization */	void (*fini)(void);	/* callback function */	int (*output)(ulog_iret_t *ret);	/* callback function for signals (SIGHUP, ..) */	void (*signal)(int signal);} ulog_output_t;/* entries of the key hash */struct ulogd_keyh_entry {	ulog_interpreter_t *interp;	/* interpreter for this key */	unsigned int offset;		/* offset within interpreter */	const char *name;		/* name of this particular key */};/*********************************************************************** * PUBLIC INTERFACE  ***********************************************************************//* register a new interpreter plugin */void register_interpreter(ulog_interpreter_t *me);/* register a new output target */void register_output(ulog_output_t *me);/* allocate a new ulog_iret_t */ulog_iret_t *alloc_ret(const u_int16_t type, const char*);/* write a message to the daemons' logfile */void __ulogd_log(int level, char *file, int line, const char *message, ...);/* macro for logging including filename and line number */#define ulogd_log(level, format, args...) \	__ulogd_log(level, __FILE__, __LINE__, format, ## args)/* backwards compatibility */#define ulogd_error(format, args...) ulogd_log(ULOGD_ERROR, format, ## args)/* get an interpreter hash id by name */unsigned int interh_getid(const char *name);/* get a key id if you have the name */unsigned int keyh_getid(const char *name);/* get a result for a given key id */ulog_iret_t *keyh_getres(unsigned int id);/* the key hash itself */extern struct ulogd_keyh_entry *ulogd_keyh;#define IS_VALID(x)	(x.flags & ULOGD_RETF_VALID)#define SET_VALID(x)	(x.flags |= ULOGD_RETF_VALID)#endif /* _ULOGD_H */

⌨️ 快捷键说明

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