home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
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
| news or mail text
| default
| |
99%
| file
| C source text
| default
| |
98%
| 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
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 6b 61 | 72 6c 40 64 64 73 77 31 |From: ka|rl@ddsw1|
|00000010| 2e 4d 43 53 2e 43 4f 4d | 20 28 4b 61 72 6c 20 44 |.MCS.COM| (Karl D|
|00000020| 65 6e 6e 69 6e 67 65 72 | 29 0a 4e 65 77 73 67 72 |enninger|).Newsgr|
|00000030| 6f 75 70 73 3a 20 61 6c | 74 2e 73 6f 75 72 63 65 |oups: al|t.source|
|00000040| 73 0a 53 75 62 6a 65 63 | 74 3a 20 41 75 74 6f 62 |s.Subjec|t: Autob|
|00000050| 61 75 64 20 67 65 74 74 | 79 20 72 65 70 6c 61 63 |aud gett|y replac|
|00000060| 65 6d 65 6e 74 20 66 6f | 72 20 53 79 73 74 65 6d |ement fo|r System|
|00000070| 20 56 20 4d 61 63 68 69 | 6e 65 73 0a 4d 65 73 73 | V Machi|nes.Mess|
|00000080| 61 67 65 2d 49 44 3a 20 | 3c 31 39 39 31 4a 61 6e |age-ID: |<1991Jan|
|00000090| 32 30 2e 31 39 34 31 30 | 35 2e 32 32 35 37 34 40 |20.19410|5.22574@|
|000000a0| 64 64 73 77 31 2e 4d 43 | 53 2e 43 4f 4d 3e 0a 44 |ddsw1.MC|S.COM>.D|
|000000b0| 61 74 65 3a 20 32 30 20 | 4a 61 6e 20 39 31 20 31 |ate: 20 |Jan 91 1|
|000000c0| 39 3a 34 31 3a 30 35 20 | 47 4d 54 0a 0a 41 20 70 |9:41:05 |GMT..A p|
|000000d0| 72 6f 67 72 61 6d 20 74 | 6f 20 72 65 70 6c 61 63 |rogram t|o replac|
|000000e0| 65 20 67 65 74 74 79 20 | 6f 6e 20 53 79 73 74 65 |e getty |on Syste|
|000000f0| 6d 20 56 20 6d 61 63 68 | 69 6e 65 73 2c 20 74 68 |m V mach|ines, th|
|00000100| 69 73 20 61 75 74 6f 62 | 61 75 64 65 72 20 73 68 |is autob|auder sh|
|00000110| 61 72 65 73 0a 70 6f 72 | 74 73 20 77 69 74 68 20 |ares.por|ts with |
|00000120| 55 55 43 50 20 61 6e 64 | 20 43 55 20 65 61 73 69 |UUCP and| CU easi|
|00000130| 6c 79 2e 20 20 53 65 65 | 20 64 69 73 74 72 69 62 |ly. See| distrib|
|00000140| 75 74 69 6f 6e 20 72 65 | 73 74 72 69 63 74 69 6f |ution re|strictio|
|00000150| 6e 73 20 62 65 6c 6f 77 | 2e 0a 0a 23 21 20 2f 62 |ns below|...#! /b|
|00000160| 69 6e 2f 73 68 0a 23 20 | 54 68 69 73 20 69 73 20 |in/sh.# |This is |
|00000170| 61 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2e |a shell |archive.|
|00000180| 20 20 52 65 6d 6f 76 65 | 20 61 6e 79 74 68 69 6e | Remove| anythin|
|00000190| 67 20 62 65 66 6f 72 65 | 20 74 68 69 73 20 6c 69 |g before| this li|
|000001a0| 6e 65 2c 20 74 68 65 6e | 20 75 6e 70 61 63 6b 0a |ne, then| unpack.|
|000001b0| 23 20 69 74 20 62 79 20 | 73 61 76 69 6e 67 20 69 |# it by |saving i|
|000001c0| 74 20 69 6e 74 6f 20 61 | 20 66 69 6c 65 20 61 6e |t into a| file an|
|000001d0| 64 20 74 79 70 69 6e 67 | 20 22 73 68 20 66 69 6c |d typing| "sh fil|
|000001e0| 65 22 2e 20 20 54 6f 20 | 6f 76 65 72 77 72 69 74 |e". To |overwrit|
|000001f0| 65 20 65 78 69 73 74 69 | 6e 67 0a 23 20 66 69 6c |e existi|ng.# fil|
|00000200| 65 73 2c 20 74 79 70 65 | 20 22 73 68 20 66 69 6c |es, type| "sh fil|
|00000210| 65 20 2d 63 22 2e 20 20 | 59 6f 75 20 63 61 6e 20 |e -c". |You can |
|00000220| 61 6c 73 6f 20 66 65 65 | 64 20 74 68 69 73 20 61 |also fee|d this a|
|00000230| 73 20 73 74 61 6e 64 61 | 72 64 20 69 6e 70 75 74 |s standa|rd input|
|00000240| 20 76 69 61 0a 23 20 75 | 6e 73 68 61 72 2c 20 6f | via.# u|nshar, o|
|00000250| 72 20 62 79 20 74 79 70 | 69 6e 67 20 22 73 68 20 |r by typ|ing "sh |
|00000260| 3c 66 69 6c 65 22 2c 20 | 65 2e 67 2e 2e 20 20 49 |<file", |e.g.. I|
|00000270| 66 20 74 68 69 73 20 61 | 72 63 68 69 76 65 20 69 |f this a|rchive i|
|00000280| 73 20 63 6f 6d 70 6c 65 | 74 65 2c 20 79 6f 75 0a |s comple|te, you.|
|00000290| 23 20 77 69 6c 6c 20 73 | 65 65 20 74 68 65 20 66 |# will s|ee the f|
|000002a0| 6f 6c 6c 6f 77 69 6e 67 | 20 6d 65 73 73 61 67 65 |ollowing| message|
|000002b0| 20 61 74 20 74 68 65 20 | 65 6e 64 3a 0a 23 09 09 | at the |end:.#..|
|000002c0| 22 45 6e 64 20 6f 66 20 | 73 68 65 6c 6c 20 61 72 |"End of |shell ar|
|000002d0| 63 68 69 76 65 2e 22 0a | 23 20 43 6f 6e 74 65 6e |chive.".|# Conten|
|000002e0| 74 73 3a 20 20 61 75 74 | 6f 75 75 2e 63 0a 23 20 |ts: aut|ouu.c.# |
|000002f0| 57 72 61 70 70 65 64 20 | 62 79 20 6b 61 72 6c 40 |Wrapped |by karl@|
|00000300| 64 64 73 77 31 20 6f 6e | 20 53 75 6e 20 4a 61 6e |ddsw1 on| Sun Jan|
|00000310| 20 32 30 20 31 33 3a 34 | 30 3a 31 37 20 31 39 39 | 20 13:4|0:17 199|
|00000320| 31 0a 50 41 54 48 3d 2f | 62 69 6e 3a 2f 75 73 72 |1.PATH=/|bin:/usr|
|00000330| 2f 62 69 6e 3a 2f 75 73 | 72 2f 75 63 62 20 3b 20 |/bin:/us|r/ucb ; |
|00000340| 65 78 70 6f 72 74 20 50 | 41 54 48 0a 69 66 20 74 |export P|ATH.if t|
|00000350| 65 73 74 20 2d 66 20 27 | 61 75 74 6f 75 75 2e 63 |est -f '|autouu.c|
|00000360| 27 20 2d 61 20 22 24 7b | 31 7d 22 20 21 3d 20 22 |' -a "${|1}" != "|
|00000370| 2d 63 22 20 3b 20 74 68 | 65 6e 20 0a 20 20 65 63 |-c" ; th|en . ec|
|00000380| 68 6f 20 73 68 61 72 3a | 20 57 69 6c 6c 20 6e 6f |ho shar:| Will no|
|00000390| 74 20 63 6c 6f 62 62 65 | 72 20 65 78 69 73 74 69 |t clobbe|r existi|
|000003a0| 6e 67 20 66 69 6c 65 20 | 5c 22 27 61 75 74 6f 75 |ng file |\"'autou|
|000003b0| 75 2e 63 27 5c 22 0a 65 | 6c 73 65 0a 65 63 68 6f |u.c'\".e|lse.echo|
|000003c0| 20 73 68 61 72 3a 20 45 | 78 74 72 61 63 74 69 6e | shar: E|xtractin|
|000003d0| 67 20 5c 22 27 61 75 74 | 6f 75 75 2e 63 27 5c 22 |g \"'aut|ouu.c'\"|
|000003e0| 20 5c 28 31 39 38 35 34 | 20 63 68 61 72 61 63 74 | \(19854| charact|
|000003f0| 65 72 73 5c 29 0a 73 65 | 64 20 22 73 2f 5e 58 2f |ers\).se|d "s/^X/|
|00000400| 2f 22 20 3e 27 61 75 74 | 6f 75 75 2e 63 27 20 3c |/" >'aut|ouu.c' <|
|00000410| 3c 27 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 27 0a 58 |<'END_OF|_FILE'.X|
|00000420| 2f 2a 0a 58 20 2a 09 43 | 6f 70 79 72 69 67 68 74 |/*.X *.C|opyright|
|00000430| 20 31 39 39 30 20 4d 43 | 53 20 26 20 4b 61 72 6c | 1990 MC|S & Karl|
|00000440| 20 44 65 6e 6e 69 6e 67 | 65 72 2e 20 20 41 6c 6c | Denning|er. All|
|00000450| 20 72 69 67 68 74 73 20 | 72 65 73 65 72 76 65 64 | rights |reserved|
|00000460| 2e 0a 58 20 2a 0a 58 20 | 2a 09 50 75 62 6c 69 63 |..X *.X |*.Public|
|00000470| 20 75 73 65 20 69 73 20 | 70 65 72 6d 69 74 74 65 | use is |permitte|
|00000480| 64 20 75 6e 64 65 72 20 | 74 68 65 20 66 6f 6c 6c |d under |the foll|
|00000490| 6f 77 69 6e 67 20 63 6f | 6e 64 69 74 69 6f 6e 73 |owing co|nditions|
|000004a0| 3a 0a 58 20 2a 0a 58 20 | 2a 09 31 29 20 59 6f 75 |:.X *.X |*.1) You|
|000004b0| 20 64 6f 20 6e 6f 74 20 | 72 65 6d 6f 76 65 20 6d | do not |remove m|
|000004c0| 79 20 6e 61 6d 65 20 66 | 72 6f 6d 20 74 68 65 20 |y name f|rom the |
|000004d0| 70 61 63 6b 61 67 65 2c | 20 6f 72 20 63 6c 61 69 |package,| or clai|
|000004e0| 6d 20 79 6f 75 20 77 72 | 6f 74 65 20 69 74 2e 0a |m you wr|ote it..|
|000004f0| 58 20 2a 09 32 29 20 59 | 6f 75 20 64 69 73 74 72 |X *.2) Y|ou distr|
|00000500| 69 62 75 74 65 20 4f 52 | 49 47 49 4e 41 4c 20 73 |ibute OR|IGINAL s|
|00000510| 6f 75 72 63 65 20 63 6f | 64 65 20 77 69 74 68 20 |ource co|de with |
|00000520| 61 6c 6c 20 64 69 73 74 | 72 69 62 75 74 69 6f 6e |all dist|ribution|
|00000530| 73 20 6d 61 64 65 2c 0a | 58 20 2a 09 20 20 20 6d |s made,.|X *. m|
|00000540| 6f 64 69 66 69 65 64 20 | 6f 72 20 6e 6f 74 2c 20 |odified |or not, |
|00000550| 62 69 6e 61 72 79 20 6f | 72 20 73 6f 75 72 63 65 |binary o|r source|
|00000560| 2e 0a 58 20 2a 09 33 29 | 20 59 6f 75 20 64 6f 20 |..X *.3)| You do |
|00000570| 6e 6f 74 20 61 74 74 65 | 6d 70 74 20 74 6f 20 73 |not atte|mpt to s|
|00000580| 65 6c 6c 20 74 68 65 20 | 70 61 63 6b 61 67 65 2c |ell the |package,|
|00000590| 20 6f 72 20 75 73 65 20 | 69 74 20 74 6f 20 65 6e | or use |it to en|
|000005a0| 68 61 6e 63 65 20 74 68 | 65 0a 58 20 2a 09 20 20 |hance th|e.X *. |
|000005b0| 20 63 6f 6d 6d 65 72 63 | 69 61 6c 20 76 61 6c 75 | commerc|ial valu|
|000005c0| 65 20 6f 66 20 61 6e 79 | 20 70 72 6f 64 75 63 74 |e of any| product|
|000005d0| 20 6f 72 20 73 65 72 76 | 69 63 65 2e 20 20 0a 58 | or serv|ice. .X|
|000005e0| 20 2a 09 34 29 20 54 68 | 69 73 20 70 61 63 6b 61 | *.4) Th|is packa|
|000005f0| 67 65 20 69 73 20 64 69 | 73 74 72 69 62 75 74 65 |ge is di|stribute|
|00000600| 64 20 77 69 74 68 20 41 | 42 53 4f 4c 55 54 45 4c |d with A|BSOLUTEL|
|00000610| 59 20 4e 4f 20 57 41 52 | 52 41 4e 54 59 20 4f 46 |Y NO WAR|RANTY OF|
|00000620| 20 41 4e 59 0a 58 20 2a | 09 20 20 20 4b 49 4e 44 | ANY.X *|. KIND|
|00000630| 2e 20 20 49 66 20 69 74 | 20 6d 65 6c 74 73 20 79 |. If it| melts y|
|00000640| 6f 75 72 20 73 79 73 74 | 65 6d 20 74 6f 20 73 6c |our syst|em to sl|
|00000650| 61 67 20 59 4f 55 20 61 | 72 65 20 72 65 73 70 6f |ag YOU a|re respo|
|00000660| 6e 73 69 62 6c 65 2c 20 | 6e 6f 74 0a 58 20 2a 09 |nsible, |not.X *.|
|00000670| 20 20 20 4d 43 53 20 6f | 72 20 6d 79 73 65 6c 66 | MCS o|r myself|
|00000680| 2e 20 20 54 68 65 20 62 | 75 72 64 65 6e 20 72 65 |. The b|urden re|
|00000690| 73 74 73 20 77 69 74 68 | 20 79 6f 75 20 74 6f 20 |sts with| you to |
|000006a0| 70 65 72 66 6f 72 6d 20 | 61 64 61 71 75 61 74 65 |perform |adaquate|
|000006b0| 0a 58 20 2a 09 20 20 20 | 74 65 73 74 69 6e 67 20 |.X *. |testing |
|000006c0| 62 65 66 6f 72 65 20 74 | 75 72 6e 69 6e 67 20 74 |before t|urning t|
|000006d0| 68 69 73 20 6c 6f 6f 73 | 65 20 6f 6e 20 75 6e 73 |his loos|e on uns|
|000006e0| 75 73 70 65 63 74 69 6e | 67 20 75 73 65 72 73 2e |uspectin|g users.|
|000006f0| 0a 58 20 2a 0a 58 20 2a | 09 43 6f 6d 6d 65 72 63 |.X *.X *|.Commerc|
|00000700| 69 61 6c 20 64 69 73 74 | 72 69 62 75 74 69 6f 6e |ial dist|ribution|
|00000710| 20 72 69 67 68 74 73 20 | 72 65 73 65 72 76 65 64 | rights |reserved|
|00000720| 3b 20 63 6f 6e 74 61 63 | 74 20 4d 43 53 20 61 74 |; contac|t MCS at|
|00000730| 20 28 37 30 38 29 20 38 | 30 38 2d 37 32 30 30 0a | (708) 8|08-7200.|
|00000740| 58 20 2a 09 66 6f 72 20 | 64 65 74 61 69 6c 73 20 |X *.for |details |
|00000750| 6f 6e 20 63 6f 6d 6d 65 | 72 63 69 61 6c 20 64 69 |on comme|rcial di|
|00000760| 73 74 72 69 62 75 74 69 | 6f 6e 20 6c 69 63 65 6e |stributi|on licen|
|00000770| 73 69 6e 67 2e 0a 58 20 | 2a 0a 58 20 2a 09 43 6f |sing..X |*.X *.Co|
|00000780| 6d 70 69 6c 65 20 77 69 | 74 68 3a 20 20 63 63 20 |mpile wi|th: cc |
|00000790| 2d 73 20 2d 6f 20 61 75 | 74 6f 75 75 20 61 75 74 |-s -o au|touu aut|
|000007a0| 6f 75 75 2e 63 20 2d 6c | 63 5f 73 20 2d 6c 78 0a |ouu.c -l|c_s -lx.|
|000007b0| 58 20 2a 0a 58 20 2a 2f | 0a 58 2f 2a 09 41 75 74 |X *.X */|.X/*.Aut|
|000007c0| 6f 62 61 75 64 20 70 72 | 6f 67 72 61 6d 20 0a 58 |obaud pr|ogram .X|
|000007d0| 0a 58 09 52 75 6e 20 69 | 6e 20 70 6c 61 63 65 20 |.X.Run i|n place |
|000007e0| 6f 66 20 27 67 65 74 74 | 79 27 2c 20 74 68 69 73 |of 'gett|y', this|
|000007f0| 20 77 69 6c 6c 20 70 72 | 6f 6d 70 74 20 66 6f 72 | will pr|ompt for|
|00000800| 20 61 20 6e 61 6d 65 0a | 58 09 61 6e 64 20 63 61 | a name.|X.and ca|
|00000810| 6c 6c 20 6c 6f 67 69 6e | 20 6a 75 73 74 20 6c 69 |ll login| just li|
|00000820| 6b 65 20 74 68 65 20 6f | 6c 64 20 6f 6e 65 20 75 |ke the o|ld one u|
|00000830| 73 65 64 20 74 6f 20 64 | 6f 2e 2e 2e 20 4f 6e 6c |sed to d|o... Onl|
|00000840| 79 0a 58 09 64 69 66 66 | 65 72 65 6e 63 65 20 69 |y.X.diff|erence i|
|00000850| 73 20 74 68 61 74 20 69 | 74 20 69 73 20 72 61 74 |s that i|t is rat|
|00000860| 68 65 72 20 69 6e 74 65 | 72 65 73 74 69 6e 67 20 |her inte|resting |
|00000870| 69 6e 20 69 74 27 73 20 | 69 6e 74 65 72 70 72 65 |in it's |interpre|
|00000880| 74 61 74 69 6f 6e 0a 58 | 09 6f 66 20 77 68 61 74 |tation.X|.of what|
|00000890| 20 61 20 27 67 65 74 74 | 79 64 65 66 73 27 20 66 | a 'gett|ydefs' f|
|000008a0| 69 6c 65 20 69 73 3b 20 | 74 68 61 74 20 69 73 2c |ile is; |that is,|
|000008b0| 20 74 68 65 72 65 20 69 | 73 6e 27 74 20 6f 6e 65 | there i|sn't one|
|000008c0| 2e 0a 58 09 0a 58 09 57 | 65 20 75 73 65 20 6d 6f |..X..X.W|e use mo|
|000008d0| 64 65 6d 20 72 65 74 75 | 72 6e 20 6d 65 73 73 61 |dem retu|rn messa|
|000008e0| 67 65 73 20 74 6f 20 64 | 65 74 65 72 6d 69 6e 65 |ges to d|etermine|
|000008f0| 20 74 68 65 20 62 61 75 | 64 20 72 61 74 65 2e 20 | the bau|d rate. |
|00000900| 20 4c 6f 63 6b 73 20 61 | 72 65 0a 58 09 72 65 73 | Locks a|re.X.res|
|00000910| 70 65 63 74 65 64 20 61 | 73 20 77 65 6c 6c 2c 20 |pected a|s well, |
|00000920| 61 6c 6c 6f 77 69 6e 67 | 20 74 68 65 20 75 75 63 |allowing| the uuc|
|00000930| 70 20 73 79 73 74 65 6d | 20 74 6f 20 73 68 61 72 |p system| to shar|
|00000940| 65 20 74 68 65 20 70 6f | 72 74 73 2e 0a 58 0a 58 |e the po|rts..X.X|
|00000950| 09 59 6f 75 20 69 6e 76 | 6f 6b 65 20 74 68 69 73 |.You inv|oke this|
|00000960| 20 77 69 74 68 3a 0a 58 | 09 09 2f 65 74 63 2f 61 | with:.X|../etc/a|
|00000970| 75 74 6f 6e 65 77 20 74 | 74 79 41 32 20 5b 63 6f |utonew t|tyA2 [co|
|00000980| 64 65 5d 20 5b 66 69 6c | 65 5d 0a 58 09 0a 58 09 |de] [fil|e].X..X.|
|00000990| 66 72 6f 6d 20 2f 65 74 | 63 2f 69 6e 69 74 74 61 |from /et|c/initta|
|000009a0| 62 2e 20 20 22 5b 63 6f | 64 65 5d 22 20 69 73 20 |b. "[co|de]" is |
|000009b0| 74 68 65 20 6e 75 6d 65 | 72 69 63 20 63 6f 64 65 |the nume|ric code|
|000009c0| 20 66 6f 72 20 74 68 65 | 20 62 61 75 64 20 72 61 | for the| baud ra|
|000009d0| 74 65 0a 58 09 74 6f 20 | 73 65 6e 64 20 74 68 65 |te.X.to |send the|
|000009e0| 20 69 6e 69 74 69 61 6c | 69 7a 61 74 69 6f 6e 20 | initial|ization |
|000009f0| 73 74 72 69 6e 67 20 61 | 74 20 2d 2d 20 6d 6f 73 |string a|t -- mos|
|00000a00| 74 20 6f 66 20 74 68 65 | 20 74 69 6d 65 20 20 79 |t of the| time y|
|00000a10| 6f 75 20 77 61 6e 74 0a | 58 09 74 68 69 73 20 74 |ou want.|X.this t|
|00000a20| 6f 20 62 65 20 74 68 65 | 20 68 69 67 68 65 73 74 |o be the| highest|
|00000a30| 20 62 61 75 64 20 72 61 | 74 65 20 79 6f 75 72 20 | baud ra|te your |
|00000a40| 6d 6f 64 65 6d 20 77 69 | 6c 6c 20 73 75 70 70 6f |modem wi|ll suppo|
|00000a50| 72 74 2e 0a 58 0a 58 09 | 4e 6f 74 65 73 3a 0a 58 |rt..X.X.|Notes:.X|
|00000a60| 09 09 31 29 20 54 68 65 | 20 64 65 76 69 63 65 20 |..1) The| device |
|00000a70| 6e 61 6d 65 20 64 6f 65 | 73 20 6e 6f 74 20 68 61 |name doe|s not ha|
|00000a80| 76 65 20 61 20 70 72 65 | 66 69 78 2e 20 20 49 74 |ve a pre|fix. It|
|00000a90| 20 69 73 20 70 72 65 70 | 65 6e 64 65 64 0a 58 09 | is prep|ended.X.|
|00000aa0| 09 20 20 20 61 75 74 6f | 6d 61 74 69 63 61 6c 6c |. auto|maticall|
|00000ab0| 79 20 28 2f 64 65 76 2f | 20 69 73 20 61 64 64 65 |y (/dev/| is adde|
|00000ac0| 64 29 2e 0a 58 09 09 32 | 29 20 46 6f 72 20 49 53 |d)..X..2|) For IS|
|00000ad0| 43 2c 20 75 73 65 20 74 | 68 65 20 4d 4f 44 45 4d |C, use t|he MODEM|
|00000ae0| 20 43 4f 4e 54 52 4f 4c | 20 50 4f 52 54 53 2e 20 | CONTROL| PORTS. |
|00000af0| 20 54 68 69 73 20 70 72 | 6f 67 72 61 6d 20 63 61 | This pr|ogram ca|
|00000b00| 6e 0a 58 09 09 20 20 20 | 69 6e 74 65 72 6c 6f 63 |n.X.. |interloc|
|00000b10| 6b 20 77 69 74 68 20 55 | 55 43 50 3b 20 73 65 65 |k with U|UCP; see|
|00000b20| 20 74 68 65 69 72 20 44 | 45 56 49 43 45 53 20 66 | their D|EVICES f|
|00000b30| 69 6c 65 20 66 6f 72 20 | 74 68 65 0a 58 09 09 20 |ile for |the.X.. |
|00000b40| 20 20 70 72 6f 70 65 72 | 20 66 6c 61 67 73 20 74 | proper| flags t|
|00000b50| 6f 20 73 65 74 20 69 6e | 20 74 68 65 20 44 45 56 |o set in| the DEV|
|00000b60| 49 43 45 53 20 61 6e 64 | 20 44 49 41 4c 45 52 53 |ICES and| DIALERS|
|00000b70| 20 66 69 6c 65 73 2e 0a | 58 09 09 20 20 20 55 73 | files..|X.. Us|
|00000b80| 65 20 74 68 65 20 22 6e | 65 77 22 20 64 65 66 69 |e the "n|ew" defi|
|00000b90| 6e 69 74 69 6f 6e 73 20 | 77 68 69 63 68 20 68 61 |nitions |which ha|
|00000ba0| 76 65 20 22 2c 4d 22 20 | 61 64 64 65 64 20 28 73 |ve ",M" |added (s|
|00000bb0| 65 65 20 79 6f 75 72 0a | 58 09 09 20 20 20 64 6f |ee your.|X.. do|
|00000bc0| 63 75 6d 65 6e 74 61 74 | 69 6f 6e 20 66 6f 72 20 |cumentat|ion for |
|00000bd0| 64 65 74 61 69 6c 73 29 | 2e 0a 58 09 09 33 29 20 |details)|..X..3) |
|00000be0| 57 68 69 6c 65 20 61 20 | 70 6f 72 74 20 69 73 20 |While a |port is |
|00000bf0| 62 65 69 6e 67 20 75 73 | 65 64 20 66 6f 72 20 64 |being us|ed for d|
|00000c00| 69 61 6c 6f 75 74 2c 20 | 69 74 20 77 69 6c 6c 20 |ialout, |it will |
|00000c10| 73 68 6f 77 0a 58 09 09 | 20 20 20 75 70 20 69 6e |show.X..| up in|
|00000c20| 20 61 20 22 77 68 6f 22 | 20 63 6f 6d 6d 61 6e 64 | a "who"| command|
|00000c30| 20 61 73 20 22 5f 44 69 | 61 6c 6f 75 74 22 20 6f | as "_Di|alout" o|
|00000c40| 6e 63 65 20 64 61 74 61 | 0a 58 09 09 20 20 20 74 |nce data|.X.. t|
|00000c50| 72 61 6e 73 6d 69 73 73 | 69 6f 6e 20 62 65 67 69 |ransmiss|ion begi|
|00000c60| 6e 73 2e 0a 58 09 09 34 | 29 20 4d 6f 64 65 73 20 |ns..X..4|) Modes |
|00000c70| 61 6e 64 20 6f 77 6e 65 | 72 73 20 77 69 6c 6c 20 |and owne|rs will |
|00000c80| 62 65 20 63 68 61 6e 67 | 65 64 20 6f 6e 20 70 6f |be chang|ed on po|
|00000c90| 72 74 73 20 74 6f 20 70 | 72 65 76 65 6e 74 20 0a |rts to p|revent .|
|00000ca0| 58 09 09 20 20 20 72 61 | 6e 64 6f 6d 20 75 73 65 |X.. ra|ndom use|
|00000cb0| 72 73 20 66 72 6f 6d 20 | 75 73 69 6e 67 20 74 68 |rs from |using th|
|00000cc0| 65 20 70 6f 72 74 73 20 | 66 6f 72 20 22 63 75 22 |e ports |for "cu"|
|00000cd0| 73 20 61 6e 64 20 6f 74 | 68 65 72 20 0a 58 09 09 |s and ot|her .X..|
|00000ce0| 20 20 20 63 6f 6d 6d 75 | 6e 69 63 61 74 69 6f 6e | commu|nication|
|00000cf0| 73 20 75 73 65 73 2e 20 | 20 54 68 69 73 20 63 61 |s uses. | This ca|
|00000d00| 6e 20 62 65 20 65 61 73 | 69 6c 79 20 63 68 61 6e |n be eas|ily chan|
|00000d10| 67 65 64 20 69 66 20 0a | 58 09 09 20 20 20 64 65 |ged if .|X.. de|
|00000d20| 73 69 72 65 64 20 28 6c | 6f 6f 6b 20 66 6f 72 20 |sired (l|ook for |
|00000d30| 74 68 65 20 22 63 68 6d | 6f 64 22 20 63 61 6c 6c |the "chm|od" call|
|00000d40| 20 69 6e 20 74 68 65 20 | 73 6f 75 72 63 65 29 2e | in the |source).|
|00000d50| 0a 58 09 09 35 29 20 54 | 68 65 20 66 69 6c 65 20 |.X..5) T|he file |
|00000d60| 2f 65 74 63 2f 61 75 74 | 6f 62 61 75 64 2e 70 61 |/etc/aut|obaud.pa|
|00000d70| 72 6d 20 6d 75 73 74 20 | 62 65 20 70 72 65 73 65 |rm must |be prese|
|00000d80| 6e 74 20 69 66 20 74 68 | 65 20 22 66 69 6c 65 22 |nt if th|e "file"|
|00000d90| 0a 58 09 09 20 20 20 61 | 72 67 75 6d 65 6e 74 20 |.X.. a|rgument |
|00000da0| 69 73 20 6d 69 73 73 69 | 6e 67 2e 20 20 49 66 20 |is missi|ng. If |
|00000db0| 74 68 65 20 22 66 69 6c | 65 22 20 61 72 67 75 6d |the "fil|e" argum|
|00000dc0| 65 6e 74 20 69 73 20 70 | 72 65 73 65 6e 74 2c 0a |ent is p|resent,.|
|00000dd0| 58 09 09 20 20 20 69 74 | 20 70 6f 69 6e 74 73 20 |X.. it| points |
|00000de0| 74 6f 20 74 68 65 20 63 | 6f 6e 74 72 6f 6c 20 66 |to the c|ontrol f|
|00000df0| 69 6c 65 20 74 6f 20 62 | 65 20 75 73 65 64 2e 20 |ile to b|e used. |
|00000e00| 20 54 68 65 20 66 6f 72 | 6d 61 74 0a 58 09 09 20 | The for|mat.X.. |
|00000e10| 20 20 69 73 20 61 73 20 | 66 6f 6c 6c 6f 77 73 3a | is as |follows:|
|00000e20| 0a 58 09 09 09 46 69 72 | 73 74 20 6c 69 6e 65 20 |.X...Fir|st line |
|00000e30| 2d 2d 20 69 6e 69 74 69 | 61 6c 69 7a 61 74 69 6f |-- initi|alizatio|
|00000e40| 6e 20 73 74 72 69 6e 67 | 20 66 6f 72 20 70 6f 72 |n string| for por|
|00000e50| 74 73 0a 58 09 09 09 53 | 65 63 6f 6e 64 20 6c 69 |ts.X...S|econd li|
|00000e60| 6e 65 20 2d 2d 20 72 65 | 73 70 6f 6e 73 65 20 74 |ne -- re|sponse t|
|00000e70| 6f 20 69 6e 69 74 69 61 | 6c 69 7a 61 74 69 6f 6e |o initia|lization|
|00000e80| 20 73 74 72 69 6e 67 0a | 58 09 09 09 54 68 69 72 | string.|X...Thir|
|00000e90| 64 20 6c 69 6e 65 20 2d | 2d 20 47 65 6e 65 72 69 |d line -|- Generi|
|00000ea0| 63 20 22 63 6f 6e 6e 65 | 63 74 65 64 22 20 6d 65 |c "conne|cted" me|
|00000eb0| 73 73 61 67 65 0a 58 09 | 09 09 55 70 20 74 6f 20 |ssage.X.|..Up to |
|00000ec0| 66 69 72 73 74 20 22 23 | 22 20 61 6c 6f 6e 65 20 |first "#|" alone |
|00000ed0| 2d 2d 20 62 61 75 64 20 | 63 6f 64 65 73 2c 20 72 |-- baud |codes, r|
|00000ee0| 61 74 65 73 20 28 74 65 | 78 74 29 2c 20 61 6e 64 |ates (te|xt), and|
|00000ef0| 0a 58 09 09 09 09 09 20 | 72 65 73 70 6f 6e 73 65 |.X..... |response|
|00000f00| 20 73 74 72 69 6e 67 73 | 20 65 78 70 65 63 74 65 | strings| expecte|
|00000f10| 64 2e 0a 58 09 09 09 4e | 65 78 74 20 6c 69 6e 65 |d..X...N|ext line|
|00000f20| 20 2d 2d 20 4c 6f 67 69 | 6e 20 70 72 6f 6d 70 74 | -- Logi|n prompt|
|00000f30| 0a 58 09 09 09 52 65 6d | 61 69 6e 64 65 72 20 6f |.X...Rem|ainder o|
|00000f40| 66 20 66 69 6c 65 20 2d | 2d 20 49 73 73 75 65 20 |f file -|- Issue |
|00000f50| 66 69 6c 65 0a 58 0a 58 | 09 09 09 42 61 75 64 20 |file.X.X|...Baud |
|00000f60| 63 6f 64 65 73 20 61 72 | 65 20 74 68 65 20 73 70 |codes ar|e the sp|
|00000f70| 65 65 64 20 63 6f 64 65 | 73 20 66 72 6f 6d 20 74 |eed code|s from t|
|00000f80| 65 72 6d 69 6f 2e 68 3b | 20 0a 58 09 09 09 31 31 |ermio.h;| .X...11|
|00000f90| 2c 20 66 6f 72 20 65 78 | 61 6d 70 6c 65 2c 20 69 |, for ex|ample, i|
|00000fa0| 73 20 32 34 30 30 20 62 | 61 75 64 2e 0a 58 0a 58 |s 2400 b|aud..X.X|
|00000fb0| 09 09 09 41 6e 20 65 78 | 61 6d 70 6c 65 20 2f 65 |...An ex|ample /e|
|00000fc0| 74 63 2f 61 75 74 6f 62 | 61 75 64 2e 70 61 72 6d |tc/autob|aud.parm|
|00000fd0| 20 66 69 6c 65 3a 0a 58 | 09 09 09 09 0a 58 09 09 | file:.X|.....X..|
|00000fe0| 09 41 41 41 54 45 30 51 | 30 56 31 0a 58 09 09 09 |.AAATE0Q|0V1.X...|
|00000ff0| 4f 4b 0a 58 09 09 09 43 | 4f 4e 4e 45 43 54 45 44 |OK.X...C|ONNECTED|
|00001000| 0a 58 09 09 09 37 20 33 | 30 30 20 43 4f 4e 4e 45 |.X...7 3|00 CONNE|
|00001010| 43 54 0a 58 09 09 09 39 | 20 31 32 30 30 20 43 4f |CT.X...9| 1200 CO|
|00001020| 4e 4e 45 43 54 20 31 32 | 30 30 0a 58 09 09 09 31 |NNECT 12|00.X...1|
|00001030| 31 20 32 34 30 30 20 43 | 4f 4e 4e 45 43 54 20 32 |1 2400 C|ONNECT 2|
|00001040| 34 30 30 0a 58 09 09 09 | 31 33 20 39 36 30 30 20 |400.X...|13 9600 |
|00001050| 43 4f 4e 4e 45 43 54 20 | 39 36 30 30 0a 58 09 09 |CONNECT |9600.X..|
|00001060| 09 31 34 20 31 39 32 30 | 30 20 43 4f 4e 4e 45 43 |.14 1920|0 CONNEC|
|00001070| 54 20 46 41 53 54 0a 58 | 09 09 09 23 0a 58 09 09 |T FAST.X|...#.X..|
|00001080| 09 4c 6f 67 69 6e 3a 0a | 58 0a 58 09 09 09 57 65 |.Login:.|X.X...We|
|00001090| 6c 63 6f 6d 65 20 74 6f | 20 74 68 65 20 73 79 73 |lcome to| the sys|
|000010a0| 74 65 6d 0a 58 09 09 09 | 3c 45 4f 46 3e 0a 58 09 |tem.X...|<EOF>.X.|
|000010b0| 09 0a 58 09 09 09 54 68 | 69 73 20 69 73 20 61 20 |..X...Th|is is a |
|000010c0| 74 79 70 69 63 61 6c 20 | 66 69 6c 65 20 66 6f 72 |typical |file for|
|000010d0| 20 61 20 73 79 73 74 65 | 6d 20 63 6f 6e 74 61 69 | a syste|m contai|
|000010e0| 6e 69 6e 67 20 62 6f 74 | 68 0a 58 09 09 09 54 65 |ning bot|h.X...Te|
|000010f0| 6c 65 62 69 74 20 61 6e | 64 20 6c 6f 77 2d 73 70 |lebit an|d low-sp|
|00001100| 65 65 64 20 6d 6f 64 65 | 6d 73 20 28 33 30 30 2d |eed mode|ms (300-|
|00001110| 32 34 30 30 20 62 61 75 | 64 29 2e 20 20 4e 6f 74 |2400 bau|d). Not|
|00001120| 65 0a 58 09 09 09 74 68 | 61 74 20 74 68 65 20 22 |e.X...th|at the "|
|00001130| 41 41 41 22 20 69 73 20 | 64 6f 75 62 6c 65 64 20 |AAA" is |doubled |
|00001140| 74 6f 20 61 6c 6c 6f 77 | 20 74 68 65 20 54 65 6c |to allow| the Tel|
|00001150| 65 62 69 74 20 74 6f 0a | 58 09 09 09 61 75 74 6f |ebit to.|X...auto|
|00001160| 73 79 6e 63 2e 20 20 49 | 66 20 79 6f 75 20 68 61 |sync. I|f you ha|
|00001170| 76 65 20 68 61 72 64 77 | 61 72 65 20 66 6c 6f 77 |ve hardw|are flow|
|00001180| 20 63 6f 6e 74 72 6f 6c | 20 74 68 65 6e 0a 58 09 | control| then.X.|
|00001190| 09 09 65 6e 61 62 6c 65 | 20 69 74 20 2d 2d 20 6f |..enable| it -- o|
|000011a0| 74 68 65 72 77 69 73 65 | 2c 20 73 65 74 20 74 68 |therwise|, set th|
|000011b0| 65 20 6d 6f 64 65 6d 20 | 75 70 20 66 6f 72 0a 58 |e modem |up for.X|
|000011c0| 09 09 09 58 6f 6e 2f 58 | 6f 66 66 20 66 6c 6f 77 |...Xon/X|off flow|
|000011d0| 20 63 6f 6e 74 72 6f 6c | 2c 20 42 52 45 41 4b 20 | control|, BREAK |
|000011e0| 69 73 20 73 65 6e 74 20 | 61 6e 64 20 66 6c 75 73 |is sent |and flus|
|000011f0| 68 65 73 2c 0a 58 09 09 | 09 54 65 6c 65 62 69 74 |hes,.X..|.Telebit|
|00001200| 20 53 36 36 3d 30 20 61 | 6e 64 20 53 35 38 3d 32 | S66=0 a|nd S58=2|
|00001210| 35 34 20 28 41 75 74 6f | 62 61 75 64 20 61 6e 64 |54 (Auto|baud and|
|00001220| 20 70 72 65 66 65 72 20 | 0a 58 09 09 09 31 39 32 | prefer |.X...192|
|00001230| 30 30 29 2e 20 20 54 68 | 69 73 20 70 65 72 6d 69 |00). Th|is permi|
|00001240| 74 73 20 66 75 6c 6c 20 | 66 75 6e 63 74 69 6f 6e |ts full |function|
|00001250| 61 6c 69 74 79 20 77 69 | 74 68 20 74 68 65 20 0a |ality wi|th the .|
|00001260| 58 09 09 09 65 78 63 65 | 70 74 69 6f 6e 20 6f 66 |X...exce|ption of|
|00001270| 20 6c 6f 77 2d 73 70 65 | 65 64 20 55 55 43 50 20 | low-spe|ed UUCP |
|00001280| 69 6e 62 6f 75 6e 64 20 | 63 61 6c 6c 73 20 74 68 |inbound |calls th|
|00001290| 72 6f 75 67 68 20 0a 58 | 09 09 09 54 65 6c 65 62 |rough .X|...Teleb|
|000012a0| 69 74 73 3b 20 69 66 20 | 79 6f 75 20 68 61 76 65 |its; if |you have|
|000012b0| 20 68 61 72 64 77 61 72 | 65 20 66 6c 6f 77 20 63 | hardwar|e flow c|
|000012c0| 6f 6e 74 72 6f 6c 20 74 | 68 65 6e 20 6e 6f 0a 58 |ontrol t|hen no.X|
|000012d0| 09 09 09 72 65 73 74 72 | 69 63 74 69 6f 6e 73 20 |...restr|ictions |
|000012e0| 61 70 70 6c 79 2e 0a 58 | 09 09 09 0a 58 09 09 36 |apply..X|....X..6|
|000012f0| 29 20 59 6f 75 72 20 49 | 2f 4f 20 62 6f 61 72 64 |) Your I|/O board|
|00001300| 20 61 6e 64 2f 6f 72 20 | 64 72 69 76 65 72 73 20 | and/or |drivers |
|00001310| 4d 55 53 54 20 63 6f 72 | 72 65 63 74 6c 79 20 73 |MUST cor|rectly s|
|00001320| 75 70 70 6f 72 74 20 74 | 68 65 0a 58 09 09 20 20 |upport t|he.X.. |
|00001330| 20 6e 6f 74 69 6f 6e 20 | 6f 66 20 4f 5f 4e 44 45 | notion |of O_NDE|
|00001340| 4c 41 59 2e 20 20 49 6e | 20 61 64 64 69 74 69 6f |LAY. In| additio|
|00001350| 6e 2c 20 79 6f 75 20 68 | 61 76 65 20 74 6f 20 62 |n, you h|ave to b|
|00001360| 65 20 61 62 6c 65 20 74 | 6f 0a 58 09 09 20 20 20 |e able t|o.X.. |
|00001370| 74 75 72 6e 20 6f 6e 20 | 61 6e 64 20 6f 66 66 20 |turn on |and off |
|00001380| 74 68 65 20 4e 44 45 4c | 41 59 20 66 6c 61 67 20 |the NDEL|AY flag |
|00001390| 77 69 74 68 20 66 63 6e | 74 6c 2e 20 20 4c 4f 54 |with fcn|tl. LOT|
|000013a0| 53 20 6f 66 0a 58 09 09 | 20 20 20 69 6e 74 65 6c |S of.X..| intel|
|000013b0| 6c 69 67 65 6e 74 20 62 | 6f 61 72 64 73 20 62 72 |ligent b|oards br|
|000013c0| 6f 6b 65 20 74 68 69 73 | 3b 20 69 66 20 69 74 27 |oke this|; if it'|
|000013d0| 73 20 62 72 6f 6b 65 6e | 20 74 68 69 73 0a 58 09 |s broken| this.X.|
|000013e0| 09 20 20 20 70 72 6f 67 | 72 61 6d 20 77 69 6c 6c |. prog|ram will|
|000013f0| 20 4e 4f 54 20 77 6f 72 | 6b 2e 20 20 4f 4e 45 20 | NOT wor|k. ONE |
|00001400| 48 41 43 4b 3a 20 20 49 | 66 20 79 6f 75 72 20 4e |HACK: I|f your N|
|00001410| 44 45 4c 41 59 0a 58 09 | 09 20 20 20 69 6e 74 65 |DELAY.X.|. inte|
|00001420| 72 70 72 65 74 61 74 69 | 6f 6e 20 72 65 74 75 72 |rpretati|on retur|
|00001430| 6e 73 20 6e 6f 6e 2d 62 | 6c 6f 63 6b 69 6e 67 20 |ns non-b|locking |
|00001440| 69 66 20 43 44 20 69 73 | 20 64 6f 77 6e 20 28 77 |if CD is| down (w|
|00001450| 69 74 68 0a 58 09 09 20 | 20 20 43 4c 4f 43 41 4c |ith.X.. | CLOCAL|
|00001460| 20 73 65 74 20 61 6e 64 | 20 4e 44 45 4c 41 59 20 | set and| NDELAY |
|00001470| 63 6c 65 61 72 65 64 29 | 20 74 68 69 73 20 70 72 |cleared)| this pr|
|00001480| 6f 67 72 61 6d 20 77 69 | 6c 6c 20 66 75 6e 63 74 |ogram wi|ll funct|
|00001490| 69 6f 6e 0a 58 09 09 20 | 20 20 63 6f 72 72 65 63 |ion.X.. | correc|
|000014a0| 74 6c 79 2c 20 61 6c 74 | 68 6f 75 67 68 20 69 74 |tly, alt|hough it|
|000014b0| 20 77 69 6c 6c 20 65 61 | 74 20 61 20 73 6d 61 6c | will ea|t a smal|
|000014c0| 6c 20 70 6f 72 74 69 6f | 6e 20 6f 66 20 43 50 55 |l portio|n of CPU|
|000014d0| 0a 58 09 09 20 20 20 74 | 69 6d 65 20 74 6f 20 64 |.X.. t|ime to d|
|000014e0| 6f 20 73 6f 2e 0a 58 09 | 09 0a 58 09 09 37 29 20 |o so..X.|..X..7) |
|000014f0| 41 75 74 6f 62 61 75 64 | 20 77 69 6c 6c 20 77 61 |Autobaud| will wa|
|00001500| 69 74 20 66 6f 72 20 61 | 20 63 61 72 72 69 61 67 |it for a| carriag|
|00001510| 65 20 72 65 74 75 72 6e | 20 61 6e 64 20 75 73 65 |e return| and use|
|00001520| 20 69 74 20 0a 58 09 09 | 20 20 20 74 6f 20 64 65 | it .X..| to de|
|00001530| 74 65 72 6d 69 6e 65 20 | 74 68 65 20 70 61 72 69 |termine |the pari|
|00001540| 74 79 20 6f 66 20 74 68 | 65 20 63 61 6c 6c 65 72 |ty of th|e caller|
|00001550| 27 73 20 74 65 72 6d 69 | 6e 61 6c 20 28 65 69 74 |'s termi|nal (eit|
|00001560| 68 65 72 0a 58 09 09 20 | 20 20 38 2f 4e 2f 31 20 |her.X.. | 8/N/1 |
|00001570| 6f 72 20 37 2f 45 2f 31 | 20 6f 6e 6c 79 29 2e 20 |or 7/E/1| only). |
|00001580| 20 49 66 20 74 68 65 20 | 75 73 65 72 20 64 6f 65 | If the |user doe|
|00001590| 73 6e 27 74 20 70 72 65 | 73 73 20 61 6e 79 74 68 |sn't pre|ss anyth|
|000015a0| 69 6e 67 0a 58 09 09 20 | 20 20 77 69 74 68 69 6e |ing.X.. | within|
|000015b0| 20 61 20 72 65 61 73 6f | 6e 61 62 6c 65 20 74 69 | a reaso|nable ti|
|000015c0| 6d 65 20 66 72 61 6d 65 | 2c 20 38 2f 4e 2f 31 20 |me frame|, 8/N/1 |
|000015d0| 69 73 20 61 73 73 75 6d | 65 64 2e 20 20 54 68 65 |is assum|ed. The|
|000015e0| 0a 58 09 09 20 20 20 6d | 65 73 73 61 67 65 20 22 |.X.. m|essage "|
|000015f0| 43 4f 4e 4e 45 43 54 45 | 44 22 20 69 73 20 6f 75 |CONNECTE|D" is ou|
|00001600| 74 70 75 74 20 74 6f 20 | 74 68 65 20 75 73 65 72 |tput to |the user|
|00001610| 20 74 65 72 6d 69 6e 61 | 6c 0a 58 09 09 20 20 20 | termina|l.X.. |
|00001620| 69 6d 6d 65 64 69 61 74 | 65 6c 79 20 61 66 74 65 |immediat|ely afte|
|00001630| 72 20 61 75 74 6f 62 61 | 75 64 20 73 65 6e 73 65 |r autoba|ud sense|
|00001640| 73 20 74 68 65 20 75 73 | 65 72 27 73 20 62 61 75 |s the us|er's bau|
|00001650| 64 20 72 61 74 65 2e 0a | 58 0a 58 09 09 38 29 20 |d rate..|X.X..8) |
|00001660| 41 6c 6c 20 6d 6f 64 65 | 6d 73 20 73 65 72 76 65 |All mode|ms serve|
|00001670| 64 20 62 79 20 61 20 63 | 6f 6e 66 69 67 75 72 61 |d by a c|onfigura|
|00001680| 74 69 6f 6e 20 6d 75 73 | 74 20 75 73 65 20 74 68 |tion mus|t use th|
|00001690| 65 20 73 61 6d 65 20 0a | 58 09 20 09 20 20 20 72 |e same .|X. . r|
|000016a0| 65 73 70 6f 6e 73 65 20 | 73 65 71 75 65 6e 63 65 |esponse |sequence|
|000016b0| 73 2c 20 61 6c 74 68 6f | 75 67 68 20 73 75 62 73 |s, altho|ugh subs|
|000016c0| 65 74 73 20 61 72 65 20 | 70 65 72 6d 69 74 74 65 |ets are |permitte|
|000016d0| 64 20 28 69 65 3a 20 74 | 68 65 0a 58 09 09 20 20 |d (ie: t|he.X.. |
|000016e0| 20 65 78 61 6d 70 6c 65 | 20 66 69 6c 65 20 61 62 | example| file ab|
|000016f0| 6f 76 65 20 77 6f 75 6c | 64 20 77 6f 72 6b 20 66 |ove woul|d work f|
|00001700| 6f 72 20 61 20 55 53 52 | 20 43 6f 75 72 69 65 72 |or a USR| Courier|
|00001710| 20 32 34 30 30 20 61 6e | 64 0a 58 09 09 20 20 20 | 2400 an|d.X.. |
|00001720| 61 20 54 65 6c 65 62 69 | 74 20 54 72 61 69 6c 62 |a Telebi|t Trailb|
|00001730| 6c 61 7a 65 72 20 50 6c | 75 73 20 65 71 75 61 6c |lazer Pl|us equal|
|00001740| 6c 79 20 77 65 6c 6c 29 | 2e 0a 58 0a 58 09 43 48 |ly well)|..X.X.CH|
|00001750| 45 43 4b 20 54 48 45 20 | 46 55 4e 43 54 49 4f 4e |ECK THE |FUNCTION|
|00001760| 53 20 22 63 68 65 63 6b | 6c 6f 63 6b 28 29 22 20 |S "check|lock()" |
|00001770| 61 6e 64 20 22 6d 61 6b | 65 6c 6f 63 6b 28 29 22 |and "mak|elock()"|
|00001780| 20 2d 2d 20 74 68 65 79 | 20 6d 61 79 20 6e 65 65 | -- they| may nee|
|00001790| 64 20 0a 58 09 74 6f 20 | 62 65 20 6d 6f 64 69 66 |d .X.to |be modif|
|000017a0| 69 65 64 20 66 6f 72 20 | 79 6f 75 72 20 73 79 73 |ied for |your sys|
|000017b0| 74 65 6d 21 20 20 49 6e | 20 70 61 72 74 69 63 75 |tem! In| particu|
|000017c0| 6c 61 72 2c 20 73 6f 6d | 65 20 73 79 73 74 65 6d |lar, som|e system|
|000017d0| 73 20 75 73 65 20 0a 58 | 09 62 69 6e 61 72 79 20 |s use .X|.binary |
|000017e0| 50 49 44 73 20 61 6e 64 | 2f 6f 72 20 73 74 6f 72 |PIDs and|/or stor|
|000017f0| 65 20 74 68 65 20 6c 6f | 63 6b 20 66 69 6c 65 20 |e the lo|ck file |
|00001800| 69 6e 20 61 20 64 69 66 | 66 65 72 65 6e 74 20 70 |in a dif|ferent p|
|00001810| 6c 61 63 65 2e 20 20 57 | 65 20 0a 58 09 63 75 72 |lace. W|e .X.cur|
|00001820| 72 65 6e 74 6c 79 20 61 | 72 65 20 73 65 74 20 75 |rently a|re set u|
|00001830| 70 20 66 6f 72 20 48 44 | 42 20 55 55 43 50 20 6f |p for HD|B UUCP o|
|00001840| 6e 20 49 53 43 20 32 2e | 30 2e 32 2f 32 2e 32 2e |n ISC 2.|0.2/2.2.|
|00001850| 0a 58 0a 58 09 4e 6f 74 | 65 20 74 68 61 74 20 74 |.X.X.Not|e that t|
|00001860| 68 69 73 20 70 72 6f 67 | 72 61 6d 20 63 61 6e 20 |his prog|ram can |
|00001870| 73 68 61 72 65 20 61 20 | 70 6f 72 74 20 77 69 74 |share a |port wit|
|00001880| 68 20 61 20 6d 6f 64 65 | 6d 20 64 69 61 6c 69 6e |h a mode|m dialin|
|00001890| 67 20 6f 75 74 20 6f 6e | 0a 58 09 74 68 65 20 73 |g out on|.X.the s|
|000018a0| 61 6d 65 20 6c 69 6e 65 | 21 20 20 49 74 20 77 69 |ame line|! It wi|
|000018b0| 6c 6c 20 70 65 72 66 6f | 72 6d 20 77 69 74 68 20 |ll perfo|rm with |
|000018c0| 75 75 63 70 20 6f 6e 20 | 74 68 65 20 73 61 6d 65 |uucp on |the same|
|000018d0| 20 70 6f 72 74 20 77 69 | 74 68 6f 75 74 0a 58 09 | port wi|thout.X.|
|000018e0| 74 72 6f 75 62 6c 65 2c | 20 73 6f 20 6c 6f 6e 67 |trouble,| so long|
|000018f0| 20 61 73 20 74 68 65 20 | 6c 6f 63 6b 69 6e 67 20 | as the |locking |
|00001900| 69 73 20 64 6f 6e 65 20 | 63 6f 72 72 65 63 74 6c |is done |correctl|
|00001910| 79 20 62 79 20 75 75 63 | 70 20 61 6e 64 20 6f 74 |y by uuc|p and ot|
|00001920| 68 65 72 0a 58 09 70 72 | 6f 67 72 61 6d 73 20 77 |her.X.pr|ograms w|
|00001930| 68 69 63 68 20 65 78 70 | 65 63 74 20 6c 6f 63 6b |hich exp|ect lock|
|00001940| 20 66 69 6c 65 73 2e 0a | 58 0a 58 09 41 75 74 6f | files..|X.X.Auto|
|00001950| 62 61 75 64 20 72 65 6d | 6f 76 65 73 20 61 6e 79 |baud rem|oves any|
|00001960| 20 73 74 61 6c 65 20 6c | 6f 63 6b 20 66 69 6c 65 | stale l|ock file|
|00001970| 73 20 69 74 20 66 69 6e | 64 73 20 61 75 74 6f 6d |s it fin|ds autom|
|00001980| 61 74 69 63 61 6c 6c 79 | 2e 0a 58 0a 58 2a 2f 0a |atically|..X.X*/.|
|00001990| 58 0a 58 23 64 65 66 69 | 6e 65 09 09 4d 41 58 49 |X.X#defi|ne..MAXI|
|000019a0| 53 53 55 45 09 31 30 30 | 09 09 2f 2a 20 4c 69 6e |SSUE.100|../* Lin|
|000019b0| 65 73 20 69 6e 20 2f 65 | 74 63 2f 69 73 73 75 65 |es in /e|tc/issue|
|000019c0| 20 66 69 6c 65 20 2a 2f | 0a 58 23 64 65 66 69 6e | file */|.X#defin|
|000019d0| 65 09 09 4d 41 58 53 45 | 43 4f 4e 44 53 09 36 30 |e..MAXSE|CONDS.60|
|000019e0| 09 09 09 2f 2a 20 54 69 | 6d 65 6f 75 74 20 61 74 |.../* Ti|meout at|
|000019f0| 20 73 74 61 72 74 20 2a | 2f 0a 58 23 64 65 66 69 | start *|/.X#defi|
|00001a00| 6e 65 09 09 4c 4f 47 53 | 45 43 4f 4e 44 53 09 39 |ne..LOGS|ECONDS.9|
|00001a10| 30 09 09 09 2f 2a 20 54 | 69 6d 65 6f 75 74 20 61 |0.../* T|imeout a|
|00001a20| 74 20 6c 6f 67 69 6e 20 | 2a 2f 0a 58 23 64 65 66 |t login |*/.X#def|
|00001a30| 69 6e 65 09 09 55 55 43 | 49 43 4f 09 09 22 2f 75 |ine..UUC|ICO.."/u|
|00001a40| 73 72 2f 6c 69 62 2f 75 | 75 63 70 2f 75 75 63 69 |sr/lib/u|ucp/uuci|
|00001a50| 63 6f 22 09 2f 2a 20 57 | 68 65 72 65 27 73 20 75 |co"./* W|here's u|
|00001a60| 75 63 69 63 6f 3f 20 2a | 2f 0a 58 23 64 65 66 69 |ucico? *|/.X#defi|
|00001a70| 6e 65 09 09 42 45 4c 4c | 09 09 37 09 09 09 2f 2a |ne..BELL|..7.../*|
|00001a80| 20 4d 61 6b 65 73 20 61 | 20 22 62 65 65 70 22 20 | Makes a| "beep" |
|00001a90| 2a 2f 0a 58 0a 65 78 74 | 65 72 6e 09 63 68 61 72 |*/.X.ext|ern.char|
|00001aa0| 09 2a 6d 61 6c 6c 6f 63 | 28 29 3b 0a 58 0a 58 23 |.*malloc|();.X.X#|
|00001ab0| 69 6e 63 6c 75 64 65 09 | 3c 73 74 64 69 6f 2e 68 |include.|<stdio.h|
|00001ac0| 3e 0a 58 23 69 6e 63 6c | 75 64 65 09 3c 66 63 6e |>.X#incl|ude.<fcn|
|00001ad0| 74 6c 2e 68 3e 0a 58 23 | 69 6e 63 6c 75 64 65 09 |tl.h>.X#|include.|
|00001ae0| 3c 73 79 73 2f 74 79 70 | 65 73 2e 68 3e 0a 58 23 |<sys/typ|es.h>.X#|
|00001af0| 69 6e 63 6c 75 64 65 09 | 3c 73 79 73 2f 74 74 79 |include.|<sys/tty|
|00001b00| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 09 3c 75 |.h>.X#in|clude.<u|
|00001b10| 74 6d 70 2e 68 3e 0a 58 | 23 69 6e 63 6c 75 64 65 |tmp.h>.X|#include|
|00001b20| 09 3c 73 69 67 6e 61 6c | 2e 68 3e 0a 58 23 69 6e |.<signal|.h>.X#in|
|00001b30| 63 6c 75 64 65 09 3c 65 | 72 72 6e 6f 2e 68 3e 0a |clude.<e|rrno.h>.|
|00001b40| 58 23 69 6e 63 6c 75 64 | 65 09 3c 74 65 72 6d 69 |X#includ|e.<termi|
|00001b50| 6f 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 09 3c |o.h>.X#i|nclude.<|
|00001b60| 73 79 73 2f 73 74 61 74 | 2e 68 3e 0a 58 0a 58 2f |sys/stat|.h>.X.X/|
|00001b70| 2a 09 47 6c 6f 62 61 6c | 73 09 09 2a 2f 0a 58 0a |*.Global|s..*/.X.|
|00001b80| 69 6e 74 09 6d 61 73 63 | 68 61 6e 20 3d 20 2d 31 |int.masc|han = -1|
|00001b90| 3b 09 09 2f 2a 20 4e 6f | 74 68 69 6e 67 20 69 6e |;../* No|thing in|
|00001ba0| 69 74 69 61 6c 6c 79 3b | 20 6d 61 73 74 65 72 20 |itially;| master |
|00001bb0| 63 68 61 6e 6e 65 6c 20 | 2a 2f 0a 69 6e 74 09 74 |channel |*/.int.t|
|00001bc0| 69 6d 65 6f 75 74 20 3d | 20 30 3b 09 09 2f 2a 20 |imeout =| 0;../* |
|00001bd0| 54 69 6d 65 72 20 76 61 | 6c 75 65 20 66 6f 72 20 |Timer va|lue for |
|00001be0| 6b 65 65 70 69 6e 67 20 | 74 72 61 63 6b 20 6f 66 |keeping |track of|
|00001bf0| 20 74 69 6d 65 20 2a 2f | 0a 58 46 49 4c 45 09 2a | time */|.XFILE.*|
|00001c00| 66 65 72 72 3b 09 09 09 | 2f 2a 20 45 72 72 6f 72 |ferr;...|/* Error|
|00001c10| 20 63 68 61 6e 6e 65 6c | 20 2a 2f 0a 58 0a 73 6c | channel| */.X.sl|
|00001c20| 6f 77 77 72 69 74 65 28 | 63 68 61 6e 2c 20 73 74 |owwrite(|chan, st|
|00001c30| 72 2c 20 6c 65 6e 29 09 | 2f 2a 20 57 72 69 74 65 |r, len).|/* Write|
|00001c40| 20 61 20 73 74 72 69 6e | 67 20 73 6c 6f 77 6c 79 | a strin|g slowly|
|00001c50| 20 74 6f 20 74 68 65 20 | 70 6f 72 74 20 2a 2f 0a | to the |port */.|
|00001c60| 69 6e 74 09 63 68 61 6e | 2c 20 6c 65 6e 3b 0a 63 |int.chan|, len;.c|
|00001c70| 68 61 72 09 2a 73 74 72 | 3b 0a 58 7b 09 0a 58 09 |har.*str|;.X{..X.|
|00001c80| 69 6e 74 20 09 78 3b 0a | 58 09 63 68 61 72 09 2a |int .x;.|X.char.*|
|00001c90| 70 74 72 3b 0a 58 09 63 | 68 61 72 09 63 68 5b 32 |ptr;.X.c|har.ch[2|
|00001ca0| 5d 3b 0a 58 0a 58 09 70 | 74 72 20 3d 20 73 74 72 |];.X.X.p|tr = str|
|00001cb0| 3b 0a 58 09 66 6f 72 20 | 28 78 20 3d 20 30 3b 20 |;.X.for |(x = 0; |
|00001cc0| 78 20 3c 20 6c 65 6e 3b | 20 78 2b 2b 29 20 7b 0a |x < len;| x++) {.|
|00001cd0| 58 09 09 63 68 5b 30 5d | 20 3d 20 2a 70 74 72 3b |X..ch[0]| = *ptr;|
|00001ce0| 0a 58 09 09 77 72 69 74 | 65 28 63 68 61 6e 2c 20 |.X..writ|e(chan, |
|00001cf0| 63 68 2c 20 31 29 3b 0a | 58 09 09 6e 61 70 28 31 |ch, 1);.|X..nap(1|
|00001d00| 30 29 3b 0a 58 09 09 70 | 74 72 2b 2b 3b 0a 58 09 |0);.X..p|tr++;.X.|
|00001d10| 7d 0a 58 09 72 65 74 75 | 72 6e 3b 0a 58 7d 0a 58 |}.X.retu|rn;.X}.X|
|00001d20| 0a 63 68 65 63 6b 6d 61 | 74 63 68 28 6d 61 74 63 |.checkma|tch(matc|
|00001d30| 68 65 73 2c 20 6d 63 6f | 75 6e 74 2c 20 62 66 72 |hes, mco|unt, bfr|
|00001d40| 2c 20 73 70 65 65 64 29 | 09 09 2f 2a 20 41 6e 79 |, speed)|../* Any|
|00001d50| 20 6d 61 74 63 68 65 73 | 20 69 6e 20 61 72 72 61 | matches| in arra|
|00001d60| 79 3f 20 2a 2f 0a 73 74 | 72 75 63 74 09 7b 0a 58 |y? */.st|ruct.{.X|
|00001d70| 09 63 68 61 72 09 73 74 | 72 69 6e 67 5b 34 30 5d |.char.st|ring[40]|
|00001d80| 3b 0a 58 09 69 6e 74 09 | 62 61 75 64 3b 0a 58 09 |;.X.int.|baud;.X.|
|00001d90| 63 68 61 72 09 73 70 65 | 65 64 5b 32 30 5d 3b 0a |char.spe|ed[20];.|
|00001da0| 58 7d 20 6d 61 74 63 68 | 65 73 5b 5d 3b 0a 69 6e |X} match|es[];.in|
|00001db0| 74 09 6d 63 6f 75 6e 74 | 3b 0a 63 68 61 72 09 62 |t.mcount|;.char.b|
|00001dc0| 66 72 5b 5d 3b 0a 63 68 | 61 72 09 73 70 65 65 64 |fr[];.ch|ar.speed|
|00001dd0| 5b 5d 3b 0a 58 7b 0a 58 | 09 69 6e 74 09 78 20 3d |[];.X{.X|.int.x =|
|00001de0| 20 30 3b 0a 58 0a 58 09 | 66 6f 72 20 28 78 20 3d | 0;.X.X.|for (x =|
|00001df0| 20 30 3b 20 78 20 3c 20 | 6d 63 6f 75 6e 74 3b 20 | 0; x < |mcount; |
|00001e00| 78 2b 2b 29 20 7b 0a 58 | 09 09 69 66 20 28 21 73 |x++) {.X|..if (!s|
|00001e10| 74 72 63 6d 70 28 62 66 | 72 2c 20 6d 61 74 63 68 |trcmp(bf|r, match|
|00001e20| 65 73 5b 78 5d 2e 73 74 | 72 69 6e 67 29 29 20 7b |es[x].st|ring)) {|
|00001e30| 0a 58 09 09 09 73 74 72 | 63 70 79 28 73 70 65 65 |.X...str|cpy(spee|
|00001e40| 64 2c 20 6d 61 74 63 68 | 65 73 5b 78 5d 2e 73 70 |d, match|es[x].sp|
|00001e50| 65 65 64 29 3b 0a 58 09 | 09 09 72 65 74 75 72 6e |eed);.X.|..return|
|00001e60| 28 6d 61 74 63 68 65 73 | 5b 78 5d 2e 62 61 75 64 |(matches|[x].baud|
|00001e70| 29 3b 0a 58 09 09 7d 0a | 58 09 7d 0a 58 09 72 65 |);.X..}.|X.}.X.re|
|00001e80| 74 75 72 6e 28 30 29 3b | 0a 58 7d 0a 58 0a 58 2f |turn(0);|.X}.X.X/|
|00001e90| 2a 20 09 45 78 74 65 72 | 6e 61 6c 20 64 65 63 6c |* .Exter|nal decl|
|00001ea0| 61 72 61 74 69 6f 6e 73 | 09 2a 2f 0a 65 78 74 65 |arations|.*/.exte|
|00001eb0| 72 6e 09 73 74 72 75 63 | 74 09 75 74 6d 70 09 2a |rn.struc|t.utmp.*|
|00001ec0| 67 65 74 75 74 65 6e 74 | 28 29 2c 20 2a 70 75 74 |getutent|(), *put|
|00001ed0| 75 74 6c 69 6e 65 28 29 | 3b 0a 58 0a 58 0a 58 2f |utline()|;.X.X.X/|
|00001ee0| 2a 09 4d 61 6b 65 6c 6f | 63 6b 20 2f 20 43 68 65 |*.Makelo|ck / Che|
|00001ef0| 63 6b 6c 6f 63 6b 20 2d | 20 6d 61 6b 65 73 20 2f |cklock -| makes /|
|00001f00| 20 63 68 65 63 6b 73 20 | 66 6f 72 20 6c 6f 63 6b | checks |for lock|
|00001f10| 20 66 69 6c 65 73 0a 58 | 09 6c 69 6e 65 09 09 2d | files.X|.line..-|
|00001f20| 20 74 68 65 20 6c 69 6e | 65 20 74 6f 20 63 68 65 | the lin|e to che|
|00001f30| 63 6b 20 66 6f 72 20 61 | 20 6c 6f 63 6b 0a 58 09 |ck for a| lock.X.|
|00001f40| 6c 6f 63 6b 66 6c 61 67 | 09 2d 20 69 66 20 6e 6f |lockflag|.- if no|
|00001f50| 6e 2d 7a 65 72 6f 2c 20 | 63 68 65 63 6b 6c 6f 63 |n-zero, |checkloc|
|00001f60| 6b 20 77 69 6c 6c 20 73 | 6c 65 65 70 20 75 6e 74 |k will s|leep unt|
|00001f70| 69 6c 20 69 74 20 73 65 | 65 73 20 74 68 65 0a 58 |il it se|es the.X|
|00001f80| 09 09 09 20 20 6c 6f 63 | 6b 20 69 73 20 67 6f 6e |... loc|k is gon|
|00001f90| 65 2c 20 6f 74 68 65 72 | 77 69 73 65 20 69 74 20 |e, other|wise it |
|00001fa0| 72 65 74 75 72 6e 73 20 | 73 74 61 74 75 73 0a 58 |returns |status.X|
|00001fb0| 09 09 09 20 20 28 63 68 | 65 63 6b 6c 6f 63 6b 20 |... (ch|ecklock |
|00001fc0| 6f 6e 6c 79 29 0a 58 0a | 52 65 74 75 72 6e 73 20 |only).X.|Returns |
|00001fd0| 6e 6f 74 20 7a 65 72 6f | 20 28 2d 31 29 20 69 66 |not zero| (-1) if|
|00001fe0| 20 6c 69 6e 65 20 69 73 | 20 6c 6f 63 6b 65 64 0a | line is| locked.|
|00001ff0| 58 0a 58 2a 2f 0a 58 0a | 69 6e 74 09 6d 61 6b 65 |X.X*/.X.|int.make|
|00002000| 6c 6f 63 6b 28 6c 69 6e | 65 29 0a 63 68 61 72 09 |lock(lin|e).char.|
|00002010| 2a 6c 69 6e 65 3b 0a 58 | 7b 0a 58 0a 63 68 61 72 |*line;.X|{.X.char|
|00002020| 09 74 6d 70 5b 38 30 5d | 3b 0a 63 68 61 72 09 74 |.tmp[80]|;.char.t|
|00002030| 6d 70 32 5b 38 30 5d 3b | 0a 63 68 61 72 09 74 62 |mp2[80];|.char.tb|
|00002040| 66 72 5b 32 30 5d 3b 0a | 69 6e 74 09 69 64 3b 0a |fr[20];.|int.id;.|
|00002050| 58 46 49 4c 45 09 2a 69 | 64 32 3b 0a 69 6e 74 09 |XFILE.*i|d2;.int.|
|00002060| 70 69 64 3b 0a 73 74 72 | 75 63 74 09 73 74 61 74 |pid;.str|uct.stat|
|00002070| 09 73 74 3b 0a 58 0a 58 | 09 73 70 72 69 6e 74 66 |.st;.X.X|.sprintf|
|00002080| 28 74 6d 70 2c 20 22 2f | 75 73 72 2f 73 70 6f 6f |(tmp, "/|usr/spoo|
|00002090| 6c 2f 6c 6f 63 6b 73 2f | 4c 54 4d 50 2e 2e 25 64 |l/locks/|LTMP..%d|
|000020a0| 22 2c 20 67 65 74 70 69 | 64 28 29 29 3b 0a 58 09 |", getpi|d());.X.|
|000020b0| 73 70 72 69 6e 74 66 28 | 74 6d 70 32 2c 20 22 2f |sprintf(|tmp2, "/|
|000020c0| 75 73 72 2f 73 70 6f 6f | 6c 2f 6c 6f 63 6b 73 2f |usr/spoo|l/locks/|
|000020d0| 4c 43 4b 2e 2e 25 73 22 | 2c 20 6c 69 6e 65 29 3b |LCK..%s"|, line);|
|000020e0| 0a 58 09 69 66 20 28 28 | 69 64 20 3d 20 6f 70 65 |.X.if ((|id = ope|
|000020f0| 6e 28 74 6d 70 2c 20 4f | 5f 57 52 4f 4e 4c 59 7c |n(tmp, O|_WRONLY||
|00002100| 4f 5f 43 52 45 41 54 2c | 20 30 36 36 30 29 29 20 |O_CREAT,| 0660)) |
|00002110| 3c 20 30 29 20 7b 0a 58 | 09 09 65 78 69 74 28 31 |< 0) {.X|..exit(1|
|00002120| 29 3b 0a 58 09 7d 0a 58 | 09 73 70 72 69 6e 74 66 |);.X.}.X|.sprintf|
|00002130| 28 74 62 66 72 2c 20 22 | 25 31 30 64 5c 6e 22 2c |(tbfr, "|%10d\n",|
|00002140| 20 67 65 74 70 69 64 28 | 29 29 3b 0a 58 09 74 62 | getpid(|));.X.tb|
|00002150| 66 72 5b 31 31 5d 20 3d | 20 30 3b 0a 58 09 77 72 |fr[11] =| 0;.X.wr|
|00002160| 69 74 65 28 69 64 2c 20 | 74 62 66 72 2c 20 31 31 |ite(id, |tbfr, 11|
|00002170| 29 3b 0a 58 09 63 6c 6f | 73 65 28 69 64 29 3b 0a |);.X.clo|se(id);.|
|00002180| 58 09 69 66 20 28 21 73 | 74 61 74 28 55 55 43 49 |X.if (!s|tat(UUCI|
|00002190| 43 4f 2c 20 26 73 74 29 | 29 20 7b 09 09 09 2f 2a |CO, &st)|) {.../*|
|000021a0| 20 46 69 6e 64 20 6f 77 | 6e 65 72 73 68 69 70 20 | Find ow|nership |
|000021b0| 2a 2f 0a 58 09 09 63 68 | 6f 77 6e 28 74 6d 70 2c |*/.X..ch|own(tmp,|
|000021c0| 20 73 74 2e 73 74 5f 75 | 69 64 2c 20 73 74 2e 73 | st.st_u|id, st.s|
|000021d0| 74 5f 67 69 64 29 3b 09 | 2f 2a 20 53 65 74 20 6f |t_gid);.|/* Set o|
|000021e0| 77 6e 65 72 2f 67 72 6f | 75 70 20 2a 2f 0a 58 09 |wner/gro|up */.X.|
|000021f0| 7d 0a 58 09 77 68 69 6c | 65 20 28 6c 69 6e 6b 28 |}.X.whil|e (link(|
|00002200| 74 6d 70 2c 20 74 6d 70 | 32 29 29 20 7b 0a 58 09 |tmp, tmp|2)) {.X.|
|00002210| 09 69 66 20 28 28 69 64 | 32 20 3d 20 66 6f 70 65 |.if ((id|2 = fope|
|00002220| 6e 28 74 6d 70 32 2c 20 | 22 72 22 29 29 20 3d 3d |n(tmp2, |"r")) ==|
|00002230| 20 28 46 49 4c 45 20 2a | 29 20 4e 55 4c 4c 29 20 | (FILE *|) NULL) |
|00002240| 7b 0a 58 09 09 09 73 6c | 65 65 70 28 31 29 3b 09 |{.X...sl|eep(1);.|
|00002250| 09 09 2f 2a 20 53 6c 6f | 77 20 64 6f 77 6e 2e 2e |../* Slo|w down..|
|00002260| 20 2a 2f 0a 58 09 09 09 | 63 6f 6e 74 69 6e 75 65 | */.X...|continue|
|00002270| 3b 0a 58 09 09 7d 0a 58 | 09 09 66 73 63 61 6e 66 |;.X..}.X|..fscanf|
|00002280| 28 69 64 32 2c 20 22 25 | 64 22 2c 20 26 70 69 64 |(id2, "%|d", &pid|
|00002290| 29 3b 09 09 2f 2a 20 52 | 65 61 64 20 50 49 44 20 |);../* R|ead PID |
|000022a0| 66 72 6f 6d 20 66 69 6c | 65 20 2a 2f 0a 58 09 09 |from fil|e */.X..|
|000022b0| 66 63 6c 6f 73 65 28 69 | 64 32 29 3b 09 09 09 09 |fclose(i|d2);....|
|000022c0| 2f 2a 20 42 65 20 6e 69 | 63 65 2e 2e 20 2a 2f 0a |/* Be ni|ce.. */.|
|000022d0| 58 09 09 69 66 20 28 21 | 6b 69 6c 6c 28 70 69 64 |X..if (!|kill(pid|
|000022e0| 2c 20 30 29 29 20 7b 09 | 09 09 2f 2a 20 4f 68 20 |, 0)) {.|../* Oh |
|000022f0| 6f 68 2c 20 61 20 70 72 | 6f 63 65 73 73 21 20 2a |oh, a pr|ocess! *|
|00002300| 2f 0a 58 09 09 09 72 65 | 74 75 72 6e 28 2d 31 29 |/.X...re|turn(-1)|
|00002310| 3b 0a 58 09 09 7d 0a 58 | 09 09 75 6e 6c 69 6e 6b |;.X..}.X|..unlink|
|00002320| 28 74 6d 70 32 29 3b 0a | 58 09 7d 0a 58 09 75 6e |(tmp2);.|X.}.X.un|
|00002330| 6c 69 6e 6b 28 74 6d 70 | 29 3b 0a 58 09 72 65 74 |link(tmp|);.X.ret|
|00002340| 75 72 6e 28 30 29 3b 0a | 58 7d 0a 58 0a 69 6e 74 |urn(0);.|X}.X.int|
|00002350| 09 63 68 65 63 6b 6c 6f | 63 6b 28 6c 69 6e 65 2c |.checklo|ck(line,|
|00002360| 20 6c 6f 63 6b 66 6c 61 | 67 29 0a 63 68 61 72 09 | lockfla|g).char.|
|00002370| 2a 6c 69 6e 65 3b 0a 69 | 6e 74 09 6c 6f 63 6b 66 |*line;.i|nt.lockf|
|00002380| 6c 61 67 3b 09 09 2f 2a | 20 49 66 20 6e 6f 6e 2d |lag;../*| If non-|
|00002390| 7a 65 72 6f 2c 20 77 61 | 69 74 20 66 6f 72 20 6f |zero, wa|it for o|
|000023a0| 70 65 6e 20 6c 69 6e 65 | 20 2a 2f 0a 58 7b 0a 58 |pen line| */.X{.X|
|000023b0| 0a 63 68 61 72 09 6c 74 | 6d 70 5b 31 30 5d 3b 0a |.char.lt|mp[10];.|
|000023c0| 63 68 61 72 09 74 6d 70 | 5b 38 30 5d 3b 0a 69 6e |char.tmp|[80];.in|
|000023d0| 74 09 70 69 64 3b 0a 58 | 46 49 4c 45 09 2a 69 64 |t.pid;.X|FILE.*id|
|000023e0| 3b 0a 58 09 0a 58 09 73 | 74 72 63 70 79 28 6c 74 |;.X..X.s|trcpy(lt|
|000023f0| 6d 70 2c 20 6c 69 6e 65 | 29 3b 0a 58 09 73 70 72 |mp, line|);.X.spr|
|00002400| 69 6e 74 66 28 74 6d 70 | 2c 20 22 2f 75 73 72 2f |intf(tmp|, "/usr/|
|00002410| 73 70 6f 6f 6c 2f 6c 6f | 63 6b 73 2f 4c 43 4b 2e |spool/lo|cks/LCK.|
|00002420| 2e 25 73 22 2c 20 6c 74 | 6d 70 29 3b 09 2f 2a 20 |.%s", lt|mp);./* |
|00002430| 57 68 65 72 65 20 61 72 | 65 20 6c 6f 63 6b 73 3f |Where ar|e locks?|
|00002440| 20 2a 2f 0a 58 09 77 68 | 69 6c 65 20 28 21 61 63 | */.X.wh|ile (!ac|
|00002450| 63 65 73 73 28 74 6d 70 | 2c 20 30 29 29 20 7b 09 |cess(tmp|, 0)) {.|
|00002460| 09 09 2f 2a 20 49 66 20 | 66 69 6c 65 20 69 73 20 |../* If |file is |
|00002470| 74 68 65 72 65 20 2a 2f | 0a 58 09 09 69 66 20 28 |there */|.X..if (|
|00002480| 28 69 64 20 3d 20 66 6f | 70 65 6e 28 74 6d 70 2c |(id = fo|pen(tmp,|
|00002490| 20 22 72 22 29 29 20 21 | 3d 20 28 46 49 4c 45 20 | "r")) !|= (FILE |
|000024a0| 2a 29 20 4e 55 4c 4c 29 | 20 7b 09 2f 2a 20 6f 70 |*) NULL)| {./* op|
|000024b0| 65 6e 65 64 3f 20 2a 2f | 0a 58 09 09 09 66 73 63 |ened? */|.X...fsc|
|000024c0| 61 6e 66 28 69 64 2c 20 | 22 20 25 64 22 2c 20 26 |anf(id, |" %d", &|
|000024d0| 70 69 64 29 3b 09 2f 2a | 20 47 65 74 20 70 69 64 |pid);./*| Get pid|
|000024e0| 20 66 72 6f 6d 20 62 66 | 72 20 2a 2f 0a 58 09 09 | from bf|r */.X..|
|000024f0| 09 66 63 6c 6f 73 65 28 | 69 64 29 3b 09 09 09 2f |.fclose(|id);.../|
|00002500| 2a 20 43 6c 65 61 6e 20 | 75 70 20 2a 2f 0a 58 09 |* Clean |up */.X.|
|00002510| 09 09 69 66 20 28 6b 69 | 6c 6c 28 70 69 64 2c 20 |..if (ki|ll(pid, |
|00002520| 30 29 29 20 7b 09 2f 2a | 20 53 65 65 20 69 66 20 |0)) {./*| See if |
|00002530| 70 72 6f 63 65 73 73 20 | 69 73 20 61 6c 69 76 65 |process |is alive|
|00002540| 20 2a 2f 0a 58 09 09 09 | 09 69 66 20 28 65 72 72 | */.X...|.if (err|
|00002550| 6e 6f 20 3d 3d 20 45 53 | 52 43 48 29 20 7b 09 2f |no == ES|RCH) {./|
|00002560| 2a 20 4e 6f 70 65 3b 20 | 69 74 20 64 69 65 64 20 |* Nope; |it died |
|00002570| 2a 2f 0a 58 09 09 09 09 | 09 75 6e 6c 69 6e 6b 28 |*/.X....|.unlink(|
|00002580| 74 6d 70 29 3b 09 2f 2a | 20 43 6c 65 61 72 20 6c |tmp);./*| Clear l|
|00002590| 6f 63 6b 20 2a 2f 0a 58 | 09 09 09 09 09 63 6f 6e |ock */.X|.....con|
|000025a0| 74 69 6e 75 65 3b 09 2f | 2a 20 4c 6f 6f 6b 20 61 |tinue;./|* Look a|
|000025b0| 67 61 69 6e 20 2a 2f 0a | 58 09 09 09 09 7d 0a 58 |gain */.|X....}.X|
|000025c0| 09 09 09 7d 0a 58 09 09 | 09 69 66 20 28 6c 6f 63 |...}.X..|.if (loc|
|000025d0| 6b 66 6c 61 67 29 20 7b | 09 09 09 2f 2a 20 49 46 |kflag) {|.../* IF|
|000025e0| 20 77 61 69 74 69 6e 67 | 20 2a 2f 0a 58 09 09 09 | waiting| */.X...|
|000025f0| 09 73 6c 65 65 70 28 31 | 29 3b 09 09 2f 2a 20 57 |.sleep(1|);../* W|
|00002600| 61 69 74 2f 6b 65 65 70 | 20 67 6f 69 6e 67 20 2a |ait/keep| going *|
|00002610| 2f 0a 58 09 09 09 7d 20 | 65 6c 73 65 20 7b 0a 58 |/.X...} |else {.X|
|00002620| 09 09 09 09 72 65 74 75 | 72 6e 28 2d 31 29 3b 09 |....retu|rn(-1);.|
|00002630| 09 2f 2a 20 45 6c 73 65 | 20 72 65 74 75 72 6e 20 |./* Else| return |
|00002640| 6c 6f 63 6b 65 64 20 2a | 2f 0a 58 09 09 09 7d 0a |locked *|/.X...}.|
|00002650| 58 09 09 7d 0a 58 09 7d | 0a 58 09 72 65 74 75 72 |X..}.X.}|.X.retur|
|00002660| 6e 28 30 29 3b 09 09 09 | 09 09 2f 2a 20 4c 69 6e |n(0);...|../* Lin|
|00002670| 65 20 69 73 20 63 6c 65 | 61 72 20 2a 2f 0a 58 7d |e is cle|ar */.X}|
|00002680| 0a 58 0a 73 65 74 74 6f | 67 65 74 74 79 28 6c 69 |.X.setto|getty(li|
|00002690| 6e 65 29 09 09 09 2f 2a | 20 4d 61 72 6b 20 70 72 |ne).../*| Mark pr|
|000026a0| 6f 63 65 73 73 20 69 6e | 20 47 65 74 74 79 20 2a |ocess in| Getty *|
|000026b0| 2f 0a 63 68 61 72 09 2a | 6c 69 6e 65 3b 0a 58 7b |/.char.*|line;.X{|
|000026c0| 0a 58 09 69 6e 74 09 70 | 69 64 3b 0a 58 09 73 74 |.X.int.p|id;.X.st|
|000026d0| 72 75 63 74 09 75 74 6d | 70 09 2a 75 3b 0a 58 09 |ruct.utm|p.*u;.X.|
|000026e0| 46 49 4c 45 09 2a 66 69 | 64 3b 0a 58 0a 58 09 70 |FILE.*fi|d;.X.X.p|
|000026f0| 69 64 20 3d 20 67 65 74 | 70 69 64 28 29 3b 09 09 |id = get|pid();..|
|00002700| 2f 2a 20 47 65 74 20 6f | 75 72 20 70 69 64 20 2a |/* Get o|ur pid *|
|00002710| 2f 0a 58 09 77 68 69 6c | 65 20 28 28 75 20 3d 20 |/.X.whil|e ((u = |
|00002720| 67 65 74 75 74 65 6e 74 | 28 29 29 20 21 3d 20 4e |getutent|()) != N|
|00002730| 55 4c 4c 29 20 7b 09 2f | 2a 20 57 68 69 6c 65 20 |ULL) {./|* While |
|00002740| 74 68 65 72 65 20 61 72 | 65 20 6d 6f 72 65 20 6c |there ar|e more l|
|00002750| 69 6e 65 73 20 2a 2f 0a | 58 09 09 69 66 20 28 28 |ines */.|X..if ((|
|00002760| 28 75 2d 3e 75 74 5f 74 | 79 70 65 20 3d 3d 20 49 |(u->ut_t|ype == I|
|00002770| 4e 49 54 5f 50 52 4f 43 | 45 53 53 29 20 7c 7c 20 |NIT_PROC|ESS) || |
|00002780| 28 75 2d 3e 75 74 5f 74 | 79 70 65 20 3d 3d 20 55 |(u->ut_t|ype == U|
|00002790| 53 45 52 5f 50 52 4f 43 | 45 53 53 29 29 20 26 26 |SER_PROC|ESS)) &&|
|000027a0| 20 28 75 2d 3e 75 74 5f | 70 69 64 20 3d 3d 20 70 | (u->ut_|pid == p|
|000027b0| 69 64 29 29 20 7b 0a 58 | 09 09 09 73 74 72 63 70 |id)) {.X|...strcp|
|000027c0| 79 28 75 2d 3e 75 74 5f | 6c 69 6e 65 2c 20 6c 69 |y(u->ut_|line, li|
|000027d0| 6e 65 29 3b 09 2f 2a 20 | 53 65 74 20 6c 69 6e 65 |ne);./* |Set line|
|000027e0| 20 6e 61 6d 65 20 2a 2f | 0a 58 09 09 09 73 74 72 | name */|.X...str|
|000027f0| 63 70 79 28 75 2d 3e 75 | 74 5f 75 73 65 72 2c 20 |cpy(u->u|t_user, |
|00002800| 22 5f 49 64 6c 65 22 29 | 3b 09 2f 2a 20 41 6e 64 |"_Idle")|;./* And|
|00002810| 20 6e 61 6d 65 20 2a 2f | 0a 58 09 09 09 75 2d 3e | name */|.X...u->|
|00002820| 75 74 5f 70 69 64 20 3d | 20 67 65 74 70 69 64 28 |ut_pid =| getpid(|
|00002830| 29 3b 09 09 2f 2a 20 41 | 6e 64 20 70 69 64 20 2a |);../* A|nd pid *|
|00002840| 2f 0a 58 09 09 09 75 2d | 3e 75 74 5f 74 79 70 65 |/.X...u-|>ut_type|
|00002850| 20 3d 20 4c 4f 47 49 4e | 5f 50 52 4f 43 45 53 53 | = LOGIN|_PROCESS|
|00002860| 3b 09 2f 2a 20 41 6e 64 | 20 74 79 70 65 20 2a 2f |;./* And| type */|
|00002870| 0a 58 09 09 09 70 75 74 | 75 74 6c 69 6e 65 28 75 |.X...put|utline(u|
|00002880| 29 3b 09 09 09 2f 2a 20 | 44 6f 20 69 74 20 2a 2f |);.../* |Do it */|
|00002890| 0a 58 09 09 09 69 66 20 | 28 28 66 69 64 20 3d 20 |.X...if |((fid = |
|000028a0| 66 6f 70 65 6e 28 57 54 | 4d 50 5f 46 49 4c 45 2c |fopen(WT|MP_FILE,|
|000028b0| 20 22 61 2b 22 29 29 20 | 21 3d 20 4e 55 4c 4c 29 | "a+")) |!= NULL)|
|000028c0| 20 7b 0a 58 09 09 09 09 | 66 73 65 65 6b 28 66 69 | {.X....|fseek(fi|
|000028d0| 64 2c 20 30 4c 2c 20 32 | 29 3b 09 2f 2a 20 53 65 |d, 0L, 2|);./* Se|
|000028e0| 65 6b 20 65 6e 64 20 2a | 2f 0a 58 09 09 09 09 66 |ek end *|/.X....f|
|000028f0| 77 72 69 74 65 28 28 63 | 68 61 72 20 2a 29 20 75 |write((c|har *) u|
|00002900| 2c 20 73 69 7a 65 6f 66 | 28 2a 75 29 2c 20 31 2c |, sizeof|(*u), 1,|
|00002910| 20 66 69 64 29 3b 0a 58 | 09 09 09 09 66 63 6c 6f | fid);.X|....fclo|
|00002920| 73 65 28 66 69 64 29 3b | 09 09 2f 2a 20 57 72 6f |se(fid);|../* Wro|
|00002930| 74 65 20 77 74 6d 70 20 | 2a 2f 0a 58 09 09 09 7d |te wtmp |*/.X...}|
|00002940| 0a 58 09 09 09 62 72 65 | 61 6b 3b 0a 58 09 09 7d |.X...bre|ak;.X..}|
|00002950| 0a 58 09 7d 0a 58 09 65 | 6e 64 75 74 65 6e 74 28 |.X.}.X.e|ndutent(|
|00002960| 29 3b 0a 58 09 72 65 74 | 75 72 6e 3b 0a 58 7d 0a |);.X.ret|urn;.X}.|
|00002970| 58 0a 73 65 74 74 6f 6c | 6f 67 69 6e 28 6c 69 6e |X.settol|ogin(lin|
|00002980| 65 29 09 09 2f 2a 20 54 | 65 6c 6c 20 74 68 65 20 |e)../* T|ell the |
|00002990| 73 79 73 74 65 6d 20 77 | 65 27 72 65 20 61 74 20 |system w|e're at |
|000029a0| 6c 6f 67 69 6e 20 73 74 | 61 74 65 20 2a 2f 0a 63 |login st|ate */.c|
|000029b0| 68 61 72 09 2a 6c 69 6e | 65 3b 0a 58 7b 0a 58 09 |har.*lin|e;.X{.X.|
|000029c0| 69 6e 74 09 70 69 64 3b | 0a 58 09 73 74 72 75 63 |int.pid;|.X.struc|
|000029d0| 74 09 75 74 6d 70 09 2a | 75 3b 0a 58 0a 58 09 70 |t.utmp.*|u;.X.X.p|
|000029e0| 69 64 20 3d 20 67 65 74 | 70 69 64 28 29 3b 09 09 |id = get|pid();..|
|000029f0| 2f 2a 20 47 65 74 20 6f | 75 72 20 70 69 64 20 2a |/* Get o|ur pid *|
|00002a00| 2f 0a 58 09 77 68 69 6c | 65 20 28 28 75 20 3d 20 |/.X.whil|e ((u = |
|00002a10| 67 65 74 75 74 65 6e 74 | 28 29 29 20 21 3d 20 4e |getutent|()) != N|
|00002a20| 55 4c 4c 29 20 7b 09 2f | 2a 20 57 68 69 6c 65 20 |ULL) {./|* While |
|00002a30| 74 68 65 72 65 20 61 72 | 65 20 6d 6f 72 65 20 6c |there ar|e more l|
|00002a40| 69 6e 65 73 20 2a 2f 0a | 58 09 09 69 66 20 28 28 |ines */.|X..if ((|
|00002a50| 75 2d 3e 75 74 5f 74 79 | 70 65 20 3d 3d 20 4c 4f |u->ut_ty|pe == LO|
|00002a60| 47 49 4e 5f 50 52 4f 43 | 45 53 53 29 20 26 26 20 |GIN_PROC|ESS) && |
|00002a70| 28 75 2d 3e 75 74 5f 70 | 69 64 20 3d 3d 20 70 69 |(u->ut_p|id == pi|
|00002a80| 64 29 29 20 7b 0a 58 09 | 09 09 73 74 72 63 70 79 |d)) {.X.|..strcpy|
|00002a90| 28 75 2d 3e 75 74 5f 6c | 69 6e 65 2c 20 6c 69 6e |(u->ut_l|ine, lin|
|00002aa0| 65 29 3b 0a 58 09 09 09 | 73 74 72 63 70 79 28 75 |e);.X...|strcpy(u|
|00002ab0| 2d 3e 75 74 5f 75 73 65 | 72 2c 20 22 4c 4f 47 49 |->ut_use|r, "LOGI|
|00002ac0| 4e 22 29 3b 09 2f 2a 20 | 43 68 61 6e 67 65 20 6e |N");./* |Change n|
|00002ad0| 61 6d 65 2e 2e 20 2a 2f | 0a 58 09 09 09 70 75 74 |ame.. */|.X...put|
|00002ae0| 75 74 6c 69 6e 65 28 75 | 29 3b 0a 58 09 09 7d 0a |utline(u|);.X..}.|
|00002af0| 58 09 7d 0a 58 09 65 6e | 64 75 74 65 6e 74 28 29 |X.}.X.en|dutent()|
|00002b00| 3b 0a 58 09 72 65 74 75 | 72 6e 3b 0a 58 7d 0a 58 |;.X.retu|rn;.X}.X|
|00002b10| 0a 73 65 74 6c 6f 63 6b | 65 64 28 6c 69 6e 65 29 |.setlock|ed(line)|
|00002b20| 09 09 2f 2a 20 46 61 6b | 65 20 61 20 75 74 6d 70 |../* Fak|e a utmp|
|00002b30| 20 65 6e 74 72 79 20 66 | 6f 72 20 64 69 61 6c 6f | entry f|or dialo|
|00002b40| 75 74 20 6c 69 6e 65 73 | 20 28 66 6c 61 67 67 69 |ut lines| (flaggi|
|00002b50| 6e 67 29 20 2a 2f 0a 63 | 68 61 72 09 2a 6c 69 6e |ng) */.c|har.*lin|
|00002b60| 65 3b 0a 58 7b 0a 58 09 | 69 6e 74 09 70 69 64 3b |e;.X{.X.|int.pid;|
|00002b70| 0a 58 09 73 74 72 75 63 | 74 09 75 74 6d 70 09 2a |.X.struc|t.utmp.*|
|00002b80| 75 3b 0a 58 0a 58 09 70 | 69 64 20 3d 20 67 65 74 |u;.X.X.p|id = get|
|00002b90| 70 69 64 28 29 3b 09 09 | 2f 2a 20 47 65 74 20 6f |pid();..|/* Get o|
|00002ba0| 75 72 20 70 69 64 20 2a | 2f 0a 58 09 77 68 69 6c |ur pid *|/.X.whil|
|00002bb0| 65 20 28 28 75 20 3d 20 | 67 65 74 75 74 65 6e 74 |e ((u = |getutent|
|00002bc0| 28 29 29 20 21 3d 20 4e | 55 4c 4c 29 20 7b 09 2f |()) != N|ULL) {./|
|00002bd0| 2a 20 57 68 69 6c 65 20 | 74 68 65 72 65 20 61 72 |* While |there ar|
|00002be0| 65 20 6d 6f 72 65 20 6c | 69 6e 65 73 20 2a 2f 0a |e more l|ines */.|
|00002bf0| 58 09 09 69 66 20 28 28 | 75 2d 3e 75 74 5f 74 79 |X..if ((|u->ut_ty|
|00002c00| 70 65 20 3d 3d 20 49 4e | 49 54 5f 50 52 4f 43 45 |pe == IN|IT_PROCE|
|00002c10| 53 53 29 20 26 26 20 28 | 75 2d 3e 75 74 5f 70 69 |SS) && (|u->ut_pi|
|00002c20| 64 20 3d 3d 20 70 69 64 | 29 29 20 7b 0a 58 09 09 |d == pid|)) {.X..|
|00002c30| 09 73 74 72 63 70 79 28 | 75 2d 3e 75 74 5f 6c 69 |.strcpy(|u->ut_li|
|00002c40| 6e 65 2c 20 6c 69 6e 65 | 29 3b 09 2f 2a 20 53 65 |ne, line|);./* Se|
|00002c50| 74 20 6c 69 6e 65 20 6e | 61 6d 65 20 2a 2f 0a 58 |t line n|ame */.X|
|00002c60| 09 09 09 73 74 72 6e 63 | 70 79 28 75 2d 3e 75 74 |...strnc|py(u->ut|
|00002c70| 5f 75 73 65 72 2c 20 22 | 5f 44 69 61 6c 6f 75 74 |_user, "|_Dialout|
|00002c80| 22 2c 20 38 29 3b 09 2f | 2a 20 22 55 73 65 72 22 |", 8);./|* "User"|
|00002c90| 20 2a 2f 0a 58 2f 2a 09 | 09 09 75 2d 3e 75 74 5f | */.X/*.|..u->ut_|
|00002ca0| 74 79 70 65 20 3d 20 4c | 4f 47 49 4e 5f 50 52 4f |type = L|OGIN_PRO|
|00002cb0| 43 45 53 53 3b 09 2a 2f | 2f 2a 20 49 66 20 69 6e |CESS;.*/|/* If in|
|00002cc0| 76 69 73 69 62 6c 65 20 | 2a 2f 0a 58 09 09 09 75 |visible |*/.X...u|
|00002cd0| 2d 3e 75 74 5f 74 79 70 | 65 20 3d 20 55 53 45 52 |->ut_typ|e = USER|
|00002ce0| 5f 50 52 4f 43 45 53 53 | 3b 09 2f 2a 20 49 74 27 |_PROCESS|;./* It'|
|00002cf0| 73 20 76 69 73 69 62 6c | 65 20 2a 2f 0a 58 09 09 |s visibl|e */.X..|
|00002d00| 09 70 75 74 75 74 6c 69 | 6e 65 28 75 29 3b 0a 58 |.pututli|ne(u);.X|
|00002d10| 09 09 7d 0a 58 09 7d 0a | 58 09 65 6e 64 75 74 65 |..}.X.}.|X.endute|
|00002d20| 6e 74 28 29 3b 0a 58 09 | 72 65 74 75 72 6e 3b 0a |nt();.X.|return;.|
|00002d30| 58 7d 0a 58 0a 58 2f 2a | 09 43 61 74 63 68 20 61 |X}.X.X/*|.Catch a|
|00002d40| 6c 61 72 6d 20 73 69 67 | 6e 61 6c 73 09 0a 58 09 |larm sig|nals..X.|
|00002d50| 44 6f 65 73 20 74 77 6f | 20 74 68 69 6e 67 73 20 |Does two| things |
|00002d60| 2d 2d 20 63 61 74 63 68 | 65 73 20 74 68 65 20 61 |-- catch|es the a|
|00002d70| 6c 61 72 6d 73 2c 20 61 | 6e 64 20 61 6c 73 6f 20 |larms, a|nd also |
|00002d80| 61 64 64 73 20 6f 6e 65 | 20 74 6f 20 74 68 65 0a |adds one| to the.|
|00002d90| 58 09 73 65 63 6f 6e 64 | 73 20 63 6f 75 6e 74 65 |X.second|s counte|
|00002da0| 72 2e 20 20 49 66 20 74 | 68 65 20 75 73 65 72 20 |r. If t|he user |
|00002db0| 74 61 6b 65 73 20 74 6f | 6f 20 6c 6f 6e 67 20 63 |takes to|o long c|
|00002dc0| 61 6c 6c 20 27 68 61 6e | 67 75 70 28 29 27 20 62 |all 'han|gup()' b|
|00002dd0| 65 66 6f 72 65 0a 58 09 | 72 65 74 75 72 6e 69 6e |efore.X.|returnin|
|00002de0| 67 09 09 2a 2f 0a 58 0a | 63 61 74 63 68 28 29 0a |g..*/.X.|catch().|
|00002df0| 58 7b 0a 58 09 73 69 67 | 6e 61 6c 28 53 49 47 41 |X{.X.sig|nal(SIGA|
|00002e00| 4c 52 4d 2c 20 63 61 74 | 63 68 29 3b 09 09 2f 2a |LRM, cat|ch);../*|
|00002e10| 20 52 65 2d 65 6e 61 62 | 6c 65 20 73 69 67 6e 61 | Re-enab|le signa|
|00002e20| 6c 20 63 61 74 63 68 65 | 72 20 2a 2f 0a 58 09 69 |l catche|r */.X.i|
|00002e30| 66 20 28 74 69 6d 65 6f | 75 74 2b 2b 20 3e 3d 20 |f (timeo|ut++ >= |
|00002e40| 4d 41 58 53 45 43 4f 4e | 44 53 29 0a 58 09 09 68 |MAXSECON|DS).X..h|
|00002e50| 61 6e 67 75 70 28 29 3b | 09 09 2f 2a 20 4b 69 6c |angup();|../* Kil|
|00002e60| 6c 20 74 68 65 20 75 73 | 65 72 20 69 66 20 68 65 |l the us|er if he|
|00002e70| 20 6a 75 73 74 20 73 61 | 74 20 2a 2f 0a 58 09 72 | just sa|t */.X.r|
|00002e80| 65 74 75 72 6e 3b 09 09 | 09 09 2f 2a 20 44 6f 20 |eturn;..|../* Do |
|00002e90| 6e 6f 74 68 69 6e 67 20 | 65 6c 73 65 2c 20 6a 75 |nothing |else, ju|
|00002ea0| 73 74 20 65 78 69 74 20 | 2a 2f 0a 58 7d 0a 58 0a |st exit |*/.X}.X.|
|00002eb0| 58 2f 2a 09 4d 61 6b 65 | 20 75 70 70 65 72 20 63 |X/*.Make| upper c|
|00002ec0| 61 73 65 20 69 6e 74 6f | 20 6c 6f 77 65 72 20 63 |ase into| lower c|
|00002ed0| 61 73 65 09 2a 2f 0a 58 | 0a 74 6c 63 28 70 74 72 |ase.*/.X|.tlc(ptr|
|00002ee0| 29 0a 63 68 61 72 09 2a | 70 74 72 3b 0a 58 7b 0a |).char.*|ptr;.X{.|
|00002ef0| 58 09 63 68 61 72 09 2a | 70 74 3b 0a 58 09 69 6e |X.char.*|pt;.X.in|
|00002f00| 74 20 09 71 6d 20 3d 20 | 30 3b 0a 58 0a 58 09 70 |t .qm = |0;.X.X.p|
|00002f10| 74 20 3d 20 70 74 72 3b | 0a 58 09 77 68 69 6c 65 |t = ptr;|.X.while|
|00002f20| 20 28 2a 70 74 20 21 3d | 20 30 29 20 7b 0a 58 09 | (*pt !=| 0) {.X.|
|00002f30| 09 69 66 20 28 28 2a 70 | 74 20 3e 3d 20 27 41 27 |.if ((*p|t >= 'A'|
|00002f40| 29 20 26 26 20 28 2a 70 | 74 20 3c 3d 20 27 5a 27 |) && (*p|t <= 'Z'|
|00002f50| 29 29 20 7b 0a 58 09 09 | 09 2a 70 74 20 3d 20 2a |)) {.X..|.*pt = *|
|00002f60| 70 74 20 2b 20 33 32 3b | 0a 58 09 09 09 71 6d 2b |pt + 32;|.X...qm+|
|00002f70| 2b 3b 0a 58 09 09 7d 0a | 58 09 09 70 74 2b 2b 3b |+;.X..}.|X..pt++;|
|00002f80| 0a 58 09 7d 0a 58 09 69 | 66 20 28 71 6d 29 20 0a |.X.}.X.i|f (qm) .|
|00002f90| 58 09 09 70 72 69 6e 74 | 66 28 22 25 63 5c 6e 57 |X..print|f("%c\nW|
|00002fa0| 61 72 6e 69 6e 67 3a 20 | 50 6c 65 61 73 65 20 75 |arning: |Please u|
|00002fb0| 73 65 20 2a 6c 6f 77 65 | 72 2a 20 63 61 73 65 20 |se *lowe|r* case |
|00002fc0| 6f 6e 20 74 68 69 73 20 | 73 79 73 74 65 6d 25 63 |on this |system%c|
|00002fd0| 5c 6e 22 2c 20 42 45 4c | 4c 2c 20 42 45 4c 4c 29 |\n", BEL|L, BELL)|
|00002fe0| 3b 0a 58 09 72 65 74 75 | 72 6e 3b 0a 58 7d 0a 58 |;.X.retu|rn;.X}.X|
|00002ff0| 0a 58 0a 68 61 6e 67 75 | 70 28 29 09 20 2f 2a 09 |.X.hangu|p(). /*.|
|00003000| 4d 61 6b 65 20 73 75 72 | 65 20 74 68 65 20 70 68 |Make sur|e the ph|
|00003010| 6f 6e 65 20 67 65 74 73 | 20 68 75 6e 67 20 75 70 |one gets| hung up|
|00003020| 20 77 68 65 6e 20 77 65 | 20 65 78 69 74 09 2a 2f | when we| exit.*/|
|00003030| 0a 58 7b 0a 58 09 73 74 | 72 75 63 74 09 74 65 72 |.X{.X.st|ruct.ter|
|00003040| 6d 69 6f 09 74 74 5f 61 | 72 72 61 79 3b 0a 58 09 |mio.tt_a|rray;.X.|
|00003050| 0a 58 09 69 66 20 28 6d | 61 73 63 68 61 6e 20 3c |.X.if (m|aschan <|
|00003060| 20 30 29 0a 58 09 09 65 | 78 69 74 28 31 29 3b 09 | 0).X..e|xit(1);.|
|00003070| 09 09 09 2f 2a 20 4a 75 | 73 74 20 65 78 69 74 20 |.../* Ju|st exit |
|00003080| 2a 2f 0a 58 09 69 66 20 | 28 69 6f 63 74 6c 28 6d |*/.X.if |(ioctl(m|
|00003090| 61 73 63 68 61 6e 2c 20 | 54 43 47 45 54 41 2c 20 |aschan, |TCGETA, |
|000030a0| 26 74 74 5f 61 72 72 61 | 79 29 29 20 7b 09 2f 2a |&tt_arra|y)) {./*|
|000030b0| 20 4e 6f 20 64 65 6c 61 | 79 20 2a 2f 0a 58 09 09 | No dela|y */.X..|
|000030c0| 70 65 72 72 6f 72 28 22 | 47 65 74 20 70 61 72 61 |perror("|Get para|
|000030d0| 6d 65 74 65 72 20 65 72 | 72 6f 72 22 29 3b 0a 58 |meter er|ror");.X|
|000030e0| 09 09 65 78 69 74 28 31 | 29 3b 0a 58 09 7d 0a 58 |..exit(1|);.X.}.X|
|000030f0| 09 74 74 5f 61 72 72 61 | 79 2e 63 5f 63 66 6c 61 |.tt_arra|y.c_cfla|
|00003100| 67 20 26 3d 20 7e 28 43 | 42 41 55 44 7c 43 4c 4f |g &= ~(C|BAUD|CLO|
|00003110| 43 41 4c 29 3b 09 09 2f | 2a 20 53 65 74 20 62 61 |CAL);../|* Set ba|
|00003120| 75 64 20 74 6f 20 30 20 | 2a 2f 0a 58 09 74 74 5f |ud to 0 |*/.X.tt_|
|00003130| 61 72 72 61 79 2e 63 5f | 63 66 6c 61 67 20 7c 3d |array.c_|cflag |=|
|00003140| 20 48 55 50 43 4c 7c 43 | 52 45 41 44 7c 43 53 38 | HUPCL|C|READ|CS8|
|00003150| 3b 09 09 2f 2a 20 53 65 | 74 20 68 61 6e 67 75 70 |;../* Se|t hangup|
|00003160| 20 2a 2f 0a 58 0a 58 09 | 69 66 20 28 69 6f 63 74 | */.X.X.|if (ioct|
|00003170| 6c 28 6d 61 73 63 68 61 | 6e 2c 20 54 43 53 45 54 |l(mascha|n, TCSET|
|00003180| 41 2c 20 26 74 74 5f 61 | 72 72 61 79 29 29 20 7b |A, &tt_a|rray)) {|
|00003190| 09 2f 2a 20 4e 6f 20 64 | 65 6c 61 79 20 2a 2f 0a |./* No d|elay */.|
|000031a0| 58 09 09 70 65 72 72 6f | 72 28 22 48 61 6e 67 20 |X..perro|r("Hang |
|000031b0| 75 70 20 65 72 72 6f 72 | 22 29 3b 0a 58 09 09 65 |up error|");.X..e|
|000031c0| 78 69 74 28 31 29 3b 0a | 58 09 7d 0a 58 09 65 78 |xit(1);.|X.}.X.ex|
|000031d0| 69 74 28 30 29 3b 0a 58 | 7d 0a 58 0a 58 2f 2a 09 |it(0);.X|}.X.X/*.|
|000031e0| 48 65 72 65 20 69 73 20 | 77 68 65 72 65 20 61 6c |Here is |where al|
|000031f0| 6c 20 74 68 65 20 66 75 | 6e 20 62 65 67 69 6e 73 |l the fu|n begins|
|00003200| 3b 20 74 68 65 20 6d 61 | 69 6e 20 70 72 6f 67 72 |; the ma|in progr|
|00003210| 61 6d 20 09 2a 2f 0a 58 | 0a 6d 61 69 6e 28 61 72 |am .*/.X|.main(ar|
|00003220| 67 63 2c 20 61 72 67 76 | 29 0a 69 6e 74 09 61 72 |gc, argv|).int.ar|
|00003230| 67 63 3b 0a 63 68 61 72 | 09 2a 61 72 67 76 5b 5d |gc;.char|.*argv[]|
|00003240| 3b 0a 58 7b 0a 58 09 69 | 6e 74 09 64 65 62 75 67 |;.X{.X.i|nt.debug|
|00003250| 20 3d 20 30 3b 0a 58 09 | 69 6e 74 09 78 2c 20 63 | = 0;.X.|int.x, c|
|00003260| 68 2c 20 73 77 2c 20 73 | 74 61 74 75 73 3b 0a 58 |h, sw, s|tatus;.X|
|00003270| 09 73 74 72 75 63 74 09 | 74 65 72 6d 69 6f 09 74 |.struct.|termio.t|
|00003280| 74 5f 61 72 72 61 79 3b | 0a 58 09 46 49 4c 45 09 |t_array;|.X.FILE.|
|00003290| 2a 66 69 64 2c 20 2a 66 | 69 64 32 3b 0a 58 09 73 |*fid, *f|id2;.X.s|
|000032a0| 74 61 74 69 63 09 63 68 | 61 72 09 74 6d 70 5b 31 |tatic.ch|ar.tmp[1|
|000032b0| 33 33 5d 2c 20 6c 6f 67 | 69 6e 70 5b 31 33 32 5d |33], log|inp[132]|
|000032c0| 3b 0a 58 09 65 78 74 65 | 72 6e 09 73 74 72 75 63 |;.X.exte|rn.struc|
|000032d0| 74 20 75 74 6d 70 20 2a | 67 65 74 75 74 65 6e 74 |t utmp *|getutent|
|000032e0| 28 29 2c 20 2a 70 75 74 | 75 74 6c 69 6e 65 28 29 |(), *put|utline()|
|000032f0| 3b 0a 58 09 63 68 61 72 | 09 62 61 75 64 5b 31 33 |;.X.char|.baud[13|
|00003300| 32 5d 3b 0a 58 09 63 68 | 61 72 09 63 6f 6e 6e 65 |2];.X.ch|ar.conne|
|00003310| 63 74 65 64 5b 35 31 32 | 5d 3b 0a 58 09 69 6e 74 |cted[512|];.X.int|
|00003320| 09 66 62 61 75 64 20 3d | 20 30 3b 0a 58 09 69 6e |.fbaud =| 0;.X.in|
|00003330| 74 09 73 62 61 75 64 20 | 3d 20 30 3b 0a 58 09 63 |t.sbaud |= 0;.X.c|
|00003340| 68 61 72 09 6c 69 6e 65 | 5b 38 30 5d 3b 0a 58 09 |har.line|[80];.X.|
|00003350| 73 74 72 75 63 74 09 73 | 74 61 74 09 73 74 3b 0a |struct.s|tat.st;.|
|00003360| 58 09 63 68 61 72 09 69 | 6e 69 74 5b 38 30 5d 3b |X.char.i|nit[80];|
|00003370| 0a 58 09 63 68 61 72 09 | 69 72 65 73 70 5b 38 30 |.X.char.|iresp[80|
|00003380| 5d 3b 0a 58 09 69 6e 74 | 09 69 6e 69 74 62 61 75 |];.X.int|.initbau|
|00003390| 64 3b 0a 58 09 63 68 61 | 72 09 73 70 65 65 64 5b |d;.X.cha|r.speed[|
|000033a0| 32 30 5d 3b 0a 58 09 73 | 74 72 75 63 74 09 7b 0a |20];.X.s|truct.{.|
|000033b0| 58 09 09 63 68 61 72 09 | 73 74 72 69 6e 67 5b 34 |X..char.|string[4|
|000033c0| 30 5d 3b 0a 58 09 09 69 | 6e 74 09 62 61 75 64 3b |0];.X..i|nt.baud;|
|000033d0| 0a 58 09 09 63 68 61 72 | 09 73 70 65 65 64 5b 32 |.X..char|.speed[2|
|000033e0| 30 5d 3b 0a 58 09 7d 20 | 6d 61 74 63 68 65 73 5b |0];.X.} |matches[|
|000033f0| 32 30 5d 3b 0a 58 09 63 | 68 61 72 09 2a 69 73 74 |20];.X.c|har.*ist|
|00003400| 72 69 6e 67 5b 4d 41 58 | 49 53 53 55 45 5d 3b 0a |ring[MAX|ISSUE];.|
|00003410| 58 09 69 6e 74 09 6d 63 | 6f 75 6e 74 20 3d 20 30 |X.int.mc|ount = 0|
|00003420| 3b 0a 58 09 69 6e 74 09 | 62 63 6f 75 6e 74 20 3d |;.X.int.|bcount =|
|00003430| 20 30 3b 0a 58 09 69 6e | 74 09 69 63 6f 75 6e 74 | 0;.X.in|t.icount|
|00003440| 20 3d 20 30 3b 0a 58 09 | 69 6e 74 09 6c 63 6f 75 | = 0;.X.|int.lcou|
|00003450| 6e 74 20 3d 20 30 3b 0a | 58 09 63 68 61 72 09 62 |nt = 0;.|X.char.b|
|00003460| 63 5b 32 5d 3b 0a 58 09 | 63 68 61 72 09 62 66 72 |c[2];.X.|char.bfr|
|00003470| 5b 32 30 5d 3b 0a 58 09 | 69 6e 74 09 73 61 74 69 |[20];.X.|int.sati|
|00003480| 73 66 69 65 64 20 3d 20 | 30 3b 0a 58 09 69 6e 74 |sfied = |0;.X.int|
|00003490| 09 68 6f 73 65 6c 69 6e | 65 3b 0a 58 09 69 6e 74 |.hoselin|e;.X.int|
|000034a0| 09 71 75 69 74 20 3d 20 | 30 3b 0a 58 09 69 6e 74 |.quit = |0;.X.int|
|000034b0| 09 73 74 6f 70 20 3d 20 | 30 3b 0a 58 0a 58 09 73 |.stop = |0;.X.X.s|
|000034c0| 69 67 6e 61 6c 28 53 49 | 47 41 4c 52 4d 2c 20 63 |ignal(SI|GALRM, c|
|000034d0| 61 74 63 68 29 3b 09 09 | 09 2f 2a 20 43 61 74 63 |atch);..|./* Catc|
|000034e0| 68 20 61 6c 61 72 6d 73 | 20 2a 2f 0a 58 09 73 69 |h alarms| */.X.si|
|000034f0| 67 6e 61 6c 28 53 49 47 | 49 4e 54 2c 20 53 49 47 |gnal(SIG|INT, SIG|
|00003500| 5f 49 47 4e 29 3b 09 09 | 2f 2a 20 49 67 6e 6f 72 |_IGN);..|/* Ignor|
|00003510| 65 20 69 6e 74 65 72 72 | 75 70 74 73 20 2a 2f 0a |e interr|upts */.|
|00003520| 58 09 69 66 20 28 61 72 | 67 63 20 3e 20 34 29 0a |X.if (ar|gc > 4).|
|00003530| 58 09 09 64 65 62 75 67 | 2b 2b 3b 0a 58 09 69 6e |X..debug|++;.X.in|
|00003540| 69 74 62 61 75 64 20 3d | 20 61 74 6f 69 28 61 72 |itbaud =| atoi(ar|
|00003550| 67 76 5b 32 5d 29 3b 09 | 09 2f 2a 20 49 6e 69 74 |gv[2]);.|./* Init|
|00003560| 69 61 6c 20 62 61 75 64 | 20 72 61 74 65 20 2a 2f |ial baud| rate */|
|00003570| 0a 58 09 73 74 72 63 70 | 79 28 69 6e 69 74 2c 20 |.X.strcp|y(init, |
|00003580| 22 41 54 5a 5c 72 22 29 | 3b 09 09 09 2f 2a 20 53 |"ATZ\r")|;.../* S|
|00003590| 65 6e 64 20 74 68 69 73 | 20 74 6f 20 69 6e 69 74 |end this| to init|
|000035a0| 20 2a 2f 0a 58 09 69 66 | 20 28 61 72 67 63 20 3e | */.X.if| (argc >|
|000035b0| 20 33 29 20 0a 58 09 09 | 66 69 64 20 3d 20 66 6f | 3) .X..|fid = fo|
|000035c0| 70 65 6e 28 61 72 67 76 | 5b 33 5d 2c 20 22 72 22 |pen(argv|[3], "r"|
|000035d0| 29 3b 09 2f 2a 20 54 72 | 79 20 74 6f 20 6f 70 65 |);./* Tr|y to ope|
|000035e0| 6e 20 69 74 20 2a 2f 0a | 58 09 65 6c 73 65 0a 58 |n it */.|X.else.X|
|000035f0| 09 09 66 69 64 20 3d 20 | 66 6f 70 65 6e 28 22 2f |..fid = |fopen("/|
|00003600| 65 74 63 2f 61 75 74 6f | 62 61 75 64 2e 70 61 72 |etc/auto|baud.par|
|00003610| 6d 22 2c 20 22 72 22 29 | 3b 09 2f 2a 20 54 72 79 |m", "r")|;./* Try|
|00003620| 20 74 6f 20 6f 70 65 6e | 20 69 74 20 2a 2f 0a 58 | to open| it */.X|
|00003630| 09 69 66 20 28 66 69 64 | 20 21 3d 20 28 46 49 4c |.if (fid| != (FIL|
|00003640| 45 20 2a 29 20 4e 55 4c | 4c 29 20 7b 0a 58 09 09 |E *) NUL|L) {.X..|
|00003650| 66 67 65 74 73 28 69 6e | 69 74 2c 20 38 30 2c 20 |fgets(in|it, 80, |
|00003660| 66 69 64 29 3b 09 09 2f | 2a 20 49 6e 69 74 20 73 |fid);../|* Init s|
|00003670| 74 72 69 6e 67 20 2a 2f | 0a 58 09 09 69 6e 69 74 |tring */|.X..init|
|00003680| 5b 73 74 72 6c 65 6e 28 | 69 6e 69 74 29 20 2d 20 |[strlen(|init) - |
|00003690| 31 5d 20 3d 20 27 5c 72 | 27 3b 09 2f 2a 20 4d 61 |1] = '\r|';./* Ma|
|000036a0| 6b 65 20 6c 61 73 74 20 | 61 20 72 65 74 75 72 6e |ke last |a return|
|000036b0| 20 2a 2f 0a 58 09 09 66 | 67 65 74 73 28 74 6d 70 | */.X..f|gets(tmp|
|000036c0| 2c 20 38 30 2c 20 66 69 | 64 29 3b 0a 58 09 09 73 |, 80, fi|d);.X..s|
|000036d0| 73 63 61 6e 66 28 74 6d | 70 2c 20 22 20 25 73 22 |scanf(tm|p, " %s"|
|000036e0| 2c 20 69 72 65 73 70 29 | 3b 0a 58 09 09 66 67 65 |, iresp)|;.X..fge|
|000036f0| 74 73 28 63 6f 6e 6e 65 | 63 74 65 64 2c 20 35 31 |ts(conne|cted, 51|
|00003700| 31 2c 20 66 69 64 29 3b | 09 2f 2a 20 43 6f 6e 6e |1, fid);|./* Conn|
|00003710| 65 63 74 65 64 20 73 74 | 72 69 6e 67 20 2a 2f 0a |ected st|ring */.|
|00003720| 58 09 09 73 74 6f 70 20 | 3d 20 30 3b 0a 58 09 09 |X..stop |= 0;.X..|
|00003730| 77 68 69 6c 65 20 28 28 | 21 73 74 6f 70 29 20 26 |while ((|!stop) &|
|00003740| 26 20 28 66 67 65 74 73 | 28 74 6d 70 2c 20 38 30 |& (fgets|(tmp, 80|
|00003750| 2c 20 66 69 64 29 20 21 | 3d 20 28 63 68 61 72 20 |, fid) !|= (char |
|00003760| 2a 29 20 4e 55 4c 4c 29 | 29 20 7b 0a 58 09 09 09 |*) NULL)|) {.X...|
|00003770| 69 66 20 28 28 74 6d 70 | 5b 30 5d 20 3d 3d 20 27 |if ((tmp|[0] == '|
|00003780| 23 27 29 20 26 26 20 28 | 73 74 72 6c 65 6e 28 74 |#') && (|strlen(t|
|00003790| 6d 70 29 20 3c 3d 20 32 | 29 29 20 7b 0a 58 09 09 |mp) <= 2|)) {.X..|
|000037a0| 09 09 73 74 6f 70 2b 2b | 3b 0a 58 09 09 09 09 63 |..stop++|;.X....c|
|000037b0| 6f 6e 74 69 6e 75 65 3b | 0a 58 09 09 09 7d 0a 58 |ontinue;|.X...}.X|
|000037c0| 09 09 09 73 73 63 61 6e | 66 28 74 6d 70 2c 20 22 |...sscan|f(tmp, "|
|000037d0| 25 64 20 25 5b 21 2d 7a | 5d 20 25 5b 21 2d 7a 20 |%d %[!-z|] %[!-z |
|000037e0| 5d 22 2c 20 26 6d 61 74 | 63 68 65 73 5b 6d 63 6f |]", &mat|ches[mco|
|000037f0| 75 6e 74 5d 2e 62 61 75 | 64 2c 20 6d 61 74 63 68 |unt].bau|d, match|
|00003800| 65 73 5b 6d 63 6f 75 6e | 74 5d 2e 73 70 65 65 64 |es[mcoun|t].speed|
|00003810| 2c 20 6d 61 74 63 68 65 | 73 5b 6d 63 6f 75 6e 74 |, matche|s[mcount|
|00003820| 5d 2e 73 74 72 69 6e 67 | 29 3b 0a 58 09 09 09 6d |].string|);.X...m|
|00003830| 63 6f 75 6e 74 2b 2b 3b | 0a 58 09 09 7d 0a 58 09 |count++;|.X..}.X.|
|00003840| 09 6c 63 6f 75 6e 74 20 | 3d 20 4d 41 58 49 53 53 |.lcount |= MAXISS|
|00003850| 55 45 3b 0a 58 09 09 69 | 63 6f 75 6e 74 20 3d 20 |UE;.X..i|count = |
|00003860| 30 3b 0a 58 09 09 66 67 | 65 74 73 28 6c 6f 67 69 |0;.X..fg|ets(logi|
|00003870| 6e 70 2c 20 38 30 2c 20 | 66 69 64 29 3b 09 09 09 |np, 80, |fid);...|
|00003880| 2f 2a 20 47 65 74 20 6c | 6f 67 69 6e 20 70 72 6f |/* Get l|ogin pro|
|00003890| 6d 70 74 20 2a 2f 0a 58 | 09 09 69 66 20 28 73 74 |mpt */.X|..if (st|
|000038a0| 72 6c 65 6e 28 6c 6f 67 | 69 6e 70 29 29 0a 58 09 |rlen(log|inp)).X.|
|000038b0| 09 09 6c 6f 67 69 6e 70 | 5b 73 74 72 6c 65 6e 28 |..loginp|[strlen(|
|000038c0| 6c 6f 67 69 6e 70 29 20 | 2d 20 31 5d 20 3d 20 30 |loginp) |- 1] = 0|
|000038d0| 3b 09 2f 2a 20 43 68 6f | 70 20 6f 66 66 20 4c 2f |;./* Cho|p off L/|
|000038e0| 46 20 2a 2f 0a 58 09 09 | 77 68 69 6c 65 20 28 28 |F */.X..|while ((|
|000038f0| 6c 63 6f 75 6e 74 29 20 | 26 26 20 28 66 67 65 74 |lcount) |&& (fget|
|00003900| 73 28 74 6d 70 2c 20 31 | 33 32 2c 20 66 69 64 29 |s(tmp, 1|32, fid)|
|00003910| 20 21 3d 20 28 63 68 61 | 72 20 2a 29 20 4e 55 4c | != (cha|r *) NUL|
|00003920| 4c 29 29 20 7b 09 2f 2a | 20 47 65 74 20 6c 69 6e |L)) {./*| Get lin|
|00003930| 65 20 2a 2f 0a 58 09 09 | 09 69 73 74 72 69 6e 67 |e */.X..|.istring|
|00003940| 5b 69 63 6f 75 6e 74 5d | 20 3d 20 6d 61 6c 6c 6f |[icount]| = mallo|
|00003950| 63 28 73 74 72 6c 65 6e | 28 74 6d 70 29 20 2b 20 |c(strlen|(tmp) + |
|00003960| 32 29 3b 0a 58 09 09 09 | 73 74 72 63 70 79 28 69 |2);.X...|strcpy(i|
|00003970| 73 74 72 69 6e 67 5b 69 | 63 6f 75 6e 74 2b 2b 5d |string[i|count++]|
|00003980| 2c 20 74 6d 70 29 3b 0a | 58 09 09 09 6c 63 6f 75 |, tmp);.|X...lcou|
|00003990| 6e 74 2d 2d 3b 0a 58 09 | 09 7d 0a 58 09 09 66 63 |nt--;.X.|.}.X..fc|
|000039a0| 6c 6f 73 65 28 66 69 64 | 29 3b 0a 58 09 7d 0a 58 |lose(fid|);.X.}.X|
|000039b0| 09 73 74 72 63 70 79 28 | 6c 69 6e 65 2c 20 61 72 |.strcpy(|line, ar|
|000039c0| 67 76 5b 31 5d 29 3b 09 | 09 09 2f 2a 20 4c 6f 6f |gv[1]);.|../* Loo|
|000039d0| 6b 20 6f 6e 20 74 68 69 | 73 20 6c 69 6e 65 20 2a |k on thi|s line *|
|000039e0| 2f 0a 58 09 73 65 74 6c | 6f 63 6b 65 64 28 61 72 |/.X.setl|ocked(ar|
|000039f0| 67 76 5b 31 5d 29 3b 09 | 09 09 2f 2a 20 53 65 74 |gv[1]);.|../* Set|
|00003a00| 20 70 6f 72 74 20 69 64 | 20 74 6f 20 6c 6f 63 6b | port id| to lock|
|00003a10| 65 64 20 2a 2f 0a 58 09 | 73 70 72 69 6e 74 66 28 |ed */.X.|sprintf(|
|00003a20| 74 6d 70 2c 20 22 2f 64 | 65 76 2f 25 73 22 2c 20 |tmp, "/d|ev/%s", |
|00003a30| 6c 69 6e 65 29 3b 09 09 | 2f 2a 20 43 68 65 63 6b |line);..|/* Check|
|00003a40| 20 74 68 65 20 6c 69 6e | 65 20 2a 2f 0a 58 09 69 | the lin|e */.X.i|
|00003a50| 66 20 28 21 73 74 61 74 | 28 55 55 43 49 43 4f 2c |f (!stat|(UUCICO,|
|00003a60| 20 26 73 74 29 29 20 7b | 09 09 2f 2a 20 57 68 6f | &st)) {|../* Who|
|00003a70| 20 6f 77 6e 73 20 75 75 | 63 70 3f 20 2a 2f 0a 58 | owns uu|cp? */.X|
|00003a80| 09 09 63 68 6f 77 6e 28 | 74 6d 70 2c 20 73 74 2e |..chown(|tmp, st.|
|00003a90| 73 74 5f 75 69 64 2c 20 | 73 74 2e 73 74 5f 67 69 |st_uid, |st.st_gi|
|00003aa0| 64 29 3b 2f 2a 20 53 65 | 74 20 6c 69 6e 65 20 6f |d);/* Se|t line o|
|00003ab0| 77 6e 65 72 20 26 20 67 | 72 6f 75 70 20 2a 2f 0a |wner & g|roup */.|
|00003ac0| 58 09 09 63 68 6d 6f 64 | 28 74 6d 70 2c 20 30 36 |X..chmod|(tmp, 06|
|00003ad0| 36 30 29 3b 0a 58 09 7d | 0a 58 09 63 68 65 63 6b |60);.X.}|.X.check|
|00003ae0| 6c 6f 63 6b 28 6c 69 6e | 65 2c 20 31 29 3b 09 09 |lock(lin|e, 1);..|
|00003af0| 09 2f 2a 20 57 61 69 74 | 20 66 6f 72 20 6e 6f 20 |./* Wait| for no |
|00003b00| 6c 6f 63 6b 73 20 2a 2f | 0a 58 09 73 65 74 74 6f |locks */|.X.setto|
|00003b10| 67 65 74 74 79 28 61 72 | 67 76 5b 31 5d 29 3b 09 |getty(ar|gv[1]);.|
|00003b20| 09 09 2f 2a 20 4d 61 72 | 6b 20 75 73 20 61 73 20 |../* Mar|k us as |
|00003b30| 69 6e 20 27 67 65 74 74 | 79 27 20 2a 2f 0a 58 23 |in 'gett|y' */.X#|
|00003b40| 69 66 6e 64 65 66 09 44 | 45 42 55 47 0a 58 09 63 |ifndef.D|EBUG.X.c|
|00003b50| 6c 6f 73 65 28 30 29 3b | 09 09 09 09 2f 2a 20 43 |lose(0);|..../* C|
|00003b60| 6c 6f 73 65 20 73 74 64 | 69 6e 2c 73 74 64 6f 75 |lose std|in,stdou|
|00003b70| 74 2c 73 74 64 65 72 72 | 20 2a 2f 0a 58 09 63 6c |t,stderr| */.X.cl|
|00003b80| 6f 73 65 28 31 29 3b 0a | 58 09 63 6c 6f 73 65 28 |ose(1);.|X.close(|
|00003b90| 32 29 3b 0a 58 09 28 76 | 6f 69 64 29 20 73 65 74 |2);.X.(v|oid) set|
|00003ba0| 70 67 72 70 28 29 3b 09 | 09 09 2f 2a 20 4d 61 6b |pgrp();.|../* Mak|
|00003bb0| 65 20 73 75 72 65 20 77 | 65 20 68 61 76 65 20 6f |e sure w|e have o|
|00003bc0| 75 72 20 6f 77 6e 0a 58 | 09 09 09 09 09 20 20 20 |ur own.X|..... |
|00003bd0| 09 20 20 20 63 6f 6e 74 | 72 6f 6c 20 74 65 72 6d |. cont|rol term|
|00003be0| 69 6e 61 6c 20 2a 2f 0a | 58 23 65 6e 64 69 66 0a |inal */.|X#endif.|
|00003bf0| 58 09 73 70 72 69 6e 74 | 66 28 74 6d 70 2c 20 22 |X.sprint|f(tmp, "|
|00003c00| 2f 64 65 76 2f 25 73 22 | 2c 20 61 72 67 76 5b 31 |/dev/%s"|, argv[1|
|00003c10| 5d 29 3b 0a 58 09 69 66 | 20 28 28 78 20 3d 20 6f |]);.X.if| ((x = o|
|00003c20| 70 65 6e 28 74 6d 70 2c | 20 4f 5f 52 44 57 52 7c |pen(tmp,| O_RDWR||
|00003c30| 4f 5f 4e 44 45 4c 41 59 | 29 29 20 3c 20 30 29 20 |O_NDELAY|)) < 0) |
|00003c40| 7b 2f 2a 20 42 45 43 4f | 4d 45 53 20 43 4f 4e 54 |{/* BECO|MES CONT|
|00003c50| 52 4f 4c 20 54 45 52 4d | 20 2a 2f 0a 58 09 09 65 |ROL TERM| */.X..e|
|00003c60| 78 69 74 28 31 29 3b 09 | 09 09 2f 2a 20 45 78 69 |xit(1);.|../* Exi|
|00003c70| 74 3b 20 65 72 72 6f 72 | 21 20 2a 2f 0a 58 09 7d |t; error|! */.X.}|
|00003c80| 09 09 09 09 09 2f 2a 20 | 45 6e 64 20 6f 66 20 6c |...../* |End of l|
|00003c90| 69 6e 65 2e 2e 20 2a 2f | 0a 58 09 6d 61 73 63 68 |ine.. */|.X.masch|
|00003ca0| 61 6e 20 3d 20 78 3b 09 | 09 09 09 2f 2a 20 4d 61 |an = x;.|.../* Ma|
|00003cb0| 73 74 65 72 20 49 2f 4f | 20 63 68 61 6e 6e 65 6c |ster I/O| channel|
|00003cc0| 20 2a 2f 0a 58 09 74 74 | 5f 61 72 72 61 79 2e 63 | */.X.tt|_array.c|
|00003cd0| 5f 63 66 6c 61 67 20 3d | 20 28 48 55 50 43 4c 7c |_cflag =| (HUPCL||
|00003ce0| 43 4c 4f 43 41 4c 7c 43 | 53 38 7c 43 52 45 41 44 |CLOCAL|C|S8|CREAD|
|00003cf0| 29 3b 0a 58 09 74 74 5f | 61 72 72 61 79 2e 63 5f |);.X.tt_|array.c_|
|00003d00| 63 63 5b 56 4d 49 4e 5d | 20 3d 20 31 3b 0a 58 09 |cc[VMIN]| = 1;.X.|
|00003d10| 74 74 5f 61 72 72 61 79 | 2e 63 5f 63 63 5b 56 54 |tt_array|.c_cc[VT|
|00003d20| 49 4d 45 5d 20 3d 20 31 | 3b 09 09 2f 2a 20 53 65 |IME] = 1|;../* Se|
|00003d30| 74 20 70 61 72 61 6d 65 | 74 65 72 73 20 2a 2f 0a |t parame|ters */.|
|00003d40| 58 09 69 6f 63 74 6c 28 | 6d 61 73 63 68 61 6e 2c |X.ioctl(|maschan,|
|00003d50| 20 54 43 46 4c 53 48 2c | 20 32 29 3b 09 09 2f 2a | TCFLSH,| 2);../*|
|00003d60| 20 46 6c 75 73 68 20 63 | 68 61 6e 6e 65 6c 20 2a | Flush c|hannel *|
|00003d70| 2f 0a 58 09 69 66 20 28 | 69 6f 63 74 6c 28 6d 61 |/.X.if (|ioctl(ma|
|00003d80| 73 63 68 61 6e 2c 20 54 | 43 53 45 54 41 57 2c 20 |schan, T|CSETAW, |
|00003d90| 26 74 74 5f 61 72 72 61 | 79 29 20 3d 3d 20 2d 31 |&tt_arra|y) == -1|
|00003da0| 29 20 7b 2f 2a 20 53 65 | 74 20 44 54 52 20 64 6f |) {/* Se|t DTR do|
|00003db0| 77 6e 20 2a 2f 0a 58 09 | 09 65 78 69 74 28 31 29 |wn */.X.|.exit(1)|
|00003dc0| 3b 0a 58 09 7d 0a 58 09 | 73 6c 65 65 70 28 31 29 |;.X.}.X.|sleep(1)|
|00003dd0| 3b 0a 58 09 74 74 5f 61 | 72 72 61 79 2e 63 5f 63 |;.X.tt_a|rray.c_c|
|00003de0| 66 6c 61 67 20 7c 3d 20 | 69 6e 69 74 62 61 75 64 |flag |= |initbaud|
|00003df0| 3b 09 09 2f 2a 20 53 65 | 74 20 69 6e 69 74 69 61 |;../* Se|t initia|
|00003e00| 6c 20 62 61 75 64 20 72 | 61 74 65 20 2a 2f 0a 58 |l baud r|ate */.X|
|00003e10| 09 63 68 65 63 6b 6c 6f | 63 6b 28 6c 69 6e 65 2c |.checklo|ck(line,|
|00003e20| 20 30 29 3b 09 09 09 2f | 2a 20 45 78 69 74 20 69 | 0);.../|* Exit i|
|00003e30| 66 20 6c 6f 63 6b 65 64 | 20 2a 2f 0a 58 09 69 66 |f locked| */.X.if|
|00003e40| 20 28 69 6f 63 74 6c 28 | 6d 61 73 63 68 61 6e 2c | (ioctl(|maschan,|
|00003e50| 20 54 43 53 45 54 41 57 | 2c 20 26 74 74 5f 61 72 | TCSETAW|, &tt_ar|
|00003e60| 72 61 79 29 20 3d 3d 20 | 2d 31 29 20 7b 2f 2a 20 |ray) == |-1) {/* |
|00003e70| 53 65 74 20 70 61 72 61 | 6d 65 74 65 72 73 20 2a |Set para|meters *|
|00003e80| 2f 0a 58 09 09 65 78 69 | 74 28 31 29 3b 0a 58 09 |/.X..exi|t(1);.X.|
|00003e90| 7d 0a 58 09 69 6f 63 74 | 6c 28 6d 61 73 63 68 61 |}.X.ioct|l(mascha|
|00003ea0| 6e 2c 20 54 43 46 4c 53 | 48 2c 20 32 29 3b 09 09 |n, TCFLS|H, 2);..|
|00003eb0| 2f 2a 20 46 6c 75 73 68 | 20 63 68 61 6e 6e 65 6c |/* Flush| channel|
|00003ec0| 20 2a 2f 0a 58 09 73 6c | 65 65 70 28 31 29 3b 0a | */.X.sl|eep(1);.|
|00003ed0| 58 09 69 66 20 28 28 73 | 74 61 74 75 73 20 3d 20 |X.if ((s|tatus = |
|00003ee0| 66 63 6e 74 6c 28 78 2c | 20 46 5f 47 45 54 46 4c |fcntl(x,| F_GETFL|
|00003ef0| 2c 20 30 29 29 20 21 3d | 20 2d 31 29 20 7b 0a 58 |, 0)) !=| -1) {.X|
|00003f00| 09 09 73 74 61 74 75 73 | 20 26 3d 20 28 7e 4f 5f |..status| &= (~O_|
|00003f10| 4e 44 45 4c 41 59 29 3b | 0a 58 09 09 69 66 20 28 |NDELAY);|.X..if (|
|00003f20| 66 63 6e 74 6c 28 78 2c | 20 46 5f 53 45 54 46 4c |fcntl(x,| F_SETFL|
|00003f30| 2c 20 73 74 61 74 75 73 | 29 29 20 7b 09 2f 2a 20 |, status|)) {./* |
|00003f40| 43 6c 65 61 72 20 4f 5f | 4e 44 45 4c 41 59 20 2a |Clear O_|NDELAY *|
|00003f50| 2f 0a 58 09 09 09 65 78 | 69 74 28 30 29 3b 0a 58 |/.X...ex|it(0);.X|
|00003f60| 09 09 7d 0a 58 09 7d 0a | 58 09 73 74 61 74 75 73 |..}.X.}.|X.status|
|00003f70| 20 3d 20 66 63 6e 74 6c | 28 6d 61 73 63 68 61 6e | = fcntl|(maschan|
|00003f80| 2c 20 46 5f 47 45 54 46 | 4c 2c 20 30 29 3b 09 2f |, F_GETF|L, 0);./|
|00003f90| 2a 20 52 65 61 64 20 69 | 74 20 61 67 61 69 6e 20 |* Read i|t again |
|00003fa0| 74 6f 20 62 65 20 73 75 | 72 65 20 2a 2f 0a 58 09 |to be su|re */.X.|
|00003fb0| 73 6c 65 65 70 28 31 29 | 3b 09 09 09 09 2f 2a 20 |sleep(1)|;..../* |
|00003fc0| 41 6c 6c 6f 77 20 6d 6f | 64 65 6d 20 74 6f 20 73 |Allow mo|dem to s|
|00003fd0| 65 74 74 6c 65 20 2a 2f | 0a 58 09 63 68 65 63 6b |ettle */|.X.check|
|00003fe0| 6c 6f 63 6b 28 6c 69 6e | 65 2c 20 30 29 3b 09 09 |lock(lin|e, 0);..|
|00003ff0| 09 2f 2a 20 45 78 69 74 | 20 69 66 20 6c 6f 63 6b |./* Exit| if lock|
|00004000| 65 64 20 2a 2f 0a 58 09 | 74 69 6d 65 6f 75 74 20 |ed */.X.|timeout |
|00004010| 3d 20 30 3b 09 09 09 09 | 2f 2a 20 4e 6f 20 74 69 |= 0;....|/* No ti|
|00004020| 6d 65 6f 75 74 20 79 65 | 74 20 2a 2f 0a 58 09 73 |meout ye|t */.X.s|
|00004030| 6c 6f 77 77 72 69 74 65 | 28 6d 61 73 63 68 61 6e |lowwrite|(maschan|
|00004040| 2c 20 69 6e 69 74 2c 20 | 73 74 72 6c 65 6e 28 69 |, init, |strlen(i|
|00004050| 6e 69 74 29 29 3b 2f 2a | 20 57 72 69 74 65 20 69 |nit));/*| Write i|
|00004060| 6e 69 74 69 61 6c 69 7a | 61 74 69 6f 6e 20 2a 2f |nitializ|ation */|
|00004070| 0a 58 09 69 66 20 28 64 | 65 62 75 67 29 0a 58 09 |.X.if (d|ebug).X.|
|00004080| 09 66 70 72 69 6e 74 66 | 28 66 65 72 72 2c 20 22 |.fprintf|(ferr, "|
|00004090| 25 78 5c 6e 22 2c 20 73 | 74 61 74 75 73 29 3b 0a |%x\n", s|tatus);.|
|000040a0| 58 09 73 69 67 6e 61 6c | 28 53 49 47 41 4c 52 4d |X.signal|(SIGALRM|
|000040b0| 2c 20 68 61 6e 67 75 70 | 29 3b 09 09 2f 2a 20 51 |, hangup|);../* Q|
|000040c0| 75 69 74 20 6f 6e 20 74 | 69 6d 65 6f 75 74 20 2a |uit on t|imeout *|
|000040d0| 2f 0a 58 09 62 63 6f 75 | 6e 74 20 3d 20 30 3b 0a |/.X.bcou|nt = 0;.|
|000040e0| 58 09 61 6c 61 72 6d 28 | 35 29 3b 09 09 09 09 2f |X.alarm(|5);..../|
|000040f0| 2a 20 57 61 69 74 20 35 | 20 73 65 63 6f 6e 64 73 |* Wait 5| seconds|
|00004100| 20 74 6f 70 73 20 2a 2f | 0a 58 09 77 68 69 6c 65 | tops */|.X.while|
|00004110| 20 28 21 71 75 69 74 29 | 20 7b 09 09 09 09 2f 2a | (!quit)| {..../*|
|00004120| 20 43 68 65 63 6b 20 72 | 65 74 75 72 6e 20 66 72 | Check r|eturn fr|
|00004130| 6f 6d 20 69 6e 69 74 20 | 2a 2f 0a 58 09 09 69 66 |om init |*/.X..if|
|00004140| 20 28 21 72 65 61 64 28 | 6d 61 73 63 68 61 6e 2c | (!read(|maschan,|
|00004150| 20 62 63 2c 20 31 29 29 | 20 7b 09 2f 2a 20 4c 6f | bc, 1))| {./* Lo|
|00004160| 6f 6b 20 66 6f 72 20 61 | 20 63 68 61 72 61 63 74 |ok for a| charact|
|00004170| 65 72 20 2a 2f 0a 58 09 | 09 09 73 6c 65 65 70 28 |er */.X.|..sleep(|
|00004180| 31 29 3b 0a 58 09 09 09 | 63 6f 6e 74 69 6e 75 65 |1);.X...|continue|
|00004190| 3b 0a 58 09 09 7d 0a 58 | 09 09 69 66 20 28 64 65 |;.X..}.X|..if (de|
|000041a0| 62 75 67 29 0a 58 09 09 | 09 66 70 72 69 6e 74 66 |bug).X..|.fprintf|
|000041b0| 28 66 65 72 72 2c 20 22 | 20 25 64 5c 6e 22 2c 20 |(ferr, "| %d\n", |
|000041c0| 62 63 5b 30 5d 29 3b 0a | 58 09 09 69 66 20 28 28 |bc[0]);.|X..if ((|
|000041d0| 62 63 5b 30 5d 20 3d 3d | 20 31 30 29 20 7c 7c 20 |bc[0] ==| 10) || |
|000041e0| 28 62 63 5b 30 5d 20 3d | 3d 20 31 33 29 29 20 7b |(bc[0] =|= 13)) {|
|000041f0| 0a 58 09 09 09 69 66 20 | 28 73 74 72 63 6d 70 28 |.X...if |(strcmp(|
|00004200| 62 66 72 2c 20 69 72 65 | 73 70 29 29 20 7b 2f 2a |bfr, ire|sp)) {/*|
|00004210| 20 49 66 20 6e 6f 74 20 | 63 6f 72 72 65 63 74 20 | If not |correct |
|00004220| 72 65 73 70 6f 6e 73 65 | 20 2a 2f 0a 58 09 09 09 |response| */.X...|
|00004230| 09 62 63 6f 75 6e 74 20 | 3d 20 30 3b 09 2f 2a 20 |.bcount |= 0;./* |
|00004240| 54 68 65 6e 20 64 72 6f | 70 20 69 74 20 2a 2f 0a |Then dro|p it */.|
|00004250| 58 09 09 09 09 63 6f 6e | 74 69 6e 75 65 3b 09 2f |X....con|tinue;./|
|00004260| 2a 20 4b 65 65 70 20 6c | 6f 6f 6b 69 6e 67 20 2a |* Keep l|ooking *|
|00004270| 2f 0a 58 09 09 09 7d 20 | 65 6c 73 65 20 7b 0a 58 |/.X...} |else {.X|
|00004280| 09 09 09 09 71 75 69 74 | 2b 2b 3b 09 09 2f 2a 20 |....quit|++;../* |
|00004290| 45 6c 73 65 20 64 6f 6e | 65 20 2a 2f 0a 58 09 09 |Else don|e */.X..|
|000042a0| 09 7d 0a 58 09 09 7d 20 | 65 6c 73 65 20 7b 0a 58 |.}.X..} |else {.X|
|000042b0| 09 09 09 62 66 72 5b 62 | 63 6f 75 6e 74 2b 2b 5d |...bfr[b|count++]|
|000042c0| 20 3d 20 62 63 5b 30 5d | 3b 09 2f 2a 20 53 61 76 | = bc[0]|;./* Sav|
|000042d0| 65 20 63 68 61 72 61 63 | 74 65 72 20 2a 2f 0a 58 |e charac|ter */.X|
|000042e0| 09 09 09 62 66 72 5b 62 | 63 6f 75 6e 74 5d 20 3d |...bfr[b|count] =|
|000042f0| 20 30 3b 09 2f 2a 20 4e | 75 6c 6c 20 74 65 72 6d | 0;./* N|ull term|
|00004300| 69 6e 61 74 65 20 2a 2f | 0a 58 09 09 7d 0a 58 09 |inate */|.X..}.X.|
|00004310| 7d 0a 58 09 64 75 70 28 | 6d 61 73 63 68 61 6e 29 |}.X.dup(|maschan)|
|00004320| 3b 0a 58 09 64 75 70 28 | 6d 61 73 63 68 61 6e 29 |;.X.dup(|maschan)|
|00004330| 3b 09 0a 58 09 69 6f 63 | 74 6c 28 6d 61 73 63 68 |;..X.ioc|tl(masch|
|00004340| 61 6e 2c 20 54 43 46 4c | 53 48 2c 20 32 29 3b 0a |an, TCFL|SH, 2);.|
|00004350| 58 09 69 6f 63 74 6c 28 | 28 6d 61 73 63 68 61 6e |X.ioctl(|(maschan|
|00004360| 20 2b 20 31 29 2c 20 54 | 43 46 4c 53 48 2c 20 32 | + 1), T|CFLSH, 2|
|00004370| 29 3b 0a 58 09 69 6f 63 | 74 6c 28 28 6d 61 73 63 |);.X.ioc|tl((masc|
|00004380| 68 61 6e 20 2b 20 32 29 | 2c 20 54 43 46 4c 53 48 |han + 2)|, TCFLSH|
|00004390| 2c 20 32 29 3b 0a 58 09 | 66 65 72 72 20 3d 20 66 |, 2);.X.|ferr = f|
|000043a0| 6f 70 65 6e 28 22 2f 64 | 65 76 2f 63 6f 6e 73 6f |open("/d|ev/conso|
|000043b0| 6c 65 22 2c 20 22 77 22 | 29 3b 09 2f 2a 20 57 72 |le", "w"|);./* Wr|
|000043c0| 69 74 65 20 74 6f 20 63 | 6f 6e 73 6f 6c 65 20 66 |ite to c|onsole f|
|000043d0| 6f 72 20 65 72 72 73 20 | 2a 2f 0a 58 09 61 6c 61 |or errs |*/.X.ala|
|000043e0| 72 6d 28 30 29 3b 09 09 | 09 09 2f 2a 20 54 75 72 |rm(0);..|../* Tur|
|000043f0| 6e 20 6f 66 66 20 74 69 | 6d 65 6f 75 74 20 2a 2f |n off ti|meout */|
|00004400| 0a 58 09 73 74 72 63 70 | 79 28 6c 69 6e 65 2c 20 |.X.strcp|y(line, |
|00004410| 61 72 67 76 5b 31 5d 29 | 3b 09 09 09 2f 2a 20 4c |argv[1])|;.../* L|
|00004420| 6f 6f 6b 20 6f 6e 20 74 | 68 69 73 20 6c 69 6e 65 |ook on t|his line|
|00004430| 20 2a 2f 0a 58 09 69 66 | 20 28 63 68 65 63 6b 6c | */.X.if| (checkl|
|00004440| 6f 63 6b 28 6c 69 6e 65 | 2c 20 30 29 29 09 09 09 |ock(line|, 0))...|
|00004450| 2f 2a 20 43 68 65 63 6b | 20 6c 6f 63 6b 20 73 74 |/* Check| lock st|
|00004460| 61 74 75 73 20 61 67 61 | 69 6e 20 2a 2f 0a 58 09 |atus aga|in */.X.|
|00004470| 09 65 78 69 74 28 30 29 | 3b 09 09 09 2f 2a 20 45 |.exit(0)|;.../* E|
|00004480| 78 69 74 20 69 66 20 6c | 69 6e 65 20 69 73 20 6c |xit if l|ine is l|
|00004490| 6f 63 6b 65 64 20 2a 2f | 0a 58 09 73 61 74 69 73 |ocked */|.X.satis|
|000044a0| 66 69 65 64 20 3d 20 30 | 3b 0a 58 09 62 63 6f 75 |fied = 0|;.X.bcou|
|000044b0| 6e 74 20 3d 20 30 3b 09 | 09 09 09 2f 2a 20 4e 6f |nt = 0;.|.../* No|
|000044c0| 74 68 69 6e 67 20 69 6e | 20 62 75 66 66 65 72 20 |thing in| buffer |
|000044d0| 2a 2f 0a 58 09 73 69 67 | 6e 61 6c 28 53 49 47 41 |*/.X.sig|nal(SIGA|
|000044e0| 4c 52 4d 2c 20 68 61 6e | 67 75 70 29 3b 0a 58 09 |LRM, han|gup);.X.|
|000044f0| 61 6c 61 72 6d 28 31 38 | 30 30 29 3b 09 09 09 09 |alarm(18|00);....|
|00004500| 2f 2a 20 33 30 20 6d 69 | 6e 75 74 65 73 20 69 64 |/* 30 mi|nutes id|
|00004510| 6c 65 20 74 69 6d 65 20 | 2a 2f 0a 58 09 77 68 69 |le time |*/.X.whi|
|00004520| 6c 65 20 28 21 73 61 74 | 69 73 66 69 65 64 29 20 |le (!sat|isfied) |
|00004530| 7b 09 09 09 2f 2a 20 52 | 65 61 64 20 72 65 73 75 |{.../* R|ead resu|
|00004540| 6c 74 20 63 6f 64 65 73 | 20 2a 2f 0a 58 09 09 69 |lt codes| */.X..i|
|00004550| 66 20 28 21 72 65 61 64 | 28 6d 61 73 63 68 61 6e |f (!read|(maschan|
|00004560| 2c 20 62 63 2c 20 31 29 | 29 20 7b 09 2f 2a 20 4c |, bc, 1)|) {./* L|
|00004570| 6f 6f 6b 20 66 6f 72 20 | 61 20 63 68 61 72 61 63 |ook for |a charac|
|00004580| 74 65 72 20 2a 2f 0a 58 | 09 09 09 73 6c 65 65 70 |ter */.X|...sleep|
|00004590| 28 32 29 3b 0a 58 09 09 | 09 63 6f 6e 74 69 6e 75 |(2);.X..|.continu|
|000045a0| 65 3b 0a 58 09 09 7d 0a | 58 09 09 69 66 20 28 63 |e;.X..}.|X..if (c|
|000045b0| 68 65 63 6b 6c 6f 63 6b | 28 6c 69 6e 65 2c 20 30 |hecklock|(line, 0|
|000045c0| 29 29 09 09 2f 2a 20 4c | 6f 63 6b 65 64 20 62 79 |))../* L|ocked by|
|000045d0| 20 73 6f 6d 65 6f 6e 65 | 20 65 6c 73 65 3f 20 2a | someone| else? *|
|000045e0| 2f 0a 58 09 09 09 65 78 | 69 74 28 30 29 3b 09 09 |/.X...ex|it(0);..|
|000045f0| 2f 2a 20 51 75 69 74 20 | 69 66 20 73 6f 20 2a 2f |/* Quit |if so */|
|00004600| 0a 58 09 09 69 66 20 28 | 28 62 63 5b 30 5d 20 3d |.X..if (|(bc[0] =|
|00004610| 3d 20 31 30 29 20 7c 7c | 20 28 62 63 5b 30 5d 20 |= 10) ||| (bc[0] |
|00004620| 3d 3d 20 31 33 29 29 20 | 7b 09 2f 2a 20 4e 65 77 |== 13)) |{./* New|
|00004630| 20 6c 69 6e 65 3f 20 2a | 2f 0a 58 09 09 09 73 61 | line? *|/.X...sa|
|00004640| 74 69 73 66 69 65 64 20 | 3d 20 63 68 65 63 6b 6d |tisfied |= checkm|
|00004650| 61 74 63 68 28 6d 61 74 | 63 68 65 73 2c 20 6d 63 |atch(mat|ches, mc|
|00004660| 6f 75 6e 74 2c 20 62 66 | 72 2c 20 73 70 65 65 64 |ount, bf|r, speed|
|00004670| 29 3b 0a 58 09 09 09 69 | 66 20 28 21 73 61 74 69 |);.X...i|f (!sati|
|00004680| 73 66 69 65 64 29 20 7b | 0a 58 09 09 09 09 62 63 |sfied) {|.X....bc|
|00004690| 6f 75 6e 74 20 3d 20 30 | 3b 0a 58 09 09 09 7d 0a |ount = 0|;.X...}.|
|000046a0| 58 09 09 7d 20 65 6c 73 | 65 20 7b 0a 58 09 09 09 |X..} els|e {.X...|
|000046b0| 62 66 72 5b 62 63 6f 75 | 6e 74 2b 2b 5d 20 3d 20 |bfr[bcou|nt++] = |
|000046c0| 62 63 5b 30 5d 3b 09 09 | 2f 2a 20 53 74 6f 72 65 |bc[0];..|/* Store|
|000046d0| 20 63 68 61 72 61 63 74 | 65 72 20 2a 2f 0a 58 09 | charact|er */.X.|
|000046e0| 09 09 62 66 72 5b 62 63 | 6f 75 6e 74 5d 20 3d 20 |..bfr[bc|ount] = |
|000046f0| 30 3b 09 09 2f 2a 20 4e | 75 6c 6c 20 74 65 72 6d |0;../* N|ull term|
|00004700| 69 6e 61 74 65 20 2a 2f | 0a 58 09 09 7d 0a 58 09 |inate */|.X..}.X.|
|00004710| 7d 0a 58 09 61 6c 61 72 | 6d 28 30 29 3b 0a 58 09 |}.X.alar|m(0);.X.|
|00004720| 69 66 20 28 6d 61 6b 65 | 6c 6f 63 6b 28 6c 69 6e |if (make|lock(lin|
|00004730| 65 29 29 20 7b 09 09 09 | 2f 2a 20 54 68 69 73 20 |e)) {...|/* This |
|00004740| 69 73 20 56 45 52 59 20 | 62 61 64 21 20 2a 2f 0a |is VERY |bad! */.|
|00004750| 58 09 09 65 78 69 74 28 | 30 29 3b 09 09 09 2f 2a |X..exit(|0);.../*|
|00004760| 20 51 75 69 74 20 72 69 | 67 68 74 20 6e 6f 77 21 | Quit ri|ght now!|
|00004770| 20 2a 2f 0a 58 09 7d 0a | 58 09 69 6f 63 74 6c 28 | */.X.}.|X.ioctl(|
|00004780| 6d 61 73 63 68 61 6e 2c | 20 54 43 47 45 54 41 2c |maschan,| TCGETA,|
|00004790| 20 26 74 74 5f 61 72 72 | 61 79 29 3b 0a 58 09 74 | &tt_arr|ay);.X.t|
|000047a0| 74 5f 61 72 72 61 79 2e | 63 5f 63 66 6c 61 67 20 |t_array.|c_cflag |
|000047b0| 26 3d 20 28 7e 43 42 41 | 55 44 29 3b 09 2f 2a 20 |&= (~CBA|UD);./* |
|000047c0| 43 6c 65 61 72 20 62 61 | 75 64 20 72 61 74 65 20 |Clear ba|ud rate |
|000047d0| 62 69 74 73 20 2a 2f 0a | 58 09 74 74 5f 61 72 72 |bits */.|X.tt_arr|
|000047e0| 61 79 2e 63 5f 63 66 6c | 61 67 20 7c 3d 20 73 61 |ay.c_cfl|ag |= sa|
|000047f0| 74 69 73 66 69 65 64 3b | 09 2f 2a 20 53 65 74 20 |tisfied;|./* Set |
|00004800| 6e 65 77 20 62 61 75 64 | 20 72 61 74 65 20 2a 2f |new baud| rate */|
|00004810| 0a 58 09 69 6f 63 74 6c | 28 6d 61 73 63 68 61 6e |.X.ioctl|(maschan|
|00004820| 2c 20 54 43 53 45 54 41 | 57 2c 20 26 74 74 5f 61 |, TCSETA|W, &tt_a|
|00004830| 72 72 61 79 29 3b 0a 58 | 09 73 70 72 69 6e 74 66 |rray);.X|.sprintf|
|00004840| 28 62 61 75 64 2c 20 22 | 25 73 20 40 20 25 73 20 |(baud, "|%s @ %s |
|00004850| 62 70 73 22 2c 20 6c 69 | 6e 65 2c 20 73 70 65 65 |bps", li|ne, spee|
|00004860| 64 29 3b 0a 58 09 66 69 | 64 32 20 3d 20 66 64 6f |d);.X.fi|d2 = fdo|
|00004870| 70 65 6e 28 6d 61 73 63 | 68 61 6e 2c 20 22 61 2b |pen(masc|han, "a+|
|00004880| 22 29 3b 09 2f 2a 20 47 | 69 76 65 20 75 73 20 61 |");./* G|ive us a|
|00004890| 20 73 74 72 65 61 6d 20 | 63 68 61 6e 6e 65 6c 20 | stream |channel |
|000048a0| 70 6c 65 61 73 65 20 2a | 2f 0a 58 09 69 6f 63 74 |please *|/.X.ioct|
|000048b0| 6c 28 6d 61 73 63 68 61 | 6e 2c 20 54 43 46 4c 53 |l(mascha|n, TCFLS|
|000048c0| 48 2c 20 32 29 3b 09 2f | 2a 20 46 6c 75 73 68 20 |H, 2);./|* Flush |
|000048d0| 69 6e 70 75 74 20 26 20 | 6f 75 74 70 75 74 20 2a |input & |output *|
|000048e0| 2f 0a 58 09 73 6c 65 65 | 70 28 31 29 3b 09 09 09 |/.X.slee|p(1);...|
|000048f0| 2f 2a 20 57 61 69 74 20 | 61 20 73 65 63 6f 6e 64 |/* Wait |a second|
|00004900| 20 66 6f 72 20 73 65 74 | 74 6c 69 6e 67 2e 2e 2e | for set|tling...|
|00004910| 20 2a 2f 0a 58 09 66 70 | 72 69 6e 74 66 28 66 69 | */.X.fp|rintf(fi|
|00004920| 64 32 2c 20 22 25 73 5c | 72 5c 6e 22 2c 20 63 6f |d2, "%s\|r\n", co|
|00004930| 6e 6e 65 63 74 65 64 29 | 3b 0a 58 09 66 66 6c 75 |nnected)|;.X.fflu|
|00004940| 73 68 28 66 69 64 32 29 | 3b 0a 58 09 73 69 67 6e |sh(fid2)|;.X.sign|
|00004950| 61 6c 28 53 49 47 41 4c | 52 4d 2c 20 63 61 74 63 |al(SIGAL|RM, catc|
|00004960| 68 29 3b 0a 58 09 74 69 | 6d 65 6f 75 74 20 3d 20 |h);.X.ti|meout = |
|00004970| 30 3b 0a 58 09 61 6c 61 | 72 6d 28 31 30 29 3b 0a |0;.X.ala|rm(10);.|
|00004980| 58 09 69 66 20 28 72 65 | 61 64 28 6d 61 73 63 68 |X.if (re|ad(masch|
|00004990| 61 6e 2c 20 62 63 2c 20 | 31 29 20 3e 20 30 29 20 |an, bc, |1) > 0) |
|000049a0| 7b 0a 58 09 09 73 77 69 | 74 63 68 28 62 63 5b 30 |{.X..swi|tch(bc[0|
|000049b0| 5d 29 20 7b 0a 58 09 09 | 09 63 61 73 65 20 31 33 |]) {.X..|.case 13|
|000049c0| 3a 0a 58 09 09 09 63 61 | 73 65 20 31 30 3a 0a 58 |:.X...ca|se 10:.X|
|000049d0| 09 09 09 09 73 74 72 63 | 61 74 28 62 61 75 64 2c |....strc|at(baud,|
|000049e0| 20 22 2c 20 38 2f 4e 2f | 31 22 29 3b 0a 58 09 09 | ", 8/N/|1");.X..|
|000049f0| 09 09 67 6f 74 6f 20 61 | 65 78 69 74 3b 09 09 2f |..goto a|exit;../|
|00004a00| 2a 20 44 6f 20 6e 6f 74 | 68 69 6e 67 20 2a 2f 0a |* Do not|hing */.|
|00004a10| 58 09 09 09 09 62 72 65 | 61 6b 3b 0a 58 09 09 09 |X....bre|ak;.X...|
|00004a20| 63 61 73 65 20 2d 31 31 | 35 3a 09 09 2f 2a 20 49 |case -11|5:../* I|
|00004a30| 66 20 73 69 67 6e 65 64 | 2e 2e 2e 20 2a 2f 0a 58 |f signed|... */.X|
|00004a40| 09 09 09 63 61 73 65 20 | 31 34 31 3a 09 09 2f 2a |...case |141:../*|
|00004a50| 20 37 2f 45 2f 31 2c 20 | 62 75 74 20 6f 74 68 65 | 7/E/1, |but othe|
|00004a60| 72 77 69 73 65 20 6f 6b | 20 2a 2f 0a 58 09 09 09 |rwise ok| */.X...|
|00004a70| 09 74 74 5f 61 72 72 61 | 79 2e 63 5f 63 66 6c 61 |.tt_arra|y.c_cfla|
|00004a80| 67 20 26 3d 20 28 7e 43 | 53 38 29 3b 0a 58 09 09 |g &= (~C|S8);.X..|
|00004a90| 09 09 74 74 5f 61 72 72 | 61 79 2e 63 5f 63 66 6c |..tt_arr|ay.c_cfl|
|00004aa0| 61 67 20 7c 3d 20 28 43 | 53 37 7c 50 41 52 45 4e |ag |= (C|S7|PAREN|
|00004ab0| 42 29 3b 0a 58 09 09 09 | 09 69 6f 63 74 6c 28 6d |B);.X...|.ioctl(m|
|00004ac0| 61 73 63 68 61 6e 2c 20 | 54 43 53 45 54 41 57 2c |aschan, |TCSETAW,|
|00004ad0| 20 26 74 74 5f 61 72 72 | 61 79 29 3b 0a 58 09 09 | &tt_arr|ay);.X..|
|00004ae0| 09 09 69 6f 63 74 6c 28 | 28 6d 61 73 63 68 61 6e |..ioctl(|(maschan|
|00004af0| 20 2b 20 31 29 2c 20 54 | 43 53 45 54 41 57 2c 20 | + 1), T|CSETAW, |
|00004b00| 26 74 74 5f 61 72 72 61 | 79 29 3b 0a 58 09 09 09 |&tt_arra|y);.X...|
|00004b10| 09 69 6f 63 74 6c 28 28 | 6d 61 73 63 68 61 6e 20 |.ioctl((|maschan |
|00004b20| 2b 20 32 29 2c 20 54 43 | 53 45 54 41 57 2c 20 26 |+ 2), TC|SETAW, &|
|00004b30| 74 74 5f 61 72 72 61 79 | 29 3b 0a 58 09 09 09 09 |tt_array|);.X....|
|00004b40| 73 74 72 63 61 74 28 62 | 61 75 64 2c 20 22 2c 20 |strcat(b|aud, ", |
|00004b50| 37 2f 45 2f 31 22 29 3b | 0a 58 09 09 09 09 67 6f |7/E/1");|.X....go|
|00004b60| 74 6f 20 61 65 78 69 74 | 3b 0a 58 09 09 09 09 62 |to aexit|;.X....b|
|00004b70| 72 65 61 6b 3b 0a 58 09 | 09 09 64 65 66 61 75 6c |reak;.X.|..defaul|
|00004b80| 74 3a 0a 58 09 09 09 09 | 62 72 65 61 6b 3b 0a 58 |t:.X....|break;.X|
|00004b90| 09 09 7d 0a 58 09 7d 0a | 61 65 78 69 74 3a 3b 0a |..}.X.}.|aexit:;.|
|00004ba0| 58 09 74 74 5f 61 72 72 | 61 79 2e 63 5f 63 66 6c |X.tt_arr|ay.c_cfl|
|00004bb0| 61 67 20 26 3d 20 28 7e | 28 43 42 41 55 44 7c 43 |ag &= (~|(CBAUD|C|
|00004bc0| 4c 4f 43 41 4c 29 29 3b | 0a 58 09 74 74 5f 61 72 |LOCAL));|.X.tt_ar|
|00004bd0| 72 61 79 2e 63 5f 63 66 | 6c 61 67 20 7c 3d 20 28 |ray.c_cf|lag |= (|
|00004be0| 73 61 74 69 73 66 69 65 | 64 7c 48 55 50 43 4c 29 |satisfie|d|HUPCL)|
|00004bf0| 3b 09 2f 2a 20 4e 65 77 | 20 62 61 75 64 20 72 61 |;./* New| baud ra|
|00004c00| 74 65 20 2a 2f 0a 58 09 | 74 74 5f 61 72 72 61 79 |te */.X.|tt_array|
|00004c10| 2e 63 5f 6f 66 6c 61 67 | 20 7c 3d 20 4f 50 4f 53 |.c_oflag| |= OPOS|
|00004c20| 54 7c 4f 4e 4c 43 52 3b | 0a 58 0a 58 2f 2a 09 49 |T|ONLCR;|.X.X/*.I|
|00004c30| 66 20 61 76 61 69 6c 61 | 62 6c 65 2c 20 65 6e 61 |f availa|ble, ena|
|00004c40| 62 6c 65 20 43 54 53 20 | 66 6c 6f 77 20 63 6f 6e |ble CTS |flow con|
|00004c50| 74 72 6f 6c 2e 20 20 54 | 68 69 73 20 69 73 20 6e |trol. T|his is n|
|00004c60| 65 63 65 73 73 61 72 79 | 20 66 6f 72 0a 58 09 54 |ecessary| for.X.T|
|00004c70| 65 6c 65 62 69 74 20 54 | 72 61 69 6c 62 6c 61 7a |elebit T|railblaz|
|00004c80| 65 72 73 20 61 6e 64 20 | 6f 74 68 65 72 73 20 6f |ers and |others o|
|00004c90| 66 20 74 68 65 20 67 65 | 6e 65 72 61 6c 20 74 79 |f the ge|neral ty|
|00004ca0| 70 65 2e 20 20 55 6e 66 | 6f 72 74 75 6e 61 74 65 |pe. Unf|ortunate|
|00004cb0| 6c 79 2c 0a 58 09 6f 6e | 6c 79 20 53 43 4f 20 68 |ly,.X.on|ly SCO h|
|00004cc0| 61 73 20 74 68 65 73 65 | 20 74 68 69 6e 67 73 2e |as these| things.|
|00004cd0| 2e 2e 20 28 67 72 72 29 | 20 20 0a 58 2a 2f 0a 58 |.. (grr)| .X*/.X|
|00004ce0| 0a 58 23 69 66 64 65 66 | 09 48 41 52 44 57 41 52 |.X#ifdef|.HARDWAR|
|00004cf0| 45 5f 46 4c 4f 57 0a 58 | 09 74 74 5f 61 72 72 61 |E_FLOW.X|.tt_arra|
|00004d00| 79 2e 63 5f 69 66 6c 61 | 67 20 7c 3d 20 42 52 4b |y.c_ifla|g |= BRK|
|00004d10| 49 4e 54 7c 49 47 4e 50 | 41 52 7c 49 4e 50 43 4b |INT|IGNP|AR|INPCK|
|00004d20| 7c 49 43 52 4e 4c 3b 0a | 58 09 74 74 5f 61 72 72 ||ICRNL;.|X.tt_arr|
|00004d30| 61 79 2e 63 5f 63 66 6c | 61 67 20 7c 3d 20 48 55 |ay.c_cfl|ag |= HU|
|00004d40| 50 43 4c 7c 43 54 53 46 | 4c 4f 57 7c 52 54 53 46 |PCL|CTSF|LOW|RTSF|
|00004d50| 4c 4f 57 3b 0a 58 23 65 | 6c 73 65 0a 58 09 74 74 |LOW;.X#e|lse.X.tt|
|00004d60| 5f 61 72 72 61 79 2e 63 | 5f 69 66 6c 61 67 20 7c |_array.c|_iflag ||
|00004d70| 3d 20 42 52 4b 49 4e 54 | 7c 49 47 4e 50 41 52 7c |= BRKINT||IGNPAR||
|00004d80| 49 4e 50 43 4b 7c 49 43 | 52 4e 4c 7c 49 58 4f 4e |INPCK|IC|RNL|IXON|
|00004d90| 7c 49 58 41 4e 59 3b 0a | 58 09 74 74 5f 61 72 72 ||IXANY;.|X.tt_arr|
|00004da0| 61 79 2e 63 5f 63 66 6c | 61 67 20 7c 3d 20 48 55 |ay.c_cfl|ag |= HU|
|00004db0| 50 43 4c 3b 0a 58 23 65 | 6e 64 69 66 0a 58 09 74 |PCL;.X#e|ndif.X.t|
|00004dc0| 74 5f 61 72 72 61 79 2e | 63 5f 6c 66 6c 61 67 20 |t_array.|c_lflag |
|00004dd0| 7c 3d 20 49 53 49 47 7c | 49 43 41 4e 4f 4e 7c 45 ||= ISIG||ICANON|E|
|00004de0| 43 48 4f 7c 45 43 48 4f | 45 7c 45 43 48 4f 4b 3b |CHO|ECHO|E|ECHOK;|
|00004df0| 0a 58 09 74 74 5f 61 72 | 72 61 79 2e 63 5f 63 63 |.X.tt_ar|ray.c_cc|
|00004e00| 5b 56 49 4e 54 52 5d 20 | 3d 20 31 37 37 3b 0a 58 |[VINTR] |= 177;.X|
|00004e10| 09 74 74 5f 61 72 72 61 | 79 2e 63 5f 63 63 5b 56 |.tt_arra|y.c_cc[V|
|00004e20| 51 55 49 54 5d 20 3d 20 | 30 3b 0a 58 09 74 74 5f |QUIT] = |0;.X.tt_|
|00004e30| 61 72 72 61 79 2e 63 5f | 63 63 5b 56 45 52 41 53 |array.c_|cc[VERAS|
|00004e40| 45 5d 20 3d 20 38 3b 0a | 58 09 74 74 5f 61 72 72 |E] = 8;.|X.tt_arr|
|00004e50| 61 79 2e 63 5f 63 63 5b | 56 4b 49 4c 4c 5d 20 3d |ay.c_cc[|VKILL] =|
|00004e60| 20 32 31 3b 0a 58 09 74 | 74 5f 61 72 72 61 79 2e | 21;.X.t|t_array.|
|00004e70| 63 5f 63 63 5b 56 45 4f | 46 5d 20 3d 20 34 3b 0a |c_cc[VEO|F] = 4;.|
|00004e80| 58 09 74 74 5f 61 72 72 | 61 79 2e 63 5f 63 63 5b |X.tt_arr|ay.c_cc[|
|00004e90| 56 45 4f 4c 5d 20 3d 20 | 30 3b 0a 58 09 69 6f 63 |VEOL] = |0;.X.ioc|
|00004ea0| 74 6c 28 6d 61 73 63 68 | 61 6e 2c 20 54 43 53 45 |tl(masch|an, TCSE|
|00004eb0| 54 41 57 2c 20 26 74 74 | 5f 61 72 72 61 79 29 3b |TAW, &tt|_array);|
|00004ec0| 09 2f 2a 20 53 65 74 20 | 70 61 72 61 6d 65 74 65 |./* Set |paramete|
|00004ed0| 72 73 20 2a 2f 0a 58 09 | 69 6f 63 74 6c 28 28 6d |rs */.X.|ioctl((m|
|00004ee0| 61 73 63 68 61 6e 20 2b | 20 31 29 2c 20 54 43 53 |aschan +| 1), TCS|
|00004ef0| 45 54 41 57 2c 20 26 74 | 74 5f 61 72 72 61 79 29 |ETAW, &t|t_array)|
|00004f00| 3b 0a 58 09 69 6f 63 74 | 6c 28 28 6d 61 73 63 68 |;.X.ioct|l((masch|
|00004f10| 61 6e 20 2b 20 32 29 2c | 20 54 43 53 45 54 41 57 |an + 2),| TCSETAW|
|00004f20| 2c 20 26 74 74 5f 61 72 | 72 61 79 29 3b 0a 58 09 |, &tt_ar|ray);.X.|
|00004f30| 73 69 67 6e 61 6c 28 53 | 49 47 41 4c 52 4d 2c 20 |signal(S|IGALRM, |
|00004f40| 68 61 6e 67 75 70 29 3b | 09 2f 2a 20 49 66 20 77 |hangup);|./* If w|
|00004f50| 65 20 74 69 6d 65 20 6f | 75 74 2c 20 68 61 6e 67 |e time o|ut, hang|
|00004f60| 20 75 70 20 74 68 65 20 | 6c 69 6e 65 20 2a 2f 0a | up the |line */.|
|00004f70| 58 09 61 6c 61 72 6d 28 | 4c 4f 47 53 45 43 4f 4e |X.alarm(|LOGSECON|
|00004f80| 44 53 29 3b 09 09 2f 2a | 20 4c 4f 47 53 45 43 4f |DS);../*| LOGSECO|
|00004f90| 4e 44 53 20 74 6f 20 72 | 65 61 64 2f 72 65 70 6c |NDS to r|ead/repl|
|00004fa0| 79 2c 20 74 68 65 6e 20 | 6f 75 74 20 2a 2f 0a 58 |y, then |out */.X|
|00004fb0| 09 66 70 72 69 6e 74 66 | 28 66 69 64 32 2c 20 22 |.fprintf|(fid2, "|
|00004fc0| 5c 6e 5b 25 73 5d 5c 6e | 22 2c 20 62 61 75 64 29 |\n[%s]\n|", baud)|
|00004fd0| 3b 2f 2a 20 44 69 73 70 | 6c 61 79 20 70 61 72 61 |;/* Disp|lay para|
|00004fe0| 6d 65 74 65 72 73 20 77 | 65 20 66 6f 75 6e 64 20 |meters w|e found |
|00004ff0| 2a 2f 0a 58 09 66 6f 72 | 20 28 78 20 3d 20 30 3b |*/.X.for| (x = 0;|
|00005000| 20 78 20 3c 20 69 63 6f | 75 6e 74 3b 20 78 2b 2b | x < ico|unt; x++|
|00005010| 29 20 7b 0a 58 09 09 66 | 70 75 74 73 28 69 73 74 |) {.X..f|puts(ist|
|00005020| 72 69 6e 67 5b 78 5d 2c | 20 66 69 64 32 29 3b 0a |ring[x],| fid2);.|
|00005030| 58 09 7d 0a 58 09 66 70 | 75 74 73 28 22 5c 72 5c |X.}.X.fp|uts("\r\|
|00005040| 6e 22 2c 20 66 69 64 32 | 29 3b 09 09 2f 2a 20 45 |n", fid2|);../* E|
|00005050| 6e 64 20 77 69 74 68 20 | 61 6e 6f 74 68 65 72 20 |nd with |another |
|00005060| 3c 72 65 74 75 72 6e 3e | 20 2a 2f 0a 62 67 31 3a |<return>| */.bg1:|
|00005070| 3b 0a 58 09 66 70 75 74 | 73 28 6c 6f 67 69 6e 70 |;.X.fput|s(loginp|
|00005080| 2c 20 66 69 64 32 29 3b | 09 09 2f 2a 20 50 72 6f |, fid2);|../* Pro|
|00005090| 6d 70 74 20 66 6f 72 20 | 6c 6f 67 69 6e 20 6e 61 |mpt for |login na|
|000050a0| 6d 65 20 2a 2f 0a 58 09 | 66 67 65 74 73 28 74 6d |me */.X.|fgets(tm|
|000050b0| 70 2c 20 38 30 2c 20 66 | 69 64 32 29 3b 09 09 2f |p, 80, f|id2);../|
|000050c0| 2a 20 52 65 61 64 20 69 | 74 2c 20 62 75 74 20 64 |* Read i|t, but d|
|000050d0| 6f 6e 27 74 20 61 6c 6c | 6f 77 20 6f 76 65 72 72 |on't all|ow overr|
|000050e0| 75 6e 20 2a 2f 0a 58 09 | 69 66 20 28 2a 74 6d 70 |un */.X.|if (*tmp|
|000050f0| 20 3d 3d 20 31 30 29 09 | 09 09 2f 2a 20 49 66 20 | == 10).|../* If |
|00005100| 6e 6f 74 68 69 6e 67 2c | 20 61 73 6b 20 61 67 61 |nothing,| ask aga|
|00005110| 69 6e 20 2a 2f 0a 58 09 | 09 67 6f 74 6f 20 62 67 |in */.X.|.goto bg|
|00005120| 31 3b 0a 58 09 74 6d 70 | 5b 73 74 72 6c 65 6e 28 |1;.X.tmp|[strlen(|
|00005130| 74 6d 70 29 2d 31 5d 20 | 3d 20 30 3b 09 09 2f 2a |tmp)-1] |= 0;../*|
|00005140| 20 4d 61 6b 65 20 73 75 | 72 65 20 6e 75 6c 6c 20 | Make su|re null |
|00005150| 74 65 72 6d 69 6e 61 74 | 65 64 20 2a 2f 0a 58 09 |terminat|ed */.X.|
|00005160| 74 6c 63 28 74 6d 70 29 | 3b 09 09 09 2f 2a 20 4c |tlc(tmp)|;.../* L|
|00005170| 6f 77 65 72 20 63 61 73 | 65 20 74 68 65 20 6e 61 |ower cas|e the na|
|00005180| 6d 65 20 2a 2f 0a 58 09 | 73 69 67 6e 61 6c 28 53 |me */.X.|signal(S|
|00005190| 49 47 49 4e 54 2c 20 53 | 49 47 5f 44 46 4c 29 3b |IGINT, S|IG_DFL);|
|000051a0| 09 2f 2a 20 52 65 73 65 | 74 20 73 69 67 6e 61 6c |./* Rese|t signal|
|000051b0| 20 68 61 6e 64 6c 69 6e | 67 20 2a 2f 0a 58 09 73 | handlin|g */.X.s|
|000051c0| 69 67 6e 61 6c 28 53 49 | 47 41 4c 52 4d 2c 20 53 |ignal(SI|GALRM, S|
|000051d0| 49 47 5f 44 46 4c 29 3b | 0a 58 09 61 6c 61 72 6d |IG_DFL);|.X.alarm|
|000051e0| 28 30 29 3b 09 09 09 2f | 2a 20 43 6c 65 61 72 20 |(0);.../|* Clear |
|000051f0| 61 6c 61 72 6d 20 2a 2f | 0a 58 09 66 63 6c 6f 73 |alarm */|.X.fclos|
|00005200| 65 28 66 65 72 72 29 3b | 09 09 09 2f 2a 20 43 6c |e(ferr);|.../* Cl|
|00005210| 6f 73 65 20 65 72 72 6f | 72 20 63 68 61 6e 6e 65 |ose erro|r channe|
|00005220| 6c 20 2a 2f 0a 58 2f 2a | 0a 58 20 2a 20 54 61 6b |l */.X/*|.X * Tak|
|00005230| 65 20 74 77 6f 20 73 68 | 6f 74 73 20 61 74 20 77 |e two sh|ots at w|
|00005240| 68 65 72 65 20 6c 6f 67 | 69 6e 20 69 73 2e 20 20 |here log|in is. |
|00005250| 49 66 20 77 65 20 63 61 | 6e 27 74 20 66 69 6e 64 |If we ca|n't find|
|00005260| 20 69 74 20 69 6e 20 65 | 69 74 68 65 72 20 6f 66 | it in e|ither of|
|00005270| 20 74 68 65 73 65 0a 58 | 20 2a 20 70 6c 61 63 65 | these.X| * place|
|00005280| 73 20 79 6f 75 27 72 65 | 20 73 63 72 65 77 65 64 |s you're| screwed|
|00005290| 3b 20 64 75 6d 70 20 74 | 68 65 20 63 61 6c 6c 65 |; dump t|he calle|
|000052a0| 72 2e 20 20 54 72 79 20 | 74 6f 20 74 65 6c 6c 20 |r. Try |to tell |
|000052b0| 74 68 65 20 75 73 65 72 | 20 69 66 20 74 68 69 73 |the user| if this|
|000052c0| 0a 58 20 2a 20 68 61 70 | 70 65 6e 73 2c 20 62 75 |.X * hap|pens, bu|
|000052d0| 74 20 6e 6f 20 67 75 61 | 72 61 6e 74 65 65 73 2e |t no gua|rantees.|
|000052e0| 2e 2e 2e 0a 58 20 2a 2f | 0a 58 0a 58 09 65 78 65 |....X */|.X.X.exe|
|000052f0| 63 6c 70 28 22 2f 65 74 | 63 2f 6c 6f 67 69 6e 22 |clp("/et|c/login"|
|00005300| 2c 20 22 6c 6f 67 69 6e | 22 2c 20 74 6d 70 2c 20 |, "login|", tmp, |
|00005310| 28 63 68 61 72 20 2a 29 | 20 4e 55 4c 4c 29 3b 0a |(char *)| NULL);.|
|00005320| 58 09 65 78 65 63 6c 70 | 28 22 2f 62 69 6e 2f 6c |X.execlp|("/bin/l|
|00005330| 6f 67 69 6e 22 2c 20 22 | 6c 6f 67 69 6e 22 2c 20 |ogin", "|login", |
|00005340| 74 6d 70 2c 20 28 63 68 | 61 72 20 2a 29 20 4e 55 |tmp, (ch|ar *) NU|
|00005350| 4c 4c 29 3b 0a 58 09 66 | 70 75 74 73 28 22 4c 6f |LL);.X.f|puts("Lo|
|00005360| 67 69 6e 20 6e 6f 74 20 | 65 78 65 63 75 74 61 62 |gin not |executab|
|00005370| 6c 65 3b 20 63 6f 6e 74 | 61 63 74 20 61 64 6d 69 |le; cont|act admi|
|00005380| 6e 69 73 74 72 61 74 6f | 72 5c 6e 22 2c 20 66 69 |nistrato|r\n", fi|
|00005390| 64 32 29 3b 0a 58 09 66 | 66 6c 75 73 68 28 66 69 |d2);.X.f|flush(fi|
|000053a0| 64 32 29 3b 09 09 09 2f | 2a 20 4d 61 6b 65 20 73 |d2);.../|* Make s|
|000053b0| 75 72 65 20 69 74 27 73 | 20 70 72 69 6e 74 65 64 |ure it's| printed|
|000053c0| 20 2a 2f 0a 58 09 73 6c | 65 65 70 28 33 29 3b 09 | */.X.sl|eep(3);.|
|000053d0| 09 09 2f 2a 20 57 61 69 | 74 20 66 6f 72 20 6f 75 |../* Wai|t for ou|
|000053e0| 74 70 75 74 20 74 6f 20 | 64 72 61 69 6e 20 2a 2f |tput to |drain */|
|000053f0| 0a 58 09 65 78 69 74 28 | 31 29 3b 09 09 09 2f 2a |.X.exit(|1);.../*|
|00005400| 20 41 6e 64 20 71 75 69 | 74 20 77 69 74 68 20 65 | And qui|t with e|
|00005410| 72 72 6f 72 20 28 69 67 | 6e 6f 72 65 64 29 20 2a |rror (ig|nored) *|
|00005420| 2f 0a 58 7d 0a 58 0a 45 | 4e 44 5f 4f 46 5f 46 49 |/.X}.X.E|ND_OF_FI|
|00005430| 4c 45 0a 69 66 20 74 65 | 73 74 20 31 39 38 35 34 |LE.if te|st 19854|
|00005440| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 61 75 | -ne `wc| -c <'au|
|00005450| 74 6f 75 75 2e 63 27 60 | 3b 20 74 68 65 6e 0a 20 |touu.c'`|; then. |
|00005460| 20 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 5c 22 | echo |shar: \"|
|00005470| 27 61 75 74 6f 75 75 2e | 63 27 5c 22 20 75 6e 70 |'autouu.|c'\" unp|
|00005480| 61 63 6b 65 64 20 77 69 | 74 68 20 77 72 6f 6e 67 |acked wi|th wrong|
|00005490| 20 73 69 7a 65 21 0a 66 | 69 0a 23 20 65 6e 64 20 | size!.f|i.# end |
|000054a0| 6f 66 20 27 61 75 74 6f | 75 75 2e 63 27 0a 66 69 |of 'auto|uu.c'.fi|
|000054b0| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 45 6e 64 20 |.echo sh|ar: End |
|000054c0| 6f 66 20 73 68 65 6c 6c | 20 61 72 63 68 69 76 65 |of shell| archive|
|000054d0| 2e 0a 65 78 69 74 20 30 | 0a 0a 2d 2d 0a 4b 61 72 |..exit 0|..--.Kar|
|000054e0| 6c 20 44 65 6e 6e 69 6e | 67 65 72 20 28 6b 61 72 |l Dennin|ger (kar|
|000054f0| 6c 40 64 64 73 77 31 2e | 4d 43 53 2e 43 4f 4d 2c |l@ddsw1.|MCS.COM,|
|00005500| 20 3c 77 65 6c 6c 2d 63 | 6f 6e 6e 65 63 74 65 64 | <well-c|onnected|
|00005510| 3e 21 64 64 73 77 31 21 | 6b 61 72 6c 29 0a 50 75 |>!ddsw1!|karl).Pu|
|00005520| 62 6c 69 63 20 41 63 63 | 65 73 73 20 44 61 74 61 |blic Acc|ess Data|
|00005530| 20 4c 69 6e 65 3a 20 5b | 2b 31 20 37 30 38 20 38 | Line: [|+1 708 8|
|00005540| 30 38 2d 37 33 30 30 5d | 2c 20 56 6f 69 63 65 3a |08-7300]|, Voice:|
|00005550| 20 5b 2b 31 20 37 30 38 | 20 38 30 38 2d 37 32 30 | [+1 708| 808-720|
|00005560| 30 5d 0a 4d 61 63 72 6f | 20 43 6f 6d 70 75 74 65 |0].Macro| Compute|
|00005570| 72 20 53 6f 6c 75 74 69 | 6f 6e 73 2c 20 49 6e 63 |r Soluti|ons, Inc|
|00005580| 2e 20 20 20 22 51 75 61 | 6c 69 74 79 20 53 6f 6c |. "Qua|lity Sol|
|00005590| 75 74 69 6f 6e 73 20 61 | 74 20 61 20 46 61 69 72 |utions a|t a Fair|
|000055a0| 20 50 72 69 63 65 22 0a | | Price".| |
+--------+-------------------------+-------------------------+--------+--------+