Skip to content

Commit

Permalink
netfilter: add missing xt_log.h file
Browse files Browse the repository at this point in the history
Forgot to add xt_log.h in commit a8defca (netfilter: ipt_LOG:
add bufferisation to call printk() once)

Signed-off-by: Patrick McHardy <kaber@trash.net>
  • Loading branch information
Patrick McHardy committed Oct 4, 2010
1 parent f68c530 commit eecc545
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions include/net/netfilter/xt_log.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#define S_SIZE (1024 - (sizeof(unsigned int) + 1))

struct sbuff {
unsigned int count;
char buf[S_SIZE + 1];
};
static struct sbuff emergency, *emergency_ptr = &emergency;

static int sb_add(struct sbuff *m, const char *f, ...)
{
va_list args;
int len;

if (likely(m->count < S_SIZE)) {
va_start(args, f);
len = vsnprintf(m->buf + m->count, S_SIZE - m->count, f, args);
va_end(args);
if (likely(m->count + len < S_SIZE)) {
m->count += len;
return 0;
}
}
m->count = S_SIZE;
printk_once(KERN_ERR KBUILD_MODNAME " please increase S_SIZE\n");
return -1;
}

static struct sbuff *sb_open(void)
{
struct sbuff *m = kmalloc(sizeof(*m), GFP_ATOMIC);

if (unlikely(!m)) {
local_bh_disable();
do {
m = xchg(&emergency_ptr, NULL);
} while (!m);
}
m->count = 0;
return m;
}

static void sb_close(struct sbuff *m)
{
m->buf[m->count] = 0;
printk("%s\n", m->buf);

if (likely(m != &emergency))
kfree(m);
else {
xchg(&emergency_ptr, m);
local_bh_enable();
}
}

0 comments on commit eecc545

Please sign in to comment.