[Nmh-workers] message-external/body and auto-fetching(?)

2013-02-08 Thread Earl Hood
Checking the nmh source code (and the old MH source code), it seems
to me that if I show a message, but redirect to a file, MH/nmh will
try to auto-fetch a message-external/body part (e.g. anon FTP).

Am I correct in my reading of the code?

Or, is it the case that any message-external/body part will be
ignored if output is not to a terminal?

--ewh

___
Nmh-workers mailing list
Nmh-workers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/nmh-workers


Re: [Nmh-workers] message-external/body and auto-fetching(?)

2013-02-08 Thread Ken Hornstein
Checking the nmh source code (and the old MH source code), it seems
to me that if I show a message, but redirect to a file, MH/nmh will
try to auto-fetch a message-external/body part (e.g. anon FTP).

Am I correct in my reading of the code?

Hm.  That code is a bit hairy; can you point to me why you think that?
After a quick look, I'm a bit confused :-/

--Ken

___
Nmh-workers mailing list
Nmh-workers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/nmh-workers


Re: [Nmh-workers] message-external/body and auto-fetching(?)

2013-02-08 Thread Earl Hood
On Fri, Feb 8, 2013 at 2:41 PM, Ken Hornstein wrote:
Checking the nmh source code (and the old MH source code), it seems
to me that if I show a message, but redirect to a file, MH/nmh will
try to auto-fetch a message-external/body part (e.g. anon FTP).

Am I correct in my reading of the code?

 Hm.  That code is a bit hairy; can you point to me why you think that?
 After a quick look, I'm a bit confused :-/

Agree about the mess.  And it appears I have things a bit confused.
It seems that if stdin is not a terminal, auto-fetching will be done,
so things may not be that bad.

Some details:

Looking at the 1.5 nmh code base, the file uip/mhparse.c has the
following in the openFTP() function:

2573 /*
2574  * Now, check the answer
2575  */
2576 if (!getanswer (buffer))
2577 return NOTOK;

Checking the getanswer() function (sbr/getanswer.c):

 14 int
 15 getanswer (char *prompt)
 16 {
 17 static int interactive = -1;
 18
 19 if (interactive  0)
 20 interactive = isatty (fileno (stdin)) ? 1 : 0;
 21
 22 return (interactive ? gans (prompt, anoyes) : 1);
 23 }


It appears if stdin is not a terminal, getanswer() will always return 1.

Not sure what happens if authentication is required, have not traced the
code that far, but for anon-ftp external-body, it seems the data will be
auto-fetched.  I am guessing if authentication is required, the user's
.netrc will be consulted.

I figure something like the following on the command-line will cause
auto-fetching:

  show  /dev/null  message.txt

I guess if a user does such a thing, they are willing to live with the
implications of auto-fetching.  I am curious if anyone has ever done
this in practice, but it appears the nmh code base (and MH) allow for
it.

I wondering if back-in-the-day, something like the above could be
done for priming a shared cache on a shared system.

--ewh

___
Nmh-workers mailing list
Nmh-workers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/nmh-workers