Tue, 29 Jun 2004 10:18:36 -0400
|
-----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-----
|
|
|