X7ROOT File Manager
Current Path:
/usr/libexec/webmin/lpadmin
usr
/
libexec
/
webmin
/
lpadmin
/
📁
..
📄
CHANGELOG
(1.16 KB)
📄
acl_security.pl
(4.4 KB)
📄
aix-lib.pl
(9.45 KB)
📄
ascii.txt
(4.19 KB)
📄
base_coas_driver
(560 B)
📄
bw.fig
(2.75 KB)
📄
bw.ps
(6.46 KB)
📄
caldera-driver.pl
(12.31 KB)
📄
cancel_all.cgi
(535 B)
📄
catalog.devices
(12.34 KB)
📄
cgi_args.pl
(284 B)
📄
cluster.cgi
(2.06 KB)
📄
cluster_add.cgi
(2.13 KB)
📄
cluster_delete.cgi
(529 B)
📄
colour.fig
(2.91 KB)
📄
colour.ps
(6.63 KB)
📄
config-AlmaLinux-7.0-ALL
(323 B)
📄
config-Amazon-Linux-2-ALL
(323 B)
📄
config-CentOS-Linux-7.0-ALL
(323 B)
📄
config-CentOS-Stream-Linux-8.0-ALL
(323 B)
📄
config-Oracle-Linux-8.0-ALL
(323 B)
📄
config-Redhat-Enterprise-Linux-7.0-ALL
(323 B)
📄
config-Rocky-Linux-7.0-ALL
(323 B)
📄
config-Scientific-Linux-7.0-ALL
(323 B)
📄
config-aix
(281 B)
📄
config-coherent-linux
(323 B)
📄
config-corel-linux
(228 B)
📄
config-debian-linux
(228 B)
📄
config-debian-linux-3.1-3.9
(327 B)
📄
config-debian-linux-4.0-ALL
(333 B)
📄
config-freebsd
(230 B)
📄
config-generic-linux
(228 B)
📄
config-gentoo-linux
(248 B)
📄
config-hpux
(323 B)
📄
config-irix
(213 B)
📄
config-macos
(230 B)
📄
config-mandrake-linux
(245 B)
📄
config-mandrake-linux-8.0-ALL
(276 B)
📄
config-msc-linux
(228 B)
📄
config-netbsd
(230 B)
📄
config-open-linux
(309 B)
📄
config-open-linux-3.1e
(239 B)
📄
config-openbsd
(230 B)
📄
config-openmamba-linux
(229 B)
📄
config-pardus-linux
(228 B)
📄
config-redhat-linux
(228 B)
📄
config-redhat-linux-24.0-ALL
(339 B)
📄
config-redhat-linux-7.0
(283 B)
📄
config-redhat-linux-7.1
(286 B)
📄
config-redhat-linux-7.2-8.1
(394 B)
📄
config-redhat-linux-9.0-23.0
(337 B)
📄
config-slackware-linux
(228 B)
📄
config-slackware-linux-8.1-ALL
(246 B)
📄
config-solaris
(304 B)
📄
config-solaris-10-ALL
(330 B)
📄
config-solaris-9
(296 B)
📄
config-suse-linux
(226 B)
📄
config-suse-linux-8.2-ALL
(322 B)
📄
config-trustix-linux
(313 B)
📄
config-turbo-linux
(228 B)
📄
config-united-linux
(322 B)
📄
config-unixware
(302 B)
📄
config.info
(1.31 KB)
📄
config.info.ca
(1.53 KB)
📄
config.info.cs
(1.25 KB)
📄
config.info.de
(1.43 KB)
📄
config.info.es
(1.17 KB)
📄
config.info.fr
(1.63 KB)
📄
config.info.hu
(707 B)
📄
config.info.ja
(823 B)
📄
config.info.nl
(1.41 KB)
📄
config.info.no
(1.37 KB)
📄
config.info.pl
(1.45 KB)
📄
config.info.pt_BR
(1.58 KB)
📄
config.info.ru
(1.74 KB)
📄
config.info.sv
(651 B)
📄
config.info.tr
(1.39 KB)
📄
config.info.uk
(1.81 KB)
📄
config.info.zh
(573 B)
📄
config.info.zh_TW
(539 B)
📄
cups-driver.pl
(6.37 KB)
📄
cups-lib.pl
(8.67 KB)
📄
defaultacl
(73 B)
📄
delete_printer.cgi
(690 B)
📄
delete_printers.cgi
(839 B)
📄
drivers
(18.34 KB)
📄
edit_printer.cgi
(10.08 KB)
📄
freebsd-lib.pl
(7.26 KB)
📄
hpux-driver.pl
(3.13 KB)
📄
hpux-lib.pl
(9.83 KB)
📁
images
📄
index.cgi
(5.83 KB)
📄
irix-driver.pl
(3.13 KB)
📄
irix-lib.pl
(10.68 KB)
📁
lang
📄
linux-lib.pl
(8.97 KB)
📄
list_jobs.cgi
(2.25 KB)
📄
log_parser.pl
(1021 B)
📄
lpadmin-lib.pl
(19.89 KB)
📄
lprng-lib.pl
(10.26 KB)
📄
module.info
(494 B)
📄
module.info.af
(0 B)
📄
module.info.af.auto
(159 B)
📄
module.info.ar
(0 B)
📄
module.info.ar.auto
(223 B)
📄
module.info.be
(0 B)
📄
module.info.be.auto
(290 B)
📄
module.info.bg
(0 B)
📄
module.info.bg.auto
(306 B)
📄
module.info.ca
(167 B)
📄
module.info.ca.auto
(16 B)
📄
module.info.cs
(31 B)
📄
module.info.cs.auto
(155 B)
📄
module.info.da
(0 B)
📄
module.info.da.auto
(168 B)
📄
module.info.de
(148 B)
📄
module.info.de.auto
(16 B)
📄
module.info.el
(0 B)
📄
module.info.el.auto
(362 B)
📄
module.info.es
(38 B)
📄
module.info.es.auto
(157 B)
📄
module.info.eu
(0 B)
📄
module.info.eu.auto
(217 B)
📄
module.info.fa
(0 B)
📄
module.info.fa.auto
(246 B)
📄
module.info.fi
(0 B)
📄
module.info.fi.auto
(168 B)
📄
module.info.fr
(39 B)
📄
module.info.fr.auto
(176 B)
📄
module.info.he
(0 B)
📄
module.info.he.auto
(205 B)
📄
module.info.hr
(0 B)
📄
module.info.hr.auto
(188 B)
📄
module.info.hu
(19 B)
📄
module.info.hu.auto
(173 B)
📄
module.info.it
(0 B)
📄
module.info.it.auto
(177 B)
📄
module.info.ja
(27 B)
📄
module.info.ja.auto
(213 B)
📄
module.info.ko
(25 B)
📄
module.info.ko.auto
(176 B)
📄
module.info.lt
(0 B)
📄
module.info.lt.auto
(219 B)
📄
module.info.lv
(0 B)
📄
module.info.lv.auto
(189 B)
📄
module.info.ms
(152 B)
📄
module.info.ms.auto
(16 B)
📄
module.info.mt
(0 B)
📄
module.info.mt.auto
(196 B)
📄
module.info.nl
(33 B)
📄
module.info.nl.auto
(133 B)
📄
module.info.no
(31 B)
📄
module.info.no.auto
(137 B)
📄
module.info.pl
(160 B)
📄
module.info.pl.auto
(16 B)
📄
module.info.pt
(39 B)
📄
module.info.pt.auto
(149 B)
📄
module.info.pt_BR
(42 B)
📄
module.info.pt_BR.auto
(155 B)
📄
module.info.ro
(0 B)
📄
module.info.ro.auto
(199 B)
📄
module.info.ru
(25 B)
📄
module.info.ru.auto
(245 B)
📄
module.info.sk
(0 B)
📄
module.info.sk.auto
(184 B)
📄
module.info.sl
(0 B)
📄
module.info.sl.auto
(192 B)
📄
module.info.sv
(30 B)
📄
module.info.sv.auto
(141 B)
📄
module.info.th
(0 B)
📄
module.info.th.auto
(393 B)
📄
module.info.tr
(27 B)
📄
module.info.tr.auto
(166 B)
📄
module.info.uk
(0 B)
📄
module.info.uk.auto
(281 B)
📄
module.info.ur
(0 B)
📄
module.info.ur.auto
(304 B)
📄
module.info.vi
(0 B)
📄
module.info.vi.auto
(189 B)
📄
module.info.zh
(24 B)
📄
module.info.zh.auto
(136 B)
📄
module.info.zh_TW
(30 B)
📄
module.info.zh_TW.auto
(142 B)
📄
old-caldera-driver.pl
(9.74 KB)
📄
openbsd-lib.pl
(7.26 KB)
📄
prefs.info
(40 B)
📄
printconf-driver.pl
(9.52 KB)
📄
rbac-mapping
(248 B)
📄
redhat-driver.pl
(12.42 KB)
📄
restart.cgi
(301 B)
📄
save_printer.cgi
(5.85 KB)
📄
solaris-driver.pl
(4.03 KB)
📄
solaris-lib.pl
(12.17 KB)
📄
sortdrivers-by-drv.pl
(222 B)
📄
sortdrivers.pl
(242 B)
📄
start.cgi
(377 B)
📄
stop.cgi
(374 B)
📄
stp
(2.45 KB)
📄
suse-driver.pl
(10.62 KB)
📄
test_form.cgi
(887 B)
📄
test_print.cgi
(1.19 KB)
📄
unixware-lib.pl
(7.81 KB)
📄
view_job.cgi
(909 B)
📄
webmin-driver.pl
(1.04 KB)
Editing: freebsd-lib.pl
# freebsd-lib.pl # Functions for printcap-style printer management # list_printers() # Returns a list of known printer names sub list_printers { local($l, @rv); foreach $l (&list_printcap()) { $l->{'name'} =~ /^([^\|]+)/; push(@rv, $1); } return @rv; } # get_printer(name, [nostatus]) sub get_printer { local($l, %prn, @w, @n, $w, %cap, @jobs); foreach $l (&list_printcap()) { @n = split(/\|/, $l->{'name'}); if ($n[0] eq $_[0]) { # found the printer.. get info from printcap $prn{'name'} = $n[0]; if (@n > 2) { $prn{'alias'} = [ @n[1..$#n-1] ]; } if (@n > 1) { $prn{'desc'} = $n[$#n]; } $prn{'iface'} = $l->{'if'}; $prn{'banner'} = !defined($l->{'sh'}); $prn{'dev'} = $l->{'lp'}; $prn{'rhost'} = $l->{'rm'}; $prn{'rqueue'} = $l->{'rp'}; $prn{'msize'} = $l->{'mx'}; $prn{'ro'} = $l->{'file'} eq $config{'ro_printcap_file'}; if (!$_[1]) { # call lpc to get status local $esc = quotemeta($prn{'name'}); $out = &backquote_command("lpc status $esc 2>&1", 1); $prn{'accepting'} = ($out =~ /queuing is enabled/); $prn{'enabled'} = ($out =~ /printing is enabled/); } return \%prn; } } return undef; } sub get_jobs { local @jobs; local $esc = quotemeta($_[0]); open(LPQ, "lpq -P$esc |"); while(<LPQ>) { chop; if (/^Rank\s+Owner\s+/) { $doneheader++; } elsif ($doneheader && /^(\S+)\s+(\S+)\s+(\d+)\s+(.*\S)\s+(\d+)\s+(\S+)$/) { local(%job); $job{'id'} = $3; $job{'user'} = $2; $job{'size'} = $5; $job{'file'} = $4; $job{'printing'} = ($1 eq "active"); push(@jobs, \%job); } } close(LPQ); return @jobs; } sub printer_support { return $_[0] !~ /^(why|allow|default|ctype|riface|sysv|direct|rnoqueue|ipp)$/; } # create_printer(&details) # Create a new printer in /etc/printcap sub create_printer { local(%cap); $cap{'sd'} = "$config{'spool_dir'}/$_[0]->{'name'}"; &lock_file($cap{'sd'}); mkdir($cap{'sd'}, 0755); &unlock_file($cap{'sd'}); &lock_file($config{'printcap_file'}); local $lref = &read_file_lines($config{'printcap_file'}); push(@$lref, &make_printcap($_[0], \%cap)); &flush_file_lines($config{'printcap_file'}); &unlock_file($config{'printcap_file'}); &apply_status($_[0]); } # modify_printer(&details) sub modify_printer { local(@old, $o, $old, @cap); &lock_file($config{'printcap_file'}); @old = &list_printcap(); foreach $o (@old) { $o->{'name'} =~ /^([^\|]+)/; if ($1 eq $_[0]->{'name'}) { # found current details $old = $o; last; } } if (!$old) { &error("Printer '$_[0]->{'name'}' no longer exists"); } local $lref = &read_file_lines($config{'printcap_file'}); splice(@$lref, $old->{'line'}, $old->{'eline'} - $old->{'line'} + 1, &make_printcap($_[0], $old)); &flush_file_lines($config{'printcap_file'}); &unlock_file($config{'printcap_file'}); &apply_status($_[0]); } # delete_printer(name) sub delete_printer { local(@old, $o, $old, @cap); &lock_file($config{'printcap_file'}); @old = &list_printcap(); foreach $o (@old) { $o->{'name'} =~ /^([^\|]+)/; if ($1 eq $_[0]) { # found current details $old = $o; last; } } if (!$old) { &error("Printer '$_[0]' no longer exists"); } local $lref = &read_file_lines($config{'printcap_file'}); splice(@$lref, $old->{'line'}, $old->{'eline'} - $old->{'line'} + 1); &flush_file_lines($config{'printcap_file'}); &unlock_file($config{'printcap_file'}); } # cancel_job(printer, job) # Calls lprm to remove some job sub cancel_job { local($out); local $esc = quotemeta($_[0]); local $iesc = quotemeta($_[1]); $out = &backquote_logged("lprm -P$esc $iesc 2>&1"); if ($?) { &error("lprm failed : $out"); } } # make_printcap(&details, &old) # Updates or creates a printcap line sub make_printcap { local(%prn, %cap, $a, $rv, $c); %prn = %{$_[0]}; %cap = %{$_[1]}; $cap{'if'} = $prn{'iface'} ? $prn{'iface'} : undef; $cap{'sh'} = $prn{'banner'} ? undef : ""; $cap{'lp'} = $prn{'dev'} ? $prn{'dev'} : undef; $cap{'rm'} = $prn{'rhost'} ? $prn{'rhost'} : undef; $cap{'rp'} = $prn{'rqueue'} ? $prn{'rqueue'} : undef; $cap{'mx'} = defined($prn{'msize'}) ? $prn{'msize'} : undef; $rv = $prn{'name'}; foreach $a (@{$prn{'alias'}}) { $rv .= "|$a"; } $rv .= "|$prn{'desc'}"; foreach $c (keys %cap) { if (length($c) == 2 && defined($cap{$c})) { if ($cap{$c} eq "") { $rv .= ":$c"; } elsif ($cap{$c} =~ /^\d+$/) { $rv .= ":$c#$cap{$c}"; } else { $rv .= ":$c=$cap{$c}"; } } } $rv .= ":"; return $rv; } # list_printcap() # Returns an array of associative arrays containing printcap fields sub list_printcap { return @list_printcap_cache if (scalar(@list_printcap_cache)); local(@rv, @line, $line, $cont, $lnum, $i, %done, $capfile); foreach $capfile ($config{'printcap_file'}, $config{'ro_printcap_file'}) { next if (!$capfile || $done{$capfile}++); open(CAP, "<".$capfile); $lnum = 0; while($line = <CAP>) { $line =~ s/^#.*$//g; # remove comments $line =~ s/\s+$//g; # remove trailing spaces $line =~ s/^\s+//g; # remove leading spaces if ($line =~ /\S/) { $ncont = ($line =~ s/\\$//g); if ($cont) { $line[$#line] .= $line; $eline[@line - 1] = $lnum; } else { push(@line, $line); $eline[@line - 1] = $sline[@line - 1] = $lnum; } $cont = $ncont; } $lnum++; } close(CAP); for($i=0; $i<@line; $i++) { local(%cap); @w = split(/:+/, $line[$i]); $cap{'name'} = $w[0]; $cap{'line'} = $sline[$i]; $cap{'eline'} = $eline[$i]; $cap{'file'} = $capfile; foreach $w (@w[1..$#w]) { if ($w =~ /^([A-z0-9]+)[=#](.*)$/) { $cap{$1} = $2; } elsif ($w =~ /^([A-z0-9]+)$/) { $cap{$w} = ""; } } push(@rv, \%cap); } } @list_printcap_cache = @rv; return @rv; } # apply_status(&details) # Calls lpc to enable or disable a printer. # Restarting lpd doesn't seem to be necessary? sub apply_status { local($out); local $esc = quotemeta($_[0]->{'name'}); $out = &backquote_command("lpc status $esc 2>&1", 1); if ($_[0]->{'enabled'} && $out !~ /printing is enabled/) { &backquote_logged("lpc up $esc"); } elsif (!$_[0]->{'enabled'} && $out =~ /printing is enabled/) { &backquote_logged("lpc down $esc"); } if ($_[0]->{'accepting'} && $out !~ /queuing is enabled/) { &backquote_logged("lpc enable $esc"); } elsif (!$_[0]->{'accepting'} && $out =~ /queuing is enabled/) { &backquote_logged("lpc disable $esc"); } } # sched_running() # Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped sub sched_running { @pid = &find_byname("lpd"); if (@pid) { return $pid[0]; } return 0; } # start_sched() # Start lpsched sub start_sched { local $out = &backquote_logged("lpd 2>&1"); if ($?) { &error("failed to start lpd : <tt>$out</tt>"); } } # stop_sched(pid) # Stop the running lpsched process sub stop_sched { local @pid = &find_byname("lpd"); &kill_logged('TERM', @pid) || &error("Failed to stop lpd : $!"); } # print_command(printer, file) # Returns the command to print some file on some printer sub print_command { local $esc = quotemeta($_[0]); local $fesc = quotemeta($_[1]); return "lpr -P$esc $fesc"; } # check_print_system() sub check_print_system { &has_command("lpr") || return &text('freebsd_ecmd', "<tt>lpr</tt>"); -d $config{'spool_dir'} || return &text('freebsd_espool', "<tt>$config{'spool_dir'}</tt>"); return undef; } if ($gconfig{'os_type'} eq 'openbsd') { @device_files = ("/dev/lpt0", "/dev/cua00", "/dev/cua01"); } else { @device_files = ("/dev/lpt0", "/dev/cuaa0", "/dev/cuaa1"); } @device_names = ($text{'freebsd_paralel'}, &text('freebsd_serial', "1"), &text('freebsd_serial', "2"));
Upload File
Create Folder