aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarNoèl Köthe <noel@debian.org>2006-02-21 22:23:56 +0100
committerLibravatarUnit 193 <unit193@ubuntu.com>2019-12-05 16:35:10 -0500
commitd9616469b8c78909d6ee34be21e2f5e060dd7206 (patch)
tree4ae8dc23fb12e39581071e76f9adb0a1453cb7ea
parentb8815138539a86864aafe56f7a4c9eaef6fe4ac2 (diff)
parente287e05850046efa72cfd8bf5f6fe564c6cfd8e2 (diff)
downloadlistadmin-d9616469b8c78909d6ee34be21e2f5e060dd7206.tar.bz2
listadmin-d9616469b8c78909d6ee34be21e2f5e060dd7206.tar.xz
listadmin-d9616469b8c78909d6ee34be21e2f5e060dd7206.tar.zst
Import Debian changes 2.30-1debian/2.30-1
listadmin (2.30-1) unstable; urgency=low * new upstream release from 2006-02-19
-rw-r--r--Makefile4
-rw-r--r--debian/changelog6
-rwxr-xr-xlistadmin.pl68
-rw-r--r--listadmin.txt3
4 files changed, 48 insertions, 33 deletions
diff --git a/Makefile b/Makefile
index d207f58..ef0037b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
SHELL = /bin/sh
INSTALL = install -c
-VERSION = 2.29
+VERSION = 2.30
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
@@ -18,7 +18,7 @@ install:
listadmin.txt: listadmin.man
# Note the verbatim backspace in the sed command
- env TERM=dumb nroff -man $< | sed 's/.//g' | uniq > $@.tmp
+ env TERM=dumb nroff -man $< | sed -e '/^XXX/d' -e 's/.//g' | uniq > $@.tmp
mv $@.tmp $@
TARFILE = listadmin-$(VERSION).tar.gz
diff --git a/debian/changelog b/debian/changelog
index 96f32b7..c4c81ca 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+listadmin (2.30-1) unstable; urgency=low
+
+ * new upstream release from 2006-02-19
+
+ -- Noèl Köthe <noel@debian.org> Tue, 21 Feb 2006 22:23:56 +0100
+
listadmin (2.29-1) unstable; urgency=low
* new upstream release from 2006-02-17
diff --git a/listadmin.pl b/listadmin.pl
index a4c7949..42da77b 100755
--- a/listadmin.pl
+++ b/listadmin.pl
@@ -1,6 +1,6 @@
#! /usr/bin/perl -w
#
-# listadmin version 2.29
+# listadmin version 2.30
# Written 2003 - 2006 by
# Kjetil Torgrim Homme <kjetilho+listadmin@ifi.uio.no>
#
@@ -94,19 +94,36 @@ for (@lists) {
}
my $info = {};
- print "fetching data for $list\n";
+ my $tries = 0;
+ print "\nfetching data for $list ... ";
do {
- if ($pw eq "" || $info->{'autherror'}) {
+ if (-t && ($pw eq "" || $info->{'autherror'})) {
+ print "\n" unless $tries++;
$pw = prompt_password("Enter password" .
($user ? " for $user: ": ": "));
+ next if $pw eq "";
}
- $info = get_list ($list, $config->{$list}, $pw) if $pw;
- } while ($info->{'autherror'} && $pw);
+ $info = get_list($list, $config->{$list}, $pw);
+ if ($info->{'autherror'}) {
+ print "\n" unless $tries++;
+ print STDERR "ERROR: Username or password for $list incorrect\n";
+ }
+ } while (-t && $info->{'autherror'} && $tries < 9);
+
if ($info->{'servererror'}) {
+ print "\n";
+ printf STDERR ("ERROR: fetching %s\n", $info->{'url'});
+ printf STDERR ("ERROR: Server returned '%s' -- skipping list\n",
+ $info->{'servererror'});
next;
} elsif ($info->{'autherror'}) {
- print "no password, skipping...\n" unless $pw;
+ print "giving up, proceeding to next list\n";
next;
+ } elsif (! %{$info}) {
+ print "nothing in queue\n";
+ next;
+ } else {
+ print "\n";
}
my %change = ();
@@ -441,20 +458,24 @@ sub get_list {
my $starttime = time;
my $mmver;
my ($page, $page_appr, $resp_appr);
- my $resp = $ua->post(mailman_url($list, $config->{"adminurl"}),
- mailman_params($config->{"user"}, $pw));
+ my $url = mailman_url($list, $config->{"adminurl"});
+ my $resp = $ua->post($url, mailman_params($config->{"user"}, $pw));
unless ($resp->is_success) {
- print STDERR $resp->error_as_HTML;
- return {'servererror' => 1};
+ return {'servererror' => $resp->status_line, 'url' => $url};
}
$page = $resp->content;
+ my $dumpdir = $config->{"dumpdir"};
+ if (defined $dumpdir) {
+ if (open (DUMP, ">$dumpdir/dump-$list.html")) {
+ print DUMP $page;
+ close (DUMP);
+ }
+ }
my $parse = HTML::TokeParser->new(\$page) || die;
$parse->get_tag ("title") || die;
my $title = $parse->get_trimmed_text ("/title") || die;
if ($title =~ /authentication/i) {
- print STDERR
- "Unable to log in. Is your username and password correct?\n";
return {'autherror' => 1};
}
@@ -471,23 +492,14 @@ sub get_list {
if ($mmver ge "2.1") {
# Mailman does not look for "details" in parameters, so it
# must be part of the query string.
- $resp = $ua->post(mailman_url($list, $config->{"adminurl"},
- "details=all"),
- mailman_params($config->{"user"}, $pw));
+ $url = mailman_url($list, $config->{"adminurl"}, "details=all");
+ $resp = $ua->post($url, mailman_params($config->{"user"}, $pw));
unless ($resp->is_success) {
- print STDERR $resp->error_as_HTML;
- return {'servererror' => 1};
+ return {'servererror' => $resp->status_line, 'url' => $url};
}
$page_appr = $resp->content;
- }
-
- my $dumpdir = $config->{"dumpdir"};
- if (defined $dumpdir) {
- if (open (DUMP, ">$dumpdir/dump-subs-$list.html")) {
- print DUMP $page;
- close (DUMP);
- }
- if ($page_appr && open (DUMP, ">$dumpdir/dump-held-$list.html")) {
+ if (defined $dumpdir &&
+ open (DUMP, ">$dumpdir/dump-details-$list.html")) {
print DUMP $page_appr;
close (DUMP);
}
@@ -500,7 +512,7 @@ sub get_list {
} else {
$data = parse_pages_mm_old($mmver, $config, $parse);
}
- set_param_values($mmver, $data);
+ set_param_values($mmver, $data) if %{$data};
return $data;
}
@@ -510,7 +522,7 @@ sub parse_pages_mm_old {
my %data = ();
my $token;
$parse->get_tag ("hr");
- $parse->get_tag ("h2") || return ();
+ $parse->get_tag ("h2") || return \%data;
my $headline = $parse->get_trimmed_text ("/h2") || die;
if ($headline =~ /subscription/i) {
parse_subscriptions ($mmver, $config, $parse, \%data);
diff --git a/listadmin.txt b/listadmin.txt
index c8c4790..c4bd60c 100644
--- a/listadmin.txt
+++ b/listadmin.txt
@@ -1,6 +1,3 @@
-XXX
-XXX WARNING: old character encoding and/or character set
-XXX
LISTADMIN(1) LISTADMIN(1)
NAME