mailinglistes

This commit is contained in:
Olivier Sirol 2000-04-05 15:09:46 +00:00
parent c79419aa77
commit df360df1ad
43 changed files with 4541 additions and 0 deletions

View File

@ -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/*

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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).
--

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

10
dev/cvslargo/listes-rules/hyp Executable file
View File

@ -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}"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 ;
}'

View File

@ -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);
}

View File

@ -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";

View File

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

View File

@ -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">&nbsp;</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>

View File

@ -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();

View File

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

View File

@ -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 &nbsp; undefined or for space-only/empty string,
# otherwise change < > and & to character entities
#
sub tablesc
{
return "&nbsp;" if (! defined $_[0]) || ($_[0] !~ m|\S|);
$_[0] =~ s|&|&#38;|gso;
$_[0] =~ s|<|&#60;|gso;
$_[0] =~ s|>|&#62;|gso;
$_[0];
}
#
# tablesc
#============================================================================

View File

@ -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";
}

View File

@ -0,0 +1,4 @@
AuthName "Confidentiel ASIM (intranet)"
AuthType Basic
AuthUserFile /users/largo2/webmastr/ASIM-AuthUserFile
require user asim

View File

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

View File

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

View File

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

View File

@ -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;
}

View File

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

View File

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

View File

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

View File

@ -0,0 +1,7 @@
#!/usr/local/bin/perl -w
use POSIX;
$TIME=strftime(" %Y/%m/%d %H:%M:%S",localtime());
#$TIME=localtime();
print $TIME ;

View File

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