mailinglistes
This commit is contained in:
parent
c79419aa77
commit
df360df1ad
|
@ -0,0 +1,26 @@
|
||||||
|
This archive server knows the following commands:
|
||||||
|
|
||||||
|
get filename ...
|
||||||
|
ls directory ...
|
||||||
|
egrep case_insensitive_regular_expression filename ...
|
||||||
|
maxfiles nnn
|
||||||
|
version
|
||||||
|
quit
|
||||||
|
|
||||||
|
Aliases for 'get': send, sendme, getme, gimme, retrieve, mail
|
||||||
|
Aliases for 'ls': dir, directory, list, show
|
||||||
|
Aliases for 'egrep': search, grep, fgrep, find
|
||||||
|
Aliases for 'quit': exit
|
||||||
|
|
||||||
|
Lines starting with a '#' are ignored.
|
||||||
|
Multiple commands per mail are allowed.
|
||||||
|
Setting maxfiles to zero will remove the limit (to protect you against
|
||||||
|
yourself no more than maxfiles files will be returned per request).
|
||||||
|
Egrep supports most common flags.
|
||||||
|
If you append a non-standard signature, you should use the quit command
|
||||||
|
to prevent the archive server from interpreting the signature.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
ls latest
|
||||||
|
get latest/12
|
||||||
|
egrep some.word latest/*
|
|
@ -0,0 +1,57 @@
|
||||||
|
General info
|
||||||
|
------------
|
||||||
|
Subcription/unsubscription/info requests should always be sent to the -request
|
||||||
|
address of a mailinglist.
|
||||||
|
If a mailinglist for example is called "thelist@some.domain", then the -request
|
||||||
|
address can be inferred from this to be: "thelist-request@some.domain".
|
||||||
|
|
||||||
|
To subscribe to a mailinglist, simply send a message with the word "subscribe"
|
||||||
|
in the Subject: field to the -request address of that list.
|
||||||
|
|
||||||
|
As in: To: thelist-request@some.domain
|
||||||
|
Subject: subscribe
|
||||||
|
|
||||||
|
To unsubscribe from a mailinglist, simply send a message with the word (you
|
||||||
|
guessed it :-) "unsubscribe" in the Subject: field to the -request address of
|
||||||
|
that list.
|
||||||
|
|
||||||
|
As in: To: thelist-request@some.domain
|
||||||
|
Subject: unsubscribe
|
||||||
|
|
||||||
|
In the event of an address change, it would probably be the wisest to first
|
||||||
|
send an unsubscribe for the old address (this can be done from the new
|
||||||
|
address), and then a new subscribe for the new address (the order is
|
||||||
|
important).
|
||||||
|
|
||||||
|
Most (un)subscription requests are processed automatically without human
|
||||||
|
intervention.
|
||||||
|
|
||||||
|
Do not send multiple (un)subscription or info requests in one mail. Only one
|
||||||
|
will be processed per mail.
|
||||||
|
|
||||||
|
NOTE: The -request server usually does quite a good job in discriminating
|
||||||
|
between (un)subscribe requests and messages intended for the maintainer.
|
||||||
|
If you'd like to make sure a human reads your message, make it look
|
||||||
|
like a reply (i.e. the first word in the Subject: field should be "Re:",
|
||||||
|
without the quotes of course); the -request server does not react to
|
||||||
|
replies.
|
||||||
|
|
||||||
|
|
||||||
|
The archive server
|
||||||
|
------------------
|
||||||
|
Every submission sent to this list is archived. The size of the archive
|
||||||
|
depends on the limits set by the list maintainer (it is very well possible
|
||||||
|
that only, say, the last two mails sent to the list are still archived, the
|
||||||
|
rest might have expired).
|
||||||
|
|
||||||
|
You can look at the header of every mail coming from this list to see
|
||||||
|
under what name it has been archived. The X-Mailing-List: field contains
|
||||||
|
the mailaddress of the list and the file in which this submission was
|
||||||
|
archived.
|
||||||
|
|
||||||
|
If you want to access this archive, you have to send mails to the -request
|
||||||
|
address with the word "archive" as the first word of your Subject:.
|
||||||
|
To get you started try sending a mail to the -request address with
|
||||||
|
the following:
|
||||||
|
Subject: archive help
|
||||||
|
--
|
|
@ -0,0 +1,119 @@
|
||||||
|
#
|
||||||
|
# Assign the fully qualified mail address of the maintainer of this list
|
||||||
|
# to "maintainer". If empty, request-mail will not be mailed to any
|
||||||
|
# maintainer and will be stored in the "request" file for this list.
|
||||||
|
#
|
||||||
|
|
||||||
|
maintainer = Olivier.Sirol@lip6.fr
|
||||||
|
|
||||||
|
#LOGABSTRACT=yes # uncomment in case of emergency
|
||||||
|
#VERBOSE=yes # uncomment in case of real emergency
|
||||||
|
|
||||||
|
size_limit = 1524288 # sanity cutoff value for submissions
|
||||||
|
|
||||||
|
idcache_size = 8192 # duplicate-msgid cache size in bytes
|
||||||
|
|
||||||
|
archive_hist = 20 # number of messages left archived
|
||||||
|
#archive_log = $LOGFILE # log file for archive retrievals
|
||||||
|
#subscribe_log = $LOGFILE # log file for administrivia
|
||||||
|
|
||||||
|
maxhist = 32 # bounce history limit
|
||||||
|
minbounce = 4 # no. of bounces before removal
|
||||||
|
cutoff_bounce = 256 # lines to keep in bounce processing
|
||||||
|
|
||||||
|
#match_threshold= 30730 # for close matches to the list
|
||||||
|
#medium_threshold= 28672 # for not so close matches to the list
|
||||||
|
#loose_threshold= 24476 # for loosely finding your name
|
||||||
|
|
||||||
|
#auto_off_threshold= $medium_threshold # for auto-unsubscribing bouncers
|
||||||
|
#off_threshold = $loose_threshold # for unsubscribing
|
||||||
|
#reject_threshold= $match_threshold # for rejecting subscriptions
|
||||||
|
#submit_threshold= $medium_threshold # for permitting submissions
|
||||||
|
|
||||||
|
#unsub_assist
|
||||||
|
##unsub_assist = 8 # uncomment (and change perhaps) this
|
||||||
|
# line to enable unsubscription
|
||||||
|
# assistance; it specifies the no. of
|
||||||
|
# multigram matches an unsuccessful
|
||||||
|
# unsubscriber will receive back
|
||||||
|
#foreign_submit = yes
|
||||||
|
##foreign_submit # uncomment this line if you
|
||||||
|
# want to restrict submitting to
|
||||||
|
# people on the accept list
|
||||||
|
#restrict_archive
|
||||||
|
##restrict_archive= yes # uncomment this line if you
|
||||||
|
# want to restrict archive retrievals
|
||||||
|
# to people on the accept list
|
||||||
|
#force_subscribe
|
||||||
|
##force_subscribe= yes # uncomment to cause people to
|
||||||
|
# be autosubscribed upon first
|
||||||
|
# submission to the list
|
||||||
|
#auto_unsubscribe= yes
|
||||||
|
##auto_unsubscribe # uncomment to disable unattended
|
||||||
|
# unsubscription handling
|
||||||
|
#auto_subscribe = yes
|
||||||
|
##auto_subscribe # uncomment to disable unattended
|
||||||
|
# subscription handling
|
||||||
|
#auto_help
|
||||||
|
##auto_help = yes # uncomment to enable default help
|
||||||
|
# responses to all undecipherable
|
||||||
|
# requests
|
||||||
|
#moderated_flag
|
||||||
|
##moderated_flag= yes # uncomment this to make the list
|
||||||
|
# moderated (you must create a
|
||||||
|
# `moderators' file for this to work)
|
||||||
|
# set moderator_PASSWORD to get
|
||||||
|
# stricter checking
|
||||||
|
#cc_requests
|
||||||
|
##cc_requests = yes # uncomment if you want subscribe
|
||||||
|
# and help requests to be Cc'd to
|
||||||
|
# the maintainer
|
||||||
|
#cc_unsubrequests
|
||||||
|
##cc_unsubrequests= yes # uncomment if you want unsubscribe
|
||||||
|
# requests to be Cc'd to the maintainer
|
||||||
|
#divertcheck = yes
|
||||||
|
##divertcheck # uncomment to disable the check for
|
||||||
|
# misfiled administrative requests
|
||||||
|
#pass_diverts
|
||||||
|
##pass_diverts = yes # uncomment to pass on administrative
|
||||||
|
# requests diverted from the normal
|
||||||
|
# list to the maintainer unprocessed
|
||||||
|
# (instead of trying to handle them)
|
||||||
|
#reply_to
|
||||||
|
##reply_to = "Resent-Reply-To: $listaddr" # uncomment (and perhaps change
|
||||||
|
# it to "Reply-To") to force replies
|
||||||
|
# to go to the list (discouraged)
|
||||||
|
# why discouraged? see:
|
||||||
|
# http://garcon.unicom.com/FAQ/reply-to-harmful.html
|
||||||
|
#digest_flag
|
||||||
|
##digest_flag = yes # uncomment this if you want digests
|
||||||
|
#digest_age = 262144 # maximum age of a digest in seconds
|
||||||
|
#digest_size = 32768 # maximum size of a digest in bytes
|
||||||
|
#undigested_list = $list@$domain # Reply-To: address for digests
|
||||||
|
|
||||||
|
#moderator_PASSWORD = # put the optional password for
|
||||||
|
# moderators here, this definition
|
||||||
|
# can contain regular expression magic
|
||||||
|
# characters (to support multiple
|
||||||
|
# passwords)
|
||||||
|
|
||||||
|
#X_COMMAND = X-Command
|
||||||
|
#X_COMMAND_PASSWORD = alcpass # put the literal password for
|
||||||
|
# X-Command mails here
|
||||||
|
|
||||||
|
#daemon_bias='100^0 ^From:.*daemon@ok' # You could set "daemon_bias" to
|
||||||
|
# positively discriminate some
|
||||||
|
# mail address not to be from a daemon. Either with a regexp as demonstrated
|
||||||
|
# or with more complicated recipes that simply set it to '100^0' or nothing.
|
||||||
|
|
||||||
|
#RC_LOCAL_SUBMIT_00 = rc.local.s00 # Uncomment (and change) these to
|
||||||
|
#RC_LOCAL_SUBMIT_10 = rc.local.s10 # call up customised local scripts
|
||||||
|
#RC_LOCAL_SUBMIT_20 = rc.local.s20 # at predefined points.
|
||||||
|
#RC_LOCAL_REQUEST_00 = rc.local.r00
|
||||||
|
#RC_LOCAL_REQUEST_10 = rc.local.r10
|
||||||
|
#RC_LOCAL_REQUEST_20 = rc.local.r20
|
||||||
|
#RC_LOCAL_REQUEST_30 = rc.local.r30
|
||||||
|
|
||||||
|
RC_CUSTOM # clear this one from the environment
|
||||||
|
# so that we include this file only
|
||||||
|
# once
|
|
@ -0,0 +1,255 @@
|
||||||
|
#
|
||||||
|
# IMPORTANT variables to check/change: PATH domain listmaster
|
||||||
|
#
|
||||||
|
|
||||||
|
# BEFORE editing this file or any rc.* file in the .etc directory
|
||||||
|
# you should create the .etc/rc.lock file. As long as this file
|
||||||
|
# exists, mail delivery to any list will stall (flist checks this file).
|
||||||
|
#
|
||||||
|
# Delivery can be temporarily stalled on a per list basis by creating
|
||||||
|
# the file rc.lock in the respective list's subdirectory.
|
||||||
|
|
||||||
|
# ENVIRONMENT:
|
||||||
|
# list contains the submitting address of the list (sans domain)
|
||||||
|
# domain should contain the domain for the list, so that $list@$domain
|
||||||
|
# can be used to submit to the list
|
||||||
|
# maintainer should contain the fully qualified address of the maintainer
|
||||||
|
# of $list; maintainter can be left empty
|
||||||
|
# listmaster should contain the fully qualified address of the supervising
|
||||||
|
# list maintainer; listmaster can be left empty
|
||||||
|
# X_ENVELOPE_TO contains the address that the incoming mail was addressed to
|
||||||
|
|
||||||
|
# FILES:
|
||||||
|
# log optional logfile (uncomment the LOGFILE assignment to enable
|
||||||
|
# it)
|
||||||
|
# dist the subscriber list, one address per line
|
||||||
|
# accept the list of people allowed to submit messages (usually a
|
||||||
|
# link to dist, only checked if $foreign_submit != yes)
|
||||||
|
# accept2 an optional second accept file
|
||||||
|
# reject list of people you definitely do not want to subscribe
|
||||||
|
# subscreen program (e.g. shell script) to screen prospective subscribers
|
||||||
|
# (see in the examples directory for a sample script)
|
||||||
|
# request all the messages to request that could not be handled
|
||||||
|
# automatically (only if maintainer is empty)
|
||||||
|
# help.txt file sent to help & info requests
|
||||||
|
# info.txt optional file sent to help & info requests as well,
|
||||||
|
# it should contain a concise description of what the
|
||||||
|
# list is all about
|
||||||
|
# the various info.txt files are optionally gathered in
|
||||||
|
# order to advertise the availability of the mailinglists
|
||||||
|
# subscribe.txt file sent to new subscribers
|
||||||
|
# subscribe.files file containing an arbitrary number of archive server
|
||||||
|
# commands to be executed on behalf of new subscribers
|
||||||
|
# unsubscribe.txt file sent to unsubscribers
|
||||||
|
# accept.txt file sent to people not on the accept list
|
||||||
|
# archive.txt file sent to people requesting help from the archive server
|
||||||
|
# archive (link to a) directory below which files can be accessed through
|
||||||
|
# the archive server
|
||||||
|
# bounces directory containing the bounce history files
|
||||||
|
# rc.submit rcfile used when distributing submissions
|
||||||
|
# rc.request rcfile used when processing requests
|
||||||
|
# rc.custom rcfile that contains all the customisations per list
|
||||||
|
# rc.local.* optional rcfiles for any local extensions (to be used in
|
||||||
|
# conjunction with the RC_LOCAL_* variables which can be set
|
||||||
|
# in rc.init or rc.custom files)
|
||||||
|
|
||||||
|
#$Id: rc.init,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
DELIVERED=yes # we're in control of the mail now, tell sendmail to go away
|
||||||
|
|
||||||
|
PATH=.:$PATH:../.bin:/bin:/usr/bin:/usr/local/bin # setup a decent path
|
||||||
|
SHELL=/bin/sh # to prevent surprises
|
||||||
|
|
||||||
|
defaults=.etc
|
||||||
|
|
||||||
|
LOCKTIMEOUT=3660 # set these values this high (1 hour)
|
||||||
|
TIMEOUT=3600 # to give sendmail the time to
|
||||||
|
# resolve big aliases
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# You have to setup the following two assignments, make sure that the address
|
||||||
|
# mentioned in listmaster is *not* the address this script runs under; if
|
||||||
|
# you would end up doing that, then assign listmaster to ""
|
||||||
|
# The same applies to the maintainer addresses used for every list, if you
|
||||||
|
# would like to alias them back to this script or to the respective -request
|
||||||
|
# addresses, then assign maintainer to "" instead.
|
||||||
|
#
|
||||||
|
# The mail-domain you have to insert below, must be the fully qualified
|
||||||
|
# mail-domain for this list; e.g. if the preferred mail address for this
|
||||||
|
# account would be: list@somemachine.somewhere.universe
|
||||||
|
# Then you should assign the following:
|
||||||
|
# domain=somemachine.somewhere.universe
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
domain=asim.lip6.fr # the common domain for all the lists
|
||||||
|
listmaster=Olivier.Sirol@lip6.fr
|
||||||
|
|
||||||
|
#UMASK=077 # group can not touch the files
|
||||||
|
#UMASK=027 # group can read
|
||||||
|
UMASK=007 # group can write as well
|
||||||
|
|
||||||
|
defaults=.etc # the name of the defaults directory
|
||||||
|
LOGFILE=log
|
||||||
|
LOGABSTRACT=no
|
||||||
|
|
||||||
|
#LOGABSTRACT=yes # uncomment in case of emergency
|
||||||
|
#VERBOSE=yes # uncomment in case of real emergency
|
||||||
|
#LOGFILE=../$defaults/log # uncomment if you want centralised
|
||||||
|
# logging
|
||||||
|
|
||||||
|
RC_INIT # clear this one from the environment
|
||||||
|
# so that we include this file only
|
||||||
|
# once
|
||||||
|
|
||||||
|
listaddr=$list@$domain
|
||||||
|
listreq=$list-request@$domain
|
||||||
|
listdist=$list-dist@$domain
|
||||||
|
|
||||||
|
# the following constants determine the
|
||||||
|
# behaviour of choplist, the dist-file
|
||||||
|
# expander (zero means: no limit) which
|
||||||
|
# calls sendmail
|
||||||
|
minnames = 32 # minimum number of names per call
|
||||||
|
mindiffnames = 8 # minimum for maxnames-minnames
|
||||||
|
maxnames = 64 # maximum number of names per call
|
||||||
|
maxsplits = 0 # maximum number of parts to split dist in
|
||||||
|
maxsize = 200000 # maximal disk space to be taken up per mail
|
||||||
|
maxconcur = 4 # maximum number of concurrent sendmail calls
|
||||||
|
|
||||||
|
alt_sendmail="\
|
||||||
|
choplist $minnames $mindiffnames $maxnames $maxsplits $maxsize $maxconcur dist"
|
||||||
|
minnames mindiffnames maxnames maxsplits maxsize maxconcur
|
||||||
|
#alt_sendmail # uncomment if you'd prefer sendmail
|
||||||
|
# to handle the $listdist expansion
|
||||||
|
|
||||||
|
sendmailOPT="-oem -odb -oi -om -f$listreq"
|
||||||
|
sendmailOPTp=-oep
|
||||||
|
sendmailOPTq=-odq
|
||||||
|
sendmailOPTi=-odi
|
||||||
|
sendmailQflush="$SENDMAIL -q"
|
||||||
|
#sendmailQflush # uncomment if you don't want the
|
||||||
|
# queue to be flushed after all archive
|
||||||
|
# retrieval files have been queued
|
||||||
|
########################
|
||||||
|
# sendmail options used:
|
||||||
|
#
|
||||||
|
# -t scan the header of the mail for recipients
|
||||||
|
# -f specify the sender envelope address (requires T entry in sendmail.cf)
|
||||||
|
# -oi do not regard a single dot on an otherwise empty line as EOF
|
||||||
|
# -om include myself in any alias expansions
|
||||||
|
# -odb background deliverymode command returns immediately
|
||||||
|
# -odq queued deliverymode (put messages in the queue only)
|
||||||
|
# -odi interactive deliverymode command, wait until most delivered
|
||||||
|
# -q flush the queue
|
||||||
|
# -oem mail back error messages
|
||||||
|
# -oep print error messages
|
||||||
|
# -onF do not check aliases while expanding them (use it, if available)
|
||||||
|
########################
|
||||||
|
#
|
||||||
|
# If you only have /bin/mail and not some sendmail compatible mailer that
|
||||||
|
# understands the -t option of sendmail, then you have to uncomment the
|
||||||
|
# following two lines:
|
||||||
|
#
|
||||||
|
#sendmailOPT sendmailOPTp sendmailOPTq sendmailOPTi sendmailQflush
|
||||||
|
#SENDMAIL=../.bin/sendmails
|
||||||
|
#
|
||||||
|
########################
|
||||||
|
|
||||||
|
size_limit = 524288 # sanity cutoff value for submissions
|
||||||
|
|
||||||
|
idcache_size = 8192 # duplicate-msgid cache size in bytes
|
||||||
|
|
||||||
|
archive_hist = 2 # number of messages left archived
|
||||||
|
archive_log = $LOGFILE # log file for archive retrievals
|
||||||
|
subscribe_log = $LOGFILE # log file for administrivia
|
||||||
|
|
||||||
|
maxhist = 32 # bounce history limit
|
||||||
|
minbounce = 4 # no. of bounces before removal
|
||||||
|
cutoff_bounce = 256 # lines to keep in bounce processing
|
||||||
|
|
||||||
|
match_threshold = 30730 # for close matches to the list
|
||||||
|
medium_threshold= 28672 # for not so close matches to the list
|
||||||
|
loose_threshold = 24476 # for loosely finding your name
|
||||||
|
|
||||||
|
auto_off_threshold= $medium_threshold # for auto-unsubscribing bouncers
|
||||||
|
off_threshold = $loose_threshold # for unsubscribing
|
||||||
|
reject_threshold= $match_threshold # for rejecting subscriptions
|
||||||
|
submit_threshold= $medium_threshold # for permitting submissions
|
||||||
|
|
||||||
|
unsub_assist
|
||||||
|
#unsub_assist = 8 # uncomment (and change perhaps) this
|
||||||
|
# line to enable unsubscription
|
||||||
|
# assistance; it specifies the no. of
|
||||||
|
# multigram matches an unsuccessful
|
||||||
|
# unsubscriber will receive back
|
||||||
|
foreign_submit = yes
|
||||||
|
#foreign_submit # uncomment this line if you
|
||||||
|
# want to restrict submitting to
|
||||||
|
# people on the accept list
|
||||||
|
restrict_archive
|
||||||
|
#restrict_archive= yes # uncomment this line if you
|
||||||
|
# want to restrict archive retrievals
|
||||||
|
# to people on the accept list
|
||||||
|
force_subscribe
|
||||||
|
#force_subscribe= yes # uncomment to cause people to
|
||||||
|
# be autosubscribed upon first
|
||||||
|
# submission to the list
|
||||||
|
auto_unsubscribe= yes
|
||||||
|
#auto_unsubscribe # uncomment to disable unattended
|
||||||
|
# unsubscription handling
|
||||||
|
auto_subscribe = yes
|
||||||
|
#auto_subscribe # uncomment to disable unattended
|
||||||
|
# subscription handling
|
||||||
|
auto_help
|
||||||
|
#auto_help = yes # uncomment to enable default help
|
||||||
|
# responses to all undecipherable
|
||||||
|
# requests
|
||||||
|
moderated_flag
|
||||||
|
#moderated_flag = yes # uncomment this to make the list
|
||||||
|
# moderated (you must create a
|
||||||
|
# `moderators' file for this to work)
|
||||||
|
cc_requests
|
||||||
|
#cc_requests = yes # uncomment if you want subscribe
|
||||||
|
# and help requests to be Cc'd to
|
||||||
|
# the maintainer
|
||||||
|
cc_unsubrequests
|
||||||
|
#cc_unsubrequests= yes # uncomment if you want unsubscribe
|
||||||
|
# requests to be Cc'd to the maintainer
|
||||||
|
divertcheck = yes
|
||||||
|
#divertcheck # uncomment to disable the check for
|
||||||
|
# misfiled administrative requests
|
||||||
|
pass_diverts
|
||||||
|
#pass_diverts = yes # uncomment to pass on administrative
|
||||||
|
# requests diverted from the normal
|
||||||
|
# list to the maintainer unprocessed
|
||||||
|
# (instead of trying to handle them)
|
||||||
|
reply_to
|
||||||
|
#reply_to = "Resent-Reply-To: $listaddr" # uncomment (and perhaps change
|
||||||
|
# it to "Reply-To") to force replies
|
||||||
|
# to go to the list (discouraged)
|
||||||
|
digest_flag
|
||||||
|
#digest_flag = yes # uncomment this if you want digests
|
||||||
|
digest_age = 262144 # maximum age of a digest in seconds
|
||||||
|
digest_size = 32768 # maximum size of a digest in bytes
|
||||||
|
|
||||||
|
|
||||||
|
X_COMMAND = X-Command
|
||||||
|
X_COMMAND_PASSWORD = password # put the global password for
|
||||||
|
# X-Command mails here
|
||||||
|
# this password can of course be changed/
|
||||||
|
# customised in the per list rc.custom file
|
||||||
|
|
||||||
|
#daemon_bias='100^0 ^From:.*daemon@ok' # You could set "daemon_bias" to
|
||||||
|
# positively discriminate some
|
||||||
|
# mail address not to be from a daemon. Either with a regexp as demonstrated
|
||||||
|
# or with more complicated recipes that simply set it to '100^0' or nothing.
|
||||||
|
|
||||||
|
#RC_LOCAL_SUBMIT_00 = rc.local.s00 # Uncomment (and change) these to
|
||||||
|
#RC_LOCAL_SUBMIT_10 = rc.local.s10 # call up customised local scripts
|
||||||
|
#RC_LOCAL_SUBMIT_20 = rc.local.s20 # at predefined points.
|
||||||
|
#RC_LOCAL_REQUEST_00 = rc.local.r00
|
||||||
|
#RC_LOCAL_REQUEST_10 = rc.local.r10
|
||||||
|
#RC_LOCAL_REQUEST_20 = rc.local.r20
|
||||||
|
#RC_LOCAL_REQUEST_30 = rc.local.r30
|
||||||
|
|
||||||
|
RC_CUSTOM=rc.custom
|
|
@ -0,0 +1,348 @@
|
||||||
|
# BEFORE editing this file, you should make sure that it is not linked to
|
||||||
|
# the master version (../.etc/rc.request) anymore (i.e. "delink rc.request"
|
||||||
|
# if you do not want your changes to affect all lists).
|
||||||
|
#
|
||||||
|
# New mails can be temporarily stalled by creating the file rc.lock (either in
|
||||||
|
# ../.etc for all lists or in the current directory for this list only).
|
||||||
|
|
||||||
|
#$Id: rc.request,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
INCLUDERC=$RC_INIT
|
||||||
|
INCLUDERC=$RC_CUSTOM
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_00
|
||||||
|
|
||||||
|
LOCKFILE=tmp.lock # for reusing tmp.(request|from)
|
||||||
|
# also makes sure that the load doesn't go sky-high
|
||||||
|
# when a lot of mail arrives concurrently
|
||||||
|
|
||||||
|
:0 Bfw # concatenate header and body
|
||||||
|
* $^^$X_COMMAND:
|
||||||
|
| sed -e '1,/^$/{' -e '/^$/d' -e '}'
|
||||||
|
|
||||||
|
#
|
||||||
|
# We now check:
|
||||||
|
# If the length is roughly within bounds.
|
||||||
|
# That it is not a reply or something.
|
||||||
|
# That we didn't send it ourselves.
|
||||||
|
# That it wasn't sent by a daemon of some kind.
|
||||||
|
#
|
||||||
|
# If everything matches, we extract the sender address into tmp.from
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* B ?? < 4096
|
||||||
|
* $$daemon_bias
|
||||||
|
* $!^(X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:)
|
||||||
|
* -100^0 ^FROM_DAEMON
|
||||||
|
* 1^0
|
||||||
|
{
|
||||||
|
|
||||||
|
:0
|
||||||
|
* -100^0 ^Subject:(.*[^a-z])?(Re:|erro|change|problem|((can)?not|.*n't)\>)
|
||||||
|
* 100^0 B ?? ^^([ ]|$)*\
|
||||||
|
((archives?:?($|[ ]+)|\
|
||||||
|
((un)subscribe|(send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ].*)?$)([ ]|$)*)+\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^
|
||||||
|
* 100^0 ^Subject:[ ]*archive
|
||||||
|
* 1^0
|
||||||
|
{
|
||||||
|
:0 whc
|
||||||
|
| formail -rtzc -xTo: >tmp.from
|
||||||
|
|
||||||
|
#
|
||||||
|
# Store the whole mail in tmp.request, for later reference.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wc
|
||||||
|
| formail -IIn-Reply-To: -ICc: >tmp.request
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check for a missing Subject: line.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* !^Subject:
|
||||||
|
| formail -a "Subject: "
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_10
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Reader beware, the following four regular expressions are not for the faint #
|
||||||
|
# of heart. It'll suffice to say that they accomplish their intended job 98% #
|
||||||
|
# of the time. #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it an archive retrieval command?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 HB w
|
||||||
|
* 9876543210^0 ^^(.+$)*Subject:[ ]*(([(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)])?\
|
||||||
|
$(.+$)*(^[ ]*)+)?(archives?:?([ ]|$)|\
|
||||||
|
((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|list|show|\
|
||||||
|
search|[fe]?grep|find|maxfiles|version)([ ]+[^ ]*)?$)
|
||||||
|
* 1^0 B ?? ^^([ ]|$)*\
|
||||||
|
((archives?:?($|[ ]+)|\
|
||||||
|
((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ].*)?$)([ ]|$)*)+\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^
|
||||||
|
{
|
||||||
|
:0 W
|
||||||
|
* 9876543210^0 !restrict_archive ?? y
|
||||||
|
* 2^0 ? formail -rt -R To: "From " -X "From " | \
|
||||||
|
multigram -b1 -m -l$submit_threshold -L$domain \
|
||||||
|
-x$listaddr -x$listreq accept accept2
|
||||||
|
| arch_retrieve
|
||||||
|
|
||||||
|
:0 E fhw
|
||||||
|
| formail -A "X-Diagnostic: Not on the accept list"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it an unsubscription request?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EHB
|
||||||
|
* 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)])?(\
|
||||||
|
($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\
|
||||||
|
(Could you )?(please )?\
|
||||||
|
(sign( [^ ]+ |-)?off|cancel|leave|delete|remove|(un|de)-?sub)\>|\
|
||||||
|
($(.+$)*$(.*$)*)?(.*[^a-z])?\
|
||||||
|
((un-?|(un|de)-?sub?)s(cr|c|r)i|\
|
||||||
|
(leave|(delete|remove) .* from|(sign|take|get) .* off) .* [a-z-]*list\>))
|
||||||
|
* 1^0 B ?? ^^([ ]|$)*unsub(scribe)?([ ].*)?([ ]|$)*\
|
||||||
|
[^ a-z]?^^
|
||||||
|
{
|
||||||
|
:0 fw:dist.lock
|
||||||
|
* auto_unsubscribe ?? y
|
||||||
|
| unsubscribe
|
||||||
|
|
||||||
|
:0 Aw ${cc_unsubrequests:+c}
|
||||||
|
| $SENDMAIL $sendmailOPT `cat tmp.from` ;
|
||||||
|
|
||||||
|
:0 Afhw
|
||||||
|
| formail -A "X-Diagnostic: Processed"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it a subscription request?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EHB
|
||||||
|
* 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)])?(\
|
||||||
|
($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\
|
||||||
|
(Could you )?(please )?\
|
||||||
|
(sign( [^ ]+ |-)?on|add|join|sub)\>|\
|
||||||
|
($(.+$)*$(.*$)*)?(.*[^a-z])?\
|
||||||
|
(sub?s(cr|c|r)i.*|(join|add .* to|(sign|put) .* on) .* [a-z-]*list\>))
|
||||||
|
* 1^0 B ?? ^^([ ]|$)*sub(scribe)?([ ].*)?([ ]|$)*\
|
||||||
|
[^ a-z]?^^
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Yes, well, then check if the person subscribing isn't on the reject
|
||||||
|
# list.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 HB wfh
|
||||||
|
* ? multigram -b1 -l$reject_threshold reject
|
||||||
|
| formail -A "X-Diagnostic: Found on the reject list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -l$reject_threshold reject`"
|
||||||
|
|
||||||
|
#
|
||||||
|
# If not, then let's see if he might already be on the
|
||||||
|
# mailinglist.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 E HB wfh
|
||||||
|
* ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \
|
||||||
|
multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist
|
||||||
|
| formail -A "X-Diagnostic: Already on the subscriber list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \
|
||||||
|
-l$reject_threshold dist`"
|
||||||
|
|
||||||
|
#
|
||||||
|
# If not, add him(/her/it?).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 E
|
||||||
|
* auto_subscribe ?? y
|
||||||
|
{
|
||||||
|
:0 W ${cc_requests:+c}:dist.lock
|
||||||
|
| subscribe
|
||||||
|
|
||||||
|
:0 awfh
|
||||||
|
| formail -A "X-Diagnostic: Added to the subscriber list"
|
||||||
|
|
||||||
|
:0 Ewfh
|
||||||
|
| formail -A "X-Diagnostic: Tried to subscribe"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it an info or help request? Send back the help.txt and the
|
||||||
|
# optional info.txt file.
|
||||||
|
# We do the same on a complete empty mail (except for perhaps a signature).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EHB
|
||||||
|
* 3^0 ^^(.+$)*Subject:[ ]*\
|
||||||
|
(([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$\
|
||||||
|
(.+$)*(^[ ]*)+)?[a-z,. ]*(help|info(rmation)?)\>
|
||||||
|
* 1^0 ^^(.+$)*Subject:[ ]*\
|
||||||
|
([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$
|
||||||
|
* -2^0 ^^(.+$)*(^[ ]*)+[a-z]
|
||||||
|
* 3^0 ^^(.+$)*^([ ]*$)*--
|
||||||
|
{
|
||||||
|
:0 hw ${cc_requests:+c}
|
||||||
|
| (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \
|
||||||
|
cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: help sent"
|
||||||
|
}
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_20
|
||||||
|
|
||||||
|
LOGABSTRACT=yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# If auto_help is set, anything undecipherable gets back the help.txt and the
|
||||||
|
# optional info.txt file.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EB
|
||||||
|
* auto_help ?? y
|
||||||
|
* $!X-Loop: $\listaddr
|
||||||
|
{
|
||||||
|
:0 hw ${cc_requests:+c}
|
||||||
|
| (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \
|
||||||
|
cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: undecipherable, help sent"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGABSTRACT=yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# Could it be a bounce message from a daemon? Hand it down to procbounce
|
||||||
|
# which will evaluate it.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wic
|
||||||
|
* $!^(Subject:(.*[^a-z])?Re:|\
|
||||||
|
X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:)
|
||||||
|
* ^FROM_DAEMON
|
||||||
|
| sed -e $cutoff_bounce' q' >tmp.request
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sink all messages we can recognise to be queue warnings
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Ah
|
||||||
|
* ^Subject: \
|
||||||
|
(WARNING: message delayed|\
|
||||||
|
(Returned mail: )?warning: c(an|ould )not send m(essage fo|ail afte)r|\
|
||||||
|
Undeliverable (RFC822 )?mail: temporarily unable to deliver|\
|
||||||
|
\*\*\* WARNING - Undelivered mail in mailqueue)
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
:0 Ah
|
||||||
|
* ^Subject: (Warning from|mail warning| ?Waiting mail)
|
||||||
|
* ^(From|Sender):.*(uucp|mmdf)
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
:0 AhBD
|
||||||
|
* $^(..?)?X-Loop: $\listaddr \(bounce\)
|
||||||
|
* ^(..?)?Subject: You have been removed from
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
#
|
||||||
|
# Anything that still survived is most likely to be a bounce message.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Ahfw
|
||||||
|
| procbounce
|
||||||
|
|
||||||
|
#
|
||||||
|
# Or is it a remote X-Command from our maintainer?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wf:dist.lock
|
||||||
|
* $^$X_COMMAND:.*$\maintainer[ ]*$\X_COMMAND_PASSWORD
|
||||||
|
* $!^X-Loop: $\listaddr
|
||||||
|
| x_command
|
||||||
|
|
||||||
|
LOCKFILE # we don't need the lockfile anymore
|
||||||
|
|
||||||
|
#
|
||||||
|
# Anything not taken care of yet will be served to the maintainer of the list.
|
||||||
|
#
|
||||||
|
# To make it easier on him, we include a small hint about what might be the
|
||||||
|
# problem (by adding X-Diagnostic: fields to the header).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* !< $size_limit
|
||||||
|
| formail -A "X-Diagnostic: Submission size exceeds $size_limit bytes"
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* ^FROM_DAEMON
|
||||||
|
| formail -A "X-Diagnostic: Mail coming from a daemon, ignored"
|
||||||
|
|
||||||
|
:0 HB wfh
|
||||||
|
* $^X-Loop: $\listaddr
|
||||||
|
| formail -A "X-Diagnostic: Possible loopback problem"
|
||||||
|
|
||||||
|
:0
|
||||||
|
* !^X-(Diagnostic|Processed):
|
||||||
|
{
|
||||||
|
:0 wfh
|
||||||
|
* $^$X_COMMAND:
|
||||||
|
| formail -A "X-Diagnostic: Suspicious $X_COMMAND format"
|
||||||
|
|
||||||
|
:0 HB wfh
|
||||||
|
* ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \
|
||||||
|
multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist
|
||||||
|
| formail -A "X-Diagnostic: Already on the subscriber list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \
|
||||||
|
-l$reject_threshold dist`"
|
||||||
|
}
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_30
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* !^X-(Diagnostic|Processed):
|
||||||
|
| formail -A"X-Diagnostic: Unprocessed"
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A"X-Envelope-To: $X_ENVELOPE_TO"
|
||||||
|
|
||||||
|
#
|
||||||
|
# If this list does not have a maintainer e-mail address, drop things in
|
||||||
|
# the file request.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0:
|
||||||
|
* !maintainer ?? .
|
||||||
|
request
|
||||||
|
|
||||||
|
:0 w
|
||||||
|
| formail -R"From X-From_:" -iDate: -iReturn-Receipt-To: -iRead-Receipt-To: \
|
||||||
|
-iAcknowledge-To: | $SENDMAIL $sendmailOPT $sendmailOPTp $maintainer
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A"X-Diagnostic: Maintainer $maintainer could not be reached"
|
||||||
|
|
||||||
|
HOST=continue_with_../.etc/rc.post
|
|
@ -0,0 +1,303 @@
|
||||||
|
# BEFORE editing this file, you should make sure that it is not linked to
|
||||||
|
# the master version (../.etc/rc.submit) anymore (i.e. "delink rc.submit"
|
||||||
|
# if you do not want your changes to affect all archive servers).
|
||||||
|
#
|
||||||
|
# New mails can be temporarily stalled by creating the file rc.lock (either in
|
||||||
|
# ../.etc for all lists or in the current directory for this list only).
|
||||||
|
|
||||||
|
#$Id: rc.submit,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
INCLUDERC=$RC_INIT
|
||||||
|
INCLUDERC=$RC_CUSTOM
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_SUBMIT_00
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following recipe makes sure that:
|
||||||
|
# The mail has a sane size (i.e. it is not inordinately big)
|
||||||
|
# It does not look like an administrative request.
|
||||||
|
# It wasn't sent by this list itself.
|
||||||
|
# It wasn't sent by a daemon (misdirected bounce message perhaps).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* < $size_limit
|
||||||
|
* !$^($X_COMMAND:|X-Loop: $\listaddr)
|
||||||
|
* ! B ?? $^^$X_COMMAND:
|
||||||
|
* $$daemon_bias
|
||||||
|
* -100^0 ^FROM_MAILER|\
|
||||||
|
^(((Resent-)?(From|Sender)|X-Envelope-From):|>?From )\
|
||||||
|
([^>]*[^(.%@a-z0-9])?(\
|
||||||
|
LIST(SERV|proc)|NETSERV|bounce|autoanswer|echo|mirror\
|
||||||
|
)(([^).!:a-z0-9][-_a-z0-9]*)?[%@> ][^<)]*(\(.*\).*)?)?$([^>]|$)
|
||||||
|
* 1^0
|
||||||
|
{
|
||||||
|
|
||||||
|
:0
|
||||||
|
* B ?? >640
|
||||||
|
* 9876543210^0
|
||||||
|
{ }
|
||||||
|
|
||||||
|
#
|
||||||
|
# Does it look like a regular submission?
|
||||||
|
# Or perhaps more like an administrative request?
|
||||||
|
# Look at the start of the body, and see if this could be an administrative
|
||||||
|
# request, pass it on to rc.request in that case.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* $$=^0
|
||||||
|
* 9876543210^0 !divertcheck ?? y
|
||||||
|
{ }
|
||||||
|
|
||||||
|
:0
|
||||||
|
* $$=^0
|
||||||
|
* !B ?? ^^(.*$(.*$(.*$(.*$(.*$(.*$(.*$(.*$)?)?)?)?)?)?)?)?[^]>} a-z0-9]
|
||||||
|
* 9876543210^0 B ?? ^^.*$.*$.*$.*$.*$.*$.*$.*$.*$
|
||||||
|
{ }
|
||||||
|
|
||||||
|
:0
|
||||||
|
* $$=^0
|
||||||
|
* $${maintainer:+9876543210^0 ^From[: ](.*\<)?$\maintainer\>}
|
||||||
|
* 9876543210^0 ^(Subject:(.*\<)?(Re:|magazine)\>)|X-(Diagnostic|Mailing-List):
|
||||||
|
* -25^0 ^\
|
||||||
|
Subject:([ ]*(archives?:?([ ]+(\
|
||||||
|
(send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ]|$)|[ ]*$)|\
|
||||||
|
help|info|join|leave|\
|
||||||
|
(Could you )?(please )?\
|
||||||
|
(cancel(( my)? subscription)?|add|\
|
||||||
|
sign( [^ ]+ |-)?o(n|ff)|(un|de)?-?sub)[ ]*$)|\
|
||||||
|
.*( (join|leave|add .* to|(delete|remove) .* from|\
|
||||||
|
(take|sign|get) .* off|(put|sign) .* on) .* [a-z-]*list|\
|
||||||
|
(un-?|sub?)s(cr|c|r)i(be|ption))\>)
|
||||||
|
* -50^0 ^Subject:[ ]*[(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)]$
|
||||||
|
* 50^0 ^Subject:.*[a-z]
|
||||||
|
* -100^0 B ?? ^^([ ]|$)*\
|
||||||
|
((((archives?:?($|[ ]+)|\
|
||||||
|
((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ].*)?$)([ ]|$)*)+\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^|\
|
||||||
|
(help|info)[ ]*$|\
|
||||||
|
(add|join|leave|sign( [^ ]+ |-)?o(n|ff)|(un|de)?-?sub)\>)|\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^|\
|
||||||
|
.*( (join|leave|add .* to|(delete|remove) .* from|\
|
||||||
|
(take|sign|get) .* off|(put|sign) .* on) .* [a-z-]*list|\
|
||||||
|
(un-?|sub?)scri(be|ption))\>|\
|
||||||
|
^^)
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Then check to see if the sender is on the accept list (if foreign_submit
|
||||||
|
# is not set).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* 9876543210^0 foreign_submit ?? y
|
||||||
|
* 2^0 ? formail -X"From " -xFrom: -xReply-To: -xSender: -xResent-From: \
|
||||||
|
-xResent-Reply-To: -xResent-Sender: -xReturn-Path: | \
|
||||||
|
multigram -b1 -m -l$submit_threshold -L$domain \
|
||||||
|
-x$listaddr -x$listreq accept accept2
|
||||||
|
{
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_SUBMIT_10
|
||||||
|
|
||||||
|
:0
|
||||||
|
* moderated_flag ?? y
|
||||||
|
{
|
||||||
|
:0 Bfw # contract header and body
|
||||||
|
* ^^Approved:.*$^
|
||||||
|
| sed -e '1,/^$/{' -e '/^$/d' -e '}'
|
||||||
|
|
||||||
|
:0
|
||||||
|
* !$^Approved:.*$moderator_PASSWORD
|
||||||
|
| formail -R"From X-Envelope-From:" -uDate: -iReturn-Receipt-To: \
|
||||||
|
-iRead-Receipt-To: -iAcknowledge-To: | \
|
||||||
|
$SENDMAIL $sendmailOPT `cat moderators`
|
||||||
|
|
||||||
|
:0 fhw
|
||||||
|
| formail -IApproved:
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Eliminate duplicate submissions by checking the Message-ID: field.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Wh :msgid.lock
|
||||||
|
| formail -q- -D $idcache_size msgid.cache
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if we need to autosubscribe anyone not on the dist list.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* force_subscribe ?? y
|
||||||
|
* !? if test y = "$moderated_flag" ;\
|
||||||
|
then formail -xFrom: -xSender: -xReply-To: ;\
|
||||||
|
else formail -X"From " -xFrom: -xReply-To: -xSender: -xResent-From: \
|
||||||
|
-xResent-Reply-To: -xResent-Sender: -xReturn-Path: ;\
|
||||||
|
fi | multigram -b1 -m -l$submit_threshold -L$domain \
|
||||||
|
-x$listaddr -x$listreq dist
|
||||||
|
{
|
||||||
|
|
||||||
|
#
|
||||||
|
# Yes, well, then check if the person isn't on the reject list.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* ? multigram -b1 -l$reject_threshold reject
|
||||||
|
{
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: Found on the reject list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -l$reject_threshold reject`"
|
||||||
|
|
||||||
|
HOST=continue_with_rc.request
|
||||||
|
}
|
||||||
|
|
||||||
|
LOCKFILE=tmp.lock
|
||||||
|
|
||||||
|
:0 whc
|
||||||
|
| formail -rtzc -xTo: >tmp.from
|
||||||
|
|
||||||
|
:0 Wc :dist.lock
|
||||||
|
| sed -e '/^$/,/^-- $/ d' | formail -I "Subject: auto subscribe" \
|
||||||
|
>tmp.request; subscribe <tmp.request && test ! -z "$subscribe_log" \
|
||||||
|
&& echo "rc.submit: auto subscribed" >>$subscribe_log
|
||||||
|
|
||||||
|
LOCKFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if this is a digested mailinglist. If yes, processing stops
|
||||||
|
# here and the mail will be added to the digest.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* digest_flag ?? y
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Forward the article back to the undigested list, if it hasn't
|
||||||
|
# come from there.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 c
|
||||||
|
* undigested_list ?? y
|
||||||
|
* $!^X-Loop: $\undigested_list
|
||||||
|
! $sendmailOPT $undigested_list
|
||||||
|
|
||||||
|
#
|
||||||
|
# Finally digest the mail.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 w :tmp.lock
|
||||||
|
| digest
|
||||||
|
}
|
||||||
|
|
||||||
|
ARCHIVE # Wipe ARCHIVE from the environment
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if we are the first mailinglist to distribute this message, if so
|
||||||
|
# archive the message.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* archive_hist ?? [1-9]
|
||||||
|
* !^X-Mailing-List:
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
# Czo 98/11/25
|
||||||
|
# archive dans mbox
|
||||||
|
CZOBOX=`echo $listaddr | sed "s/@asim.lip6.fr//"`
|
||||||
|
|
||||||
|
:0 c
|
||||||
|
archive/$CZOBOX.mbox
|
||||||
|
|
||||||
|
:0 c : $CZOBOX.mbox.hyp-lock
|
||||||
|
| /users/largo1/czo/cvslargo/listes-rules/hyp $CZOBOX
|
||||||
|
|
||||||
|
# End Czo
|
||||||
|
|
||||||
|
:0 c
|
||||||
|
archive/latest/.
|
||||||
|
|
||||||
|
ARCHIVE=$LASTFOLDER # Remember where it was archived
|
||||||
|
|
||||||
|
#
|
||||||
|
# Truncate the archive to the correct number of files (and
|
||||||
|
# possibly other housekeeping chores to keep the archive
|
||||||
|
# current).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 c hi
|
||||||
|
| arch_trunc
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Main header munger for submissions passing through this list.
|
||||||
|
#
|
||||||
|
|
||||||
|
oldshellmetas="$SHELLMETAS" SHELLMETAS # Save a shell, procmail can
|
||||||
|
# do this one by itself.
|
||||||
|
:0 wfh
|
||||||
|
| formail -b -IFrom\ -IReceived: -IReturn-Receipt-To: -IErrors-To: \
|
||||||
|
-IX-Pmrqc: -IX-Confirm-Reading-To: -IX-Ack: -IAcknowledge-To: \
|
||||||
|
-IRead-Receipt-To: -IReturn-Receipt-Requested: -IX-Diagnostic: \
|
||||||
|
-iStatus: -iReturn-Path: -iX-Envelope-To: -iX-Envelope-From: \
|
||||||
|
-I"Precedence: list" -I"Resent-Sender: $listreq" \
|
||||||
|
-uDate: -aMessage-ID: -aResent-Message-ID: \
|
||||||
|
-a"To: $listaddr" -a"Resent-From: $listaddr" -A"X-Loop: $listaddr" \
|
||||||
|
-a"Subject: Unidentified subject!" ${reply_to:+"-a$reply_to"} \
|
||||||
|
-a"X-Mailing-List: <$listaddr> $ARCHIVE"
|
||||||
|
|
||||||
|
SHELLMETAS="$oldshellmetas" oldshellmetas
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_SUBMIT_20
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following recipe will distribute the message to the subscribers
|
||||||
|
# using the native $SENDMAIL, but only if you disabled the alternative
|
||||||
|
# sendmail (choplist).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 w: dist.lock
|
||||||
|
* !alt_sendmail ?? .
|
||||||
|
! $sendmailOPT $listdist
|
||||||
|
|
||||||
|
#
|
||||||
|
# Alternate sendmail call (used by default), does not use the file-
|
||||||
|
# including -dist alias.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Ew: dist.lock
|
||||||
|
| $alt_sendmail $SENDMAIL $sendmailOPT $sendmailOPTi
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: $SENDMAIL $listdist failed"
|
||||||
|
|
||||||
|
HOST=continue_with_rc.request
|
||||||
|
}
|
||||||
|
|
||||||
|
:0 E wfh
|
||||||
|
| formail -A "X-Diagnostic: Not on the accept list"
|
||||||
|
|
||||||
|
:0 A c
|
||||||
|
* ? test -f accept.txt
|
||||||
|
{
|
||||||
|
:0 fh
|
||||||
|
| formail -i"From: $listreq" -kbrtA"X-Loop: $listaddr" ; cat accept.txt
|
||||||
|
|
||||||
|
:0
|
||||||
|
! $sendmailOPT -t
|
||||||
|
}
|
||||||
|
|
||||||
|
} }
|
||||||
|
|
||||||
|
:0 fhw
|
||||||
|
* pass_diverts ?? y
|
||||||
|
* !^X-Diagnostic:
|
||||||
|
| formail -A "X-Diagnostic: Diverted & unprocessed"
|
||||||
|
|
||||||
|
HOST=continue_with_rc.request
|
|
@ -0,0 +1,7 @@
|
||||||
|
This is an automated subscription mechanism. For your verification, a
|
||||||
|
transcript of the original subscription request is included below.
|
||||||
|
|
||||||
|
If the wrong address has been subscribed and you seem to be unable to fix it
|
||||||
|
yourself, reply to this message now (quoting it entirely (for diagnostic
|
||||||
|
purposes), and of course adding any comments you see fit).
|
||||||
|
--
|
|
@ -0,0 +1,6 @@
|
||||||
|
If this wasn't your intention or you are having problems getting yourself
|
||||||
|
unsubscribed, reply to this mail now (quoting it entirely (for diagnostic
|
||||||
|
purposes), and of course adding any comments you see fit).
|
||||||
|
|
||||||
|
Transcript of unsubscription request follows:
|
||||||
|
--
|
|
@ -0,0 +1,119 @@
|
||||||
|
#
|
||||||
|
# Assign the fully qualified mail address of the maintainer of this list
|
||||||
|
# to "maintainer". If empty, request-mail will not be mailed to any
|
||||||
|
# maintainer and will be stored in the "request" file for this list.
|
||||||
|
#
|
||||||
|
|
||||||
|
maintainer = Olivier.Sirol@lip6.fr
|
||||||
|
|
||||||
|
#LOGABSTRACT=yes # uncomment in case of emergency
|
||||||
|
#VERBOSE=yes # uncomment in case of real emergency
|
||||||
|
|
||||||
|
size_limit = 1524288 # sanity cutoff value for submissions
|
||||||
|
|
||||||
|
idcache_size = 8192 # duplicate-msgid cache size in bytes
|
||||||
|
|
||||||
|
archive_hist = 20 # number of messages left archived
|
||||||
|
#archive_log = $LOGFILE # log file for archive retrievals
|
||||||
|
#subscribe_log = $LOGFILE # log file for administrivia
|
||||||
|
|
||||||
|
#maxhist = 32 # bounce history limit
|
||||||
|
#minbounce = 4 # no. of bounces before removal
|
||||||
|
#cutoff_bounce = 256 # lines to keep in bounce processing
|
||||||
|
|
||||||
|
#match_threshold= 30730 # for close matches to the list
|
||||||
|
#medium_threshold= 28672 # for not so close matches to the list
|
||||||
|
#loose_threshold= 24476 # for loosely finding your name
|
||||||
|
|
||||||
|
#auto_off_threshold= $medium_threshold # for auto-unsubscribing bouncers
|
||||||
|
#off_threshold = $loose_threshold # for unsubscribing
|
||||||
|
#reject_threshold= $match_threshold # for rejecting subscriptions
|
||||||
|
#submit_threshold= $medium_threshold # for permitting submissions
|
||||||
|
|
||||||
|
#unsub_assist
|
||||||
|
unsub_assist = 8 # uncomment (and change perhaps) this
|
||||||
|
# line to enable unsubscription
|
||||||
|
# assistance; it specifies the no. of
|
||||||
|
# multigram matches an unsuccessful
|
||||||
|
# unsubscriber will receive back
|
||||||
|
#foreign_submit = yes
|
||||||
|
##foreign_submit # uncomment this line if you
|
||||||
|
# want to restrict submitting to
|
||||||
|
# people on the accept list
|
||||||
|
#restrict_archive
|
||||||
|
restrict_archive= yes # uncomment this line if you
|
||||||
|
# want to restrict archive retrievals
|
||||||
|
# to people on the accept list
|
||||||
|
#force_subscribe
|
||||||
|
force_subscribe= no # uncomment to cause people to
|
||||||
|
# be autosubscribed upon first
|
||||||
|
# submission to the list
|
||||||
|
auto_unsubscribe= no
|
||||||
|
##auto_unsubscribe # uncomment to disable unattended
|
||||||
|
# unsubscription handling
|
||||||
|
auto_subscribe = no
|
||||||
|
##auto_subscribe # uncomment to disable unattended
|
||||||
|
# subscription handling
|
||||||
|
#auto_help
|
||||||
|
auto_help = no # uncomment to enable default help
|
||||||
|
# responses to all undecipherable
|
||||||
|
# requests
|
||||||
|
#moderated_flag
|
||||||
|
##moderated_flag= yes # uncomment this to make the list
|
||||||
|
# moderated (you must create a
|
||||||
|
# `moderators' file for this to work)
|
||||||
|
# set moderator_PASSWORD to get
|
||||||
|
# stricter checking
|
||||||
|
#cc_requests
|
||||||
|
##cc_requests = yes # uncomment if you want subscribe
|
||||||
|
# and help requests to be Cc'd to
|
||||||
|
# the maintainer
|
||||||
|
#cc_unsubrequests
|
||||||
|
##cc_unsubrequests= yes # uncomment if you want unsubscribe
|
||||||
|
# requests to be Cc'd to the maintainer
|
||||||
|
#divertcheck = yes
|
||||||
|
##divertcheck # uncomment to disable the check for
|
||||||
|
# misfiled administrative requests
|
||||||
|
#pass_diverts
|
||||||
|
##pass_diverts = yes # uncomment to pass on administrative
|
||||||
|
# requests diverted from the normal
|
||||||
|
# list to the maintainer unprocessed
|
||||||
|
# (instead of trying to handle them)
|
||||||
|
#reply_to
|
||||||
|
##reply_to = "Resent-Reply-To: $listaddr" # uncomment (and perhaps change
|
||||||
|
# it to "Reply-To") to force replies
|
||||||
|
# to go to the list (discouraged)
|
||||||
|
# why discouraged? see:
|
||||||
|
# http://garcon.unicom.com/FAQ/reply-to-harmful.html
|
||||||
|
#digest_flag
|
||||||
|
##digest_flag = yes # uncomment this if you want digests
|
||||||
|
#digest_age = 262144 # maximum age of a digest in seconds
|
||||||
|
#digest_size = 32768 # maximum size of a digest in bytes
|
||||||
|
#undigested_list = $list@$domain # Reply-To: address for digests
|
||||||
|
|
||||||
|
#moderator_PASSWORD = # put the optional password for
|
||||||
|
# moderators here, this definition
|
||||||
|
# can contain regular expression magic
|
||||||
|
# characters (to support multiple
|
||||||
|
# passwords)
|
||||||
|
|
||||||
|
X_COMMAND = X-Command
|
||||||
|
X_COMMAND_PASSWORD = alcpass # put the literal password for
|
||||||
|
# X-Command mails here
|
||||||
|
|
||||||
|
#daemon_bias='100^0 ^From:.*daemon@ok' # You could set "daemon_bias" to
|
||||||
|
# positively discriminate some
|
||||||
|
# mail address not to be from a daemon. Either with a regexp as demonstrated
|
||||||
|
# or with more complicated recipes that simply set it to '100^0' or nothing.
|
||||||
|
|
||||||
|
#RC_LOCAL_SUBMIT_00 = rc.local.s00 # Uncomment (and change) these to
|
||||||
|
#RC_LOCAL_SUBMIT_10 = rc.local.s10 # call up customised local scripts
|
||||||
|
#RC_LOCAL_SUBMIT_20 = rc.local.s20 # at predefined points.
|
||||||
|
#RC_LOCAL_REQUEST_00 = rc.local.r00
|
||||||
|
#RC_LOCAL_REQUEST_10 = rc.local.r10
|
||||||
|
#RC_LOCAL_REQUEST_20 = rc.local.r20
|
||||||
|
#RC_LOCAL_REQUEST_30 = rc.local.r30
|
||||||
|
|
||||||
|
RC_CUSTOM # clear this one from the environment
|
||||||
|
# so that we include this file only
|
||||||
|
# once
|
|
@ -0,0 +1,11 @@
|
||||||
|
#$Id: .procmailrc,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
LOGFILE=/dev/null
|
||||||
|
MAILDIR=.etc # chdir to the defaults directory
|
||||||
|
|
||||||
|
INCLUDERC=rc.init
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A"X-Diagnostic: Non-existent mailinglist $X_ENVELOPE_TO"
|
||||||
|
|
||||||
|
INCLUDERC=rc.post
|
|
@ -0,0 +1,90 @@
|
||||||
|
# BEFORE editing this file, you should make sure that it is not linked to
|
||||||
|
# the master version (../.etc/rc.archive) anymore (i.e. "delink rc.request"
|
||||||
|
# if you do not want your changes to affect all archive servers).
|
||||||
|
#
|
||||||
|
# New mails can be temporarily stalled by creating the file rc.lock (either in
|
||||||
|
# ../.etc for all lists or in the current directory for this list only).
|
||||||
|
|
||||||
|
#$Id: rc.archive,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
INCLUDERC=$RC_INIT
|
||||||
|
INCLUDERC=$RC_CUSTOM
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_00
|
||||||
|
|
||||||
|
LOCKFILE=tmp.lock # for reusing tmp.(request|from)
|
||||||
|
# also makes sure that the load doesn't go sky-high
|
||||||
|
# when a lot of mail arrives concurrently
|
||||||
|
|
||||||
|
#
|
||||||
|
# We drop the message in the bitbucket if:
|
||||||
|
# It's too big.
|
||||||
|
# We sent it ourselves.
|
||||||
|
# It was sent by a daemon of some kind.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 h
|
||||||
|
* > 32768
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
:0 h
|
||||||
|
* !^X-Loop: $listaddr
|
||||||
|
* $$daemon_bias
|
||||||
|
* -100^0 ^FROM_DAEMON
|
||||||
|
* 1^0
|
||||||
|
{ }
|
||||||
|
|
||||||
|
:0 Eh
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
#
|
||||||
|
# We now check that it is not a reply or something.
|
||||||
|
# If it isn't, we extract the sender address into tmp.from
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 whc
|
||||||
|
* !^Subject:(.*[^a-z])?(Re:|erro|problem|((can)?not|.*n't)\>)
|
||||||
|
| formail -rtzc -xTo: >tmp.from
|
||||||
|
|
||||||
|
#
|
||||||
|
# Store the whole mail in tmp.request, for later reference.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Ac
|
||||||
|
| cat >tmp.request
|
||||||
|
|
||||||
|
#
|
||||||
|
# Feed it to the archive server.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Aw
|
||||||
|
| arch_retrieve standalone
|
||||||
|
|
||||||
|
LOCKFILE # we don't need the lockfile anymore
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_30
|
||||||
|
|
||||||
|
#
|
||||||
|
# Anything not taken care of yet will be served to the maintainer of the list.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 fh
|
||||||
|
| formail -A"X-Envelope-To: $X_ENVELOPE_TO"
|
||||||
|
|
||||||
|
#
|
||||||
|
# If this list does not have a maintainer e-mail address, drop things in
|
||||||
|
# the file request.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0:
|
||||||
|
* !maintainer ?? .
|
||||||
|
request
|
||||||
|
|
||||||
|
:0 w
|
||||||
|
| formail -R"From X-From_:" -iDate: -iReturn-Receipt-To: -iRead-Receipt-To: \
|
||||||
|
-iAcknowledge-To: | $SENDMAIL $sendmailOPT $sendmailOPTp $maintainer
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A"X-Diagnostic: Maintainer $maintainer could not be reached"
|
||||||
|
|
||||||
|
HOST=continue_with_../.etc/rc.post
|
|
@ -0,0 +1,119 @@
|
||||||
|
#
|
||||||
|
# Assign the fully qualified mail address of the maintainer of this list
|
||||||
|
# to "maintainer". If empty, request-mail will not be mailed to any
|
||||||
|
# maintainer and will be stored in the "request" file for this list.
|
||||||
|
#
|
||||||
|
|
||||||
|
maintainer =
|
||||||
|
|
||||||
|
#LOGABSTRACT=yes # uncomment in case of emergency
|
||||||
|
#VERBOSE=yes # uncomment in case of real emergency
|
||||||
|
|
||||||
|
#size_limit = 524288 # sanity cutoff value for submissions
|
||||||
|
|
||||||
|
#idcache_size = 8192 # duplicate-msgid cache size in bytes
|
||||||
|
|
||||||
|
#archive_hist = 2 # number of messages left archived
|
||||||
|
#archive_log = $LOGFILE # log file for archive retrievals
|
||||||
|
#subscribe_log = $LOGFILE # log file for administrivia
|
||||||
|
|
||||||
|
#maxhist = 32 # bounce history limit
|
||||||
|
#minbounce = 4 # no. of bounces before removal
|
||||||
|
#cutoff_bounce = 256 # lines to keep in bounce processing
|
||||||
|
|
||||||
|
#match_threshold= 30730 # for close matches to the list
|
||||||
|
#medium_threshold= 28672 # for not so close matches to the list
|
||||||
|
#loose_threshold= 24476 # for loosely finding your name
|
||||||
|
|
||||||
|
#auto_off_threshold= $medium_threshold # for auto-unsubscribing bouncers
|
||||||
|
#off_threshold = $loose_threshold # for unsubscribing
|
||||||
|
#reject_threshold= $match_threshold # for rejecting subscriptions
|
||||||
|
#submit_threshold= $medium_threshold # for permitting submissions
|
||||||
|
|
||||||
|
#unsub_assist
|
||||||
|
##unsub_assist = 8 # uncomment (and change perhaps) this
|
||||||
|
# line to enable unsubscription
|
||||||
|
# assistance; it specifies the no. of
|
||||||
|
# multigram matches an unsuccessful
|
||||||
|
# unsubscriber will receive back
|
||||||
|
#foreign_submit = yes
|
||||||
|
##foreign_submit # uncomment this line if you
|
||||||
|
# want to restrict submitting to
|
||||||
|
# people on the accept list
|
||||||
|
#restrict_archive
|
||||||
|
##restrict_archive= yes # uncomment this line if you
|
||||||
|
# want to restrict archive retrievals
|
||||||
|
# to people on the accept list
|
||||||
|
#force_subscribe
|
||||||
|
##force_subscribe= yes # uncomment to cause people to
|
||||||
|
# be autosubscribed upon first
|
||||||
|
# submission to the list
|
||||||
|
#auto_unsubscribe= yes
|
||||||
|
##auto_unsubscribe # uncomment to disable unattended
|
||||||
|
# unsubscription handling
|
||||||
|
#auto_subscribe = yes
|
||||||
|
##auto_subscribe # uncomment to disable unattended
|
||||||
|
# subscription handling
|
||||||
|
#auto_help
|
||||||
|
##auto_help = yes # uncomment to enable default help
|
||||||
|
# responses to all undecipherable
|
||||||
|
# requests
|
||||||
|
#moderated_flag
|
||||||
|
##moderated_flag= yes # uncomment this to make the list
|
||||||
|
# moderated (you must create a
|
||||||
|
# `moderators' file for this to work)
|
||||||
|
# set moderator_PASSWORD to get
|
||||||
|
# stricter checking
|
||||||
|
#cc_requests
|
||||||
|
##cc_requests = yes # uncomment if you want subscribe
|
||||||
|
# and help requests to be Cc'd to
|
||||||
|
# the maintainer
|
||||||
|
#cc_unsubrequests
|
||||||
|
##cc_unsubrequests= yes # uncomment if you want unsubscribe
|
||||||
|
# requests to be Cc'd to the maintainer
|
||||||
|
#divertcheck = yes
|
||||||
|
##divertcheck # uncomment to disable the check for
|
||||||
|
# misfiled administrative requests
|
||||||
|
#pass_diverts
|
||||||
|
##pass_diverts = yes # uncomment to pass on administrative
|
||||||
|
# requests diverted from the normal
|
||||||
|
# list to the maintainer unprocessed
|
||||||
|
# (instead of trying to handle them)
|
||||||
|
#reply_to
|
||||||
|
##reply_to = "Resent-Reply-To: $listaddr" # uncomment (and perhaps change
|
||||||
|
# it to "Reply-To") to force replies
|
||||||
|
# to go to the list (discouraged)
|
||||||
|
# why discouraged? see:
|
||||||
|
# http://garcon.unicom.com/FAQ/reply-to-harmful.html
|
||||||
|
#digest_flag
|
||||||
|
##digest_flag = yes # uncomment this if you want digests
|
||||||
|
#digest_age = 262144 # maximum age of a digest in seconds
|
||||||
|
#digest_size = 32768 # maximum size of a digest in bytes
|
||||||
|
#undigested_list = $list@$domain # Reply-To: address for digests
|
||||||
|
|
||||||
|
#moderator_PASSWORD = # put the optional password for
|
||||||
|
# moderators here, this definition
|
||||||
|
# can contain regular expression magic
|
||||||
|
# characters (to support multiple
|
||||||
|
# passwords)
|
||||||
|
|
||||||
|
#X_COMMAND = X-Command
|
||||||
|
#X_COMMAND_PASSWORD = # put the literal password for
|
||||||
|
# X-Command mails here
|
||||||
|
|
||||||
|
#daemon_bias='100^0 ^From:.*daemon@ok' # You could set "daemon_bias" to
|
||||||
|
# positively discriminate some
|
||||||
|
# mail address not to be from a daemon. Either with a regexp as demonstrated
|
||||||
|
# or with more complicated recipes that simply set it to '100^0' or nothing.
|
||||||
|
|
||||||
|
#RC_LOCAL_SUBMIT_00 = rc.local.s00 # Uncomment (and change) these to
|
||||||
|
#RC_LOCAL_SUBMIT_10 = rc.local.s10 # call up customised local scripts
|
||||||
|
#RC_LOCAL_SUBMIT_20 = rc.local.s20 # at predefined points.
|
||||||
|
#RC_LOCAL_REQUEST_00 = rc.local.r00
|
||||||
|
#RC_LOCAL_REQUEST_10 = rc.local.r10
|
||||||
|
#RC_LOCAL_REQUEST_20 = rc.local.r20
|
||||||
|
#RC_LOCAL_REQUEST_30 = rc.local.r30
|
||||||
|
|
||||||
|
RC_CUSTOM # clear this one from the environment
|
||||||
|
# so that we include this file only
|
||||||
|
# once
|
|
@ -0,0 +1,255 @@
|
||||||
|
#
|
||||||
|
# IMPORTANT variables to check/change: PATH domain listmaster
|
||||||
|
#
|
||||||
|
|
||||||
|
# BEFORE editing this file or any rc.* file in the .etc directory
|
||||||
|
# you should create the .etc/rc.lock file. As long as this file
|
||||||
|
# exists, mail delivery to any list will stall (flist checks this file).
|
||||||
|
#
|
||||||
|
# Delivery can be temporarily stalled on a per list basis by creating
|
||||||
|
# the file rc.lock in the respective list's subdirectory.
|
||||||
|
|
||||||
|
# ENVIRONMENT:
|
||||||
|
# list contains the submitting address of the list (sans domain)
|
||||||
|
# domain should contain the domain for the list, so that $list@$domain
|
||||||
|
# can be used to submit to the list
|
||||||
|
# maintainer should contain the fully qualified address of the maintainer
|
||||||
|
# of $list; maintainter can be left empty
|
||||||
|
# listmaster should contain the fully qualified address of the supervising
|
||||||
|
# list maintainer; listmaster can be left empty
|
||||||
|
# X_ENVELOPE_TO contains the address that the incoming mail was addressed to
|
||||||
|
|
||||||
|
# FILES:
|
||||||
|
# log optional logfile (uncomment the LOGFILE assignment to enable
|
||||||
|
# it)
|
||||||
|
# dist the subscriber list, one address per line
|
||||||
|
# accept the list of people allowed to submit messages (usually a
|
||||||
|
# link to dist, only checked if $foreign_submit != yes)
|
||||||
|
# accept2 an optional second accept file
|
||||||
|
# reject list of people you definitely do not want to subscribe
|
||||||
|
# subscreen program (e.g. shell script) to screen prospective subscribers
|
||||||
|
# (see in the examples directory for a sample script)
|
||||||
|
# request all the messages to request that could not be handled
|
||||||
|
# automatically (only if maintainer is empty)
|
||||||
|
# help.txt file sent to help & info requests
|
||||||
|
# info.txt optional file sent to help & info requests as well,
|
||||||
|
# it should contain a concise description of what the
|
||||||
|
# list is all about
|
||||||
|
# the various info.txt files are optionally gathered in
|
||||||
|
# order to advertise the availability of the mailinglists
|
||||||
|
# subscribe.txt file sent to new subscribers
|
||||||
|
# subscribe.files file containing an arbitrary number of archive server
|
||||||
|
# commands to be executed on behalf of new subscribers
|
||||||
|
# unsubscribe.txt file sent to unsubscribers
|
||||||
|
# accept.txt file sent to people not on the accept list
|
||||||
|
# archive.txt file sent to people requesting help from the archive server
|
||||||
|
# archive (link to a) directory below which files can be accessed through
|
||||||
|
# the archive server
|
||||||
|
# bounces directory containing the bounce history files
|
||||||
|
# rc.submit rcfile used when distributing submissions
|
||||||
|
# rc.request rcfile used when processing requests
|
||||||
|
# rc.custom rcfile that contains all the customisations per list
|
||||||
|
# rc.local.* optional rcfiles for any local extensions (to be used in
|
||||||
|
# conjunction with the RC_LOCAL_* variables which can be set
|
||||||
|
# in rc.init or rc.custom files)
|
||||||
|
|
||||||
|
#$Id: rc.init,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
DELIVERED=yes # we're in control of the mail now, tell sendmail to go away
|
||||||
|
|
||||||
|
PATH=.:$PATH:../.bin:/bin:/usr/bin:/usr/local/bin # setup a decent path
|
||||||
|
SHELL=/bin/sh # to prevent surprises
|
||||||
|
|
||||||
|
defaults=.etc
|
||||||
|
|
||||||
|
LOCKTIMEOUT=3660 # set these values this high (1 hour)
|
||||||
|
TIMEOUT=3600 # to give sendmail the time to
|
||||||
|
# resolve big aliases
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# You have to setup the following two assignments, make sure that the address
|
||||||
|
# mentioned in listmaster is *not* the address this script runs under; if
|
||||||
|
# you would end up doing that, then assign listmaster to ""
|
||||||
|
# The same applies to the maintainer addresses used for every list, if you
|
||||||
|
# would like to alias them back to this script or to the respective -request
|
||||||
|
# addresses, then assign maintainer to "" instead.
|
||||||
|
#
|
||||||
|
# The mail-domain you have to insert below, must be the fully qualified
|
||||||
|
# mail-domain for this list; e.g. if the preferred mail address for this
|
||||||
|
# account would be: list@somemachine.somewhere.universe
|
||||||
|
# Then you should assign the following:
|
||||||
|
# domain=somemachine.somewhere.universe
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
domain=INSERT.YOUR.MAIL.DOMAIN.HERE # the common domain for all the lists
|
||||||
|
listmaster=
|
||||||
|
|
||||||
|
#UMASK=077 # group can not touch the files
|
||||||
|
#UMASK=027 # group can read
|
||||||
|
UMASK=007 # group can write as well
|
||||||
|
|
||||||
|
defaults=.etc # the name of the defaults directory
|
||||||
|
LOGFILE=log
|
||||||
|
LOGABSTRACT=no
|
||||||
|
|
||||||
|
#LOGABSTRACT=yes # uncomment in case of emergency
|
||||||
|
#VERBOSE=yes # uncomment in case of real emergency
|
||||||
|
#LOGFILE=../$defaults/log # uncomment if you want centralised
|
||||||
|
# logging
|
||||||
|
|
||||||
|
RC_INIT # clear this one from the environment
|
||||||
|
# so that we include this file only
|
||||||
|
# once
|
||||||
|
|
||||||
|
listaddr=$list@$domain
|
||||||
|
listreq=$list-request@$domain
|
||||||
|
listdist=$list-dist@$domain
|
||||||
|
|
||||||
|
# the following constants determine the
|
||||||
|
# behaviour of choplist, the dist-file
|
||||||
|
# expander (zero means: no limit) which
|
||||||
|
# calls sendmail
|
||||||
|
minnames = 32 # minimum number of names per call
|
||||||
|
mindiffnames = 8 # minimum for maxnames-minnames
|
||||||
|
maxnames = 64 # maximum number of names per call
|
||||||
|
maxsplits = 0 # maximum number of parts to split dist in
|
||||||
|
maxsize = 200000 # maximal disk space to be taken up per mail
|
||||||
|
maxconcur = 4 # maximum number of concurrent sendmail calls
|
||||||
|
|
||||||
|
alt_sendmail="\
|
||||||
|
choplist $minnames $mindiffnames $maxnames $maxsplits $maxsize $maxconcur dist"
|
||||||
|
minnames mindiffnames maxnames maxsplits maxsize maxconcur
|
||||||
|
#alt_sendmail # uncomment if you'd prefer sendmail
|
||||||
|
# to handle the $listdist expansion
|
||||||
|
|
||||||
|
sendmailOPT="-oem -odb -oi -om -f$listreq"
|
||||||
|
sendmailOPTp=-oep
|
||||||
|
sendmailOPTq=-odq
|
||||||
|
sendmailOPTi=-odi
|
||||||
|
sendmailQflush="$SENDMAIL -q"
|
||||||
|
#sendmailQflush # uncomment if you don't want the
|
||||||
|
# queue to be flushed after all archive
|
||||||
|
# retrieval files have been queued
|
||||||
|
########################
|
||||||
|
# sendmail options used:
|
||||||
|
#
|
||||||
|
# -t scan the header of the mail for recipients
|
||||||
|
# -f specify the sender envelope address (requires T entry in sendmail.cf)
|
||||||
|
# -oi do not regard a single dot on an otherwise empty line as EOF
|
||||||
|
# -om include myself in any alias expansions
|
||||||
|
# -odb background deliverymode command returns immediately
|
||||||
|
# -odq queued deliverymode (put messages in the queue only)
|
||||||
|
# -odi interactive deliverymode command, wait until most delivered
|
||||||
|
# -q flush the queue
|
||||||
|
# -oem mail back error messages
|
||||||
|
# -oep print error messages
|
||||||
|
# -onF do not check aliases while expanding them (use it, if available)
|
||||||
|
########################
|
||||||
|
#
|
||||||
|
# If you only have /bin/mail and not some sendmail compatible mailer that
|
||||||
|
# understands the -t option of sendmail, then you have to uncomment the
|
||||||
|
# following two lines:
|
||||||
|
#
|
||||||
|
#sendmailOPT sendmailOPTp sendmailOPTq sendmailOPTi sendmailQflush
|
||||||
|
#SENDMAIL=../SedBinDir/sendmails
|
||||||
|
#
|
||||||
|
########################
|
||||||
|
|
||||||
|
size_limit = 524288 # sanity cutoff value for submissions
|
||||||
|
|
||||||
|
idcache_size = 8192 # duplicate-msgid cache size in bytes
|
||||||
|
|
||||||
|
archive_hist = 2 # number of messages left archived
|
||||||
|
archive_log = $LOGFILE # log file for archive retrievals
|
||||||
|
subscribe_log = $LOGFILE # log file for administrivia
|
||||||
|
|
||||||
|
maxhist = 32 # bounce history limit
|
||||||
|
minbounce = 4 # no. of bounces before removal
|
||||||
|
cutoff_bounce = 256 # lines to keep in bounce processing
|
||||||
|
|
||||||
|
match_threshold = 30730 # for close matches to the list
|
||||||
|
medium_threshold= 28672 # for not so close matches to the list
|
||||||
|
loose_threshold = 24476 # for loosely finding your name
|
||||||
|
|
||||||
|
auto_off_threshold= $medium_threshold # for auto-unsubscribing bouncers
|
||||||
|
off_threshold = $loose_threshold # for unsubscribing
|
||||||
|
reject_threshold= $match_threshold # for rejecting subscriptions
|
||||||
|
submit_threshold= $medium_threshold # for permitting submissions
|
||||||
|
|
||||||
|
unsub_assist
|
||||||
|
#unsub_assist = 8 # uncomment (and change perhaps) this
|
||||||
|
# line to enable unsubscription
|
||||||
|
# assistance; it specifies the no. of
|
||||||
|
# multigram matches an unsuccessful
|
||||||
|
# unsubscriber will receive back
|
||||||
|
foreign_submit = yes
|
||||||
|
#foreign_submit # uncomment this line if you
|
||||||
|
# want to restrict submitting to
|
||||||
|
# people on the accept list
|
||||||
|
restrict_archive
|
||||||
|
#restrict_archive= yes # uncomment this line if you
|
||||||
|
# want to restrict archive retrievals
|
||||||
|
# to people on the accept list
|
||||||
|
force_subscribe
|
||||||
|
#force_subscribe= yes # uncomment to cause people to
|
||||||
|
# be autosubscribed upon first
|
||||||
|
# submission to the list
|
||||||
|
auto_unsubscribe= yes
|
||||||
|
#auto_unsubscribe # uncomment to disable unattended
|
||||||
|
# unsubscription handling
|
||||||
|
auto_subscribe = yes
|
||||||
|
#auto_subscribe # uncomment to disable unattended
|
||||||
|
# subscription handling
|
||||||
|
auto_help
|
||||||
|
#auto_help = yes # uncomment to enable default help
|
||||||
|
# responses to all undecipherable
|
||||||
|
# requests
|
||||||
|
moderated_flag
|
||||||
|
#moderated_flag = yes # uncomment this to make the list
|
||||||
|
# moderated (you must create a
|
||||||
|
# `moderators' file for this to work)
|
||||||
|
cc_requests
|
||||||
|
#cc_requests = yes # uncomment if you want subscribe
|
||||||
|
# and help requests to be Cc'd to
|
||||||
|
# the maintainer
|
||||||
|
cc_unsubrequests
|
||||||
|
#cc_unsubrequests= yes # uncomment if you want unsubscribe
|
||||||
|
# requests to be Cc'd to the maintainer
|
||||||
|
divertcheck = yes
|
||||||
|
#divertcheck # uncomment to disable the check for
|
||||||
|
# misfiled administrative requests
|
||||||
|
pass_diverts
|
||||||
|
#pass_diverts = yes # uncomment to pass on administrative
|
||||||
|
# requests diverted from the normal
|
||||||
|
# list to the maintainer unprocessed
|
||||||
|
# (instead of trying to handle them)
|
||||||
|
reply_to
|
||||||
|
#reply_to = "Resent-Reply-To: $listaddr" # uncomment (and perhaps change
|
||||||
|
# it to "Reply-To") to force replies
|
||||||
|
# to go to the list (discouraged)
|
||||||
|
digest_flag
|
||||||
|
#digest_flag = yes # uncomment this if you want digests
|
||||||
|
digest_age = 262144 # maximum age of a digest in seconds
|
||||||
|
digest_size = 32768 # maximum size of a digest in bytes
|
||||||
|
|
||||||
|
|
||||||
|
X_COMMAND = X-Command
|
||||||
|
X_COMMAND_PASSWORD = password # put the global password for
|
||||||
|
# X-Command mails here
|
||||||
|
# this password can of course be changed/
|
||||||
|
# customised in the per list rc.custom file
|
||||||
|
|
||||||
|
#daemon_bias='100^0 ^From:.*daemon@ok' # You could set "daemon_bias" to
|
||||||
|
# positively discriminate some
|
||||||
|
# mail address not to be from a daemon. Either with a regexp as demonstrated
|
||||||
|
# or with more complicated recipes that simply set it to '100^0' or nothing.
|
||||||
|
|
||||||
|
#RC_LOCAL_SUBMIT_00 = rc.local.s00 # Uncomment (and change) these to
|
||||||
|
#RC_LOCAL_SUBMIT_10 = rc.local.s10 # call up customised local scripts
|
||||||
|
#RC_LOCAL_SUBMIT_20 = rc.local.s20 # at predefined points.
|
||||||
|
#RC_LOCAL_REQUEST_00 = rc.local.r00
|
||||||
|
#RC_LOCAL_REQUEST_10 = rc.local.r10
|
||||||
|
#RC_LOCAL_REQUEST_20 = rc.local.r20
|
||||||
|
#RC_LOCAL_REQUEST_30 = rc.local.r30
|
||||||
|
|
||||||
|
RC_CUSTOM=rc.custom
|
|
@ -0,0 +1,11 @@
|
||||||
|
#$Id: rc.main,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
LOGFILE=/dev/null
|
||||||
|
MAILDIR=.etc # chdir to the defaults directory
|
||||||
|
|
||||||
|
INCLUDERC=rc.init
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A"X-Diagnostic: Non-existent mailinglist $X_ENVELOPE_TO"
|
||||||
|
|
||||||
|
INCLUDERC=rc.post
|
|
@ -0,0 +1,17 @@
|
||||||
|
#$Id: rc.post,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
MAILDIR=../$defaults # back to the defaults directory
|
||||||
|
LOGFILE=log # enabled by default, because when processing
|
||||||
|
# reaches this point, some unusual circumstance
|
||||||
|
# has occurred.
|
||||||
|
LOGABSTRACT=yes
|
||||||
|
|
||||||
|
:0 :
|
||||||
|
* !listmaster ?? .
|
||||||
|
request
|
||||||
|
|
||||||
|
:0 w
|
||||||
|
| formail -R"From X-From_:" -iDate: -iReturn-Receipt-To: -iRead-Receipt-To: \
|
||||||
|
-iAcknowledge-To: | $SENDMAIL $sendmailOPT $sendmailOPTp $listmaster
|
||||||
|
|
||||||
|
:0:
|
||||||
|
request
|
|
@ -0,0 +1,348 @@
|
||||||
|
# BEFORE editing this file, you should make sure that it is not linked to
|
||||||
|
# the master version (../.etc/rc.request) anymore (i.e. "delink rc.request"
|
||||||
|
# if you do not want your changes to affect all lists).
|
||||||
|
#
|
||||||
|
# New mails can be temporarily stalled by creating the file rc.lock (either in
|
||||||
|
# ../.etc for all lists or in the current directory for this list only).
|
||||||
|
|
||||||
|
#$Id: rc.request,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
INCLUDERC=$RC_INIT
|
||||||
|
INCLUDERC=$RC_CUSTOM
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_00
|
||||||
|
|
||||||
|
LOCKFILE=tmp.lock # for reusing tmp.(request|from)
|
||||||
|
# also makes sure that the load doesn't go sky-high
|
||||||
|
# when a lot of mail arrives concurrently
|
||||||
|
|
||||||
|
:0 Bfw # concatenate header and body
|
||||||
|
* $^^$X_COMMAND:
|
||||||
|
| sed -e '1,/^$/{' -e '/^$/d' -e '}'
|
||||||
|
|
||||||
|
#
|
||||||
|
# We now check:
|
||||||
|
# If the length is roughly within bounds.
|
||||||
|
# That it is not a reply or something.
|
||||||
|
# That we didn't send it ourselves.
|
||||||
|
# That it wasn't sent by a daemon of some kind.
|
||||||
|
#
|
||||||
|
# If everything matches, we extract the sender address into tmp.from
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* B ?? < 4096
|
||||||
|
* $$daemon_bias
|
||||||
|
* $!^(X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:)
|
||||||
|
* -100^0 ^FROM_DAEMON
|
||||||
|
* 1^0
|
||||||
|
{
|
||||||
|
|
||||||
|
:0
|
||||||
|
* -100^0 ^Subject:(.*[^a-z])?(Re:|erro|change|problem|((can)?not|.*n't)\>)
|
||||||
|
* 100^0 B ?? ^^([ ]|$)*\
|
||||||
|
((archives?:?($|[ ]+)|\
|
||||||
|
((un)subscribe|(send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ].*)?$)([ ]|$)*)+\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^
|
||||||
|
* 100^0 ^Subject:[ ]*archive
|
||||||
|
* 1^0
|
||||||
|
{
|
||||||
|
:0 whc
|
||||||
|
| formail -rtzc -xTo: >tmp.from
|
||||||
|
|
||||||
|
#
|
||||||
|
# Store the whole mail in tmp.request, for later reference.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wc
|
||||||
|
| formail -IIn-Reply-To: -ICc: >tmp.request
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check for a missing Subject: line.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* !^Subject:
|
||||||
|
| formail -a "Subject: "
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_10
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Reader beware, the following four regular expressions are not for the faint #
|
||||||
|
# of heart. It'll suffice to say that they accomplish their intended job 98% #
|
||||||
|
# of the time. #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it an archive retrieval command?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 HB w
|
||||||
|
* 9876543210^0 ^^(.+$)*Subject:[ ]*(([(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)])?\
|
||||||
|
$(.+$)*(^[ ]*)+)?(archives?:?([ ]|$)|\
|
||||||
|
((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|list|show|\
|
||||||
|
search|[fe]?grep|find|maxfiles|version)([ ]+[^ ]*)?$)
|
||||||
|
* 1^0 B ?? ^^([ ]|$)*\
|
||||||
|
((archives?:?($|[ ]+)|\
|
||||||
|
((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ].*)?$)([ ]|$)*)+\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^
|
||||||
|
{
|
||||||
|
:0 W
|
||||||
|
* 9876543210^0 !restrict_archive ?? y
|
||||||
|
* 2^0 ? formail -rt -R To: "From " -X "From " | \
|
||||||
|
multigram -b1 -m -l$submit_threshold -L$domain \
|
||||||
|
-x$listaddr -x$listreq accept accept2
|
||||||
|
| arch_retrieve
|
||||||
|
|
||||||
|
:0 E fhw
|
||||||
|
| formail -A "X-Diagnostic: Not on the accept list"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it an unsubscription request?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EHB
|
||||||
|
* 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)])?(\
|
||||||
|
($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\
|
||||||
|
(Could you )?(please )?\
|
||||||
|
(sign( [^ ]+ |-)?off|cancel|leave|delete|remove|(un|de)-?sub)\>|\
|
||||||
|
($(.+$)*$(.*$)*)?(.*[^a-z])?\
|
||||||
|
((un-?|(un|de)-?sub?)s(cr|c|r)i|\
|
||||||
|
(leave|(delete|remove) .* from|(sign|take|get) .* off) .* [a-z-]*list\>))
|
||||||
|
* 1^0 B ?? ^^([ ]|$)*unsub(scribe)?([ ].*)?([ ]|$)*\
|
||||||
|
[^ a-z]?^^
|
||||||
|
{
|
||||||
|
:0 fw:dist.lock
|
||||||
|
* auto_unsubscribe ?? y
|
||||||
|
| unsubscribe
|
||||||
|
|
||||||
|
:0 Aw ${cc_unsubrequests:+c}
|
||||||
|
| $SENDMAIL $sendmailOPT `cat tmp.from` ;
|
||||||
|
|
||||||
|
:0 Afhw
|
||||||
|
| formail -A "X-Diagnostic: Processed"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it a subscription request?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EHB
|
||||||
|
* 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)])?(\
|
||||||
|
($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\
|
||||||
|
(Could you )?(please )?\
|
||||||
|
(sign( [^ ]+ |-)?on|add|join|sub)\>|\
|
||||||
|
($(.+$)*$(.*$)*)?(.*[^a-z])?\
|
||||||
|
(sub?s(cr|c|r)i.*|(join|add .* to|(sign|put) .* on) .* [a-z-]*list\>))
|
||||||
|
* 1^0 B ?? ^^([ ]|$)*sub(scribe)?([ ].*)?([ ]|$)*\
|
||||||
|
[^ a-z]?^^
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Yes, well, then check if the person subscribing isn't on the reject
|
||||||
|
# list.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 HB wfh
|
||||||
|
* ? multigram -b1 -l$reject_threshold reject
|
||||||
|
| formail -A "X-Diagnostic: Found on the reject list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -l$reject_threshold reject`"
|
||||||
|
|
||||||
|
#
|
||||||
|
# If not, then let's see if he might already be on the
|
||||||
|
# mailinglist.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 E HB wfh
|
||||||
|
* ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \
|
||||||
|
multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist
|
||||||
|
| formail -A "X-Diagnostic: Already on the subscriber list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \
|
||||||
|
-l$reject_threshold dist`"
|
||||||
|
|
||||||
|
#
|
||||||
|
# If not, add him(/her/it?).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 E
|
||||||
|
* auto_subscribe ?? y
|
||||||
|
{
|
||||||
|
:0 W ${cc_requests:+c}:dist.lock
|
||||||
|
| subscribe
|
||||||
|
|
||||||
|
:0 awfh
|
||||||
|
| formail -A "X-Diagnostic: Added to the subscriber list"
|
||||||
|
|
||||||
|
:0 Ewfh
|
||||||
|
| formail -A "X-Diagnostic: Tried to subscribe"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Is it an info or help request? Send back the help.txt and the
|
||||||
|
# optional info.txt file.
|
||||||
|
# We do the same on a complete empty mail (except for perhaps a signature).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EHB
|
||||||
|
* 3^0 ^^(.+$)*Subject:[ ]*\
|
||||||
|
(([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$\
|
||||||
|
(.+$)*(^[ ]*)+)?[a-z,. ]*(help|info(rmation)?)\>
|
||||||
|
* 1^0 ^^(.+$)*Subject:[ ]*\
|
||||||
|
([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$
|
||||||
|
* -2^0 ^^(.+$)*(^[ ]*)+[a-z]
|
||||||
|
* 3^0 ^^(.+$)*^([ ]*$)*--
|
||||||
|
{
|
||||||
|
:0 hw ${cc_requests:+c}
|
||||||
|
| (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \
|
||||||
|
cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: help sent"
|
||||||
|
}
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_20
|
||||||
|
|
||||||
|
LOGABSTRACT=yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# If auto_help is set, anything undecipherable gets back the help.txt and the
|
||||||
|
# optional info.txt file.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 EB
|
||||||
|
* auto_help ?? y
|
||||||
|
* $!X-Loop: $\listaddr
|
||||||
|
{
|
||||||
|
:0 hw ${cc_requests:+c}
|
||||||
|
| (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \
|
||||||
|
cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: undecipherable, help sent"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGABSTRACT=yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# Could it be a bounce message from a daemon? Hand it down to procbounce
|
||||||
|
# which will evaluate it.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wic
|
||||||
|
* $!^(Subject:(.*[^a-z])?Re:|\
|
||||||
|
X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:)
|
||||||
|
* ^FROM_DAEMON
|
||||||
|
| sed -e $cutoff_bounce' q' >tmp.request
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sink all messages we can recognise to be queue warnings
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Ah
|
||||||
|
* ^Subject: \
|
||||||
|
(WARNING: message delayed|\
|
||||||
|
(Returned mail: )?warning: c(an|ould )not send m(essage fo|ail afte)r|\
|
||||||
|
Undeliverable (RFC822 )?mail: temporarily unable to deliver|\
|
||||||
|
\*\*\* WARNING - Undelivered mail in mailqueue)
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
:0 Ah
|
||||||
|
* ^Subject: (Warning from|mail warning| ?Waiting mail)
|
||||||
|
* ^(From|Sender):.*(uucp|mmdf)
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
:0 AhBD
|
||||||
|
* $^(..?)?X-Loop: $\listaddr \(bounce\)
|
||||||
|
* ^(..?)?Subject: You have been removed from
|
||||||
|
/dev/null
|
||||||
|
|
||||||
|
#
|
||||||
|
# Anything that still survived is most likely to be a bounce message.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Ahfw
|
||||||
|
| procbounce
|
||||||
|
|
||||||
|
#
|
||||||
|
# Or is it a remote X-Command from our maintainer?
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wf:dist.lock
|
||||||
|
* $^$X_COMMAND:.*$\maintainer[ ]*$\X_COMMAND_PASSWORD
|
||||||
|
* $!^X-Loop: $\listaddr
|
||||||
|
| x_command
|
||||||
|
|
||||||
|
LOCKFILE # we don't need the lockfile anymore
|
||||||
|
|
||||||
|
#
|
||||||
|
# Anything not taken care of yet will be served to the maintainer of the list.
|
||||||
|
#
|
||||||
|
# To make it easier on him, we include a small hint about what might be the
|
||||||
|
# problem (by adding X-Diagnostic: fields to the header).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* !< $size_limit
|
||||||
|
| formail -A "X-Diagnostic: Submission size exceeds $size_limit bytes"
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* ^FROM_DAEMON
|
||||||
|
| formail -A "X-Diagnostic: Mail coming from a daemon, ignored"
|
||||||
|
|
||||||
|
:0 HB wfh
|
||||||
|
* $^X-Loop: $\listaddr
|
||||||
|
| formail -A "X-Diagnostic: Possible loopback problem"
|
||||||
|
|
||||||
|
:0
|
||||||
|
* !^X-(Diagnostic|Processed):
|
||||||
|
{
|
||||||
|
:0 wfh
|
||||||
|
* $^$X_COMMAND:
|
||||||
|
| formail -A "X-Diagnostic: Suspicious $X_COMMAND format"
|
||||||
|
|
||||||
|
:0 HB wfh
|
||||||
|
* ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \
|
||||||
|
multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist
|
||||||
|
| formail -A "X-Diagnostic: Already on the subscriber list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \
|
||||||
|
-l$reject_threshold dist`"
|
||||||
|
}
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_REQUEST_30
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
* !^X-(Diagnostic|Processed):
|
||||||
|
| formail -A"X-Diagnostic: Unprocessed"
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A"X-Envelope-To: $X_ENVELOPE_TO"
|
||||||
|
|
||||||
|
#
|
||||||
|
# If this list does not have a maintainer e-mail address, drop things in
|
||||||
|
# the file request.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0:
|
||||||
|
* !maintainer ?? .
|
||||||
|
request
|
||||||
|
|
||||||
|
:0 w
|
||||||
|
| formail -R"From X-From_:" -iDate: -iReturn-Receipt-To: -iRead-Receipt-To: \
|
||||||
|
-iAcknowledge-To: | $SENDMAIL $sendmailOPT $sendmailOPTp $maintainer
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A"X-Diagnostic: Maintainer $maintainer could not be reached"
|
||||||
|
|
||||||
|
HOST=continue_with_../.etc/rc.post
|
|
@ -0,0 +1,289 @@
|
||||||
|
# BEFORE editing this file, you should make sure that it is not linked to
|
||||||
|
# the master version (../.etc/rc.submit) anymore (i.e. "delink rc.submit"
|
||||||
|
# if you do not want your changes to affect all archive servers).
|
||||||
|
#
|
||||||
|
# New mails can be temporarily stalled by creating the file rc.lock (either in
|
||||||
|
# ../.etc for all lists or in the current directory for this list only).
|
||||||
|
|
||||||
|
#$Id: rc.submit,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
|
||||||
|
INCLUDERC=$RC_INIT
|
||||||
|
INCLUDERC=$RC_CUSTOM
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_SUBMIT_00
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following recipe makes sure that:
|
||||||
|
# The mail has a sane size (i.e. it is not inordinately big)
|
||||||
|
# It does not look like an administrative request.
|
||||||
|
# It wasn't sent by this list itself.
|
||||||
|
# It wasn't sent by a daemon (misdirected bounce message perhaps).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* < $size_limit
|
||||||
|
* !$^($X_COMMAND:|X-Loop: $\listaddr)
|
||||||
|
* ! B ?? $^^$X_COMMAND:
|
||||||
|
* $$daemon_bias
|
||||||
|
* -100^0 ^FROM_MAILER|\
|
||||||
|
^(((Resent-)?(From|Sender)|X-Envelope-From):|>?From )\
|
||||||
|
([^>]*[^(.%@a-z0-9])?(\
|
||||||
|
LIST(SERV|proc)|NETSERV|bounce|autoanswer|echo|mirror\
|
||||||
|
)(([^).!:a-z0-9][-_a-z0-9]*)?[%@> ][^<)]*(\(.*\).*)?)?$([^>]|$)
|
||||||
|
* 1^0
|
||||||
|
{
|
||||||
|
|
||||||
|
:0
|
||||||
|
* B ?? >640
|
||||||
|
* 9876543210^0
|
||||||
|
{ }
|
||||||
|
|
||||||
|
#
|
||||||
|
# Does it look like a regular submission?
|
||||||
|
# Or perhaps more like an administrative request?
|
||||||
|
# Look at the start of the body, and see if this could be an administrative
|
||||||
|
# request, pass it on to rc.request in that case.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* $$=^0
|
||||||
|
* 9876543210^0 !divertcheck ?? y
|
||||||
|
{ }
|
||||||
|
|
||||||
|
:0
|
||||||
|
* $$=^0
|
||||||
|
* !B ?? ^^(.*$(.*$(.*$(.*$(.*$(.*$(.*$(.*$)?)?)?)?)?)?)?)?[^]>} a-z0-9]
|
||||||
|
* 9876543210^0 B ?? ^^.*$.*$.*$.*$.*$.*$.*$.*$.*$
|
||||||
|
{ }
|
||||||
|
|
||||||
|
:0
|
||||||
|
* $$=^0
|
||||||
|
* $${maintainer:+9876543210^0 ^From[: ](.*\<)?$\maintainer\>}
|
||||||
|
* 9876543210^0 ^(Subject:(.*\<)?(Re:|magazine)\>)|X-(Diagnostic|Mailing-List):
|
||||||
|
* -25^0 ^\
|
||||||
|
Subject:([ ]*(archives?:?([ ]+(\
|
||||||
|
(send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ]|$)|[ ]*$)|\
|
||||||
|
help|info|join|leave|\
|
||||||
|
(Could you )?(please )?\
|
||||||
|
(cancel(( my)? subscription)?|add|\
|
||||||
|
sign( [^ ]+ |-)?o(n|ff)|(un|de)?-?sub)[ ]*$)|\
|
||||||
|
.*( (join|leave|add .* to|(delete|remove) .* from|\
|
||||||
|
(take|sign|get) .* off|(put|sign) .* on) .* [a-z-]*list|\
|
||||||
|
(un-?|sub?)s(cr|c|r)i(be|ption))\>)
|
||||||
|
* -50^0 ^Subject:[ ]*[(<]no(ne| subject\
|
||||||
|
( (\(file transmission|given))?)[>)]$
|
||||||
|
* 50^0 ^Subject:.*[a-z]
|
||||||
|
* -100^0 B ?? ^^([ ]|$)*\
|
||||||
|
((((archives?:?($|[ ]+)|\
|
||||||
|
((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\
|
||||||
|
list|show|search|[fe]?grep|find|maxfiles|version|help|info)\
|
||||||
|
([ ].*)?$)([ ]|$)*)+\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^|\
|
||||||
|
(help|info)[ ]*$|\
|
||||||
|
(add|join|leave|sign( [^ ]+ |-)?o(n|ff)|(un|de)?-?sub)\>)|\
|
||||||
|
([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^|\
|
||||||
|
.*( (join|leave|add .* to|(delete|remove) .* from|\
|
||||||
|
(take|sign|get) .* off|(put|sign) .* on) .* [a-z-]*list|\
|
||||||
|
(un-?|sub?)scri(be|ption))\>|\
|
||||||
|
^^)
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Then check to see if the sender is on the accept list (if foreign_submit
|
||||||
|
# is not set).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* 9876543210^0 foreign_submit ?? y
|
||||||
|
* 2^0 ? formail -X"From " -xFrom: -xReply-To: -xSender: -xResent-From: \
|
||||||
|
-xResent-Reply-To: -xResent-Sender: -xReturn-Path: | \
|
||||||
|
multigram -b1 -m -l$submit_threshold -L$domain \
|
||||||
|
-x$listaddr -x$listreq accept accept2
|
||||||
|
{
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_SUBMIT_10
|
||||||
|
|
||||||
|
:0
|
||||||
|
* moderated_flag ?? y
|
||||||
|
{
|
||||||
|
:0 Bfw # contract header and body
|
||||||
|
* ^^Approved:.*$^
|
||||||
|
| sed -e '1,/^$/{' -e '/^$/d' -e '}'
|
||||||
|
|
||||||
|
:0
|
||||||
|
* !$^Approved:.*$moderator_PASSWORD
|
||||||
|
| formail -R"From X-Envelope-From:" -uDate: -iReturn-Receipt-To: \
|
||||||
|
-iRead-Receipt-To: -iAcknowledge-To: | \
|
||||||
|
$SENDMAIL $sendmailOPT `cat moderators`
|
||||||
|
|
||||||
|
:0 fhw
|
||||||
|
| formail -IApproved:
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Eliminate duplicate submissions by checking the Message-ID: field.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Wh :msgid.lock
|
||||||
|
| formail -q- -D $idcache_size msgid.cache
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if we need to autosubscribe anyone not on the dist list.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* force_subscribe ?? y
|
||||||
|
* !? if test y = "$moderated_flag" ;\
|
||||||
|
then formail -xFrom: -xSender: -xReply-To: ;\
|
||||||
|
else formail -X"From " -xFrom: -xReply-To: -xSender: -xResent-From: \
|
||||||
|
-xResent-Reply-To: -xResent-Sender: -xReturn-Path: ;\
|
||||||
|
fi | multigram -b1 -m -l$submit_threshold -L$domain \
|
||||||
|
-x$listaddr -x$listreq dist
|
||||||
|
{
|
||||||
|
|
||||||
|
#
|
||||||
|
# Yes, well, then check if the person isn't on the reject list.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* ? multigram -b1 -l$reject_threshold reject
|
||||||
|
{
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: Found on the reject list" \
|
||||||
|
-A "X-Diagnostic: `multigram -b1 -l$reject_threshold reject`"
|
||||||
|
|
||||||
|
HOST=continue_with_rc.request
|
||||||
|
}
|
||||||
|
|
||||||
|
LOCKFILE=tmp.lock
|
||||||
|
|
||||||
|
:0 whc
|
||||||
|
| formail -rtzc -xTo: >tmp.from
|
||||||
|
|
||||||
|
:0 Wc :dist.lock
|
||||||
|
| sed -e '/^$/,/^-- $/ d' | formail -I "Subject: auto subscribe" \
|
||||||
|
>tmp.request; subscribe <tmp.request && test ! -z "$subscribe_log" \
|
||||||
|
&& echo "rc.submit: auto subscribed" >>$subscribe_log
|
||||||
|
|
||||||
|
LOCKFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if this is a digested mailinglist. If yes, processing stops
|
||||||
|
# here and the mail will be added to the digest.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* digest_flag ?? y
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Forward the article back to the undigested list, if it hasn't
|
||||||
|
# come from there.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 c
|
||||||
|
* undigested_list ?? y
|
||||||
|
* $!^X-Loop: $\undigested_list
|
||||||
|
! $sendmailOPT $undigested_list
|
||||||
|
|
||||||
|
#
|
||||||
|
# Finally digest the mail.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 w :tmp.lock
|
||||||
|
| digest
|
||||||
|
}
|
||||||
|
|
||||||
|
ARCHIVE # Wipe ARCHIVE from the environment
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if we are the first mailinglist to distribute this message, if so
|
||||||
|
# archive the message.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0
|
||||||
|
* archive_hist ?? [1-9]
|
||||||
|
* !^X-Mailing-List:
|
||||||
|
{
|
||||||
|
:0 c
|
||||||
|
archive/latest/.
|
||||||
|
|
||||||
|
ARCHIVE=$LASTFOLDER # Remember where it was archived
|
||||||
|
|
||||||
|
#
|
||||||
|
# Truncate the archive to the correct number of files (and
|
||||||
|
# possibly other housekeeping chores to keep the archive
|
||||||
|
# current).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 c hi
|
||||||
|
| arch_trunc
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Main header munger for submissions passing through this list.
|
||||||
|
#
|
||||||
|
|
||||||
|
oldshellmetas="$SHELLMETAS" SHELLMETAS # Save a shell, procmail can
|
||||||
|
# do this one by itself.
|
||||||
|
:0 wfh
|
||||||
|
| formail -b -IFrom\ -IReceived: -IReturn-Receipt-To: -IErrors-To: \
|
||||||
|
-IX-Pmrqc: -IX-Confirm-Reading-To: -IX-Ack: -IAcknowledge-To: \
|
||||||
|
-IRead-Receipt-To: -IReturn-Receipt-Requested: -IX-Diagnostic: \
|
||||||
|
-iStatus: -iReturn-Path: -iX-Envelope-To: -iX-Envelope-From: \
|
||||||
|
-I"Precedence: list" -I"Resent-Sender: $listreq" \
|
||||||
|
-uDate: -aMessage-ID: -aResent-Message-ID: \
|
||||||
|
-a"To: $listaddr" -a"Resent-From: $listaddr" -A"X-Loop: $listaddr" \
|
||||||
|
-a"Subject: Unidentified subject!" ${reply_to:+"-a$reply_to"} \
|
||||||
|
-a"X-Mailing-List: <$listaddr> $ARCHIVE"
|
||||||
|
|
||||||
|
SHELLMETAS="$oldshellmetas" oldshellmetas
|
||||||
|
|
||||||
|
INCLUDERC=$RC_LOCAL_SUBMIT_20
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following recipe will distribute the message to the subscribers
|
||||||
|
# using the native $SENDMAIL, but only if you disabled the alternative
|
||||||
|
# sendmail (choplist).
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 w: dist.lock
|
||||||
|
* !alt_sendmail ?? .
|
||||||
|
! $sendmailOPT $listdist
|
||||||
|
|
||||||
|
#
|
||||||
|
# Alternate sendmail call (used by default), does not use the file-
|
||||||
|
# including -dist alias.
|
||||||
|
#
|
||||||
|
|
||||||
|
:0 Ew: dist.lock
|
||||||
|
| $alt_sendmail $SENDMAIL $sendmailOPT $sendmailOPTi
|
||||||
|
|
||||||
|
:0 wfh
|
||||||
|
| formail -A "X-Diagnostic: $SENDMAIL $listdist failed"
|
||||||
|
|
||||||
|
HOST=continue_with_rc.request
|
||||||
|
}
|
||||||
|
|
||||||
|
:0 E wfh
|
||||||
|
| formail -A "X-Diagnostic: Not on the accept list"
|
||||||
|
|
||||||
|
:0 A c
|
||||||
|
* ? test -f accept.txt
|
||||||
|
{
|
||||||
|
:0 fh
|
||||||
|
| formail -i"From: $listreq" -kbrtA"X-Loop: $listaddr" ; cat accept.txt
|
||||||
|
|
||||||
|
:0
|
||||||
|
! $sendmailOPT -t
|
||||||
|
}
|
||||||
|
|
||||||
|
} }
|
||||||
|
|
||||||
|
:0 fhw
|
||||||
|
* pass_diverts ?? y
|
||||||
|
* !^X-Diagnostic:
|
||||||
|
| formail -A "X-Diagnostic: Diverted & unprocessed"
|
||||||
|
|
||||||
|
HOST=continue_with_rc.request
|
|
@ -0,0 +1,119 @@
|
||||||
|
#
|
||||||
|
# Assign the fully qualified mail address of the maintainer of this list
|
||||||
|
# to "maintainer". If empty, request-mail will not be mailed to any
|
||||||
|
# maintainer and will be stored in the "request" file for this list.
|
||||||
|
#
|
||||||
|
|
||||||
|
maintainer = Olivier.Sirol@lip6.fr
|
||||||
|
|
||||||
|
#LOGABSTRACT=yes # uncomment in case of emergency
|
||||||
|
#VERBOSE=yes # uncomment in case of real emergency
|
||||||
|
|
||||||
|
size_limit = 1524288 # sanity cutoff value for submissions
|
||||||
|
|
||||||
|
idcache_size = 8192 # duplicate-msgid cache size in bytes
|
||||||
|
|
||||||
|
archive_hist = 20 # number of messages left archived
|
||||||
|
#archive_log = $LOGFILE # log file for archive retrievals
|
||||||
|
#subscribe_log = $LOGFILE # log file for administrivia
|
||||||
|
|
||||||
|
#maxhist = 32 # bounce history limit
|
||||||
|
#minbounce = 4 # no. of bounces before removal
|
||||||
|
#cutoff_bounce = 256 # lines to keep in bounce processing
|
||||||
|
|
||||||
|
#match_threshold= 30730 # for close matches to the list
|
||||||
|
#medium_threshold= 28672 # for not so close matches to the list
|
||||||
|
#loose_threshold= 24476 # for loosely finding your name
|
||||||
|
|
||||||
|
#auto_off_threshold= $medium_threshold # for auto-unsubscribing bouncers
|
||||||
|
#off_threshold = $loose_threshold # for unsubscribing
|
||||||
|
#reject_threshold= $match_threshold # for rejecting subscriptions
|
||||||
|
#submit_threshold= $medium_threshold # for permitting submissions
|
||||||
|
|
||||||
|
#unsub_assist
|
||||||
|
unsub_assist = 8 # uncomment (and change perhaps) this
|
||||||
|
# line to enable unsubscription
|
||||||
|
# assistance; it specifies the no. of
|
||||||
|
# multigram matches an unsuccessful
|
||||||
|
# unsubscriber will receive back
|
||||||
|
#foreign_submit = yes
|
||||||
|
##foreign_submit # uncomment this line if you
|
||||||
|
# want to restrict submitting to
|
||||||
|
# people on the accept list
|
||||||
|
#restrict_archive
|
||||||
|
##restrict_archive= yes # uncomment this line if you
|
||||||
|
# want to restrict archive retrievals
|
||||||
|
# to people on the accept list
|
||||||
|
#force_subscribe
|
||||||
|
force_subscribe= yes # uncomment to cause people to
|
||||||
|
# be autosubscribed upon first
|
||||||
|
# submission to the list
|
||||||
|
#auto_unsubscribe= yes
|
||||||
|
##auto_unsubscribe # uncomment to disable unattended
|
||||||
|
# unsubscription handling
|
||||||
|
#auto_subscribe = yes
|
||||||
|
##auto_subscribe # uncomment to disable unattended
|
||||||
|
# subscription handling
|
||||||
|
#auto_help
|
||||||
|
auto_help = yes # uncomment to enable default help
|
||||||
|
# responses to all undecipherable
|
||||||
|
# requests
|
||||||
|
#moderated_flag
|
||||||
|
##moderated_flag= yes # uncomment this to make the list
|
||||||
|
# moderated (you must create a
|
||||||
|
# `moderators' file for this to work)
|
||||||
|
# set moderator_PASSWORD to get
|
||||||
|
# stricter checking
|
||||||
|
#cc_requests
|
||||||
|
##cc_requests = yes # uncomment if you want subscribe
|
||||||
|
# and help requests to be Cc'd to
|
||||||
|
# the maintainer
|
||||||
|
#cc_unsubrequests
|
||||||
|
##cc_unsubrequests= yes # uncomment if you want unsubscribe
|
||||||
|
# requests to be Cc'd to the maintainer
|
||||||
|
#divertcheck = yes
|
||||||
|
##divertcheck # uncomment to disable the check for
|
||||||
|
# misfiled administrative requests
|
||||||
|
#pass_diverts
|
||||||
|
##pass_diverts = yes # uncomment to pass on administrative
|
||||||
|
# requests diverted from the normal
|
||||||
|
# list to the maintainer unprocessed
|
||||||
|
# (instead of trying to handle them)
|
||||||
|
#reply_to
|
||||||
|
##reply_to = "Resent-Reply-To: $listaddr" # uncomment (and perhaps change
|
||||||
|
# it to "Reply-To") to force replies
|
||||||
|
# to go to the list (discouraged)
|
||||||
|
# why discouraged? see:
|
||||||
|
# http://garcon.unicom.com/FAQ/reply-to-harmful.html
|
||||||
|
#digest_flag
|
||||||
|
##digest_flag = yes # uncomment this if you want digests
|
||||||
|
#digest_age = 262144 # maximum age of a digest in seconds
|
||||||
|
#digest_size = 32768 # maximum size of a digest in bytes
|
||||||
|
#undigested_list = $list@$domain # Reply-To: address for digests
|
||||||
|
|
||||||
|
#moderator_PASSWORD = # put the optional password for
|
||||||
|
# moderators here, this definition
|
||||||
|
# can contain regular expression magic
|
||||||
|
# characters (to support multiple
|
||||||
|
# passwords)
|
||||||
|
|
||||||
|
X_COMMAND = X-Command
|
||||||
|
X_COMMAND_PASSWORD = alcpass # put the literal password for
|
||||||
|
# X-Command mails here
|
||||||
|
|
||||||
|
#daemon_bias='100^0 ^From:.*daemon@ok' # You could set "daemon_bias" to
|
||||||
|
# positively discriminate some
|
||||||
|
# mail address not to be from a daemon. Either with a regexp as demonstrated
|
||||||
|
# or with more complicated recipes that simply set it to '100^0' or nothing.
|
||||||
|
|
||||||
|
#RC_LOCAL_SUBMIT_00 = rc.local.s00 # Uncomment (and change) these to
|
||||||
|
#RC_LOCAL_SUBMIT_10 = rc.local.s10 # call up customised local scripts
|
||||||
|
#RC_LOCAL_SUBMIT_20 = rc.local.s20 # at predefined points.
|
||||||
|
#RC_LOCAL_REQUEST_00 = rc.local.r00
|
||||||
|
#RC_LOCAL_REQUEST_10 = rc.local.r10
|
||||||
|
#RC_LOCAL_REQUEST_20 = rc.local.r20
|
||||||
|
#RC_LOCAL_REQUEST_30 = rc.local.r30
|
||||||
|
|
||||||
|
RC_CUSTOM # clear this one from the environment
|
||||||
|
# so that we include this file only
|
||||||
|
# once
|
|
@ -0,0 +1,10 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
YEAR_YY=`date +%y`
|
||||||
|
YEAR_YYYY=`date +%Y`
|
||||||
|
MAILL=$1
|
||||||
|
|
||||||
|
cd /users/largo2/webmastr/wwwroot/mailing-lists
|
||||||
|
|
||||||
|
/usr/local/bin/hypermail -c /users/largo1/czo/cvslargo/listes-rules/hypermail/.hmrc -p -i -u -x -l "${MAILL} '${YEAR_YY}" -d "${MAILL}/${YEAR_YYYY}"
|
||||||
|
|
|
@ -0,0 +1,323 @@
|
||||||
|
#
|
||||||
|
# hmrc.example:
|
||||||
|
#
|
||||||
|
# This is a sample Hypermail configuration file. If you wish
|
||||||
|
# to use it, copy it to a new filename and edit as appropriate
|
||||||
|
# for you list needs.
|
||||||
|
#
|
||||||
|
|
||||||
|
# hm_mbox = [ filename | NONE ]
|
||||||
|
#
|
||||||
|
# This is the default mailbox to read messages in from. Set this
|
||||||
|
# with a value of NONE to read from standard input as the default.
|
||||||
|
|
||||||
|
hm_mbox = NONE
|
||||||
|
|
||||||
|
# hm_label = [ Title | NONE ]
|
||||||
|
#
|
||||||
|
# This is the default title you want to call your archives.
|
||||||
|
# Set this to NONE to use the name of the input mailbox.
|
||||||
|
|
||||||
|
hm_label = NONE
|
||||||
|
|
||||||
|
# hm_archives = [ URL | NONE ]
|
||||||
|
#
|
||||||
|
# This creates a link in the archived index pages labeled
|
||||||
|
# "Other mail archives". Set this to NONE to omit such a link.
|
||||||
|
|
||||||
|
hm_archives = NONE
|
||||||
|
|
||||||
|
# hm_about = [ URL | NONE ]
|
||||||
|
#
|
||||||
|
# This creates a link in the archived index pages labeled
|
||||||
|
# "About this archive". Set this to NONE to omit such a link.
|
||||||
|
|
||||||
|
hm_about = NONE
|
||||||
|
|
||||||
|
# hm_dir = [ directory path | NONE ]
|
||||||
|
#
|
||||||
|
# This is the default directory that Hypermail uses when creating
|
||||||
|
# and updating archives. If set to NONE, the directory will have the
|
||||||
|
# same name as the input mailbox.
|
||||||
|
|
||||||
|
hm_dir = NONE
|
||||||
|
|
||||||
|
# hm_defaultindex = [ thread | date | subject | author ]
|
||||||
|
#
|
||||||
|
# This indicates the default type of main index hypermail will generate.
|
||||||
|
# Users see this type of index when the archive is first accessed.
|
||||||
|
|
||||||
|
hm_defaultindex = thread
|
||||||
|
|
||||||
|
# hm_reverse = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Setting this variable to 1 will reverse-sort the article
|
||||||
|
# entries in the date and thread index files by the date they
|
||||||
|
# were received. That is, the most recent messages will appear
|
||||||
|
# at the top of the index rather than the other way around.
|
||||||
|
# Set to 0 if you want latest message on the bottom for date and
|
||||||
|
# thread indexes.
|
||||||
|
|
||||||
|
hm_reverse = 1
|
||||||
|
|
||||||
|
# hm_usetable = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Setting this variable to 1 will tell Hypermail to generate an
|
||||||
|
# index menu at the top and bottom of each page in a table format.
|
||||||
|
# Set to 0 if you want the standard Hypermail page look and feel.
|
||||||
|
|
||||||
|
hm_usetable = 0
|
||||||
|
|
||||||
|
# hm_showprogress = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set to 1 to show progress as Hypermail works. Set to 0 for silent
|
||||||
|
# operation. Output goes to standard output.
|
||||||
|
|
||||||
|
hm_showprogress = 1
|
||||||
|
|
||||||
|
# hm_show_msg_links = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set this to 1 if you want links to Next, Prev, Next thread, Reply to,
|
||||||
|
# etc, displayed on the article pages. Setting this to 0 disables these
|
||||||
|
# links from appearing on the generated pages.
|
||||||
|
|
||||||
|
hm_show_msg_links = 1
|
||||||
|
|
||||||
|
# hm_showheaders = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set this to 1 to show the RFC 822 message headers To:,
|
||||||
|
# From:, and Subject: information found in the email messages.
|
||||||
|
# Set to 0 if you want to hide mail headers in articles.
|
||||||
|
|
||||||
|
hm_showheaders = 0
|
||||||
|
|
||||||
|
# hm_showreplies = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set to 1 to show all replies to a message as links in article files.
|
||||||
|
# If this is set to 0 no reply links are generated.
|
||||||
|
|
||||||
|
hm_showreplies = 1
|
||||||
|
|
||||||
|
# hm_showhtml = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set this to 1 to show the articles in a proportionally-spaced
|
||||||
|
# font rather than a fixed-width (monospace) font. Setting this
|
||||||
|
# option to 1 also tells Hypermail to attempt to italicize quoted
|
||||||
|
# passages in articles.
|
||||||
|
|
||||||
|
hm_showhtml = 0
|
||||||
|
|
||||||
|
# hm_showbr = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set this to 1 if you want article lines to end with the <br> tag.
|
||||||
|
# Else set to 0 to have non-quoted lines word-wrap. Only takes effect
|
||||||
|
# if hm_showhtml is set to 1.
|
||||||
|
|
||||||
|
hm_showbr = 1
|
||||||
|
|
||||||
|
# hm_iquotes = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set this to 1 if you want quoted lines to be shown in italics. Only
|
||||||
|
# take effect if hm_showhtml is set to 1.
|
||||||
|
|
||||||
|
hm_iquotes = 1
|
||||||
|
|
||||||
|
# hm_showhr = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set to 1 if you want horizontal rules <HR> before and after
|
||||||
|
# the articles. Set to 0 if you don't.
|
||||||
|
|
||||||
|
hm_showhr = 1
|
||||||
|
|
||||||
|
# hm_overwrite = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set to 1 to make Hypermail overwrite existing archives by default.
|
||||||
|
|
||||||
|
hm_overwrite = 0
|
||||||
|
|
||||||
|
# hm_increment = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Define as 1 to read in one article only and update existing archives.
|
||||||
|
# Define as 0 for it to read and process entire mailboxes.
|
||||||
|
|
||||||
|
hm_increment = 1
|
||||||
|
|
||||||
|
# hm_thrdlevels = number
|
||||||
|
#
|
||||||
|
# This specifies the number of thread levels to outline in the thread
|
||||||
|
# index. For instance, if hm_thrdlevels is 2, replies to messages will
|
||||||
|
# be indented once in the index, but replies to replies, etc., will only
|
||||||
|
# be indented once as well. The normal value is 2.
|
||||||
|
|
||||||
|
hm_thrdlevels = 2
|
||||||
|
|
||||||
|
# hm_eurodate = [ 0 | 1 ]
|
||||||
|
#
|
||||||
|
# Set this to reflect how you want dates displayed in the index files.
|
||||||
|
# Set as 1 to to use European date format "DD MM YYYY".
|
||||||
|
# Define as 0 to to use American date format "MM DD YYYY".
|
||||||
|
|
||||||
|
hm_eurodate = 1
|
||||||
|
|
||||||
|
# hm_dirmode = octal number
|
||||||
|
#
|
||||||
|
# This is an octal number representing the rwx modes that new directories
|
||||||
|
# are set to when they are created. If the archives will be made publically
|
||||||
|
# available, it's a good idea to define this as 0755. This must be an octal
|
||||||
|
# number.
|
||||||
|
|
||||||
|
hm_dirmode = 0755
|
||||||
|
|
||||||
|
# hm_filemode = octal number
|
||||||
|
#
|
||||||
|
# This is an octal number representing the permission modes that new files
|
||||||
|
# are set to when they are created. If the archives will be made publically
|
||||||
|
# available, it's a good idea to define this as 0644. This must be an octal
|
||||||
|
# number.
|
||||||
|
|
||||||
|
hm_filemode = 0644
|
||||||
|
|
||||||
|
# hm_mailcommand = [ direct mailto | cgi-bin script path | NONE ]
|
||||||
|
#
|
||||||
|
# This is the mail command that email links go to, for instance
|
||||||
|
# "mailto:$TO" or "/cgi-bin/mail?to=$TO&replyto=$ID&subject=$SUBJECT"
|
||||||
|
#
|
||||||
|
# In constructing this command, you can specify variables:
|
||||||
|
#
|
||||||
|
# $TO : the email address of the person you're sending mail to.
|
||||||
|
# $ID : the ID of the message you're replying to.
|
||||||
|
# $SUBJECT: the subject you're replying to.
|
||||||
|
#
|
||||||
|
# NONE disables mailcommand usage.
|
||||||
|
|
||||||
|
hm_mailcommand = mailto:$TO?subject=$SUBJECT
|
||||||
|
|
||||||
|
# hm_mailto = [ email-address | NONE ]
|
||||||
|
#
|
||||||
|
# The address of the contact point that is put in the HTML header line
|
||||||
|
# <LINK REV=made HREF=mailto:hm_mailto>
|
||||||
|
#
|
||||||
|
# The <LINK...> header can be disabled by default by setting
|
||||||
|
# mailto to NONE.
|
||||||
|
|
||||||
|
hm_mailto = czo@asim.lip6.fr
|
||||||
|
|
||||||
|
# hm_domainaddr = [ domainname | NONE ]
|
||||||
|
#
|
||||||
|
# Domain-ize Addresses -- addresses appearing in the RFC822 field
|
||||||
|
# which lack hostname can't be made into proper HREFs. Because the
|
||||||
|
# MTA resides on the same host as the list, it is often not required
|
||||||
|
# to domain-ize these addresses for delivery. In such cases, hypermail
|
||||||
|
# will add the DOMAINADDR to the email address.
|
||||||
|
|
||||||
|
hm_domainaddr = asim.lip6.fr
|
||||||
|
|
||||||
|
# hm_body = [ HTML <BODY> statement | NONE ]
|
||||||
|
#
|
||||||
|
# Set this to the <BODY> line to use when generating the HTML pages.
|
||||||
|
# Set to "NONE" to use the builtin <BODY> line by default.
|
||||||
|
|
||||||
|
#hm_body = <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
|
||||||
|
hm_body = NONE
|
||||||
|
|
||||||
|
# hm_hmail = [ Mailing List Submission Address | NONE ]
|
||||||
|
#
|
||||||
|
# Set this to the list's submission address. When enabled, this can be
|
||||||
|
# used to submit a new message to the list served by the hypermail archive.
|
||||||
|
# "NONE" means don't use it.
|
||||||
|
|
||||||
|
hm_hmail = hypermail@landfield.com
|
||||||
|
|
||||||
|
# hm_ihtmlheader = [ path to index header template file | NONE ]
|
||||||
|
#
|
||||||
|
# Set this to the path to the Index header template file. The template
|
||||||
|
# file contains HTML directives and substitution cookies for runtime
|
||||||
|
# expansion.
|
||||||
|
|
||||||
|
hm_ihtmlheaderfile = "/users/largo1/czo/cvslargo/listes-rules/hypermail/hypermail-index.hyp"
|
||||||
|
|
||||||
|
|
||||||
|
# hm_ihtmlfooter = [ path to index footer template file | NONE ]
|
||||||
|
#
|
||||||
|
# Set this to the path to the Index footer template file. The template
|
||||||
|
# file contains HTML directives and substitution cookies for runtime
|
||||||
|
# expansion.
|
||||||
|
|
||||||
|
hm_ihtmlfooterfile = "/users/largo1/czo/cvslargo/listes-rules/hypermail/hypermail-footer.hyp"
|
||||||
|
|
||||||
|
# hm_mhtmlheader = [ path to message header template file | NONE ]
|
||||||
|
#
|
||||||
|
# Set this to the path to the Message header template file. The template
|
||||||
|
# file contains HTML directives and substitution cookies for runtime
|
||||||
|
# expansion.
|
||||||
|
|
||||||
|
hm_mhtmlheaderfile = "/users/largo1/czo/cvslargo/listes-rules/hypermail/hypermail-msg.hyp"
|
||||||
|
|
||||||
|
# hm_mhtmlfooter = [ path to message footer template file | NONE ]
|
||||||
|
#
|
||||||
|
# Set this to the path to the Message footer template file. The template
|
||||||
|
# file contains HTML directives and substitution cookies for runtime
|
||||||
|
# expansion.
|
||||||
|
|
||||||
|
hm_mhtmlfooterfile = "/users/largo1/czo/cvslargo/listes-rules/hypermail/hypermail-footer.hyp"
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Multiline variables
|
||||||
|
######################
|
||||||
|
|
||||||
|
# hm_show_headers = list of RFC 822 Headers to display if hm_showheaders
|
||||||
|
# is set to 1 (TRUE)
|
||||||
|
#
|
||||||
|
# This is the list of headers to be displayed. They can be listed
|
||||||
|
# comma or space separated all on a single line such as
|
||||||
|
# hm_show_headers = From,Subject,Date,Message-ID
|
||||||
|
# or they can be listed individually or any combination of.
|
||||||
|
# hm_show_headers = From
|
||||||
|
# hm_show_headers = Subject
|
||||||
|
# hm_show_headers = Date
|
||||||
|
# hm_show_headers = Message-ID
|
||||||
|
|
||||||
|
hm_show_headers = From,Subject,Date,Message-ID
|
||||||
|
|
||||||
|
# hm_inline_types = indicate which types of data should be inlined
|
||||||
|
#
|
||||||
|
# This is the list of MIME types that you want inlined as opposed to
|
||||||
|
# simply linked into the message. They can be listed individually on
|
||||||
|
# multiple lines or comma or space separated on a single line.
|
||||||
|
# hm_inline_types = image/gif image/jpeg
|
||||||
|
# or
|
||||||
|
# hm_inline_types = image/gif
|
||||||
|
# hm_inline_types = image/jpeg
|
||||||
|
|
||||||
|
hm_inline_types = image/gif image/jpeg
|
||||||
|
|
||||||
|
# hm_ignore_types = indicate which types of attachments to ignore and
|
||||||
|
# not process.
|
||||||
|
#
|
||||||
|
# This is the list of MIME attachment types that you do not want to
|
||||||
|
# do anything with. They are quietly ignored. They can be listed
|
||||||
|
# individually on multiple lines or comma or space separated on a
|
||||||
|
# single line.
|
||||||
|
# hm_ignore_types = text/x-vcard application/x-msdownload
|
||||||
|
# or
|
||||||
|
# hm_ignore_types = text/x-vcard
|
||||||
|
# hm_ignore_types = application/x-msdownload
|
||||||
|
|
||||||
|
hm_ignore_types = text/x-vcard
|
||||||
|
hm_ignore_types = application/x-msdownload
|
||||||
|
|
||||||
|
# hm_prefered_types = indicate which of the alternative types to use
|
||||||
|
#
|
||||||
|
# This is the list of alternative MIME types that you want used when
|
||||||
|
# displaying the data. This can be listed individually on multiple
|
||||||
|
# lines or comma or space separated on a single line.
|
||||||
|
# hm_prefered_types = text/plain text/html
|
||||||
|
# or
|
||||||
|
# hm_prefered_types = text/plain
|
||||||
|
# hm_prefered_types = text/html
|
||||||
|
# Order is important.
|
||||||
|
#
|
||||||
|
# NOTE: This option is not fully implemented at present.
|
||||||
|
|
||||||
|
hm_prefered_types = text/plain text/html
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
<P ALIGN=CENTER><IMG SRC="/ssi/bar.gif" ALT="---------"></P>
|
||||||
|
|
||||||
|
<SMALL><SMALL>\n<EM>This archive was generated by
|
||||||
|
%u.
|
||||||
|
</EM></SMALL></SMALL>
|
||||||
|
<!--#include virtual="/ssi/asim.footer/" -->
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<META NAME="description" content="Hypermail Development List Archives">
|
||||||
|
<META NAME="keywords" content="hypermail Archives, hypermail, email, mail2html, Email Archives">
|
||||||
|
<TITLE>%l: %s</TITLE>
|
||||||
|
<LINK REV="made" HREF="mailto:%m">
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<!--#include virtual="/ssi/asim.header/" -->
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H1 ALIGN=CENTER>%l<BR>%s</H1>
|
||||||
|
<P ALIGN=CENTER><IMG SRC="/ssi/bar.gif" ALT="---------"></P>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<META NAME="description" content="Hypermail Development List Archives">
|
||||||
|
<META NAME="keywords" content="hypermail Archives, hypermail, email, mail2html, Email Archives">
|
||||||
|
%A
|
||||||
|
%S
|
||||||
|
<TITLE>%l: %s</TITLE>
|
||||||
|
<LINK REV="made" HREF="mailto:%m">
|
||||||
|
</HEAD>
|
||||||
|
<!--#include virtual="/ssi/asim.header/" -->
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H1 ALIGN=CENTER>%s</H1>
|
||||||
|
<P ALIGN=CENTER><IMG SRC="/ssi/bar.gif" ALT="---------"></P>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
</FONT>
|
|
@ -0,0 +1,57 @@
|
||||||
|
#! /bin/sh
|
||||||
|
#
|
||||||
|
# Author : Olivier.Sirol@lip6.fr
|
||||||
|
# Date : fev 1999
|
||||||
|
# Description :
|
||||||
|
#
|
||||||
|
# (C) Czo 1998,99
|
||||||
|
# This code is released under GPL
|
||||||
|
#
|
||||||
|
# $Id: hypreset,v 1.1 2000/04/05 15:09:45 czo Exp $
|
||||||
|
#
|
||||||
|
|
||||||
|
PATH=/asim/gnu/bin:/usr/ucb:/usr/etc:/bin:/usr/local/bin:${PATH}
|
||||||
|
TMPWORKDIR=/tmp/hypczo
|
||||||
|
WML=/users/largo2/webmastr/wwwroot/mailing-lists
|
||||||
|
LOCK=/usr/local/listes/.etc/rc.lock
|
||||||
|
HMRC=/users/largo1/czo/cvslargo/listes-rules/hypermail/.hmrc
|
||||||
|
|
||||||
|
#lock
|
||||||
|
touch $LOCK
|
||||||
|
|
||||||
|
rm -fr "$TMPWORKDIR"
|
||||||
|
cd $WML
|
||||||
|
|
||||||
|
echo "--> Sleep 5 sec and check..."
|
||||||
|
sleep 5
|
||||||
|
RES=`ps auxww | grep "hypermail" | grep -v grep`
|
||||||
|
if [ "$?" -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "ERROR: hypermail running"
|
||||||
|
else
|
||||||
|
echo "--> generating..."
|
||||||
|
|
||||||
|
for MBOX in alliance-programmers alliance-support alliance-users archi help
|
||||||
|
#for MBOX in alliance-programmers
|
||||||
|
do
|
||||||
|
echo "--> $MBOX..."
|
||||||
|
mkdir -p "$TMPWORKDIR"
|
||||||
|
cd "$WML/$MBOX"
|
||||||
|
find . -type d -maxdepth 1 -mindepth 1 | xargs rm -fr dummy
|
||||||
|
|
||||||
|
cat "$WML/$MBOX/$MBOX.mbox" | formail -s $WML/splitmailbyyear
|
||||||
|
|
||||||
|
echo %%%%%%%%%%%%%%%%%%%
|
||||||
|
for YEARBOX in `find /tmp/hypczo -type f -printf "%P\n"`
|
||||||
|
do
|
||||||
|
echo $YEARBOX
|
||||||
|
/usr/local/bin/hypermail -c $HMRC -p -x -l "$MBOX '$YEARBOX" -d "$WML/$MBOX/$YEARBOX" -m "/tmp/hypczo/$YEARBOX"
|
||||||
|
done
|
||||||
|
rm -fr "$TMPWORKDIR"
|
||||||
|
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f $LOCK
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
gawk '
|
||||||
|
BEGIN {FIRST=1;}
|
||||||
|
{
|
||||||
|
if (FIRST)
|
||||||
|
{
|
||||||
|
FIRST=0;
|
||||||
|
# ca cest du bug...
|
||||||
|
if ( $0 ~ /no email/ )
|
||||||
|
gsub(/\(no email\)/,"NOMAIL");
|
||||||
|
|
||||||
|
YEAR=$7
|
||||||
|
}
|
||||||
|
|
||||||
|
print $0 >> "/tmp/hypczo/"YEAR ;
|
||||||
|
}'
|
|
@ -0,0 +1,147 @@
|
||||||
|
#!/usr/local/bin/perl
|
||||||
|
#######################################################################
|
||||||
|
# Audric's Counter v1.0 FREEWARE
|
||||||
|
# Full copyright and legal speak at:
|
||||||
|
# http://www.aimsweb.com/goodies/counter2.htm
|
||||||
|
#
|
||||||
|
# Inspired on Matt's Wright Counter program
|
||||||
|
# Matt's Script Archive http://www.worldwidemart.com/scripts/
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
# Define Variables
|
||||||
|
|
||||||
|
### FILE AND DIRECTORY LOCATIONS, REFERERS ###
|
||||||
|
$count_file = "/users/cao7/czo/public_html/cgi-bin/count.txt"; # must be chmod 777
|
||||||
|
$digit_dir = "/ssi/";
|
||||||
|
$access_log = "/users/cao7/czo/public_html/cgi-bin/access_log"; # must be chmod 777
|
||||||
|
$error_log = "/users/cao7/czo/public_html/cgi-bin/error_log"; # must be chmod 777
|
||||||
|
|
||||||
|
# If someone wants to use your counter from theri pages and their domain
|
||||||
|
# is not contained into @refers show them this gif.
|
||||||
|
$bad_referer_img = "http://www.aimsweb.com/images/bad_referer.gif";
|
||||||
|
|
||||||
|
# Domains you want to allow to use this script
|
||||||
|
@referers=(
|
||||||
|
"lip6.fr",
|
||||||
|
"127.0.0.1"
|
||||||
|
);
|
||||||
|
|
||||||
|
### IMAGE SETTINGS ###
|
||||||
|
# If you change the 0-9.gif set make sure you chage those accordingly
|
||||||
|
$width = "9";
|
||||||
|
$height = "20";
|
||||||
|
|
||||||
|
### OPTIONS ###
|
||||||
|
$uselog = "1"; # 1 = YES; 0 = NO
|
||||||
|
|
||||||
|
# Done - You shouldn't need to change anything below this line..
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Get the Date For Logging Purposes
|
||||||
|
if ($uselog == 1) {
|
||||||
|
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
||||||
|
$mon++; # fixes Matt's Counter bug
|
||||||
|
if ($sec < 10) { $sec = "0$sec"; }
|
||||||
|
if ($min < 10) { $min = "0$min"; }
|
||||||
|
if ($hour < 10) { $hour = "0$hour"; }
|
||||||
|
if ($mday < 10) { $mday = "0$mday"; }
|
||||||
|
if ($mon < 10) { $monc = "0$mon"; }
|
||||||
|
$date = "$hour\:$min\:$sec $mon/$mday/$year";
|
||||||
|
}
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Make Sure People Aren't Messing With the Counter From Other Web Pages
|
||||||
|
#&check_referer;
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Get the Counter Number And Write New One to File
|
||||||
|
&get_num;
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Determine Length of Counter Number
|
||||||
|
# Set Individual Counter Numbers Into Associative Array
|
||||||
|
$savedcount=$count;
|
||||||
|
$num = $length = length($count);
|
||||||
|
while ($num > 0) {
|
||||||
|
$CHAR{$num} = chop($count);
|
||||||
|
$num--;
|
||||||
|
}
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Generates HTML to use pre-generated GIFs
|
||||||
|
$j = 1;
|
||||||
|
$myNumber="";
|
||||||
|
while ($j <= $length) {
|
||||||
|
$myNumber .= "<img src=\"$digit_dir$CHAR{$j}\.gif\" border=0 width=$width height=$height>";
|
||||||
|
$j++;
|
||||||
|
}
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Write the generated HTML to STDOUT
|
||||||
|
print "Content-Type: text/html\n\n";
|
||||||
|
print "<table border=0 cellspacing=0 cellpadding=0><tr><td>$myNumber</td></tr></table>\n";
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Log the Counter Access
|
||||||
|
if ($uselog == 1) {
|
||||||
|
&log_access;
|
||||||
|
}
|
||||||
|
|
||||||
|
exit;
|
||||||
|
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# SUBROUTINES
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
sub check_referer {
|
||||||
|
if (@referers && $ENV{'HTTP_REFERER'}) {
|
||||||
|
foreach $referer (@referers) {
|
||||||
|
if ($ENV{'HTTP_REFERER'} =~ /$referer/) {
|
||||||
|
$ref = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$ref = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ref != 1) {
|
||||||
|
print "Content-Type: text/html\n\n $bad_referer_img\n\n";
|
||||||
|
|
||||||
|
if ($uselog == 1) {
|
||||||
|
open(LOG,">>$error_log") || die "Can't Open User Error Log: $!\n";
|
||||||
|
print LOG "$error: $ENV{'REMOTE_HOST'} [$date] $ENV{'HTTP_REFERER'} - $ENV{'HTTP_USER_AGENT'}\n";
|
||||||
|
close(LOG);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#################
|
||||||
|
sub get_num {
|
||||||
|
open(COUNT,"$count_file") || die "Can't Open Count Data File: $!\n";
|
||||||
|
$count = <COUNT>;
|
||||||
|
close(COUNT);
|
||||||
|
if ($count =~ /\n$/) {
|
||||||
|
chop($count);
|
||||||
|
}
|
||||||
|
|
||||||
|
$count++;
|
||||||
|
|
||||||
|
open(COUNT,">$count_file") || die "Can't Open Count Data File For Writing: $!\n";
|
||||||
|
print COUNT "$count";
|
||||||
|
close(COUNT);
|
||||||
|
}
|
||||||
|
|
||||||
|
#################
|
||||||
|
sub log_access {
|
||||||
|
open(LOG,">>$access_log") || die "Can't Open User Access Log: $!\n";
|
||||||
|
print LOG "[$date] $ENV{'HTTP_REFERER'} - $ENV{'REMOTE_HOST'} - $ENV{'HTTP_USER_AGENT'}\n";
|
||||||
|
close(LOG);
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
#!/usr/local/bin/perl -w
|
||||||
|
use CGI;
|
||||||
|
|
||||||
|
#start_multipart_form();
|
||||||
|
$query = new CGI;
|
||||||
|
|
||||||
|
|
||||||
|
$TMP="/tmp/ExecAsimut.$$" ;
|
||||||
|
|
||||||
|
mkdir ($TMP , 0777) ;
|
||||||
|
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
#while (($key, $val) = each %ENV) {
|
||||||
|
# print "$key = $val<BR>\n";
|
||||||
|
#}
|
||||||
|
|
||||||
|
print "<HTML>\n";
|
||||||
|
print "<head>\n";
|
||||||
|
print "<Title> Simulation Asimut</Title>\n";
|
||||||
|
print "</head>\n";
|
||||||
|
print "<body>\n";
|
||||||
|
print "<PRE>\n";
|
||||||
|
|
||||||
|
# Read a text file and print it out
|
||||||
|
# while (<$filename>) {
|
||||||
|
# print "$_<BR>\n\n";
|
||||||
|
# }
|
||||||
|
|
||||||
|
# $type = $query->uploadInfo($filename)->{'Content-Type'};
|
||||||
|
# unless ($type eq 'text/html') {
|
||||||
|
# die "HTML FILES ONLY!";
|
||||||
|
# }
|
||||||
|
|
||||||
|
$filename = $query->param('vbe');
|
||||||
|
#print "<BR><BR>$filename<BR>\n\n";
|
||||||
|
|
||||||
|
# Copy a binary file to somewhere safe
|
||||||
|
open (OUTFILE,">>$TMP/description.vbe");
|
||||||
|
while ($bytesread=read($filename,$buffer,1024)) {
|
||||||
|
print OUTFILE $buffer;
|
||||||
|
}
|
||||||
|
close (OUTFILE);
|
||||||
|
|
||||||
|
$filename = $query->param('pat');
|
||||||
|
|
||||||
|
open (OUTFILE,">>$TMP/unproc_patterns.pat");
|
||||||
|
while ($bytesread=read($filename,$buffer,1024)) {
|
||||||
|
print OUTFILE $buffer;
|
||||||
|
}
|
||||||
|
close (OUTFILE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#exec ( "( sleep 50 ; /asim/gnu/bin/rm -fr $TMP ) & " ) ;
|
||||||
|
#print "<BR>Exec done...\n<BR>";
|
||||||
|
|
||||||
|
open ( RESULT, "( cd $TMP ; . /users/soft5/newlabo/alliance/share/etc/alc_env.sh ; asimut -b description unproc_patterns res_patterns ) 2>&1 |" );
|
||||||
|
|
||||||
|
while (<RESULT>) {
|
||||||
|
print ;
|
||||||
|
}
|
||||||
|
close RESULT ;
|
||||||
|
print "<BR>done...\n<BR>";
|
||||||
|
print "<BR>Vous pouvez recuper le fichier de pat simulé <a href=$TMP/res_patterns.pat>ici</a>\n<BR>";
|
||||||
|
print "</PRE>\n";
|
||||||
|
|
||||||
|
|
||||||
|
print "</body>\n";
|
||||||
|
print "</HTML>\n";
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
#!/usr/local/bin/bash
|
||||||
|
|
||||||
|
# disable filename globbing
|
||||||
|
set -f
|
||||||
|
|
||||||
|
echo Content-type: text/plain
|
||||||
|
echo
|
||||||
|
|
||||||
|
# echo "argc is '"$#"' argv is '"$*"'"
|
||||||
|
# pwd
|
||||||
|
|
||||||
|
# echo $REQUEST_URI
|
||||||
|
|
||||||
|
URI="${DOCUMENT_ROOT}${REQUEST_URI}"
|
||||||
|
|
||||||
|
res=`echo $URI | grep \/$`
|
||||||
|
if [ X"$res"Y != XY ]
|
||||||
|
then
|
||||||
|
URI=${URI}index.html
|
||||||
|
fi
|
||||||
|
|
||||||
|
URI_ROOT=`echo $URI | sed 's,\/[^\/]*$,/,'`
|
||||||
|
URI_DOC=`echo $URI | sed 's,^.*\/,,' | sed 's,\.gb\.html$,,' | sed 's,\.fr\.html$,,' | sed 's,\.html$,,'`
|
||||||
|
|
||||||
|
#echo $URI_ROOT
|
||||||
|
#echo $URI_DOC
|
||||||
|
|
||||||
|
FILE0="${URI_ROOT}${URI_DOC}.html"
|
||||||
|
FILE1="${URI_ROOT}${URI_DOC}.fr.html"
|
||||||
|
FILE2="${URI_ROOT}${URI_DOC}.gb.html"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f "$FILE0" -a -f "$FILE1" -a -f "$FILE2" ]
|
||||||
|
then
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
<Center>
|
||||||
|
<A href=${URI_DOC}.fr.html><img src="http://www-asim.lip6.fr/ssi/flag_fr.gif" alt="[FRENCH]" width="34" height="27" border=0 ></A> <A href=${URI_DOC}.gb.html><img src="http://www-asim.lip6.fr/ssi/flag_gb.gif" alt="[ENGLISH]" width="34" height="27" border=0></A>
|
||||||
|
<br clear=all>
|
||||||
|
</Center>
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type"
|
||||||
|
content="text/html; charset=iso-8859-1">
|
||||||
|
<title></title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<!--#include virtual="/ssi/asim.header/" -->
|
||||||
|
|
||||||
|
|
||||||
|
<body bgcolor="#FFFFFF">
|
||||||
|
|
||||||
|
<p><font color="#FF0000" size="7" face="verdana,arial,helvetica,helv"><strong>ERROR :</strong></font></p>
|
||||||
|
|
||||||
|
<p align="center"> </p>
|
||||||
|
|
||||||
|
<p align="center"><font face="verdana,arial,helvetica,helv"><strong>This page does not
|
||||||
|
exist. </strong></font></p>
|
||||||
|
|
||||||
|
<p align="center"><font face="verdana,arial,helvetica,helv"><strong>Please notify its
|
||||||
|
maintainer. </strong></font></p>
|
||||||
|
|
||||||
|
<p align="center"><font face="verdana,arial,helvetica,helv"><strong>( You can use the
|
||||||
|
link on the lower left corner of this page to mail its
|
||||||
|
maintainer. )</strong></font></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--#include virtual="/ssi/asim.footer/" -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/local/bin/perl -w
|
||||||
|
|
||||||
|
use Fcntl ':flock'; # import LOCK_* constants
|
||||||
|
|
||||||
|
$res=flock("/tmp/my.lock", LOCK_EX);
|
||||||
|
print $res;
|
||||||
|
system ("ls -alrt /tmp");
|
||||||
|
sleep 10;
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
__END__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sub lock {
|
||||||
|
flock(MBOX,LOCK_EX);
|
||||||
|
# and, in case someone appended
|
||||||
|
# while we were waiting...
|
||||||
|
seek(MBOX, 0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub unlock {
|
||||||
|
flock(MBOX,LOCK_UN);
|
||||||
|
}
|
||||||
|
|
||||||
|
open(MBOX, ">>/usr/spool/mail/$ENV{'USER'}")
|
||||||
|
or die "Can't open mailbox: $!";
|
||||||
|
|
||||||
|
lock();
|
||||||
|
print MBOX $msg,"\n\n";
|
||||||
|
unlock();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/local/bin/bash
|
||||||
|
|
||||||
|
# disable filename globbing
|
||||||
|
set -f
|
||||||
|
|
||||||
|
echo Content-type: text/plain
|
||||||
|
echo
|
||||||
|
|
||||||
|
# echo "argc is '"$#"' argv is '"$*"'"
|
||||||
|
|
||||||
|
if [ X"$USER_NAME"Y = XY ]
|
||||||
|
then
|
||||||
|
USER_NAME=czo
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ X"$USER_NAME"Y = XistesY ]
|
||||||
|
then
|
||||||
|
USER_NAME=czo
|
||||||
|
fi
|
||||||
|
|
||||||
|
FINGER=` finger -m $USER_NAME | head -1 | cut -d ":" -f3 | sed 's/-/ /g' `
|
||||||
|
|
||||||
|
echo '<A HREF="mailto:'$USER_NAME'@asim.lip6.fr">'$FINGER'</A>'
|
||||||
|
|
|
@ -0,0 +1,199 @@
|
||||||
|
#!/usr/local/bin/perl -w
|
||||||
|
|
||||||
|
#============================================================================
|
||||||
|
# Copyright 1999 Mikodocs Guide to HTML, http://www.mikodocs.com/
|
||||||
|
# You may distribute this program freely, but keep
|
||||||
|
# this notice in place.
|
||||||
|
#============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
#============================================================================
|
||||||
|
# modules
|
||||||
|
#
|
||||||
|
use strict;
|
||||||
|
use CGI;
|
||||||
|
use CGI::Carp 'fatalsToBrowser', 'croak';
|
||||||
|
$CGI::POST_MAX = 10240; # set maximum size of post
|
||||||
|
#
|
||||||
|
# modules
|
||||||
|
#============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
#============================================================================
|
||||||
|
# variables
|
||||||
|
#
|
||||||
|
my (
|
||||||
|
$query, # CGI query object
|
||||||
|
$maxFields, # maximum number of fields to accept
|
||||||
|
$rand, # random number for banners
|
||||||
|
$paramKey, # a single parameter name
|
||||||
|
$inputdata, # filehandle for uploaded files
|
||||||
|
@inputVals, # values for a field (they can send more than one)
|
||||||
|
$inputVal, # a single values for a field
|
||||||
|
$modval, # modified value of
|
||||||
|
$fileinfo, # uploaded file information
|
||||||
|
@params, # array of all fields sent
|
||||||
|
$key,$val, # key an value for $fileinfo hash
|
||||||
|
);
|
||||||
|
$query=CGI->new; # get CGI object
|
||||||
|
$maxFields=30; # maximum number of fields to accept
|
||||||
|
$rand = int(rand(100000)); # random number for ad banner
|
||||||
|
#
|
||||||
|
# variables
|
||||||
|
#============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
#============================================================================
|
||||||
|
# top of page
|
||||||
|
#
|
||||||
|
print $query->header;
|
||||||
|
print <<"(TOPOFPAGE)";
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<TITLE>Mikodocs Guide to HTML: My CGI</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H1>Env</H1>
|
||||||
|
|
||||||
|
(TOPOFPAGE)
|
||||||
|
#
|
||||||
|
# top of page
|
||||||
|
#============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
#============================================================================
|
||||||
|
# list
|
||||||
|
#
|
||||||
|
|
||||||
|
# get list of fields
|
||||||
|
@params = $query->param;
|
||||||
|
if (@params > $maxFields)
|
||||||
|
{croak "No more than $maxFields fields please"}
|
||||||
|
|
||||||
|
# open table if necessary
|
||||||
|
print "<HR><P><TABLE BORDER CELLPADDING=4>\n" if @params;
|
||||||
|
|
||||||
|
foreach $paramKey (@params)
|
||||||
|
{
|
||||||
|
print "<TR VALIGN=TOP>";
|
||||||
|
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
# value
|
||||||
|
#
|
||||||
|
$inputdata=$query->param($paramKey);
|
||||||
|
$fileinfo=$query->uploadInfo($inputdata);
|
||||||
|
|
||||||
|
# if it's an uploaded file
|
||||||
|
if (defined($fileinfo))
|
||||||
|
{
|
||||||
|
print "<TH>", tablesc($paramKey), "</TH>"; # name of field
|
||||||
|
print "<TD><TABLE BORDER BGCOLOR=\"#FFFFCC\" CELLPADDING=4>\n";
|
||||||
|
while (($key,$val) = each %{$fileinfo})
|
||||||
|
{
|
||||||
|
# content-disposition gives several pieces of
|
||||||
|
# information about the file, so let's parse it up
|
||||||
|
if (lc($key) eq "content-disposition")
|
||||||
|
{
|
||||||
|
my ($dis,@dispieces);
|
||||||
|
foreach $dis (split(m|\s*;\s*|,$val))
|
||||||
|
{
|
||||||
|
@dispieces=split("\s*=\s*",$dis,2);
|
||||||
|
next unless defined $dispieces[1];
|
||||||
|
next if $dispieces[0] =~ m|^name$|i;
|
||||||
|
print
|
||||||
|
"<TR><TD>",
|
||||||
|
tablesc($dispieces[0]),
|
||||||
|
"</TD><TD><CODE>",
|
||||||
|
tablesc($dispieces[1]),
|
||||||
|
"</CODE></TD></TR>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# else just print the field
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print
|
||||||
|
"<TR><TD>",
|
||||||
|
tablesc($key),
|
||||||
|
"</TD><TD><CODE>",
|
||||||
|
tablesc($val),
|
||||||
|
"</CODE></TD></TR>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# output the file size
|
||||||
|
seek($inputdata,0,2); # go to end of file handle
|
||||||
|
print "<TR><TD>size</TD><TD>",
|
||||||
|
tell($inputdata),
|
||||||
|
"</TD></TR>\n";
|
||||||
|
print "</TD></TABLE>"; #
|
||||||
|
}
|
||||||
|
|
||||||
|
# else it's not an uploaded file
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# get array of input values
|
||||||
|
@inputVals=$query->param($paramKey);
|
||||||
|
@inputVals=grep(tablesc($_),@inputVals);
|
||||||
|
|
||||||
|
# name of field
|
||||||
|
print "<TH ROWSPAN=",
|
||||||
|
scalar(@inputVals) ,">",
|
||||||
|
tablesc($paramKey), "</TH><TD><PRE>";
|
||||||
|
|
||||||
|
#out put value(s) for field
|
||||||
|
foreach $inputVal (@inputVals)
|
||||||
|
{$inputVal = tablesc($inputVal)}
|
||||||
|
print join("</PRE></TD></TR>\n<TR><TD><PRE>",@inputVals),
|
||||||
|
"</PRE></TD>";
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# value
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
|
||||||
|
print "</TR>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
# close table if necessary
|
||||||
|
print "</TABLE><P>\n" if @params;
|
||||||
|
|
||||||
|
#
|
||||||
|
# list
|
||||||
|
#============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
#============================================================================
|
||||||
|
# bottom of document
|
||||||
|
#
|
||||||
|
|
||||||
|
# ************************************************************************
|
||||||
|
# *** IF YOU COPY My CGI, ABSOLUTELY PLEASE DO NOT CHANGE THIS SECTION ***
|
||||||
|
# ************************************************************************
|
||||||
|
|
||||||
|
print <<"(END BOTTOM OF PAGE)";
|
||||||
|
<HR><P>
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
|
(END BOTTOM OF PAGE)
|
||||||
|
#
|
||||||
|
# bottom of document
|
||||||
|
#============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
#============================================================================
|
||||||
|
# tablesc
|
||||||
|
# return undefined or for space-only/empty string,
|
||||||
|
# otherwise change < > and & to character entities
|
||||||
|
#
|
||||||
|
sub tablesc
|
||||||
|
{
|
||||||
|
return " " if (! defined $_[0]) || ($_[0] !~ m|\S|);
|
||||||
|
$_[0] =~ s|&|&|gso;
|
||||||
|
$_[0] =~ s|<|<|gso;
|
||||||
|
$_[0] =~ s|>|>|gso;
|
||||||
|
$_[0];
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# tablesc
|
||||||
|
#============================================================================
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/local/bin/perl
|
||||||
|
$TMP=">/tmp/toto.123" ;
|
||||||
|
open sotie, $TMP ;
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
while (($key, $val) = each %ENV) {
|
||||||
|
print "$key = $val<BR>\n";
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
AuthName "Confidentiel ASIM (intranet)"
|
||||||
|
AuthType Basic
|
||||||
|
AuthUserFile /users/largo2/webmastr/ASIM-AuthUserFile
|
||||||
|
require user asim
|
|
@ -0,0 +1,82 @@
|
||||||
|
#!/asim/gnu/bin/perl
|
||||||
|
# (C) Copyright 1997,98 Czo <mailto:Olivier.Sirol@asim.lip6.fr>
|
||||||
|
# Parts (C) A.Fenyo
|
||||||
|
use CGI;
|
||||||
|
|
||||||
|
$ASIM_HEADER=`/bin/cat /users/soft5/webmastr/wwwroot/ssi/asim.header/index.gb.html`;
|
||||||
|
$ASIM_FOOTER=`/bin/cat /users/soft5/webmastr/wwwroot/ssi/asim.footer/index.gb.html`;
|
||||||
|
$SEARCH_HEADER=`/bin/cat /users/soft5/webmastr/wwwroot/ssi/search.header-intranet/index.gb.html`;
|
||||||
|
$SEARCH_MIDDLE=`/bin/cat /users/soft5/webmastr/wwwroot/ssi/search.middle-intranet/index.gb.html`;
|
||||||
|
$SEARCH_FOOTER=`/bin/cat /users/soft5/webmastr/wwwroot/ssi/search.footer/index.gb.html`;
|
||||||
|
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
|
||||||
|
$query = new CGI;
|
||||||
|
|
||||||
|
$str = $query->param('searchstring');
|
||||||
|
|
||||||
|
# Czo 990607 : autorise . et _
|
||||||
|
|
||||||
|
$str =~ s/[^a-zA-Z0-9-_ \*\.]//g;
|
||||||
|
$str =~ s/ -/ /g;
|
||||||
|
$str =~ s/^-/ /;
|
||||||
|
|
||||||
|
print "$ASIM_HEADER\n$SEARCH_HEADER\n";
|
||||||
|
print '<INPUT NAME=searchstring size=40 maxlength=800 name="searchstring" value="'.$str.'" > ';
|
||||||
|
print "$SEARCH_MIDDLE\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#system (date);
|
||||||
|
#print system ( "/usr/local/home/czo/local/FreeBSD/bin/swish-e -f /usr/local/home/czo/public_html/cgi-bin/index.swish-e -w $str" );
|
||||||
|
#$RET = `/usr/local/home/czo/local/FreeBSD/bin/swish-e -c /usr/local/home/czo/public_html/cgi-bin/index.swish-e -w $str`;
|
||||||
|
#print "<PRE>";
|
||||||
|
open RESULT, "/asim/gnu/bin/swish-e -m 40 -f /users/soft5/webmastr/wwwroot/cgi-bin/intranet.dat -w $str |";
|
||||||
|
|
||||||
|
|
||||||
|
$cpt = 0;
|
||||||
|
while (<RESULT>) {
|
||||||
|
# chop;
|
||||||
|
#print ;
|
||||||
|
|
||||||
|
m/err: no results/ && do
|
||||||
|
{
|
||||||
|
print '<font face="verdana,arial,helvetica" size=2><b>No</b> match found. </font>';
|
||||||
|
print '<font face="verdana,arial,helvetica" size=-1>';
|
||||||
|
};
|
||||||
|
|
||||||
|
m/^# Number of hits: (.*)/ && do
|
||||||
|
{
|
||||||
|
print '<font face="verdana,arial,helvetica" size=-1><b>'.$1.'</b> matches were found. </font>';
|
||||||
|
print '<font face="verdana,arial,helvetica" size=-1>';
|
||||||
|
};
|
||||||
|
|
||||||
|
m/^#/ && next;
|
||||||
|
|
||||||
|
|
||||||
|
m/^(.*) (.*) "(.*)" (.*)/ && (($res1, $res2, $res3, $res4) = ($1, $2, $3, $4)) && do
|
||||||
|
{
|
||||||
|
$cpt++;
|
||||||
|
$tmp1 = $res1/10; $tmp1 =~ s/^(.*)\..*/\1/;
|
||||||
|
$tmp = $res4/1024; $tmp =~ s/^(.*\..).*/\1/;
|
||||||
|
|
||||||
|
print '<P><b>'.$cpt.'. </b><font color="#0000FF"> ['.$tmp1.'%] </font> <a href="'.$res2.'"><b>'.$res3.'</b></a><br>
|
||||||
|
<font face="arial,helvetica" size=-2>[<b>URL:</b> '.$res2.']</font><br>
|
||||||
|
<font face="verdana,arial,helvetica" size=-2>Page size '.$tmp.' Kb</font><P>' ;
|
||||||
|
#Last modified 7-Oct-97 -
|
||||||
|
|
||||||
|
# $RR =`/asim/gnu/bin/lynxx -dump $res2 | /asim/gnu/bin/grep -1 $str | /asim/gnu/bin/sed -e 's/\\($str\\)/\\<B\\>\\1\\<\\/B\\>/g'`;
|
||||||
|
# print "<TD><SMALL><PRE>Containing : \n$RR\n</PRE></SMALL></TD>\n" ;
|
||||||
|
};
|
||||||
|
# print '<TR><TD align=right>'.$cpt.'- </TD><TD> <A HREF="http://mpc.lip6.fr'.$file.'">http://mpc.lip6.fr'.$file.'</A><BR></TR>';
|
||||||
|
#
|
||||||
|
}
|
||||||
|
#
|
||||||
|
close(RESULT);
|
||||||
|
|
||||||
|
|
||||||
|
print "$SEARCH_FOOTER\n$ASIM_FOOTER\n";
|
||||||
|
exit 0
|
||||||
|
__END__
|
||||||
|
|
|
@ -0,0 +1,356 @@
|
||||||
|
1999/10/29 10:28:51 132.227.103.10 "Whole Asim Site" "czo" 774
|
||||||
|
1999/10/29 10:29:26 132.227.103.10 "Whole Asim Site" "jacomme" 102
|
||||||
|
1999/10/29 10:29:38 132.227.103.10 "Whole Asim Site" "ludo or jacomme " 113
|
||||||
|
1999/10/29 10:29:47 132.227.103.10 "Whole Asim Site" "sirol" 221
|
||||||
|
1999/10/29 10:30:02 132.227.103.10 "Whole Asim Site" "olivier" 271
|
||||||
|
1999/10/29 11:45:22 193.25.30.87 "Whole Asim Site" "DLX" 41
|
||||||
|
1999/10/29 12:30:20 193.25.30.87 "Whole Asim Site" "dlxm" 21
|
||||||
|
1999/10/29 15:41:29 193.149.100.107 "Whole Asim Site" "asimut" 127
|
||||||
|
1999/10/31 03:39:14 129.127.236.253 "Alliance" "DP_RGF2CC" 0
|
||||||
|
1999/10/31 03:39:32 129.127.236.253 "Whole Asim Site" "dp_rgf*" 2
|
||||||
|
1999/10/31 03:40:32 129.127.236.253 "Whole Asim Site" "DP_RGF2CC" 0
|
||||||
|
1999/10/31 03:40:47 129.127.236.253 "Whole Asim Site" "dp_rfg2cc" 2
|
||||||
|
1999/10/31 04:59:10 129.127.236.253 "Whole Asim Site" "DP_IMPORT" 4
|
||||||
|
1999/10/31 09:55:48 195.116.87.46 "Alliance" ""
|
||||||
|
1999/10/31 09:56:26 195.116.87.46 "Alliance" "vlsi" 116
|
||||||
|
1999/11/01 02:55:05 129.127.236.253 "Whole Asim Site" "ms_y" 6
|
||||||
|
1999/11/01 07:42:04 131.228.4.225 "Whole Asim Site" "alliance download" 62
|
||||||
|
1999/11/01 09:53:23 194.243.148.18 "Whole Asim Site" "pezuol" 2
|
||||||
|
1999/11/01 22:47:35 15.255.216.3 "Whole Asim Site" "place and route" 33
|
||||||
|
1999/11/02 00:22:08 129.127.236.253 "Alliance" "padlib" 37
|
||||||
|
1999/11/02 00:22:48 129.127.236.253 "Whole Asim Site" "pali_sp" 0
|
||||||
|
1999/11/02 00:23:07 129.127.236.253 "Whole Asim Site" "pad*" 99
|
||||||
|
1999/11/02 00:23:16 129.127.236.253 "Whole Asim Site" "sclib" 89
|
||||||
|
1999/11/02 00:24:03 129.127.236.253 "Whole Asim Site" "no2_y" 4
|
||||||
|
1999/11/02 05:33:26 129.127.236.253 "Whole Asim Site" "Error code 20" 15
|
||||||
|
1999/11/02 05:34:20 129.127.236.253 "Whole Asim Site" "Error code 20" 15
|
||||||
|
1999/11/02 06:02:46 129.127.236.253 "Whole Asim Site" "Distance between connector " 1
|
||||||
|
1999/11/02 06:43:15 129.127.236.253 "Whole Asim Site" "padlib" 37
|
||||||
|
1999/11/02 12:50:02 193.140.221.62 "Whole Asim Site" "package" 86
|
||||||
|
1999/11/02 14:54:28 195.221.228.2 "Whole Asim Site" "RISC" 14
|
||||||
|
1999/11/02 15:03:21 195.221.228.2 "Whole Asim Site" "FRISC" 1
|
||||||
|
1999/11/02 15:46:33 141.35.14.26 "Alliance" "fpga" 39
|
||||||
|
1999/11/02 16:07:32 141.35.14.26 "Whole Asim Site" "alligator" 8
|
||||||
|
1999/11/02 19:38:30 195.152.254.179 "Multimedia" "viewlogic" 0
|
||||||
|
1999/11/02 19:38:41 195.152.254.181 "Whole Asim Site" "viewlogic" 0
|
||||||
|
1999/11/03 10:28:31 unknown "Whole Asim Site" "greiner" 57
|
||||||
|
1999/11/03 16:31:30 193.25.29.70 "Whole Asim Site" "32 bit" 24
|
||||||
|
1999/11/03 23:30:52 213.36.8.251 "Whole Asim Site" "rasic" 0
|
||||||
|
1999/11/03 23:31:15 213.36.8.251 "Personal pages" "rasic" 0
|
||||||
|
1999/11/04 01:55:43 195.238.129.98 "Whole Asim Site" "graal runtime" 0
|
||||||
|
1999/11/04 01:55:53 195.238.129.98 "Alliance" "graal runtime" 0
|
||||||
|
1999/11/04 01:56:06 195.238.129.98 "Alliance Mailling Lists" "graal runtime" 0
|
||||||
|
1999/11/04 05:41:27 129.127.236.253 "Whole Asim Site" "Distance between connector vdd and connector vdd of the core isnt big enough." 0
|
||||||
|
1999/11/04 05:41:47 129.127.236.253 "Whole Asim Site" "ring" 44
|
||||||
|
1999/11/04 12:59:22 146.64.248.113 "Whole Asim Site" "schematic" 15
|
||||||
|
1999/11/04 16:29:46 193.25.29.70 "Whole Asim Site" "FPGA" 55
|
||||||
|
1999/11/05 04:04:35 202.230.194.2 "Whole Asim Site" "process" 102
|
||||||
|
1999/11/05 04:08:33 202.230.194.2 "Whole Asim Site" "process statement" 8
|
||||||
|
1999/11/05 08:29:57 129.127.236.11 "Alliance" "chip.c" 5
|
||||||
|
1999/11/05 14:26:41 unknown, unknown "Whole Asim Site" "BIST RAM" 0
|
||||||
|
1999/11/05 16:02:32 195.101.38.197 "Whole Asim Site" "beowulf" 0
|
||||||
|
1999/11/05 16:02:46 195.101.38.197 "Publications" "beowulf" 0
|
||||||
|
1999/11/05 16:34:06 132.227.103.10 "Personal pages" "sex*" 2
|
||||||
|
1999/11/06 11:09:29 195.53.170.189 "Alliance Mailling Lists" "Problems linux" 72
|
||||||
|
1999/11/06 11:12:48 195.53.170.189 "Whole Asim Site" "Problems linux motif" 6
|
||||||
|
1999/11/06 11:23:14 195.53.170.189 "Whole Asim Site" "linux motif lesstif" 6
|
||||||
|
1999/11/07 21:29:50 202.188.70.177 "Whole Asim Site" "fir filter design architecture" 0
|
||||||
|
1999/11/07 21:32:41 202.188.70.177 "Personal pages" "fir filter design architecture" 0
|
||||||
|
1999/11/08 11:18:04 193.25.29.70 "Whole Asim Site" "ROM" 42
|
||||||
|
1999/11/08 13:27:01 192.94.38.34 "Whole Asim Site" "vcd" 0
|
||||||
|
1999/11/08 13:32:48 158.49.97.162 "Alliance Mailling Lists" "dreal lesstif" 2
|
||||||
|
1999/11/08 13:35:43 158.49.97.162 "Whole Asim Site" "dreal" 119
|
||||||
|
1999/11/08 13:38:18 158.49.97.162 "Whole Asim Site" "dreal linux" 23
|
||||||
|
1999/11/08 13:38:19 158.49.97.162 "Whole Asim Site" "dreal linux" 23
|
||||||
|
1999/11/08 15:14:28 193.25.29.72 "" ""
|
||||||
|
1999/11/08 16:12:00 193.25.29.70 "Whole Asim Site" "testbench" 0
|
||||||
|
1999/11/08 20:19:39 205.147.9.166 "Whole Asim Site" "vhdl" 321
|
||||||
|
1999/11/09 10:08:51 199.203.189.147 "Whole Asim Site" "vhdlcompiler" 0
|
||||||
|
1999/11/09 10:24:46 129.254.187.12 "Whole Asim Site" "codesign" 0
|
||||||
|
1999/11/09 10:25:18 129.254.187.12 "Whole Asim Site" "conception" 89
|
||||||
|
1999/11/09 11:34:38 193.25.29.72 "Whole Asim Site" "am2910" 0
|
||||||
|
1999/11/09 11:34:55 193.25.29.72 "Whole Asim Site" "am2900" 0
|
||||||
|
1999/11/09 11:35:04 193.25.29.72 "Whole Asim Site" "am2901" 4
|
||||||
|
1999/11/09 13:57:39 132.227.67.9 "Whole Asim Site" "bug" 1140
|
||||||
|
1999/11/09 14:26:53 193.25.29.70 "Whole Asim Site" "dlxm" 21
|
||||||
|
1999/11/09 14:58:03 202.56.248.244 "Whole Asim Site" "vlsi projects" 8
|
||||||
|
1999/11/09 16:38:56 193.25.29.70 "Whole Asim Site" "dlxm" 21
|
||||||
|
1999/11/09 17:03:54 139.62.208.15 "Whole Asim Site" "computer in brazil" 0
|
||||||
|
1999/11/09 23:14:43 205.226.11.91 "Whole Asim Site" "1355" 8
|
||||||
|
1999/11/10 00:48:25 208.32.26.78 "Whole Asim Site" "xilinx" 24
|
||||||
|
1999/11/10 00:51:19 208.32.26.78 "Whole Asim Site" "FPGA" 58
|
||||||
|
1999/11/10 10:36:05 134.214.104.111 "Whole Asim Site" "metepr" 0
|
||||||
|
1999/11/10 10:36:12 134.214.104.111 "Whole Asim Site" "meteor" 0
|
||||||
|
1999/11/10 10:40:13 134.214.104.111 "Personal pages" "derieux" 9
|
||||||
|
1999/11/10 10:43:11 134.214.104.111 "Whole Asim Site" "derieux" 32
|
||||||
|
1999/11/10 12:33:13 193.25.29.70 "Whole Asim Site" "bibliothek" 0
|
||||||
|
1999/11/10 12:34:18 193.25.29.70 "Whole Asim Site" "standard bibliotheque" 0
|
||||||
|
1999/11/10 12:39:16 193.25.29.72 "Whole Asim Site" "dlxm" 21
|
||||||
|
1999/11/10 13:28:51 193.25.29.70 "Whole Asim Site" "dlxm" 21
|
||||||
|
1999/11/10 14:29:46 193.25.29.70 "Whole Asim Site" "dlxm" 21
|
||||||
|
1999/11/10 15:12:47 193.25.29.70 "Whole Asim Site" "dlxm" 21
|
||||||
|
1999/11/10 16:23:20 130.226.137.66 "Whole Asim Site" "GDSII" 12
|
||||||
|
1999/11/11 02:55:44 204.71.192.35 "Alliance Mailling Lists" "bugs" 30
|
||||||
|
1999/11/11 02:57:14 204.71.192.35 "Whole Asim Site" "bugs" 34
|
||||||
|
1999/11/11 04:15:05 155.69.164.203 "Whole Asim Site" "os2" 2
|
||||||
|
1999/11/11 09:21:50 209.214.105.213 "Alliance" ""
|
||||||
|
1999/11/11 18:34:11 203.80.88.121 "Whole Asim Site" "graal" 191
|
||||||
|
1999/11/11 18:44:20 203.80.103.31 "Whole Asim Site" "xpat" 43
|
||||||
|
1999/11/11 18:50:28 203.80.103.31 "Alliance Mailling Lists" "graal" 177
|
||||||
|
1999/11/11 19:25:43 203.80.88.121 "Whole Asim Site" "linuxELF" 0
|
||||||
|
1999/11/11 19:25:52 203.80.88.121 "Whole Asim Site" "linux" 252
|
||||||
|
1999/11/12 16:41:14 132.227.63.108 "Whole Asim Site" "chaker" 8
|
||||||
|
1999/11/12 17:12:32 203.80.66.201 "Whole Asim Site" "xpat" 43
|
||||||
|
1999/11/13 03:01:23 208.219.99.60 "Whole Asim Site" "sdram" 0
|
||||||
|
1999/11/15 10:14:37 195.178.164.65 "Whole Asim Site" "technology" 157
|
||||||
|
1999/11/15 10:21:00 195.178.164.65 "Whole Asim Site" "technology mosis" 6
|
||||||
|
1999/11/15 10:33:27 193.25.29.70 "Whole Asim Site" "dlxm " 24
|
||||||
|
1999/11/15 11:15:19 144.16.68.86 "Whole Asim Site" "FPGA" 58
|
||||||
|
1999/11/15 13:57:45 195.178.164.65 "Whole Asim Site" "xpat" 43
|
||||||
|
1999/11/15 14:24:20 192.117.186.146 "Whole Asim Site" "DETECTOR" 0
|
||||||
|
1999/11/15 14:24:35 192.117.186.146 "Whole Asim Site" "SENSOR" 0
|
||||||
|
1999/11/15 18:08:34 140.105.19.177 "Whole Asim Site" "Tutorials" 69
|
||||||
|
1999/11/15 21:48:22 140.105.19.177 "Whole Asim Site" "addaccu.vbe" 15
|
||||||
|
1999/11/16 10:50:31 192.168.1.26 "Whole Asim Site" "hspice" 1
|
||||||
|
1999/11/16 16:33:09 140.105.19.201 "Whole Asim Site" "Technology Files" 69
|
||||||
|
1999/11/16 16:57:58 193.25.29.70 "Whole Asim Site" "dlxm" 24
|
||||||
|
1999/11/17 11:18:34 210.64.153.187 "Whole Asim Site" "Yagle" 65
|
||||||
|
1999/11/17 15:38:28 194.214.169.248 "Whole Asim Site" "recognition" 18
|
||||||
|
1999/11/17 16:46:08 132.227.63.110 "Whole Asim Site" "noe" 3
|
||||||
|
1999/11/17 19:42:10 195.115.162.75 "Whole Asim Site" "xml" 0
|
||||||
|
1999/11/17 19:42:28 195.115.162.75 "Personal pages" "joly" 2
|
||||||
|
1999/11/17 19:43:41 195.115.162.75 "Personal pages" "joly" 2
|
||||||
|
1999/11/17 19:45:18 195.115.162.75 "Personal pages" "philipe" 0
|
||||||
|
1999/11/17 19:45:33 195.115.162.75 "Whole Asim Site" "rosa" 8
|
||||||
|
1999/11/17 19:47:40 195.115.162.75 "Whole Asim Site" "gwan" 0
|
||||||
|
1999/11/17 19:50:47 195.115.162.75 "Personal pages" "gwan" 0
|
||||||
|
1999/11/17 19:56:26 195.115.162.75 "Personal pages" "gwe" 3
|
||||||
|
1999/11/17 19:58:47 195.115.162.75 "Whole Asim Site" "phi" 0
|
||||||
|
1999/11/17 19:58:56 195.115.162.75 "Personal pages" "phi" 1
|
||||||
|
1999/11/18 18:52:03 147.234.2.4 "Mpc" "routers" 0
|
||||||
|
1999/11/18 18:52:16 147.234.2.4 "Whole Asim Site" "1533" 0
|
||||||
|
1999/11/18 18:52:27 147.234.2.4 "Whole Asim Site" "1355" 8
|
||||||
|
1999/11/18 18:57:03 147.234.2.4 "Whole Asim Site" "rcube" 27
|
||||||
|
1999/11/18 21:11:39 128.2.216.64 "Whole Asim Site" "bechmark circuits" 0
|
||||||
|
1999/11/18 22:13:01 62.161.74.80 "Whole Asim Site" "sxlib" 49
|
||||||
|
1999/11/18 22:16:25 62.161.74.80 "Whole Asim Site" "sxlib AND download" 0
|
||||||
|
1999/11/18 22:16:40 62.161.74.80 "Whole Asim Site" "sxlib download" 0
|
||||||
|
1999/11/19 01:33:57 210.64.153.187 "Whole Asim Site" "source code" 67
|
||||||
|
1999/11/19 01:34:03 210.64.153.187 "Whole Asim Site" "source code" 67
|
||||||
|
1999/11/19 18:31:58 192.168.11.50 "Whole Asim Site" "dff" 2
|
||||||
|
1999/11/20 14:01:48 212.123.147.107 "Whole Asim Site" "compiling" 80
|
||||||
|
1999/11/21 22:06:35 193.250.82.100 "Whole Asim Site" "chemin critique" 1
|
||||||
|
1999/11/22 12:50:31 193.25.29.70 "Whole Asim Site" "alliance-support" 746
|
||||||
|
1999/11/22 16:59:14 212.198.117.9 "Whole Asim Site" "Emmanuel Coulon" 3
|
||||||
|
1999/11/22 17:09:16 132.227.63.108 "Whole Asim Site" "fpgen" 89
|
||||||
|
1999/11/22 17:09:43 132.227.63.108 "Whole Asim Site" "fpgen" 89
|
||||||
|
1999/11/23 00:40:17 192.76.27.151 "Alliance" "alliance 4.0" 4
|
||||||
|
1999/11/23 10:17:50 193.25.29.70 "Whole Asim Site" "fpgen" 89
|
||||||
|
1999/11/23 10:21:23 193.49.124.107 "Whole Asim Site" "dsp" 5
|
||||||
|
1999/11/23 10:33:21 193.25.29.70 "Whole Asim Site" "fpgen" 89
|
||||||
|
1999/11/23 14:59:06 140.105.19.188 "Whole Asim Site" "ASIC" 23
|
||||||
|
1999/11/23 14:59:56 140.105.19.188 "Whole Asim Site" "fpga designA" 0
|
||||||
|
1999/11/23 15:00:16 140.105.19.188 "Whole Asim Site" "fpga design" 26
|
||||||
|
1999/11/23 15:00:49 10.13.84.9 "Whole Asim Site" "th" 93
|
||||||
|
1999/11/23 21:49:31 194.247.44.173 "Whole Asim Site" "downloads" 0
|
||||||
|
1999/11/23 21:49:42 194.247.44.173 "Whole Asim Site" "cadence" 35
|
||||||
|
1999/11/23 21:54:19 194.247.44.173 "Whole Asim Site" "design frame work" 0
|
||||||
|
1999/11/23 21:54:41 194.247.44.173 "Whole Asim Site" "design frame " 2
|
||||||
|
1999/11/23 23:42:58 194.247.44.173 "Whole Asim Site" "source.readme" 0
|
||||||
|
1999/11/23 23:43:12 194.247.44.173 "Whole Asim Site" "sourcecode" 0
|
||||||
|
1999/11/23 23:43:28 194.247.44.173 "Alliance" "sourcecode" 0
|
||||||
|
1999/11/23 23:57:44 140.105.19.154 "Alliance" "bbr" 17
|
||||||
|
1999/11/24 10:34:25 195.178.164.65 "" ""
|
||||||
|
1999/11/24 13:45:17 200.249.140.69 "Alliance Mailling Lists" ""
|
||||||
|
1999/11/24 13:48:46 200.249.140.69 "Whole Asim Site" "syf" 334
|
||||||
|
1999/11/24 14:19:51 195.239.69.14 "Whole Asim Site" "general management" 3
|
||||||
|
1999/11/24 16:42:40 132.227.103.10 "Whole Asim Site" "Alliance Mailling Lists" 23
|
||||||
|
1999/11/24 18:54:18 unknown "Whole Asim Site" "MIPS" 57
|
||||||
|
1999/11/24 18:55:34 unknown "Whole Asim Site" "MIPS" 57
|
||||||
|
1999/11/25 01:53:40 unknown "Whole Asim Site" "verilog" 11
|
||||||
|
1999/11/25 15:34:49 134.157.116.130 "Whole Asim Site" "mips compiler" 1
|
||||||
|
1999/11/25 16:17:18 193.25.29.70 "Whole Asim Site" "dlxm" 27
|
||||||
|
1999/11/25 16:54:38 62.161.74.80 "Alliance" "sxlib" 51
|
||||||
|
1999/11/25 16:56:04 62.161.74.80 "Alliance Mailling Lists" "sxlib" 51
|
||||||
|
1999/11/25 16:56:16 62.161.74.80 "Personal pages" "sxlib" 0
|
||||||
|
1999/11/25 16:56:21 62.161.74.80 "Mpc" "sxlib" 0
|
||||||
|
1999/11/25 17:02:58 193.25.29.70 "Whole Asim Site" "8bit " 4
|
||||||
|
1999/11/25 17:07:24 193.25.29.70 "Whole Asim Site" "fpgen" 89
|
||||||
|
1999/11/25 17:21:16 193.25.29.70 "Whole Asim Site" "fpgen" 89
|
||||||
|
1999/11/25 17:37:23 193.25.29.70 "Whole Asim Site" "dea 8190" 0
|
||||||
|
1999/11/25 17:37:32 193.25.29.70 "Whole Asim Site" "dea8190" 0
|
||||||
|
1999/11/25 17:37:44 193.25.29.70 "Whole Asim Site" "dea" 62
|
||||||
|
1999/11/25 17:42:29 193.25.29.70 "Whole Asim Site" "8190" 0
|
||||||
|
1999/11/25 17:42:52 193.25.29.70 "Whole Asim Site" "hasard" 0
|
||||||
|
1999/11/25 17:43:11 193.25.29.70 "Whole Asim Site" "control" 31
|
||||||
|
1999/11/25 19:44:34 132.227.63.52 "Whole Asim Site" "czo" 1024
|
||||||
|
1999/11/26 04:57:03 129.127.236.253 "Whole Asim Site" "connectors vss and vdd are on the same equi" 0
|
||||||
|
1999/11/26 04:57:18 129.127.236.253 "Whole Asim Site" "on the same equi" 1
|
||||||
|
1999/11/26 04:58:24 129.127.236.253 "Whole Asim Site" "vdd and vss" 167
|
||||||
|
1999/11/26 05:03:17 129.127.236.253 "Whole Asim Site" "DP_KEEP" 1
|
||||||
|
1999/11/26 05:06:07 129.127.236.253 "Alliance Mailling Lists" "dpr" 46
|
||||||
|
1999/11/26 05:08:21 129.127.236.253 "Whole Asim Site" "equi" 2
|
||||||
|
1999/11/26 05:20:16 129.127.236.253 "Alliance" "same equi" 1
|
||||||
|
1999/11/26 05:49:29 129.127.236.253 "Alliance" "power vdd vss" 14
|
||||||
|
1999/11/26 05:50:26 129.127.236.253 "Whole Asim Site" "power vdd vss dpr" 2
|
||||||
|
1999/11/26 06:44:21 209.239.213.246 "Whole Asim Site" "free vhdl software" 11
|
||||||
|
1999/11/26 08:50:08 130.231.60.44 "Whole Asim Site" "download" 67
|
||||||
|
1999/11/26 08:50:25 130.231.60.44 "Alliance" "download" 67
|
||||||
|
1999/11/26 10:29:35 192.58.194.4 "Whole Asim Site" "download" 67
|
||||||
|
1999/11/26 11:07:09 193.25.29.70 "Whole Asim Site" "dlxm" 28
|
||||||
|
1999/11/26 11:18:11 193.50.5.156 "Whole Asim Site" "lestrade" 0
|
||||||
|
1999/11/26 11:25:39 193.25.29.70 "Whole Asim Site" "dlxm" 28
|
||||||
|
1999/11/26 14:11:06 193.25.29.70 "Whole Asim Site" "linux redHat6" 0
|
||||||
|
1999/11/26 14:11:24 193.25.29.70 "Whole Asim Site" "Red" 7
|
||||||
|
1999/11/26 14:26:08 164.129.1.38 "Whole Asim Site" "fpmap" 58
|
||||||
|
1999/11/26 14:36:21 193.25.29.70 "Whole Asim Site" "REd Haat" 0
|
||||||
|
1999/11/26 14:36:32 193.25.29.70 "Whole Asim Site" "REd Hat" 3
|
||||||
|
1999/11/26 14:47:50 193.25.29.70 "Whole Asim Site" "Red Hat" 3
|
||||||
|
1999/11/26 14:59:52 202.54.61.147 "Whole Asim Site" "free " 125
|
||||||
|
1999/11/26 15:01:13 202.54.61.147 "Whole Asim Site" "free compilers" 0
|
||||||
|
1999/11/26 15:16:37 134.206.22.37 "Whole Asim Site" "TRANSISTOR" 56
|
||||||
|
1999/11/26 21:09:29 194.247.44.211 "Whole Asim Site" "compling alliance" 0
|
||||||
|
1999/11/26 21:09:58 194.247.44.211 "Alliance" "compiling alliance" 79
|
||||||
|
1999/11/27 18:32:34 193.95.115.33 "Whole Asim Site" "transistor" 56
|
||||||
|
1999/11/27 19:12:14 213.228.24.30 "Whole Asim Site" "multimedia" 29
|
||||||
|
1999/11/27 19:29:32 193.95.114.137 "" ""
|
||||||
|
1999/11/27 19:29:56 193.95.114.137 "" ""
|
||||||
|
1999/11/28 01:18:53 206.132.186.131 "" ""
|
||||||
|
1999/11/28 16:52:44 194.38.166.88 "Whole Asim Site" ""
|
||||||
|
1999/11/28 16:52:57 194.38.166.88 "Whole Asim Site" "torture" 0
|
||||||
|
1999/11/28 19:03:52 171.211.231.70 "Whole Asim Site" "synthesis" 61
|
||||||
|
1999/11/29 07:40:30 192.168.2.150 "Whole Asim Site" "FPGA" 58
|
||||||
|
1999/11/29 07:44:27 192.168.2.150 "Whole Asim Site" "Altera" 4
|
||||||
|
1999/11/29 10:59:45 193.25.29.70 "Whole Asim Site" "dlxm" 29
|
||||||
|
1999/11/29 12:52:14 134.157.116.130 "Whole Asim Site" "mips" 57
|
||||||
|
1999/11/30 10:59:42 213.228.23.44 "Whole Asim Site" "mips r 3000" 0
|
||||||
|
1999/11/30 10:59:50 213.228.23.44 "Whole Asim Site" "mips exe" 0
|
||||||
|
1999/11/30 10:59:56 213.228.23.44 "Whole Asim Site" "mips" 57
|
||||||
|
1999/11/30 12:05:29 140.105.19.201 "Whole Asim Site" "technology file" 67
|
||||||
|
1999/11/30 12:13:50 140.105.19.201 "Whole Asim Site" "founderiestfile" 0
|
||||||
|
1999/11/30 12:13:59 140.105.19.201 "Whole Asim Site" "founderies" 0
|
||||||
|
1999/11/30 12:14:16 140.105.19.201 "Whole Asim Site" "foundry" 9
|
||||||
|
1999/11/30 12:14:55 140.105.19.201 "Whole Asim Site" "alcatel" 4
|
||||||
|
1999/11/30 14:35:19 193.49.185.149 "Whole Asim Site" "DMA copy" 0
|
||||||
|
1999/11/30 14:35:32 193.49.185.149 "Mpc" "DMA copy" 0
|
||||||
|
1999/11/30 14:49:35 149.225.36.12 "Whole Asim Site" "libSM" 0
|
||||||
|
1999/11/30 14:50:07 149.225.36.12 "Alliance" "libSM*" 33
|
||||||
|
1999/11/30 15:00:30 149.225.36.12 "Alliance Mailling Lists" "libSM.so.6.0.0" 0
|
||||||
|
1999/11/30 15:00:45 149.225.36.12 "Alliance" "libSM.so.6.0.0" 0
|
||||||
|
1999/11/30 15:00:59 149.225.36.12 "Whole Asim Site" "libSM.so.6.0" 29
|
||||||
|
1999/11/30 17:21:59 128.2.250.207 "Personal pages" "baillard" 0
|
||||||
|
1999/11/30 21:38:19 156.26.30.226 "Alliance Mailling Lists" "genlib" 123
|
||||||
|
1999/12/01 02:24:54 156.26.30.226 "Alliance" "genlib" 309
|
||||||
|
1999/12/01 13:39:28 194.199.136.75 "Whole Asim Site" "saraiva" 17
|
||||||
|
1999/12/01 13:39:46 194.58.207.147 "Whole Asim Site" "FPMAP" 58
|
||||||
|
1999/12/01 13:59:34 194.58.207.147 "Whole Asim Site" "CMP AND EuroPractice" 1
|
||||||
|
1999/12/01 16:44:25 131.254.50.57 "Whole Asim Site" "briot jean-pierre" 0
|
||||||
|
1999/12/01 16:44:31 131.254.50.57 "Whole Asim Site" "briot" 0
|
||||||
|
1999/12/01 16:44:38 131.254.50.57 "Mpc" "briot" 0
|
||||||
|
1999/12/01 16:44:41 131.254.50.57 "Multimedia" "briot" 0
|
||||||
|
1999/12/01 16:44:45 131.254.50.57 "Alliance" "briot" 0
|
||||||
|
1999/12/01 16:44:49 131.254.50.57 "Alliance Mailling Lists" "briot" 0
|
||||||
|
1999/12/01 16:44:52 131.254.50.57 "Education" "briot" 0
|
||||||
|
1999/12/01 16:44:55 131.254.50.57 "Publications" "briot" 0
|
||||||
|
1999/12/01 16:44:59 131.254.50.57 "Personal pages" "briot" 2
|
||||||
|
1999/12/01 17:03:42 141.35.14.89 "Whole Asim Site" "DLX" 56
|
||||||
|
1999/12/01 17:19:10 141.35.14.89 "Whole Asim Site" "dlx" 56
|
||||||
|
1999/12/01 17:24:51 141.35.14.89 "Whole Asim Site" "dlx" 56
|
||||||
|
1999/12/01 17:34:01 141.35.14.89 "Whole Asim Site" "amd" 8
|
||||||
|
1999/12/01 19:12:53 193.136.138.186 "Whole Asim Site" "synopsys" 649
|
||||||
|
1999/12/01 19:13:47 193.136.138.186 "Alliance" "synopsys tools" 11
|
||||||
|
1999/12/01 20:32:42 209.232.84.2 "Whole Asim Site" "a 1.2ghz cmos" 0
|
||||||
|
1999/12/01 20:32:53 209.232.84.2 "Whole Asim Site" "bendak" 0
|
||||||
|
1999/12/01 20:49:09 139.133.204.82 "Whole Asim Site" "ppc" 0
|
||||||
|
1999/12/01 20:49:15 139.133.204.82 "Whole Asim Site" "linux" 258
|
||||||
|
1999/12/01 23:37:30 156.26.38.46 "Whole Asim Site" "cif errors" 11
|
||||||
|
1999/12/01 23:48:59 156.26.38.46 "Alliance" "dreal" 129
|
||||||
|
1999/12/01 23:50:08 156.26.38.46 "Whole Asim Site" "dreal" 129
|
||||||
|
1999/12/02 00:04:48 156.26.38.46 "Whole Asim Site" "problems with dreal" 23
|
||||||
|
1999/12/02 17:28:57 194.204.222.100 "Whole Asim Site" "programmation of bitmaps files" 0
|
||||||
|
1999/12/02 17:30:07 194.204.222.100 "Publications" "bitmap" 0
|
||||||
|
1999/12/02 22:10:30 212.53.97.7 "Whole Asim Site" "freebsd" 19
|
||||||
|
1999/12/03 11:39:58 132.227.103.10 "Whole Asim Site" "asim" 1360
|
||||||
|
1999/12/03 13:53:36 202.54.89.82 "Whole Asim Site" "test benches" 1
|
||||||
|
1999/12/03 15:53:05 195.232.71.243 "Alliance" "microprocesseur x86" 0
|
||||||
|
1999/12/03 15:53:34 195.232.71.243 "Whole Asim Site" "microprocesseur and x86" 0
|
||||||
|
1999/12/03 15:54:58 195.232.71.243 "Whole Asim Site" "x86" 16
|
||||||
|
1999/12/03 15:56:01 195.232.71.243 "Whole Asim Site" "modle" 0
|
||||||
|
1999/12/03 15:56:19 195.232.71.243 "Whole Asim Site" "microprocesseur " 17
|
||||||
|
1999/12/03 15:56:31 195.232.71.243 "Whole Asim Site" "models" 26
|
||||||
|
1999/12/04 07:36:14 202.230.44.207 "Whole Asim Site" "FPGA" 58
|
||||||
|
1999/12/04 11:29:00 212.35.11.133 "Whole Asim Site" "8086" 3
|
||||||
|
1999/12/05 00:33:21 195.68.47.244 "Whole Asim Site" "collet" 0
|
||||||
|
1999/12/05 00:33:29 195.68.47.244 "Personal pages" "collet" 0
|
||||||
|
1999/12/05 22:43:31 212.67.134.149 "Whole Asim Site" "conditional signal assignment" 2
|
||||||
|
1999/12/05 22:44:34 212.67.134.149 "Whole Asim Site" "concurrent statements" 7
|
||||||
|
1999/12/06 11:13:48 193.76.202.246 "Whole Asim Site" "wawecom" 1
|
||||||
|
1999/12/06 13:46:00 193.25.29.70 "Whole Asim Site" "16 bit" 13
|
||||||
|
1999/12/06 13:50:56 193.25.29.70 "Whole Asim Site" "8bit " 4
|
||||||
|
1999/12/06 14:05:56 193.25.29.70 "Whole Asim Site" "8bit processor" 0
|
||||||
|
1999/12/06 14:06:17 193.25.29.70 "Whole Asim Site" "microprocessor" 22
|
||||||
|
1999/12/06 14:24:08 193.25.29.70 "Whole Asim Site" "8 bit microprocessor" 0
|
||||||
|
1999/12/06 14:24:18 193.25.29.70 "Whole Asim Site" "8bit microprocessor" 0
|
||||||
|
1999/12/06 14:24:42 193.25.29.70 "Whole Asim Site" "16bit microprocessor" 0
|
||||||
|
1999/12/06 14:25:25 193.25.29.70 "Whole Asim Site" "microprocessor" 22
|
||||||
|
1999/12/06 14:26:04 193.25.29.70 "Whole Asim Site" "processor" 29
|
||||||
|
1999/12/06 14:36:19 193.25.29.70 "Whole Asim Site" "8bit processor" 0
|
||||||
|
1999/12/06 14:37:07 193.25.29.70 "Whole Asim Site" "16 bit processor" 0
|
||||||
|
1999/12/06 14:37:17 193.25.29.70 "Whole Asim Site" "16bit processor" 0
|
||||||
|
1999/12/06 14:37:46 193.25.29.70 "Whole Asim Site" "16 BIT " 13
|
||||||
|
1999/12/06 14:42:44 193.25.29.70 "Whole Asim Site" "mips" 57
|
||||||
|
1999/12/06 15:07:44 193.25.29.70 "Whole Asim Site" "vliew" 0
|
||||||
|
1999/12/06 15:08:11 193.25.29.70 "Whole Asim Site" "vl" 2
|
||||||
|
1999/12/06 15:09:23 193.25.29.70 "Whole Asim Site" "VLview" 0
|
||||||
|
1999/12/06 15:09:37 193.25.29.70 "Whole Asim Site" "VL" 2
|
||||||
|
1999/12/06 15:10:21 193.25.29.70 "Whole Asim Site" "DEA" 62
|
||||||
|
1999/12/06 15:16:43 193.25.29.70 "Whole Asim Site" "vlview" 0
|
||||||
|
1999/12/06 15:17:14 193.25.29.70 "Whole Asim Site" "1994" 24
|
||||||
|
1999/12/06 16:30:38 194.136.176.162 "Whole Asim Site" "alliance4.0" 0
|
||||||
|
1999/12/06 16:40:52 164.138.13.82 "Whole Asim Site" "bus pci" 16
|
||||||
|
1999/12/07 00:38:15 24.12.96.149 "Whole Asim Site" "PowerPC" 2
|
||||||
|
1999/12/07 00:39:14 24.12.96.149 "Whole Asim Site" "PowerMacintosh" 0
|
||||||
|
1999/12/07 14:20:59 193.25.29.70 "Whole Asim Site" "amd" 8
|
||||||
|
1999/12/07 14:24:13 193.25.29.70 "Whole Asim Site" "amd" 8
|
||||||
|
1999/12/07 22:09:43 193.95.32.185 "Whole Asim Site" "fabrication" 12
|
||||||
|
1999/12/07 23:39:27 207.135.216.203 "Whole Asim Site" "IRIX" 4
|
||||||
|
1999/12/08 10:28:45 132.227.63.8 "Personal pages" "VTS" 3
|
||||||
|
1999/12/08 10:29:16 132.227.63.8 "Whole Asim Site" "Habilitation" 2
|
||||||
|
1999/12/08 10:29:26 132.227.63.8 "Personal pages" "Habilitation" 1
|
||||||
|
1999/12/08 10:29:47 132.227.63.8 "Whole Asim Site" "IRIS" 7
|
||||||
|
1999/12/08 10:29:57 132.227.63.8 "Personal pages" "IRIS" 10
|
||||||
|
1999/12/08 13:58:36 212.67.136.254 "Whole Asim Site" "Hamming Code generator" 0
|
||||||
|
1999/12/08 13:58:47 212.67.136.254 "Whole Asim Site" "FIFO" 0
|
||||||
|
1999/12/08 13:58:55 212.67.136.254 "Whole Asim Site" "example" 698
|
||||||
|
1999/12/08 13:59:35 212.67.136.254 "Whole Asim Site" "counter" 11
|
||||||
|
1999/12/08 13:59:37 212.67.136.254 "Whole Asim Site" "counter" 11
|
||||||
|
1999/12/08 16:47:15 193.25.29.72 "" ""
|
||||||
|
1999/12/08 17:04:24 195.207.143.129 "Whole Asim Site" "lul" 0
|
||||||
|
1999/12/08 18:48:34 193.49.146.252 "Whole Asim Site" "Antivirus Mac" 0
|
||||||
|
1999/12/08 18:48:42 193.49.146.252 "Whole Asim Site" "Antivirus " 0
|
||||||
|
1999/12/08 18:49:39 193.49.146.252 "Whole Asim Site" "virus" 0
|
||||||
|
1999/12/09 07:06:20 163.32.251.110 "Whole Asim Site" "technology file" 67
|
||||||
|
1999/12/09 07:14:22 163.32.251.110 "Whole Asim Site" "techmology file" 0
|
||||||
|
1999/12/09 07:15:11 163.32.251.110 "Whole Asim Site" "technology file" 67
|
||||||
|
1999/12/09 13:26:15 171.209.184.27 "Whole Asim Site" "MPEG" 2
|
||||||
|
1999/12/09 13:56:35 193.25.29.70 "Whole Asim Site" "control" 33
|
||||||
|
1999/12/09 19:12:02 194.141.68.219 "Whole Asim Site" "simips" 3
|
||||||
|
1999/12/09 22:47:04 139.133.204.100 "Whole Asim Site" "source" 213
|
||||||
|
1999/12/09 22:54:17 139.133.204.100 "Whole Asim Site" "linux" 258
|
||||||
|
1999/12/10 10:18:01 139.133.204.82 "Whole Asim Site" "mac" 13
|
||||||
|
1999/12/10 10:24:51 139.133.204.82 "Whole Asim Site" "linux PPC" 0
|
||||||
|
1999/12/10 10:25:01 139.133.204.82 "Whole Asim Site" "linux " 258
|
||||||
|
1999/12/10 12:03:11 192.100.101.17 "Alliance Mailling Lists" "list"
|
||||||
|
1999/12/10 13:23:17 132.227.103.10 "Whole Asim Site" ""
|
||||||
|
1999/12/10 14:16:18 132.227.103.10 "Whole Asim Site" "hjgc" 0
|
||||||
|
1999/12/10 14:54:22 132.227.63.117 "Whole Asim Site" "projets dea " 5
|
||||||
|
1999/12/10 14:55:30 132.227.63.117 "Whole Asim Site" "propositon AND stage" 0
|
||||||
|
1999/12/10 14:55:43 132.227.63.117 "Whole Asim Site" "proposition AND stage" 33
|
||||||
|
1999/12/10 15:16:58 unknown, unknown "Whole Asim Site" "desbarbieux" 12
|
||||||
|
1999/12/10 15:20:26 132.227.103.10 "Whole Asim Site" "mkisofs" 0
|
||||||
|
1999/12/10 15:57:48 132.227.67.64 "Whole Asim Site" "window-area" 0
|
||||||
|
1999/12/10 15:58:02 132.227.67.64 "Whole Asim Site" "window_area" 0
|
||||||
|
1999/12/10 15:58:14 132.227.67.64 "Whole Asim Site" "window" 29
|
||||||
|
1999/12/10 15:59:53 132.227.67.64 "Whole Asim Site" "dpr" 54
|
||||||
|
1999/12/12 19:32:55 212.216.138.4 "Whole Asim Site" "Nti" 0
|
||||||
|
1999/12/12 19:32:59 212.216.138.4 "Whole Asim Site" "Ntie" 12
|
|
@ -0,0 +1,195 @@
|
||||||
|
#!/usr/local/bin/perl
|
||||||
|
# (C) Copyright 1997,98 Czo <mailto:Olivier.Sirol@asim.lip6.fr>
|
||||||
|
# Parts (C) A.Fenyo
|
||||||
|
use CGI;
|
||||||
|
use POSIX;
|
||||||
|
|
||||||
|
# SCRIPT_NAME = /cgi-bin/test.cgi
|
||||||
|
# SCRIPT_FILENAME = /users/largo2/webmastr/wwwroot/cgi-bin/printenv.cgi
|
||||||
|
|
||||||
|
|
||||||
|
$ASIM_HEADER=`/bin/cat /users/largo2/webmastr/wwwroot/ssi/asim.header/index.gb.html`;
|
||||||
|
$ASIM_FOOTER=`/bin/cat /users/largo2/webmastr/wwwroot/ssi/asim.footer/index.gb.html`;
|
||||||
|
$SEARCH_HEADER=`/bin/cat /users/largo2/webmastr/wwwroot/ssi/search.header/index.gb.html`;
|
||||||
|
$SEARCH_MIDDLE=`/bin/cat /users/largo2/webmastr/wwwroot/ssi/search.middle/index.gb.html`;
|
||||||
|
$SEARCH_FOOTER=`/bin/cat /users/largo2/webmastr/wwwroot/ssi/search.footer/index.gb.html`;
|
||||||
|
|
||||||
|
$lock = "/tmp/search.lock";
|
||||||
|
$log = "/users/largo2/webmastr/wwwroot/cgi-bin/private/search.log";
|
||||||
|
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
|
||||||
|
$query = new CGI;
|
||||||
|
|
||||||
|
$str = $query->param('searchstring');
|
||||||
|
|
||||||
|
# Czo 990607 : autorise . et _
|
||||||
|
|
||||||
|
$str =~ s/[^a-zA-Z0-9-_ \*\.]//g;
|
||||||
|
$str =~ s/ -/ /g;
|
||||||
|
$str =~ s/^-/ /;
|
||||||
|
|
||||||
|
$grepstr=$str;
|
||||||
|
|
||||||
|
$grepstr =~ tr/A-Z/a-z/;
|
||||||
|
@words = split / +/, $grepstr;
|
||||||
|
foreach $word (@words) {
|
||||||
|
$word =~ s/ *//;
|
||||||
|
next if (!$word);
|
||||||
|
next if (($word eq 'or') || ($word eq 'and'));
|
||||||
|
@allwords = (@allwords, $word);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$scope = $query->param('ComboSearchList');
|
||||||
|
|
||||||
|
if ( $scope eq "Alliance Mailling Lists" ) {
|
||||||
|
$scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/alml.dat";
|
||||||
|
} elsif ( $scope eq "Alliance" ) {
|
||||||
|
$scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/alliance.dat";
|
||||||
|
} elsif ( $scope eq "Education" ) {
|
||||||
|
$scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/education.dat";
|
||||||
|
} elsif ( $scope eq "Mpc" ) {
|
||||||
|
$scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/mpc.dat";
|
||||||
|
} elsif ( $scope eq "Multimedia" ) {
|
||||||
|
$scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/multimedia.dat";
|
||||||
|
} elsif ( $scope eq "Publications" ) {
|
||||||
|
$scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/publications.dat";
|
||||||
|
} elsif ( $scope eq "Personal pages" ) {
|
||||||
|
$scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/users.dat";
|
||||||
|
} else { $scopefile = "/users/largo2/webmastr/wwwroot/cgi-bin/allsite.dat";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (-e $lock) {
|
||||||
|
print "$ASIM_HEADER\n$SEARCH_HEADER\n";
|
||||||
|
print '<INPUT NAME=searchstring size=40 maxlength=800 name="searchstring" value="'.$str.'" > ';
|
||||||
|
print "$SEARCH_MIDDLE\n";
|
||||||
|
print '<font face="verdana,arial,helvetica" size=2><b>Sorry</b>, server was busy, please try again.</font>';
|
||||||
|
print "<SCRIPT>Server is busy, please try again.</SCRIPT>\n";
|
||||||
|
print "$SEARCH_FOOTER\n$ASIM_FOOTER\n";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
print "$ASIM_HEADER\n$SEARCH_HEADER\n";
|
||||||
|
print '<INPUT NAME=searchstring size=40 maxlength=800 name="searchstring" value="'.$str.'" > ';
|
||||||
|
print "$SEARCH_MIDDLE\n";
|
||||||
|
|
||||||
|
#system (date);
|
||||||
|
#print system ( "/usr/local/home/czo/local/FreeBSD/bin/swish-e -f /usr/local/home/czo/public_html/cgi-bin/index.swish-e -w $str" );
|
||||||
|
#$RET = `/usr/local/home/czo/local/FreeBSD/bin/swish-e -c /usr/local/home/czo/public_html/cgi-bin/index.swish-e -w $str`;
|
||||||
|
#print "<PRE>";
|
||||||
|
|
||||||
|
open RESULT, "/usr/local/bin/swish-e -m 40 -f $scopefile -w $str |";
|
||||||
|
|
||||||
|
$cpt = 0;
|
||||||
|
while (<RESULT>) {
|
||||||
|
# chop;
|
||||||
|
#print ;
|
||||||
|
|
||||||
|
m/err: no results/ && do
|
||||||
|
{
|
||||||
|
$nmatch=0;
|
||||||
|
print '<font face="verdana,arial,helvetica" size=2><b>No</b> match found in "'.$scope.'". </font>';
|
||||||
|
print '<font face="verdana,arial,helvetica" size=-1>';
|
||||||
|
};
|
||||||
|
|
||||||
|
m/^# Number of hits: (.*)/ && do
|
||||||
|
{
|
||||||
|
$nmatch=$1;
|
||||||
|
print '<font face="verdana,arial,helvetica" size=-1><b>'.$1.'</b> matches were found in "'.$scope.'". </font>';
|
||||||
|
print '<font face="verdana,arial,helvetica" size=-1>';
|
||||||
|
};
|
||||||
|
|
||||||
|
m/^#/ && next;
|
||||||
|
|
||||||
|
|
||||||
|
m/^(.*) (.*) "(.*)" (.*)/ && (($res1, $res2, $res3, $res4) = ($1, $2, $3, $4)) && do
|
||||||
|
{
|
||||||
|
$cpt++;
|
||||||
|
$tmp1 = $res1/10; $tmp1 =~ s/^(.*)\..*/\1/;
|
||||||
|
$tmp = $res4/1024; $tmp =~ s/^(.*\..).*/\1/;
|
||||||
|
|
||||||
|
print '<P><b>'.$cpt.'. </b><font color="#0000FF"> ['.$tmp1.'%] </font> <a href="'.$res2.'"><b>'.$res3.'</b></a><br>
|
||||||
|
<font face="arial,helvetica" size=-2>[<b>URL:</b> '.$res2.']</font><br>
|
||||||
|
<font face="verdana,arial,helvetica" size=-2>Page size '.$tmp.' Kb</font><P>' ;
|
||||||
|
#Last modified 7-Oct-97 -
|
||||||
|
|
||||||
|
# $file=$res2;
|
||||||
|
# $file =~ s%http://www-asim.lip6.fr/%/users/largo2/webmastr/wwwroot/%;
|
||||||
|
#
|
||||||
|
# # print "<P>$file\n<P>";
|
||||||
|
#
|
||||||
|
# #$FILE = `/asim/gnu/bin/lynxx -dump -reload -nolist $file`;
|
||||||
|
# $FILE = `cat $file`;
|
||||||
|
#
|
||||||
|
# $FILE =~ s/<BR>/ - /sg;
|
||||||
|
# $FILE =~ s/<HR>/ - /sg;
|
||||||
|
# $FILE =~ s/<LI>/ - /sg;
|
||||||
|
# $FILE =~ s/<DT>/ - /sg;
|
||||||
|
# $FILE =~ s/<DD>/ - /sg;
|
||||||
|
# $FILE =~ s/<P>/ - /sg;
|
||||||
|
# $FILE =~ s/-( -)*/-/sg;
|
||||||
|
#
|
||||||
|
# $FILE =~ s/<.*?>/ /sg;
|
||||||
|
#
|
||||||
|
# foreach $word (@allwords) {
|
||||||
|
# $FILEinsensitive = $FILE;
|
||||||
|
# $FILEinsensitive =~ tr/A-Z/a-z/;
|
||||||
|
# $wordinsensitive = $word;
|
||||||
|
# $wordinsensitive =~ tr/A-Z/a-z/;
|
||||||
|
# $fileindex = index $FILEinsensitive, $wordinsensitive;
|
||||||
|
# next if ($fileindex == -1);
|
||||||
|
#
|
||||||
|
# $fileindex = 160 if ($fileindex < 160);
|
||||||
|
# $grep = substr $FILE, $fileindex - 160, 320;
|
||||||
|
# $grep =~ s/^[^ ]* //s;
|
||||||
|
# $grep =~ s/ [^ ]*$//s;
|
||||||
|
#
|
||||||
|
# foreach $w (@allwords) {
|
||||||
|
# $grep =~ s%($w)%<B>\1</B>%si;
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# print "<SMALL>... $grep ...</SMALL><P>\n";
|
||||||
|
#
|
||||||
|
# last;
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
};
|
||||||
|
|
||||||
|
} ;
|
||||||
|
|
||||||
|
close(RESULT);
|
||||||
|
|
||||||
|
#print "$scopefile\n";
|
||||||
|
print "$SEARCH_FOOTER\n$ASIM_FOOTER\n";
|
||||||
|
|
||||||
|
|
||||||
|
# REMOTE_ADDR = 132.227.103.10
|
||||||
|
# HTTP_X_FORWARDED_FOR = 132.227.103.10
|
||||||
|
|
||||||
|
$CLIENT = $ENV{"HTTP_X_FORWARDED_FOR"};
|
||||||
|
|
||||||
|
if ( $CLIENT eq "" ) {
|
||||||
|
$CLIENT = $ENV{"REMOTE_ADDR"};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$TIME=strftime("%Y/%m/%d %H:%M:%S",localtime());
|
||||||
|
open(LOCK,">$lock") || die "Can't open lock : $!";
|
||||||
|
close (LOCK);
|
||||||
|
open(SORTIE, ">>$log") || die "Can't open log : $!";
|
||||||
|
print SORTIE "$TIME $CLIENT \"$scope\" \"$str\" $nmatch\n";;
|
||||||
|
close (SORTIE);
|
||||||
|
unlink("$lock") || die "Can't delete lock : $!";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
__END__
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,166 @@
|
||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
#- Configurable Variables ---------------------------------------------------#
|
||||||
|
|
||||||
|
#Path to SWISH-E executable
|
||||||
|
$swish = "/usr/local/bin/swish-e";
|
||||||
|
|
||||||
|
#Path to this CGI script
|
||||||
|
$swishcgi = "/cgi-bin/searchres.cgi";
|
||||||
|
|
||||||
|
#Path to the SWISH-E index
|
||||||
|
$index = "/local/largo2/wwwpages/cgi-bin/index.swish-e";
|
||||||
|
|
||||||
|
#Path to the SWISH-E configuration file
|
||||||
|
$config = "/opt/swish/swish-e/ConfigFiles/SwishTest.conf";
|
||||||
|
|
||||||
|
#- Main Program -------------------------------------------------------------#
|
||||||
|
|
||||||
|
#Parse the form data
|
||||||
|
&parse_form_data (*FORM);
|
||||||
|
|
||||||
|
#Construct a simple query
|
||||||
|
$query = $FORM{'query'};
|
||||||
|
|
||||||
|
$results = $FORM{'results'};
|
||||||
|
|
||||||
|
if ($query) {
|
||||||
|
&search_parse;
|
||||||
|
}else{
|
||||||
|
&search_error("You must enter a keyword or phrase in one or more of the text boxes");
|
||||||
|
}
|
||||||
|
|
||||||
|
#- Subroutines ---------------------------------------------------------------#
|
||||||
|
|
||||||
|
#Subroutine for checking and parsing the incoming form data.
|
||||||
|
|
||||||
|
sub parse_form_data {
|
||||||
|
|
||||||
|
local (*FORM_DATA) = @_;
|
||||||
|
local ($request_method, $query_string, @key_value_pairs, $key_value, $key, $value);
|
||||||
|
|
||||||
|
$request_method = $ENV{'REQUEST_METHOD'};
|
||||||
|
|
||||||
|
if ($request_method eq "GET") {
|
||||||
|
$query_string = $ENV{'QUERY_STRING'};
|
||||||
|
} elsif ($request_method eq "POST") {
|
||||||
|
read (STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
|
||||||
|
} else {
|
||||||
|
&search_error ("Forms must use either GET or POST.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@key_value_pairs = split (/&/, $query_string);
|
||||||
|
|
||||||
|
foreach $key_value (@key_value_pairs) {
|
||||||
|
($key, $value) = split (/=/, $key_value);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack ("C", hex ($1))/eg;
|
||||||
|
if (defined ($FORM_DATA{$key})) {
|
||||||
|
$FORM_DATA{$key} = join ("\0", $FORM_DATA{$key}, $value);
|
||||||
|
} else {
|
||||||
|
$FORM_DATA{$key} = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#Subroutine for constructing the Swish-E search request and formating the results.
|
||||||
|
|
||||||
|
sub search_parse {
|
||||||
|
|
||||||
|
#Create your SWISH-E query command
|
||||||
|
|
||||||
|
$count=0;
|
||||||
|
|
||||||
|
open(SWISH, "$swish -w $query -m $results -f $index|");
|
||||||
|
|
||||||
|
#Check for errors
|
||||||
|
|
||||||
|
while (<SWISH>) {
|
||||||
|
chop;
|
||||||
|
|
||||||
|
if ($_ eq "err: no results")
|
||||||
|
{&search_error("There were no items that matched your search request");}
|
||||||
|
|
||||||
|
if ($_ eq "err: could not open index file")
|
||||||
|
{&search_error("Could not open SWISH Index File $index");}
|
||||||
|
|
||||||
|
if ($_ eq "err: no search words specified")
|
||||||
|
{&search_error("Please Enter at least one Search Word");}
|
||||||
|
|
||||||
|
if ($_ eq "err: a word is too common")
|
||||||
|
{&search_error("One of your search terms is too common, please try again");}
|
||||||
|
|
||||||
|
next if /^\D/;
|
||||||
|
$count++;
|
||||||
|
push(@results, $_);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#Print the results page
|
||||||
|
|
||||||
|
&html_header("Search Results");
|
||||||
|
|
||||||
|
print <<Search_Results;
|
||||||
|
<P ALIGN=CENTER>
|
||||||
|
Swish found the following items, listed in order of computed relevance<BR>
|
||||||
|
Your Search for <strong>$query</strong>, returned $count Items
|
||||||
|
</P>
|
||||||
|
<HR>
|
||||||
|
<UL>
|
||||||
|
Search_Results
|
||||||
|
|
||||||
|
foreach (@results) {
|
||||||
|
select(STDOUT);
|
||||||
|
($stringone, $title, $filesize) = split(/\"/, $_);
|
||||||
|
($rank, $url) = split(/ /, $stringone);
|
||||||
|
print "<LI><A HREF=\"$url\">$title</A><BR>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
print "</UL>\n";
|
||||||
|
&html_trailer;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#Subroutine for printing a generic HTML header.
|
||||||
|
|
||||||
|
sub html_header {
|
||||||
|
|
||||||
|
$document_title = $_[0];
|
||||||
|
|
||||||
|
print <<HTML_Header;
|
||||||
|
Content-type: text/html
|
||||||
|
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<TITLE>$document_title</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
<BODY BGCOLOR="#ffffff">
|
||||||
|
<H1 ALIGN=CENTER>$document_title</H1>
|
||||||
|
HTML_Header
|
||||||
|
}
|
||||||
|
|
||||||
|
#Subroutine for printing a generic HTML trailer.
|
||||||
|
|
||||||
|
sub html_trailer {
|
||||||
|
|
||||||
|
print <<HTML_Trailer;
|
||||||
|
<HR>
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
|
HTML_Trailer
|
||||||
|
|
||||||
|
exit;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#Subroutine for printing error messages.
|
||||||
|
|
||||||
|
sub search_error {
|
||||||
|
|
||||||
|
&html_header("Search Error");
|
||||||
|
$error_message = $_[0];
|
||||||
|
print "<P ALIGN=CENTER>\n$error_message</P>\n";
|
||||||
|
&html_trailer;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/local/bin/perl
|
||||||
|
use CGI;
|
||||||
|
|
||||||
|
$WAISDIR="/usr/local/home/alex/cvs/alex/MPC-OS/docs/www/waissrc";
|
||||||
|
$HEADER=`/bin/cat /usr/local/home/alex/cvs/alex/MPC-OS/docs/www/header.html`;
|
||||||
|
$FOOTER=`/bin/cat /usr/local/home/alex/cvs/alex/MPC-OS/docs/www/footer.html`;
|
||||||
|
$START=`/bin/cat /usr/local/home/alex/cvs/alex/MPC-OS/docs/www/start.html`;
|
||||||
|
$STOP=`/bin/cat /usr/local/home/alex/cvs/alex/MPC-OS/docs/www/stop.html`;
|
||||||
|
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
|
||||||
|
$query = new CGI;
|
||||||
|
|
||||||
|
$str = $query->param('searchstring');
|
||||||
|
|
||||||
|
$str =~ s/[^a-zA-Z0-9- ]//g;
|
||||||
|
$str =~ s/ -/ /g;
|
||||||
|
$str =~ s/^-/ /;
|
||||||
|
|
||||||
|
print "$START\n$HEADER\n";
|
||||||
|
|
||||||
|
print '<H2><FONT COLOR="#660000">Search result for query "'.$str.'"</FONT></H2><P> <FONT FACE="ARIAL,HELVETICA">';
|
||||||
|
|
||||||
|
open RESULT, "/usr/local/bin/waisq -f - -g -s $WAISDIR -S mpc.src -g $str | grep :headline |";
|
||||||
|
|
||||||
|
print '<TABLE BORDER="0">';
|
||||||
|
|
||||||
|
print "<PRE>";
|
||||||
|
$cpt = 0;
|
||||||
|
while (<RESULT>) {
|
||||||
|
chop;
|
||||||
|
m/^#/ && next;
|
||||||
|
m/:headline "(.*) (.*)"/ && do { $file = $2.$1; };
|
||||||
|
$file =~ s%.*cvs/alex/MPC-OS/docs/www%%;
|
||||||
|
$cpt++;
|
||||||
|
print '<TR><TD align=right>'.$cpt.'- </TD><TD> <A HREF="http://mpc.lip6.fr'.$file.'">http://mpc.lip6.fr'.$file.'</A><BR></TR>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
close(RESULT);
|
||||||
|
|
||||||
|
print '</TABLE></FONT></P>
|
||||||
|
<form method="POST" action="/cgi-bin/search.cgi">
|
||||||
|
<CENTER><STRONG>Search:</STRONG> <input type=text name="searchstring" value="" size=50>
|
||||||
|
<!-- <input src="images/search.gif" type=submit value=" Search "> -->
|
||||||
|
</CENTER>
|
||||||
|
</form>
|
||||||
|
';
|
||||||
|
print "$FOOTER\n$STOP\n";
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
use CGI;
|
||||||
|
|
||||||
|
$query = new CGI;
|
||||||
|
$CGI::POST_MAX = 102400; # set maximum size of post
|
||||||
|
|
||||||
|
print $query->header;
|
||||||
|
print $query->start_html("Example CGI.pm Form");
|
||||||
|
print "<H1> Example CGI.pm Form</H1>\n";
|
||||||
|
&print_prompt($query);
|
||||||
|
&do_work($query);
|
||||||
|
&print_tail;
|
||||||
|
print $query->end_html;
|
||||||
|
|
||||||
|
sub print_prompt {
|
||||||
|
my($query) = @_;
|
||||||
|
|
||||||
|
print $query->startform;
|
||||||
|
print "<EM>What's your name?</EM><BR>";
|
||||||
|
print $query->textfield('name');
|
||||||
|
print $query->checkbox('Not my real name');
|
||||||
|
|
||||||
|
print $query->filefield('uploaded_file','starting value',50,80);
|
||||||
|
# ACCEPT="filetype/*"
|
||||||
|
print "<P><EM>Where can you find English Sparrows?</EM><BR>";
|
||||||
|
print $query->checkbox_group(
|
||||||
|
-name=>'Sparrow locations',
|
||||||
|
-values=>[England,France,Spain,Asia,Hoboken],
|
||||||
|
-linebreak=>'yes',
|
||||||
|
-defaults=>[England,Asia]);
|
||||||
|
|
||||||
|
print "<P><EM>How far can they fly?</EM><BR>",
|
||||||
|
$query->radio_group(
|
||||||
|
-name=>'how far',
|
||||||
|
-values=>['10 ft','1 mile','10 miles','real far'],
|
||||||
|
-default=>'1 mile');
|
||||||
|
|
||||||
|
print "<P><EM>What's your favorite color?</EM> ";
|
||||||
|
print $query->popup_menu(-name=>'Color',
|
||||||
|
-values=>['black','brown','red','yellow'],
|
||||||
|
-default=>'red');
|
||||||
|
|
||||||
|
print $query->hidden('Reference','Monty Python and the Holy Grail');
|
||||||
|
|
||||||
|
print "<P><EM>What have you got there?</EM><BR>";
|
||||||
|
print $query->scrolling_list(
|
||||||
|
-name=>'possessions',
|
||||||
|
-values=>['A Coconut','A Grail','An Icon',
|
||||||
|
'A Sword','A Ticket'],
|
||||||
|
-size=>5,
|
||||||
|
-multiple=>'true');
|
||||||
|
|
||||||
|
print "<P><EM>Any parting comments?</EM><BR>";
|
||||||
|
print $query->textarea(-name=>'Comments',
|
||||||
|
-rows=>10,
|
||||||
|
-columns=>50);
|
||||||
|
|
||||||
|
print "<P>",$query->reset;
|
||||||
|
print $query->submit('Action','Shout');
|
||||||
|
print $query->submit('Action','Scream');
|
||||||
|
print $query->endform;
|
||||||
|
print "<HR>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
sub do_work {
|
||||||
|
my($query) = @_;
|
||||||
|
my(@values,$key);
|
||||||
|
|
||||||
|
print "<H2>Here are the current settings in this form</H2>";
|
||||||
|
|
||||||
|
foreach $key ($query->param) {
|
||||||
|
print "<STRONG>$key</STRONG> -> ";
|
||||||
|
@values = $query->param($key);
|
||||||
|
print join(", ",@values),"<BR>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub print_tail {
|
||||||
|
$filename = $query->param('uploaded_file');
|
||||||
|
|
||||||
|
print "<BR><BR>$filename<BR>\n\n";
|
||||||
|
|
||||||
|
# Read a text file and print it out
|
||||||
|
# while (<$filename>) {
|
||||||
|
# print;
|
||||||
|
# }
|
||||||
|
|
||||||
|
$type = $query->uploadInfo($filename)->{'Content-Type'};
|
||||||
|
print "<BR><BR>$type<BR>\n\n";
|
||||||
|
# unless ($type eq 'text/html') {
|
||||||
|
# die "HTML FILES ONLY!";
|
||||||
|
# }
|
||||||
|
|
||||||
|
print "<BR><BR>fini<BR>\n\n";
|
||||||
|
|
||||||
|
# Copy a binary file to somewhere safe
|
||||||
|
open (OUTFILE,">/tmp.vbe");
|
||||||
|
while ($bytesread=read($filename,$buffer,1024)) {
|
||||||
|
print OUTFILE $buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
print "<BR><BR>fini<BR>\n\n";
|
||||||
|
print <<END;
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<ADDRESS>Lincoln D. Stein</ADDRESS><BR>
|
||||||
|
<A HREF="/">Home Page</A>
|
||||||
|
END
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# disable filename globbing
|
||||||
|
set -f
|
||||||
|
|
||||||
|
echo Content-type: text/plain
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo CGI/1.0 test script report:
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo argc is $#. argv is "$*".
|
||||||
|
echo
|
||||||
|
|
||||||
|
id
|
||||||
|
echo
|
||||||
|
|
||||||
|
touch /tmp/toto.234
|
||||||
|
|
||||||
|
pwd
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo SERVER_SOFTWARE = $SERVER_SOFTWARE
|
||||||
|
echo SERVER_NAME = $SERVER_NAME
|
||||||
|
echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE
|
||||||
|
echo SERVER_PROTOCOL = $SERVER_PROTOCOL
|
||||||
|
echo SERVER_PORT = $SERVER_PORT
|
||||||
|
echo REQUEST_METHOD = $REQUEST_METHOD
|
||||||
|
echo HTTP_ACCEPT = "$HTTP_ACCEPT"
|
||||||
|
echo PATH_INFO = "$PATH_INFO"
|
||||||
|
echo PATH_TRANSLATED = "$PATH_TRANSLATED"
|
||||||
|
echo SCRIPT_NAME = "$SCRIPT_NAME"
|
||||||
|
echo QUERY_STRING = "$QUERY_STRING"
|
||||||
|
echo REMOTE_HOST = $REMOTE_HOST
|
||||||
|
echo REMOTE_ADDR = $REMOTE_ADDR
|
||||||
|
echo REMOTE_USER = $REMOTE_USER
|
||||||
|
echo AUTH_TYPE = $AUTH_TYPE
|
||||||
|
echo CONTENT_TYPE = $CONTENT_TYPE
|
||||||
|
echo CONTENT_LENGTH = $CONTENT_LENGTH
|
||||||
|
|
||||||
|
id
|
||||||
|
|
||||||
|
ls -al /
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/local/bin/perl -w
|
||||||
|
use POSIX;
|
||||||
|
$TIME=strftime(" %Y/%m/%d %H:%M:%S",localtime());
|
||||||
|
#$TIME=localtime();
|
||||||
|
print $TIME ;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
if (!open (COUNT,">>/users/largo2/webmastr/wwwroot/cgi-bin/log.db")) {
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
while (($key, $val) = each %ENV) {
|
||||||
|
print COUNT "$key = $val; ";
|
||||||
|
}
|
||||||
|
print COUNT "\n";
|
||||||
|
close COUNT;
|
||||||
|
|
Loading…
Reference in New Issue