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
"Jelinek, David G." <[log in to unmask]>
Tue, 29 Jun 2004 10:18:36 -0400
text/plain (107 lines)
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Monday, June 28, 2004 at 21:58 Anne Toal said:
> I would like to know if anyone out there has written a list exit
> for Listserv running under Win2000 Server that will intercept 
> signoff requests from list members. Would you consider posting the
> code here, or alternatively, sending it to me?

David Jelinek 

This list exit does not allow anyone to sign off the list themselves.
We use it for lists that have a database back end that is populated
automatically. It consists of two files the NSIGNOFF.CMD file (which
is what LISTSERV calls) and a perl script (NSIGNOFF.PL) that is
called by the cmd file.

- ------------------------- NSIGNOFF.CMD
- -----------------------------------
nsignoff.pl
- -----------------------end of NSIGNOFF.CMD
- -------------------------------


- ------------------------- nsignoff.pl
- -----------------------------------
#! perl
# This program contains the exit logic for the nsignoff exit for
listserv.
#
# This exit will not allow someone to get themselves off the list.
# It will also prevent them from changing their options (need mostly
because of
# nomail).
#
# It will allow change by list owner, or site maintainer however.
#
# I think this was my first perl program - so don't laugh too hard.
#    David Jelinek
#    Central Michigan University

open(EINPUT,"exit.input") or die "Can't open exit.input: $!\n";
open(EOUT,">exit.output") or die "Can't create exit.ouput: $!\n";
$parms = <EINPUT>;
chomp($parms);
($epname, $lstname, $rest) = $parms =~ m/(\w+)\s+(\w+)\s(.*)/;

DPROCESS: {
  if ($epname eq 'DEL_FILTER') {
    ($target, $originator) = $rest =~ m/(.+)\x0f(.+)/;
    print EOUT "EXIT 1\n";
    print EOUT "TELL3\n";
    print EOUT "$target\n";
    print EOUT "Sorry you are not allowed to remove yourself from
$lstname\n";
    print EOUT "ECHO\n";
    last DPROCESS; 
  };
  if ($epname eq 'SET_REQ') {
    ($originator, $optionlst, $target) = $rest =~
m/(.+)\x0f(.+)\x0f(.+)/;
    print EOUT "EXIT 1\n";
    print EOUT "TELL3\n";
    print EOUT "$target\n";
    print EOUT "Sorry you are not allowed to change options on
$lstname\n";
    print EOUT "ECHO\n";

    last DPROCESS;
  };
  if ($epname eq 'CHG_REQ') {
    ($originator, $target, $newaddr) = $rest =~
m/(.+)\x0f(.+)\x0f(.+)/;
    print EOUT "EXIT 1\n";
    print EOUT "TELL3\n";
    print EOUT "$target\n";
    print EOUT "Sorry you are not allowed to change your address on
$lstname\n";
    print EOUT "ECHO\n";
    last DPROCESS
  };
  print EOUT "EXIT 0\n";
};

- ----------------------- end of nsignoff.pl
- ---------------------------------



- -----BEGIN PERL GEEK CODE BLOCK-----
Version: 0.01
P++$c--P6-R+M+O+MA!E PU BD C D+S X WP
MO PP!n-CO?PO--o G
A-OLC+$OLCC+$OLJ+OLCO--OLS--OLL+OLA+Ee-
- --Ev Eon Eot uL uo++w $m 
- ------END PERL GEEK CODE BLOCK------ 

-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.2

iQA/AwUBQOF6PB4EA8o3PdHGEQIbhQCgrGcgLilMs68zVEIj6cXJr9SE8gUAn101
z3w4D0GInOPTwSBTLiUFEcCe
=hq5k
-----END PGP SIGNATURE-----
 

ATOM RSS1 RSS2