This file is indexed.

/usr/share/perl5/Lire/DlfConverters/CUPS.pm is in lire 2:2.1.1-2.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Copyright (C) 2000-2004 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.
#
# Authors:
#   Egon Willighagen <egonw@logreport.org>
#   Wessel Dankers <wsl@logreport.org>
#   Francis J. Lacoste <flacoste@logreport.org>

package Lire::DlfConverters::CUPS;

use strict;

use base qw/Lire::DlfConverter/;
use Lire::Time qw/clf2cal/;
use Carp;

sub new {
    return bless {}, shift;
}

sub name {
    return 'cups_pagelog';
}

sub title {
    return 'CUPS printer server page log';
}

sub description { 
    return '<para>This DlfConverter converts CUPS page
log file to the print schema.</para>';
}

sub schemas {
    return qw/print/;
}

sub handle_log_lines {
    return 1;
}

sub init_dlf_converter {
    my ($self, $process) = @_;
    $self->{'dlf'} = {};
    return;
}

sub process_log_line {
    my ($self, $process, $line) = @_;

    # snoopy ANGELA 2 [09/Jun/2005:12:50:37 +0200] 1 1 - 10.27.1.223
    # lp joostvb 87 [22/Jul/2006:13:37:27 +0200] 1 1 - localhost
    my ( $printer, $user, $job_id, $clftime, $pagenum, $ncopies, $billing )
      = $line =~ /^([^ ]*) ([^ ]*) ([^ ]*) (\[[^]]+\]) ([^ ]*) ([^ ]*)(?: -)?(?:\s([^ ]*))?$/;
    unless ( $printer ) {
        $process->error( 'invalid page_log line', $line );
        return;
    }

    my $time = eval { clf2cal( $clftime ) };
    if ( $@ ) {
        $process->error( $@, $line );
        return;
    }

    if( !defined $self->{'dlf'}{'job-id'}
        || $self->{'dlf'}{'job-id'} ne $job_id )
    {
        # new job; output the DLF line
        $process->write_dlf('print', $self->{'dlf'})
          if defined $self->{'dlf'}{'job-id'};

        $self->{'dlf'} = { 'printer' => $printer,
                           'time' => $time,
                           'duration' => 0,
                           'num_pages' => $pagenum,
                           'num_copies' => $ncopies,
                           'job-id' => $job_id,
                           'billing' => undef,
                           'user' => undef,
                         };
        $self->{'dlf'}{'billing'} = $billing if $billing;
        $self->{'dlf'}{'user'} = $user if $user;
    } else {
        # same job; update info
        $self->{'dlf'}{'num_pages'} = $pagenum;
        $self->{'dlf'}{'duration'} = $time - $self->{'dlf'}{'time'};
    }

    return;
}

sub finish_conversion {
    my ($self, $process) = @_;

    $process->write_dlf('print', $self->{'dlf'})
      if defined $self->{'dlf'}{'job-id'};

    return;
}

1;