#!/usr/common/bin/perl -w
# Parameter definitions for Net-Print
############################################################
# 04/02/2001 rcc2 - Add file size limit for smbd
# 02/04/2000 rcc2 - Regroove for Informix
# 12/07/1999 rcc2 - Additional variables
# 08/01/1999 rcc2 - Convert NPparams to Perl 5 module npparams.pm
############################################################

package npparams;

# "use diagnostics" should be commented out for production environment
#use diagnostics;
use strict;

use vars qw{ @ISA @EXPORT };
require Exporter;
@ISA = qw{ Exporter };
@EXPORT = qw{
    %bannervals
    %statusvals
    %ftypevals
    $HOST
    $SRVKEYHOST
    $HOSTNAME
    $ETCDIR
    $LIBDIR
    $SPOOLDIR
    $LOGDIR
    $SAMBADIR
    $ERRORLOG
    $SUDOPATH
    $NPROOTUTIL
    $PRTCFG
    $ACCTSERVERID
    $PDISPSERVERID
    $CUSSPCLIENT
    $PERMITCLIENT
    $FCARCMD
    $EZPRINTID
    $BURSARLOOKUP
    $EZPRINTAGENTID
    $PERMITSERVERID
    $PERMITHOST
    $SIDECARPORT
    $PERMITSVR
    $MGRPERMIT
    $CRDPERMIT
    $RFDPERMIT
    $OPRPERMIT
    $EZPPERMIT
    $MGRBIT
    $CRDBIT
    $CSHBIT
    $RFDBIT
    $OPRBIT
    $SUBBIT
    $MGRLEVEL
    $CRDLEVEL
    $CSHLEVEL
    $RFDLEVEL
    $OPRLEVEL
    $SUBLEVEL
    $AUTHORIZATION
    $NOUSER
    $CIT_URL
    $NPADMIN
    $REFUND_ADMIN
    $SAMBA_MAX_FILESIZE
    };

# exported
use vars qw{
    %bannervals
    %statusvals
    %ftypevals
    $HOST
    $SRVKEYHOST
    $HOSTNAME
    $ETCDIR
    $LIBDIR
    $SPOOLDIR
    $LOGDIR
    $SAMBADIR
    $ERRORLOG
    $SUDOPATH
    $NPROOTUTIL
    $PRTCFG
    $ACCTSERVERID
    $PDISPSERVERID
    $CUSSPCLIENT
    $PERMITCLIENT
    $FCARCMD
    $EZPRINTID
    $BURSARLOOKUP
    $EZPRINTAGENTID
    $PERMITSERVERID
    $PERMITHOST
    $SIDECARPORT
    $PERMITSVR
    $MGRPERMIT
    $CRDPERMIT
    $RFDPERMIT
    $OPRPERMIT
    $EZPPERMIT
    $MGRBIT
    $CRDBIT
    $CSHBIT
    $RFDBIT
    $OPRBIT
    $SUBBIT
    $MGRLEVEL
    $CRDLEVEL
    $CSHLEVEL
    $RFDLEVEL
    $OPRLEVEL
    $SUBLEVEL
    $AUTHORIZATION
    $NOUSER
    $CIT_URL
    $NPADMIN
    $REFUND_ADMIN
    $SAMBA_MAX_FILESIZE
    };

# non-exported
use vars qw{
    $hst
    };

