From 6058eb889d4a8fafb0dbecf8a0fc9a21991bbbd1 Mon Sep 17 00:00:00 2001 From: Till Kamppeter Date: Tue, 15 Feb 2005 19:49:28 +0000 Subject: Force only ASCII letters, numbers, and underscores being used in print queue names. --- perl-install/printer/printerdrake.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'perl-install') diff --git a/perl-install/printer/printerdrake.pm b/perl-install/printer/printerdrake.pm index a35293840..3e8ab3eda 100644 --- a/perl-install/printer/printerdrake.pm +++ b/perl-install/printer/printerdrake.pm @@ -901,7 +901,7 @@ sub generate_queuename { my $queue; if ($printer->{currentqueue}{model}) { if ($printer->{currentqueue}{model} eq N("Unknown model")) { - $queue = N("Printer"); + $queue = "P"; } else { $queue = $printer->{currentqueue}{make} . '|' . $printer->{currentqueue}{model}; @@ -916,6 +916,10 @@ sub generate_queuename { my $make = $printer->{currentqueue}{make}; my $model = $printer->{currentqueue}{model}; $queue =~ s/$make$make/$make/gi; + # Remove weird characters + $queue =~ s/[^A-Za-z0-9_]//g; + $make =~ s/[^A-Za-z0-9_]//g; + $model =~ s/[^A-Za-z0-9_]//g; # Do not use a queue name longer than 12 characters, as otherwise # Windows clients will not be able to access the printer my $ml = 12; @@ -2655,7 +2659,7 @@ sub choose_printer_name { { title => N("Enter Printer Name and Comments"), #cancel => !$printer->{configured}{$queue} ? '' : N("Remove queue"), callbacks => { complete => sub { - unless ($printer->{currentqueue}{queue} =~ /^\w+$/) { + unless ($printer->{currentqueue}{queue} =~ /^[A-Za-z0-9_]+$/) { $in->ask_warn(N("Error"), N("Name of printer should contain only letters, numbers and the underscore")); return 1, 0; } -- cgit v1.2.1