#! /usr/bin/perl -w

# vim:syntax=perl

use strict;
use lib '/usr/local/share/perl5';
use Lire::DlfSchema;
use Lire::Program qw(:msg :dlf);
use Lire::Apache qw(referer2dlf);

init_dlf_converter( "www" );
my $lines	= 0;
my $dlflines    = 0;
my $errorlines  = 0;
while (<>) {
    chomp;
    $lines++;

    eval {
	my $dlf = referer2dlf( $_ );
	print join( " ", @$dlf), "\n";
	$dlflines++;
    };
    if ($@) {
	lr_warn( $@ );
	lr_notice( qq{cannot convert line $. "$_" to www dlf, skipping} );
	$errorlines++;
    }
}
end_dlf_converter( $lines, $dlflines, $errorlines );

__END__

=pod

=pod

=head1 NAME

referer2dlf - convert referer web server log file to www DLF

=head1 SYNOPSIS

B<referer2dlf> I<file>

=head1 DESCRIPTION

B<referer2dlf> converts Referer web server log files to the
www DLF. Referer log format was first implemented in the NSCA httpd server. 
Apache can be configured to log in that format. 

Note that if you want to log referer information, the combined log
format is a better format.

=head1 REFERER LOG FORMAT

The Referer log format logs the referer information in the following format :

 I<uri> -> I<document>

where the fields have the following meaning:

=over 4

=item I<uri>

The referring URI. This is the content of the Referer request's header
which usually reflects the page where the user was before that
request.

=item I<document>

The local document that was referenced by that URI. This is the
requested file without any query string.

=back

=head1 EXAMPLES

To process a log as produced in the referer logformat:

 $ referer2dlf < referer.log

referer2dlf will be rarely used on its own, but is more likely called
by lr_log2report:

 $ lr_log2report referer < /var/log/httpd/referer.log

=head1 SEE ALSO

common2dlf(1), combined(2), modgzip2dlf(1)

=head1 AUTHORS

Joost van Baal <joostvb@logreport.org>, Francis J. Lacoste
<flacoste@logreport.org> and Egon Willighagen <egonw@logreport.org>,
based on an idea by Edwin Groothuis

=head1 VERSION

$Id: referer2dlf.in,v 1.10 2006/07/23 13:16:37 vanbaal Exp $

=head1 COPYRIGHT

Copyright (C) 2000, 2001 Stichting LogReport Foundation LogReport@LogReport.org

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program (see COPYING); if not, check with
http://www.gnu.org/copyleft/gpl.html.

=cut

# Local Variables:
# mode: cperl
# End:
