Subject: Re: [PATCH] send-email: support NNTP

From: [email-masked] (Łukasz Stelmach)
Date: Wed, 24 Apr 2013 10:42:44 +0200

It was <2013-04-24 śro 09:38>, when Thomas Rast wrote:
> Łukasz Stelmach <[email-masked]> writes:
>
>> Enable sending patches to NNTP servers (Usenet, Gmane).
>
> I'm surprised Junio didn't mention this: your patch lacks the
> Signed-off-by.
>
>> +	if ($email_protocol eq 'nntp') {
>> +		$header = "Newsgroups: $to\n" . $header;
>> +	} else {
>> +		$header = "To: $to${ccline}\n" . $header;
>> +	}
>
> Are you silently ignoring any Ccs that have been set if you're in NNTP
> mode?

Yes.

> Would it be possible to instead send the Ccs by mail as usual, and only
> the main message over NNTP?  (You don't need to run off and implement
> this, but I'm curious how hard you think it would be.)

Currently you choose a code path with --protocol. The message is sent
only once. It is possible to iterate over To/Cc/Bcc/Newsgroups and
choose send it more than once. There are some tiny nasty bits though, I
don't know how to handle. For example:

--8<---------------cut here---------------start------------->8---
@@ -761,12 +807,21 @@ if (!defined $sender) {
 }
 
 my $prompting = 0;
-if (!@initial_to && !defined $to_cmd) {
+
+if ($email_protocol eq 'smtp' && !@initial_to && !defined $to_cmd) {
 	my $to = ask("Who should the emails be sent to (if any)? ",
 		     default => "",
 		     valid_re => qr/\@.*\./, confirm_only => 1);
 	push @initial_to, parse_address_line($to) if defined $to; # sanitized/validated later
 	$prompting++;
+} elsif ($email_protocol eq 'nntp' &&
+	 !@initial_newsgroups &&
+	 !defined $newsgroups_cmd) {
+	my $newsgroup = ask("Which newsgroups should the message be sent to (if any)? ",
+		     default => "",
+		     valid_re => qr/[\x20-\x7f]+/, confirm_only => 1);
+	push @initial_newsgroups, $newsgroup if defined $newsgroup; # sanitized/validated later
+	$prompting++;
 }
--8<---------------cut here---------------end--------------->8---

How to ask interactively where to send the message? With protocol set
early it is clear what we are trying to do. Any suggestions?

The other issue is that I am not sure (RFC?) if it is OK to send
To/Cc/Bcc headers in a NNTP message. Theoretically they should not break
things but...

> At least in the git@vger world with a lot of etiquette surrounding the
> use of Ccs, NNTP mode isn't very useful if you can't also send Ccs.  But
> maybe you have another use-case where that is not a problem?

I've sent this patch vi NNTP :) You've got it.

-- 
Łukasz Stelmach
Software wizzard
Samsung Poland R&D Center