From e6f208b1724fdddf43fbbf9c40427c246d528a14 Mon Sep 17 00:00:00 2001 From: laforge Date: Wed, 2 Aug 2000 12:15:44 +0000 Subject: first usable revision --- include/ulogd/ulogd.h | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'include/ulogd/ulogd.h') diff --git a/include/ulogd/ulogd.h b/include/ulogd/ulogd.h index 0f3378e..fbb373c 100644 --- a/include/ulogd/ulogd.h +++ b/include/ulogd/ulogd.h @@ -9,11 +9,14 @@ * * 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 $ + * $Id: ulogd.h,v 1.1 2000/08/02 08:41:57 laforge Exp laforge $ */ #include +/* 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 @@ -27,7 +30,7 @@ #define ULOGD_RET_UINT32 0x0013 #define ULOGD_RET_UINT64 0x0014 -#define ULOGD_RET_STRING 0x0020 +#define ULOGD_RET_STRING 0x8020 #define ULOGD_RET_IPADDR 0x0100 @@ -36,12 +39,25 @@ #define ULOGD_MAX_KEYLEN 32 +#define ulogd_error(format, args...) fprintf(logfile, format, ## args) +static FILE *logfile; + typedef struct ulog_iret { struct ulog_iret *next; u_int32_t len; u_int16_t type; char key[ULOGD_MAX_KEYLEN]; - void *value; + union { + 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 { @@ -50,6 +66,14 @@ typedef struct ulog_interpreter { ulog_iret_t* (*interp)(ulog_packet_msg_t *pkt); } ulog_interpreter_t; +typedef struct ulog_output { + struct ulog_output *next; + char name[ULOGD_MAX_KEYLEN]; + int* (*output)(ulog_iret_t *ret); +} ulog_output_t; + void register_interpreter(ulog_interpreter_t *me); +void register_output(ulog_output_t *me); + ulog_iret_t *alloc_ret(const u_int16_t type, const char*); #endif -- cgit v1.2.3