diff options
author | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org> | 2005-12-15 13:15:26 +0000 |
---|---|---|
committer | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org> | 2005-12-15 13:15:26 +0000 |
commit | e9a1e70d11c8375f184b3e84c86d4ea67d2554c4 (patch) | |
tree | c8614102c4981868604e6d4ce207c17e9f503aa4 /src/ulogd.c | |
parent | 9fd7b21926ab4c61d8ad644a0f6ccaedba093673 (diff) |
add new 'ulogd_key_size()' function
Diffstat (limited to 'src/ulogd.c')
-rw-r--r-- | src/ulogd.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/ulogd.c b/src/ulogd.c index f05f9e7..f10a008 100644 --- a/src/ulogd.c +++ b/src/ulogd.c @@ -134,6 +134,51 @@ static struct config_keyset ulogd_kset = { #define loglevel_ce ulogd_kset.ces[2] #define stack_ce ulogd_kset.ces[3] +/*********************************************************************** + * UTILITY FUNCTIONS FOR PLUGINS + ***********************************************************************/ + +int ulogd_key_size(struct ulogd_key *key) +{ + int ret; + + switch (key->type) { + case ULOGD_RET_INT8: + case ULOGD_RET_UINT8: + case ULOGD_RET_BOOL: + ret = 1; + break; + case ULOGD_RET_INT16: + case ULOGD_RET_UINT16: + ret = 2; + break; + case ULOGD_RET_INT32: + case ULOGD_RET_UINT32: + case ULOGD_RET_IPADDR: + ret = 4; + break; + case ULOGD_RET_INT64: + case ULOGD_RET_UINT64: + ret = 8; + break; + case ULOGD_RET_IP6ADDR: + ret = 16; + break; + case ULOGD_RET_STRING: + ret = strlen(key->u.value.ptr); + break; + case ULOGD_RET_RAW: + ret = key->len; + break; + default: + ulogd_log(ULOGD_ERROR, "don't know sizeo f unknown key " + "`%s' type 0x%x\n", key->name, key->type); + ret = -1; + break; + } + + return ret; +} /*********************************************************************** * PLUGIN MANAGEMENT |