* [PATCH] www+nntp: deal with lack of addresses for ->ALL
@ 2020-12-09 23:33 Eric Wong
0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2020-12-09 23:33 UTC (permalink / raw)
To: meta
Since extindex is an amalgamation of several inboxes, discerning
an appropriate address for List-Post: would be expensive and
most likely unnecessary. Some legacy/historical inboxes may
have no active address, either, so don't attempt to set the
List-Post header if no addresses are configured.
---
lib/PublicInbox/Mbox.pm | 13 +++++--------
lib/PublicInbox/NNTP.pm | 5 +++--
lib/PublicInbox/WwwStream.pm | 9 +++++----
3 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm
index 64de8c72..c88350c9 100644
--- a/lib/PublicInbox/Mbox.pm
+++ b/lib/PublicInbox/Mbox.pm
@@ -106,7 +106,6 @@ sub msg_hdr ($$;$) {
my @append = (
'Archived-At', "<$base$mid/>",
'List-Archive', "<$base>",
- 'List-Post', "<mailto:$ibx->{-primary_address}>",
);
my $crlf = $header_obj->crlf;
my $buf = $header_obj->as_string;
@@ -118,13 +117,11 @@ sub msg_hdr ($$;$) {
my $k = $append[$i];
my $v = $append[$i + 1];
my @v = $header_obj->header_raw($k);
- foreach (@v) {
- if ($v eq $_) {
- $v = undef;
- last;
- }
- }
- $buf .= "$k: $v$crlf" if defined $v;
+ $buf .= "$k: $v$crlf" if !grep(/\A\Q$v\E\z/, @v);
+ }
+ my $post_addr = $ibx->{-primary_address};
+ if ($post_addr && $header_obj->header_raw('List-Post')) {
+ $buf .= "List-Post: <mailto:$post_addr>$crlf";
}
$buf .= $crlf;
}
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 0b43cdbc..097fdb84 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -487,8 +487,9 @@ sub set_nntp_headers ($$) {
# *something* here is required for leafnode, try to follow
# RFC 5536 3.1.5...
$hdr->header_set('Path', $server_name . '!not-for-mail');
-
- header_append($hdr, 'List-Post', "<mailto:$ibx->{-primary_address}>");
+ if (my $post_addr = $ibx->{-primary_address}) {
+ header_append($hdr, 'List-Post', "<mailto:$post_addr>");
+ }
if (my $url = $ibx->base_url) {
$mid = mid_escape($mid);
header_append($hdr, 'Archived-At', "<$url$mid/>");
diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm
index 34e12435..66e34a12 100644
--- a/lib/PublicInbox/WwwStream.pm
+++ b/lib/PublicInbox/WwwStream.pm
@@ -143,10 +143,10 @@ EOF
}
$urls .= "\n" . join('', map { "\tgit clone --mirror $_\n" } @urls);
- my $addrs = $ibx->{address};
- $addrs = join(' ', @$addrs) if ref($addrs) eq 'ARRAY';
- my $v = defined $max ? '-V2' : '-V1';
- $urls .= <<EOF;
+ if (my $addrs = $ibx->{address}) {
+ $addrs = join(' ', @$addrs) if ref($addrs) eq 'ARRAY';
+ my $v = defined $max ? '-V2' : '-V1';
+ $urls .= <<EOF;
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
@@ -154,6 +154,7 @@ EOF
$addrs
public-inbox-index $dir
EOF
+ }
my $cfg_link = ($ctx->{-upfx} // '').'_/text/config/raw';
$urls .= <<EOF;
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2020-12-09 23:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-09 23:33 [PATCH] www+nntp: deal with lack of addresses for ->ALL Eric Wong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).