netfilter
firewalling, NAT, and packet mangling for linux
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ulogd_inppkt_UNIXSOCK.c File Reference
#include <unistd.h>
#include <stdlib.h>
#include <netinet/ether.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip6.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <pwd.h>
#include <grp.h>
#include <errno.h>
#include <ulogd/ulogd.h>
Include dependency graph for ulogd_inppkt_UNIXSOCK.c:

Data Structures

struct  unixsock_input
 
struct  ulogd_unixsock_packet_t
 
struct  ulogd_unixsock_option_t
 

Macros

#define UNIXSOCK_BUFSIZE_DEFAULT   0
 
#define UNIXSOCK_PERMS_DEFAULT   0600
 
#define UNIXSOCK_UNIXPATH_DEFAULT   "/var/run/ulogd/ulogd2.sock"
 
#define ULOGD_SOCKET_MARK   0x41c90fd4
 
#define unixpath_ce(x)   ((x)->ces[UNIXSOCK_OPT_UNIXPATH])
 
#define bufsize_ce(x)   ((x)->ces[UNIXSOCK_OPT_BUFSIZE])
 
#define perms_ce(x)   ((x)->ces[UNIXSOCK_OPT_PERM])
 
#define owner_ce(x)   ((x)->ces[UNIXSOCK_OPT_OWNER])
 
#define group_ce(x)   ((x)->ces[UNIXSOCK_OPT_GROUP])
 
#define USOCK_ALIGNTO   8
 
#define USOCK_ALIGN(len)   ( ((len)+USOCK_ALIGNTO-1) & ~(USOCK_ALIGNTO-1) )
 

Enumerations

enum  nflog_keys {
  NFLOG_KEY_RAW_MAC = 0,
  NFLOG_KEY_RAW_PCKT,
  NFLOG_KEY_RAW_PCKTLEN,
  NFLOG_KEY_RAW_PCKTCOUNT,
  NFLOG_KEY_OOB_PREFIX,
  NFLOG_KEY_OOB_TIME_SEC,
  NFLOG_KEY_OOB_TIME_USEC,
  NFLOG_KEY_OOB_MARK,
  NFLOG_KEY_OOB_IFINDEX_IN,
  NFLOG_KEY_OOB_IFINDEX_OUT,
  NFLOG_KEY_OOB_HOOK,
  NFLOG_KEY_RAW_MAC_LEN,
  NFLOG_KEY_OOB_SEQ_LOCAL,
  NFLOG_KEY_OOB_SEQ_GLOBAL,
  NFLOG_KEY_OOB_FAMILY,
  NFLOG_KEY_OOB_PROTOCOL,
  NFLOG_KEY_OOB_UID,
  NFLOG_KEY_OOB_GID,
  NFLOG_KEY_RAW_LABEL,
  NFLOG_KEY_RAW_TYPE,
  NFLOG_KEY_RAW_MAC_SADDR,
  NFLOG_KEY_RAW_MAC_ADDRLEN,
  NFLOG_KEY_RAW,
  UNIXSOCK_KEY_RAW_MAC = 0,
  UNIXSOCK_KEY_RAW_PCKT,
  UNIXSOCK_KEY_RAW_PCKTLEN,
  UNIXSOCK_KEY_RAW_PCKTCOUNT,
  UNIXSOCK_KEY_OOB_PREFIX,
  UNIXSOCK_KEY_OOB_TIME_SEC,
  UNIXSOCK_KEY_OOB_TIME_USEC,
  UNIXSOCK_KEY_OOB_MARK,
  UNIXSOCK_KEY_OOB_IN,
  UNIXSOCK_KEY_OOB_OUT,
  UNIXSOCK_KEY_OOB_HOOK,
  UNIXSOCK_KEY_RAW_MAC_LEN,
  UNIXSOCK_KEY_OOB_SEQ_LOCAL,
  UNIXSOCK_KEY_OOB_SEQ_GLOBAL,
  UNIXSOCK_KEY_OOB_FAMILY,
  UNIXSOCK_KEY_OOB_PROTOCOL,
  UNIXSOCK_KEY_OOB_UID,
  UNIXSOCK_KEY_OOB_GID,
  UNIXSOCK_KEY_RAW_LABEL,
  UNIXSOCK_KEY_RAW_TYPE,
  UNIXSOCK_KEY_RAW_MAC_SADDR,
  UNIXSOCK_KEY_RAW_MAC_ADDRLEN,
  UNIXSOCK_KEY_NUFW_USER_NAME,
  UNIXSOCK_KEY_NUFW_USER_ID,
  UNIXSOCK_KEY_NUFW_OS_NAME,
  UNIXSOCK_KEY_NUFW_OS_REL,
  UNIXSOCK_KEY_NUFW_OS_VERS,
  UNIXSOCK_KEY_NUFW_APP_NAME
}
 