BEGIN {
    $hst = `/usr/bin/hostname`;

    # $SAMBA_MAX_FILESIZE:
    # Maximum allowed size of Samba print jobs (in 512-byte blocks).
    # This is enforced by including 'ulimit -f xxx' in the invocation of
    # smbd in npcontrol.  Print jobs of exactly this size are deleted by
    # auth.pl.  Disabled if set to zero.
    chomp($hst);
    if ( $hst =~ /^curdie$/ ) {
	$HOST = "curdie";    
	$SRVKEYHOST = "lemur";		# 'host' part of some service keys
	$HOSTNAME = "curdie.cit.cornell.edu";
        $SAMBA_MAX_FILESIZE = 0
    }
    elsif ( $hst =~ /^page2$/ ) {
	$HOST="page2";
	$SRVKEYHOST = "page";    
	$HOSTNAME = "net-print.cit.cornell.edu";	# Web server name
        $SAMBA_MAX_FILESIZE = 200000
    }
    elsif ( $hst =~ /^irene/ ) {
	$HOST = "irene";    
	$SRVKEYHOST = "lemur";		# 'host' part of some service keys
	$HOSTNAME = "irene.cit.cornell.edu";
        $SAMBA_MAX_FILESIZE = 0
    }
    else {
	die "Net-Print is not configured for this host ($hst)\n";
    }

    $ETCDIR = "/usr/local/netprint/etc";
    $LIBDIR = "/usr/local/netprint/lib";
    $SPOOLDIR = "/var/netprint/spool";
    $SAMBADIR = "/usr/local/netprint/samba";
    $LOGDIR = "/var/netprint/logs";
    $ERRORLOG = "$LOGDIR/Errors.log";

    $SUDOPATH = "/usr/common/bin/sudo"; 
    $NPROOTUTIL = "$ETCDIR/nprootutil";
    $PRTCFG = "$SPOOLDIR/PRTCFG";
    $ACCTSERVERID = "EZPRINT_PUB.$SRVKEYHOST";
    $PDISPSERVERID = "EZPRINT_PUB.$SRVKEYHOST";  # printdisp service principal
    $CUSSPCLIENT = "/usr/common/bin/cusspclient";

    # Set permits and services
    $EZPRINTID = "EZPRINT_PUB.$SRVKEYHOST";
    $EZPRINTAGENTID = "EZPRINT_PUB-agent.$SRVKEYHOST";
    $PERMITSERVERID = "permitd.permit1";
    $PERMITHOST = "permit1.cit.cornell.edu:756";
    $SIDECARPORT = "913";  # host is client's host
    $PERMITSVR = "-h $PERMITHOST -r $PERMITSERVERID";
    $PERMITCLIENT = "$CUSSPCLIENT $PERMITSVR -s $EZPRINTID";
    $FCARCMD = "$CUSSPCLIENT -F $EZPRINTAGENTID";
#    $BURSARLOOKUP = "$CUSSPCLIENT -h cornellc.cit.cornell.edu:993 -c SIGXLTID -r kfront.cusockets -s $EZPRINTID";
    $BURSARLOOKUP = "$CUSSPCLIENT -h kfront.cit.cornell.edu:1993 -c SIGXLTID -r kfront.cusockets -s $EZPRINTID";
    $MGRBIT = 32;
    $CRDBIT = 16;
    $CSHBIT = 8;
    $RFDBIT = 4;
    $OPRBIT = 2;
    $SUBBIT = 1;
    $MGRLEVEL = $MGRBIT;
    $CRDLEVEL = $CRDBIT | $MGRBIT;
    $CSHLEVEL = $CSHBIT | $MGRBIT;
    $RFDLEVEL = $RFDBIT | $MGRBIT;
    $OPRLEVEL = $OPRBIT | $CRDBIT | $RFDBIT | $MGRBIT;
    $SUBLEVEL = $SUBBIT | $OPRBIT | $CRDBIT | $RFDBIT |  $MGRBIT;
    $AUTHORIZATION = 0;
    $NOUSER = "UNDETERMINED";    # Flag indicating no userid determined

    # Database
    %bannervals = ('Watermark' => 'W', 'BannerWA' => 'A', 'BannerWOA' => 'B', 'W' => 'Watermark', 'A' => 'BannerWA', 'B' => 'BannerWOA');
    %statusvals = ('Ok' => 'O', 'Canceled' => 'C', 'Disabled' => 'D', 'O' => 'Ok', 'C' => 'Canceled', 'D' => 'Disabled', 'R' => 'Remove');
    %ftypevals = ('Bursar' => 'B', 'Dept' => 'D', 'Cash' => 'M', 'Course' => 'C', 'B' => 'Bursar', 'D' => 'Dept', 'M' => 'Cash', 'C' => 'Course');

    # Miscellaneous
    $CIT_URL = "http://www.cit.cornell.edu";
    $NPADMIN = "net-print-admin\@$HOSTNAME";
    $REFUND_ADMIN = "refund-request\@$HOSTNAME";
}

1;
