LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Eric Thomas <[log in to unmask]>
Mon, 18 Jan 1993 02:46:28 +0100
text/plain (105 lines)
The introduction of  the "Safe= Yes" keyword in 1.7f  and the requirement
from some user groups to allow people with traditionally reserved userids
(such as 'root'  or 'postmaster') to contribute to mailing  lists made it
necessary to give the list owner better control over the list of filtered
addresses. This  will also  give list  owners opting  for "Safe=  No" (or
faced with  badly broken  gateways) the ability  to immediately  react to
mailing loops,  rather than waiting for  the postmaster to issue  a SERVE
OFF command  (note that the SERVE  OFF command is still  honoured for all
lists and remains outside the control of the list owners).
 
This is  implemented by a  new list  header keyword, "Filter=",  which is
checked when a user attempts to post  to a list and also by the SUBSCRIBE
command (but not by  the ADD command). The first word  of this keyword is
either "Only", "Also" or "Safe", and it is followed by a list of patterns
such as 'X400MAIL@*' or '*@*.XYZ.EDU'  (without the quotes). If "Also" is
specified,  your filter  is used  in  addition to  the standard  LISTSERV
filter; this is useful to register additional looping mailers, to prevent
users with a  broken mail systems from subscribing until  they fix it, or
to ban anonymous posters. LISTSERV  has two built-in filters, a "minimal"
one which is normally used for all lists and a "safe" one (similar to the
one used  by 1.7e) which  is used for lists  running with "Safe=  No". If
your list has  "Safe= Yes" (which is the default  when running with LMail
or XMAILER R2.10), you can tell  LISTSERV to use the "safe" filter anyway
by coding  "Filter= Safe,..." (you can  add extra addresses if  you want,
but you don't have to). There is no option to use the minimal filter with
unsafe lists, as this would quickly lead to mailing loops.
 
If "Filter=  Only" is used, the  addresses you specify are  the only ones
which LISTSERV  prevents from posting  to the  list; you should  not used
this option unless  you also code "Safe=  Yes", and you will  want to ask
your LISTSERV  maintainer for permission.  In fact, this option  has been
added  mostly for  LISTSERV maintainers  with very  specific problems  to
solve. The  minimal filter  is very  small and you  should never  need to
override it.
 
Messages sent  to the  LISTSERV userid for  execution are  always checked
with the  minimal filter,  as people  with userids  such as  'root' would
otherwise not be allowed to subscribe to lists which were set up to allow
them.  This may  cause  some  extra traffic  while  LISTSERV and  various
gateways engage in  ping-pong wars, but after 10  iterations the gateways
will be served off and this will stop.
 
Note that LISTSERV  extracts as many e-mail addresses as  it can from the
userid being checked  and runs them all through the  filter. For instance
if your list receives mail from [log in to unmask], LISTSERV
will  check [log in to unmask],  [log in to unmask] and
'mailer@searn'  (via the  'internet.' tag).  Generally speaking,  userids
intercepted by the 1.7e filter will not pass the safe 1.7f filter.
 
Release  1.7f will  introduce  a  limited syntax  check  for list  header
keywords.  For  now keywords  are  only  checked individually  (that  is,
"Default-Topics= XYZ" will be accepted  even though you have "Topics=A,B"
and it is thus  not a valid topic). There are  43 keywords and describing
all the invalid  combinations is very difficult -  especially when taking
conditional default  values into account,  such as "Safe="  whose default
value depends  on the type of  mailer you use. Furthermore  some keywords
are pretty difficult  to check. For instance, "Prime="  cannot be checked
without duplicating the code which implements it and generating all sorts
of error messages  instead of skipping incorrect  entries; "Peers=" would
requires a lookup in the network  tables, which doesn't really bring much
assurance as the typical error is  not an incorrect nodeid but a mismatch
among the various peers. The goal is to catch the most common errors, not
to develop  an expert system :-)  For now, 24 keywords  are fully checked
(that is  counting a few  keywords which can  genuinely have any  value -
password, list title, etc) and 3 are partially checked. There should be a
half-dozen of other keywords by the  time 1.7f goes out, depending on how
much time I have. Here is a sample error report:
 
-------------------------------------------------------------------------
Date:         Mon, 18 Jan 1993 02:45:39 +0100
From:         Revised List Processor (1.7e) <[log in to unmask]>
Subject:      Command: PUT L201 LIST
To:           Eric Thomas <[log in to unmask]>
 
The following problems have been detected in the list header:
 
> Default-Options= XYZ,...
Error: Invalid delivery option - "XYZ".
 
> NATEBOOK= NO
Warning: There is no keyword by that name - check the spelling.
 
> Filter= YES,...
Error: Invalid parameter value. Choose one from the following (without the
       quotes): "Also", "Only" or "Safe".
 
> Auto-Delete= ...,X
Warning: Extraneous parameter - only one is allowed for this keyword.
 
> Digest= ...,X1/401,...
Error: Invalid directory specification - incorrect syntax or directory does not
       exist.
 
> Sizelim= XYZ
Error: Value must be numeric.
 
> Validate= ZLL
Error: Invalid parameter value. Choose one from the following (without the
       quotes): "All commands" or "Store only".
 
PUT operation rejected, old list remains unchanged.
-------------------------------------------------------------------------
 
  Eric

ATOM RSS1 RSS2