-----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-----