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