home *** CD-ROM | disk | FTP | other *** search
- Subject: v16i077: IDA Sendmail kit, Part05/08
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Lennart Lovstrand <lovstran@arisia.xerox.com>
- Posting-number: Volume 16, Issue 77
- Archive-name: ida2/part05
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 5 (of 8)."
- # Contents: ida/lib/xaliases ida/patches/parseaddr.c.diff
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f ida/lib/xaliases -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"ida/lib/xaliases\"
- else
- echo shar: Extracting \"ida/lib/xaliases\" \(16825 characters\)
- sed "s/^X//" >ida/lib/xaliases <<'END_OF_ida/lib/xaliases'
- X##########################################################################
- X## Alias file for IDA.LiU.SE aka liuida.UUCP ##
- X##########################################################################
- X# Aliases in this file will NOT be expanded in message headers.
- X#
- X# Aliases are recognized in any mix of upper and lower case,
- X# since they are all converted to lower case.
- X#
- X# >>>>>>>>>> A consequence of the above line is that mail
- X# >> BUG! >> can't be aliased to addresses with capital
- X# >>>>>>>>>> letters (eg. files).
- X#
- X# >>>>>>>>>> The program "newaliases" may need to be run after
- X# >> NOTE >> this file is updated for any changes to
- X# >>>>>>>>>> show through to sendmail.
- X#
- X##
- X
- X# Following alias is required by the new mail protocol, RFC 822
- X# Set it to the address of a HUMAN who deals with this system's mail problems.
- XPostmaster@ida: lel@ida
- XPostmaster: Postmaster@ida
- X
- X# Alias for mailer daemon; returned messages from our MAILER-DAEMON
- X# should be routed to our local Postmaster.
- XMAILER-DAEMON, MAILER-DAEMON@ida: Postmaster@ida
- X
- X# Aliases to handle mail to programs or files, eg news
- Xb-smtp, b-smtp@ida: "|egrep '^#' | sed 's/^#//' | /usr/lib/sendmail -bs"
- Xdecode, decode@ida: "|/usr/bin/uudecode"
- Xnamelist, namelist@ida: "|/usr/lib/uucp/reclist"
- Xnobody, nobody@ida: /dev/null
- Xrnews, rnews@ida: "|/usr/lib/news/uurec"
- X
- Xxlp@ida, xlp-e-1tr@ida: xlp-e-1tr-s@ida
- Xxlp-e-bv@ida: xlp-e-bv-s@ida
- Xxlp-b-1tr@ida: xlp-b-1tr-s@ida
- X
- Xxlp-e-1tr-e@ida: "|/usr/lib/mail/mahafilter -Pxlp-e-1tr"
- Xxlp-e-bv-e@ida: "|/usr/lib/mail/mahafilter -Pxlp-e-bv"
- Xxlp-b-1tr-e@ida: "|/usr/lib/mail/mahafilter -Pxlp-b-1tr"
- X
- Xxlp-e-1tr-s@ida: "|/usr/lib/mail/mahafilter -Pxlp-e-1tr -S"
- Xxlp-e-bv-s@ida: "|/usr/lib/mail/mahafilter -Pxlp-e-bv -S"
- Xxlp-b-1tr-s@ida: "|/usr/lib/mail/mahafilter -Pxlp-b-1tr -S"
- X
- Xalw, alw-e-1tr: "|lpr -Palw"
- X
- X#########################################################################
- X# Specific mail -> news entries #
- X#########################################################################
- X
- Xtest-news@ida: "|/usr/lib/news/inews -h -n test"
- X
- Xida-mac@ida: "|/usr/lib/news/altrecnews ida.mac"
- X
- Xowner-ida-mac@ida: Postmaster@ida
- X
- X#########################################################################
- X# Misc generic system users #
- X#########################################################################
- X
- Xnews, news@ida: Postmaster@ida
- Xusenet, usenet@ida: Postmaster@ida
- Xdaemon, daemon@ida: Postmaster@ida
- Xuucp, uucp@ida: Postmaster@ida
- X
- X#########################################################################
- X# Misc mail group links #
- X#########################################################################
- X
- XIDA, IDA@IDA, IDA@LiU.SE: IDA@LISBET
- XADB@ida: ADB@LISBET
- XAIELAB@ida, AILAB@ida: AIELAB@LISBET
- XASLAB@ida: ASLAB@LISBET
- XCADLAB@ida: CADLAB@LISBET
- XLIBLAB@ida: LIBLAB@LISBET
- XNLPLAB@ida: NLPLAB@LISBET
- XPELAB@ida: PELAB@LISBET
- XRKLLAB@ida, RKL@ida: RKLLAB@LISBET
- X
- Xowner-IDA, owner-IDA@IDA, owner-IDA@LiU.SE: Postmaster@ida
- Xowner-ADB@ida: Postmaster@ida
- Xowner-AIELAB@ida: Postmaster@ida
- Xowner-ASLAB@ida: Postmaster@ida
- Xowner-CADLAB@ida: Postmaster@ida
- Xowner-LIBLAB@ida: Postmaster@ida
- Xowner-NLPLAB@ida: Postmaster@ida
- Xowner-PELAB@ida: Postmaster@ida
- X
- X#########################################################################
- X# Arpanet mail group links #
- X#########################################################################
- X
- Xakt@ida: AKT@LISBET
- XARPAnet-BBoards@ida: ARPANET-BBOARDS@LISBET
- XExPhi-Group@ida: :include:/usr/lib/mail/groups/exphi-group
- XHorse-List@ida: HORSE-LIST@LISBET
- XIDA-Info-1100@ida: :include:/usr/lib/mail/groups/ida-info-1100
- XIDA-Bug-1100@ida: BUG-1100@LISBET
- Xida-info-gnu@ida: :include:/usr/lib/mail/groups/ida-info-gnu
- XInfo-Postscript@ida: INFO-POSTSCRIPT@LISBET
- Xlll@ida: LASER-LOVERS@LISBET, Leif.Finmo@IDA
- XMusic-Research@ida: MUSIC-RESEARCH@LISBET, JANNE@TOKER
- XNL-KR@ida: NL-KR@LISBET
- XParsym@ida: PARSYM@LISBET
- XProlog-Digest@ida: PROLOG-DIGEST@LISBET
- XPsychNet@ida: PsychNet@LISBET
- XSMAuG@ida: SMAuG@LISBET
- Xsunflash@ida: :include: /usr/lib/mail/groups/sunflash
- XTekTCP@ida: TEKTCP@LISBET
- XTeXHAX@ida: TEXHAX@LISBET, Arne.Faldt@IDA
- Xtester@ida: :include:/usr/lib/mail/groups/foo
- XTOPS-20-Experts@ida: lenlo@ida, arnfa@ida
- XTransputer@ida: Transputer@LISBET, "|/usr/lib/news/altrecnews -h -a daemon@ida.liu.se -n fa.transputer"
- X
- Xowner-akt@ida: Postmaster@ida
- Xowner-ARPAnet-BBoards@ida: Postmaster@ida
- Xowner-ExPhi-Group@ida: Postmaster@ida
- Xowner-Horse-List@ida: Postmaster@ida
- Xowner-IDA-Info-1100@ida: Postmaster@ida
- Xowner-IDA-Bug-1100@ida: Postmaster@ida
- Xowner-ida-info-gnu@ida: Postmaster@ida
- Xowner-Info-Postscript@ida: Postmaster@ida
- Xowner-lll@ida: Postmaster@ida
- Xowner-Music-Research@ida: Postmaster@ida
- Xowner-nl-kr@ida: Postmaster@ida
- Xowner-parsym@ida: Postmaster@ida
- Xowner-prolog-digest@ida: Postmaster@ida
- Xowner-psychnet@ida: Postmaster@ida
- Xowner-SMAuG@ida: Postmaster@ida
- Xowner-sunflash@ida: Postmaster@ida
- Xowner-TekTCP@ida: Postmaster@ida
- Xowner-TeXHAX@ida: Postmaster@ida
- Xowner-tester@ida: lel@ida
- Xowner-TOPS-20-Experts@ida: Postmaster@ida
- Xowner-Transputer@ida: Postmaster@ida
- X
- X#########################################################################
- X# Individual local aliases #
- X#########################################################################
- X
- Xlennart: lenlo
- Xlin-p: linpa (Lin Padgham)
- X
- Xbly@ida: jbl@ida (Bryan Lyles)
- Xbud@ida: hla@ida (Harald Lawson)
- Xes@ida: ejs@ida (Erik Sandewall)
- Xjac@ida: lel@ida (Jacek's mail sent to LeL)
- Xjanba@ida: lel@ida (Janell's mail sent to lel)
- Xjim@ida: jwg@ida (James W Goodwin)
- Xlpa@ida: lin@ida (Lin Padgham)
- Xola@ida: olast@ida
- Xpeter-f@ida: petfr@majestix (Peter Fritzsons bror, suck)
- Xralf@ida: rni@ida (Ralf Nilsson)
- Xralf-n@ida: rni@ida (Ralf Nilsson)
- Xralf_n@ida: rni@ida (Ralf Nilsson)
- Xrolf-k@ida: rolka@ida (Rolf Karlsson)
- Xsandewal@ida: ejs@ida (Erik Sandewall)
- Xsandewall@ida: ejs@ida (Erik Sandewall)
- X
- XvaxTest@ida: lennart@hazel (testing, testing...)
- X
- X# Temporary due to enea/seismo lossage
- Xj-maluszynski@ida: J-MALUSZYNSKI@LISBET
- Xl-lovstrand@ida: L-LOVSTRAND@LISBET
- Xw-drabent@ida: W-DRABENT@LISBET
- X
- X
- X#########################################################################
- X# Signature aliases #
- X# #
- X# The format here is: #
- X# signature, altsign, full.name: alias-list #
- X# where alias-list is a comma and/or newline-separated list of user #
- X# names. Each user name may be headed by a '<' and/or '>' with the #
- X# following meaning: #
- X# > user -- mail to this sign/full.name is delivered to the user #
- X# < user -- mail from this user is rewritten with the signature #
- X# as new sender #
- X# <> user -- the combination of the above #
- X# user -- same as '> user' #
- X# #
- X# BE AWARE! This special '<>' syntax is quite in antagony with RFC822 #
- X# and was adapted only for its simplicity. Any suggestions #
- X# for an alternative syntax are warmly welcomed. #
- X#########################################################################
- X
- Xaha@ida, andha@ida, Anders.Haraldsson@ida: <> A-HARALDSSON@LISBET
- Xajl@ida, andli@ida, Andrzej.Lingas@ida, lingas@ida: <> A-LINGAS@LISBET
- Xaka@ida, andka@ida, Andreas.Kagedal@ida: <> A-KAGEDAL@LISBET
- Xalu@ida, andlu@ida, Anders.Lundberg@ida: <> A-LUNDBERG@LISBET
- Xamj@ida, annja@ida, Anne-Marie.Jacobsson@ida: <> AM-JACOBSON@LISBET
- Xany@ida, andny@ida, Anders.Nyberg@ida: <> A-NYBERG@LISBET, < andny
- Xaoa@ida, andal@ida, Anders.Aleryd@ida: <> A-ALERYD@LISBET, < andal
- Xara@ida, andra@ida, Anders.Rantila@ida: <> A-RANTILA@LISBET, < ara
- Xarf@ida, arnfa@ida, Arne.Faldt@ida: <> A-FAELDT@LISBET, <> arnfa
- Xarj@ida, arnjo@ida, Arne.Jonsson@ida: <> ARNE-J@LISBET, < arnjo
- Xaro@ida, annro@ida, Annie.Rostlinger@ida: <> A-ROSTLINGER@LISBET
- X#-- saknar userid!
- Xast@ida, arnst@ida, Arne.Stahre@ida: <> A-STAHRE@LISBET, < arnst
- Xato@ida, andto@ida, Anders.Torne@ida: <> A-TORNE@LISBET
- Xava@ida, arjva@ida, Arja.Vainio-Larsson@ida: <> A-VAINIO@LISBET
- Xban@ida, bjoni@ida, Bjorn.Nilsson@ida: <> B-NILSSON@LISBET, < bjoni
- Xbaw@ida, andwi@ida, Andreas.Wickberg@ida: <> A-WICKBERG@LISBET, < andwi
- Xbda@ida, birda@ida, Birgitta.Dahlgren@ida: <> B-DAHLGREN@LISBET
- Xbek@ida, barek@ida, Barbara.Ekman@ida: <> BARBARA@LISBET
- Xbfa@ida, bjofj@ida, Bjorn.Fjellborg@ida, bfj@ida: <> B-FJELLBORG@LISBET
- Xbkn@ida, berni@ida, Bernt.Nilsson@ida: <> BERNT-N@LISBET, < berni
- Xbln@ida, benle@ida, Bengt.Lennartsson@ida: < BENGT@LISBET, <> bln
- Xbma@ida, briah@ida, Britt-Marie.Ahlenback@ida: <> BM-AHLENBECK@LISBET
- Xbmk@ida, bodma@ida, Bodil.Mattson-Kihlstrom@ida: <> B-KIHLSTROM@LISBET
- Xbod@ida, benod@ida, Benny.Odenteg@ida: <> B-ODENTEG@LISBET
- Xbol@ida, birol@ida, Birgitta.Olander@ida, bio@ida: <> B-OLANDER@LISBET, < birol
- Xbro@ida, borro@ida, Borje.Rosenberg@ida: <> B-ROSENBERG@LISBET
- Xbsu@ida, bosu@ida, Bo.Sundgren@ida: <> B-SUNDGREN@LISBET
- Xcba@ida, chrba@ida, Christer.Backstrom@ida: <> C-BACKSTROM@LISBET
- Xccg@ida, chrgn@ida, Christian.Gnosspelius@ida: <> C-GNOSSPELIUS@LISBET, < chrgn
- Xcha@ida, chrha@ida, Christer.Hansson@ida: <> C-HANSSON@LISBET, < chrha
- Xchl@ida, chrle@ida, Christos.Levcopoulos@ida: <> CHRISTOS@LISBET, < chrle
- Xcib@ida, carbj@ida, Carina.Bjorkman@ida: <> CARINA@LISBET
- Xcil@ida, clail@ida, Claes.Illergard@ida: <> C-ILLERGARD@LISBET, < clail
- Xckr@ida, chrkr@ida, Christian.Krysander@ida: <> CHRISTIAN@LISBET, < chrkr
- Xdbu@ida, doubu@ida, Douglas.Busch@ida: <> D-BUSCH@LISBET
- Xddr@ida, dimdr@ida, Dimiter.Driankov@ida: <> D-DRIANKOV@LISBET, < dimdr
- Xdif@ida, dimfo@ida, Dimitrios.Fotiades@ida: <> DIMITRIOS@LISBET, < dimfo
- Xeat@ida, erite@ida, Erik.Tengvald@ida: <> E-TENGVALD@LISBET, < erite
- Xecs@ida, evasv@ida, Eva-Chris.Svensson@ida: <> EVA-CHRIS@LISBET
- Xejs@ida, erisa@ida, Erik.Sandewall@ida: <> E-SANDEWALL@LISBET, < erisa
- Xeno@ida, erlno@ida, Erling.Nordmark@ida: <> E-NORDMARK@LISBET
- Xfli@ida, freli@ida, Fredrik.Lindstrom@ida: <> F-LINDSTROM@LISBET
- Xggo@ida, gorgo@ida, Goran.Goldkuhl@ida: <> G-GOLDKUHL@LISBET
- Xgka@ida, gorka@ida, Goran.Karlsson@ida: <> G-KARLSON@LISBET
- Xglt@ida, gunli@ida, Gunilla.Lingenhult@ida: <> G-LINGENHULT@LISBET
- Xgni@ida, gosni@ida, Gosta.Nilsson@ida: <> G-NILSSON@LISBET
- Xher@ida, hener@ida, Henrik.Eriksson@ida: <> H-ERIKSSON@LISBET, < her
- Xhbl@ida, hanbl@ida, Hans.Block@ida: <> H-BLOCK@LISBET
- Xheh@ida, hanho@ida, Hans.Holmgren@ida: <> H-HOLMGREN@LISBET, < hanho
- Xhjk@ida, janko@ida, Jan.Komorowski@ida: <> J-KOMOROWSKI@LISBET
- Xhla@ida, harla@ida, Harold.Lawson@ida, budla@ida, Bud.Lawson@ida: <> BUD@LISBET, < harla
- Xhno@ida, henno@ida, Henrik.Nordin@ida: <> H-NORDIN@LISBET, < henno
- Xhst@ida, hakst@ida, Hakan.Straaf@ida: <> H-STRAAF@LISBET
- Xime@ida, ingem@ida, Inger.Emanuelson@ida: <> INGER@LISBET, < ingem
- Xira@ida, ivara@ida, Ivan.Rankin@ida: <> I-RANKIN@LISBET, < ivara
- Xjas@ida, johan@ida, Johan.Andersson@ida: <> JOHAN@LISBET, < johan
- Xjbl@ida, bryly@ida, Bryan.Lyles@ida: > Lyles.wbst@Xerox.COM
- X#-- tills vidare
- Xjfa@ida, johfa@ida, Johan.Fagerstrom@ida: <> J-FAGERSTROM@LISBET, < johfa
- Xjhu@ida, johhu@ida, Johan.Hultman@ida: <> J-HULTMAN@LISBET, < johhu
- Xjlo@ida, jonlo@ida, Jonas.Lowgren@ida: <> J-LOWGREN@LISBET, < jlo
- Xjma@ida, jalma@ida, Jalal.Maleki@ida: <> JALAL@LISBET, < jalma
- Xjmz@ida, janma@ida, Jan.Maluszynski@ida: <> J-MALUSZYNSKI@LISBET, < janma
- Xjwc@ida, jonwa@ida, Jonas.Wallgren@ida: <> J-WALLGREN@LISBET
- Xjwg@ida, jamgo@ida, James.Goodwin@ida, James.W.Goodwin@ida, jimgo@ida, Jim.Goodwin@ida: <> JIM@LISBET, < jimgo
- Xkku@ida, krzku@ida, Krzysztof.Kuchcinski@ida, krk@ida: <> K-KUCHCINSKI@LISBET, < krzku
- Xkol@ida, kerol@ida, Kerstin.Olsson@ida: <> K-OLSSON@LISBET, < kerol
- Xkre@ida, krier@ida, Kristina.Ernstsson@ida: <> KRISTINA@LISBET, < krier
- Xkrs@ida, krisa@ida, Kristian.Sandahl@ida: <> K-SANDAHL@LISBET, < krisa
- Xkry@ida, kevry@ida, Kevin.Ryan@ida: <> K-RYAN@LISBET, < kevry
- Xksd@ida, katsu@ida, Katarina.Sunnerud@ida: <> KATARINA@LISBET, < katsu
- Xlah@ida, larah@ida, Lars.Ahrenberg@ida: <> L-AHRENBERG@LISBET
- Xlbe@ida, larbe@ida, Lars.Bengtsson@ida: <> L-BENGTSSON@LISBET, < larbe
- Xlbf@ida, leifi@ida, Leif.Finmo@ida: <> LEIF@LISBET, < leifi
- Xlbj@ida, lisbj@ida, Lisbet.Bjorklund@ida: <> L-BJORKLUND@LISBET
- Xlel@ida, lenlo@ida, Lennart.Lovstrand@ida: <> L-LOVSTRAND@LISBET,
- X < lel@obelix, < LENNART@HAZEL, <> lenlo
- Xlew@ida, lilwa@ida, Lillemor.Wallgren@ida: <> LILLEMOR@LISBET
- Xlin@ida, linpa@ida, Lin.Padgham@ida: < L-PADGHAM@LISBET, <> linpa
- Xlli@ida, lisli@ida, Lisbeth.Linge@ida: <> LISBETH@LISBET
- Xlra@ida, lisra@ida, Lise-Lotte.Raunio@ida: <> L-RAUNIO@LISBET
- Xlro@ida, lenro@ida, Lennart.Rohlin@ida: <> L-ROHLIN@LISBET
- Xlst@ida, larst@ida, Lars.Stromberg@ida: <> L-STROMBERG@LISBET, < larst
- Xlwi@ida, larwi@ida, Lars.Wikstrand@ida: <> L-WIKSTRAND@LISBET
- Xmak@ida, marka@ida, Mariam.Kamkar@ida: <> MARIAM@LISBET, < marka
- Xmgw@ida, matwi@ida, Mats.Wiren@ida: <> M-WIREN@LISBET, < matwi
- Xmij@ida, maljo@ida, Malin.Johansson@ida: <> MALIN@LISBET
- Xmip@ida, mikpa@ida, Mikael.Patel@ida: <> MIKAEL@LISBET, < mikpa
- Xmja@ida, manja@ida, Manny.Jagerfeld@ida: <> M-JAGERFELD@LISBET
- Xmme@ida, magme@ida, Magnus.Merkel@ida: <> M-MERKEL@LISBET
- Xmre@ida, micre@ida, Michael.Reinfrank@ida: <> M-REINFRANK@LISBET
- X# reinfra@ztivax.UUCP
- Xmru@ida, matru@ida, Mats.Rundquist@ida: <> M-RUNDQUIST@LISBET, < mru
- Xmsa@ida, matan@ida, Mats.S.Andersson@ida, masan@ida, Mats.Andersson@ida: <> MATS@LISBET, < msa
- Xmsv@ida, miksv@ida, Mikael.Svensson@ida: <> M-SVENSSON@LISBET, < miksv
- Xnda@ida, nilda@ida, Nils.Dahlback@ida: <> N-DAHLBACK@LISBET
- Xnka@ida, naika@ida, Nail.Kavak@ida: <> N-KAVAK@LISBET, < naika
- Xnos@ida, nossh@ida, Nosrat.Shahsavar@ida: <> N-SHAHSAVAR@LISBET, < nos
- Xnsh@ida, nahsh@ida, Nahid.Shahmehri@ida: <> NAHID@LISBET, < nahsh
- Xoha@ida, oveha@ida, Ove.Hanebring@ida: <> O-HANEBRING@LISBET
- Xope@ida, olape@ida, Ola.Petersson@ida: <> O-PETERSSON@LISBET
- Xowl@ida, ollwi@ida, Olle.Willen@ida: <> OLLE-W@LISBET, < ollwi
- Xpab@ida, petab@ida, Peter.Aberg@ida: <> P-ABERG@LISBET, < pab
- Xpaf@ida, petfr@ida, Peter.Fritzson@ida: < P-FRITZSON@LISBET, <> petfr
- Xpdy@ida, patdo@ida, Patrick.Doherty@ida, pdo@ida: <> P-DOHERTY@LISBET, < patdo
- X#pem@ida, parem@ida, Par.Emanuelson@ida: <> PAER@LISBET
- Xpha@ida, petha@ida, Peter.Haneklou@ida: <> P-HANEKLO@LISBET, < petha
- Xphj@ida, hakja@ida, Hakan.Jakobsson@ida: <> H-JAKOBSSON@LISBET, < hakja
- Xpjn@ida, pejni@ida, Peter.J.Nilsson@ida: <> PJ-NILSSON@LISBET, <> pjn, < PJN@HAZEL
- Xplo@ida, petlo@ida, Peter.Loborg@ida: <> P-LOBORG@LISBET
- Xpkw@ida, kriwa@ida, Kristian.Wallin@ida: <> K-WALLIN@LISBET
- Xplv@ida, pablo@ida, Pablo.Lozan-Villegas@ida: <> P-LOZAN-VILLEGAS@LISBET
- Xpsn@ida, pesni@ida, Peter.S.Nilsson@ida, pni@ida: <> P-NILSSON@LISBET, < pesni
- X# vilken g{ller? 'psn' torde vara b{ttre (med tanke p} 'pjn')
- Xpso@ida, palso@ida, Pal.Sorgaard@ida: <> P-SORGAARD@LISBET
- Xpuo@ida, perov@ida, Per.Overnas@ida: <> PER@LISBET, < perov
- Xrhj@ida, rolhj@ida, Roland.Hjerppe@ida: <> R-HJERPPE@LISBET, < rolhj
- Xrka@ida, rolka@ida, Rolf.Karlsson@ida: <> R-KARLSSON@LISBET, < rolka
- Xrni@ida, ralni@ida, Ralf.Nilsson@ida: <> ralni, < RALF-N@LISBET
- X#-- slutat
- Xrob@ida, robbi@ida, Rober.Bilos@ida: <> ROBER@LISBET, < robbi
- Xron@ida, rolni@ida, Rolf.Nilsson@ida: <> R-NILSSON@LISBET
- Xrre@ida, rolre@ida, Roland.Rehmnert@ida: <> R-REHMNERT@LISBET, < rolre
- Xsbo@ida, stabo@ida, Staffan.Bonnier@ida: <> S-BONNIER@LISBET, < stabo
- Xrrq@ida, ralro@ida, Ralph.Ronnquist@ida: <> RALPH-RONNQUIST@LISBET, < ralro
- Xrzo@ida, rogzo@ida, Roger.Zollner@ida: <> R-ZOLLNER@LISBET
- Xsha@ida, steha@ida, Stefan.Hammar@ida: <> S-HAMMAR@LISBET
- Xsic@ida, shach@ida, Shamsul.Chowdhury@ida: <> SHAMSUL@LISBET, < shach
- Xsmn@ida, svemo@ida, Sven.Moen@ida: < S-MOEN@LISBET, <> svemo
- Xsnt@ida, simna@ida, Simin.Nadjm-Tehrani@ida: <> S-NADJM-TEHRANI@LISBET, < snt
- Xsos@ida, olast@ida, Ola.Stromfors@ida: < OLA@LISBET, <> ola
- Xsso@ida, sivso@ida, Siv.Soderlund@ida: <> S-SODERLUND@LISBET
- Xsth@ida, stuha@ida, Sture.Hagglund@ida: <> STURE@LISBET, < stuha
- Xswr@ida, stewr@ida, Stefan.Wrammerfors@ida: <> stewr
- Xtao@ida, tomol@ida, Tommy.Olsson@ida: <> TOMMY@LISBET, < tao
- Xtha@ida, timha@ida, Tim.Hansen@ida: <> T-HANSEN@LISBET
- Xtla@ida, tonla@ida, Tony.Larsson@ida: <> T-LARSSON@LISBET, < tonla
- Xton@ida, torna@ida, Torbjorn.Naslund@ida, tna@ida: < T-NASLUND@LISBET, <> torna
- Xtoh@ida, tomoh@ida, Tommy.Ohlsson@ida: <> T-OHLSSON@LISBET
- Xtor@ida, totna@ida, Torbjorn.Naslund.ADB@ida: <> TORBJORN-NASLUND-ADB@LISBET
- Xtps@ida, tomso@ida, Tomas.Sokolnicki@ida: <> T-SOKOLNICKI@LISBET
- Xtri@ida, tomri@ida, Tom.Rindborg@ida: <> T-RINDBORG@LISBET, < tomri
- Xtti@ida, tooti@ida, Toomas.Timpka@ida: <> T-TIMPKA@LISBET
- Xuda@ida, ulfda@ida, Ulf.Dahlen@ida: <> U-DAHLEN@LISBET, < uda
- Xurn@ida, ulfni@ida, Ulf.Nilsson@ida: <> U-NILSSON@LISBET, < ulfni
- Xwdr@ida, wlodr@ida, Wlodek.Drabent@ida, Wlodzimierz.Drabent@ida: <> W-DRABENT@LISBET, < wlodr
- Xyla@ida, yngla@ida, Yngve.Larsson@ida: < Y-LARSSON@LISBET, <> yngla
- Xzpe@ida, zebpe@ida, Zebo.Peng@ida: <> ZEBO@LISBET, < zebpe
- END_OF_ida/lib/xaliases
- if test 16825 -ne `wc -c <ida/lib/xaliases`; then
- echo shar: \"ida/lib/xaliases\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f ida/patches/parseaddr.c.diff -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"ida/patches/parseaddr.c.diff\"
- else
- echo shar: Extracting \"ida/patches/parseaddr.c.diff\" \(21670 characters\)
- sed "s/^X//" >ida/patches/parseaddr.c.diff <<'END_OF_ida/patches/parseaddr.c.diff'
- X*** parseaddr.c.orig Mon Mar 14 05:31:53 1988
- X--- parseaddr.c Wed Aug 31 14:31:06 1988
- X***************
- X*** 450,455 ****
- X--- 450,459 ----
- X }
- X if (c == MATCHCLASS || c == MATCHREPL || c == MATCHNCLASS)
- X return (ONE);
- X+ #ifdef MACVALUE
- X+ if (c == MACVALUE)
- X+ return (ONE);
- X+ #endif MACVALUE
- X if (c == '"')
- X return (QST);
- X if (!isascii(c))
- X***************
- X*** 500,510 ****
- X--- 504,523 ----
- X
- X # define MAXMATCH 9 /* max params per rewrite */
- X
- X+ static int nrw;
- X
- X rewrite(pvp, ruleset)
- X char **pvp;
- X int ruleset;
- X {
- X+ nrw = 0;
- X+ _rewrite(pvp, ruleset);
- X+ }
- X+
- X+ _rewrite(pvp, ruleset)
- X+ char **pvp;
- X+ int ruleset;
- X+ {
- X register char *ap; /* address pointer */
- X register char *rp; /* rewrite pointer */
- X register char **avp; /* address vector pointer */
- X***************
- X*** 513,527 ****
- X register struct rewrite *rwr; /* pointer to current rewrite rule */
- X struct match mlist[MAXMATCH]; /* stores match on LHS */
- X char *npvp[MAXATOM+1]; /* temporary space for rebuild */
- X
- X if (OpMode == MD_TEST || tTd(21, 2))
- X {
- X printf("rewrite: ruleset %2d input:", ruleset);
- X! printav(pvp);
- X }
- X if (pvp == NULL)
- X return;
- X
- X /*
- X ** Run through the list of rewrite rules, applying
- X ** any that match.
- X--- 526,552 ----
- X register struct rewrite *rwr; /* pointer to current rewrite rule */
- X struct match mlist[MAXMATCH]; /* stores match on LHS */
- X char *npvp[MAXATOM+1]; /* temporary space for rebuild */
- X+ char tokbuf[MAXNAME+1]; /* for concatenated class tokens */
- X+ int nloops, nmatches = 0; /* for looping rule checks */
- X
- X if (OpMode == MD_TEST || tTd(21, 2))
- X {
- X printf("rewrite: ruleset %2d input:", ruleset);
- X! printcav(pvp);
- X }
- X if (pvp == NULL)
- X return;
- X
- X+ if (++nrw > 100) {
- X+ char buf[MAXLINE];
- X+
- X+ buf[0] = buf[MAXLINE-1] = 0;
- X+ while (*pvp)
- X+ strncat(buf, *pvp++, sizeof buf);
- X+ syserr("address causes rewrite loop: <%s>", buf);
- X+ return;
- X+ }
- X+
- X /*
- X ** Run through the list of rewrite rules, applying
- X ** any that match.
- X***************
- X*** 533,539 ****
- X if (tTd(21, 12))
- X {
- X printf("-----trying rule:");
- X! printav(rwr->r_lhs);
- X }
- X # endif DEBUG
- X
- X--- 558,564 ----
- X if (tTd(21, 12))
- X {
- X printf("-----trying rule:");
- X! printcav(rwr->r_lhs);
- X }
- X # endif DEBUG
- X
- X***************
- X*** 541,548 ****
- X--- 566,579 ----
- X mlp = mlist;
- X rvp = rwr->r_lhs;
- X avp = pvp;
- X+ nloops = 0;
- X while ((ap = *avp) != NULL || *rvp != NULL)
- X {
- X+ if (nloops++ > 200) {
- X+ syserr("Looping on ruleset %d, rule %d",
- X+ ruleset, rwr-RewriteRules[ruleset]);
- X+ break;
- X+ }
- X rp = *rvp;
- X # ifdef DEBUG
- X if (tTd(21, 35))
- X***************
- X*** 568,588 ****
- X switch (*rp)
- X {
- X register STAB *s;
- X
- X- case MATCHCLASS:
- X case MATCHNCLASS:
- X! /* match any token in (not in) a class */
- X s = stab(ap, ST_CLASS, ST_FIND);
- X! if (s == NULL || !bitnset(rp[1], s->s_class))
- X! {
- X! if (*rp == MATCHCLASS)
- X! goto backup;
- X! }
- X! else if (*rp == MATCHNCLASS)
- X goto backup;
- X
- X! /* explicit fall-through */
- X
- X case MATCHONE:
- X case MATCHANY:
- X /* match exactly one token */
- X--- 599,639 ----
- X switch (*rp)
- X {
- X register STAB *s;
- X+ char **oldavp;
- X
- X case MATCHNCLASS:
- X! /* match any single token not in a class */
- X s = stab(ap, ST_CLASS, ST_FIND);
- X! if (s != NULL && bitnset(rp[1], s->s_class))
- X goto backup;
- X
- X! /* match exactly one token */
- X! mlp->first = avp;
- X! mlp->last = avp++;
- X! mlp++;
- X! break;
- X
- X+ case MATCHCLASS:
- X+ /* match any token in a class */
- X+ /* slow, concat version by lel@ida.liu.se */
- X+ /* handles multi-token class matches, though */
- X+ oldavp = avp;
- X+ *tokbuf = NULL;
- X+ do {
- X+ if (*avp == NULL) {
- X+ avp = oldavp;
- X+ goto backup;
- X+ }
- X+ strcat(tokbuf, *avp++);
- X+ s = stab(tokbuf, ST_CLASS, ST_FIND);
- X+ } while (s == NULL ||
- X+ !bitnset(rp[1], s->s_class));
- X+
- X+ mlp->first = oldavp;
- X+ mlp->last = avp-1;
- X+ mlp++;
- X+ break;
- X+
- X case MATCHONE:
- X case MATCHANY:
- X /* match exactly one token */
- X***************
- X*** 615,620 ****
- X--- 666,702 ----
- X while (--rvp >= rwr->r_lhs)
- X {
- X rp = *rvp;
- X+ if (*rp == MATCHCLASS) {
- X+ register STAB *s;
- X+ char **oldavp;
- X+
- X+ /* attempt to extend binding */
- X+ /* slow, concat version by lel@ida.liu.se */
- X+
- X+ oldavp = avp;
- X+ *tokbuf = NULL;
- X+ for (avp = mlp[-1].first;
- X+ avp <= mlp[-1].last; avp++)
- X+ strcat(tokbuf, *avp);
- X+
- X+ do {
- X+ if (*avp == NULL) {
- X+ /* back out binding */
- X+ avp = oldavp;
- X+ mlp--;
- X+ goto cantextend;
- X+ }
- X+ strcat(tokbuf, *avp++);
- X+ s = stab(tokbuf, ST_CLASS, ST_FIND);
- X+ } while (s == NULL ||
- X+ !bitnset(rp[1], s->s_class));
- X+
- X+ /* found an extension */
- X+ mlp[-1].last = avp-1;
- X+ rvp++;
- X+ break;
- X+ }
- X+ cantextend:
- X if (*rp == MATCHANY || *rp == MATCHZANY)
- X {
- X /* extend binding and continue */
- X***************
- X*** 624,631 ****
- X break;
- X }
- X avp--;
- X! if (*rp == MATCHONE || *rp == MATCHCLASS ||
- X! *rp == MATCHNCLASS)
- X {
- X /* back out binding */
- X mlp--;
- X--- 706,712 ----
- X break;
- X }
- X avp--;
- X! if (*rp == MATCHONE || *rp == MATCHNCLASS)
- X {
- X /* back out binding */
- X mlp--;
- X***************
- X*** 650,657 ****
- X--- 731,747 ----
- X printf("----- rule fails\n");
- X # endif DEBUG
- X rwr = rwr->r_next;
- X+ nmatches = 0;
- X continue;
- X }
- X+
- X+ if (nmatches++ > 200) {
- X+ syserr("Loop in ruleset %d, rule %d (too many matches)",
- X+ ruleset, rwr-RewriteRules[ruleset]);
- X+ rwr = rwr->r_next;
- X+ nmatches = 0;
- X+ continue;
- X+ }
- X
- X rvp = rwr->r_rhs;
- X # ifdef DEBUG
- X***************
- X*** 658,664 ****
- X if (tTd(21, 12))
- X {
- X printf("-----rule matches:");
- X! printav(rvp);
- X }
- X # endif DEBUG
- X
- X--- 748,754 ----
- X if (tTd(21, 12))
- X {
- X printf("-----rule matches:");
- X! printcav(rvp);
- X }
- X # endif DEBUG
- X
- X***************
- X*** 667,672 ****
- X--- 757,763 ----
- X {
- X rvp++;
- X rwr = rwr->r_next;
- X+ nmatches = 0;
- X }
- X else if (*rp == CANONHOST)
- X {
- X***************
- X*** 689,695 ****
- X m = &mlist[rp[1] - '1'];
- X if (m >= mlp)
- X {
- X! syserr("rewrite: ruleset %d: replacement out of bounds", ruleset);
- X return;
- X }
- X # ifdef DEBUG
- X--- 780,786 ----
- X m = &mlist[rp[1] - '1'];
- X if (m >= mlp)
- X {
- X! syserr("rewrite: ruleset %d: replacement #%c out of bounds", ruleset, rp[1]);
- X return;
- X }
- X # ifdef DEBUG
- X***************
- X*** 726,732 ****
- X syserr("rewrite: expansion too long");
- X return;
- X }
- X! *avp++ = rp;
- X }
- X }
- X *avp++ = NULL;
- X--- 817,836 ----
- X syserr("rewrite: expansion too long");
- X return;
- X }
- X! #ifdef MACVALUE
- X! if (*rp == MACVALUE) {
- X! extern char *macvalue();
- X! #ifdef DEBUG
- X! char *p = macvalue(rp[1], CurEnv);
- X! if (tTd(21, 2))
- X! printf("expanding runtime macro '%c' to \"%s\"\n",
- X! rp[1], p ? p : "(null)");
- X! #endif DEBUG
- X! if (p)
- X! *avp++ = p;
- X! } else
- X! #endif MACVALUE
- X! *avp++ = rp;
- X }
- X }
- X *avp++ = NULL;
- X***************
- X*** 737,826 ****
- X
- X for (rvp = npvp; *rvp != NULL; rvp++)
- X {
- X! char **hbrvp;
- X char **xpvp;
- X int trsize;
- X char *olddelimchar;
- X! char buf[MAXNAME + 1];
- X char *pvpb1[MAXATOM + 1];
- X char pvpbuf[PSBUFSIZE];
- X extern char *DelimChar;
- X
- X! if (**rvp != HOSTBEGIN)
- X continue;
- X
- X /*
- X! ** Got a hostname lookup.
- X **
- X ** This could be optimized fairly easily.
- X */
- X
- X hbrvp = rvp;
- X
- X /* extract the match part */
- X! while (*++rvp != NULL && **rvp != HOSTEND)
- X continue;
- X if (*rvp != NULL)
- X *rvp++ = NULL;
- X
- X! /* save the remainder of the input string */
- X trsize = (int) (avp - rvp + 1) * sizeof *rvp;
- X bcopy((char *) rvp, (char *) pvpb1, trsize);
- X
- X! /* look it up */
- X! cataddr(++hbrvp, buf, sizeof buf);
- X! maphostname(buf, sizeof buf);
- X!
- X! /* scan the new host name */
- X! olddelimchar = DelimChar;
- X! xpvp = prescan(buf, '\0', pvpbuf);
- X! DelimChar = olddelimchar;
- X! if (xpvp == NULL)
- X! {
- X! syserr("rewrite: cannot prescan canonical hostname: %s", buf);
- X! return;
- X }
- X
- X! /* append it to the token list */
- X! for (avp = --hbrvp; *xpvp != NULL; xpvp++)
- X! {
- X! *avp++ = newstr(*xpvp);
- X! if (avp >= &npvp[MAXATOM])
- X! goto toolong;
- X! }
- X
- X /* restore the old trailing information */
- X! for (xpvp = pvpb1; (*avp++ = *xpvp++) != NULL; )
- X! if (avp >= &npvp[MAXATOM])
- X! goto toolong;
- X
- X! break;
- X }
- X
- X /*
- X ** Check for subroutine calls.
- X */
- X
- X! if (*npvp != NULL && **npvp == CALLSUBR)
- X! {
- X! bcopy((char *) &npvp[2], (char *) pvp,
- X! (int) (avp - npvp - 2) * sizeof *avp);
- X # ifdef DEBUG
- X- if (tTd(21, 3))
- X- printf("-----callsubr %s\n", npvp[1]);
- X- # endif DEBUG
- X- rewrite(pvp, atoi(npvp[1]));
- X- }
- X- else
- X- {
- X- bcopy((char *) npvp, (char *) pvp,
- X- (int) (avp - npvp) * sizeof *avp);
- X- }
- X- # ifdef DEBUG
- X if (tTd(21, 4))
- X {
- X printf("rewritten as:");
- X! printav(pvp);
- X }
- X # endif DEBUG
- X }
- X--- 841,973 ----
- X
- X for (rvp = npvp; *rvp != NULL; rvp++)
- X {
- X! char **hbrvp, **ubrvp;
- X char **xpvp;
- X int trsize;
- X char *olddelimchar;
- X! char hbuf[MAXNAME + 1], ubuf[MAXNAME + 1];
- X char *pvpb1[MAXATOM + 1];
- X char pvpbuf[PSBUFSIZE];
- X+ bool match, defaultpart;
- X extern char *DelimChar;
- X+ char begintype, db;
- X
- X! if (**rvp != HOSTBEGIN && **rvp != KEYBEGIN)
- X continue;
- X
- X /*
- X! ** Got a hostname or database lookup.
- X **
- X ** This could be optimized fairly easily.
- X */
- X
- X+ begintype = **rvp;
- X hbrvp = rvp;
- X+ ubrvp = NULL;
- X
- X+ /* read database name if that's what we're up for */
- X+ if (begintype == KEYBEGIN) {
- X+ if (*++rvp != NULL)
- X+ db = **rvp;
- X+ }
- X+
- X /* extract the match part */
- X! if (begintype == HOSTBEGIN)
- X! while (*++rvp != NULL && **rvp != HOSTEND &&
- X! **rvp != CANONUSER)
- X continue;
- X+ else
- X+ while (*++rvp != NULL && **rvp != KEYEND &&
- X+ **rvp != CANONHOST && **rvp != CANONUSER)
- X+ continue;
- X+ /* got a sprintf argument? */
- X+ if (**rvp == CANONHOST) {
- X+ *rvp = NULL;
- X+ ubrvp = rvp+1;
- X+ while (*++rvp != NULL && **rvp != KEYEND &&
- X+ **rvp != CANONUSER)
- X+ continue;
- X+ }
- X+ defaultpart = **rvp == CANONUSER;
- X if (*rvp != NULL)
- X *rvp++ = NULL;
- X
- X! /* Save the remainder of the input string */
- X trsize = (int) (avp - rvp + 1) * sizeof *rvp;
- X bcopy((char *) rvp, (char *) pvpb1, trsize);
- X
- X! /* Look it up (lowercase version) */
- X! cataddr(hbrvp + (begintype == HOSTBEGIN ? 1 : 2),
- X! hbuf, sizeof hbuf);
- X! if (begintype == HOSTBEGIN)
- X! match = maphostname(hbuf, sizeof hbuf);
- X! else {
- X! if (ubrvp == NULL) {
- X! /* no sprintf argument part */
- X! match = mapkey(db, hbuf, sizeof hbuf, NULL);
- X! } else {
- X! cataddr(ubrvp, ubuf, sizeof ubuf);
- X! match = mapkey(db, hbuf, sizeof hbuf, ubuf);
- X! }
- X }
- X+ if (match || !defaultpart) {
- X+ /* scan the new route/host name */
- X+ olddelimchar = DelimChar;
- X+ xpvp = prescan(hbuf, '\0', pvpbuf);
- X+ DelimChar = olddelimchar;
- X+ if (xpvp == NULL) {
- X+ syserr("rewrite: cannot prescan %s: %s",
- X+ begintype == HOSTBEGIN ?
- X+ "new hostname" :
- X+ "dbm lookup result",
- X+ hbuf);
- X+ return;
- X+ }
- X
- X! /* append it to the token list */
- X! for (avp = hbrvp; *xpvp != NULL; xpvp++) {
- X! *avp++ = newstr(*xpvp);
- X! if (avp >= &npvp[MAXATOM])
- X! goto toolong;
- X! }
- X! } else
- X! avp = hbrvp;
- X
- X /* restore the old trailing information */
- X! rvp = avp - 1;
- X! for (xpvp = pvpb1; *xpvp != NULL; xpvp++) {
- X! if (defaultpart && (begintype == HOSTBEGIN ?
- X! **xpvp == HOSTEND :
- X! **xpvp == KEYEND)) {
- X! defaultpart = FALSE;
- X! rvp = avp - 1;
- X! } else if (!defaultpart || !match)
- X! *avp++ = *xpvp;
- X! if (avp >= &npvp[MAXATOM])
- X! goto toolong;
- X! }
- X! *avp++ = NULL;
- X
- X! /*break;*/
- X }
- X
- X /*
- X ** Check for subroutine calls.
- X+ ** Then copy vector back into original space.
- X */
- X
- X! callsubr(npvp);
- X!
- X! for (avp = npvp; *avp++ != NULL;);
- X! bcopy((char *) npvp, (char *) pvp,
- X! (int) (avp - npvp) * sizeof *avp);
- X!
- X!
- X # ifdef DEBUG
- X if (tTd(21, 4))
- X {
- X printf("rewritten as:");
- X! printcav(pvp);
- X }
- X # endif DEBUG
- X }
- X***************
- X*** 828,837 ****
- X if (OpMode == MD_TEST || tTd(21, 2))
- X {
- X printf("rewrite: ruleset %2d returns:", ruleset);
- X! printav(pvp);
- X }
- X }
- X /*
- X ** BUILDADDR -- build address from token vector.
- X **
- X ** Parameters:
- X--- 975,1033 ----
- X if (OpMode == MD_TEST || tTd(21, 2))
- X {
- X printf("rewrite: ruleset %2d returns:", ruleset);
- X! printcav(pvp);
- X }
- X }
- X /*
- X+ ** CALLSUBR -- call subroutines in rewrite vector
- X+ **
- X+ ** Parameters:
- X+ ** pvp -- pointer to token vector.
- X+ **
- X+ ** Returns:
- X+ ** none.
- X+ **
- X+ ** Side Effects:
- X+ ** pvp is modified.
- X+ */
- X+
- X+ callsubr(pvp)
- X+ char **pvp;
- X+ {
- X+ char **rvp;
- X+ int subr;
- X+
- X+ for (; *pvp != NULL; pvp++)
- X+ if (**pvp == CALLSUBR) {
- X+
- X+ subr = atoi(pvp[1]);
- X+
- X+ # ifdef DEBUG
- X+ if (tTd(21, 3))
- X+ printf("-----callsubr %d\n", subr);
- X+ # endif DEBUG
- X+
- X+ /*
- X+ ** Take care of possible inner calls.
- X+ */
- X+ callsubr(pvp+2);
- X+
- X+ /*
- X+ ** Move vector up over calling opcode.
- X+ */
- X+ for (rvp = pvp+2; *rvp != NULL; rvp++)
- X+ rvp[-2] = rvp[0];
- X+ rvp[-2] = NULL;
- X+
- X+ /*
- X+ ** Call inferior ruleset.
- X+ */
- X+ rewrite(pvp, subr);
- X+
- X+ break;
- X+ }
- X+ }
- X+ /*
- X ** BUILDADDR -- build address from token vector.
- X **
- X ** Parameters:
- X***************
- X*** 899,919 ****
- X a->q_mailer = m;
- X
- X /* figure out what host (if any) */
- X! tv++;
- X! if (!bitnset(M_LOCAL, m->m_flags))
- X! {
- X! if (**tv++ != CANONHOST)
- X! {
- X syserr("buildaddr: no host");
- X return (NULL);
- X! }
- X buf[0] = '\0';
- X! while (*tv != NULL && **tv != CANONUSER)
- X! (void) strcat(buf, *tv++);
- X a->q_host = newstr(buf);
- X }
- X- else
- X- a->q_host = NULL;
- X
- X /* figure out the user */
- X if (**tv != CANONUSER)
- X--- 1095,1112 ----
- X a->q_mailer = m;
- X
- X /* figure out what host (if any) */
- X! if (**++tv != CANONHOST) {
- X! if (!bitnset(M_LOCAL, m->m_flags)) {
- X syserr("buildaddr: no host");
- X return (NULL);
- X! } else
- X! a->q_host = NULL;
- X! } else {
- X buf[0] = '\0';
- X! while (*++tv != NULL && **tv != CANONUSER)
- X! (void) strcat(buf, *tv);
- X a->q_host = newstr(buf);
- X }
- X
- X /* figure out the user */
- X if (**tv != CANONUSER)
- X***************
- X*** 922,931 ****
- X return (NULL);
- X }
- X
- X /* rewrite according recipient mailer rewriting rules */
- X rewrite(++tv, 2);
- X! if (m->m_r_rwset > 0)
- X! rewrite(tv, m->m_r_rwset);
- X rewrite(tv, 4);
- X
- X /* save the result for the command line/RCPT argument */
- X--- 1115,1127 ----
- X return (NULL);
- X }
- X
- X+ /* define tohost before running mailer rulesets */
- X+ define('h', a->q_host, CurEnv);
- X+
- X /* rewrite according recipient mailer rewriting rules */
- X rewrite(++tv, 2);
- X! if (m->m_re_rwset > 0)
- X! rewrite(tv, m->m_re_rwset);
- X rewrite(tv, 4);
- X
- X /* save the result for the command line/RCPT argument */
- X***************
- X*** 1006,1012 ****
- X return (FALSE);
- X
- X /* if the user isn't the same, we can drop out */
- X! if (strcmp(a->q_user, b->q_user) != 0)
- X return (FALSE);
- X
- X /* if the mailer ignores hosts, we have succeeded! */
- X--- 1202,1208 ----
- X return (FALSE);
- X
- X /* if the user isn't the same, we can drop out */
- X! if (strcasecmp(a->q_user, b->q_user))
- X return (FALSE);
- X
- X /* if the mailer ignores hosts, we have succeeded! */
- X***************
- X*** 1016,1022 ****
- X /* otherwise compare hosts (but be careful for NULL ptrs) */
- X if (a->q_host == NULL || b->q_host == NULL)
- X return (FALSE);
- X! if (strcmp(a->q_host, b->q_host) != 0)
- X return (FALSE);
- X
- X return (TRUE);
- X--- 1212,1218 ----
- X /* otherwise compare hosts (but be careful for NULL ptrs) */
- X if (a->q_host == NULL || b->q_host == NULL)
- X return (FALSE);
- X! if (strcasecmp(a->q_host, b->q_host))
- X return (FALSE);
- X
- X return (TRUE);
- X***************
- X*** 1076,1081 ****
- X--- 1272,1279 ----
- X ** rather than the recipient rewriting rules.
- X ** canonical -- if set, strip out any comment information,
- X ** etc.
- X+ ** headeraddress -- if set, use header specific rewriting
- X+ ** rulesets and uurelativize if M_RELATIVIZE is set.
- X **
- X ** Returns:
- X ** the text string representing this address relative to
- X***************
- X*** 1090,1100 ****
- X */
- X
- X char *
- X! remotename(name, m, senderaddress, canonical)
- X char *name;
- X struct mailer *m;
- X bool senderaddress;
- X bool canonical;
- X {
- X register char **pvp;
- X char *fancy;
- X--- 1288,1299 ----
- X */
- X
- X char *
- X! remotename(name, m, senderaddress, canonical, headeraddress)
- X char *name;
- X struct mailer *m;
- X bool senderaddress;
- X bool canonical;
- X+ bool headeraddress;
- X {
- X register char **pvp;
- X char *fancy;
- X***************
- X*** 1112,1118 ****
- X # endif DEBUG
- X
- X /* don't do anything if we are tagging it as special */
- X! if ((senderaddress ? m->m_s_rwset : m->m_r_rwset) < 0)
- X return (name);
- X
- X /*
- X--- 1311,1319 ----
- X # endif DEBUG
- X
- X /* don't do anything if we are tagging it as special */
- X! if ((senderaddress ?
- X! (headeraddress ? m->m_sh_rwset : m->m_se_rwset) :
- X! (headeraddress ? m->m_rh_rwset : m->m_re_rwset)) < 0)
- X return (name);
- X
- X /*
- X***************
- X*** 1158,1180 ****
- X
- X /*
- X ** Do more specific rewriting.
- X! ** Rewrite using ruleset 1 or 2 depending on whether this is
- X! ** a sender address or not.
- X ** Then run it through any receiving-mailer-specific rulesets.
- X */
- X
- X! if (senderaddress)
- X! {
- X! rewrite(pvp, 1);
- X! if (m->m_s_rwset > 0)
- X! rewrite(pvp, m->m_s_rwset);
- X }
- X- else
- X- {
- X- rewrite(pvp, 2);
- X- if (m->m_r_rwset > 0)
- X- rewrite(pvp, m->m_r_rwset);
- X- }
- X
- X /*
- X ** Do any final sanitation the address may require.
- X--- 1359,1391 ----
- X
- X /*
- X ** Do more specific rewriting.
- X! ** Rewrite using ruleset 1 or 2 for envelope addresses and
- X! ** 5 or 6 for header addresses depending on whether this
- X! ** is a sender address or not.
- X ** Then run it through any receiving-mailer-specific rulesets.
- X */
- X
- X! if (senderaddress) {
- X! if (headeraddress) {
- X! rewrite(pvp, SplitRewriting ? 5 : 1);
- X! if (m->m_sh_rwset > 0)
- X! rewrite(pvp, m->m_sh_rwset);
- X! } else {
- X! rewrite(pvp, 1);
- X! if (m->m_se_rwset > 0)
- X! rewrite(pvp, m->m_se_rwset);
- X! }
- X! } else {
- X! if (headeraddress) {
- X! rewrite(pvp, SplitRewriting ? 6 : 2);
- X! if (m->m_rh_rwset > 0)
- X! rewrite(pvp, m->m_rh_rwset);
- X! } else {
- X! rewrite(pvp, 2);
- X! if (m->m_re_rwset > 0)
- X! rewrite(pvp, m->m_re_rwset);
- X! }
- X }
- X
- X /*
- X ** Do any final sanitation the address may require.
- X***************
- X*** 1186,1191 ****
- X--- 1397,1410 ----
- X rewrite(pvp, 4);
- X
- X /*
- X+ ** Check if we're supposed to do make the address
- X+ ** UUCP !-relative to the rcpt host vs ourselves.
- X+ */
- X+
- X+ if (headeraddress && bitnset(M_RELATIVIZE, m->m_flags))
- X+ uurelativize("\001k", "\001h", pvp);
- X+
- X+ /*
- X ** Now restore the comment information we had at the beginning.
- X */
- X
- X***************
- X*** 1199,1202 ****
- X--- 1418,1483 ----
- X printf("remotename => `%s'\n", buf);
- X # endif DEBUG
- X return (buf);
- X+ }
- X+ /*
- X+ ** UURELATIVIZE -- Make an address !-relative to recipient/sender nodes
- X+ **
- X+ ** Parameters:
- X+ ** from -- the sending node (usually "$k" or "$w")
- X+ ** to -- the receiving node (usually "$h")
- X+ ** pvp -- address vector
- X+ **
- X+ ** Returns:
- X+ ** none.
- X+ **
- X+ ** Side Effects:
- X+ ** The pvp is rewritten to be relative the "to" node
- X+ ** wrt the "from" node. In other words, if the pvp
- X+ ** is headed by "to!" that part is stripped; otherwise
- X+ ** "from!" is prepended. Exception: "to!user" addresses
- X+ ** with no '!'s in the user part are sent as is.
- X+ **
- X+ ** Bugs:
- X+ ** The pvp may overflow, but we don't catch it.
- X+ */
- X+
- X+ uurelativize(from, to, pvp)
- X+ char *from, *to;
- X+ char **pvp;
- X+ {
- X+ register char **pxp = pvp;
- X+ char expfrom[MAXNAME], expto[MAXNAME];
- X+
- X+ expand(from, expfrom, &expfrom[sizeof expfrom - 1], CurEnv);
- X+ expand(to, expto, &expto[sizeof expto - 1], CurEnv);
- X+
- X+ /*
- X+ * supposing that we've got something, should
- X+ * we add "from!" or remove "to!"?
- X+ */
- X+ if (pvp[0] != NULL)
- X+ if (pvp[1] == NULL || strcmp(pvp[1], "!") != 0 ||
- X+ /*strcasecmp?*/ strcmp(pvp[0], expto) != 0) {
- X+ /* either local name, no UUCP address, or not to "to!" */
- X+ /* ==> prepend address with "from!" */
- X+
- X+ /* already there? */
- X+ if (pvp[1] == NULL || strcmp(pvp[1], "!") != 0 ||
- X+ /*strcasecmp?*/ strcmp(pvp[0], expfrom) != 0) {
- X+ /* no, put it there */
- X+ while (*pxp != NULL)
- X+ pxp++;
- X+ do
- X+ pxp[2] = *pxp;
- X+ while (pxp-- != pvp);
- X+ pvp[0] = newstr(expfrom);
- X+ pvp[1] = "!";
- X+ }
- X+ } else {
- X+ /* address is to "to!" -- remove if not "to!user" */
- X+ for (pxp = &pvp[2]; *pxp != NULL && strcmp(*pxp, "!") != 0; pxp++);
- X+ if (*pxp != NULL)
- X+ for (pxp = pvp; *pxp != NULL; pxp++)
- X+ *pxp = pxp[2];
- X+ }
- X }
- END_OF_ida/patches/parseaddr.c.diff
- if test 21670 -ne `wc -c <ida/patches/parseaddr.c.diff`; then
- echo shar: \"ida/patches/parseaddr.c.diff\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- echo shar: End of archive 5 \(of 8\).
- cp /dev/null ark5isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 8 archives.
- echo "See ida/README and ida/INSTALL for further directions."
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
-