#!/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;