#!/usr/bin/perl
#
# get logs out of kern.log and print it out something cleaned up, example:
#
#  "SCIPFIRE/INPUT_CAMP/DROP  IN=eth1 OUT= TCP 62.109.128.62:2111 =>  212.34.66.34:496"
#
# Usage: tail -f /var/log/firewall.og | flog
#
#
# Thomas Linden <scip@daemon.de>
#
# $Id: flog,v 1.2 2001/07/29 21:26:12 scip Exp $

$n = shift;
while (<>) {
  chomp;
  s/^.*kernel: //;
  if (/^([A-Z_\/]*):(IN=[a-z0-9]*) (OUT=[a-z0-9]*) .* SRC=([0-9\.]*) DST=([0-9\.]*) .* PROTO=([A-Z]*) SPT=([0-9]*) DPT=([0-9]*) .*$/) {
    @log = ($1,$2,$3,$6,"$4:$7","$5:$8");
  }
  else {
    if (/^([A-Z_\/]*):(IN=[a-z0-9]*) (OUT=[a-z0-9]*) .* SRC=([0-9\.]*) DST=([0-9\.]*) .* PROTO=([A-Z]*) TYPE=([0-9]*) CODE=([0-9]*).*$/) {
      @log = ($1,$2,$3,$6,$4,"$5:$7.$8");
    }
  }
  printf "%25s  %7s %7s %9s %-23s =>  %-23s\n", @log;
}
