summaryrefslogtreecommitdiffstats
path: root/ulogd/include/ulogd/ulogd.h
blob: 0f3378ec32c104c477242a93417543f63d5b2c16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef _ULOGD_H
#define _ULOGD_H
/* ulogd, Version $Revision: 1.1 $
 *
 * first try of a logging daemon for my netfilter ULOG target
 * for the linux 2.4 netfilter subsystem.
 *
 * (C) 2000 by Harald Welte <laforge@sunbeam.franken.de>
 *
 * this code is released under the terms of GNU GPL
 *
 * $Id: ulog_test.c,v 1.1 2000/07/30 19:34:05 laforge Exp laforge $
 */

#include <libipulog/libipulog.h>

/* 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_STRING	0x0020

#define ULOGD_RET_IPADDR	0x0100

/* types with lenght field*/
#define ULOGD_RET_OTHER		0xffff

#define ULOGD_MAX_KEYLEN 32

typedef struct ulog_iret {
	struct ulog_iret *next;
	u_int32_t len;
	u_int16_t type;
	char key[ULOGD_MAX_KEYLEN];
	void *value;
} ulog_iret_t;

typedef struct ulog_interpreter {
	struct ulog_interpreter *next;
	char name[ULOGD_MAX_KEYLEN];
	ulog_iret_t* (*interp)(ulog_packet_msg_t *pkt);
} ulog_interpreter_t;

void register_interpreter(ulog_interpreter_t *me);
ulog_iret_t *alloc_ret(const u_int16_t type, const char*);
#endif