enum  {
  UNIXSOCK_OPT_UNIXPATH = 0,
  UNIXSOCK_OPT_BUFSIZE,
  UNIXSOCK_OPT_PERM,
  UNIXSOCK_OPT_OWNER,
  UNIXSOCK_OPT_GROUP
}
 
enum  ulogd2_option_type {
  ULOGD2_OPT_UNUSED = 0,
  ULOGD2_OPT_PREFIX,
  ULOGD2_OPT_OOB_IN,
  ULOGD2_OPT_OOB_OUT,
  ULOGD2_OPT_OOB_TIME_SEC,
  ULOGD2_OPT_USER =200,
  ULOGD2_OPT_USERID,
  ULOGD2_OPT_OSNAME,
  ULOGD2_OPT_OSREL,
  ULOGD2_OPT_OSVERS,
  ULOGD2_OPT_APPNAME,
  ULOGD2_OPT_STATE
}
 

Functions

struct ulogd_unixsock_packet_t __attribute__ ((packed))
 

Variables

uint32_t marker
 
uint16_t total_size
 
uint32_t version
 
uint32_t reserved
 
uint16_t payload_length
 
struct iphdr payload
 
uint32_t option_id
 
uint32_t option_length
 
char option_value [0]
 
struct ulogd_plugin libunixsock_plugin
 

Macro Definition Documentation

#define bufsize_ce (   x)    ((x)->ces[UNIXSOCK_OPT_BUFSIZE])
#define group_ce (   x)    ((x)->ces[UNIXSOCK_OPT_GROUP])
#define owner_ce (   x)    ((x)->ces[UNIXSOCK_OPT_OWNER])
#define perms_ce (   x)    ((x)->ces[UNIXSOCK_OPT_PERM])
#define ULOGD_SOCKET_MARK   0x41c90fd4
#define unixpath_ce (   x)    ((x)->ces[UNIXSOCK_OPT_UNIXPATH])
#define UNIXSOCK_BUFSIZE_DEFAULT   0
#define UNIXSOCK_PERMS_DEFAULT   0600
#define UNIXSOCK_UNIXPATH_DEFAULT   "/var/run/ulogd/ulogd2.sock"
#define USOCK_ALIGN (   len)    ( ((len)+USOCK_ALIGNTO-1) & ~(USOCK_ALIGNTO-1) )
#define USOCK_ALIGNTO   8

Enumeration Type Documentation

