diff --git a/dev/cvslargo/listes-rules/alliance/archive.txt b/dev/cvslargo/listes-rules/alliance/archive.txt new file mode 100644 index 00000000..31d3bded --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/archive.txt @@ -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/* diff --git a/dev/cvslargo/listes-rules/alliance/help.txt b/dev/cvslargo/listes-rules/alliance/help.txt new file mode 100644 index 00000000..87110374 --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/help.txt @@ -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 +-- diff --git a/dev/cvslargo/listes-rules/alliance/rc.custom b/dev/cvslargo/listes-rules/alliance/rc.custom new file mode 100644 index 00000000..c7aa4c47 --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/rc.custom @@ -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 diff --git a/dev/cvslargo/listes-rules/alliance/rc.init b/dev/cvslargo/listes-rules/alliance/rc.init new file mode 100644 index 00000000..478f2979 --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/rc.init @@ -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 diff --git a/dev/cvslargo/listes-rules/alliance/rc.request b/dev/cvslargo/listes-rules/alliance/rc.request new file mode 100644 index 00000000..b8957dc4 --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/rc.request @@ -0,0 +1,348 @@ +# BEFORE editing this file, you should make sure that it is not linked to +# the master version (../.etc/rc.request) anymore (i.e. "delink rc.request" +# if you do not want your changes to affect all lists). +# +# New mails can be temporarily stalled by creating the file rc.lock (either in +# ../.etc for all lists or in the current directory for this list only). + +#$Id: rc.request,v 1.1 2000/04/05 15:09:45 czo Exp $ + +INCLUDERC=$RC_INIT +INCLUDERC=$RC_CUSTOM + +INCLUDERC=$RC_LOCAL_REQUEST_00 + +LOCKFILE=tmp.lock # for reusing tmp.(request|from) + # also makes sure that the load doesn't go sky-high + # when a lot of mail arrives concurrently + +:0 Bfw # concatenate header and body +* $^^$X_COMMAND: +| sed -e '1,/^$/{' -e '/^$/d' -e '}' + +# +# We now check: +# If the length is roughly within bounds. +# That it is not a reply or something. +# That we didn't send it ourselves. +# That it wasn't sent by a daemon of some kind. +# +# If everything matches, we extract the sender address into tmp.from +# + +:0 +* B ?? < 4096 +* $$daemon_bias +* $!^(X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:) +* -100^0 ^FROM_DAEMON +* 1^0 +{ + +:0 +* -100^0 ^Subject:(.*[^a-z])?(Re:|erro|change|problem|((can)?not|.*n't)\>) +* 100^0 B ?? ^^([ ]|$)*\ + ((archives?:?($|[ ]+)|\ + ((un)subscribe|(send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\ + list|show|search|[fe]?grep|find|maxfiles|version|help|info)\ + ([ ].*)?$)([ ]|$)*)+\ + ([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^ +* 100^0 ^Subject:[ ]*archive +* 1^0 +{ + :0 whc + | formail -rtzc -xTo: >tmp.from + +# +# Store the whole mail in tmp.request, for later reference. +# + + :0 wc + | formail -IIn-Reply-To: -ICc: >tmp.request + +# +# Check for a missing Subject: line. +# + + :0 wfh + * !^Subject: + | formail -a "Subject: " + + INCLUDERC=$RC_LOCAL_REQUEST_10 + +############################################################################### +# Reader beware, the following four regular expressions are not for the faint # +# of heart. It'll suffice to say that they accomplish their intended job 98% # +# of the time. # +############################################################################### + +# +# Is it an archive retrieval command? +# + + :0 HB w + * 9876543210^0 ^^(.+$)*Subject:[ ]*(([(<]no(ne| subject\ + ( (\(file transmission|given))?)[>)])?\ + $(.+$)*(^[ ]*)+)?(archives?:?([ ]|$)|\ + ((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|list|show|\ + search|[fe]?grep|find|maxfiles|version)([ ]+[^ ]*)?$) + * 1^0 B ?? ^^([ ]|$)*\ + ((archives?:?($|[ ]+)|\ + ((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\ + list|show|search|[fe]?grep|find|maxfiles|version|help|info)\ + ([ ].*)?$)([ ]|$)*)+\ + ([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^ + { + :0 W + * 9876543210^0 !restrict_archive ?? y + * 2^0 ? formail -rt -R To: "From " -X "From " | \ + multigram -b1 -m -l$submit_threshold -L$domain \ + -x$listaddr -x$listreq accept accept2 + | arch_retrieve + + :0 E fhw + | formail -A "X-Diagnostic: Not on the accept list" + } + +# +# Is it an unsubscription request? +# + + :0 EHB + * 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\ + ( (\(file transmission|given))?)[>)])?(\ + ($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\ + (Could you )?(please )?\ + (sign( [^ ]+ |-)?off|cancel|leave|delete|remove|(un|de)-?sub)\>|\ + ($(.+$)*$(.*$)*)?(.*[^a-z])?\ + ((un-?|(un|de)-?sub?)s(cr|c|r)i|\ + (leave|(delete|remove) .* from|(sign|take|get) .* off) .* [a-z-]*list\>)) + * 1^0 B ?? ^^([ ]|$)*unsub(scribe)?([ ].*)?([ ]|$)*\ + [^ a-z]?^^ + { + :0 fw:dist.lock + * auto_unsubscribe ?? y + | unsubscribe + + :0 Aw ${cc_unsubrequests:+c} + | $SENDMAIL $sendmailOPT `cat tmp.from` ; + + :0 Afhw + | formail -A "X-Diagnostic: Processed" + } + + +# +# Is it a subscription request? +# + + :0 EHB + * 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\ + ( (\(file transmission|given))?)[>)])?(\ + ($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\ + (Could you )?(please )?\ + (sign( [^ ]+ |-)?on|add|join|sub)\>|\ + ($(.+$)*$(.*$)*)?(.*[^a-z])?\ + (sub?s(cr|c|r)i.*|(join|add .* to|(sign|put) .* on) .* [a-z-]*list\>)) + * 1^0 B ?? ^^([ ]|$)*sub(scribe)?([ ].*)?([ ]|$)*\ + [^ a-z]?^^ + { + # + # Yes, well, then check if the person subscribing isn't on the reject + # list. + # + + :0 HB wfh + * ? multigram -b1 -l$reject_threshold reject + | formail -A "X-Diagnostic: Found on the reject list" \ + -A "X-Diagnostic: `multigram -b1 -l$reject_threshold reject`" + + # + # If not, then let's see if he might already be on the + # mailinglist. + # + + :0 E HB wfh + * ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \ + multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist + | formail -A "X-Diagnostic: Already on the subscriber list" \ + -A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \ + -l$reject_threshold dist`" + + # + # If not, add him(/her/it?). + # + + :0 E + * auto_subscribe ?? y + { + :0 W ${cc_requests:+c}:dist.lock + | subscribe + + :0 awfh + | formail -A "X-Diagnostic: Added to the subscriber list" + + :0 Ewfh + | formail -A "X-Diagnostic: Tried to subscribe" + } + } + +# +# Is it an info or help request? Send back the help.txt and the +# optional info.txt file. +# We do the same on a complete empty mail (except for perhaps a signature). +# + + :0 EHB + * 3^0 ^^(.+$)*Subject:[ ]*\ + (([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$\ + (.+$)*(^[ ]*)+)?[a-z,. ]*(help|info(rmation)?)\> + * 1^0 ^^(.+$)*Subject:[ ]*\ + ([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$ + * -2^0 ^^(.+$)*(^[ ]*)+[a-z] + * 3^0 ^^(.+$)*^([ ]*$)*-- + { + :0 hw ${cc_requests:+c} + | (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \ + cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t + + :0 wfh + | formail -A "X-Diagnostic: help sent" + } + + INCLUDERC=$RC_LOCAL_REQUEST_20 + + LOGABSTRACT=yes + +# +# If auto_help is set, anything undecipherable gets back the help.txt and the +# optional info.txt file. +# + + :0 EB + * auto_help ?? y + * $!X-Loop: $\listaddr + { + :0 hw ${cc_requests:+c} + | (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \ + cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t + + :0 wfh + | formail -A "X-Diagnostic: undecipherable, help sent" + } + +} +} + +LOGABSTRACT=yes + +# +# Could it be a bounce message from a daemon? Hand it down to procbounce +# which will evaluate it. +# + +:0 wic +* $!^(Subject:(.*[^a-z])?Re:|\ + X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:) +* ^FROM_DAEMON +| sed -e $cutoff_bounce' q' >tmp.request + + # + # Sink all messages we can recognise to be queue warnings + # + + :0 Ah + * ^Subject: \ + (WARNING: message delayed|\ + (Returned mail: )?warning: c(an|ould )not send m(essage fo|ail afte)r|\ + Undeliverable (RFC822 )?mail: temporarily unable to deliver|\ + \*\*\* WARNING - Undelivered mail in mailqueue) + /dev/null + + :0 Ah + * ^Subject: (Warning from|mail warning| ?Waiting mail) + * ^(From|Sender):.*(uucp|mmdf) + /dev/null + + :0 AhBD + * $^(..?)?X-Loop: $\listaddr \(bounce\) + * ^(..?)?Subject: You have been removed from + /dev/null + + # + # Anything that still survived is most likely to be a bounce message. + # + + :0 Ahfw + | procbounce + +# +# Or is it a remote X-Command from our maintainer? +# + +:0 wf:dist.lock +* $^$X_COMMAND:.*$\maintainer[ ]*$\X_COMMAND_PASSWORD +* $!^X-Loop: $\listaddr +| x_command + +LOCKFILE # we don't need the lockfile anymore + +# +# Anything not taken care of yet will be served to the maintainer of the list. +# +# To make it easier on him, we include a small hint about what might be the +# problem (by adding X-Diagnostic: fields to the header). +# + +:0 wfh +* !< $size_limit +| formail -A "X-Diagnostic: Submission size exceeds $size_limit bytes" + +:0 wfh +* ^FROM_DAEMON +| formail -A "X-Diagnostic: Mail coming from a daemon, ignored" + +:0 HB wfh +* $^X-Loop: $\listaddr +| formail -A "X-Diagnostic: Possible loopback problem" + +:0 +* !^X-(Diagnostic|Processed): +{ + :0 wfh + * $^$X_COMMAND: + | formail -A "X-Diagnostic: Suspicious $X_COMMAND format" + + :0 HB wfh + * ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \ + multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist + | formail -A "X-Diagnostic: Already on the subscriber list" \ + -A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \ + -l$reject_threshold dist`" +} + +INCLUDERC=$RC_LOCAL_REQUEST_30 + +:0 wfh +* !^X-(Diagnostic|Processed): +| formail -A"X-Diagnostic: Unprocessed" + +:0 wfh +| formail -A"X-Envelope-To: $X_ENVELOPE_TO" + +# +# If this list does not have a maintainer e-mail address, drop things in +# the file request. +# + +:0: +* !maintainer ?? . +request + +:0 w +| formail -R"From X-From_:" -iDate: -iReturn-Receipt-To: -iRead-Receipt-To: \ + -iAcknowledge-To: | $SENDMAIL $sendmailOPT $sendmailOPTp $maintainer + +:0 wfh +| formail -A"X-Diagnostic: Maintainer $maintainer could not be reached" + +HOST=continue_with_../.etc/rc.post diff --git a/dev/cvslargo/listes-rules/alliance/rc.submit b/dev/cvslargo/listes-rules/alliance/rc.submit new file mode 100644 index 00000000..77602545 --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/rc.submit @@ -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 >$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 diff --git a/dev/cvslargo/listes-rules/alliance/subscribe.txt b/dev/cvslargo/listes-rules/alliance/subscribe.txt new file mode 100644 index 00000000..3f99bc63 --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/subscribe.txt @@ -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). +-- diff --git a/dev/cvslargo/listes-rules/alliance/unsubscribe.txt b/dev/cvslargo/listes-rules/alliance/unsubscribe.txt new file mode 100644 index 00000000..3875ed29 --- /dev/null +++ b/dev/cvslargo/listes-rules/alliance/unsubscribe.txt @@ -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: +-- diff --git a/dev/cvslargo/listes-rules/archi/rc.custom b/dev/cvslargo/listes-rules/archi/rc.custom new file mode 100644 index 00000000..b75a6119 --- /dev/null +++ b/dev/cvslargo/listes-rules/archi/rc.custom @@ -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 diff --git a/dev/cvslargo/listes-rules/defaults/.procmailrc b/dev/cvslargo/listes-rules/defaults/.procmailrc new file mode 100644 index 00000000..1324b5d0 --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/.procmailrc @@ -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 diff --git a/dev/cvslargo/listes-rules/defaults/rc.archive b/dev/cvslargo/listes-rules/defaults/rc.archive new file mode 100644 index 00000000..b898a3e9 --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/rc.archive @@ -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 diff --git a/dev/cvslargo/listes-rules/defaults/rc.custom b/dev/cvslargo/listes-rules/defaults/rc.custom new file mode 100644 index 00000000..5534c27f --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/rc.custom @@ -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 diff --git a/dev/cvslargo/listes-rules/defaults/rc.init b/dev/cvslargo/listes-rules/defaults/rc.init new file mode 100644 index 00000000..541471cc --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/rc.init @@ -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 diff --git a/dev/cvslargo/listes-rules/defaults/rc.main b/dev/cvslargo/listes-rules/defaults/rc.main new file mode 100644 index 00000000..af8a7adb --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/rc.main @@ -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 diff --git a/dev/cvslargo/listes-rules/defaults/rc.post b/dev/cvslargo/listes-rules/defaults/rc.post new file mode 100644 index 00000000..e84a2b2b --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/rc.post @@ -0,0 +1,17 @@ +#$Id: rc.post,v 1.1 2000/04/05 15:09:45 czo Exp $ +MAILDIR=../$defaults # back to the defaults directory +LOGFILE=log # enabled by default, because when processing + # reaches this point, some unusual circumstance + # has occurred. +LOGABSTRACT=yes + +:0 : +* !listmaster ?? . +request + +:0 w +| formail -R"From X-From_:" -iDate: -iReturn-Receipt-To: -iRead-Receipt-To: \ + -iAcknowledge-To: | $SENDMAIL $sendmailOPT $sendmailOPTp $listmaster + +:0: +request diff --git a/dev/cvslargo/listes-rules/defaults/rc.request b/dev/cvslargo/listes-rules/defaults/rc.request new file mode 100644 index 00000000..b8957dc4 --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/rc.request @@ -0,0 +1,348 @@ +# BEFORE editing this file, you should make sure that it is not linked to +# the master version (../.etc/rc.request) anymore (i.e. "delink rc.request" +# if you do not want your changes to affect all lists). +# +# New mails can be temporarily stalled by creating the file rc.lock (either in +# ../.etc for all lists or in the current directory for this list only). + +#$Id: rc.request,v 1.1 2000/04/05 15:09:45 czo Exp $ + +INCLUDERC=$RC_INIT +INCLUDERC=$RC_CUSTOM + +INCLUDERC=$RC_LOCAL_REQUEST_00 + +LOCKFILE=tmp.lock # for reusing tmp.(request|from) + # also makes sure that the load doesn't go sky-high + # when a lot of mail arrives concurrently + +:0 Bfw # concatenate header and body +* $^^$X_COMMAND: +| sed -e '1,/^$/{' -e '/^$/d' -e '}' + +# +# We now check: +# If the length is roughly within bounds. +# That it is not a reply or something. +# That we didn't send it ourselves. +# That it wasn't sent by a daemon of some kind. +# +# If everything matches, we extract the sender address into tmp.from +# + +:0 +* B ?? < 4096 +* $$daemon_bias +* $!^(X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:) +* -100^0 ^FROM_DAEMON +* 1^0 +{ + +:0 +* -100^0 ^Subject:(.*[^a-z])?(Re:|erro|change|problem|((can)?not|.*n't)\>) +* 100^0 B ?? ^^([ ]|$)*\ + ((archives?:?($|[ ]+)|\ + ((un)subscribe|(send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\ + list|show|search|[fe]?grep|find|maxfiles|version|help|info)\ + ([ ].*)?$)([ ]|$)*)+\ + ([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^ +* 100^0 ^Subject:[ ]*archive +* 1^0 +{ + :0 whc + | formail -rtzc -xTo: >tmp.from + +# +# Store the whole mail in tmp.request, for later reference. +# + + :0 wc + | formail -IIn-Reply-To: -ICc: >tmp.request + +# +# Check for a missing Subject: line. +# + + :0 wfh + * !^Subject: + | formail -a "Subject: " + + INCLUDERC=$RC_LOCAL_REQUEST_10 + +############################################################################### +# Reader beware, the following four regular expressions are not for the faint # +# of heart. It'll suffice to say that they accomplish their intended job 98% # +# of the time. # +############################################################################### + +# +# Is it an archive retrieval command? +# + + :0 HB w + * 9876543210^0 ^^(.+$)*Subject:[ ]*(([(<]no(ne| subject\ + ( (\(file transmission|given))?)[>)])?\ + $(.+$)*(^[ ]*)+)?(archives?:?([ ]|$)|\ + ((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|list|show|\ + search|[fe]?grep|find|maxfiles|version)([ ]+[^ ]*)?$) + * 1^0 B ?? ^^([ ]|$)*\ + ((archives?:?($|[ ]+)|\ + ((send|get)(me)?|gimme|retrieve|mail|ls|dir(ectory)?|\ + list|show|search|[fe]?grep|find|maxfiles|version|help|info)\ + ([ ].*)?$)([ ]|$)*)+\ + ([^ a-z].*$(.*$(.*$(.*$(.*$)?)?)?)?)?^^ + { + :0 W + * 9876543210^0 !restrict_archive ?? y + * 2^0 ? formail -rt -R To: "From " -X "From " | \ + multigram -b1 -m -l$submit_threshold -L$domain \ + -x$listaddr -x$listreq accept accept2 + | arch_retrieve + + :0 E fhw + | formail -A "X-Diagnostic: Not on the accept list" + } + +# +# Is it an unsubscription request? +# + + :0 EHB + * 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\ + ( (\(file transmission|given))?)[>)])?(\ + ($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\ + (Could you )?(please )?\ + (sign( [^ ]+ |-)?off|cancel|leave|delete|remove|(un|de)-?sub)\>|\ + ($(.+$)*$(.*$)*)?(.*[^a-z])?\ + ((un-?|(un|de)-?sub?)s(cr|c|r)i|\ + (leave|(delete|remove) .* from|(sign|take|get) .* off) .* [a-z-]*list\>)) + * 1^0 B ?? ^^([ ]|$)*unsub(scribe)?([ ].*)?([ ]|$)*\ + [^ a-z]?^^ + { + :0 fw:dist.lock + * auto_unsubscribe ?? y + | unsubscribe + + :0 Aw ${cc_unsubrequests:+c} + | $SENDMAIL $sendmailOPT `cat tmp.from` ; + + :0 Afhw + | formail -A "X-Diagnostic: Processed" + } + + +# +# Is it a subscription request? +# + + :0 EHB + * 9876543210^0 ^^(.+$)*Subject:[ ]*([(<]no(ne| subject\ + ( (\(file transmission|given))?)[>)])?(\ + ($(.+$)*(^[ ]*)+((.+|$)+[,.:;]([ ]+|$)+)?)?\ + (Could you )?(please )?\ + (sign( [^ ]+ |-)?on|add|join|sub)\>|\ + ($(.+$)*$(.*$)*)?(.*[^a-z])?\ + (sub?s(cr|c|r)i.*|(join|add .* to|(sign|put) .* on) .* [a-z-]*list\>)) + * 1^0 B ?? ^^([ ]|$)*sub(scribe)?([ ].*)?([ ]|$)*\ + [^ a-z]?^^ + { + # + # Yes, well, then check if the person subscribing isn't on the reject + # list. + # + + :0 HB wfh + * ? multigram -b1 -l$reject_threshold reject + | formail -A "X-Diagnostic: Found on the reject list" \ + -A "X-Diagnostic: `multigram -b1 -l$reject_threshold reject`" + + # + # If not, then let's see if he might already be on the + # mailinglist. + # + + :0 E HB wfh + * ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \ + multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist + | formail -A "X-Diagnostic: Already on the subscriber list" \ + -A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \ + -l$reject_threshold dist`" + + # + # If not, add him(/her/it?). + # + + :0 E + * auto_subscribe ?? y + { + :0 W ${cc_requests:+c}:dist.lock + | subscribe + + :0 awfh + | formail -A "X-Diagnostic: Added to the subscriber list" + + :0 Ewfh + | formail -A "X-Diagnostic: Tried to subscribe" + } + } + +# +# Is it an info or help request? Send back the help.txt and the +# optional info.txt file. +# We do the same on a complete empty mail (except for perhaps a signature). +# + + :0 EHB + * 3^0 ^^(.+$)*Subject:[ ]*\ + (([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$\ + (.+$)*(^[ ]*)+)?[a-z,. ]*(help|info(rmation)?)\> + * 1^0 ^^(.+$)*Subject:[ ]*\ + ([(<]no(ne| subject( (\(file transmission|given))?)[>)])?$ + * -2^0 ^^(.+$)*(^[ ]*)+[a-z] + * 3^0 ^^(.+$)*^([ ]*$)*-- + { + :0 hw ${cc_requests:+c} + | (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \ + cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t + + :0 wfh + | formail -A "X-Diagnostic: help sent" + } + + INCLUDERC=$RC_LOCAL_REQUEST_20 + + LOGABSTRACT=yes + +# +# If auto_help is set, anything undecipherable gets back the help.txt and the +# optional info.txt file. +# + + :0 EB + * auto_help ?? y + * $!X-Loop: $\listaddr + { + :0 hw ${cc_requests:+c} + | (formail -i"From: $listreq" -rtA"X-Loop: $listaddr"; \ + cat help.txt info.txt 2>/dev/null ) | $SENDMAIL $sendmailOPT -t + + :0 wfh + | formail -A "X-Diagnostic: undecipherable, help sent" + } + +} +} + +LOGABSTRACT=yes + +# +# Could it be a bounce message from a daemon? Hand it down to procbounce +# which will evaluate it. +# + +:0 wic +* $!^(Subject:(.*[^a-z])?Re:|\ + X-(Loop: $\listaddr|Diagnostic:)|$X_COMMAND:) +* ^FROM_DAEMON +| sed -e $cutoff_bounce' q' >tmp.request + + # + # Sink all messages we can recognise to be queue warnings + # + + :0 Ah + * ^Subject: \ + (WARNING: message delayed|\ + (Returned mail: )?warning: c(an|ould )not send m(essage fo|ail afte)r|\ + Undeliverable (RFC822 )?mail: temporarily unable to deliver|\ + \*\*\* WARNING - Undelivered mail in mailqueue) + /dev/null + + :0 Ah + * ^Subject: (Warning from|mail warning| ?Waiting mail) + * ^(From|Sender):.*(uucp|mmdf) + /dev/null + + :0 AhBD + * $^(..?)?X-Loop: $\listaddr \(bounce\) + * ^(..?)?Subject: You have been removed from + /dev/null + + # + # Anything that still survived is most likely to be a bounce message. + # + + :0 Ahfw + | procbounce + +# +# Or is it a remote X-Command from our maintainer? +# + +:0 wf:dist.lock +* $^$X_COMMAND:.*$\maintainer[ ]*$\X_COMMAND_PASSWORD +* $!^X-Loop: $\listaddr +| x_command + +LOCKFILE # we don't need the lockfile anymore + +# +# Anything not taken care of yet will be served to the maintainer of the list. +# +# To make it easier on him, we include a small hint about what might be the +# problem (by adding X-Diagnostic: fields to the header). +# + +:0 wfh +* !< $size_limit +| formail -A "X-Diagnostic: Submission size exceeds $size_limit bytes" + +:0 wfh +* ^FROM_DAEMON +| formail -A "X-Diagnostic: Mail coming from a daemon, ignored" + +:0 HB wfh +* $^X-Loop: $\listaddr +| formail -A "X-Diagnostic: Possible loopback problem" + +:0 +* !^X-(Diagnostic|Processed): +{ + :0 wfh + * $^$X_COMMAND: + | formail -A "X-Diagnostic: Suspicious $X_COMMAND format" + + :0 HB wfh + * ? formail -IReceived: -IX-Envelope-To: -IIn-Reply-To: -ICc: | \ + multigram -b1 -x$listreq -x$listaddr -l$reject_threshold dist + | formail -A "X-Diagnostic: Already on the subscriber list" \ + -A "X-Diagnostic: `multigram -b1 -x$listreq -x$listaddr \ + -l$reject_threshold dist`" +} + +INCLUDERC=$RC_LOCAL_REQUEST_30 + +:0 wfh +* !^X-(Diagnostic|Processed): +| formail -A"X-Diagnostic: Unprocessed" + +:0 wfh +| formail -A"X-Envelope-To: $X_ENVELOPE_TO" + +# +# If this list does not have a maintainer e-mail address, drop things in +# the file request. +# + +:0: +* !maintainer ?? . +request + +:0 w +| formail -R"From X-From_:" -iDate: -iReturn-Receipt-To: -iRead-Receipt-To: \ + -iAcknowledge-To: | $SENDMAIL $sendmailOPT $sendmailOPTp $maintainer + +:0 wfh +| formail -A"X-Diagnostic: Maintainer $maintainer could not be reached" + +HOST=continue_with_../.etc/rc.post diff --git a/dev/cvslargo/listes-rules/defaults/rc.submit b/dev/cvslargo/listes-rules/defaults/rc.submit new file mode 100644 index 00000000..0022bc8b --- /dev/null +++ b/dev/cvslargo/listes-rules/defaults/rc.submit @@ -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 >$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 diff --git a/dev/cvslargo/listes-rules/help/rc.custom b/dev/cvslargo/listes-rules/help/rc.custom new file mode 100644 index 00000000..e3272357 --- /dev/null +++ b/dev/cvslargo/listes-rules/help/rc.custom @@ -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 diff --git a/dev/cvslargo/listes-rules/hyp b/dev/cvslargo/listes-rules/hyp new file mode 100755 index 00000000..4a8959a3 --- /dev/null +++ b/dev/cvslargo/listes-rules/hyp @@ -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}" + diff --git a/dev/cvslargo/listes-rules/hypermail/.hmrc b/dev/cvslargo/listes-rules/hypermail/.hmrc new file mode 100644 index 00000000..24fabfe9 --- /dev/null +++ b/dev/cvslargo/listes-rules/hypermail/.hmrc @@ -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
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
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 +# +# +# The 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 statement | NONE ] +# +# Set this to the line to use when generating the HTML pages. +# Set to "NONE" to use the builtin line by default. + +#hm_body = +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 + diff --git a/dev/cvslargo/listes-rules/hypermail/hypermail-footer.hyp b/dev/cvslargo/listes-rules/hypermail/hypermail-footer.hyp new file mode 100644 index 00000000..8fe46e04 --- /dev/null +++ b/dev/cvslargo/listes-rules/hypermail/hypermail-footer.hyp @@ -0,0 +1,9 @@ + +

---------

+ +\nThis archive was generated by +%u. + + + + diff --git a/dev/cvslargo/listes-rules/hypermail/hypermail-index.hyp b/dev/cvslargo/listes-rules/hypermail/hypermail-index.hyp new file mode 100644 index 00000000..6008348e --- /dev/null +++ b/dev/cvslargo/listes-rules/hypermail/hypermail-index.hyp @@ -0,0 +1,17 @@ + + + + + +%l: %s + + + + + + + +

%l
%s

+

---------

+
+ diff --git a/dev/cvslargo/listes-rules/hypermail/hypermail-msg.hyp b/dev/cvslargo/listes-rules/hypermail/hypermail-msg.hyp new file mode 100644 index 00000000..d4401ba2 --- /dev/null +++ b/dev/cvslargo/listes-rules/hypermail/hypermail-msg.hyp @@ -0,0 +1,18 @@ + + + + + +%A +%S +%l: %s + + + + + + +

%s

+

---------

+
+ diff --git a/dev/cvslargo/listes-rules/hypreset b/dev/cvslargo/listes-rules/hypreset new file mode 100755 index 00000000..8c58998c --- /dev/null +++ b/dev/cvslargo/listes-rules/hypreset @@ -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 + + diff --git a/dev/cvslargo/listes-rules/splitmailbyyear b/dev/cvslargo/listes-rules/splitmailbyyear new file mode 100755 index 00000000..dc9e2768 --- /dev/null +++ b/dev/cvslargo/listes-rules/splitmailbyyear @@ -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 ; +}' diff --git a/dev/cvslargo/www/cgi-bin/czo/counter.cgi b/dev/cvslargo/www/cgi-bin/czo/counter.cgi new file mode 100755 index 00000000..296a6b5c --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/counter.cgi @@ -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 .= ""; + $j++; +} + +################# +# Write the generated HTML to STDOUT +print "Content-Type: text/html\n\n"; +print "
$myNumber
\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 = ; + 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); +} diff --git a/dev/cvslargo/www/cgi-bin/czo/execasimut.cgi b/dev/cvslargo/www/cgi-bin/czo/execasimut.cgi new file mode 100755 index 00000000..a9fea9aa --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/execasimut.cgi @@ -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
\n"; +#} + +print "\n"; +print "\n"; +print " Simulation Asimut\n"; +print "\n"; +print "\n"; +print "
\n";
+
+       # Read a text file and print it out
+ #                 while (<$filename>) {
+  #                   print "$_
\n\n"; + # } + +# $type = $query->uploadInfo($filename)->{'Content-Type'}; +# unless ($type eq 'text/html') { +# die "HTML FILES ONLY!"; +# } + +$filename = $query->param('vbe'); +#print "

$filename
\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 "
Exec done...\n
"; + +open ( RESULT, "( cd $TMP ; . /users/soft5/newlabo/alliance/share/etc/alc_env.sh ; asimut -b description unproc_patterns res_patterns ) 2>&1 |" ); + +while () { +print ; +} +close RESULT ; +print "
done...\n
"; +print "
Vous pouvez recuper le fichier de pat simulé ici\n
"; +print "
\n"; + + +print "\n"; +print "\n"; + diff --git a/dev/cvslargo/www/cgi-bin/czo/flag.cgi b/dev/cvslargo/www/cgi-bin/czo/flag.cgi new file mode 100755 index 00000000..ececb628 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/flag.cgi @@ -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 + +
+[FRENCH] [ENGLISH] +
+
+ +EOF + +fi + diff --git a/dev/cvslargo/www/cgi-bin/czo/index.html b/dev/cvslargo/www/cgi-bin/czo/index.html new file mode 100644 index 00000000..20c20858 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/index.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + +

ERROR :

+ +

 

+ +

This page does not +exist.

+ +

Please notify its +maintainer.

+ +

( You can use the +link on the lower left corner of this page to mail its +maintainer. )

+ + + + + + + diff --git a/dev/cvslargo/www/cgi-bin/czo/lock.cgi b/dev/cvslargo/www/cgi-bin/czo/lock.cgi new file mode 100755 index 00000000..6bd15b2b --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/lock.cgi @@ -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(); + + + diff --git a/dev/cvslargo/www/cgi-bin/czo/maintenedby.cgi b/dev/cvslargo/www/cgi-bin/czo/maintenedby.cgi new file mode 100755 index 00000000..ef57bb65 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/maintenedby.cgi @@ -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 ''$FINGER'' + diff --git a/dev/cvslargo/www/cgi-bin/czo/my.cgi b/dev/cvslargo/www/cgi-bin/czo/my.cgi new file mode 100755 index 00000000..3b388522 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/my.cgi @@ -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)"; + + +Mikodocs Guide to HTML: My CGI + + + +

Env

+ +(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 "

\n" if @params; + +foreach $paramKey (@params) + { + print ""; + + #---------------------------------------------------------------- + # value + # + $inputdata=$query->param($paramKey); + $fileinfo=$query->uploadInfo($inputdata); + + # if it's an uploaded file + if (defined($fileinfo)) + { + print ""; # name of field + print "\n"; + } + # + # value + #---------------------------------------------------------------- + + print "\n"; + } + +# close table if necessary +print "
", tablesc($paramKey), "\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 + "\n"; + } + } + + # else just print the field + else + { + print + "\n"; + } + } + + # output the file size + seek($inputdata,0,2); # go to end of file handle + print "\n"; + print "
", + tablesc($dispieces[0]), + "", + tablesc($dispieces[1]), + "
", + tablesc($key), + "", + tablesc($val), + "
size", + tell($inputdata), + "
"; # + } + + # 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 "
", + tablesc($paramKey), "
";
+
+        #out put value(s) for field
+        foreach $inputVal (@inputVals)
+            {$inputVal = tablesc($inputVal)}
+        print join("
",@inputVals), 
+            "

\n" if @params; + +# +# list +#============================================================================ + + +#============================================================================ +# bottom of document +# + +# ************************************************************************ +# *** IF YOU COPY My CGI, ABSOLUTELY PLEASE DO NOT CHANGE THIS SECTION *** +# ************************************************************************ + +print <<"(END BOTTOM OF PAGE)"; +


+ + +(END BOTTOM OF PAGE) +# +# bottom of document +#============================================================================ + + +#============================================================================ +# tablesc +# return   undefined or for space-only/empty string, +# otherwise change < > and & to character entities +# +sub tablesc +{ +return " " if (! defined $_[0]) || ($_[0] !~ m|\S|); +$_[0] =~ s|&|&|gso; +$_[0] =~ s|<|<|gso; +$_[0] =~ s|>|>|gso; +$_[0]; +} +# +# tablesc +#============================================================================ diff --git a/dev/cvslargo/www/cgi-bin/czo/printenv.cgi b/dev/cvslargo/www/cgi-bin/czo/printenv.cgi new file mode 100755 index 00000000..7f4ade74 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/printenv.cgi @@ -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
\n"; +} + diff --git a/dev/cvslargo/www/cgi-bin/czo/private/.htaccess b/dev/cvslargo/www/cgi-bin/czo/private/.htaccess new file mode 100644 index 00000000..dc068e5a --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/private/.htaccess @@ -0,0 +1,4 @@ +AuthName "Confidentiel ASIM (intranet)" +AuthType Basic +AuthUserFile /users/largo2/webmastr/ASIM-AuthUserFile +require user asim diff --git a/dev/cvslargo/www/cgi-bin/czo/private/search-intranet.cgi b/dev/cvslargo/www/cgi-bin/czo/private/search-intranet.cgi new file mode 100755 index 00000000..290f99f7 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/private/search-intranet.cgi @@ -0,0 +1,82 @@ +#!/asim/gnu/bin/perl +# (C) Copyright 1997,98 Czo +# 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 ' '; +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 "

";
+open RESULT, "/asim/gnu/bin/swish-e -m 40 -f /users/soft5/webmastr/wwwroot/cgi-bin/intranet.dat -w $str |";
+
+
+$cpt = 0;
+while () {
+#    chop;
+#print ;
+
+    m/err: no results/ && do
+    {
+      print 'No match found. ';
+      print '';
+     };
+
+    m/^# Number of hits: (.*)/ && do 
+    {
+      print ''.$1.' matches were found. ';
+      print '';
+     };
+
+    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 '

'.$cpt.'. ['.$tmp1.'%] '.$res3.'
+[URL: '.$res2.']
+Page size '.$tmp.' Kb

' ; +#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\\)/\\\\1\\<\\/B\\>/g'`; +# print "

Containing : \n$RR\n
\n" ; + }; +# print ''.$cpt.'- http://mpc.lip6.fr'.$file.'
'; +# +} +# +close(RESULT); + + +print "$SEARCH_FOOTER\n$ASIM_FOOTER\n"; +exit 0 +__END__ + diff --git a/dev/cvslargo/www/cgi-bin/czo/private/search.log b/dev/cvslargo/www/cgi-bin/czo/private/search.log new file mode 100644 index 00000000..43b127eb --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/private/search.log @@ -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 diff --git a/dev/cvslargo/www/cgi-bin/czo/search.cgi b/dev/cvslargo/www/cgi-bin/czo/search.cgi new file mode 100755 index 00000000..aa117c89 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/search.cgi @@ -0,0 +1,195 @@ +#!/usr/local/bin/perl +# (C) Copyright 1997,98 Czo +# 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 ' '; +print "$SEARCH_MIDDLE\n"; + print 'Sorry, server was busy, please try again.'; +print "\n"; +print "$SEARCH_FOOTER\n$ASIM_FOOTER\n"; + } +else { + +print "$ASIM_HEADER\n$SEARCH_HEADER\n"; +print ' '; +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 "
";
+
+open RESULT, "/usr/local/bin/swish-e -m 40 -f $scopefile -w $str |";
+
+$cpt = 0;
+while () {
+#    chop;
+#print ;
+
+    m/err: no results/ && do
+    {
+      $nmatch=0;
+      print 'No match found in "'.$scope.'". ';
+      print '';
+     };
+
+    m/^# Number of hits: (.*)/ && do 
+    {
+      $nmatch=$1;
+      print ''.$1.' matches were found in "'.$scope.'". ';
+      print '';
+     };
+
+    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 '

'.$cpt.'. ['.$tmp1.'%] '.$res3.'
+[URL: '.$res2.']
+Page size '.$tmp.' Kb

' ; +#Last modified 7-Oct-97 - + +# $file=$res2; +# $file =~ s%http://www-asim.lip6.fr/%/users/largo2/webmastr/wwwroot/%; +# +# # print "

$file\n

"; +# +# #$FILE = `/asim/gnu/bin/lynxx -dump -reload -nolist $file`; +# $FILE = `cat $file`; +# +# $FILE =~ s/
/ - /sg; +# $FILE =~ s/


/ - /sg; +# $FILE =~ s/
  • / - /sg; +# $FILE =~ s/
    / - /sg; +# $FILE =~ s/
    / - /sg; +# $FILE =~ s/

    / - /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)%\1%si; +# }; +# +# print "... $grep ...

    \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__ + + diff --git a/dev/cvslargo/www/cgi-bin/czo/searchres.cgi b/dev/cvslargo/www/cgi-bin/czo/searchres.cgi new file mode 100755 index 00000000..e7aa379b --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/searchres.cgi @@ -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 () { + 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 < +Swish found the following items, listed in order of computed relevance
    +Your Search for $query, returned $count Items +

    +
    +
      +Search_Results + +foreach (@results) { + select(STDOUT); + ($stringone, $title, $filesize) = split(/\"/, $_); + ($rank, $url) = split(/ /, $stringone); + print "
    • $title
      \n"; +} + +print "
    \n"; +&html_trailer; + +} + +#Subroutine for printing a generic HTML header. + +sub html_header { + +$document_title = $_[0]; + +print < + +$document_title + + +

    $document_title

    +HTML_Header +} + +#Subroutine for printing a generic HTML trailer. + +sub html_trailer { + +print < + + +HTML_Trailer + +exit; + +} + +#Subroutine for printing error messages. + +sub search_error { + +&html_header("Search Error"); +$error_message = $_[0]; +print "

    \n$error_message

    \n"; +&html_trailer; + +} diff --git a/dev/cvslargo/www/cgi-bin/czo/searchwais.cgi b/dev/cvslargo/www/cgi-bin/czo/searchwais.cgi new file mode 100755 index 00000000..9a98070c --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/searchwais.cgi @@ -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 '

    Search result for query "'.$str.'"

    '; + +open RESULT, "/usr/local/bin/waisq -f - -g -s $WAISDIR -S mpc.src -g $str | grep :headline |"; + +print ''; + +print "
    ";
    +$cpt = 0;
    +while () {
    +    chop;
    +    m/^#/ && next;
    +    m/:headline "(.*) (.*)"/ && do { $file = $2.$1; };
    +    $file =~ s%.*cvs/alex/MPC-OS/docs/www%%;
    +    $cpt++;
    +    print '
    '; + +} + +close(RESULT); + +print '
    '.$cpt.'- http://mpc.lip6.fr'.$file.'

    +
    +
    Search: + +
    +
    +'; +print "$FOOTER\n$STOP\n"; + +__END__ + diff --git a/dev/cvslargo/www/cgi-bin/czo/startform.cgi b/dev/cvslargo/www/cgi-bin/czo/startform.cgi new file mode 100755 index 00000000..9d9fa6c7 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/startform.cgi @@ -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 "

    Example CGI.pm Form

    \n"; +&print_prompt($query); +&do_work($query); +&print_tail; +print $query->end_html; + +sub print_prompt { + my($query) = @_; + + print $query->startform; + print "What's your name?
    "; + print $query->textfield('name'); + print $query->checkbox('Not my real name'); + +print $query->filefield('uploaded_file','starting value',50,80); +# ACCEPT="filetype/*" + print "

    Where can you find English Sparrows?
    "; + print $query->checkbox_group( + -name=>'Sparrow locations', + -values=>[England,France,Spain,Asia,Hoboken], + -linebreak=>'yes', + -defaults=>[England,Asia]); + + print "

    How far can they fly?
    ", + $query->radio_group( + -name=>'how far', + -values=>['10 ft','1 mile','10 miles','real far'], + -default=>'1 mile'); + + print "

    What's your favorite color? "; + print $query->popup_menu(-name=>'Color', + -values=>['black','brown','red','yellow'], + -default=>'red'); + + print $query->hidden('Reference','Monty Python and the Holy Grail'); + + print "

    What have you got there?
    "; + print $query->scrolling_list( + -name=>'possessions', + -values=>['A Coconut','A Grail','An Icon', + 'A Sword','A Ticket'], + -size=>5, + -multiple=>'true'); + + print "

    Any parting comments?
    "; + print $query->textarea(-name=>'Comments', + -rows=>10, + -columns=>50); + + print "

    ",$query->reset; + print $query->submit('Action','Shout'); + print $query->submit('Action','Scream'); + print $query->endform; + print "


    \n"; +} + +sub do_work { + my($query) = @_; + my(@values,$key); + + print "

    Here are the current settings in this form

    "; + + foreach $key ($query->param) { + print "$key -> "; + @values = $query->param($key); + print join(", ",@values),"
    \n"; + } +} + +sub print_tail { +$filename = $query->param('uploaded_file'); + +print "

    $filename
    \n\n"; + +# Read a text file and print it out +# while (<$filename>) { +# print; +# } + + $type = $query->uploadInfo($filename)->{'Content-Type'}; + print "

    $type
    \n\n"; +# unless ($type eq 'text/html') { +# die "HTML FILES ONLY!"; +# } + +print "

    fini
    \n\n"; + + # Copy a binary file to somewhere safe + open (OUTFILE,">/tmp.vbe"); + while ($bytesread=read($filename,$buffer,1024)) { + print OUTFILE $buffer; + } + +print "

    fini
    \n\n"; +print < +
    Lincoln D. Stein

    +Home Page +END +} diff --git a/dev/cvslargo/www/cgi-bin/czo/test.cgi b/dev/cvslargo/www/cgi-bin/czo/test.cgi new file mode 100755 index 00000000..a9a263e2 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/test.cgi @@ -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 / + diff --git a/dev/cvslargo/www/cgi-bin/czo/testtime.cgi b/dev/cvslargo/www/cgi-bin/czo/testtime.cgi new file mode 100755 index 00000000..b5b873b1 --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/testtime.cgi @@ -0,0 +1,7 @@ +#!/usr/local/bin/perl -w +use POSIX; +$TIME=strftime(" %Y/%m/%d %H:%M:%S",localtime()); +#$TIME=localtime(); +print $TIME ; + + diff --git a/dev/cvslargo/www/cgi-bin/czo/wwwlog.cgi b/dev/cvslargo/www/cgi-bin/czo/wwwlog.cgi new file mode 100755 index 00000000..c664c4ef --- /dev/null +++ b/dev/cvslargo/www/cgi-bin/czo/wwwlog.cgi @@ -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; +