From 709db4aa6c3462db5e88f7f8e874067b44135cd9 Mon Sep 17 00:00:00 2001 From: laforge Date: Sat, 8 Oct 2005 09:08:31 +0000 Subject: --- output/pcap/ulogd_output_PCAP.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) (limited to 'output/pcap/ulogd_output_PCAP.c') diff --git a/output/pcap/ulogd_output_PCAP.c b/output/pcap/ulogd_output_PCAP.c index 55cd7f1..25f0be1 100644 --- a/output/pcap/ulogd_output_PCAP.c +++ b/output/pcap/ulogd_output_PCAP.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -67,7 +68,7 @@ static struct config_keyset pcap_kset = { }, }; -static struct pcap_instance { +struct pcap_instance { FILE *of; }; @@ -88,7 +89,7 @@ static struct ulogd_key pcap_keys[INTR_IDS] = { #define GET_VALUE(res, x) (res[x].u.source->u.value) #define GET_FLAGS(res, x) (res[x].u.source->flags) -static int pcap_output(struct ulogd_pluginstance *upi) +static int interp_pcap(struct ulogd_pluginstance *upi) { struct pcap_instance *pi = (struct pcap_instance *) &upi->private; struct ulogd_key *res = upi->input; @@ -118,7 +119,7 @@ static int pcap_output(struct ulogd_pluginstance *upi) } if (upi->config_kset->ces[1].u.value) - fflush(of); + fflush(pi->of); return 0; } @@ -157,30 +158,30 @@ static int append_create_outfile(struct ulogd_pluginstance *upi) exist = 1; if (!exist) { - of = fopen(filename, "w"); - if (!of) { + pi->of = fopen(filename, "w"); + if (!pi->of) { ulogd_log(ULOGD_ERROR, "can't open pcap file: %s\n", strerror(errno)); - return -1; + return -EPERM; } - if (!write_pcap_header()) { + if (!write_pcap_header(upi)) { ulogd_log(ULOGD_ERROR, "can't write pcap header: %s\n", strerror(errno)); - return -1; + return -ENOSPC; } } else { - of = fopen(filename, "a"); - if (!of) { + pi->of = fopen(filename, "a"); + if (!pi->of) { ulogd_log(ULOGD_ERROR, "can't open pcap file: %s\n", strerror(errno)); - return -1; + return -EPERM; } } return 0; } -static void pcap_signal_handler(struct ulogd_pluginstance *upi, int signal) +static void signal_pcap(struct ulogd_pluginstance *upi, int signal) { struct pcap_instance *pi = (struct pcap_instance *) &upi->private; @@ -236,14 +237,6 @@ static struct ulogd_plugin pcap_plugin = { .interp = &interp_pcap, }; -static ulog_output_t pcap_op = { - .name = "pcap", - .init = &pcap_init, - .fini = &pcap_fini, - .output = &pcap_output, - .signal = &pcap_signal_handler, -}; - void __attribute__ ((constructor)) init(void); void init(void) -- cgit v1.2.3