anonymous enum
Enumerator
UNIXSOCK_OPT_UNIXPATH 
UNIXSOCK_OPT_BUFSIZE 
UNIXSOCK_OPT_PERM 
UNIXSOCK_OPT_OWNER 
UNIXSOCK_OPT_GROUP 
enum nflog_keys
Enumerator
NFLOG_KEY_RAW_MAC 
NFLOG_KEY_RAW_PCKT 
NFLOG_KEY_RAW_PCKTLEN 
NFLOG_KEY_RAW_PCKTCOUNT 
NFLOG_KEY_OOB_PREFIX 
NFLOG_KEY_OOB_TIME_SEC 
NFLOG_KEY_OOB_TIME_USEC 
NFLOG_KEY_OOB_MARK 
NFLOG_KEY_OOB_IFINDEX_IN 
NFLOG_KEY_OOB_IFINDEX_OUT 
NFLOG_KEY_OOB_HOOK 
NFLOG_KEY_RAW_MAC_LEN 
NFLOG_KEY_OOB_SEQ_LOCAL 
NFLOG_KEY_OOB_SEQ_GLOBAL 
NFLOG_KEY_OOB_FAMILY 
NFLOG_KEY_OOB_PROTOCOL 
NFLOG_KEY_OOB_UID 
NFLOG_KEY_OOB_GID 
NFLOG_KEY_RAW_LABEL 
NFLOG_KEY_RAW_TYPE 
NFLOG_KEY_RAW_MAC_SADDR 
NFLOG_KEY_RAW_MAC_ADDRLEN 
NFLOG_KEY_RAW 
UNIXSOCK_KEY_RAW_MAC 
UNIXSOCK_KEY_RAW_PCKT 
UNIXSOCK_KEY_RAW_PCKTLEN 
UNIXSOCK_KEY_RAW_PCKTCOUNT 
UNIXSOCK_KEY_OOB_PREFIX 
UNIXSOCK_KEY_OOB_TIME_SEC 
UNIXSOCK_KEY_OOB_TIME_USEC 
UNIXSOCK_KEY_OOB_MARK 
UNIXSOCK_KEY_OOB_IN 
UNIXSOCK_KEY_OOB_OUT 
UNIXSOCK_KEY_OOB_HOOK 
UNIXSOCK_KEY_RAW_MAC_LEN 
UNIXSOCK_KEY_OOB_SEQ_LOCAL 
UNIXSOCK_KEY_OOB_SEQ_GLOBAL 
UNIXSOCK_KEY_OOB_FAMILY 
UNIXSOCK_KEY_OOB_PROTOCOL 
UNIXSOCK_KEY_OOB_UID 
UNIXSOCK_KEY_OOB_GID 
UNIXSOCK_KEY_RAW_LABEL 
UNIXSOCK_KEY_RAW_TYPE 
UNIXSOCK_KEY_RAW_MAC_SADDR 
UNIXSOCK_KEY_RAW_MAC_ADDRLEN 
UNIXSOCK_KEY_NUFW_USER_NAME 
UNIXSOCK_KEY_NUFW_USER_ID 
UNIXSOCK_KEY_NUFW_OS_NAME 
UNIXSOCK_KEY_NUFW_OS_REL 
UNIXSOCK_KEY_NUFW_OS_VERS 
UNIXSOCK_KEY_NUFW_APP_NAME 
Enumerator
ULOGD2_OPT_UNUSED 
ULOGD2_OPT_PREFIX 
ULOGD2_OPT_OOB_IN 
ULOGD2_OPT_OOB_OUT 
ULOGD2_OPT_OOB_TIME_SEC 
ULOGD2_OPT_USER 
ULOGD2_OPT_USERID 
ULOGD2_OPT_OSNAME 
ULOGD2_OPT_OSREL 
ULOGD2_OPT_OSVERS 
ULOGD2_OPT_APPNAME 
ULOGD2_OPT_STATE 

Function Documentation

struct ulogd_unixsock_packet_t __attribute__ ( (packed)  )

Variable Documentation

struct ulogd_plugin libunixsock_plugin
Initial value:
= {
.name = "UNIXSOCK",
.input = {
},
.output = {
.type = ULOGD_DTYPE_RAW,
.keys = output_keys,
.num_keys = ARRAY_SIZE(output_keys),
},
.priv_size = sizeof(struct unixsock_input),
.configure = &configure,
.start = &start,
.stop = &stop,
.config_kset = &libunixsock_kset,
.version = VERSION,
}
Definition: ulogd_inppkt_UNIXSOCK.c:48
output_keys
Definition: ulogd_raw2packet_BASE.c:54
Definition: ulogd.h:77
Definition: ulogd.h:78
#define ARRAY_SIZE
Definition: helper.h:71
uint32_t marker
uint32_t option_id
uint32_t option_length
char option_value[0]
uint16_t payload_length
uint32_t reserved
uint16_t total_size
uint32_t version