On Thu, 12 Apr 90 12:29:45 LCL Darryl E. Marsee said:
>
>So, is there a way to get LISTSERV to not tack on the .BITNET, and then
>send it on to our MAILER for processing? From poking around LISTSERV a
>bit, it looks like it just tacks .BITNET onto every non-domained nodeid
>it tries to send mail to, which for us is fine if the nodeid really is
>on BITNET, but a real pain if it's not.
>
The problem is getting listserv to recognize what a local host (from the
local domain) is. This is annoying... there are two methods to resolve
this problem -- I recommend the FIRST.
(1) Insure that ALL mail hitting listserv is in domained form. This means
converting your campus to using domained mail. We did this at Princeton.
It works well.
(2) Until we got around to doing 1 above, I modified LSVNADDR to look up
in a LOCAL NODES file, which was an extract of all local nodes in
all possible local domain forms. If there was a match, then the right
stuff happened and listserv did not tack on the .BITNET. My version
of LSVNADDR follows. Keep in mind, I recommend (strongly) implementing
option 1 to solve this problem as it solves other network related
problems as well.
/***********************************************************************
* *
* LSVNADDR -- LISTSERV system, upcase/transform network addresses *
* *
* (c) Eric Thomas 1987,1988 <[log in to unmask]> *
* *
* This file was last updated on Thursday, May the 5th of 1988 *
* *
* Syntax: LSVNADDR(userid@node,defid@defnode<,'B'>) *
* LSVNADDR(userid node <name>,defid@defnode<,'B'>) *
* *
***********************************************************************/
/* Do not change the prologue */
Parse arg userid node name,defid'@'defnode,B?
atform = (node == '')
If atform Then Parse arg userid'@'node .
Else name = Strip(name)
If node == '' Then node = defnode
If userid == '' | userid == '*' Then userid = defid
/* You may wish to change this section of code */
upcase = (Pos('.',node) == 0 & Length(node) ^> 8 &,
Pos('%',userid) == 0 & Length(userid) ^> 8)
/* The following is to check for host names that may be part of the
local domain. */
If B? == 'B' &,
upcase &,
Find('PUCC PUNFS PUMIS PU1879 PPLCATS',Translate(node)) = 0,
Then Do
'LSVFILER LOCAL NODES * (STEM L. SKIP NONUM FIND 'Translate(node)
If rc = 0 Then upcase = 0 /* if local then force upcase to 0 */
End
/* You should not change the epilogue */
If B? == 'B' Then Exit upcase
If upcase Then Upper userid node
Else Upper node /* anyway to avoid case clashes */
If atform Then Exit userid'@'node
Exit Strip(userid node Translate(name,,XRange('00'x,'3F'x)))
And this is what LOCAL NODES looks like....
ACM PUCC SMTP BSMTP 3
ACM.PRINCETON.EDU PUCC SMTP BSMTP 3
ACM-CON PUCC SMTP BSMTP 3 @PUGATE
ACM-CON.PRINCETON.EDU PUCC SMTP BSMTP 3 @PUGATE
ACM-SUBNET128 PUCC SMTP BSMTP 3 @PUGATE
ACM-SUBNET128.PRINCETON.EDU PUCC SMTP BSMTP 3 @PUGATE
ACM-SUBNET208 PUCC SMTP BSMTP 3 @PUGATE
ACM-SUBNET208.PRINCETON.EDU PUCC SMTP BSMTP 3 @PUGATE
ACM-VAX PUCC SMTP BSMTP 3
ACM-VAX.PRINCETON.EDU PUCC SMTP BSMTP 3
|