home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / compsrcs / sun / volume01 / cknfs < prev    next >
SHell self-extracting ARchive  |  1991-08-27  |  14.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: SHell self-extracting ARchive (archive/shar).

You can browse this item here: cknfs

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file C source, ASCII text default
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime application/mbox default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 20 64 65 63 | 77 72 6c 21 75 63 62 76 |From dec|wrl!ucbv|
|00000010| 61 78 21 74 75 74 2e 63 | 69 73 2e 6f 68 69 6f 2d |ax!tut.c|is.ohio-|
|00000020| 73 74 61 74 65 2e 65 64 | 75 21 72 75 74 67 65 72 |state.ed|u!rutger|
|00000030| 73 21 61 72 61 6d 69 73 | 2e 72 75 74 67 65 72 73 |s!aramis|.rutgers|
|00000040| 2e 65 64 75 21 64 61 72 | 74 61 67 6e 61 6e 2e 72 |.edu!dar|tagnan.r|
|00000050| 75 74 67 65 72 73 2e 65 | 64 75 21 6d 63 67 72 65 |utgers.e|du!mcgre|
|00000060| 77 20 4d 6f 6e 20 4a 75 | 6c 20 20 33 20 30 32 3a |w Mon Ju|l 3 02:|
|00000070| 32 31 3a 33 32 20 50 44 | 54 20 31 39 38 39 0a 41 |21:32 PD|T 1989.A|
|00000080| 72 74 69 63 6c 65 20 33 | 35 20 6f 66 20 63 6f 6d |rticle 3|5 of com|
|00000090| 70 2e 73 6f 75 72 63 65 | 73 2e 73 75 6e 3a 0a 50 |p.source|s.sun:.P|
|000000a0| 61 74 68 3a 20 64 65 63 | 77 72 6c 21 75 63 62 76 |ath: dec|wrl!ucbv|
|000000b0| 61 78 21 74 75 74 2e 63 | 69 73 2e 6f 68 69 6f 2d |ax!tut.c|is.ohio-|
|000000c0| 73 74 61 74 65 2e 65 64 | 75 21 72 75 74 67 65 72 |state.ed|u!rutger|
|000000d0| 73 21 61 72 61 6d 69 73 | 2e 72 75 74 67 65 72 73 |s!aramis|.rutgers|
|000000e0| 2e 65 64 75 21 64 61 72 | 74 61 67 6e 61 6e 2e 72 |.edu!dar|tagnan.r|
|000000f0| 75 74 67 65 72 73 2e 65 | 64 75 21 6d 63 67 72 65 |utgers.e|du!mcgre|
|00000100| 77 0a 46 72 6f 6d 3a 20 | 6d 63 67 72 65 77 40 64 |w.From: |mcgrew@d|
|00000110| 61 72 74 61 67 6e 61 6e | 2e 72 75 74 67 65 72 73 |artagnan|.rutgers|
|00000120| 2e 65 64 75 20 28 43 68 | 61 72 6c 65 73 20 4d 63 |.edu (Ch|arles Mc|
|00000130| 67 72 65 77 29 0a 4e 65 | 77 73 67 72 6f 75 70 73 |grew).Ne|wsgroups|
|00000140| 3a 20 63 6f 6d 70 2e 73 | 6f 75 72 63 65 73 2e 73 |: comp.s|ources.s|
|00000150| 75 6e 0a 53 75 62 6a 65 | 63 74 3a 20 76 30 31 69 |un.Subje|ct: v01i|
|00000160| 30 33 33 3a 20 20 43 6b | 6e 66 73 20 2d 20 54 65 |033: Ck|nfs - Te|
|00000170| 73 74 20 4e 46 53 20 70 | 61 74 68 73 20 66 6f 72 |st NFS p|aths for|
|00000180| 20 76 61 6c 69 64 69 74 | 79 0a 4d 65 73 73 61 67 | validit|y.Messag|
|00000190| 65 2d 49 44 3a 20 3c 4a | 75 6e 2e 32 31 2e 31 33 |e-ID: <J|un.21.13|
|000001a0| 2e 33 31 2e 31 36 2e 31 | 39 38 39 2e 32 39 30 33 |.31.16.1|989.2903|
|000001b0| 33 40 64 61 72 74 61 67 | 6e 61 6e 2e 72 75 74 67 |3@dartag|nan.rutg|
|000001c0| 65 72 73 2e 65 64 75 3e | 0a 44 61 74 65 3a 20 32 |ers.edu>|.Date: 2|
|000001d0| 31 20 4a 75 6e 20 38 39 | 20 31 37 3a 33 31 3a 31 |1 Jun 89| 17:31:1|
|000001e0| 38 20 47 4d 54 0a 4f 72 | 67 61 6e 69 7a 61 74 69 |8 GMT.Or|ganizati|
|000001f0| 6f 6e 3a 20 52 75 74 67 | 65 72 73 20 55 6e 69 76 |on: Rutg|ers Univ|
|00000200| 2e 2c 20 4e 65 77 20 42 | 72 75 6e 73 77 69 63 6b |., New B|runswick|
|00000210| 2c 20 4e 2e 4a 2e 0a 4c | 69 6e 65 73 3a 20 36 30 |, N.J..L|ines: 60|
|00000220| 36 0a 41 70 70 72 6f 76 | 65 64 3a 20 6d 63 67 72 |6.Approv|ed: mcgr|
|00000230| 65 77 40 61 72 61 6d 69 | 73 2e 72 75 74 67 65 72 |ew@arami|s.rutger|
|00000240| 73 2e 65 64 75 0a 0a 53 | 75 62 6d 69 74 74 65 64 |s.edu..S|ubmitted|
|00000250| 2d 62 79 3a 20 61 6b 6c | 69 65 74 7a 40 6e 63 73 |-by: akl|ietz@ncs|
|00000260| 61 2e 75 69 75 63 2e 65 | 64 75 0a 50 6f 73 74 69 |a.uiuc.e|du.Posti|
|00000270| 6e 67 2d 6e 75 6d 62 65 | 72 3a 20 56 6f 6c 75 6d |ng-numbe|r: Volum|
|00000280| 65 20 31 2c 20 49 73 73 | 75 65 20 33 33 0a 41 72 |e 1, Iss|ue 33.Ar|
|00000290| 63 68 69 76 65 2d 6e 61 | 6d 65 3a 20 63 6b 6e 66 |chive-na|me: cknf|
|000002a0| 73 0a 0a 23 21 20 2f 62 | 69 6e 2f 73 68 0a 23 20 |s..#! /b|in/sh.# |
|000002b0| 54 68 69 73 20 69 73 20 | 61 20 73 68 65 6c 6c 20 |This is |a shell |
|000002c0| 61 72 63 68 69 76 65 2e | 20 20 52 65 6d 6f 76 65 |archive.| Remove|
|000002d0| 20 61 6e 79 74 68 69 6e | 67 20 62 65 66 6f 72 65 | anythin|g before|
|000002e0| 20 74 68 69 73 20 6c 69 | 6e 65 2c 20 74 68 65 6e | this li|ne, then|
|000002f0| 20 75 6e 70 61 63 6b 0a | 23 20 69 74 20 62 79 20 | unpack.|# it by |
|00000300| 73 61 76 69 6e 67 20 69 | 74 20 69 6e 74 6f 20 61 |saving i|t into a|
|00000310| 20 66 69 6c 65 20 61 6e | 64 20 74 79 70 69 6e 67 | file an|d typing|
|00000320| 20 22 73 68 20 66 69 6c | 65 22 2e 20 20 54 6f 20 | "sh fil|e". To |
|00000330| 6f 76 65 72 77 72 69 74 | 65 20 65 78 69 73 74 69 |overwrit|e existi|
|00000340| 6e 67 0a 23 20 66 69 6c | 65 73 2c 20 74 79 70 65 |ng.# fil|es, type|
|00000350| 20 22 73 68 20 66 69 6c | 65 20 2d 63 22 2e 20 20 | "sh fil|e -c". |
|00000360| 59 6f 75 20 63 61 6e 20 | 61 6c 73 6f 20 66 65 65 |You can |also fee|
|00000370| 64 20 74 68 69 73 20 61 | 73 20 73 74 61 6e 64 61 |d this a|s standa|
|00000380| 72 64 20 69 6e 70 75 74 | 20 76 69 61 0a 23 20 75 |rd input| via.# u|
|00000390| 6e 73 68 61 72 2c 20 6f | 72 20 62 79 20 74 79 70 |nshar, o|r by typ|
|000003a0| 69 6e 67 20 22 73 68 20 | 3c 66 69 6c 65 22 2c 20 |ing "sh |<file", |
|000003b0| 65 2e 67 2e 2e 20 20 49 | 66 20 74 68 69 73 20 61 |e.g.. I|f this a|
|000003c0| 72 63 68 69 76 65 20 69 | 73 20 63 6f 6d 70 6c 65 |rchive i|s comple|
|000003d0| 74 65 2c 20 79 6f 75 0a | 23 20 77 69 6c 6c 20 73 |te, you.|# will s|
|000003e0| 65 65 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |ee the f|ollowing|
|000003f0| 20 6d 65 73 73 61 67 65 | 20 61 74 20 74 68 65 20 | message| at the |
|00000400| 65 6e 64 3a 0a 23 09 09 | 22 45 6e 64 20 6f 66 20 |end:.#..|"End of |
|00000410| 73 68 65 6c 6c 20 61 72 | 63 68 69 76 65 2e 22 0a |shell ar|chive.".|
|00000420| 23 20 43 6f 6e 74 65 6e | 74 73 3a 20 20 63 6b 6e |# Conten|ts: ckn|
|00000430| 66 73 2e 63 0a 23 20 57 | 72 61 70 70 65 64 20 62 |fs.c.# W|rapped b|
|00000440| 79 20 61 6b 6c 69 65 74 | 7a 40 6f 63 63 61 6d 20 |y akliet|z@occam |
|00000450| 6f 6e 20 57 65 64 20 4d | 61 79 20 33 31 20 31 38 |on Wed M|ay 31 18|
|00000460| 3a 32 35 3a 32 32 20 31 | 39 38 39 0a 50 41 54 48 |:25:22 1|989.PATH|
|00000470| 3d 2f 62 69 6e 3a 2f 75 | 73 72 2f 62 69 6e 3a 2f |=/bin:/u|sr/bin:/|
|00000480| 75 73 72 2f 75 63 62 20 | 3b 20 65 78 70 6f 72 74 |usr/ucb |; export|
|00000490| 20 50 41 54 48 0a 69 66 | 20 74 65 73 74 20 2d 66 | PATH.if| test -f|
|000004a0| 20 27 63 6b 6e 66 73 2e | 63 27 20 2d 61 20 22 24 | 'cknfs.|c' -a "$|
|000004b0| 7b 31 7d 22 20 21 3d 20 | 22 2d 63 22 20 3b 20 74 |{1}" != |"-c" ; t|
|000004c0| 68 65 6e 20 0a 20 20 65 | 63 68 6f 20 73 68 61 72 |hen . e|cho shar|
|000004d0| 3a 20 57 69 6c 6c 20 6e | 6f 74 20 63 6c 6f 62 62 |: Will n|ot clobb|
|000004e0| 65 72 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |er exist|ing file|
|000004f0| 20 5c 22 27 63 6b 6e 66 | 73 2e 63 27 5c 22 0a 65 | \"'cknf|s.c'\".e|
|00000500| 6c 73 65 0a 65 63 68 6f | 20 73 68 61 72 3a 20 45 |lse.echo| shar: E|
|00000510| 78 74 72 61 63 74 69 6e | 67 20 5c 22 27 63 6b 6e |xtractin|g \"'ckn|
|00000520| 66 73 2e 63 27 5c 22 20 | 5c 28 31 33 30 38 30 20 |fs.c'\" |\(13080 |
|00000530| 63 68 61 72 61 63 74 65 | 72 73 5c 29 0a 73 65 64 |characte|rs\).sed|
|00000540| 20 22 73 2f 5e 58 2f 2f | 22 20 3e 27 63 6b 6e 66 | "s/^X//|" >'cknf|
|00000550| 73 2e 63 27 20 3c 3c 27 | 45 4e 44 5f 4f 46 5f 46 |s.c' <<'|END_OF_F|
|00000560| 49 4c 45 27 0a 58 2f 2a | 0a 58 20 2a 20 63 6b 6e |ILE'.X/*|.X * ckn|
|00000570| 66 73 20 2d 20 43 68 65 | 63 6b 20 66 6f 72 20 64 |fs - Che|ck for d|
|00000580| 65 61 64 20 4e 46 53 20 | 73 65 72 76 65 72 73 0a |ead NFS |servers.|
|00000590| 58 20 2a 0a 58 20 2a 20 | 44 6f 6e 27 74 20 79 6f |X *.X * |Don't yo|
|000005a0| 75 20 68 61 74 65 20 69 | 74 20 77 68 65 6e 20 79 |u hate i|t when y|
|000005b0| 6f 75 20 6c 6f 67 69 6e | 20 74 6f 20 61 6e 20 4e |ou login| to an N|
|000005c0| 46 53 20 63 6c 69 65 6e | 74 2c 20 6f 6e 6c 79 20 |FS clien|t, only |
|000005d0| 74 6f 20 66 69 6e 64 0a | 58 20 2a 20 79 6f 75 72 |to find.|X * your|
|000005e0| 73 65 6c 66 20 68 75 6e | 67 20 62 65 63 61 75 73 |self hun|g becaus|
|000005f0| 65 20 6f 6e 65 20 6f 66 | 20 79 6f 75 72 20 70 61 |e one of| your pa|
|00000600| 74 68 73 20 70 6f 69 6e | 74 73 20 74 6f 20 61 20 |ths poin|ts to a |
|00000610| 64 65 61 64 20 4e 46 53 | 20 73 65 72 76 65 72 3f |dead NFS| server?|
|00000620| 0a 58 20 2a 20 57 65 6c | 6c 2c 20 74 68 69 73 20 |.X * Wel|l, this |
|00000630| 70 72 6f 67 72 61 6d 20 | 66 69 78 65 73 20 74 68 |program |fixes th|
|00000640| 61 74 20 70 72 6f 62 6c | 65 6d 2e 20 20 49 74 20 |at probl|em. It |
|00000650| 74 61 6b 65 73 20 61 20 | 6c 69 73 74 20 6f 66 20 |takes a |list of |
|00000660| 65 78 65 63 75 74 69 6f | 6e 0a 58 20 2a 20 70 61 |executio|n.X * pa|
|00000670| 74 68 73 20 61 73 20 61 | 72 67 75 6d 65 6e 74 73 |ths as a|rguments|
|00000680| 2e 20 20 20 45 61 63 68 | 20 70 61 74 68 20 69 73 |. Each| path is|
|00000690| 20 65 78 61 6d 69 6e 65 | 64 20 66 6f 72 20 61 6e | examine|d for an|
|000006a0| 20 4e 46 53 20 6d 6f 75 | 6e 74 20 70 6f 69 6e 74 | NFS mou|nt point|
|000006b0| 2e 0a 58 20 2a 20 49 66 | 20 66 6f 75 6e 64 2c 20 |..X * If| found, |
|000006c0| 74 68 65 20 63 6f 72 72 | 65 73 70 6f 6e 64 69 6e |the corr|espondin|
|000006d0| 67 20 4e 46 53 20 73 65 | 72 76 65 72 20 69 73 20 |g NFS se|rver is |
|000006e0| 63 68 65 63 6b 65 64 2e | 20 20 20 50 61 74 68 73 |checked.| Paths|
|000006f0| 20 74 68 61 74 20 6c 65 | 61 64 0a 58 20 2a 20 74 | that le|ad.X * t|
|00000700| 6f 20 64 65 61 64 20 4e | 46 53 20 73 65 72 76 65 |o dead N|FS serve|
|00000710| 72 73 20 61 72 65 20 69 | 67 6e 6f 72 65 64 2e 20 |rs are i|gnored. |
|00000720| 20 54 68 65 20 72 65 6d | 61 69 6e 69 6e 67 20 70 | The rem|aining p|
|00000730| 61 74 68 73 20 61 72 65 | 20 70 72 69 6e 74 65 64 |aths are| printed|
|00000740| 20 74 6f 0a 58 20 2a 20 | 73 74 64 6f 75 74 2e 20 | to.X * |stdout. |
|00000750| 20 4e 6f 20 6d 6f 72 65 | 20 68 75 6e 67 20 6c 6f | No more| hung lo|
|00000760| 67 69 6e 73 21 0a 58 20 | 2a 0a 58 20 2a 20 55 73 |gins!.X |*.X * Us|
|00000770| 61 67 65 3a 20 63 6b 6e | 66 73 20 2d 65 20 2d 73 |age: ckn|fs -e -s|
|00000780| 20 2d 74 23 20 2d 76 20 | 2d 44 20 2d 4c 20 70 61 | -t# -v |-D -L pa|
|00000790| 74 68 73 0a 58 20 2a 20 | 20 0a 58 20 2a 20 20 20 |ths.X * | .X * |
|000007a0| 20 20 20 20 2d 65 20 20 | 20 20 20 73 69 6c 65 6e | -e | silen|
|000007b0| 74 2c 20 64 6f 20 6e 6f | 74 20 70 72 69 6e 74 20 |t, do no|t print |
|000007c0| 70 61 74 68 73 0a 58 20 | 2a 20 20 20 20 20 20 20 |paths.X |* |
|000007d0| 2d 73 20 20 20 20 20 70 | 72 69 6e 74 20 70 61 74 |-s p|rint pat|
|000007e0| 68 73 20 69 6e 20 73 68 | 20 66 6f 72 6d 61 74 20 |hs in sh| format |
|000007f0| 28 63 6f 6c 6f 6e 73 29 | 0a 58 20 2a 20 20 20 20 |(colons)|.X * |
|00000800| 20 20 20 2d 74 20 6e 20 | 20 20 74 69 6d 65 6f 75 | -t n | timeou|
|00000810| 74 20 69 6e 74 65 72 76 | 61 6c 20 62 65 66 6f 72 |t interv|al befor|
|00000820| 65 20 61 73 73 75 6d 69 | 6e 67 20 61 6e 20 4e 46 |e assumi|ng an NF|
|00000830| 53 0a 58 20 2a 20 20 20 | 20 20 20 20 20 20 20 20 |S.X * | |
|00000840| 20 20 20 73 65 72 76 65 | 72 20 69 73 20 64 65 61 | serve|r is dea|
|00000850| 64 20 28 64 65 66 61 75 | 6c 74 20 31 30 20 73 65 |d (defau|lt 10 se|
|00000860| 63 6f 6e 64 73 29 0a 58 | 20 2a 20 20 20 20 20 20 |conds).X| * |
|00000870| 20 2d 76 20 20 20 20 20 | 76 65 72 62 6f 73 65 0a | -v |verbose.|
|00000880| 58 20 2a 20 20 20 20 20 | 20 20 2d 44 20 20 20 20 |X * | -D |
|00000890| 20 64 65 62 75 67 0a 58 | 20 2a 20 20 20 20 20 20 | debug.X| * |
|000008a0| 20 2d 4c 20 20 20 20 20 | 65 78 70 61 6e 64 20 73 | -L |expand s|
|000008b0| 79 6d 62 6f 6c 69 63 20 | 6c 69 6e 6b 73 0a 58 20 |ymbolic |links.X |
|000008c0| 2a 0a 58 20 2a 20 54 79 | 70 69 63 61 6c 20 65 78 |*.X * Ty|pical ex|
|000008d0| 61 6d 70 6c 65 73 3a 0a | 58 20 2a 0a 58 20 2a 09 |amples:.|X *.X *.|
|000008e0| 73 65 74 20 70 61 74 68 | 20 3d 20 60 63 6b 6e 66 |set path| = `cknf|
|000008f0| 73 20 2f 62 69 6e 20 2f | 75 73 72 2f 62 69 6e 20 |s /bin /|usr/bin |
|00000900| 2f 75 73 72 2f 75 63 62 | 20 2e 20 2f 75 73 72 36 |/usr/ucb| . /usr6|
|00000910| 2f 62 69 6e 20 2f 73 64 | 67 2f 62 69 6e 60 0a 58 |/bin /sd|g/bin`.X|
|00000920| 20 2a 09 61 6c 69 61 73 | 20 63 64 20 27 63 6b 6e | *.alias| cd 'ckn|
|00000930| 66 73 20 2d 65 20 5c 21 | 2a 3b 20 69 66 20 28 24 |fs -e \!|*; if ($|
|00000940| 73 74 61 74 75 73 20 3d | 3d 20 30 29 20 63 68 64 |status =|= 0) chd|
|00000950| 69 72 20 5c 21 2a 27 0a | 58 20 2a 0a 58 20 2a 20 |ir \!*'.|X *.X * |
|00000960| 54 68 65 20 6c 61 74 74 | 65 72 20 65 78 61 6d 70 |The latt|er examp|
|00000970| 6c 65 20 70 72 65 76 65 | 6e 74 73 20 79 6f 75 20 |le preve|nts you |
|00000980| 66 72 6f 6d 20 68 61 6e | 67 69 6e 67 20 69 66 20 |from han|ging if |
|00000990| 79 6f 75 20 63 64 20 74 | 6f 20 61 0a 58 20 2a 20 |you cd t|o a.X * |
|000009a0| 64 69 72 65 63 74 6f 72 | 79 20 74 68 61 74 20 6c |director|y that l|
|000009b0| 65 61 64 73 20 74 6f 20 | 61 20 64 65 61 64 20 4e |eads to |a dead N|
|000009c0| 46 53 20 73 65 72 76 65 | 72 2e 0a 58 20 2a 0a 58 |FS serve|r..X *.X|
|000009d0| 20 2a 20 41 64 6d 69 6e | 73 74 72 61 74 69 76 65 | * Admin|strative|
|000009e0| 20 6e 6f 74 65 3a 20 20 | 59 6f 75 20 63 61 6e 20 | note: |You can |
|000009f0| 73 74 69 6c 6c 20 67 65 | 74 20 68 75 6e 67 20 69 |still ge|t hung i|
|00000a00| 66 20 79 6f 75 72 20 61 | 64 6d 69 6e 69 73 74 61 |f your a|dminista|
|00000a10| 74 6f 72 20 0a 58 20 2a | 20 6d 69 78 65 73 20 4e |tor .X *| mixes N|
|00000a20| 46 53 20 6d 6f 75 6e 74 | 20 70 6f 69 6e 74 73 20 |FS mount| points |
|00000a30| 66 72 6f 6d 20 64 69 66 | 66 65 72 65 6e 74 20 6d |from dif|ferent m|
|00000a40| 61 63 68 69 6e 65 73 20 | 69 6e 20 74 68 65 20 73 |achines |in the s|
|00000a50| 61 6d 65 20 70 61 72 65 | 6e 74 0a 58 20 2a 20 64 |ame pare|nt.X * d|
|00000a60| 69 72 65 63 74 6f 72 79 | 20 6f 72 20 69 66 20 79 |irectory| or if y|
|00000a70| 6f 75 72 20 61 64 6d 69 | 6e 69 73 74 72 61 74 6f |our admi|nistrato|
|00000a80| 72 20 6d 69 78 65 73 20 | 72 65 67 75 6c 61 72 20 |r mixes |regular |
|00000a90| 64 69 72 65 63 74 6f 72 | 69 65 73 20 61 6e 64 0a |director|ies and.|
|00000aa0| 58 20 2a 20 4e 46 53 20 | 6d 6f 75 6e 74 20 70 6f |X * NFS |mount po|
|00000ab0| 69 6e 74 73 20 69 6e 20 | 74 68 65 20 73 61 6d 65 |ints in |the same|
|00000ac0| 20 70 61 72 65 6e 74 20 | 64 69 72 65 63 74 6f 72 | parent |director|
|00000ad0| 79 2e 0a 58 20 2a 0a 58 | 20 2a 20 54 68 65 20 62 |y..X *.X| * The b|
|00000ae0| 65 73 74 20 6f 72 67 61 | 6e 69 7a 61 74 69 6f 6e |est orga|nization|
|00000af0| 20 69 73 20 61 6e 20 6f | 76 65 72 61 6c 6c 20 2f | is an o|verall /|
|00000b00| 6e 66 73 20 64 69 72 65 | 63 74 6f 72 79 20 77 69 |nfs dire|ctory wi|
|00000b10| 74 68 20 73 75 62 64 69 | 72 65 63 74 6f 72 69 65 |th subdi|rectorie|
|00000b20| 73 20 0a 58 20 2a 20 66 | 6f 72 20 65 61 63 68 20 |s .X * f|or each |
|00000b30| 6d 61 63 68 69 6e 65 2e | 20 20 20 46 6f 72 20 65 |machine.| For e|
|00000b40| 78 61 6d 70 6c 65 2c 20 | 69 66 20 79 6f 75 20 68 |xample, |if you h|
|00000b50| 61 76 65 20 33 20 4e 46 | 53 20 73 65 72 76 65 72 |ave 3 NF|S server|
|00000b60| 73 20 6e 61 6d 65 64 0a | 58 20 2a 20 22 6e 65 77 |s named.|X * "new|
|00000b70| 74 6f 6e 22 2c 20 22 62 | 61 72 64 65 65 6e 22 2c |ton", "b|ardeen",|
|00000b80| 20 61 6e 64 20 22 7a 61 | 70 68 6f 64 22 2c 20 61 | and "za|phod", a|
|00000b90| 20 67 6f 6f 64 20 6f 72 | 67 61 6e 69 7a 61 74 69 | good or|ganizati|
|00000ba0| 6f 6e 20 77 6f 75 6c 64 | 20 62 65 0a 58 20 2a 0a |on would| be.X *.|
|00000bb0| 58 20 2a 09 2f 6e 66 73 | 2f 62 61 72 64 65 65 6e |X *./nfs|/bardeen|
|00000bc0| 2f 61 70 70 73 0a 58 20 | 2a 09 2f 6e 66 73 2f 62 |/apps.X |*./nfs/b|
|00000bd0| 61 72 64 65 65 6e 2f 62 | 69 6e 0a 58 20 2a 09 2f |ardeen/b|in.X *./|
|00000be0| 6e 66 73 2f 6e 65 77 74 | 6f 6e 2f 62 69 6e 0a 58 |nfs/newt|on/bin.X|
|00000bf0| 20 2a 09 2f 6e 66 73 2f | 6e 65 77 74 6f 6e 2f 6c | *./nfs/|newton/l|
|00000c00| 6f 63 61 6c 0a 58 20 2a | 09 2f 6e 66 73 2f 7a 61 |ocal.X *|./nfs/za|
|00000c10| 70 68 6f 64 2f 62 69 6e | 0a 58 20 2a 09 2f 6e 66 |phod/bin|.X *./nf|
|00000c20| 73 2f 7a 61 70 68 6f 64 | 2f 73 64 67 0a 58 20 2a |s/zaphod|/sdg.X *|
|00000c30| 0a 58 20 2a 20 4e 45 56 | 45 52 20 4d 49 58 20 4d |.X * NEV|ER MIX M|
|00000c40| 4f 55 4e 54 20 50 4f 49 | 4e 54 53 20 46 52 4f 4d |OUNT POI|NTS FROM|
|00000c50| 20 44 49 46 46 45 52 45 | 4e 54 20 4d 41 43 48 49 | DIFFERE|NT MACHI|
|00000c60| 4e 45 53 20 49 4e 20 54 | 48 45 20 53 41 4d 45 0a |NES IN T|HE SAME.|
|00000c70| 58 20 2a 20 50 41 52 45 | 4e 54 20 44 49 52 45 43 |X * PARE|NT DIREC|
|00000c80| 54 4f 52 59 21 20 20 46 | 6f 6c 6c 6f 77 20 74 68 |TORY! F|ollow th|
|00000c90| 69 73 20 72 75 6c 65 20 | 61 6e 64 20 75 73 65 20 |is rule |and use |
|00000ca0| 74 68 69 73 20 70 72 6f | 67 72 61 6d 20 61 6e 64 |this pro|gram and|
|00000cb0| 0a 58 20 2a 20 79 6f 75 | 20 77 69 6c 6c 20 6e 65 |.X * you| will ne|
|00000cc0| 76 65 72 20 67 65 74 20 | 68 75 6e 67 20 62 79 20 |ver get |hung by |
|00000cd0| 4e 46 53 20 61 67 61 69 | 6e 2e 0a 58 20 2a 2f 0a |NFS agai|n..X */.|
|00000ce0| 58 0a 58 2f 2a 0a 58 20 | 2a 20 43 6f 70 79 72 69 |X.X/*.X |* Copyri|
|00000cf0| 67 68 74 20 28 63 29 20 | 31 39 38 38 2c 20 54 68 |ght (c) |1988, Th|
|00000d00| 65 20 42 6f 61 72 64 20 | 6f 66 20 54 72 75 73 74 |e Board |of Trust|
|00000d10| 65 65 73 20 6f 66 20 74 | 68 65 20 55 6e 69 76 65 |ees of t|he Unive|
|00000d20| 72 73 69 74 79 20 6f 66 | 20 49 6c 6c 69 6e 6f 69 |rsity of| Illinoi|
|00000d30| 73 0a 58 20 2a 20 4e 61 | 74 69 6f 6e 61 6c 20 43 |s.X * Na|tional C|
|00000d40| 65 6e 74 65 72 20 66 6f | 72 20 53 75 70 65 72 63 |enter fo|r Superc|
|00000d50| 6f 6d 70 75 74 69 6e 67 | 20 41 70 70 6c 69 63 61 |omputing| Applica|
|00000d60| 74 69 6f 6e 73 2e 0a 58 | 20 2a 0a 58 20 2a 20 4e |tions..X| *.X * N|
|00000d70| 6f 20 77 61 72 72 61 6e | 74 79 20 69 73 20 65 78 |o warran|ty is ex|
|00000d80| 70 72 65 73 73 65 64 20 | 6f 72 20 69 6d 70 6c 69 |pressed |or impli|
|00000d90| 65 64 2e 0a 58 20 2a 20 | 55 6e 6c 69 6d 69 74 65 |ed..X * |Unlimite|
|00000da0| 64 20 72 65 64 69 73 74 | 72 69 62 75 74 69 6f 6e |d redist|ribution|
|00000db0| 20 70 65 72 6d 69 74 74 | 65 64 2e 0a 58 20 2a 0a | permitt|ed..X *.|
|00000dc0| 58 20 2a 2f 0a 58 0a 58 | 73 74 61 74 69 63 20 63 |X */.X.X|static c|
|00000dd0| 68 61 72 20 2a 52 43 53 | 69 64 20 3d 20 22 24 48 |har *RCS|id = "$H|
|00000de0| 65 61 64 65 72 3a 20 63 | 6b 6e 66 73 2e 63 2c 76 |eader: c|knfs.c,v|
|00000df0| 20 31 2e 34 20 38 39 2f | 30 35 2f 33 31 20 31 38 | 1.4 89/|05/31 18|
|00000e00| 3a 32 34 3a 34 39 20 61 | 6b 6c 69 65 74 7a 20 45 |:24:49 a|klietz E|
|00000e10| 78 70 20 24 22 3b 0a 58 | 0a 58 2f 2a 0a 58 20 2a |xp $";.X|.X/*.X *|
|00000e20| 20 24 4c 6f 67 3a 09 63 | 6b 6e 66 73 2e 63 2c 76 | $Log:.c|knfs.c,v|
|00000e30| 20 24 0a 58 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 | $.X * R|evision |
|00000e40| 31 2e 34 20 20 38 39 2f | 30 35 2f 33 31 20 20 31 |1.4 89/|05/31 1|
|00000e50| 38 3a 32 34 3a 34 39 20 | 20 61 6b 6c 69 65 74 7a |8:24:49 | aklietz|
|00000e60| 0a 58 20 2a 20 46 69 78 | 20 62 75 67 20 69 6e 74 |.X * Fix| bug int|
|00000e70| 72 6f 64 75 63 65 64 20 | 69 6e 20 72 65 76 20 31 |roduced |in rev 1|
|00000e80| 2e 33 20 74 68 61 74 20 | 64 69 64 20 68 61 6e 67 |.3 that |did hang|
|00000e90| 61 62 6c 65 20 6c 73 74 | 61 74 20 62 65 66 6f 72 |able lst|at befor|
|00000ea0| 65 0a 58 20 2a 20 63 68 | 65 63 6b 69 6e 67 20 66 |e.X * ch|ecking f|
|00000eb0| 6f 72 20 4e 46 53 20 6d | 6f 75 6e 74 20 70 6f 69 |or NFS m|ount poi|
|00000ec0| 6e 74 2e 0a 58 20 2a 20 | 41 64 64 20 73 75 70 70 |nt..X * |Add supp|
|00000ed0| 6f 72 74 20 66 6f 72 20 | 55 6c 74 72 69 78 2e 0a |ort for |Ultrix..|
|00000ee0| 58 20 2a 20 0a 58 20 2a | 20 52 65 76 69 73 69 6f |X * .X *| Revisio|
|00000ef0| 6e 20 31 2e 33 20 20 38 | 39 2f 30 35 2f 32 39 20 |n 1.3 8|9/05/29 |
|00000f00| 20 30 33 3a 33 30 3a 35 | 35 20 20 61 6b 6c 69 65 | 03:30:5|5 aklie|
|00000f10| 74 7a 0a 58 20 2a 20 54 | 65 72 6d 69 6e 61 74 65 |tz.X * T|erminate|
|00000f20| 20 73 69 6c 65 6e 74 6c | 79 20 69 66 20 6e 6f 20 | silentl|y if no |
|00000f30| 61 72 67 73 20 69 6e 20 | 2d 65 20 6d 6f 64 65 2e |args in |-e mode.|
|00000f40| 0a 58 20 2a 20 46 69 78 | 20 6f 6d 69 73 73 69 6f |.X * Fix| omissio|
|00000f50| 6e 20 6f 66 20 63 68 64 | 69 72 28 22 2f 22 29 20 |n of chd|ir("/") |
|00000f60| 64 75 72 69 6e 67 20 70 | 61 72 73 65 20 6f 66 20 |during p|arse of |
|00000f70| 73 79 6d 6c 69 6e 6b 20 | 74 6f 20 61 62 73 6f 6c |symlink |to absol|
|00000f80| 75 74 65 20 70 61 74 68 | 2e 0a 58 20 2a 20 0a 58 |ute path|..X * .X|
|00000f90| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 32 20 | * Revis|ion 1.2 |
|00000fa0| 20 38 39 2f 30 35 2f 32 | 36 20 20 31 34 3a 31 34 | 89/05/2|6 14:14|
|00000fb0| 3a 33 35 20 20 61 6b 6c | 69 65 74 7a 0a 58 20 2a |:35 akl|ietz.X *|
|00000fc0| 20 42 61 73 65 6c 69 6e | 65 20 66 6f 72 20 72 65 | Baselin|e for re|
|00000fd0| 6c 65 61 73 65 0a 58 20 | 2a 20 0a 58 20 2a 20 52 |lease.X |* .X * R|
|00000fe0| 65 76 69 73 69 6f 6e 20 | 31 2e 31 20 20 38 39 2f |evision |1.1 89/|
|00000ff0| 30 35 2f 32 36 20 20 31 | 33 3a 33 37 3a 33 39 20 |05/26 1|3:37:39 |
|00001000| 20 61 6b 6c 69 65 74 7a | 0a 58 20 2a 20 49 6e 69 | aklietz|.X * Ini|
|00001010| 74 69 61 6c 20 72 65 76 | 69 73 69 6f 6e 0a 58 20 |tial rev|ision.X |
|00001020| 2a 20 0a 58 20 2a 2f 0a | 58 0a 58 23 69 6e 63 6c |* .X */.|X.X#incl|
|00001030| 75 64 65 20 3c 73 79 73 | 2f 70 61 72 61 6d 2e 68 |ude <sys|/param.h|
|00001040| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 65 72 72 |>.X#incl|ude <err|
|00001050| 6e 6f 2e 68 3e 0a 58 23 | 69 6e 63 6c 75 64 65 20 |no.h>.X#|include |
|00001060| 3c 73 79 73 2f 74 79 70 | 65 73 2e 68 3e 0a 58 23 |<sys/typ|es.h>.X#|
|00001070| 69 6e 63 6c 75 64 65 20 | 3c 73 79 73 2f 73 74 61 |include |<sys/sta|
|00001080| 74 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |t.h>.X#i|nclude <|
|00001090| 73 69 67 6e 61 6c 2e 68 | 3e 0a 58 23 69 6e 63 6c |signal.h|>.X#incl|
|000010a0| 75 64 65 20 3c 63 74 79 | 70 65 2e 68 3e 0a 58 23 |ude <cty|pe.h>.X#|
|000010b0| 69 6e 63 6c 75 64 65 20 | 3c 73 74 64 69 6f 2e 68 |include |<stdio.h|
|000010c0| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |>.X#incl|ude <sys|
|000010d0| 2f 74 69 6d 65 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |/time.h>|.X#inclu|
|000010e0| 64 65 20 3c 73 79 73 2f | 73 6f 63 6b 65 74 2e 68 |de <sys/|socket.h|
|000010f0| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 61 72 70 |>.X#incl|ude <arp|
|00001100| 61 2f 69 6e 65 74 2e 68 | 3e 0a 58 23 69 6e 63 6c |a/inet.h|>.X#incl|
|00001110| 75 64 65 20 3c 6e 65 74 | 64 62 2e 68 3e 0a 58 23 |ude <net|db.h>.X#|
|00001120| 69 6e 63 6c 75 64 65 20 | 3c 72 70 63 2f 72 70 63 |include |<rpc/rpc|
|00001130| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 72 |.h>.X#in|clude <r|
|00001140| 70 63 2f 70 6d 61 70 5f | 70 72 6f 74 2e 68 3e 0a |pc/pmap_|prot.h>.|
|00001150| 58 23 69 6e 63 6c 75 64 | 65 20 3c 72 70 63 2f 70 |X#includ|e <rpc/p|
|00001160| 6d 61 70 5f 63 6c 6e 74 | 2e 68 3e 0a 58 23 69 6e |map_clnt|.h>.X#in|
|00001170| 63 6c 75 64 65 20 3c 6e | 66 73 2f 6e 66 73 2e 68 |clude <n|fs/nfs.h|
|00001180| 3e 0a 58 0a 58 2f 2a 0a | 58 20 2a 20 4d 61 6b 65 |>.X.X/*.|X * Make|
|00001190| 20 69 6e 69 74 69 61 6c | 20 70 72 6f 67 72 61 6d | initial| program|
|000011a0| 0a 58 20 2a 20 4d 61 79 | 20 31 39 38 39 2c 20 41 |.X * May| 1989, A|
|000011b0| 6c 61 6e 20 4b 6c 69 65 | 74 7a 20 28 61 6b 6c 69 |lan Klie|tz (akli|
|000011c0| 65 74 7a 40 6e 63 73 61 | 2e 75 69 75 63 2e 65 64 |etz@ncsa|.uiuc.ed|
|000011d0| 75 29 0a 58 20 2a 2f 0a | 58 0a 58 23 64 65 66 69 |u).X */.|X.X#defi|
|000011e0| 6e 65 20 44 45 46 41 55 | 4c 54 5f 54 49 4d 45 4f |ne DEFAU|LT_TIMEO|
|000011f0| 55 54 20 31 30 20 20 2f | 2a 20 44 65 66 61 75 6c |UT 10 /|* Defaul|
|00001200| 74 20 74 69 6d 65 6f 75 | 74 20 66 6f 72 20 63 68 |t timeou|t for ch|
|00001210| 65 63 6b 69 6e 67 20 4e | 46 53 20 73 65 72 76 65 |ecking N|FS serve|
|00001220| 72 20 2a 2f 0a 58 0a 58 | 65 78 74 65 72 6e 20 63 |r */.X.X|extern c|
|00001230| 68 61 72 20 2a 72 65 61 | 6c 6c 6f 63 28 29 3b 0a |har *rea|lloc();.|
|00001240| 58 65 78 74 65 72 6e 20 | 63 68 61 72 20 2a 73 74 |Xextern |char *st|
|00001250| 72 63 68 72 28 29 2c 20 | 2a 73 74 72 72 63 68 72 |rchr(), |*strrchr|
|00001260| 28 29 2c 20 2a 73 74 72 | 74 6f 6b 28 29 3b 0a 58 |(), *str|tok();.X|
|00001270| 0a 58 73 74 72 75 63 74 | 20 6d 5f 6d 6c 69 73 74 |.Xstruct| m_mlist|
|00001280| 20 7b 0a 58 09 69 6e 74 | 20 6d 6c 69 73 74 5f 63 | {.X.int| mlist_c|
|00001290| 68 65 63 6b 65 64 3b 20 | 2f 2a 20 2d 31 20 69 66 |hecked; |/* -1 if|
|000012a0| 20 62 61 64 2c 20 30 20 | 69 66 20 6e 6f 74 20 63 | bad, 0 |if not c|
|000012b0| 68 65 63 6b 65 64 2c 20 | 31 20 69 66 20 6f 6b 20 |hecked, |1 if ok |
|000012c0| 2a 2f 0a 58 09 73 74 72 | 75 63 74 20 6d 5f 6d 6c |*/.X.str|uct m_ml|
|000012d0| 69 73 74 20 2a 6d 6c 69 | 73 74 5f 6e 65 78 74 3b |ist *mli|st_next;|
|000012e0| 0a 58 09 63 68 61 72 20 | 2a 6d 6c 69 73 74 5f 64 |.X.char |*mlist_d|
|000012f0| 69 72 3b 0a 58 09 63 68 | 61 72 20 2a 6d 6c 69 73 |ir;.X.ch|ar *mlis|
|00001300| 74 5f 66 73 6e 61 6d 65 | 3b 0a 58 09 69 6e 74 20 |t_fsname|;.X.int |
|00001310| 6d 6c 69 73 74 5f 69 73 | 6e 66 73 3b 0a 58 7d 3b |mlist_is|nfs;.X};|
|00001320| 0a 58 73 74 61 74 69 63 | 20 73 74 72 75 63 74 20 |.Xstatic| struct |
|00001330| 6d 5f 6d 6c 69 73 74 20 | 2a 66 69 72 73 74 6d 6e |m_mlist |*firstmn|
|00001340| 74 3b 0a 58 0a 58 73 74 | 61 74 69 63 20 69 6e 74 |t;.X.Xst|atic int|
|00001350| 20 65 72 72 66 6c 67 3b | 0a 58 73 74 61 74 69 63 | errflg;|.Xstatic|
|00001360| 20 69 6e 74 20 65 66 6c | 67 2c 20 73 66 6c 67 2c | int efl|g, sflg,|
|00001370| 20 76 66 6c 67 2c 20 44 | 66 6c 67 2c 20 4c 66 6c | vflg, D|flg, Lfl|
|00001380| 67 3b 0a 58 73 74 61 74 | 69 63 20 69 6e 74 20 74 |g;.Xstat|ic int t|
|00001390| 69 6d 65 6f 75 74 20 3d | 20 44 45 46 41 55 4c 54 |imeout =| DEFAULT|
|000013a0| 5f 54 49 4d 45 4f 55 54 | 3b 0a 58 73 74 61 74 69 |_TIMEOUT|;.Xstati|
|000013b0| 63 20 63 68 61 72 20 70 | 72 65 66 69 78 5b 4d 41 |c char p|refix[MA|
|000013c0| 58 50 41 54 48 4c 45 4e | 5d 3b 0a 58 73 74 72 75 |XPATHLEN|];.Xstru|
|000013d0| 63 74 20 6d 5f 6d 6c 69 | 73 74 20 2a 69 73 6e 66 |ct m_mli|st *isnf|
|000013e0| 73 6d 6e 74 28 29 3b 0a | 58 63 68 61 72 20 2a 78 |smnt();.|Xchar *x|
|000013f0| 61 6c 6c 6f 63 28 29 3b | 0a 58 76 6f 69 64 20 6d |alloc();|.Xvoid m|
|00001400| 6b 6d 5f 6d 6c 69 73 74 | 28 29 3b 0a 58 0a 58 69 |km_mlist|();.X.Xi|
|00001410| 6e 74 0a 58 6d 61 69 6e | 28 61 72 67 63 2c 20 61 |nt.Xmain|(argc, a|
|00001420| 72 67 76 29 0a 58 69 6e | 74 20 61 72 67 63 3b 0a |rgv).Xin|t argc;.|
|00001430| 58 63 68 61 72 20 2a 2a | 61 72 67 76 3b 0a 58 7b |Xchar **|argv;.X{|
|00001440| 0a 58 09 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 |.X.regis|ter int |
|00001450| 6e 3b 0a 58 09 72 65 67 | 69 73 74 65 72 20 63 68 |n;.X.reg|ister ch|
|00001460| 61 72 20 2a 73 3b 0a 58 | 09 69 6e 74 20 67 6f 6f |ar *s;.X|.int goo|
|00001470| 64 20 3d 20 30 3b 0a 58 | 09 63 68 61 72 20 6f 75 |d = 0;.X|.char ou|
|00001480| 74 62 75 66 5b 42 55 46 | 53 49 5a 5d 3b 0a 58 09 |tbuf[BUF|SIZ];.X.|
|00001490| 63 68 61 72 20 65 72 72 | 62 75 66 5b 42 55 46 53 |char err|buf[BUFS|
|000014a0| 49 5a 5d 3b 0a 58 09 65 | 78 74 65 72 6e 20 69 6e |IZ];.X.e|xtern in|
|000014b0| 74 20 6f 70 74 69 6e 64 | 3b 0a 58 09 65 78 74 65 |t optind|;.X.exte|
|000014c0| 72 6e 20 63 68 61 72 20 | 2a 6f 70 74 61 72 67 3b |rn char |*optarg;|
|000014d0| 0a 58 0a 58 0a 58 09 2f | 2a 0a 58 09 20 2a 20 41 |.X.X.X./|*.X. * A|
|000014e0| 76 6f 69 64 20 69 6e 74 | 65 72 6d 69 78 69 6e 67 |void int|ermixing|
|000014f0| 20 73 74 64 6f 75 74 20 | 61 6e 64 20 73 74 64 65 | stdout |and stde|
|00001500| 72 72 0a 58 09 20 2a 2f | 0a 58 09 73 65 74 76 62 |rr.X. */|.X.setvb|
|00001510| 75 66 28 73 74 64 6f 75 | 74 2c 20 6f 75 74 62 75 |uf(stdou|t, outbu|
|00001520| 66 2c 20 5f 49 4f 46 42 | 46 2c 20 73 69 7a 65 6f |f, _IOFB|F, sizeo|
|00001530| 66 28 6f 75 74 62 75 66 | 29 29 3b 0a 58 09 73 65 |f(outbuf|));.X.se|
|00001540| 74 76 62 75 66 28 73 74 | 64 65 72 72 2c 20 65 72 |tvbuf(st|derr, er|
|00001550| 72 62 75 66 2c 20 5f 49 | 4f 4c 42 46 2c 20 73 69 |rbuf, _I|OLBF, si|
|00001560| 7a 65 6f 66 28 65 72 72 | 62 75 66 29 29 3b 0a 58 |zeof(err|buf));.X|
|00001570| 0a 58 09 77 68 69 6c 65 | 20 28 28 6e 20 3d 20 67 |.X.while| ((n = g|
|00001580| 65 74 6f 70 74 28 61 72 | 67 63 2c 20 61 72 67 76 |etopt(ar|gc, argv|
|00001590| 2c 20 22 65 73 74 3a 76 | 44 4c 22 29 29 20 21 3d |, "est:v|DL")) !=|
|000015a0| 20 45 4f 46 29 0a 58 09 | 09 73 77 69 74 63 68 28 | EOF).X.|.switch(|
|000015b0| 6e 29 20 7b 0a 58 09 09 | 09 63 61 73 65 20 27 65 |n) {.X..|.case 'e|
|000015c0| 27 3a 09 2b 2b 65 66 6c | 67 3b 0a 58 09 09 09 09 |':.++efl|g;.X....|
|000015d0| 09 62 72 65 61 6b 3b 0a | 58 0a 58 09 09 09 63 61 |.break;.|X.X...ca|
|000015e0| 73 65 20 27 73 27 3a 09 | 2b 2b 73 66 6c 67 3b 0a |se 's':.|++sflg;.|
|000015f0| 58 09 09 09 09 09 62 72 | 65 61 6b 3b 0a 58 0a 58 |X.....br|eak;.X.X|
|00001600| 09 09 09 63 61 73 65 20 | 27 74 27 3a 09 74 69 6d |...case |'t':.tim|
|00001610| 65 6f 75 74 20 3d 20 61 | 74 6f 69 28 6f 70 74 61 |eout = a|toi(opta|
|00001620| 72 67 29 3b 0a 58 09 09 | 09 09 09 62 72 65 61 6b |rg);.X..|...break|
|00001630| 3b 0a 58 0a 58 09 09 09 | 63 61 73 65 20 27 76 27 |;.X.X...|case 'v'|
|00001640| 3a 09 2b 2b 76 66 6c 67 | 3b 0a 58 09 09 09 09 09 |:.++vflg|;.X.....|
|00001650| 62 72 65 61 6b 3b 0a 58 | 0a 58 09 09 09 63 61 73 |break;.X|.X...cas|
|00001660| 65 20 27 44 27 3a 09 2b | 2b 44 66 6c 67 3b 20 2b |e 'D':.+|+Dflg; +|
|00001670| 2b 76 66 6c 67 3b 0a 58 | 09 09 09 09 09 62 72 65 |+vflg;.X|.....bre|
|00001680| 61 6b 3b 0a 58 0a 58 09 | 09 09 63 61 73 65 20 27 |ak;.X.X.|..case '|
|00001690| 4c 27 3a 09 2b 2b 4c 66 | 6c 67 3b 0a 58 09 09 09 |L':.++Lf|lg;.X...|
|000016a0| 09 09 62 72 65 61 6b 3b | 0a 58 0a 58 09 09 09 64 |..break;|.X.X...d|
|000016b0| 65 66 61 75 6c 74 3a 0a | 58 09 09 09 09 09 2b 2b |efault:.|X.....++|
|000016c0| 65 72 72 66 6c 67 3b 0a | 58 09 09 7d 0a 58 0a 58 |errflg;.|X..}.X.X|
|000016d0| 09 69 66 20 28 61 72 67 | 63 20 3c 3d 20 6f 70 74 |.if (arg|c <= opt|
|000016e0| 69 6e 64 20 26 26 20 21 | 65 66 6c 67 29 20 2f 2a |ind && !|eflg) /*|
|000016f0| 20 6e 6f 20 70 61 74 68 | 73 20 2a 2f 0a 58 09 09 | no path|s */.X..|
|00001700| 2b 2b 65 72 72 66 6c 67 | 3b 0a 58 0a 58 09 69 66 |++errflg|;.X.X.if|
|00001710| 20 28 65 72 72 66 6c 67 | 29 20 7b 0a 58 09 09 66 | (errflg|) {.X..f|
|00001720| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|00001730| 55 73 61 67 65 3a 20 25 | 73 20 2d 65 20 2d 73 20 |Usage: %|s -e -s |
|00001740| 2d 74 23 20 2d 76 20 2d | 44 20 2d 4c 20 70 61 74 |-t# -v -|D -L pat|
|00001750| 68 73 5c 6e 22 2c 20 61 | 72 67 76 5b 30 5d 29 3b |hs\n", a|rgv[0]);|
|00001760| 0a 58 09 09 66 70 72 69 | 6e 74 66 28 73 74 64 65 |.X..fpri|ntf(stde|
|00001770| 72 72 2c 20 22 5c 74 43 | 68 65 63 6b 20 70 61 74 |rr, "\tC|heck pat|
|00001780| 68 73 20 66 6f 72 20 64 | 65 61 64 20 4e 46 53 20 |hs for d|ead NFS |
|00001790| 73 65 72 76 65 72 73 5c | 6e 22 29 3b 0a 58 09 09 |servers\|n");.X..|
|000017a0| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 20 |fprintf(|stderr, |
|000017b0| 22 5c 74 47 6f 6f 64 20 | 70 61 74 68 73 20 61 72 |"\tGood |paths ar|
|000017c0| 65 20 70 72 69 6e 74 65 | 64 20 74 6f 20 73 74 64 |e printe|d to std|
|000017d0| 6f 75 74 5c 6e 5c 6e 22 | 29 3b 0a 58 09 09 66 70 |out\n\n"|);.X..fp|
|000017e0| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 5c |rintf(st|derr, "\|
|000017f0| 74 20 2d 65 5c 74 73 69 | 6c 65 6e 74 2c 20 64 6f |t -e\tsi|lent, do|
|00001800| 20 6e 6f 74 20 70 72 69 | 6e 74 20 70 61 74 68 73 | not pri|nt paths|
|00001810| 5c 6e 22 29 3b 0a 58 09 | 09 66 70 72 69 6e 74 66 |\n");.X.|.fprintf|
|00001820| 28 73 74 64 65 72 72 2c | 20 22 5c 74 20 2d 73 5c |(stderr,| "\t -s\|
|00001830| 74 70 72 69 6e 74 20 70 | 61 74 68 73 20 69 6e 20 |tprint p|aths in |
|00001840| 73 68 20 66 6f 72 6d 61 | 74 20 28 73 65 6d 69 63 |sh forma|t (semic|
|00001850| 6f 6c 6f 6e 73 29 5c 6e | 22 29 3b 0a 58 09 09 66 |olons)\n|");.X..f|
|00001860| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|00001870| 5c 74 20 2d 74 20 6e 5c | 74 74 69 6d 65 6f 75 74 |\t -t n\|ttimeout|
|00001880| 20 69 6e 74 65 72 76 61 | 6c 20 62 65 66 6f 72 65 | interva|l before|
|00001890| 20 61 73 73 75 6d 69 6e | 67 20 61 6e 20 4e 46 53 | assumin|g an NFS|
|000018a0| 5c 6e 22 29 3b 0a 58 09 | 09 66 70 72 69 6e 74 66 |\n");.X.|.fprintf|
|000018b0| 28 73 74 64 65 72 72 2c | 20 22 5c 74 5c 74 73 65 |(stderr,| "\t\tse|
|000018c0| 72 76 65 72 20 69 73 20 | 64 65 61 64 20 28 64 65 |rver is |dead (de|
|000018d0| 66 61 75 6c 74 20 31 30 | 20 73 65 63 6f 6e 64 73 |fault 10| seconds|
|000018e0| 29 5c 6e 22 29 3b 0a 58 | 09 09 66 70 72 69 6e 74 |)\n");.X|..fprint|
|000018f0| 66 28 73 74 64 65 72 72 | 2c 20 22 5c 74 20 2d 76 |f(stderr|, "\t -v|
|00001900| 5c 74 76 65 72 62 6f 73 | 65 5c 6e 22 29 3b 0a 58 |\tverbos|e\n");.X|
|00001910| 09 09 66 70 72 69 6e 74 | 66 28 73 74 64 65 72 72 |..fprint|f(stderr|
|00001920| 2c 20 22 5c 74 20 2d 44 | 5c 74 64 65 62 75 67 5c |, "\t -D|\tdebug\|
|00001930| 6e 22 29 3b 0a 58 09 09 | 66 70 72 69 6e 74 66 28 |n");.X..|fprintf(|
|00001940| 73 74 64 65 72 72 2c 20 | 22 5c 74 20 2d 4c 5c 74 |stderr, |"\t -L\t|
|00001950| 65 78 70 61 6e 64 20 73 | 79 6d 62 6f 6c 69 63 20 |expand s|ymbolic |
|00001960| 6c 69 6e 6b 73 5c 6e 5c | 6e 22 29 3b 0a 58 09 09 |links\n\|n");.X..|
|00001970| 65 78 69 74 28 31 29 3b | 0a 58 09 7d 0a 58 0a 58 |exit(1);|.X.}.X.X|
|00001980| 09 66 6f 72 20 28 6e 20 | 3d 20 6f 70 74 69 6e 64 |.for (n |= optind|
|00001990| 3b 20 6e 20 3c 20 61 72 | 67 63 3b 20 2b 2b 6e 29 |; n < ar|gc; ++n)|
|000019a0| 20 7b 0a 58 09 09 73 20 | 3d 20 61 72 67 76 5b 6e | {.X..s |= argv[n|
|000019b0| 5d 3b 0a 58 09 09 69 66 | 20 28 44 66 6c 67 29 0a |];.X..if| (Dflg).|
|000019c0| 58 09 09 09 66 70 72 69 | 6e 74 66 28 73 74 64 65 |X...fpri|ntf(stde|
|000019d0| 72 72 2c 20 22 63 68 6b | 70 61 74 68 28 25 73 29 |rr, "chk|path(%s)|
|000019e0| 5c 6e 22 2c 20 73 29 3b | 0a 58 09 09 69 66 20 28 |\n", s);|.X..if (|
|000019f0| 63 68 6b 70 61 74 68 28 | 73 29 29 20 7b 0a 58 09 |chkpath(|s)) {.X.|
|00001a00| 09 09 69 66 20 28 67 6f | 6f 64 2b 2b 20 26 26 20 |..if (go|od++ && |
|00001a10| 21 65 66 6c 67 29 0a 58 | 09 09 09 09 70 75 74 63 |!eflg).X|....putc|
|00001a20| 68 61 72 28 73 66 6c 67 | 20 3f 20 27 3a 27 20 3a |har(sflg| ? ':' :|
|00001a30| 20 27 20 27 29 3b 0a 58 | 09 09 09 69 66 20 28 21 | ' ');.X|...if (!|
|00001a40| 65 66 6c 67 29 0a 58 09 | 09 09 09 66 70 75 74 73 |eflg).X.|...fputs|
|00001a50| 28 4c 66 6c 67 20 3f 20 | 70 72 65 66 69 78 20 3a |(Lflg ? |prefix :|
|00001a60| 20 73 2c 20 73 74 64 6f | 75 74 29 3b 0a 58 09 09 | s, stdo|ut);.X..|
|00001a70| 7d 20 65 6c 73 65 0a 58 | 09 09 09 69 66 20 28 76 |} else.X|...if (v|
|00001a80| 66 6c 67 29 0a 58 09 09 | 09 09 66 70 72 69 6e 74 |flg).X..|..fprint|
|00001a90| 66 28 73 74 64 65 72 72 | 2c 20 22 70 61 74 68 20 |f(stderr|, "path |
|00001aa0| 73 6b 69 70 70 65 64 3a | 20 25 73 5c 6e 22 2c 0a |skipped:| %s\n",.|
|00001ab0| 58 09 09 09 09 09 4c 66 | 6c 67 20 3f 20 70 72 65 |X.....Lf|lg ? pre|
|00001ac0| 66 69 78 20 3a 20 73 29 | 3b 0a 58 09 7d 0a 58 0a |fix : s)|;.X.}.X.|
|00001ad0| 58 09 69 66 20 28 67 6f | 6f 64 20 26 26 20 21 65 |X.if (go|od && !e|
|00001ae0| 66 6c 67 29 0a 58 09 09 | 70 75 74 63 68 61 72 28 |flg).X..|putchar(|
|00001af0| 27 5c 6e 27 29 3b 0a 58 | 0a 58 09 66 66 6c 75 73 |'\n');.X|.X.fflus|
|00001b00| 68 28 73 74 64 65 72 72 | 29 3b 0a 58 09 66 66 6c |h(stderr|);.X.ffl|
|00001b10| 75 73 68 28 73 74 64 6f | 75 74 29 3b 0a 58 0a 58 |ush(stdo|ut);.X.X|
|00001b20| 09 65 78 69 74 28 67 6f | 6f 64 20 3d 3d 20 30 20 |.exit(go|od == 0 |
|00001b30| 26 26 20 6f 70 74 69 6e | 64 20 3c 20 61 72 67 63 |&& optin|d < argc|
|00001b40| 20 29 3b 0a 58 7d 0a 58 | 0a 58 0a 58 69 6e 74 20 | );.X}.X|.X.Xint |
|00001b50| 63 68 6b 70 61 74 68 28 | 70 61 74 68 29 0a 58 2f |chkpath(|path).X/|
|00001b60| 2a 0a 58 20 2a 20 43 68 | 65 63 6b 20 70 61 74 68 |*.X * Ch|eck path|
|00001b70| 20 66 6f 72 20 61 63 63 | 65 73 73 69 62 69 6c 69 | for acc|essibili|
|00001b80| 74 79 2e 20 20 52 65 74 | 75 72 6e 20 31 20 69 66 |ty. Ret|urn 1 if|
|00001b90| 20 6f 6b 2c 20 30 20 69 | 66 20 65 72 72 6f 72 0a | ok, 0 i|f error.|
|00001ba0| 58 20 2a 2f 0a 58 63 68 | 61 72 20 2a 70 61 74 68 |X */.Xch|ar *path|
|00001bb0| 3b 0a 58 7b 0a 58 09 69 | 66 20 28 2a 70 61 74 68 |;.X{.X.i|f (*path|
|00001bc0| 20 21 3d 20 27 2f 27 29 | 20 7b 20 2f 2a 20 49 66 | != '/')| { /* If|
|00001bd0| 20 6e 6f 74 20 61 62 73 | 6f 6c 75 74 65 20 70 61 | not abs|olute pa|
|00001be0| 74 68 2c 20 67 65 74 20 | 69 6e 69 74 69 61 6c 20 |th, get |initial |
|00001bf0| 70 72 65 66 69 78 20 2a | 2f 0a 58 09 09 69 66 20 |prefix *|/.X..if |
|00001c00| 28 67 65 74 77 64 28 70 | 72 65 66 69 78 29 20 3c |(getwd(p|refix) <|
|00001c10| 20 30 29 20 7b 0a 58 09 | 09 09 66 70 72 69 6e 74 | 0) {.X.|..fprint|
|00001c20| 66 28 73 74 64 65 72 72 | 2c 20 22 25 73 5c 6e 22 |f(stderr|, "%s\n"|
|00001c30| 2c 20 70 72 65 66 69 78 | 29 3b 0a 58 09 09 09 72 |, prefix|);.X...r|
|00001c40| 65 74 75 72 6e 20 30 3b | 0a 58 09 09 7d 0a 58 09 |eturn 0;|.X..}.X.|
|00001c50| 7d 0a 58 09 72 65 74 75 | 72 6e 28 5f 63 68 6b 70 |}.X.retu|rn(_chkp|
|00001c60| 61 74 68 28 70 61 74 68 | 29 29 3b 0a 58 7d 0a 58 |ath(path|));.X}.X|
|00001c70| 0a 58 0a 58 23 64 65 66 | 69 6e 65 20 4e 54 45 52 |.X.X#def|ine NTER|
|00001c80| 4d 53 20 32 35 36 0a 58 | 0a 58 69 6e 74 0a 58 5f |MS 256.X|.Xint.X_|
|00001c90| 63 68 6b 70 61 74 68 28 | 70 61 74 68 29 0a 58 63 |chkpath(|path).Xc|
|00001ca0| 68 61 72 20 2a 70 61 74 | 68 3b 0a 58 7b 0a 58 09 |har *pat|h;.X{.X.|
|00001cb0| 72 65 67 69 73 74 65 72 | 20 63 68 61 72 20 2a 73 |register| char *s|
|00001cc0| 2c 20 2a 73 32 3b 0a 58 | 09 72 65 67 69 73 74 65 |, *s2;.X|.registe|
|00001cd0| 72 20 69 6e 74 20 69 2c | 20 66 72 6f 6e 74 3d 30 |r int i,| front=0|
|00001ce0| 2c 20 62 61 63 6b 3d 30 | 3b 0a 58 09 73 74 72 75 |, back=0|;.X.stru|
|00001cf0| 63 74 20 73 74 61 74 20 | 73 74 62 3b 0a 58 09 73 |ct stat |stb;.X.s|
|00001d00| 74 72 75 63 74 20 6d 5f | 6d 6c 69 73 74 20 2a 6d |truct m_|mlist *m|
|00001d10| 6c 69 73 74 3b 0a 58 09 | 63 68 61 72 20 70 5b 4d |list;.X.|char p[M|
|00001d20| 41 58 50 41 54 48 4c 45 | 4e 5d 3b 0a 58 09 63 68 |AXPATHLE|N];.X.ch|
|00001d30| 61 72 20 73 79 6d 6c 69 | 6e 6b 5b 4d 41 58 50 41 |ar symli|nk[MAXPA|
|00001d40| 54 48 4c 45 4e 5d 3b 0a | 58 09 63 68 61 72 20 2a |THLEN];.|X.char *|
|00001d50| 71 75 65 75 65 5b 4e 54 | 45 52 4d 53 5d 3b 0a 58 |queue[NT|ERMS];.X|
|00001d60| 0a 58 0a 58 09 2f 2a 0a | 58 09 20 2a 20 43 6f 70 |.X.X./*.|X. * Cop|
|00001d70| 79 20 70 61 74 68 20 74 | 6f 20 77 6f 72 6b 69 6e |y path t|o workin|
|00001d80| 67 20 73 74 6f 72 61 67 | 65 0a 58 09 20 2a 2f 0a |g storag|e.X. */.|
|00001d90| 58 09 73 74 72 6e 63 70 | 79 28 70 2c 20 70 61 74 |X.strncp|y(p, pat|
|00001da0| 68 2c 20 73 69 7a 65 6f | 66 28 70 29 2d 31 29 3b |h, sizeo|f(p)-1);|
|00001db0| 0a 58 0a 58 09 69 66 20 | 28 2a 70 20 3d 3d 20 27 |.X.X.if |(*p == '|
|00001dc0| 2f 27 29 20 7b 20 2f 2a | 20 49 66 20 61 62 73 6f |/') { /*| If abso|
|00001dd0| 6c 75 74 65 20 70 61 74 | 68 2c 20 73 74 61 72 74 |lute pat|h, start|
|00001de0| 20 61 74 20 72 6f 6f 74 | 20 2a 2f 0a 58 09 09 2a | at root| */.X..*|
|00001df0| 70 72 65 66 69 78 20 3d | 20 27 5c 30 27 3b 0a 58 |prefix =| '\0';.X|
|00001e00| 09 09 28 76 6f 69 64 29 | 20 63 68 64 69 72 28 22 |..(void)| chdir("|
|00001e10| 2f 22 29 3b 0a 58 09 7d | 0a 58 0a 58 09 69 66 20 |/");.X.}|.X.X.if |
|00001e20| 28 44 66 6c 67 29 0a 58 | 09 09 66 70 72 69 6e 74 |(Dflg).X|..fprint|
|00001e30| 66 28 73 74 64 65 72 72 | 2c 20 22 5f 63 68 6b 70 |f(stderr|, "_chkp|
|00001e40| 61 74 68 28 25 73 29 20 | 70 72 65 66 69 78 3d 25 |ath(%s) |prefix=%|
|00001e50| 73 5c 6e 22 2c 20 70 61 | 74 68 2c 20 70 72 65 66 |s\n", pa|th, pref|
|00001e60| 69 78 29 3b 0a 58 0a 58 | 09 2f 2a 0a 58 09 20 2a |ix);.X.X|./*.X. *|
|00001e70| 20 50 75 74 20 64 69 72 | 65 63 74 6f 72 79 20 74 | Put dir|ectory t|
|00001e80| 65 72 6d 73 20 6f 6e 20 | 46 49 46 4f 20 71 75 65 |erms on |FIFO que|
|00001e90| 75 65 0a 58 09 20 2a 2f | 0a 58 09 66 6f 72 20 28 |ue.X. */|.X.for (|
|00001ea0| 73 20 3d 20 73 74 72 74 | 6f 6b 28 70 2c 20 22 2f |s = strt|ok(p, "/|
|00001eb0| 22 29 3b 20 73 20 21 3d | 20 4e 55 4c 4c 3b 20 73 |"); s !=| NULL; s|
|00001ec0| 20 3d 20 73 74 72 74 6f | 6b 28 4e 55 4c 4c 2c 20 | = strto|k(NULL, |
|00001ed0| 22 2f 22 29 29 20 7b 0a | 58 09 09 69 66 20 28 62 |"/")) {.|X..if (b|
|00001ee0| 61 63 6b 20 3e 3d 20 4e | 54 45 52 4d 53 29 20 7b |ack >= N|TERMS) {|
|00001ef0| 0a 58 09 09 09 66 70 72 | 69 6e 74 66 28 73 74 64 |.X...fpr|intf(std|
|00001f00| 65 72 72 2c 20 22 54 6f | 6f 20 6d 61 6e 79 20 73 |err, "To|o many s|
|00001f10| 75 62 64 69 72 73 3a 20 | 25 73 5c 6e 22 2c 20 70 |ubdirs: |%s\n", p|
|00001f20| 61 74 68 29 3b 0a 58 09 | 09 09 67 6f 74 6f 20 66 |ath);.X.|..goto f|
|00001f30| 61 69 6c 3b 0a 58 09 09 | 7d 0a 58 09 09 71 75 65 |ail;.X..|}.X..que|
|00001f40| 75 65 5b 62 61 63 6b 2b | 2b 5d 20 3d 20 73 3b 0a |ue[back+|+] = s;.|
|00001f50| 58 09 7d 0a 58 09 2f 2a | 20 20 71 75 65 75 65 5b |X.}.X./*| queue[|
|00001f60| 66 72 6f 6e 74 5d 20 3d | 20 61 2c 20 71 75 65 75 |front] =| a, queu|
|00001f70| 65 5b 66 72 6f 6e 74 2b | 31 5d 20 3d 20 62 2c 20 |e[front+|1] = b, |
|00001f80| 2e 2e 2e 20 71 75 65 75 | 65 5b 62 61 63 6b 5d 20 |... queu|e[back] |
|00001f90| 3d 20 6e 75 6c 6c 20 2a | 2f 0a 58 0a 58 09 2f 2a |= null *|/.X.X./*|
|00001fa0| 0a 58 09 20 2a 20 53 63 | 61 6e 20 71 75 65 75 65 |.X. * Sc|an queue|
|00001fb0| 20 6f 66 20 64 69 72 65 | 63 74 6f 72 79 20 74 65 | of dire|ctory te|
|00001fc0| 72 6d 73 2c 20 65 78 70 | 61 6e 64 69 6e 67 20 0a |rms, exp|anding .|
|00001fd0| 58 09 20 2a 20 73 79 6d | 62 6f 6c 69 63 20 6c 69 |X. * sym|bolic li|
|00001fe0| 6e 6b 73 20 72 65 63 75 | 72 73 69 76 65 6c 79 2e |nks recu|rsively.|
|00001ff0| 0a 58 09 20 2a 2f 0a 58 | 09 77 68 69 6c 65 20 28 |.X. */.X|.while (|
|00002000| 66 72 6f 6e 74 20 21 3d | 20 62 61 63 6b 29 20 7b |front !=| back) {|
|00002010| 0a 58 09 09 73 20 3d 20 | 71 75 65 75 65 5b 66 72 |.X..s = |queue[fr|
|00002020| 6f 6e 74 2b 2b 5d 3b 0a | 58 09 09 2f 2a 20 44 6f |ont++];.|X../* Do|
|00002030| 74 20 2a 2f 0a 58 09 09 | 69 66 20 28 73 5b 30 5d |t */.X..|if (s[0]|
|00002040| 20 3d 3d 20 27 2e 27 20 | 26 26 20 73 5b 31 5d 20 | == '.' |&& s[1] |
|00002050| 3d 3d 20 27 5c 30 27 29 | 0a 58 09 09 09 63 6f 6e |== '\0')|.X...con|
|00002060| 74 69 6e 75 65 3b 0a 58 | 09 09 2f 2a 20 44 6f 74 |tinue;.X|../* Dot|
|00002070| 20 44 6f 74 20 2a 2f 0a | 58 09 09 69 66 20 28 73 | Dot */.|X..if (s|
|00002080| 5b 30 5d 20 3d 3d 20 27 | 2e 27 20 26 26 20 73 5b |[0] == '|.' && s[|
|00002090| 31 5d 20 3d 3d 20 27 2e | 27 20 26 26 20 73 5b 32 |1] == '.|' && s[2|
|000020a0| 5d 20 3d 3d 20 27 5c 30 | 27 29 20 7b 0a 58 09 09 |] == '\0|') {.X..|
|000020b0| 09 69 66 20 28 63 68 64 | 69 72 28 22 2e 2e 22 29 |.if (chd|ir("..")|
|000020c0| 20 3c 20 30 29 20 7b 0a | 58 09 09 09 09 70 65 72 | < 0) {.|X....per|
|000020d0| 72 6f 72 28 22 63 68 64 | 69 72 28 2e 2e 29 22 29 |ror("chd|ir(..)")|
|000020e0| 3b 0a 58 09 09 09 09 67 | 6f 74 6f 20 66 61 69 6c |;.X....g|oto fail|
|000020f0| 3b 0a 58 09 09 09 7d 0a | 58 09 09 09 2f 2a 20 52 |;.X...}.|X.../* R|
|00002100| 65 6d 6f 76 65 20 74 72 | 61 69 6c 69 6e 67 20 63 |emove tr|ailing c|
|00002110| 6f 6d 70 6f 6e 65 6e 74 | 20 6f 66 20 70 72 65 66 |omponent| of pref|
|00002120| 69 78 20 2a 2f 0a 58 09 | 09 09 69 66 20 28 28 73 |ix */.X.|..if ((s|
|00002130| 32 20 3d 20 73 74 72 72 | 63 68 72 28 70 72 65 66 |2 = strr|chr(pref|
|00002140| 69 78 2c 20 27 2f 27 29 | 29 20 21 3d 20 4e 55 4c |ix, '/')|) != NUL|
|00002150| 4c 29 0a 58 09 09 09 09 | 2a 73 32 20 3d 20 27 5c |L).X....|*s2 = '\|
|00002160| 30 27 3b 0a 58 09 09 09 | 63 6f 6e 74 69 6e 75 65 |0';.X...|continue|
|00002170| 3b 0a 58 09 09 7d 20 65 | 6c 73 65 20 7b 0a 58 09 |;.X..} e|lse {.X.|
|00002180| 09 09 73 74 72 63 61 74 | 28 70 72 65 66 69 78 2c |..strcat|(prefix,|
|00002190| 20 22 2f 22 29 3b 0a 58 | 09 09 09 73 74 72 63 61 | "/");.X|...strca|
|000021a0| 74 28 70 72 65 66 69 78 | 2c 20 73 29 3b 0a 58 09 |t(prefix|, s);.X.|
|000021b0| 09 7d 0a 58 0a 58 09 09 | 69 66 20 28 28 6d 6c 69 |.}.X.X..|if ((mli|
|000021c0| 73 74 20 3d 20 69 73 6e | 66 73 6d 6e 74 28 70 72 |st = isn|fsmnt(pr|
|000021d0| 65 66 69 78 29 29 20 21 | 3d 20 4e 55 4c 4c 29 20 |efix)) !|= NULL) |
|000021e0| 2f 2a 20 4e 46 53 20 6d | 6f 75 6e 74 3f 20 2a 2f |/* NFS m|ount? */|
|000021f0| 0a 58 09 09 09 69 66 20 | 28 63 68 6b 6e 66 73 6d |.X...if |(chknfsm|
|00002200| 6e 74 28 6d 6c 69 73 74 | 29 20 3c 3d 20 30 29 0a |nt(mlist|) <= 0).|
|00002210| 58 09 09 09 09 72 65 74 | 75 72 6e 20 30 3b 0a 58 |X....ret|urn 0;.X|
|00002220| 0a 58 09 09 2f 2a 20 43 | 68 65 63 6b 20 69 66 20 |.X../* C|heck if |
|00002230| 73 79 6d 6c 69 6e 6b 20 | 2a 2f 0a 58 09 09 69 66 |symlink |*/.X..if|
|00002240| 20 28 6c 73 74 61 74 28 | 73 2c 20 26 73 74 62 29 | (lstat(|s, &stb)|
|00002250| 20 3c 20 30 29 20 7b 0a | 58 09 09 09 70 65 72 72 | < 0) {.|X...perr|
|00002260| 6f 72 28 73 29 3b 0a 58 | 09 09 09 67 6f 74 6f 20 |or(s);.X|...goto |
|00002270| 66 61 69 6c 3b 0a 58 09 | 09 7d 0a 58 09 09 69 66 |fail;.X.|.}.X..if|
|00002280| 20 28 28 73 74 62 2e 73 | 74 5f 6d 6f 64 65 20 26 | ((stb.s|t_mode &|
|00002290| 20 53 5f 49 46 4d 54 29 | 20 21 3d 20 53 5f 49 46 | S_IFMT)| != S_IF|
|000022a0| 4c 4e 4b 29 20 7b 0a 58 | 09 09 09 2f 2a 20 6e 6f |LNK) {.X|.../* no|
|000022b0| 74 20 73 79 6d 6c 69 6e | 6b 20 2a 2f 0a 58 09 09 |t symlin|k */.X..|
|000022c0| 09 69 66 20 28 63 68 64 | 69 72 28 73 29 20 3c 20 |.if (chd|ir(s) < |
|000022d0| 30 29 20 7b 0a 58 09 09 | 09 09 66 70 72 69 6e 74 |0) {.X..|..fprint|
|000022e0| 66 28 73 74 64 65 72 72 | 2c 20 22 63 68 64 69 72 |f(stderr|, "chdir|
|000022f0| 28 25 73 29 3a 20 22 2c | 20 73 29 3b 0a 58 09 09 |(%s): ",| s);.X..|
|00002300| 09 09 70 65 72 72 6f 72 | 28 22 22 29 3b 0a 58 09 |..perror|("");.X.|
|00002310| 09 09 09 67 6f 74 6f 20 | 66 61 69 6c 3b 0a 58 09 |...goto |fail;.X.|
|00002320| 09 09 7d 0a 58 09 09 09 | 63 6f 6e 74 69 6e 75 65 |..}.X...|continue|
|00002330| 3b 0a 58 09 09 7d 0a 58 | 0a 58 09 09 2f 2a 20 52 |;.X..}.X|.X../* R|
|00002340| 65 6d 6f 76 65 20 73 79 | 6d 6c 69 6e 6b 20 66 72 |emove sy|mlink fr|
|00002350| 6f 6d 20 74 61 69 6c 20 | 6f 66 20 70 72 65 66 69 |om tail |of prefi|
|00002360| 78 20 2a 2f 0a 58 09 09 | 69 66 20 28 28 73 32 20 |x */.X..|if ((s2 |
|00002370| 3d 20 73 74 72 72 63 68 | 72 28 70 72 65 66 69 78 |= strrch|r(prefix|
|00002380| 2c 20 27 2f 27 29 29 20 | 21 3d 20 4e 55 4c 4c 29 |, '/')) |!= NULL)|
|00002390| 0a 58 09 09 09 2a 73 32 | 20 3d 20 27 5c 30 27 3b |.X...*s2| = '\0';|
|000023a0| 0a 58 09 09 2f 2a 20 0a | 58 09 09 20 2a 20 52 65 |.X../* .|X.. * Re|
|000023b0| 61 64 20 73 79 6d 6c 69 | 6e 6b 0a 58 09 09 20 2a |ad symli|nk.X.. *|
|000023c0| 2f 0a 58 09 09 69 66 20 | 28 28 69 20 3d 20 72 65 |/.X..if |((i = re|
|000023d0| 61 64 6c 69 6e 6b 28 73 | 2c 20 73 79 6d 6c 69 6e |adlink(s|, symlin|
|000023e0| 6b 2c 20 4d 41 58 50 41 | 54 48 4c 45 4e 2d 31 29 |k, MAXPA|THLEN-1)|
|000023f0| 29 20 3c 20 30 29 20 7b | 0a 58 09 09 09 70 65 72 |) < 0) {|.X...per|
|00002400| 72 6f 72 28 73 29 3b 0a | 58 09 09 09 67 6f 74 6f |ror(s);.|X...goto|
|00002410| 20 66 61 69 6c 3b 0a 58 | 09 09 7d 0a 58 09 09 73 | fail;.X|..}.X..s|
|00002420| 79 6d 6c 69 6e 6b 5b 69 | 5d 20 3d 20 27 5c 30 27 |ymlink[i|] = '\0'|
|00002430| 3b 20 2f 2a 20 6e 75 6c | 6c 20 74 65 72 6d 69 6e |; /* nul|l termin|
|00002440| 61 74 65 20 2a 2f 0a 58 | 0a 58 09 09 2f 2a 0a 58 |ate */.X|.X../*.X|
|00002450| 09 09 20 2a 20 52 65 63 | 75 72 73 69 76 65 6c 79 |.. * Rec|ursively|
|00002460| 20 63 68 65 63 6b 20 73 | 79 6d 6c 69 6e 6b 0a 58 | check s|ymlink.X|
|00002470| 09 09 20 2a 2f 0a 58 09 | 09 69 66 20 28 5f 63 68 |.. */.X.|.if (_ch|
|00002480| 6b 70 61 74 68 28 73 79 | 6d 6c 69 6e 6b 29 20 3d |kpath(sy|mlink) =|
|00002490| 3d 20 30 29 0a 58 09 09 | 09 72 65 74 75 72 6e 20 |= 0).X..|.return |
|000024a0| 30 3b 0a 58 09 7d 0a 58 | 0a 58 09 72 65 74 75 72 |0;.X.}.X|.X.retur|
|000024b0| 6e 20 31 3b 0a 58 0a 58 | 66 61 69 6c 3a 0a 58 09 |n 1;.X.X|fail:.X.|
|000024c0| 72 65 74 75 72 6e 20 30 | 3b 0a 58 7d 0a 58 09 0a |return 0|;.X}.X..|
|000024d0| 58 0a 58 73 74 72 75 63 | 74 20 6d 5f 6d 6c 69 73 |X.Xstruc|t m_mlis|
|000024e0| 74 20 2a 0a 58 69 73 6e | 66 73 6d 6e 74 28 70 61 |t *.Xisn|fsmnt(pa|
|000024f0| 74 68 29 0a 58 2f 2a 0a | 58 20 2a 20 52 65 74 75 |th).X/*.|X * Retu|
|00002500| 72 6e 20 31 20 69 66 20 | 70 61 74 68 20 69 73 20 |rn 1 if |path is |
|00002510| 4e 46 53 20 6d 6f 75 6e | 74 20 70 6f 69 6e 74 0a |NFS moun|t point.|
|00002520| 58 20 2a 2f 0a 58 63 68 | 61 72 20 2a 70 61 74 68 |X */.Xch|ar *path|
|00002530| 3b 0a 58 7b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |;.X{.X.r|egister |
|00002540| 73 74 72 75 63 74 20 6d | 5f 6d 6c 69 73 74 20 2a |struct m|_mlist *|
|00002550| 6d 6c 69 73 74 3b 0a 58 | 09 73 74 61 74 69 63 20 |mlist;.X|.static |
|00002560| 69 6e 74 20 69 6e 69 74 | 3b 0a 58 0a 58 09 69 66 |int init|;.X.X.if|
|00002570| 20 28 69 6e 69 74 20 3d | 3d 20 30 29 20 7b 0a 58 | (init =|= 0) {.X|
|00002580| 09 09 2b 2b 69 6e 69 74 | 3b 0a 58 09 09 6d 6b 6d |..++init|;.X..mkm|
|00002590| 5f 6d 6c 69 73 74 28 29 | 3b 0a 58 09 7d 0a 58 0a |_mlist()|;.X.}.X.|
|000025a0| 58 09 66 6f 72 20 28 6d | 6c 69 73 74 20 3d 20 66 |X.for (m|list = f|
|000025b0| 69 72 73 74 6d 6e 74 3b | 20 6d 6c 69 73 74 20 21 |irstmnt;| mlist !|
|000025c0| 3d 20 4e 55 4c 4c 3b 20 | 6d 6c 69 73 74 20 3d 20 |= NULL; |mlist = |
|000025d0| 6d 6c 69 73 74 2d 3e 6d | 6c 69 73 74 5f 6e 65 78 |mlist->m|list_nex|
|000025e0| 74 29 20 7b 0a 58 09 09 | 69 66 20 28 6d 6c 69 73 |t) {.X..|if (mlis|
|000025f0| 74 2d 3e 6d 6c 69 73 74 | 5f 69 73 6e 66 73 20 3d |t->mlist|_isnfs =|
|00002600| 3d 20 30 29 0a 58 09 09 | 09 63 6f 6e 74 69 6e 75 |= 0).X..|.continu|
|00002610| 65 3b 0a 58 09 09 69 66 | 20 28 73 74 72 63 6d 70 |e;.X..if| (strcmp|
|00002620| 28 6d 6c 69 73 74 2d 3e | 6d 6c 69 73 74 5f 64 69 |(mlist->|mlist_di|
|00002630| 72 2c 20 70 61 74 68 29 | 20 3d 3d 20 30 29 0a 58 |r, path)| == 0).X|
|00002640| 09 09 09 72 65 74 75 72 | 6e 28 6d 6c 69 73 74 29 |...retur|n(mlist)|
|00002650| 3b 0a 58 09 7d 0a 58 09 | 72 65 74 75 72 6e 20 4e |;.X.}.X.|return N|
|00002660| 55 4c 4c 3b 0a 58 7d 0a | 58 0a 58 0a 58 73 74 61 |ULL;.X}.|X.X.Xsta|
|00002670| 74 69 63 20 69 6e 74 0a | 58 67 65 74 5f 69 6e 61 |tic int.|Xget_ina|
|00002680| 64 64 72 28 73 61 64 64 | 72 2c 20 68 6f 73 74 29 |ddr(sadd|r, host)|
|00002690| 0a 58 2f 2a 0a 58 20 2a | 20 54 72 61 6e 73 6c 61 |.X/*.X *| Transla|
|000026a0| 74 65 20 68 6f 73 74 20 | 6e 61 6d 65 20 74 6f 20 |te host |name to |
|000026b0| 49 6e 74 65 72 6e 65 74 | 20 61 64 64 72 65 73 73 |Internet| address|
|000026c0| 2e 0a 58 20 2a 20 52 65 | 74 75 72 6e 20 31 20 69 |..X * Re|turn 1 i|
|000026d0| 66 20 6f 6b 2c 20 30 20 | 69 66 20 65 72 72 6f 72 |f ok, 0 |if error|
|000026e0| 0a 58 20 2a 2f 0a 58 73 | 74 72 75 63 74 20 73 6f |.X */.Xs|truct so|
|000026f0| 63 6b 61 64 64 72 5f 69 | 6e 20 2a 73 61 64 64 72 |ckaddr_i|n *saddr|
|00002700| 3b 0a 58 63 68 61 72 20 | 2a 68 6f 73 74 3b 0a 58 |;.Xchar |*host;.X|
|00002710| 7b 0a 58 09 72 65 67 69 | 73 74 65 72 20 73 74 72 |{.X.regi|ster str|
|00002720| 75 63 74 20 68 6f 73 74 | 65 6e 74 20 2a 68 70 3b |uct host|ent *hp;|
|00002730| 0a 58 0a 58 09 6d 65 6d | 73 65 74 28 28 63 68 61 |.X.X.mem|set((cha|
|00002740| 72 20 2a 29 73 61 64 64 | 72 2c 20 30 2c 20 73 69 |r *)sadd|r, 0, si|
|00002750| 7a 65 6f 66 28 73 74 72 | 75 63 74 20 73 6f 63 6b |zeof(str|uct sock|
|00002760| 61 64 64 72 5f 69 6e 29 | 29 3b 0a 58 09 73 61 64 |addr_in)|);.X.sad|
|00002770| 64 72 2d 3e 73 69 6e 5f | 66 61 6d 69 6c 79 20 3d |dr->sin_|family =|
|00002780| 20 41 46 5f 49 4e 45 54 | 3b 0a 58 09 69 66 20 28 | AF_INET|;.X.if (|
|00002790| 28 73 61 64 64 72 2d 3e | 73 69 6e 5f 61 64 64 72 |(saddr->|sin_addr|
|000027a0| 2e 73 5f 61 64 64 72 20 | 3d 20 69 6e 65 74 5f 61 |.s_addr |= inet_a|
|000027b0| 64 64 72 28 68 6f 73 74 | 29 29 20 3d 3d 20 2d 31 |ddr(host|)) == -1|
|000027c0| 29 20 7b 0a 58 09 09 69 | 66 20 28 28 68 70 20 3d |) {.X..i|f ((hp =|
|000027d0| 20 67 65 74 68 6f 73 74 | 62 79 6e 61 6d 65 28 68 | gethost|byname(h|
|000027e0| 6f 73 74 29 29 20 3d 3d | 20 4e 55 4c 4c 29 20 7b |ost)) ==| NULL) {|
|000027f0| 0a 58 09 09 09 66 70 72 | 69 6e 74 66 28 73 74 64 |.X...fpr|intf(std|
|00002800| 65 72 72 2c 20 22 25 73 | 3a 20 75 6e 6b 6e 6f 77 |err, "%s|: unknow|
|00002810| 6e 20 68 6f 73 74 5c 6e | 22 2c 20 68 6f 73 74 29 |n host\n|", host)|
|00002820| 3b 0a 58 09 09 09 72 65 | 74 75 72 6e 20 30 3b 0a |;.X...re|turn 0;.|
|00002830| 58 09 09 7d 0a 58 09 09 | 6d 65 6d 63 70 79 28 28 |X..}.X..|memcpy((|
|00002840| 63 68 61 72 20 2a 29 26 | 73 61 64 64 72 2d 3e 73 |char *)&|saddr->s|
|00002850| 69 6e 5f 61 64 64 72 2c | 20 68 70 2d 3e 68 5f 61 |in_addr,| hp->h_a|
|00002860| 64 64 72 2c 20 68 70 2d | 3e 68 5f 6c 65 6e 67 74 |ddr, hp-|>h_lengt|
|00002870| 68 29 3b 0a 58 09 7d 0a | 58 09 72 65 74 75 72 6e |h);.X.}.|X.return|
|00002880| 20 31 3b 0a 58 7d 0a 58 | 0a 58 0a 58 69 6e 74 0a | 1;.X}.X|.X.Xint.|
|00002890| 58 63 68 6b 6e 66 73 6d | 6e 74 28 6d 6c 69 73 74 |Xchknfsm|nt(mlist|
|000028a0| 29 0a 58 2f 2a 0a 58 20 | 2a 20 50 69 6e 67 20 74 |).X/*.X |* Ping t|
|000028b0| 68 65 20 4e 46 53 20 73 | 65 72 76 65 72 20 69 6e |he NFS s|erver in|
|000028c0| 64 69 63 61 74 65 64 20 | 62 79 20 74 68 65 20 67 |dicated |by the g|
|000028d0| 69 76 65 6e 20 6d 6e 74 | 20 65 6e 74 72 79 0a 58 |iven mnt| entry.X|
|000028e0| 20 2a 2f 0a 58 72 65 67 | 69 73 74 65 72 20 73 74 | */.Xreg|ister st|
|000028f0| 72 75 63 74 20 6d 5f 6d | 6c 69 73 74 20 2a 6d 6c |ruct m_m|list *ml|
|00002900| 69 73 74 3b 0a 58 7b 0a | 58 09 72 65 67 69 73 74 |ist;.X{.|X.regist|
|00002910| 65 72 20 63 68 61 72 20 | 2a 73 3b 0a 58 09 72 65 |er char |*s;.X.re|
|00002920| 67 69 73 74 65 72 20 73 | 74 72 75 63 74 20 6d 5f |gister s|truct m_|
|00002930| 6d 6c 69 73 74 20 2a 6d | 6c 69 73 74 32 3b 0a 58 |mlist *m|list2;.X|
|00002940| 09 43 4c 49 45 4e 54 20 | 2a 63 6c 69 65 6e 74 3b |.CLIENT |*client;|
|00002950| 0a 58 09 73 74 72 75 63 | 74 20 73 6f 63 6b 61 64 |.X.struc|t sockad|
|00002960| 64 72 5f 69 6e 20 73 61 | 64 64 72 3b 0a 58 09 69 |dr_in sa|ddr;.X.i|
|00002970| 6e 74 20 73 6f 63 6b 2c | 20 6c 65 6e 3b 0a 58 09 |nt sock,| len;.X.|
|00002980| 73 74 72 75 63 74 20 74 | 69 6d 65 76 61 6c 20 74 |struct t|imeval t|
|00002990| 6f 74 74 69 6d 65 6f 75 | 74 3b 0a 58 09 73 74 72 |ottimeou|t;.X.str|
|000029a0| 75 63 74 20 74 69 6d 65 | 76 61 6c 20 69 6e 74 65 |uct time|val inte|
|000029b0| 72 76 61 6c 3b 0a 58 09 | 69 6e 74 20 70 72 6f 67 |rval;.X.|int prog|
|000029c0| 6e 75 6d 2c 20 76 65 72 | 73 2c 20 70 6f 72 74 3b |num, ver|s, port;|
|000029d0| 0a 58 09 73 74 72 75 63 | 74 20 70 6d 61 70 20 70 |.X.struc|t pmap p|
|000029e0| 6d 61 70 3b 0a 58 09 65 | 6e 75 6d 20 63 6c 6e 74 |map;.X.e|num clnt|
|000029f0| 5f 73 74 61 74 20 72 70 | 63 5f 73 74 61 74 3b 0a |_stat rp|c_stat;.|
|00002a00| 58 09 73 74 61 74 69 63 | 20 63 68 61 72 20 70 5b |X.static| char p[|
|00002a10| 4d 41 58 50 41 54 48 4c | 45 4e 5d 3b 0a 58 0a 58 |MAXPATHL|EN];.X.X|
|00002a20| 09 69 66 20 28 44 66 6c | 67 29 0a 58 09 09 66 70 |.if (Dfl|g).X..fp|
|00002a30| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 63 |rintf(st|derr, "c|
|00002a40| 68 6b 6e 66 73 6d 6e 74 | 28 25 73 29 5c 6e 22 2c |hknfsmnt|(%s)\n",|
|00002a50| 20 6d 6c 69 73 74 2d 3e | 6d 6c 69 73 74 5f 66 73 | mlist->|mlist_fs|
|00002a60| 6e 61 6d 65 29 3b 0a 58 | 0a 58 09 69 66 20 28 6d |name);.X|.X.if (m|
|00002a70| 6c 69 73 74 2d 3e 6d 6c | 69 73 74 5f 63 68 65 63 |list->ml|ist_chec|
|00002a80| 6b 65 64 29 20 2f 2a 20 | 69 66 20 61 6c 72 65 61 |ked) /* |if alrea|
|00002a90| 64 79 20 63 68 65 63 6b | 65 64 20 74 68 69 73 20 |dy check|ed this |
|00002aa0| 6d 6f 75 6e 74 20 70 6f | 69 6e 74 20 2a 2f 0a 58 |mount po|int */.X|
|00002ab0| 09 09 72 65 74 75 72 6e | 20 28 6d 6c 69 73 74 2d |..return| (mlist-|
|00002ac0| 3e 6d 6c 69 73 74 5f 63 | 68 65 63 6b 65 64 29 3b |>mlist_c|hecked);|
|00002ad0| 0a 58 0a 58 09 2f 2a 0a | 58 09 20 2a 20 53 61 76 |.X.X./*.|X. * Sav|
|00002ae0| 65 20 70 61 74 68 20 74 | 6f 20 77 6f 72 6b 69 6e |e path t|o workin|
|00002af0| 67 20 73 74 6f 72 61 67 | 65 20 61 6e 64 20 73 74 |g storag|e and st|
|00002b00| 72 69 70 20 63 6f 6c 6f | 6e 0a 58 09 20 2a 2f 0a |rip colo|n.X. */.|
|00002b10| 58 09 73 74 72 6e 63 70 | 79 28 70 2c 20 6d 6c 69 |X.strncp|y(p, mli|
|00002b20| 73 74 2d 3e 6d 6c 69 73 | 74 5f 66 73 6e 61 6d 65 |st->mlis|t_fsname|
|00002b30| 2c 20 73 69 7a 65 6f 66 | 28 70 29 2d 31 29 3b 0a |, sizeof|(p)-1);.|
|00002b40| 58 09 69 66 20 28 28 73 | 20 3d 20 73 74 72 63 68 |X.if ((s| = strch|
|00002b50| 72 28 70 2c 20 27 3a 27 | 29 29 20 21 3d 20 4e 55 |r(p, ':'|)) != NU|
|00002b60| 4c 4c 29 0a 58 09 09 2a | 73 20 3d 20 27 5c 30 27 |LL).X..*|s = '\0'|
|00002b70| 3b 0a 58 09 6c 65 6e 20 | 3d 20 73 74 72 6c 65 6e |;.X.len |= strlen|
|00002b80| 28 70 29 3b 0a 58 0a 58 | 09 2f 2a 0a 58 09 20 2a |(p);.X.X|./*.X. *|
|00002b90| 20 53 65 65 20 69 66 20 | 72 65 6d 6f 74 65 20 68 | See if |remote h|
|00002ba0| 6f 73 74 20 61 6c 72 65 | 61 64 79 20 63 68 65 63 |ost alre|ady chec|
|00002bb0| 6b 65 64 20 76 69 61 20 | 61 6e 6f 74 68 65 72 20 |ked via |another |
|00002bc0| 6d 6f 75 6e 74 20 70 6f | 69 6e 74 0a 58 09 20 2a |mount po|int.X. *|
|00002bd0| 2f 0a 58 09 66 6f 72 20 | 28 6d 6c 69 73 74 32 20 |/.X.for |(mlist2 |
|00002be0| 3d 20 66 69 72 73 74 6d | 6e 74 3b 20 6d 6c 69 73 |= firstm|nt; mlis|
|00002bf0| 74 32 20 21 3d 20 4e 55 | 4c 4c 3b 20 6d 6c 69 73 |t2 != NU|LL; mlis|
|00002c00| 74 32 20 3d 20 6d 6c 69 | 73 74 32 2d 3e 6d 6c 69 |t2 = mli|st2->mli|
|00002c10| 73 74 5f 6e 65 78 74 29 | 0a 58 09 09 69 66 20 28 |st_next)|.X..if (|
|00002c20| 73 74 72 6e 63 6d 70 28 | 6d 6c 69 73 74 32 2d 3e |strncmp(|mlist2->|
|00002c30| 6d 6c 69 73 74 5f 66 73 | 6e 61 6d 65 2c 20 70 2c |mlist_fs|name, p,|
|00002c40| 20 6c 65 6e 29 20 3d 3d | 20 30 20 0a 58 09 09 09 | len) ==| 0 .X...|
|00002c50| 09 26 26 20 6d 6c 69 73 | 74 32 2d 3e 6d 6c 69 73 |.&& mlis|t2->mlis|
|00002c60| 74 5f 63 68 65 63 6b 65 | 64 29 0a 58 09 09 09 72 |t_checke|d).X...r|
|00002c70| 65 74 75 72 6e 28 6d 6c | 69 73 74 32 2d 3e 6d 6c |eturn(ml|ist2->ml|
|00002c80| 69 73 74 5f 63 68 65 63 | 6b 65 64 29 3b 0a 58 0a |ist_chec|ked);.X.|
|00002c90| 58 09 6d 6c 69 73 74 2d | 3e 6d 6c 69 73 74 5f 63 |X.mlist-|>mlist_c|
|00002ca0| 68 65 63 6b 65 64 20 3d | 20 2d 31 3b 20 2f 2a 20 |hecked =| -1; /* |
|00002cb0| 73 65 74 20 66 61 69 6c | 65 64 20 2a 2f 0a 58 09 |set fail|ed */.X.|
|00002cc0| 69 66 20 28 76 66 6c 67 | 29 0a 58 09 09 66 70 72 |if (vflg|).X..fpr|
|00002cd0| 69 6e 74 66 28 73 74 64 | 65 72 72 2c 20 22 43 68 |intf(std|err, "Ch|
|00002ce0| 65 63 6b 69 6e 67 20 25 | 73 2e 2e 5c 6e 22 2c 20 |ecking %|s..\n", |
|00002cf0| 70 29 3b 0a 58 09 69 6e | 74 65 72 76 61 6c 2e 74 |p);.X.in|terval.t|
|00002d00| 76 5f 73 65 63 20 3d 20 | 32 3b 20 20 2f 2a 20 72 |v_sec = |2; /* r|
|00002d10| 65 74 72 79 20 69 6e 74 | 65 72 76 61 6c 20 2a 2f |etry int|erval */|
|00002d20| 0a 58 09 69 6e 74 65 72 | 76 61 6c 2e 74 76 5f 75 |.X.inter|val.tv_u|
|00002d30| 73 65 63 20 3d 20 30 3b | 0a 58 0a 58 09 2f 2a 0a |sec = 0;|.X.X./*.|
|00002d40| 58 09 20 2a 20 50 61 72 | 73 65 20 69 6e 74 65 72 |X. * Par|se inter|
|00002d50| 6e 65 74 20 61 64 64 72 | 65 73 73 0a 58 09 20 2a |net addr|ess.X. *|
|00002d60| 2f 0a 58 09 69 66 20 28 | 67 65 74 5f 69 6e 61 64 |/.X.if (|get_inad|
|00002d70| 64 72 28 26 73 61 64 64 | 72 2c 20 70 29 20 3d 3d |dr(&sadd|r, p) ==|
|00002d80| 20 30 29 0a 58 09 09 72 | 65 74 75 72 6e 20 30 3b | 0).X..r|eturn 0;|
|00002d90| 0a 58 09 2f 2a 0a 58 09 | 20 2a 20 47 65 74 20 73 |.X./*.X.| * Get s|
|00002da0| 6f 63 6b 65 74 20 74 6f | 20 72 65 6d 6f 74 65 20 |ocket to| remote |
|00002db0| 70 6f 72 74 6d 61 70 70 | 65 72 0a 58 09 20 2a 2f |portmapp|er.X. */|
|00002dc0| 0a 58 09 73 61 64 64 72 | 2e 73 69 6e 5f 70 6f 72 |.X.saddr|.sin_por|
|00002dd0| 74 20 3d 20 68 74 6f 6e | 73 28 50 4d 41 50 50 4f |t = hton|s(PMAPPO|
|00002de0| 52 54 29 3b 0a 58 09 73 | 6f 63 6b 20 3d 20 52 50 |RT);.X.s|ock = RP|
|00002df0| 43 5f 41 4e 59 53 4f 43 | 4b 3b 0a 58 09 69 66 20 |C_ANYSOC|K;.X.if |
|00002e00| 28 28 63 6c 69 65 6e 74 | 20 3d 20 63 6c 6e 74 75 |((client| = clntu|
|00002e10| 64 70 5f 63 72 65 61 74 | 65 28 26 73 61 64 64 72 |dp_creat|e(&saddr|
|00002e20| 2c 20 50 4d 41 50 50 52 | 4f 47 2c 20 50 4d 41 50 |, PMAPPR|OG, PMAP|
|00002e30| 56 45 52 53 2c 20 69 6e | 74 65 72 76 61 6c 2c 20 |VERS, in|terval, |
|00002e40| 0a 58 09 09 09 26 73 6f | 63 6b 29 29 20 3d 3d 20 |.X...&so|ck)) == |
|00002e50| 4e 55 4c 4c 29 20 7b 0a | 58 09 09 63 6c 6e 74 5f |NULL) {.|X..clnt_|
|00002e60| 70 63 72 65 61 74 65 65 | 72 72 6f 72 28 70 29 3b |pcreatee|rror(p);|
|00002e70| 0a 58 09 09 72 65 74 75 | 72 6e 20 30 3b 0a 58 09 |.X..retu|rn 0;.X.|
|00002e80| 7d 0a 58 09 2f 2a 0a 58 | 09 20 2a 20 51 75 65 72 |}.X./*.X|. * Quer|
|00002e90| 79 20 70 6f 72 74 6d 61 | 70 70 65 72 20 66 6f 72 |y portma|pper for|
|00002ea0| 20 70 6f 72 74 20 23 20 | 6f 66 20 4e 46 53 20 73 | port # |of NFS s|
|00002eb0| 65 72 76 65 72 0a 58 09 | 20 2a 2f 0a 58 09 70 6d |erver.X.| */.X.pm|
|00002ec0| 61 70 2e 70 6d 5f 70 72 | 6f 67 20 3d 20 4e 46 53 |ap.pm_pr|og = NFS|
|00002ed0| 5f 50 52 4f 47 52 41 4d | 3b 0a 58 09 70 6d 61 70 |_PROGRAM|;.X.pmap|
|00002ee0| 2e 70 6d 5f 76 65 72 73 | 20 3d 20 4e 46 53 5f 56 |.pm_vers| = NFS_V|
|00002ef0| 45 52 53 49 4f 4e 3b 0a | 58 09 70 6d 61 70 2e 70 |ERSION;.|X.pmap.p|
|00002f00| 6d 5f 70 72 6f 74 20 3d | 20 49 50 50 52 4f 54 4f |m_prot =| IPPROTO|
|00002f10| 5f 55 44 50 3b 0a 58 09 | 70 6d 61 70 2e 70 6d 5f |_UDP;.X.|pmap.pm_|
|00002f20| 70 6f 72 74 20 3d 20 30 | 3b 0a 58 09 74 6f 74 74 |port = 0|;.X.tott|
|00002f30| 69 6d 65 6f 75 74 2e 74 | 76 5f 73 65 63 20 3d 20 |imeout.t|v_sec = |
|00002f40| 74 69 6d 65 6f 75 74 3b | 20 20 2f 2a 20 74 6f 74 |timeout;| /* tot|
|00002f50| 61 6c 20 74 69 6d 65 6f | 75 74 20 2a 2f 0a 58 09 |al timeo|ut */.X.|
|00002f60| 74 6f 74 74 69 6d 65 6f | 75 74 2e 74 76 5f 75 73 |tottimeo|ut.tv_us|
|00002f70| 65 63 20 3d 20 30 3b 0a | 58 09 69 66 20 28 28 72 |ec = 0;.|X.if ((r|
|00002f80| 70 63 5f 73 74 61 74 20 | 3d 20 63 6c 6e 74 5f 63 |pc_stat |= clnt_c|
|00002f90| 61 6c 6c 28 63 6c 69 65 | 6e 74 2c 20 50 4d 41 50 |all(clie|nt, PMAP|
|00002fa0| 50 52 4f 43 5f 47 45 54 | 50 4f 52 54 2c 20 78 64 |PROC_GET|PORT, xd|
|00002fb0| 72 5f 70 6d 61 70 2c 20 | 26 70 6d 61 70 2c 0a 58 |r_pmap, |&pmap,.X|
|00002fc0| 09 09 09 78 64 72 5f 75 | 5f 69 6e 74 2c 20 26 70 |...xdr_u|_int, &p|
|00002fd0| 6f 72 74 2c 20 74 6f 74 | 74 69 6d 65 6f 75 74 29 |ort, tot|timeout)|
|00002fe0| 29 20 21 3d 20 52 50 43 | 5f 53 55 43 43 45 53 53 |) != RPC|_SUCCESS|
|00002ff0| 29 20 7b 0a 58 09 09 63 | 6c 6e 74 5f 70 65 72 72 |) {.X..c|lnt_perr|
|00003000| 6f 72 28 63 6c 69 65 6e | 74 2c 20 70 29 3b 0a 58 |or(clien|t, p);.X|
|00003010| 09 09 63 6c 6e 74 5f 64 | 65 73 74 72 6f 79 28 63 |..clnt_d|estroy(c|
|00003020| 6c 69 65 6e 74 29 3b 0a | 58 09 09 72 65 74 75 72 |lient);.|X..retur|
|00003030| 6e 20 30 3b 0a 58 09 7d | 0a 58 09 63 6c 6e 74 5f |n 0;.X.}|.X.clnt_|
|00003040| 64 65 73 74 72 6f 79 28 | 63 6c 69 65 6e 74 29 3b |destroy(|client);|
|00003050| 0a 58 0a 58 09 69 66 20 | 28 70 6f 72 74 20 3d 3d |.X.X.if |(port ==|
|00003060| 20 30 29 20 7b 0a 58 09 | 09 66 70 72 69 6e 74 66 | 0) {.X.|.fprintf|
|00003070| 28 73 74 64 65 72 72 2c | 20 22 25 73 3a 20 4e 46 |(stderr,| "%s: NF|
|00003080| 53 20 73 65 72 76 65 72 | 20 6e 6f 74 20 72 65 67 |S server| not reg|
|00003090| 69 73 74 65 72 65 64 5c | 6e 22 2c 20 70 29 3b 0a |istered\|n", p);.|
|000030a0| 58 09 09 72 65 74 75 72 | 6e 20 30 3b 0a 58 09 7d |X..retur|n 0;.X.}|
|000030b0| 0a 58 09 2f 2a 0a 58 09 | 20 2a 20 47 65 74 20 73 |.X./*.X.| * Get s|
|000030c0| 6f 63 6b 65 74 20 74 6f | 20 4e 46 53 20 73 65 72 |ocket to| NFS ser|
|000030d0| 76 65 72 0a 58 09 20 2a | 2f 0a 58 09 73 61 64 64 |ver.X. *|/.X.sadd|
|000030e0| 72 2e 73 69 6e 5f 70 6f | 72 74 20 3d 20 68 74 6f |r.sin_po|rt = hto|
|000030f0| 6e 73 28 70 6f 72 74 29 | 3b 0a 58 09 73 6f 63 6b |ns(port)|;.X.sock|
|00003100| 20 3d 20 52 50 43 5f 41 | 4e 59 53 4f 43 4b 3b 0a | = RPC_A|NYSOCK;.|
|00003110| 58 09 69 66 20 28 28 63 | 6c 69 65 6e 74 20 3d 20 |X.if ((c|lient = |
|00003120| 63 6c 6e 74 75 64 70 5f | 63 72 65 61 74 65 28 26 |clntudp_|create(&|
|00003130| 73 61 64 64 72 2c 20 4e | 46 53 5f 50 52 4f 47 52 |saddr, N|FS_PROGR|
|00003140| 41 4d 2c 20 4e 46 53 5f | 56 45 52 53 49 4f 4e 2c |AM, NFS_|VERSION,|
|00003150| 0a 58 09 09 09 69 6e 74 | 65 72 76 61 6c 2c 20 26 |.X...int|erval, &|
|00003160| 73 6f 63 6b 29 29 20 3d | 3d 20 4e 55 4c 4c 29 20 |sock)) =|= NULL) |
|00003170| 7b 0a 58 09 09 63 6c 6e | 74 5f 70 63 72 65 61 74 |{.X..cln|t_pcreat|
|00003180| 65 65 72 72 6f 72 28 70 | 29 3b 0a 58 09 09 72 65 |eerror(p|);.X..re|
|00003190| 74 75 72 6e 20 30 3b 0a | 58 09 7d 0a 58 09 2f 2a |turn 0;.|X.}.X./*|
|000031a0| 0a 58 09 20 2a 20 50 69 | 6e 67 20 4e 46 53 20 73 |.X. * Pi|ng NFS s|
|000031b0| 65 72 76 65 72 0a 58 09 | 20 2a 2f 0a 58 09 74 6f |erver.X.| */.X.to|
|000031c0| 74 74 69 6d 65 6f 75 74 | 2e 74 76 5f 73 65 63 20 |ttimeout|.tv_sec |
|000031d0| 3d 20 74 69 6d 65 6f 75 | 74 3b 0a 58 09 74 6f 74 |= timeou|t;.X.tot|
|000031e0| 74 69 6d 65 6f 75 74 2e | 74 76 5f 75 73 65 63 20 |timeout.|tv_usec |
|000031f0| 3d 20 30 3b 0a 58 09 69 | 66 20 28 28 72 70 63 5f |= 0;.X.i|f ((rpc_|
|00003200| 73 74 61 74 20 3d 20 63 | 6c 6e 74 5f 63 61 6c 6c |stat = c|lnt_call|
|00003210| 28 63 6c 69 65 6e 74 2c | 20 4e 55 4c 4c 50 52 4f |(client,| NULLPRO|
|00003220| 43 2c 20 78 64 72 5f 76 | 6f 69 64 2c 20 28 63 68 |C, xdr_v|oid, (ch|
|00003230| 61 72 20 2a 29 4e 55 4c | 4c 2c 0a 58 09 09 09 78 |ar *)NUL|L,.X...x|
|00003240| 64 72 5f 76 6f 69 64 2c | 20 28 63 68 61 72 20 2a |dr_void,| (char *|
|00003250| 29 4e 55 4c 4c 2c 20 74 | 6f 74 74 69 6d 65 6f 75 |)NULL, t|ottimeou|
|00003260| 74 29 29 20 21 3d 20 52 | 50 43 5f 53 55 43 43 45 |t)) != R|PC_SUCCE|
|00003270| 53 53 29 20 7b 0a 58 09 | 09 63 6c 6e 74 5f 70 65 |SS) {.X.|.clnt_pe|
|00003280| 72 72 6f 72 28 63 6c 69 | 65 6e 74 2c 20 70 29 3b |rror(cli|ent, p);|
|00003290| 0a 58 09 09 63 6c 6e 74 | 5f 64 65 73 74 72 6f 79 |.X..clnt|_destroy|
|000032a0| 28 63 6c 69 65 6e 74 29 | 3b 0a 58 09 09 72 65 74 |(client)|;.X..ret|
|000032b0| 75 72 6e 20 30 3b 0a 58 | 09 7d 0a 58 09 63 6c 6e |urn 0;.X|.}.X.cln|
|000032c0| 74 5f 64 65 73 74 72 6f | 79 28 63 6c 69 65 6e 74 |t_destro|y(client|
|000032d0| 29 3b 0a 58 09 6d 6c 69 | 73 74 2d 3e 6d 6c 69 73 |);.X.mli|st->mlis|
|000032e0| 74 5f 63 68 65 63 6b 65 | 64 20 3d 20 31 3b 20 2f |t_checke|d = 1; /|
|000032f0| 2a 20 73 65 74 20 73 75 | 63 63 65 73 73 20 2a 2f |* set su|ccess */|
|00003300| 0a 58 09 69 66 20 28 76 | 66 6c 67 29 0a 58 09 09 |.X.if (v|flg).X..|
|00003310| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 20 |fprintf(|stderr, |
|00003320| 22 25 73 20 6f 6b 5c 6e | 22 2c 20 70 29 3b 0a 58 |"%s ok\n|", p);.X|
|00003330| 09 72 65 74 75 72 6e 20 | 31 3b 0a 58 7d 0a 58 0a |.return |1;.X}.X.|
|00003340| 58 0a 58 63 68 61 72 20 | 2a 0a 58 78 61 6c 6c 6f |X.Xchar |*.Xxallo|
|00003350| 63 28 73 69 7a 65 29 0a | 58 2f 2a 0a 58 20 2a 20 |c(size).|X/*.X * |
|00003360| 41 6c 6c 6f 63 20 6d 65 | 6d 6f 72 79 20 77 69 74 |Alloc me|mory wit|
|00003370| 68 20 65 72 72 6f 72 20 | 63 68 65 63 6b 73 0a 58 |h error |checks.X|
|00003380| 20 2a 2f 0a 58 75 6e 73 | 69 67 6e 65 64 20 69 6e | */.Xuns|igned in|
|00003390| 74 20 73 69 7a 65 3b 0a | 58 7b 0a 58 09 72 65 67 |t size;.|X{.X.reg|
|000033a0| 69 73 74 65 72 20 63 68 | 61 72 20 2a 6d 65 6d 3b |ister ch|ar *mem;|
|000033b0| 0a 58 09 63 68 61 72 20 | 2a 6d 61 6c 6c 6f 63 28 |.X.char |*malloc(|
|000033c0| 29 3b 0a 58 09 0a 58 09 | 69 66 20 28 28 6d 65 6d |);.X..X.|if ((mem|
|000033d0| 20 3d 20 28 63 68 61 72 | 20 2a 29 6d 61 6c 6c 6f | = (char| *)mallo|
|000033e0| 63 28 73 69 7a 65 29 29 | 20 3d 3d 20 4e 55 4c 4c |c(size))| == NULL|
|000033f0| 29 20 7b 0a 58 09 09 28 | 76 6f 69 64 29 20 66 70 |) {.X..(|void) fp|
|00003400| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 6f |rintf(st|derr, "o|
|00003410| 75 74 20 6f 66 20 6d 65 | 6d 6f 72 79 5c 6e 22 29 |ut of me|mory\n")|
|00003420| 3b 0a 58 09 09 65 78 69 | 74 28 31 29 3b 0a 58 09 |;.X..exi|t(1);.X.|
|00003430| 7d 0a 58 09 72 65 74 75 | 72 6e 28 6d 65 6d 29 3b |}.X.retu|rn(mem);|
|00003440| 0a 58 7d 0a 58 0a 58 2f | 2a 0a 58 20 2a 20 42 65 |.X}.X.X/|*.X * Be|
|00003450| 67 69 6e 20 6d 61 63 68 | 69 6e 65 20 64 65 70 65 |gin mach|ine depe|
|00003460| 6e 64 65 6e 74 20 63 6f | 64 65 20 66 6f 72 20 6d |ndent co|de for m|
|00003470| 6f 75 6e 74 20 74 61 62 | 6c 65 20 0a 58 20 2a 2f |ount tab|le .X */|
|00003480| 0a 58 0a 58 23 69 66 20 | 64 65 66 69 6e 65 64 28 |.X.X#if |defined(|
|00003490| 73 75 6e 29 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |sun).X#i|nclude <|
|000034a0| 6d 6e 74 65 6e 74 2e 68 | 3e 0a 58 76 6f 69 64 0a |mntent.h|>.Xvoid.|
|000034b0| 58 6d 6b 6d 5f 6d 6c 69 | 73 74 28 29 0a 58 2f 2a |Xmkm_mli|st().X/*|
|000034c0| 0a 58 20 2a 20 42 75 69 | 6c 64 20 6c 69 73 74 20 |.X * Bui|ld list |
|000034d0| 6f 66 20 6d 6e 74 20 65 | 6e 74 72 69 65 73 20 2d |of mnt e|ntries -|
|000034e0| 20 53 75 6e 20 76 65 72 | 73 69 6f 6e 0a 58 20 2a | Sun ver|sion.X *|
|000034f0| 2f 0a 58 7b 0a 58 09 46 | 49 4c 45 20 2a 6d 6f 75 |/.X{.X.F|ILE *mou|
|00003500| 6e 74 65 64 3b 0a 58 09 | 73 74 72 75 63 74 20 6d |nted;.X.|struct m|
|00003510| 5f 6d 6c 69 73 74 20 2a | 6d 6c 69 73 74 3b 0a 58 |_mlist *|mlist;.X|
|00003520| 09 73 74 72 75 63 74 20 | 6d 6e 74 65 6e 74 20 2a |.struct |mntent *|
|00003530| 6d 6e 74 3b 0a 58 0a 58 | 09 69 66 20 28 28 6d 6f |mnt;.X.X|.if ((mo|
|00003540| 75 6e 74 65 64 20 3d 20 | 73 65 74 6d 6e 74 65 6e |unted = |setmnten|
|00003550| 74 28 4d 4f 55 4e 54 45 | 44 2c 20 22 72 22 29 29 |t(MOUNTE|D, "r"))|
|00003560| 3d 3d 20 4e 55 4c 4c 29 | 20 7b 0a 58 09 09 70 65 |== NULL)| {.X..pe|
|00003570| 72 72 6f 72 28 4d 4f 55 | 4e 54 45 44 29 3b 0a 58 |rror(MOU|NTED);.X|
|00003580| 09 09 65 78 69 74 28 31 | 29 3b 0a 58 09 7d 0a 58 |..exit(1|);.X.}.X|
|00003590| 09 77 68 69 6c 65 20 28 | 28 6d 6e 74 20 3d 20 67 |.while (|(mnt = g|
|000035a0| 65 74 6d 6e 74 65 6e 74 | 28 6d 6f 75 6e 74 65 64 |etmntent|(mounted|
|000035b0| 29 29 20 21 3d 20 4e 55 | 4c 4c 29 20 7b 0a 58 09 |)) != NU|LL) {.X.|
|000035c0| 09 6d 6c 69 73 74 20 3d | 20 28 73 74 72 75 63 74 |.mlist =| (struct|
|000035d0| 20 6d 5f 6d 6c 69 73 74 | 20 2a 29 78 61 6c 6c 6f | m_mlist| *)xallo|
|000035e0| 63 28 73 69 7a 65 6f 66 | 28 2a 6d 6c 69 73 74 29 |c(sizeof|(*mlist)|
|000035f0| 29 3b 0a 58 09 09 6d 6c | 69 73 74 2d 3e 6d 6c 69 |);.X..ml|ist->mli|
|00003600| 73 74 5f 6e 65 78 74 20 | 3d 20 66 69 72 73 74 6d |st_next |= firstm|
|00003610| 6e 74 3b 0a 58 09 09 6d | 6c 69 73 74 2d 3e 6d 6c |nt;.X..m|list->ml|
|00003620| 69 73 74 5f 63 68 65 63 | 6b 65 64 20 3d 20 30 3b |ist_chec|ked = 0;|
|00003630| 0a 58 09 09 6d 6c 69 73 | 74 2d 3e 6d 6c 69 73 74 |.X..mlis|t->mlist|
|00003640| 5f 64 69 72 20 3d 20 78 | 61 6c 6c 6f 63 28 73 74 |_dir = x|alloc(st|
|00003650| 72 6c 65 6e 28 6d 6e 74 | 2d 3e 6d 6e 74 5f 64 69 |rlen(mnt|->mnt_di|
|00003660| 72 29 2b 31 29 3b 0a 58 | 09 09 28 76 6f 69 64 29 |r)+1);.X|..(void)|
|00003670| 20 73 74 72 63 70 79 28 | 6d 6c 69 73 74 2d 3e 6d | strcpy(|mlist->m|
|00003680| 6c 69 73 74 5f 64 69 72 | 2c 20 6d 6e 74 2d 3e 6d |list_dir|, mnt->m|
|00003690| 6e 74 5f 64 69 72 29 3b | 0a 58 09 09 6d 6c 69 73 |nt_dir);|.X..mlis|
|000036a0| 74 2d 3e 6d 6c 69 73 74 | 5f 66 73 6e 61 6d 65 20 |t->mlist|_fsname |
|000036b0| 3d 20 78 61 6c 6c 6f 63 | 28 73 74 72 6c 65 6e 28 |= xalloc|(strlen(|
|000036c0| 6d 6e 74 2d 3e 6d 6e 74 | 5f 66 73 6e 61 6d 65 29 |mnt->mnt|_fsname)|
|000036d0| 2b 31 29 3b 0a 58 09 09 | 28 76 6f 69 64 29 20 73 |+1);.X..|(void) s|
|000036e0| 74 72 63 70 79 28 6d 6c | 69 73 74 2d 3e 6d 6c 69 |trcpy(ml|ist->mli|
|000036f0| 73 74 5f 66 73 6e 61 6d | 65 2c 20 6d 6e 74 2d 3e |st_fsnam|e, mnt->|
|00003700| 6d 6e 74 5f 66 73 6e 61 | 6d 65 29 3b 0a 58 09 09 |mnt_fsna|me);.X..|
|00003710| 6d 6c 69 73 74 2d 3e 6d | 6c 69 73 74 5f 69 73 6e |mlist->m|list_isn|
|00003720| 66 73 20 3d 20 21 73 74 | 72 63 6d 70 28 6d 6e 74 |fs = !st|rcmp(mnt|
|00003730| 2d 3e 6d 6e 74 5f 74 79 | 70 65 2c 20 4d 4e 54 54 |->mnt_ty|pe, MNTT|
|00003740| 59 50 45 5f 4e 46 53 29 | 3b 0a 58 09 09 66 69 72 |YPE_NFS)|;.X..fir|
|00003750| 73 74 6d 6e 74 20 3d 20 | 6d 6c 69 73 74 3b 0a 58 |stmnt = |mlist;.X|
|00003760| 09 7d 0a 58 09 28 76 6f | 69 64 29 20 65 6e 64 6d |.}.X.(vo|id) endm|
|00003770| 6e 74 65 6e 74 28 6d 6f | 75 6e 74 65 64 29 3b 0a |ntent(mo|unted);.|
|00003780| 58 7d 0a 58 23 65 6e 64 | 69 66 0a 58 0a 58 23 69 |X}.X#end|if.X.X#i|
|00003790| 66 20 64 65 66 69 6e 65 | 64 28 75 6c 74 72 69 78 |f define|d(ultrix|
|000037a0| 29 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |).X#incl|ude <sys|
|000037b0| 2f 66 73 5f 74 79 70 65 | 73 2e 68 3e 0a 58 23 69 |/fs_type|s.h>.X#i|
|000037c0| 6e 63 6c 75 64 65 20 3c | 73 79 73 2f 6d 6f 75 6e |nclude <|sys/moun|
|000037d0| 74 2e 68 3e 0a 58 76 6f | 69 64 0a 58 6d 6b 6d 5f |t.h>.Xvo|id.Xmkm_|
|000037e0| 6d 6c 69 73 74 28 29 0a | 58 2f 2a 0a 58 20 2a 20 |mlist().|X/*.X * |
|000037f0| 42 75 69 6c 64 20 6c 69 | 73 74 20 6f 66 20 6d 6e |Build li|st of mn|
|00003800| 74 20 65 6e 74 72 69 65 | 73 20 2d 20 55 6c 74 72 |t entrie|s - Ultr|
|00003810| 69 78 20 76 65 72 73 69 | 6f 6e 20 28 47 65 6e 65 |ix versi|on (Gene|
|00003820| 72 69 63 20 46 69 6c 65 | 20 53 79 73 74 65 6d 29 |ric File| System)|
|00003830| 0a 58 20 2a 2f 0a 58 7b | 0a 58 09 73 74 72 75 63 |.X */.X{|.X.struc|
|00003840| 74 20 6d 5f 6d 6c 69 73 | 74 20 2a 6d 6c 69 73 74 |t m_mlis|t *mlist|
|00003850| 3b 0a 58 09 73 74 72 75 | 63 74 20 66 73 5f 64 61 |;.X.stru|ct fs_da|
|00003860| 74 61 20 66 73 5f 64 61 | 74 61 3b 0a 58 09 69 6e |ta fs_da|ta;.X.in|
|00003870| 74 20 73 74 61 72 74 3d | 30 2c 20 6c 65 6e 3b 0a |t start=|0, len;.|
|00003880| 58 0a 58 09 77 68 69 6c | 65 20 28 28 6c 65 6e 20 |X.X.whil|e ((len |
|00003890| 3d 20 67 65 74 6d 6e 74 | 28 26 73 74 61 72 74 2c |= getmnt|(&start,|
|000038a0| 20 26 66 73 5f 64 61 74 | 61 2c 20 73 69 7a 65 6f | &fs_dat|a, sizeo|
|000038b0| 66 28 66 73 5f 64 61 74 | 61 29 2c 20 0a 58 09 09 |f(fs_dat|a), .X..|
|000038c0| 09 4e 4f 53 54 41 54 5f | 4d 41 4e 59 2c 20 4e 55 |.NOSTAT_|MANY, NU|
|000038d0| 4c 4c 29 29 20 3e 20 30 | 29 20 7b 0a 58 09 09 6d |LL)) > 0|) {.X..m|
|000038e0| 6c 69 73 74 20 3d 20 28 | 73 74 72 75 63 74 20 6d |list = (|struct m|
|000038f0| 5f 6d 6c 69 73 74 20 2a | 29 78 61 6c 6c 6f 63 28 |_mlist *|)xalloc(|
|00003900| 73 69 7a 65 6f 66 28 2a | 6d 6c 69 73 74 29 29 3b |sizeof(*|mlist));|
|00003910| 0a 58 09 09 6d 6c 69 73 | 74 2d 3e 6d 6c 69 73 74 |.X..mlis|t->mlist|
|00003920| 5f 6e 65 78 74 20 3d 20 | 66 69 72 73 74 6d 6e 74 |_next = |firstmnt|
|00003930| 3b 0a 58 09 09 6d 6c 69 | 73 74 2d 3e 6d 6c 69 73 |;.X..mli|st->mlis|
|00003940| 74 5f 63 68 65 63 6b 65 | 64 20 3d 20 30 3b 0a 58 |t_checke|d = 0;.X|
|00003950| 09 09 6d 6c 69 73 74 2d | 3e 6d 6c 69 73 74 5f 64 |..mlist-|>mlist_d|
|00003960| 69 72 20 3d 20 78 61 6c | 6c 6f 63 28 73 74 72 6c |ir = xal|loc(strl|
|00003970| 65 6e 28 66 73 5f 64 61 | 74 61 2e 66 64 5f 70 61 |en(fs_da|ta.fd_pa|
|00003980| 74 68 29 2b 31 29 3b 0a | 58 09 09 28 76 6f 69 64 |th)+1);.|X..(void|
|00003990| 29 20 73 74 72 63 70 79 | 28 6d 6c 69 73 74 2d 3e |) strcpy|(mlist->|
|000039a0| 6d 6c 69 73 74 5f 64 69 | 72 2c 20 66 73 5f 64 61 |mlist_di|r, fs_da|
|000039b0| 74 61 2e 66 64 5f 70 61 | 74 68 29 3b 0a 58 09 09 |ta.fd_pa|th);.X..|
|000039c0| 6d 6c 69 73 74 2d 3e 6d | 6c 69 73 74 5f 66 73 6e |mlist->m|list_fsn|
|000039d0| 61 6d 65 20 3d 20 0a 58 | 09 09 09 78 61 6c 6c 6f |ame = .X|...xallo|
|000039e0| 63 28 73 74 72 6c 65 6e | 28 66 73 5f 64 61 74 61 |c(strlen|(fs_data|
|000039f0| 2e 66 64 5f 64 65 76 6e | 61 6d 65 29 2b 31 29 3b |.fd_devn|ame)+1);|
|00003a00| 0a 58 09 09 28 76 6f 69 | 64 29 20 73 74 72 63 70 |.X..(voi|d) strcp|
|00003a10| 79 28 6d 6c 69 73 74 2d | 3e 6d 6c 69 73 74 5f 66 |y(mlist-|>mlist_f|
|00003a20| 73 6e 61 6d 65 2c 20 66 | 73 5f 64 61 74 61 2e 66 |sname, f|s_data.f|
|00003a30| 64 5f 64 65 76 6e 61 6d | 65 29 3b 0a 58 09 09 6d |d_devnam|e);.X..m|
|00003a40| 6c 69 73 74 2d 3e 6d 6c | 69 73 74 5f 69 73 6e 66 |list->ml|ist_isnf|
|00003a50| 73 20 3d 20 28 66 73 5f | 64 61 74 61 2e 66 64 5f |s = (fs_|data.fd_|
|00003a60| 66 73 74 79 70 65 20 3d | 3d 20 47 54 5f 4e 46 53 |fstype =|= GT_NFS|
|00003a70| 29 3b 0a 58 09 09 66 69 | 72 73 74 6d 6e 74 20 3d |);.X..fi|rstmnt =|
|00003a80| 20 6d 6c 69 73 74 3b 0a | 58 09 7d 0a 58 09 69 66 | mlist;.|X.}.X.if|
|00003a90| 20 28 6c 65 6e 20 3c 20 | 30 29 20 7b 0a 58 09 09 | (len < |0) {.X..|
|00003aa0| 70 65 72 72 6f 72 28 22 | 67 65 74 6d 6e 74 22 29 |perror("|getmnt")|
|00003ab0| 3b 0a 58 09 09 65 78 69 | 74 28 31 29 3b 0a 58 09 |;.X..exi|t(1);.X.|
|00003ac0| 7d 0a 58 7d 0a 58 23 65 | 6e 64 69 66 0a 45 4e 44 |}.X}.X#e|ndif.END|
|00003ad0| 5f 4f 46 5f 46 49 4c 45 | 0a 69 66 20 74 65 73 74 |_OF_FILE|.if test|
|00003ae0| 20 31 33 30 39 33 20 2d | 6e 65 20 60 77 63 20 2d | 13093 -|ne `wc -|
|00003af0| 63 20 3c 27 63 6b 6e 66 | 73 2e 63 27 60 3b 20 74 |c <'cknf|s.c'`; t|
|00003b00| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00003b10| 72 3a 20 5c 22 27 63 6b | 6e 66 73 2e 63 27 5c 22 |r: \"'ck|nfs.c'\"|
|00003b20| 20 75 6e 70 61 63 6b 65 | 64 20 77 69 74 68 20 77 | unpacke|d with w|
|00003b30| 72 6f 6e 67 20 73 69 7a | 65 21 0a 66 69 0a 23 20 |rong siz|e!.fi.# |
|00003b40| 65 6e 64 20 6f 66 20 27 | 63 6b 6e 66 73 2e 63 27 |end of '|cknfs.c'|
|00003b50| 0a 66 69 0a 65 63 68 6f | 20 73 68 61 72 3a 20 45 |.fi.echo| shar: E|
|00003b60| 6e 64 20 6f 66 20 73 68 | 65 6c 6c 20 61 72 63 68 |nd of sh|ell arch|
|00003b70| 69 76 65 2e 0a 65 78 69 | 74 20 30 0a 0a 0a |ive..exi|t 0... |
+--------+-------------------------+-------------------------+--------+--------+