From dd034b71b47d70afb6d94d8adc26e205aef04d85 Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Sun, 1 Feb 2026 00:40:30 +0100 Subject: [PATCH 1/2] Fix indenting. Signed-off-by: Thomas Hochstein --- MOD/DBIUtils.pm | 2 +- bin/poster.pl | 37 +++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/MOD/DBIUtils.pm b/MOD/DBIUtils.pm index fcdb029..c7b1bec 100644 --- a/MOD/DBIUtils.pm +++ b/MOD/DBIUtils.pm @@ -101,7 +101,7 @@ sub enter_table($$$$) { if ($values[$i]) { - $msg .= "\n*** " . $columns[$i] . "***\n" . $values[$i]; + $msg .= "\n*** " . $columns[$i] . "***\n" . $values[$i]; } } $self->increase_errorlevel($article_id, $msg); diff --git a/bin/poster.pl b/bin/poster.pl index bc03158..0dd9cc5 100755 --- a/bin/poster.pl +++ b/bin/poster.pl @@ -129,7 +129,7 @@ while (my $ref = $dataref->fetchrow_arrayref) my ($id,$posting) = @{$ref}; next unless($dbi->set_status($id, 'sending', [ 'moderated' ])); -# Posting einlesen. + # Posting einlesen. my $article = News::Article->new(\$posting); next if (!defined($article->header('Newsgroups'))); @@ -189,23 +189,24 @@ while (my $ref = $dataref->fetchrow_arrayref) 'X-Zedat-Hint', # FU Berlin (moderators.dana.de) ); -#albasani-workaround fuer @invalid + # albasani-workaround fuer @invalid if ($article->header('From') =~ /\@invalid[> ]/i) { my $newfrom = $article->header('From'); $newfrom =~ s/\@invalid/\@invalid.invalid/i; $article->set_headers('From',$newfrom); } -# albasani-workaround fuer leere User-Agent headerzeilen + # albasani-workaround fuer leere User-Agent headerzeilen if (defined $article->header('User-Agent') and $article->header('User-Agent') !~ /\w/) { $article->drop_headers(('User-Agent')); } -#Neue Message-ID und Approved-Header erzeugen - my $mid = defined($article->header('Message-ID')) ? $article->header('Message-ID') : - '<' . substr (rand() . '-' . time(), 2) . '@' . $config{'mid_fqdn'} . '>'; - $article->set_headers('Message-ID', $mid, 'Approved', $approve_string); -#signieren + #Neue Message-ID und Approved-Header erzeugen + my $mid = defined($article->header('Message-ID')) ? $article->header('Message-ID') : + '<' . substr (rand() . '-' . time(), 2) . '@' . $config{'mid_fqdn'} . '>'; + $article->set_headers('Message-ID', $mid, 'Approved', $approve_string); + + #signieren if ($sign_pgpmoose) { my @msg = $article->sign_pgpmoose($moderated_group, $pgp_passphrase, $pgp_keyid); @@ -217,16 +218,16 @@ while (my $ref = $dataref->fetchrow_arrayref) my @articleheaders = $article->header('References'); eval { -# Workaround fuer Buggy Software, die kaputte References erzeugt - my @references = $article->header('References'); - if (@references > 1) { - $article->set_headers('References', join "\n ", @references); - } -#posten - $article->post($nntp) or die $!; -#posted-Bit setzen, aktuelle MID in DB eintragen (wird in Zukunft vielleicht mal von einer Zusatzfunktion benoetigt) - $dbi->set_posted_status($id,$mid); - }; + # Workaround fuer Buggy Software, die kaputte References erzeugt + my @references = $article->header('References'); + if (@references > 1) { + $article->set_headers('References', join "\n ", @references); + } + #posten + $article->post($nntp) or die $!; + #posted-Bit setzen, aktuelle MID in DB eintragen (wird in Zukunft vielleicht mal von einer Zusatzfunktion benoetigt) + $dbi->set_posted_status($id,$mid); + }; # Fehler in Datenbank festhalten, sofern einer aufgetreten ist if ($@) { $dbi->increase_errorlevel($id, $@); From af5ed9465fdd092fee788e3e33a483c689777d39 Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Sun, 1 Feb 2026 00:42:36 +0100 Subject: [PATCH 2/2] Fix headers with continuation immediately at start. Signed-off-by: Thomas Hochstein --- ChangeLog | 1 + bin/poster.pl | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index 38d3b9c..d9131ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ huhu 0.11.0 (unreleased) * Add wrapper script for read-mail.pl * Drop more headers. * Only connect to newsserver if there are approved posts. + * Fix headers with continuation immediately at start. huhu 0.10 (unknown) * huhu reports version 0.09 (from MOD/Displaylib.pm), but has code diff --git a/bin/poster.pl b/bin/poster.pl index 0dd9cc5..682e35f 100755 --- a/bin/poster.pl +++ b/bin/poster.pl @@ -200,6 +200,18 @@ while (my $ref = $dataref->fetchrow_arrayref) $article->drop_headers(('User-Agent')); } + # Fix headers with continuation immediately at start, i.e. + # X-MyHeader: + # Thisisaveryveryveryveryveryveryveryveryverylongheadervalue. + # will become + # X-MyHeader: Thisisaveryveryveryveryveryveryveryveryverylongheadervalue. + foreach my $header ( $article->header_names() ) { + if ($article->header($header) =~ /^\n/) { + my $fixedheader = $article->header($header); + $fixedheader =~ s/^\n\s+//; + $article->set_headers($header, $fixedheader); + } + } #Neue Message-ID und Approved-Header erzeugen my $mid = defined($article->header('Message-ID')) ? $article->header('Message-ID') :