use Debbugs::Status qw(splitpackages);
use Debbugs::CGI qw(html_escape);
-use Debbugs::Control qw(:all);
+use Debbugs::Control qw(:all valid_usertag);
use Debbugs::Control::Service qw(:all);
use Debbugs::Log qw(:misc);
use Debbugs::Text qw(:templates);
my %chtags;
if (defined $tags and length $tags) {
for my $t (split /[,\s]+/, $tags) {
- if ($t =~ m/^[a-zA-Z0-9.+\@-]+$/) {
+ if (valid_usertag($t)) {
$chtags{$t} = 1;
} else {
push @badtags, $t;
} else {
print {$transcript} "Usertags were: " . join(" ", @oldtags) . ".\n";
}
- print {$transcript} "Usertags are now: " . join(" ", @newtags) . ".\n";
+ if (@newtags == 0) {
+ print {$transcript} "There are now no usertags set.\n";
+ } else {
+ print {$transcript} "Usertags are now: " . join(" ", @newtags) . ".\n";
+ }
Debbugs::User::write_usertags(\%ut, $user);
}
} elsif (!$control) {
sub sendlynxdocraw {
my ($relpath,$description) = @_;
$doc='';
- open(L,"lynx -nolist -dump $gCGIDomain/\Q$relpath\E 2>&1 |") || die "fork for lynx: $!";
+ # work around DSA cert setup
+ $ENV{SSL_CERT_FILE}='/etc/ssl/ca-debian/ca-certificates.crt';
+ open(L,"lynx -nolist -dump https://$gCGIDomain/\Q$relpath\E 2>&1 |") || die "fork for lynx: $!";
while(<L>) { $doc.=$_; }
$!=0; close(L);
+ delete $ENV{SSL_CERT_FILE};
if ($? == 255 && $doc =~ m/^\n*lynx: Can\'t access start file/) {
print {$transcript} "Information ($description) is not available -\n".
"perhaps the $gBug does not exist or is not on the WWW yet.\n";