home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume1 / 8708 / uniflex-uupc / 2 < prev    next >
SHell self-extracting ARchive  |  1987-08-28  |  47.9 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

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

You can browse this item here: 2

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file saved news text default
99% file C source, ASCII text 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/news default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 41 72 74 69 63 6c 65 20 | 31 38 34 20 6f 66 20 63 |Article |184 of c|
|00000010| 6f 6d 70 2e 73 6f 75 72 | 63 65 73 2e 6d 69 73 63 |omp.sour|ces.misc|
|00000020| 3a 0a 52 65 6c 61 79 2d | 56 65 72 73 69 6f 6e 3a |:.Relay-|Version:|
|00000030| 20 76 65 72 73 69 6f 6e | 20 42 20 32 2e 31 30 2e | version| B 2.10.|
|00000040| 33 20 61 6c 70 68 61 20 | 35 2f 32 32 2f 38 35 3b |3 alpha |5/22/85;|
|00000050| 20 73 69 74 65 20 6f 73 | 75 2d 65 64 64 69 65 2e | site os|u-eddie.|
|00000060| 55 55 43 50 0a 50 61 74 | 68 3a 20 6f 73 75 2d 65 |UUCP.Pat|h: osu-e|
|00000070| 64 64 69 65 21 63 62 6f | 73 67 64 21 6d 61 6e 64 |ddie!cbo|sgd!mand|
|00000080| 72 69 6c 6c 21 68 61 6c | 21 6e 63 6f 61 73 74 21 |rill!hal|!ncoast!|
|00000090| 61 6c 6c 62 65 72 79 0a | 46 72 6f 6d 3a 20 73 61 |allbery.|From: sa|
|000000a0| 6d 70 73 6f 6e 40 6b 69 | 6c 6c 65 72 2e 55 55 43 |mpson@ki|ller.UUC|
|000000b0| 50 20 28 53 74 65 76 65 | 20 53 61 6d 70 73 6f 6e |P (Steve| Sampson|
|000000c0| 29 0a 4e 65 77 73 67 72 | 6f 75 70 73 3a 20 63 6f |).Newsgr|oups: co|
|000000d0| 6d 70 2e 73 6f 75 72 63 | 65 73 2e 6d 69 73 63 0a |mp.sourc|es.misc.|
|000000e0| 53 75 62 6a 65 63 74 3a | 20 75 6e 69 66 6c 65 78 |Subject:| uniflex|
|000000f0| 20 64 63 70 20 50 61 72 | 74 20 32 20 6f 66 20 32 | dcp Par|t 2 of 2|
|00000100| 0a 4d 65 73 73 61 67 65 | 2d 49 44 3a 20 3c 34 32 |.Message|-ID: <42|
|00000110| 36 38 40 6e 63 6f 61 73 | 74 2e 55 55 43 50 3e 0a |68@ncoas|t.UUCP>.|
|00000120| 44 61 74 65 3a 20 32 36 | 20 41 75 67 20 38 37 20 |Date: 26| Aug 87 |
|00000130| 32 32 3a 34 39 3a 32 32 | 20 47 4d 54 0a 44 61 74 |22:49:22| GMT.Dat|
|00000140| 65 2d 52 65 63 65 69 76 | 65 64 3a 20 32 37 20 41 |e-Receiv|ed: 27 A|
|00000150| 75 67 20 38 37 20 30 34 | 3a 31 34 3a 31 36 20 47 |ug 87 04|:14:16 G|
|00000160| 4d 54 0a 53 65 6e 64 65 | 72 3a 20 61 6c 6c 62 65 |MT.Sende|r: allbe|
|00000170| 72 79 40 6e 63 6f 61 73 | 74 2e 55 55 43 50 0a 4f |ry@ncoas|t.UUCP.O|
|00000180| 72 67 61 6e 69 7a 61 74 | 69 6f 6e 3a 20 54 68 65 |rganizat|ion: The|
|00000190| 20 55 6e 69 78 28 74 6d | 29 20 43 6f 6e 6e 65 63 | Unix(tm|) Connec|
|000001a0| 74 69 6f 6e 2c 20 44 61 | 6c 6c 61 73 2c 20 54 65 |tion, Da|llas, Te|
|000001b0| 78 61 73 0a 4c 69 6e 65 | 73 3a 20 32 34 38 34 0a |xas.Line|s: 2484.|
|000001c0| 41 70 70 72 6f 76 65 64 | 3a 20 61 6c 6c 62 65 72 |Approved|: allber|
|000001d0| 79 40 6e 63 6f 61 73 74 | 2e 55 55 43 50 0a 58 2d |y@ncoast|.UUCP.X-|
|000001e0| 41 72 63 68 69 76 65 3a | 20 63 6f 6d 70 2e 73 6f |Archive:| comp.so|
|000001f0| 75 72 63 65 73 2e 6d 69 | 73 63 2f 38 37 30 38 2f |urces.mi|sc/8708/|
|00000200| 75 6e 69 66 6c 65 78 2d | 75 75 70 63 2f 32 0a 0a |uniflex-|uupc/2..|
|00000210| 0a 0a 23 21 2f 62 69 6e | 2f 73 68 0a 23 20 54 68 |..#!/bin|/sh.# Th|
|00000220| 69 73 20 69 73 20 61 20 | 73 68 65 6c 6c 20 61 72 |is is a |shell ar|
|00000230| 63 68 69 76 65 2e 20 20 | 52 65 6d 6f 76 65 20 61 |chive. |Remove a|
|00000240| 6e 79 74 68 69 6e 67 20 | 62 65 66 6f 72 65 20 74 |nything |before t|
|00000250| 68 69 73 20 6c 69 6e 65 | 2c 0a 23 20 74 68 65 6e |his line|,.# then|
|00000260| 20 75 6e 70 61 63 6b 20 | 69 74 20 62 79 20 73 61 | unpack |it by sa|
|00000270| 76 69 6e 67 20 69 74 20 | 69 6e 20 61 20 66 69 6c |ving it |in a fil|
|00000280| 65 20 61 6e 64 20 74 79 | 70 69 6e 67 20 22 73 68 |e and ty|ping "sh|
|00000290| 20 66 69 6c 65 22 2e 0a | 23 0a 23 20 57 72 61 70 | file"..|#.# Wrap|
|000002a0| 70 65 64 20 62 79 20 73 | 61 6d 70 73 6f 6e 20 6f |ped by s|ampson o|
|000002b0| 6e 20 4d 6f 6e 20 41 75 | 67 20 32 34 20 30 33 3a |n Mon Au|g 24 03:|
|000002c0| 31 31 3a 30 31 20 43 44 | 54 20 31 39 38 37 0a 23 |11:01 CD|T 1987.#|
|000002d0| 20 43 6f 6e 74 65 6e 74 | 73 3a 20 20 64 63 70 2e | Content|s: dcp.|
|000002e0| 63 20 64 63 70 67 70 6b | 74 2e 63 20 64 63 70 69 |c dcpgpk|t.c dcpi|
|000002f0| 6f 2e 63 20 64 63 70 72 | 65 63 2e 63 20 64 63 70 |o.c dcpr|ec.c dcp|
|00000300| 73 63 61 6e 2e 63 20 64 | 63 70 73 65 6e 64 2e 63 |scan.c d|cpsend.c|
|00000310| 0a 23 09 64 63 70 73 74 | 61 72 74 2e 63 20 64 63 |.#.dcpst|art.c dc|
|00000320| 70 73 79 73 2e 63 20 72 | 6d 61 69 6c 2e 63 20 75 |psys.c r|mail.c u|
|00000330| 75 78 71 74 2e 63 0a 20 | 0a 65 63 68 6f 20 78 20 |uxqt.c. |.echo x |
|00000340| 2d 20 64 63 70 2e 63 0a | 73 65 64 20 27 73 2f 5e |- dcp.c.|sed 's/^|
|00000350| 58 58 2f 2f 27 20 3e 20 | 22 64 63 70 2e 63 22 20 |XX//' > |"dcp.c" |
|00000360| 3c 3c 27 40 2f 2f 45 2a | 4f 2a 46 20 64 63 70 2e |<<'@//E*|O*F dcp.|
|00000370| 63 2f 2f 27 0a 58 58 2f | 2a 20 22 44 43 50 22 20 |c//'.XX/|* "DCP" |
|00000380| 61 20 75 75 63 70 20 63 | 6c 6f 6e 65 2e 20 43 6f |a uucp c|lone. Co|
|00000390| 70 79 72 69 67 68 74 20 | 52 69 63 68 61 72 64 20 |pyright |Richard |
|000003a0| 48 2e 20 4c 61 6d 62 20 | 31 39 38 35 2c 31 39 38 |H. Lamb |1985,198|
|000003b0| 36 2c 31 39 38 37 20 2a | 2f 0a 58 58 0a 58 58 2f |6,1987 *|/.XX.XX/|
|000003c0| 2a 0a 58 58 20 2a 09 54 | 68 69 73 20 70 72 6f 67 |*.XX *.T|his prog|
|000003d0| 72 61 6d 20 69 6d 70 6c | 65 6d 65 6e 74 73 20 61 |ram impl|ements a|
|000003e0| 20 75 75 63 69 63 6f 20 | 74 79 70 65 20 66 69 6c | uucico |type fil|
|000003f0| 65 20 74 72 61 6e 73 66 | 65 72 20 61 6e 64 20 72 |e transf|er and r|
|00000400| 65 6d 6f 74 65 0a 58 58 | 20 2a 09 65 78 65 63 75 |emote.XX| *.execu|
|00000410| 74 69 6f 6e 20 74 79 70 | 65 20 70 72 6f 74 6f 63 |tion typ|e protoc|
|00000420| 6f 6c 2e 20 0a 58 58 20 | 2a 2f 0a 58 58 0a 58 58 |ol. .XX |*/.XX.XX|
|00000430| 23 69 6e 63 6c 75 64 65 | 20 22 64 63 70 2e 68 22 |#include| "dcp.h"|
|00000440| 0a 58 58 0a 58 58 69 6e | 74 09 70 6b 74 73 69 7a |.XX.XXin|t.pktsiz|
|00000450| 65 3b 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |e; | |
|00000460| 20 20 2f 2a 20 70 61 63 | 6b 65 74 20 73 69 7a 65 | /* pac|ket size|
|00000470| 20 66 6f 72 20 70 72 6f | 20 2a 2f 0a 58 58 69 6e | for pro| */.XXin|
|00000480| 74 09 66 6c 6f 67 3b 20 | 20 20 20 20 20 20 20 20 |t.flog; | |
|00000490| 20 20 20 20 20 20 20 20 | 20 20 2f 2a 20 73 79 73 | | /* sys|
|000004a0| 74 65 6d 20 6c 6f 67 20 | 66 69 6c 65 20 2a 2f 0a |tem log |file */.|
|000004b0| 58 58 69 6e 74 09 66 77 | 3b 20 20 20 20 20 20 20 |XXint.fw|; |
|000004c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2f 2a | | /*|
|000004d0| 20 63 66 69 6c 65 20 70 | 6f 69 6e 74 65 72 20 2a | cfile p|ointer *|
|000004e0| 2f 0a 58 58 69 6e 74 09 | 66 70 72 2c 66 70 77 3b |/.XXint.|fpr,fpw;|
|000004f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000500| 2f 2a 20 63 6f 6d 6d 20 | 64 65 76 20 70 6f 69 6e |/* comm |dev poin|
|00000510| 74 65 72 20 2a 2f 0a 58 | 58 63 68 61 72 09 73 74 |ter */.X|Xchar.st|
|00000520| 61 74 65 3b 09 09 09 2f | 2a 20 73 79 73 74 65 6d |ate;.../|* system|
|00000530| 20 73 74 61 74 65 20 2a | 2f 0a 58 58 63 68 61 72 | state *|/.XXchar|
|00000540| 09 63 66 69 6c 65 5b 38 | 30 5d 3b 20 20 20 20 20 |.cfile[8|0]; |
|00000550| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 77 6f 72 6b | | /* work|
|00000560| 20 66 69 6c 65 20 70 6f | 69 6e 74 65 72 20 2a 2f | file po|inter */|
|00000570| 0a 58 58 69 6e 74 09 72 | 65 6d 6f 74 65 3b 20 20 |.XXint.r|emote; |
|00000580| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2f | | /|
|00000590| 2a 20 2d 31 20 6d 65 61 | 6e 73 20 77 65 27 72 65 |* -1 mea|ns we're|
|000005a0| 20 72 65 6d 6f 74 65 2a | 2f 0a 58 58 69 6e 74 09 | remote*|/.XXint.|
|000005b0| 64 65 62 75 67 3b 20 20 | 20 20 20 20 20 20 20 20 |debug; | |
|000005c0| 20 20 20 20 20 20 20 20 | 2f 2a 20 64 65 62 75 67 | |/* debug|
|000005d0| 67 69 6e 67 20 6c 65 76 | 65 6c 20 2a 2f 0a 58 58 |ging lev|el */.XX|
|000005e0| 69 6e 74 09 6d 73 67 74 | 69 6d 65 3b 20 20 20 20 |int.msgt|ime; |
|000005f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 74 | | /* t|
|00000600| 69 6d 6f 75 74 20 73 65 | 74 74 69 6e 67 20 2a 2f |imout se|tting */|
|00000610| 0a 58 58 63 68 61 72 09 | 66 72 6f 6d 66 69 6c 65 |.XXchar.|fromfile|
|00000620| 5b 31 33 32 5d 3b 0a 58 | 58 63 68 61 72 09 74 6f |[132];.X|Xchar.to|
|00000630| 66 69 6c 65 5b 31 33 32 | 5d 3b 0a 58 58 69 6e 74 |file[132|];.XXint|
|00000640| 09 66 70 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |.fp; | |
|00000650| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 63 75 72 72 | | /* curr|
|00000660| 65 6e 74 20 64 69 73 6b | 20 66 69 6c 65 20 70 74 |ent disk| file pt|
|00000670| 72 20 2a 2f 0a 58 58 69 | 6e 74 09 73 69 7a 65 3b |r */.XXi|nt.size;|
|00000680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000690| 20 20 20 2f 2a 20 6e 62 | 79 74 65 73 20 69 6e 20 | /* nb|ytes in |
|000006a0| 62 75 66 66 20 2a 2f 0a | 58 58 69 6e 74 09 66 73 |buff */.|XXint.fs|
|000006b0| 79 73 3b 0a 58 58 63 68 | 61 72 09 74 74 79 5b 31 |ys;.XXch|ar.tty[1|
|000006c0| 36 5d 3b 0a 58 58 63 68 | 61 72 09 6d 79 6e 61 6d |6];.XXch|ar.mynam|
|000006d0| 65 5b 38 5d 3b 0a 58 58 | 63 68 61 72 09 75 73 65 |e[8];.XX|char.use|
|000006e0| 72 6e 61 6d 65 5b 31 32 | 38 5d 3b 0a 58 58 63 68 |rname[12|8];.XXch|
|000006f0| 61 72 09 73 70 6f 6f 6c | 64 69 72 5b 36 34 5d 3b |ar.spool|dir[64];|
|00000700| 0a 58 58 63 68 61 72 09 | 72 6d 74 6e 61 6d 65 5b |.XXchar.|rmtname[|
|00000710| 38 5d 3b 0a 58 58 63 68 | 61 72 09 63 63 74 69 6d |8];.XXch|ar.cctim|
|00000720| 65 5b 31 36 5d 3b 0a 58 | 58 63 68 61 72 09 64 65 |e[16];.X|Xchar.de|
|00000730| 76 69 63 65 5b 31 36 5d | 3b 0a 58 58 63 68 61 72 |vice[16]|;.XXchar|
|00000740| 09 74 79 70 65 5b 38 5d | 3b 0a 58 58 63 68 61 72 |.type[8]|;.XXchar|
|00000750| 09 73 70 65 65 64 5b 38 | 5d 3b 0a 58 58 63 68 61 |.speed[8|];.XXcha|
|00000760| 72 09 70 72 6f 74 6f 5b | 38 5d 3b 0a 58 58 63 68 |r.proto[|8];.XXch|
|00000770| 61 72 09 6c 6f 67 69 6e | 73 65 71 5b 31 33 32 5d |ar.login|seq[132]|
|00000780| 3b 0a 58 58 0a 58 58 2f | 2a 0a 58 58 20 2a 09 55 |;.XX.XX/|*.XX *.U|
|00000790| 73 61 67 65 3a 0a 58 58 | 20 2a 09 20 20 64 63 70 |sage:.XX| *. dcp|
|000007a0| 20 28 6d 61 73 74 65 72 | 2f 73 6c 61 76 65 28 44 | (master|/slave(D|
|000007b0| 29 29 20 28 64 65 62 75 | 67 20 6c 65 76 65 6c 20 |)) (debu|g level |
|000007c0| 30 20 3d 20 6e 6f 6e 65 | 28 44 29 29 0a 58 58 20 |0 = none|(D)).XX |
|000007d0| 2a 09 20 20 20 20 20 20 | 28 73 79 73 74 65 6d 20 |*. |(system |
|000007e0| 6e 61 6d 65 28 4d 59 4e | 41 4d 45 29 29 20 28 63 |name(MYN|AME)) (c|
|000007f0| 6f 6e 73 6f 6c 65 20 64 | 65 76 69 63 65 29 0a 58 |onsole d|evice).X|
|00000800| 58 20 2a 0a 58 58 20 2a | 09 64 65 66 61 75 6c 74 |X *.XX *|.default|
|00000810| 73 20 63 6f 6d 65 20 66 | 72 6f 6d 20 55 53 45 52 |s come f|rom USER|
|00000820| 46 49 4c 45 0a 58 58 20 | 2a 2f 0a 58 58 0a 58 58 |FILE.XX |*/.XX.XX|
|00000830| 6d 61 69 6e 28 61 72 67 | 63 2c 61 72 67 76 29 0a |main(arg|c,argv).|
|00000840| 58 58 69 6e 74 09 61 72 | 67 63 3b 0a 58 58 63 68 |XXint.ar|gc;.XXch|
|00000850| 61 72 09 2a 61 72 67 76 | 5b 5d 3b 0a 58 58 7b 0a |ar.*argv|[];.XX{.|
|00000860| 58 58 09 69 6e 74 09 66 | 74 6d 70 3b 0a 58 58 09 |XX.int.f|tmp;.XX.|
|00000870| 63 68 61 72 09 6c 69 6e | 65 5b 31 33 32 5d 3b 0a |char.lin|e[132];.|
|00000880| 58 58 0a 58 58 09 66 6c | 6f 67 20 3d 20 63 72 65 |XX.XX.fl|og = cre|
|00000890| 61 74 28 53 59 53 4c 4f | 47 2c 20 50 45 52 4d 53 |at(SYSLO|G, PERMS|
|000008a0| 29 3b 0a 58 58 09 63 6c | 6f 73 65 28 66 6c 6f 67 |);.XX.cl|ose(flog|
|000008b0| 29 3b 0a 58 58 0a 58 58 | 09 66 6c 6f 67 20 3d 20 |);.XX.XX|.flog = |
|000008c0| 6f 70 65 6e 28 53 59 53 | 4c 4f 47 2c 20 32 29 3b |open(SYS|LOG, 2);|
|000008d0| 0a 58 58 0a 58 58 09 72 | 65 6d 6f 74 65 20 3d 20 |.XX.XX.r|emote = |
|000008e0| 54 52 55 45 3b 0a 58 58 | 09 64 65 62 75 67 20 3d |TRUE;.XX|.debug =|
|000008f0| 20 30 3b 0a 58 58 09 66 | 70 20 3d 20 66 77 20 3d | 0;.XX.f|p = fw =|
|00000900| 20 2d 31 3b 0a 58 58 0a | 58 58 09 63 68 64 69 72 | -1;.XX.|XX.chdir|
|00000910| 28 53 50 4f 4f 4c 44 49 | 52 29 3b 0a 58 58 0a 58 |(SPOOLDI|R);.XX.X|
|00000920| 58 09 69 66 20 28 61 72 | 67 63 20 3e 20 31 20 26 |X.if (ar|gc > 1 &|
|00000930| 26 20 73 74 72 63 6d 70 | 28 61 72 67 76 5b 31 5d |& strcmp|(argv[1]|
|00000940| 2c 20 22 6d 61 73 74 65 | 72 22 29 20 3d 3d 20 30 |, "maste|r") == 0|
|00000950| 29 0a 58 58 09 09 72 65 | 6d 6f 74 65 20 3d 20 46 |).XX..re|mote = F|
|00000960| 41 4c 53 45 3b 0a 58 58 | 0a 58 58 09 69 66 20 28 |ALSE;.XX|.XX.if (|
|00000970| 61 72 67 63 20 3e 20 32 | 29 0a 58 58 09 09 73 73 |argc > 2|).XX..ss|
|00000980| 63 61 6e 66 28 61 72 67 | 76 5b 32 5d 2c 20 22 25 |canf(arg|v[2], "%|
|00000990| 64 22 2c 20 26 64 65 62 | 75 67 29 3b 0a 58 58 0a |d", &deb|ug);.XX.|
|000009a0| 58 58 09 69 66 20 28 61 | 72 67 63 20 3e 20 33 29 |XX.if (a|rgc > 3)|
|000009b0| 0a 58 58 09 09 73 74 72 | 63 70 79 28 6d 79 6e 61 |.XX..str|cpy(myna|
|000009c0| 6d 65 2c 20 61 72 67 76 | 5b 33 5d 29 3b 0a 58 58 |me, argv|[3]);.XX|
|000009d0| 09 65 6c 73 65 0a 58 58 | 09 09 73 74 72 63 70 79 |.else.XX|..strcpy|
|000009e0| 28 6d 79 6e 61 6d 65 2c | 20 4d 59 4e 41 4d 45 29 |(myname,| MYNAME)|
|000009f0| 3b 0a 58 58 0a 58 58 09 | 69 66 20 28 61 72 67 63 |;.XX.XX.|if (argc|
|00000a00| 20 3e 20 34 29 0a 58 58 | 09 09 73 74 72 63 70 79 | > 4).XX|..strcpy|
|00000a10| 28 74 74 79 2c 20 61 72 | 67 76 5b 34 5d 29 3b 0a |(tty, ar|gv[4]);.|
|00000a20| 58 58 09 65 6c 73 65 0a | 58 58 09 09 73 74 72 63 |XX.else.|XX..strc|
|00000a30| 70 79 28 74 74 79 2c 20 | 54 54 59 29 3b 0a 58 58 |py(tty, |TTY);.XX|
|00000a40| 0a 58 58 09 69 66 20 28 | 21 72 65 6d 6f 74 65 29 |.XX.if (|!remote)|
|00000a50| 20 20 7b 0a 58 58 09 09 | 69 66 20 28 28 66 73 79 | {.XX..|if ((fsy|
|00000a60| 73 20 3d 20 6f 70 65 6e | 28 53 59 53 54 45 4d 53 |s = open|(SYSTEMS|
|00000a70| 2c 20 30 29 29 20 3d 3d | 20 2d 31 29 0a 58 58 09 |, 0)) ==| -1).XX.|
|00000a80| 09 09 72 65 74 75 72 6e | 28 46 41 4c 53 45 29 3b |..return|(FALSE);|
|00000a90| 0a 58 58 0a 58 58 09 09 | 73 74 61 74 65 20 3d 20 |.XX.XX..|state = |
|00000aa0| 27 49 27 3b 0a 58 58 0a | 58 58 09 09 77 68 69 6c |'I';.XX.|XX..whil|
|00000ab0| 65 20 28 54 52 55 45 29 | 20 20 7b 0a 58 58 09 09 |e (TRUE)| {.XX..|
|00000ac0| 09 69 66 20 28 64 65 62 | 75 67 20 3e 20 30 29 0a |.if (deb|ug > 0).|
|00000ad0| 58 58 09 09 09 09 70 72 | 69 6e 74 6d 73 67 28 22 |XX....pr|intmsg("|
|00000ae0| 4d 73 74 61 74 65 20 3d | 20 25 63 22 2c 73 74 61 |Mstate =| %c",sta|
|00000af0| 74 65 29 3b 0a 58 58 0a | 58 58 09 09 09 73 77 69 |te);.XX.|XX...swi|
|00000b00| 74 63 68 28 73 74 61 74 | 65 29 20 20 7b 0a 58 58 |tch(stat|e) {.XX|
|00000b10| 09 09 09 63 61 73 65 20 | 27 49 27 3a 0a 58 58 09 |...case |'I':.XX.|
|00000b20| 09 09 09 73 74 61 74 65 | 20 3d 20 67 65 74 73 79 |...state| = getsy|
|00000b30| 73 74 65 6d 28 29 3b 0a | 58 58 09 09 09 09 62 72 |stem();.|XX....br|
|00000b40| 65 61 6b 3b 0a 58 58 09 | 09 09 63 61 73 65 20 27 |eak;.XX.|..case '|
|00000b50| 53 27 3a 0a 58 58 09 09 | 09 09 73 74 61 74 65 20 |S':.XX..|..state |
|00000b60| 3d 20 63 61 6c 6c 75 70 | 28 29 3b 0a 58 58 09 09 |= callup|();.XX..|
|00000b70| 09 09 62 72 65 61 6b 3b | 0a 58 58 09 09 09 63 61 |..break;|.XX...ca|
|00000b80| 73 65 20 27 50 27 3a 0a | 58 58 09 09 09 09 73 74 |se 'P':.|XX....st|
|00000b90| 61 74 65 20 3d 20 73 74 | 61 72 74 75 70 28 29 3b |ate = st|artup();|
|00000ba0| 0a 58 58 09 09 09 09 62 | 72 65 61 6b 3b 0a 58 58 |.XX....b|reak;.XX|
|00000bb0| 09 09 09 63 61 73 65 20 | 27 44 27 3a 0a 58 58 09 |...case |'D':.XX.|
|00000bc0| 09 09 09 73 74 61 74 65 | 20 3d 20 6d 61 73 74 65 |...state| = maste|
|00000bd0| 72 28 29 3b 0a 58 58 09 | 09 09 09 62 72 65 61 6b |r();.XX.|...break|
|00000be0| 3b 0a 58 58 09 09 09 63 | 61 73 65 20 27 59 27 3a |;.XX...c|ase 'Y':|
|00000bf0| 0a 58 58 09 09 09 09 73 | 74 61 74 65 20 3d 20 73 |.XX....s|tate = s|
|00000c00| 79 73 65 6e 64 28 29 3b | 0a 58 58 09 09 09 09 62 |ysend();|.XX....b|
|00000c10| 72 65 61 6b 3b 0a 58 58 | 09 09 09 63 61 73 65 20 |reak;.XX|...case |
|00000c20| 27 47 27 3a 0a 58 58 09 | 09 09 09 73 74 61 74 65 |'G':.XX.|...state|
|00000c30| 20 3d 20 27 49 27 3b 0a | 58 58 09 09 09 09 62 72 | = 'I';.|XX....br|
|00000c40| 65 61 6b 3b 0a 58 58 09 | 09 09 7d 0a 58 58 0a 58 |eak;.XX.|..}.XX.X|
|00000c50| 58 09 09 09 69 66 20 28 | 73 74 61 74 65 20 3d 3d |X...if (|state ==|
|00000c60| 20 27 41 27 29 0a 58 58 | 09 09 09 09 62 72 65 61 | 'A').XX|....brea|
|00000c70| 6b 3b 0a 58 58 09 09 7d | 0a 58 58 0a 58 58 09 09 |k;.XX..}|.XX.XX..|
|00000c80| 63 6c 6f 73 65 28 66 73 | 79 73 29 3b 0a 58 58 09 |close(fs|ys);.XX.|
|00000c90| 09 63 6c 6f 73 65 6c 69 | 6e 65 28 29 3b 0a 58 58 |.closeli|ne();.XX|
|00000ca0| 09 7d 20 65 6c 73 65 20 | 20 7b 0a 58 58 09 09 69 |.} else | {.XX..i|
|00000cb0| 66 20 28 6f 70 65 6e 6c | 69 6e 65 28 74 74 79 2c |f (openl|ine(tty,|
|00000cc0| 20 73 70 65 65 64 29 20 | 3d 3d 20 2d 31 29 0a 58 | speed) |== -1).X|
|00000cd0| 58 09 09 09 72 65 74 75 | 72 6e 28 46 41 4c 53 45 |X...retu|rn(FALSE|
|00000ce0| 29 3b 0a 58 58 0a 58 58 | 09 09 73 74 61 74 65 20 |);.XX.XX|..state |
|00000cf0| 3d 20 27 49 27 3b 0a 58 | 58 0a 58 58 09 09 77 68 |= 'I';.X|X.XX..wh|
|00000d00| 69 6c 65 20 28 54 52 55 | 45 29 20 20 7b 0a 58 58 |ile (TRU|E) {.XX|
|00000d10| 09 09 09 69 66 20 28 64 | 65 62 75 67 20 3e 20 30 |...if (d|ebug > 0|
|00000d20| 29 0a 58 58 09 09 09 09 | 70 72 69 6e 74 6d 73 67 |).XX....|printmsg|
|00000d30| 28 22 53 73 74 61 74 65 | 20 3d 20 25 63 22 2c 73 |("Sstate| = %c",s|
|00000d40| 74 61 74 65 29 3b 0a 58 | 58 0a 58 58 09 09 09 73 |tate);.X|X.XX...s|
|00000d50| 77 69 74 63 68 20 28 73 | 74 61 74 65 29 20 20 7b |witch (s|tate) {|
|00000d60| 0a 58 58 09 09 09 63 61 | 73 65 20 27 49 27 3a 0a |.XX...ca|se 'I':.|
|00000d70| 58 58 09 09 09 09 73 74 | 61 74 65 20 3d 20 73 74 |XX....st|ate = st|
|00000d80| 61 72 74 75 70 28 29 3b | 0a 58 58 09 09 09 09 62 |artup();|.XX....b|
|00000d90| 72 65 61 6b 3b 0a 58 58 | 09 09 09 63 61 73 65 20 |reak;.XX|...case |
|00000da0| 27 52 27 3a 0a 58 58 09 | 09 09 09 73 74 61 74 65 |'R':.XX.|...state|
|00000db0| 20 3d 20 73 6c 61 76 65 | 28 29 3b 0a 58 58 09 09 | = slave|();.XX..|
|00000dc0| 09 09 62 72 65 61 6b 3b | 0a 58 58 09 09 09 63 61 |..break;|.XX...ca|
|00000dd0| 73 65 20 27 59 27 3a 0a | 58 58 09 09 09 09 73 74 |se 'Y':.|XX....st|
|00000de0| 61 74 65 20 3d 20 73 79 | 73 65 6e 64 28 29 3b 0a |ate = sy|send();.|
|00000df0| 58 58 09 09 09 09 62 72 | 65 61 6b 3b 0a 58 58 09 |XX....br|eak;.XX.|
|00000e00| 09 09 7d 0a 58 58 09 09 | 09 0a 58 58 09 09 09 69 |..}.XX..|..XX...i|
|00000e10| 66 20 28 73 74 61 74 65 | 20 3d 3d 20 27 41 27 29 |f (state| == 'A')|
|00000e20| 0a 58 58 09 09 09 09 62 | 72 65 61 6b 3b 0a 58 58 |.XX....b|reak;.XX|
|00000e30| 09 09 7d 0a 58 58 0a 58 | 58 09 09 63 6c 6f 73 65 |..}.XX.X|X..close|
|00000e40| 6c 69 6e 65 28 29 3b 0a | 58 58 09 7d 0a 58 58 0a |line();.|XX.}.XX.|
|00000e50| 58 58 09 63 6c 6f 73 65 | 28 66 6c 6f 67 29 3b 0a |XX.close|(flog);.|
|00000e60| 58 58 0a 58 58 09 65 78 | 65 63 6c 28 22 2f 65 74 |XX.XX.ex|ecl("/et|
|00000e70| 63 2f 75 75 78 71 74 22 | 2c 20 22 75 75 78 71 74 |c/uuxqt"|, "uuxqt|
|00000e80| 22 2c 20 30 29 3b 0a 58 | 58 09 69 66 20 28 64 65 |", 0);.X|X.if (de|
|00000e90| 62 75 67 29 0a 58 58 09 | 09 70 72 69 6e 74 6d 73 |bug).XX.|.printms|
|00000ea0| 67 28 22 45 72 72 6f 72 | 20 63 61 6e 27 74 20 65 |g("Error| can't e|
|00000eb0| 78 65 63 20 2f 65 74 63 | 2f 75 75 78 71 74 22 29 |xec /etc|/uuxqt")|
|00000ec0| 3b 0a 58 58 7d 0a 58 58 | 0a 58 58 0a 58 58 2f 2a |;.XX}.XX|.XX.XX/*|
|00000ed0| 0a 58 58 2a 2a 0a 58 58 | 2a 2a 0a 58 58 2a 2a 6d |.XX**.XX|**.XX**m|
|00000ee0| 61 73 74 65 72 0a 58 58 | 2a 2a 0a 58 58 2a 2a 0a |aster.XX|**.XX**.|
|00000ef0| 58 58 2a 2f 0a 58 58 0a | 58 58 0a 58 58 6d 61 73 |XX*/.XX.|XX.XXmas|
|00000f00| 74 65 72 28 29 0a 58 58 | 7b 0a 58 58 09 73 74 61 |ter().XX|{.XX.sta|
|00000f10| 74 65 20 3d 20 27 49 27 | 3b 0a 58 58 0a 58 58 09 |te = 'I'|;.XX.XX.|
|00000f20| 77 68 69 6c 65 20 28 54 | 52 55 45 29 20 20 7b 0a |while (T|RUE) {.|
|00000f30| 58 58 09 09 69 66 20 28 | 64 65 62 75 67 20 3e 20 |XX..if (|debug > |
|00000f40| 31 29 0a 58 58 09 09 09 | 70 72 69 6e 74 6d 73 67 |1).XX...|printmsg|
|00000f50| 28 22 54 6f 70 20 6c 65 | 76 65 6c 20 73 74 61 74 |("Top le|vel stat|
|00000f60| 65 20 28 6d 61 73 74 65 | 72 20 6d 6f 64 65 29 20 |e (maste|r mode) |
|00000f70| 25 63 22 2c 20 73 74 61 | 74 65 29 3b 0a 58 58 0a |%c", sta|te);.XX.|
|00000f80| 58 58 09 09 73 77 69 74 | 63 68 20 28 73 74 61 74 |XX..swit|ch (stat|
|00000f90| 65 29 20 20 7b 0a 58 58 | 09 09 63 61 73 65 20 27 |e) {.XX|..case '|
|00000fa0| 49 27 3a 0a 58 58 09 09 | 09 73 74 61 74 65 20 3d |I':.XX..|.state =|
|00000fb0| 20 73 69 6e 69 74 28 29 | 3b 0a 58 58 09 09 09 62 | sinit()|;.XX...b|
|00000fc0| 72 65 61 6b 3b 0a 58 58 | 09 09 63 61 73 65 20 27 |reak;.XX|..case '|
|00000fd0| 42 27 3a 0a 58 58 09 09 | 09 73 74 61 74 65 20 3d |B':.XX..|.state =|
|00000fe0| 20 73 63 61 6e 64 69 72 | 28 29 3b 0a 58 58 09 09 | scandir|();.XX..|
|00000ff0| 09 62 72 65 61 6b 3b 0a | 58 58 09 09 63 61 73 65 |.break;.|XX..case|
|00001000| 20 27 53 27 3a 0a 58 58 | 09 09 09 73 74 61 74 65 | 'S':.XX|...state|
|00001010| 20 3d 20 73 65 6e 64 28 | 29 3b 0a 58 58 09 09 09 | = send(|);.XX...|
|00001020| 62 72 65 61 6b 3b 0a 58 | 58 09 09 63 61 73 65 20 |break;.X|X..case |
|00001030| 27 51 27 3a 0a 58 58 09 | 09 09 73 74 61 74 65 20 |'Q':.XX.|..state |
|00001040| 3d 20 73 62 72 65 61 6b | 28 29 3b 0a 58 58 09 09 |= sbreak|();.XX..|
|00001050| 09 62 72 65 61 6b 3b 0a | 58 58 09 09 63 61 73 65 |.break;.|XX..case|
|00001060| 20 27 47 27 3a 0a 58 58 | 09 09 09 73 74 61 74 65 | 'G':.XX|...state|
|00001070| 20 3d 20 72 65 63 65 69 | 76 65 28 29 3b 0a 58 58 | = recei|ve();.XX|
|00001080| 09 09 09 62 72 65 61 6b | 3b 0a 58 58 09 09 63 61 |...break|;.XX..ca|
|00001090| 73 65 20 27 43 27 3a 0a | 58 58 09 09 09 73 74 61 |se 'C':.|XX...sta|
|000010a0| 74 65 20 3d 20 27 59 27 | 3b 0a 58 58 09 09 09 62 |te = 'Y'|;.XX...b|
|000010b0| 72 65 61 6b 3b 0a 58 58 | 09 09 63 61 73 65 20 27 |reak;.XX|..case '|
|000010c0| 59 27 3a 0a 58 58 09 09 | 09 73 74 61 74 65 20 3d |Y':.XX..|.state =|
|000010d0| 20 65 6e 64 70 28 29 3b | 0a 58 58 09 09 09 62 72 | endp();|.XX...br|
|000010e0| 65 61 6b 3b 0a 58 58 09 | 09 63 61 73 65 20 27 50 |eak;.XX.|.case 'P|
|000010f0| 27 3a 0a 58 58 09 09 09 | 72 65 74 75 72 6e 28 27 |':.XX...|return('|
|00001100| 59 27 29 3b 0a 58 58 09 | 09 63 61 73 65 20 27 41 |Y');.XX.|.case 'A|
|00001110| 27 3a 0a 58 58 09 09 64 | 65 66 61 75 6c 74 3a 0a |':.XX..d|efault:.|
|00001120| 58 58 09 09 09 72 65 74 | 75 72 6e 28 27 41 27 29 |XX...ret|urn('A')|
|00001130| 3b 0a 58 58 09 09 7d 0a | 58 58 09 7d 0a 58 58 7d |;.XX..}.|XX.}.XX}|
|00001140| 0a 58 58 0a 58 58 0a 58 | 58 2f 2a 0a 58 58 2a 2a |.XX.XX.X|X/*.XX**|
|00001150| 0a 58 58 2a 2a 0a 58 58 | 2a 2a 73 6c 61 76 65 0a |.XX**.XX|**slave.|
|00001160| 58 58 2a 2a 0a 58 58 2a | 2a 0a 58 58 2a 2f 0a 58 |XX**.XX*|*.XX*/.X|
|00001170| 58 0a 58 58 0a 58 58 73 | 6c 61 76 65 28 29 0a 58 |X.XX.XXs|lave().X|
|00001180| 58 7b 0a 58 58 09 73 74 | 61 74 65 20 3d 20 27 49 |X{.XX.st|ate = 'I|
|00001190| 27 3b 0a 58 58 0a 58 58 | 09 77 68 69 6c 65 20 28 |';.XX.XX|.while (|
|000011a0| 54 52 55 45 29 20 20 7b | 0a 58 58 09 09 69 66 20 |TRUE) {|.XX..if |
|000011b0| 28 64 65 62 75 67 20 3e | 20 31 29 0a 58 58 09 09 |(debug >| 1).XX..|
|000011c0| 09 70 72 69 6e 74 6d 73 | 67 28 22 54 6f 70 20 6c |.printms|g("Top l|
|000011d0| 65 76 65 6c 20 73 74 61 | 74 65 20 28 73 6c 61 76 |evel sta|te (slav|
|000011e0| 65 20 6d 6f 64 65 29 20 | 25 63 22 2c 20 73 74 61 |e mode) |%c", sta|
|000011f0| 74 65 29 3b 0a 58 58 0a | 58 58 09 09 73 77 69 74 |te);.XX.|XX..swit|
|00001200| 63 68 20 28 73 74 61 74 | 65 29 20 20 7b 0a 58 58 |ch (stat|e) {.XX|
|00001210| 09 09 63 61 73 65 20 27 | 49 27 3a 0a 58 58 09 09 |..case '|I':.XX..|
|00001220| 09 73 74 61 74 65 20 3d | 20 72 69 6e 69 74 28 29 |.state =| rinit()|
|00001230| 3b 0a 58 58 09 09 09 62 | 72 65 61 6b 3b 0a 58 58 |;.XX...b|reak;.XX|
|00001240| 09 09 63 61 73 65 20 27 | 46 27 3a 0a 58 58 09 09 |..case '|F':.XX..|
|00001250| 09 73 74 61 74 65 20 3d | 20 72 65 63 65 69 76 65 |.state =| receive|
|00001260| 28 29 3b 0a 58 58 09 09 | 09 62 72 65 61 6b 3b 0a |();.XX..|.break;.|
|00001270| 58 58 09 09 63 61 73 65 | 20 27 43 27 3a 0a 58 58 |XX..case| 'C':.XX|
|00001280| 09 09 09 73 74 61 74 65 | 20 3d 20 73 63 68 6b 64 |...state| = schkd|
|00001290| 69 72 28 29 3b 0a 58 58 | 09 09 09 62 72 65 61 6b |ir();.XX|...break|
|000012a0| 3b 0a 58 58 09 09 63 61 | 73 65 20 27 54 27 3a 0a |;.XX..ca|se 'T':.|
|000012b0| 58 58 09 09 09 73 74 61 | 74 65 20 3d 20 27 42 27 |XX...sta|te = 'B'|
|000012c0| 3b 0a 58 58 09 09 09 62 | 72 65 61 6b 3b 0a 58 58 |;.XX...b|reak;.XX|
|000012d0| 09 09 63 61 73 65 20 27 | 42 27 3a 0a 58 58 09 09 |..case '|B':.XX..|
|000012e0| 09 73 74 61 74 65 20 3d | 20 73 63 61 6e 64 69 72 |.state =| scandir|
|000012f0| 28 29 3b 0a 58 58 09 09 | 09 62 72 65 61 6b 3b 0a |();.XX..|.break;.|
|00001300| 58 58 09 09 63 61 73 65 | 20 27 53 27 3a 0a 58 58 |XX..case| 'S':.XX|
|00001310| 09 09 09 73 74 61 74 65 | 20 3d 20 73 65 6e 64 28 |...state| = send(|
|00001320| 29 3b 0a 58 58 09 09 09 | 62 72 65 61 6b 3b 0a 58 |);.XX...|break;.X|
|00001330| 58 09 09 63 61 73 65 20 | 27 51 27 3a 0a 58 58 09 |X..case |'Q':.XX.|
|00001340| 09 09 73 74 61 74 65 20 | 3d 20 73 62 72 65 61 6b |..state |= sbreak|
|00001350| 28 29 3b 0a 58 58 09 09 | 09 62 72 65 61 6b 3b 0a |();.XX..|.break;.|
|00001360| 58 58 09 09 63 61 73 65 | 20 27 47 27 3a 0a 58 58 |XX..case| 'G':.XX|
|00001370| 09 09 63 61 73 65 20 27 | 50 27 3a 0a 58 58 09 09 |..case '|P':.XX..|
|00001380| 09 72 65 74 75 72 6e 28 | 27 59 27 29 3b 0a 58 58 |.return(|'Y');.XX|
|00001390| 09 09 63 61 73 65 20 27 | 59 27 3a 0a 58 58 09 09 |..case '|Y':.XX..|
|000013a0| 09 73 74 61 74 65 20 3d | 20 65 6e 64 70 28 29 3b |.state =| endp();|
|000013b0| 0a 58 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 58 09 |.XX...br|eak;.XX.|
|000013c0| 09 63 61 73 65 20 27 41 | 27 3a 0a 58 58 09 09 64 |.case 'A|':.XX..d|
|000013d0| 65 66 61 75 6c 74 3a 0a | 58 58 09 09 09 72 65 74 |efault:.|XX...ret|
|000013e0| 75 72 6e 28 27 41 27 29 | 3b 0a 58 58 09 09 7d 0a |urn('A')|;.XX..}.|
|000013f0| 58 58 09 7d 0a 58 58 7d | 0a 58 58 0a 58 58 0a 58 |XX.}.XX}|.XX.XX.X|
|00001400| 58 2f 2a 0a 58 58 20 2a | 20 20 72 20 65 20 63 20 |X/*.XX *| r e c |
|00001410| 65 20 69 20 76 20 65 0a | 58 58 20 2a 0a 58 58 20 |e i v e.|XX *.XX |
|00001420| 2a 20 20 54 68 69 73 20 | 69 73 20 74 68 65 20 73 |* This |is the s|
|00001430| 74 61 74 65 20 74 61 62 | 6c 65 20 73 77 69 74 63 |tate tab|le switc|
|00001440| 68 65 72 20 66 6f 72 20 | 72 65 63 65 69 76 69 6e |her for |receivin|
|00001450| 67 20 66 69 6c 65 73 2e | 0a 58 58 20 2a 2f 0a 58 |g files.|.XX */.X|
|00001460| 58 0a 58 58 72 65 63 65 | 69 76 65 28 29 0a 58 58 |X.XXrece|ive().XX|
|00001470| 7b 0a 58 58 0a 58 58 09 | 73 74 61 74 65 20 3d 20 |{.XX.XX.|state = |
|00001480| 27 46 27 3b 09 09 2f 2a | 20 52 65 63 65 69 76 65 |'F';../*| Receive|
|00001490| 2d 49 6e 69 74 20 69 73 | 20 74 68 65 20 73 74 61 |-Init is| the sta|
|000014a0| 72 74 20 73 74 61 74 65 | 20 2a 2f 0a 58 58 0a 58 |rt state| */.XX.X|
|000014b0| 58 09 77 68 69 6c 65 20 | 28 54 52 55 45 29 20 20 |X.while |(TRUE) |
|000014c0| 7b 0a 58 58 09 09 69 66 | 20 28 64 65 62 75 67 20 |{.XX..if| (debug |
|000014d0| 3e 20 32 29 0a 58 58 09 | 09 09 70 72 69 6e 74 6d |> 2).XX.|..printm|
|000014e0| 73 67 28 22 20 72 65 63 | 65 69 76 65 20 73 74 61 |sg(" rec|eive sta|
|000014f0| 74 65 3a 20 25 63 22 2c | 20 73 74 61 74 65 29 3b |te: %c",| state);|
|00001500| 0a 58 58 0a 58 58 09 09 | 73 77 69 74 63 68 20 28 |.XX.XX..|switch (|
|00001510| 73 74 61 74 65 29 20 20 | 7b 09 09 2f 2a 20 44 6f |state) |{../* Do|
|00001520| 20 75 6e 74 69 6c 20 64 | 6f 6e 65 20 2a 2f 0a 58 | until d|one */.X|
|00001530| 58 09 09 63 61 73 65 20 | 27 46 27 3a 0a 58 58 09 |X..case |'F':.XX.|
|00001540| 09 09 73 74 61 74 65 20 | 3d 20 72 66 69 6c 65 28 |..state |= rfile(|
|00001550| 29 3b 0a 58 58 09 09 09 | 62 72 65 61 6b 3b 09 09 |);.XX...|break;..|
|00001560| 09 2f 2a 20 52 65 63 65 | 69 76 65 2d 46 69 6c 65 |./* Rece|ive-File|
|00001570| 20 2a 2f 0a 58 58 09 09 | 63 61 73 65 20 27 44 27 | */.XX..|case 'D'|
|00001580| 3a 0a 58 58 09 09 09 73 | 74 61 74 65 20 3d 20 72 |:.XX...s|tate = r|
|00001590| 64 61 74 61 28 29 3b 0a | 58 58 09 09 09 62 72 65 |data();.|XX...bre|
|000015a0| 61 6b 3b 09 09 09 2f 2a | 20 52 65 63 65 69 76 65 |ak;.../*| Receive|
|000015b0| 2d 44 61 74 61 20 2a 2f | 0a 58 58 09 09 63 61 73 |-Data */|.XX..cas|
|000015c0| 65 20 27 43 27 3a 0a 58 | 58 09 09 09 72 65 74 75 |e 'C':.X|X...retu|
|000015d0| 72 6e 28 27 43 27 29 3b | 09 09 2f 2a 20 43 6f 6d |rn('C');|../* Com|
|000015e0| 70 6c 65 74 65 20 73 74 | 61 74 65 20 2a 2f 0a 58 |plete st|ate */.X|
|000015f0| 58 09 09 63 61 73 65 20 | 27 41 27 3a 0a 58 58 09 |X..case |'A':.XX.|
|00001600| 09 64 65 66 61 75 6c 74 | 3a 0a 58 58 09 09 09 72 |.default|:.XX...r|
|00001610| 65 74 75 72 6e 28 27 59 | 27 29 3b 09 09 2f 2a 20 |eturn('Y|');../* |
|00001620| 22 41 62 6f 72 74 22 20 | 73 74 61 74 65 20 2a 2f |"Abort" |state */|
|00001630| 0a 58 58 0a 58 58 09 09 | 7d 0a 58 58 09 7d 0a 58 |.XX.XX..|}.XX.}.X|
|00001640| 58 7d 0a 58 58 0a 58 58 | 0a 58 58 2f 2a 0a 58 58 |X}.XX.XX|.XX/*.XX|
|00001650| 20 2a 20 20 73 20 65 20 | 6e 20 64 20 0a 58 58 20 | * s e |n d .XX |
|00001660| 2a 0a 58 58 20 2a 20 20 | 53 65 6e 64 73 77 20 69 |*.XX * |Sendsw i|
|00001670| 73 20 74 68 65 20 73 74 | 61 74 65 20 74 61 62 6c |s the st|ate tabl|
|00001680| 65 20 73 77 69 74 63 68 | 65 72 20 66 6f 72 20 73 |e switch|er for s|
|00001690| 65 6e 64 69 6e 67 20 66 | 69 6c 65 73 2e 20 20 49 |ending f|iles. I|
|000016a0| 74 20 6c 6f 6f 70 73 20 | 75 6e 74 69 6c 0a 58 58 |t loops |until.XX|
|000016b0| 20 2a 20 20 65 69 74 68 | 65 72 20 69 74 20 66 69 | * eith|er it fi|
|000016c0| 6e 69 73 68 65 73 2c 20 | 6f 72 20 61 6e 20 65 72 |nishes, |or an er|
|000016d0| 72 6f 72 20 69 73 20 65 | 6e 63 6f 75 6e 74 65 72 |ror is e|ncounter|
|000016e0| 65 64 2e 20 20 54 68 65 | 20 72 6f 75 74 69 6e 65 |ed. The| routine|
|000016f0| 73 20 63 61 6c 6c 65 64 | 0a 58 58 20 2a 20 20 62 |s called|.XX * b|
|00001700| 79 20 73 65 6e 64 73 77 | 20 61 72 65 20 72 65 73 |y sendsw| are res|
|00001710| 70 6f 6e 73 69 62 6c 65 | 20 66 6f 72 20 63 68 61 |ponsible| for cha|
|00001720| 6e 67 69 6e 67 20 74 68 | 65 20 73 74 61 74 65 2e |nging th|e state.|
|00001730| 0a 58 58 20 2a 0a 58 58 | 20 2a 2f 0a 58 58 0a 58 |.XX *.XX| */.XX.X|
|00001740| 58 73 65 6e 64 28 29 0a | 58 58 7b 0a 58 58 09 66 |Xsend().|XX{.XX.f|
|00001750| 70 20 3d 20 2d 31 3b 20 | 20 20 20 20 20 20 20 20 |p = -1; | |
|00001760| 20 20 20 20 20 20 20 2f | 2a 20 72 65 73 65 74 20 | /|* reset |
|00001770| 66 69 6c 65 20 67 65 74 | 74 65 72 2f 6f 70 65 6e |file get|ter/open|
|00001780| 65 72 20 2a 2f 0a 58 58 | 09 73 74 61 74 65 20 3d |er */.XX|.state =|
|00001790| 20 27 46 27 3b 09 09 2f | 2a 20 53 65 6e 64 20 69 | 'F';../|* Send i|
|000017a0| 6e 69 74 69 61 74 65 20 | 69 73 20 74 68 65 20 73 |nitiate |is the s|
|000017b0| 74 61 72 74 20 73 74 61 | 74 65 20 2a 2f 0a 58 58 |tart sta|te */.XX|
|000017c0| 09 77 68 69 6c 65 20 28 | 54 52 55 45 29 20 20 7b |.while (|TRUE) {|
|000017d0| 09 09 2f 2a 20 44 6f 20 | 74 68 69 73 20 61 73 20 |../* Do |this as |
|000017e0| 6c 6f 6e 67 20 61 73 20 | 6e 65 63 65 73 73 61 72 |long as |necessar|
|000017f0| 79 20 2a 2f 0a 58 58 09 | 09 69 66 20 28 64 65 62 |y */.XX.|.if (deb|
|00001800| 75 67 20 3e 20 32 29 0a | 58 58 09 09 09 70 72 69 |ug > 2).|XX...pri|
|00001810| 6e 74 6d 73 67 28 22 73 | 65 6e 64 20 73 74 61 74 |ntmsg("s|end stat|
|00001820| 65 3a 20 25 63 22 2c 73 | 74 61 74 65 29 3b 0a 58 |e: %c",s|tate);.X|
|00001830| 58 0a 58 58 09 09 73 77 | 69 74 63 68 20 28 73 74 |X.XX..sw|itch (st|
|00001840| 61 74 65 29 20 20 7b 0a | 58 58 09 09 63 61 73 65 |ate) {.|XX..case|
|00001850| 20 27 46 27 3a 0a 58 58 | 09 09 09 73 74 61 74 65 | 'F':.XX|...state|
|00001860| 20 3d 20 73 66 69 6c 65 | 28 29 3b 0a 58 58 09 09 | = sfile|();.XX..|
|00001870| 09 62 72 65 61 6b 3b 09 | 09 09 2f 2a 20 53 65 6e |.break;.|../* Sen|
|00001880| 64 2d 46 69 6c 65 20 2a | 2f 0a 58 58 09 09 63 61 |d-File *|/.XX..ca|
|00001890| 73 65 20 27 44 27 3a 0a | 58 58 09 09 09 73 74 61 |se 'D':.|XX...sta|
|000018a0| 74 65 20 3d 20 73 64 61 | 74 61 28 29 3b 0a 58 58 |te = sda|ta();.XX|
|000018b0| 09 09 09 62 72 65 61 6b | 3b 09 09 09 2f 2a 20 53 |...break|;.../* S|
|000018c0| 65 6e 64 2d 44 61 74 61 | 20 2a 2f 0a 58 58 09 09 |end-Data| */.XX..|
|000018d0| 63 61 73 65 20 27 5a 27 | 3a 0a 58 58 09 09 09 73 |case 'Z'|:.XX...s|
|000018e0| 74 61 74 65 20 3d 20 73 | 65 6f 66 28 29 3b 0a 58 |tate = s|eof();.X|
|000018f0| 58 09 09 09 62 72 65 61 | 6b 3b 09 09 09 2f 2a 20 |X...brea|k;.../* |
|00001900| 53 65 6e 64 2d 45 6e 64 | 2d 6f 66 2d 46 69 6c 65 |Send-End|-of-File|
|00001910| 20 2a 2f 0a 58 58 09 09 | 63 61 73 65 20 27 42 27 | */.XX..|case 'B'|
|00001920| 3a 0a 58 58 09 09 09 72 | 65 74 75 72 6e 20 28 27 |:.XX...r|eturn ('|
|00001930| 42 27 29 3b 09 09 2f 2a | 20 43 6f 6d 70 6c 65 74 |B');../*| Complet|
|00001940| 65 20 2a 2f 0a 58 58 09 | 09 63 61 73 65 20 27 41 |e */.XX.|.case 'A|
|00001950| 27 3a 0a 58 58 09 09 64 | 65 66 61 75 6c 74 3a 0a |':.XX..d|efault:.|
|00001960| 58 58 09 09 09 72 65 74 | 75 72 6e 20 28 27 59 27 |XX...ret|urn ('Y'|
|00001970| 29 3b 09 09 2f 2a 20 22 | 41 62 6f 72 74 22 20 2a |);../* "|Abort" *|
|00001980| 2f 0a 58 58 09 09 7d 0a | 58 58 09 7d 0a 58 58 7d |/.XX..}.|XX.}.XX}|
|00001990| 0a 40 2f 2f 45 2a 4f 2a | 46 20 64 63 70 2e 63 2f |.@//E*O*|F dcp.c/|
|000019a0| 2f 0a 63 68 6d 6f 64 20 | 75 3d 72 77 2c 67 3d 72 |/.chmod |u=rw,g=r|
|000019b0| 2c 6f 3d 72 20 64 63 70 | 2e 63 0a 20 0a 65 63 68 |,o=r dcp|.c. .ech|
|000019c0| 6f 20 78 20 2d 20 64 63 | 70 67 70 6b 74 2e 63 0a |o x - dc|pgpkt.c.|
|000019d0| 73 65 64 20 27 73 2f 5e | 58 58 2f 2f 27 20 3e 20 |sed 's/^|XX//' > |
|000019e0| 22 64 63 70 67 70 6b 74 | 2e 63 22 20 3c 3c 27 40 |"dcpgpkt|.c" <<'@|
|000019f0| 2f 2f 45 2a 4f 2a 46 20 | 64 63 70 67 70 6b 74 2e |//E*O*F |dcpgpkt.|
|00001a00| 63 2f 2f 27 0a 58 58 2f | 2a 20 22 44 43 50 22 20 |c//'.XX/|* "DCP" |
|00001a10| 61 20 75 75 63 70 20 63 | 6c 6f 6e 65 2e 20 43 6f |a uucp c|lone. Co|
|00001a20| 70 79 72 69 67 68 74 20 | 52 69 63 68 61 72 64 20 |pyright |Richard |
|00001a30| 48 2e 20 4c 61 6d 62 20 | 31 39 38 35 2c 31 39 38 |H. Lamb |1985,198|
|00001a40| 36 2c 31 39 38 37 20 2a | 2f 0a 58 58 2f 2a 20 73 |6,1987 *|/.XX/* s|
|00001a50| 65 63 6f 6e 64 20 31 2d | 77 69 6e 64 6f 77 20 22 |econd 1-|window "|
|00001a60| 67 22 20 70 72 6f 74 6f | 63 6f 6c 20 2a 2f 0a 58 |g" proto|col */.X|
|00001a70| 58 0a 58 58 23 69 6e 63 | 6c 75 64 65 20 22 64 63 |X.XX#inc|lude "dc|
|00001a80| 70 2e 68 22 0a 58 58 0a | 58 58 23 64 65 66 69 6e |p.h".XX.|XX#defin|
|00001a90| 65 20 50 4b 54 53 49 5a | 45 09 36 34 0a 58 58 23 |e PKTSIZ|E.64.XX#|
|00001aa0| 64 65 66 69 6e 65 20 50 | 4b 54 53 49 5a 32 09 32 |define P|KTSIZ2.2|
|00001ab0| 0a 58 58 23 64 65 66 69 | 6e 65 20 48 44 52 53 49 |.XX#defi|ne HDRSI|
|00001ac0| 5a 45 20 36 0a 58 58 23 | 64 65 66 69 6e 65 20 4d |ZE 6.XX#|define M|
|00001ad0| 41 58 54 52 59 09 35 09 | 2f 2a 20 6f 75 67 68 74 |AXTRY.5.|/* ought|
|00001ae0| 20 74 6f 20 62 65 20 67 | 72 65 61 74 65 72 20 74 | to be g|reater t|
|00001af0| 68 61 6e 20 52 57 49 4e | 44 4f 57 20 2a 2f 0a 58 |han RWIN|DOW */.X|
|00001b00| 58 23 64 65 66 69 6e 65 | 20 53 57 49 4e 44 4f 57 |X#define| SWINDOW|
|00001b10| 09 33 0a 58 58 23 64 65 | 66 69 6e 65 20 4d 41 58 |.3.XX#de|fine MAX|
|00001b20| 45 52 52 09 35 0a 58 58 | 0a 58 58 73 74 61 74 69 |ERR.5.XX|.XXstati|
|00001b30| 63 09 69 6e 74 09 70 6b | 72 65 63 2c 20 70 6b 73 |c.int.pk|rec, pks|
|00001b40| 65 6e 74 2c 20 70 6b 6e | 65 72 72 3b 0a 58 58 0a |ent, pkn|err;.XX.|
|00001b50| 58 58 0a 58 58 67 63 6c | 6f 73 65 70 6b 28 29 0a |XX.XXgcl|osepk().|
|00001b60| 58 58 7b 0a 58 58 09 75 | 6e 73 69 67 6e 65 64 20 |XX{.XX.u|nsigned |
|00001b70| 63 68 61 72 09 74 6d 70 | 5b 50 4b 54 53 49 5a 45 |char.tmp|[PKTSIZE|
|00001b80| 5d 3b 0a 58 58 0a 58 58 | 09 67 73 70 61 63 6b 28 |];.XX.XX|.gspack(|
|00001b90| 31 2c 20 30 2c 20 30 2c | 20 30 2c 20 74 6d 70 29 |1, 0, 0,| 0, tmp)|
|00001ba0| 3b 0a 58 58 09 67 73 70 | 61 63 6b 28 31 2c 20 30 |;.XX.gsp|ack(1, 0|
|00001bb0| 2c 20 30 2c 20 30 2c 20 | 74 6d 70 29 3b 0a 58 58 |, 0, 0, |tmp);.XX|
|00001bc0| 0a 58 58 09 72 65 74 75 | 72 6e 28 30 29 3b 0a 58 |.XX.retu|rn(0);.X|
|00001bd0| 58 7d 0a 58 58 0a 58 58 | 0a 58 58 67 6f 70 65 6e |X}.XX.XX|.XXgopen|
|00001be0| 70 6b 28 29 0a 58 58 7b | 0a 58 58 09 69 6e 74 09 |pk().XX{|.XX.int.|
|00001bf0| 09 69 2c 20 6a 2c 20 6e | 31 2c 20 6e 32 2c 20 6c |.i, j, n|1, n2, l|
|00001c00| 65 6e 3b 0a 58 58 09 75 | 6e 73 69 67 6e 65 64 20 |en;.XX.u|nsigned |
|00001c10| 63 68 61 72 09 74 6d 70 | 5b 50 4b 54 53 49 5a 45 |char.tmp|[PKTSIZE|
|00001c20| 5d 3b 0a 58 58 0a 58 58 | 09 70 6b 72 65 63 20 3d |];.XX.XX|.pkrec =|
|00001c30| 20 30 3b 0a 58 58 09 70 | 6b 73 65 6e 74 20 3d 20 | 0;.XX.p|ksent = |
|00001c40| 31 3b 0a 58 58 09 70 6b | 74 73 69 7a 65 20 3d 20 |1;.XX.pk|tsize = |
|00001c50| 50 4b 54 53 49 5a 45 3b | 0a 58 58 09 6d 73 67 74 |PKTSIZE;|.XX.msgt|
|00001c60| 69 6d 65 20 3d 20 4d 53 | 47 54 49 4d 45 20 2b 20 |ime = MS|GTIME + |
|00001c70| 32 30 3b 0a 58 58 09 70 | 6b 6e 65 72 72 20 3d 20 |20;.XX.p|knerr = |
|00001c80| 30 3b 0a 58 58 09 6a 20 | 3d 20 37 3b 0a 58 58 67 |0;.XX.j |= 7;.XXg|
|00001c90| 73 74 61 3a 0a 58 58 09 | 69 66 20 28 6a 20 3d 3d |sta:.XX.|if (j ==|
|00001ca0| 20 34 29 0a 58 58 09 09 | 72 65 74 75 72 6e 28 30 | 4).XX..|return(0|
|00001cb0| 29 3b 09 2f 2a 20 69 66 | 20 6f 6b 20 2a 2f 0a 58 |);./* if| ok */.X|
|00001cc0| 58 0a 58 58 09 66 6f 72 | 20 28 69 20 3d 20 30 3b |X.XX.for| (i = 0;|
|00001cd0| 20 69 20 3c 20 4d 41 58 | 54 52 59 3b 20 69 2b 2b | i < MAX|TRY; i++|
|00001ce0| 29 20 20 7b 0a 58 58 09 | 09 67 73 70 61 63 6b 28 |) {.XX.|.gspack(|
|00001cf0| 6a 2c 20 30 2c 20 30 2c | 20 30 2c 20 74 6d 70 29 |j, 0, 0,| 0, tmp)|
|00001d00| 3b 0a 58 58 09 09 69 66 | 20 28 67 72 70 61 63 6b |;.XX..if| (grpack|
|00001d10| 28 26 6e 31 2c 20 26 6e | 32 2c 20 26 6c 65 6e 2c |(&n1, &n|2, &len,|
|00001d20| 20 74 6d 70 29 20 3d 3d | 20 6a 29 20 20 7b 0a 58 | tmp) ==| j) {.X|
|00001d30| 58 09 09 09 6a 2d 2d 3b | 0a 58 58 09 09 09 67 6f |X...j--;|.XX...go|
|00001d40| 74 6f 20 67 73 74 61 3b | 0a 58 58 09 09 7d 0a 58 |to gsta;|.XX..}.X|
|00001d50| 58 09 7d 0a 58 58 0a 58 | 58 09 72 65 74 75 72 6e |X.}.XX.X|X.return|
|00001d60| 28 2d 31 29 3b 20 2f 2a | 20 66 61 69 6c 20 2a 2f |(-1); /*| fail */|
|00001d70| 0a 58 58 7d 0a 58 58 0a | 58 58 0a 58 58 2f 2a 0a |.XX}.XX.|XX.XX/*.|
|00001d80| 58 58 20 2a 0a 58 58 20 | 2a 20 67 67 65 74 70 6b |XX *.XX |* ggetpk|
|00001d90| 74 0a 58 58 20 2a 2a 2a | 2a 2a 20 64 65 73 63 72 |t.XX ***|** descr|
|00001da0| 69 70 74 69 6f 6e 3a 20 | 47 65 74 73 20 6e 6f 20 |iption: |Gets no |
|00001db0| 6d 6f 72 65 20 74 68 61 | 6e 20 61 20 70 61 63 6b |more tha|n a pack|
|00001dc0| 65 74 27 73 20 77 6f 72 | 74 68 20 6f 66 20 64 61 |et's wor|th of da|
|00001dd0| 74 61 20 66 72 6f 6d 0a | 58 58 20 2a 2a 2a 2a 2a |ta from.|XX *****|
|00001de0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 74 | | t|
|00001df0| 68 65 20 22 70 61 63 6b | 65 74 20 69 2f 6f 20 73 |he "pack|et i/o s|
|00001e00| 74 61 74 65 20 6d 61 63 | 68 69 6e 65 22 2e 20 4d |tate mac|hine". M|
|00001e10| 61 79 20 68 61 76 65 20 | 74 6f 0a 58 58 20 2a 2a |ay have |to.XX **|
|00001e20| 2a 2a 2a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |*** | |
|00001e30| 20 20 70 65 72 69 6f 64 | 69 63 61 6c 6c 79 20 72 | period|ically r|
|00001e40| 75 6e 20 74 68 65 20 70 | 6b 74 20 6d 61 63 68 69 |un the p|kt machi|
|00001e50| 6e 65 20 74 6f 20 67 65 | 74 20 73 6f 6d 65 0a 58 |ne to ge|t some.X|
|00001e60| 58 20 2a 2a 2a 2a 2a 20 | 20 20 20 20 20 20 20 20 |X ***** | |
|00001e70| 20 20 20 20 20 20 70 61 | 63 6b 65 74 73 2e 0a 58 | pa|ckets..X|
|00001e80| 58 20 2a 20 6f 6e 20 69 | 6e 70 75 74 3a 20 64 6f |X * on i|nput: do|
|00001e90| 6e 74 20 63 61 72 65 20 | 20 20 67 65 74 70 6b 74 |nt care | getpkt|
|00001ea0| 28 64 61 74 61 2c 26 6c | 65 6e 29 20 20 63 68 61 |(data,&l|en) cha|
|00001eb0| 72 20 2a 64 61 74 61 20 | 69 6e 74 20 6c 65 6e 0a |r *data |int len.|
|00001ec0| 58 58 20 2a 20 6f 6e 20 | 72 65 74 75 72 6e 3a 20 |XX * on |return: |
|00001ed0| 64 61 74 61 2b 5c 30 20 | 61 6e 64 20 6c 65 6e 67 |data+\0 |and leng|
|00001ee0| 74 68 20 69 6e 20 6c 65 | 6e 2e 20 72 65 74 28 30 |th in le|n. ret(0|
|00001ef0| 29 20 69 66 20 61 6c 6c | 73 20 77 65 6c 6c 0a 58 |) if all|s well.X|
|00001f00| 58 20 2a 20 72 65 74 28 | 2d 31 29 20 69 66 20 70 |X * ret(|-1) if p|
|00001f10| 72 6f 62 6c 65 6d 73 2e | 28 66 61 69 6c 29 0a 58 |roblems.|(fail).X|
|00001f20| 58 20 2a 2f 0a 58 58 0a | 58 58 67 67 65 74 70 6b |X */.XX.|XXggetpk|
|00001f30| 74 28 64 61 74 61 2c 20 | 6c 65 6e 29 0a 58 58 75 |t(data, |len).XXu|
|00001f40| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 09 2a 64 61 |nsigned |char.*da|
|00001f50| 74 61 3b 0a 58 58 69 6e | 74 09 2a 6c 65 6e 3b 0a |ta;.XXin|t.*len;.|
|00001f60| 58 58 7b 0a 58 58 09 69 | 6e 74 09 09 6e 70 6b 72 |XX{.XX.i|nt..npkr|
|00001f70| 65 63 2c 20 6e 70 6b 73 | 65 6e 74 2c 20 69 2c 20 |ec, npks|ent, i, |
|00001f80| 75 2c 20 6e 6c 65 6e 2c | 20 6e 61 6b 66 6c 67 3b |u, nlen,| nakflg;|
|00001f90| 0a 58 58 09 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |.XX.unsi|gned cha|
|00001fa0| 72 09 74 6d 70 5b 50 4b | 54 53 49 5a 45 5d 3b 0a |r.tmp[PK|TSIZE];.|
|00001fb0| 58 58 0a 58 58 09 6d 73 | 67 74 69 6d 65 20 3d 20 |XX.XX.ms|gtime = |
|00001fc0| 32 20 2a 20 28 4d 53 47 | 54 49 4d 45 20 2b 20 32 |2 * (MSG|TIME + 2|
|00001fd0| 30 29 3b 0a 58 58 09 6e | 61 6b 66 6c 67 20 3d 20 |0);.XX.n|akflg = |
|00001fe0| 30 3b 0a 58 58 0a 58 58 | 09 66 6f 72 20 28 69 20 |0;.XX.XX|.for (i |
|00001ff0| 3d 20 30 3b 20 69 20 3c | 20 4d 41 58 54 52 59 3b |= 0; i <| MAXTRY;|
|00002000| 20 69 2b 2b 29 20 20 7b | 0a 58 58 09 09 73 77 69 | i++) {|.XX..swi|
|00002010| 74 63 68 28 67 72 70 61 | 63 6b 28 26 6e 70 6b 72 |tch(grpa|ck(&npkr|
|00002020| 65 63 2c 20 26 6e 70 6b | 73 65 6e 74 2c 20 26 6e |ec, &npk|sent, &n|
|00002030| 6c 65 6e 2c 20 64 61 74 | 61 29 29 20 20 7b 0a 58 |len, dat|a)) {.X|
|00002040| 58 09 09 63 61 73 65 20 | 44 41 54 41 3a 0a 58 58 |X..case |DATA:.XX|
|00002050| 09 09 09 69 66 20 28 6e | 70 6b 73 65 6e 74 20 21 |...if (n|pksent !|
|00002060| 3d 20 28 28 70 6b 72 65 | 63 20 2b 20 31 29 20 25 |= ((pkre|c + 1) %|
|00002070| 20 38 29 29 20 20 7b 0a | 58 58 20 20 20 20 20 20 | 8)) {.|XX |
|00002080| 20 20 20 20 20 20 20 20 | 20 20 09 09 69 66 20 28 | | ..if (|
|00002090| 64 65 62 75 67 20 3e 20 | 30 29 0a 58 58 09 09 09 |debug > |0).XX...|
|000020a0| 09 09 70 72 69 6e 74 6d | 73 67 28 22 75 6e 65 78 |..printm|sg("unex|
|000020b0| 70 65 63 74 65 64 20 70 | 6b 74 20 25 64 20 22 2c |pected p|kt %d ",|
|000020c0| 20 70 6b 72 65 63 29 3b | 0a 58 58 20 20 20 20 20 | pkrec);|.XX |
|000020d0| 20 20 20 20 20 20 20 20 | 20 20 20 09 09 62 72 65 | | ..bre|
|000020e0| 61 6b 3b 0a 58 58 09 09 | 20 20 20 20 20 20 20 20 |ak;.XX..| |
|000020f0| 7d 20 20 0a 58 58 0a 58 | 58 09 09 20 20 20 20 20 |} .XX.X|X.. |
|00002100| 20 20 20 70 6b 72 65 63 | 20 3d 20 28 70 6b 72 65 | pkrec| = (pkre|
|00002110| 63 20 2b 20 31 29 20 25 | 20 38 3b 0a 58 58 09 09 |c + 1) %| 8;.XX..|
|00002120| 20 20 20 20 20 20 20 20 | 2a 6c 65 6e 20 3d 20 6e | |*len = n|
|00002130| 6c 65 6e 3b 0a 58 58 0a | 58 58 23 69 66 64 65 66 |len;.XX.|XX#ifdef|
|00002140| 20 55 4e 49 46 4c 45 58 | 09 09 2f 2a 20 63 68 61 | UNIFLEX|../* cha|
|00002150| 6e 67 65 20 61 6c 6c 20 | 4c 46 20 74 6f 20 43 52 |nge all |LF to CR|
|00002160| 20 2a 2f 0a 58 58 0a 58 | 58 09 09 09 66 6f 72 20 | */.XX.X|X...for |
|00002170| 28 75 20 3d 20 30 3b 20 | 75 20 3c 20 6e 6c 65 6e |(u = 0; |u < nlen|
|00002180| 3b 20 75 2b 2b 29 20 20 | 7b 0a 58 58 09 09 09 09 |; u++) |{.XX....|
|00002190| 69 66 20 28 64 61 74 61 | 5b 75 5d 20 3d 3d 20 30 |if (data|[u] == 0|
|000021a0| 78 30 41 29 0a 58 58 09 | 09 09 09 09 64 61 74 61 |x0A).XX.|....data|
|000021b0| 5b 75 5d 20 3d 20 30 78 | 30 44 3b 0a 58 58 09 09 |[u] = 0x|0D;.XX..|
|000021c0| 09 7d 0a 58 58 23 65 6e | 64 69 66 0a 58 58 0a 58 |.}.XX#en|dif.XX.X|
|000021d0| 58 09 09 20 20 20 20 20 | 20 20 20 69 66 20 28 6e |X.. | if (n|
|000021e0| 61 6b 66 6c 67 29 0a 58 | 58 09 09 20 20 20 20 20 |akflg).X|X.. |
|000021f0| 20 20 20 09 67 73 70 61 | 63 6b 28 4e 41 4b 2c 20 | .gspa|ck(NAK, |
|00002200| 70 6b 72 65 63 2c 20 30 | 2c 20 30 2c 20 74 6d 70 |pkrec, 0|, 0, tmp|
|00002210| 29 3b 0a 58 58 09 09 20 | 20 20 20 20 20 20 20 65 |);.XX.. | e|
|00002220| 6c 73 65 0a 58 58 09 09 | 20 20 20 20 20 20 09 09 |lse.XX..| ..|
|00002230| 67 73 70 61 63 6b 28 41 | 43 4b 2c 20 70 6b 72 65 |gspack(A|CK, pkre|
|00002240| 63 2c 20 30 2c 20 30 2c | 20 74 6d 70 29 3b 0a 58 |c, 0, 0,| tmp);.X|
|00002250| 58 0a 58 58 09 09 20 20 | 20 20 20 20 20 20 72 65 |X.XX.. | re|
|00002260| 74 75 72 6e 28 30 29 3b | 0a 58 58 09 09 63 61 73 |turn(0);|.XX..cas|
|00002270| 65 20 45 52 52 4f 52 3a | 0a 58 58 09 09 09 6e 61 |e ERROR:|.XX...na|
|00002280| 6b 66 6c 67 20 3d 20 31 | 3b 0a 58 58 0a 58 58 09 |kflg = 1|;.XX.XX.|
|00002290| 09 20 20 20 20 20 20 20 | 20 69 66 20 28 64 65 62 |. | if (deb|
|000022a0| 75 67 20 3e 20 30 29 0a | 58 58 09 09 09 09 70 72 |ug > 0).|XX....pr|
|000022b0| 69 6e 74 6d 73 67 28 22 | 63 68 65 63 6b 73 75 6d |intmsg("|checksum|
|000022c0| 20 65 72 72 6f 72 20 70 | 6b 74 20 25 64 20 22 2c | error p|kt %d ",|
|000022d0| 20 70 6b 72 65 63 29 3b | 0a 58 58 0a 58 58 09 09 | pkrec);|.XX.XX..|
|000022e0| 20 20 20 20 20 20 20 20 | 62 72 65 61 6b 3b 20 20 | |break; |
|000022f0| 0a 58 58 09 09 63 61 73 | 65 20 43 4c 4f 53 45 3a |.XX..cas|e CLOSE:|
|00002300| 0a 58 58 09 09 09 72 65 | 74 75 72 6e 28 2d 31 29 |.XX...re|turn(-1)|
|00002310| 3b 0a 58 58 09 09 64 65 | 66 61 75 6c 74 3a 0a 58 |;.XX..de|fault:.X|
|00002320| 58 09 09 09 62 72 65 61 | 6b 3b 20 2f 2a 20 61 6e |X...brea|k; /* an|
|00002330| 79 74 68 69 6e 67 20 65 | 6c 73 65 3a 42 41 44 48 |ything e|lse:BADH|
|00002340| 44 52 2c 4c 4f 53 54 2c | 50 41 52 54 49 41 4c 2c |DR,LOST,|PARTIAL,|
|00002350| 55 4e 4b 4e 4f 57 4e 2a | 2f 0a 58 58 09 09 7d 0a |UNKNOWN*|/.XX..}.|
|00002360| 58 58 09 7d 0a 58 58 0a | 58 58 09 70 6b 6e 65 72 |XX.}.XX.|XX.pkner|
|00002370| 72 2b 2b 3b 0a 58 58 09 | 69 66 20 28 70 6b 6e 65 |r++;.XX.|if (pkne|
|00002380| 72 72 20 3e 3d 20 4d 41 | 58 45 52 52 29 0a 58 58 |rr >= MA|XERR).XX|
|00002390| 09 09 72 65 74 75 72 6e | 28 2d 31 29 3b 0a 58 58 |..return|(-1);.XX|
|000023a0| 0a 58 58 09 72 65 74 75 | 72 6e 28 30 29 3b 0a 58 |.XX.retu|rn(0);.X|
|000023b0| 58 7d 0a 58 58 0a 58 58 | 0a 58 58 2f 2a 0a 58 58 |X}.XX.XX|.XX/*.XX|
|000023c0| 20 2a 0a 58 58 20 2a 20 | 20 73 65 6e 64 70 6b 74 | *.XX * | sendpkt|
|000023d0| 0a 58 58 20 2a 0a 58 58 | 20 2a 2a 2a 2a 2a 20 20 |.XX *.XX| ***** |
|000023e0| 20 64 65 73 63 72 69 70 | 74 69 6f 6e 3a 20 20 20 | descrip|tion: |
|000023f0| 20 50 75 74 20 61 74 20 | 6d 6f 73 74 20 61 20 70 | Put at |most a p|
|00002400| 61 63 6b 65 74 27 73 20 | 77 6f 72 74 68 20 6f 66 |acket's |worth of|
|00002410| 20 64 61 74 61 20 20 69 | 6e 20 74 68 65 20 70 6b | data i|n the pk|
|00002420| 74 20 73 74 61 74 65 0a | 58 58 20 2a 2a 2a 2a 2a |t state.|XX *****|
|00002430| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002440| 20 20 20 6d 61 63 68 69 | 6e 65 20 66 6f 72 20 78 | machi|ne for x|
|00002450| 6d 69 73 73 69 6f 6e 2e | 0a 58 58 20 2a 2a 2a 2a |mission.|.XX ****|
|00002460| 2a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |* | |
|00002470| 20 20 20 20 4d 61 79 20 | 68 61 76 65 20 74 6f 20 | May |have to |
|00002480| 72 75 6e 20 74 68 65 20 | 70 6b 74 20 6d 61 63 68 |run the |pkt mach|
|00002490| 69 6e 65 20 61 20 66 65 | 77 20 74 69 6d 65 73 20 |ine a fe|w times |
|000024a0| 74 6f 20 67 65 74 0a 58 | 58 20 2a 2a 2a 2a 2a 20 |to get.X|X ***** |
|000024b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000024c0| 20 20 61 6e 20 61 76 61 | 69 6c 61 62 6c 65 20 6f | an ava|ilable o|
|000024d0| 75 74 70 75 74 20 73 6c | 6f 74 2e 0a 58 58 20 2a |utput sl|ot..XX *|
|000024e0| 0a 58 58 20 2a 20 6f 6e | 20 69 6e 70 75 74 3a 20 |.XX * on| input: |
|000024f0| 63 68 61 72 20 2a 64 61 | 74 61 20 69 6e 74 20 6c |char *da|ta int l|
|00002500| 65 6e 2c 66 6c 67 3b 20 | 6c 65 6e 3d 6c 65 6e 67 |en,flg; |len=leng|
|00002510| 74 68 20 6f 66 20 64 61 | 74 61 20 69 6e 20 64 61 |th of da|ta in da|
|00002520| 74 61 2e 0a 58 58 20 2a | 20 20 20 20 20 20 20 20 |ta..XX *| |
|00002530| 20 20 20 66 6c 67 3d 32 | 20 6a 75 73 74 20 73 65 | flg=2| just se|
|00002540| 6e 64 20 74 68 65 20 70 | 61 63 6b 65 74 20 77 69 |nd the p|acket wi|
|00002550| 74 68 20 6e 6f 20 77 61 | 69 74 20 66 6f 72 20 61 |th no wa|it for a|
|00002560| 63 6b 2e 0a 58 58 20 2a | 20 20 20 20 20 20 20 20 |ck..XX *| |
|00002570| 20 20 20 66 6c 67 3e 30 | 20 7a 65 72 6f 20 6f 75 | flg>0| zero ou|
|00002580| 74 20 74 68 65 20 75 6e | 75 73 65 64 20 70 61 72 |t the un|used par|
|00002590| 74 20 6f 66 20 74 68 65 | 20 62 75 66 66 65 72 2e |t of the| buffer.|
|000025a0| 20 28 66 6f 72 20 55 55 | 43 50 20 22 6d 73 67 22 | (for UU|CP "msg"|
|000025b0| 0a 58 58 20 2a 20 20 20 | 20 20 20 20 20 20 20 20 |.XX * | |
|000025c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000025d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000025e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000025f0| 20 20 20 20 20 20 20 20 | 70 6b 74 73 29 0a 58 58 | |pkts).XX|
|00002600| 20 2a 20 20 20 20 20 20 | 20 20 20 20 20 66 6c 67 | * | flg|
|00002610| 3d 30 20 6e 6f 72 6d 61 | 6c 20 64 61 74 61 0a 58 |=0 norma|l data.X|
|00002620| 58 20 2a 20 72 65 74 75 | 72 6e 3a 20 20 20 72 65 |X * retu|rn: re|
|00002630| 74 28 30 29 20 69 66 20 | 61 6c 6c 73 20 77 65 6c |t(0) if |alls wel|
|00002640| 6c 20 72 65 74 28 2d 31 | 29 20 69 66 20 70 72 6f |l ret(-1|) if pro|
|00002650| 62 6c 65 6d 73 20 28 66 | 61 69 6c 29 0a 58 58 20 |blems (f|ail).XX |
|00002660| 2a 0a 58 58 20 2a 2f 0a | 58 58 0a 58 58 67 73 65 |*.XX */.|XX.XXgse|
|00002670| 6e 64 70 6b 74 28 64 61 | 74 61 2c 20 6c 65 6e 2c |ndpkt(da|ta, len,|
|00002680| 20 6d 73 67 29 0a 58 58 | 75 6e 73 69 67 6e 65 64 | msg).XX|unsigned|
|00002690| 20 63 68 61 72 09 2a 64 | 61 74 61 3b 0a 58 58 69 | char.*d|ata;.XXi|
|000026a0| 6e 74 09 6c 65 6e 2c 20 | 6d 73 67 3b 0a 58 58 7b |nt.len, |msg;.XX{|
|000026b0| 0a 58 58 09 69 6e 74 09 | 09 6e 6c 65 6e 2c 20 6e |.XX.int.|.nlen, n|
|000026c0| 70 6b 72 65 63 2c 20 6e | 70 6b 73 65 6e 74 2c 20 |pkrec, n|pksent, |
|000026d0| 69 3b 0a 58 58 09 75 6e | 73 69 67 6e 65 64 20 63 |i;.XX.un|signed c|
|000026e0| 68 61 72 09 74 6d 70 5b | 50 4b 54 53 49 5a 45 5d |har.tmp[|PKTSIZE]|
|000026f0| 3b 0a 58 58 0a 58 58 09 | 6d 73 67 74 69 6d 65 20 |;.XX.XX.|msgtime |
|00002700| 3d 20 4d 53 47 54 49 4d | 45 20 2b 20 32 30 3b 0a |= MSGTIM|E + 20;.|
|00002710| 58 58 0a 58 58 23 69 66 | 64 65 66 20 55 4e 49 46 |XX.XX#if|def UNIF|
|00002720| 4c 45 58 09 2f 2a 20 63 | 68 61 6e 67 65 20 61 6c |LEX./* c|hange al|
|00002730| 6c 20 43 52 20 74 6f 20 | 4c 46 20 2a 2f 0a 58 58 |l CR to |LF */.XX|
|00002740| 0a 58 58 09 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 |.XX.for |(i = 0; |
|00002750| 69 20 3c 20 73 74 72 6c | 65 6e 28 64 61 74 61 29 |i < strl|en(data)|
|00002760| 3b 20 69 2b 2b 29 20 20 | 7b 0a 58 58 09 09 69 66 |; i++) |{.XX..if|
|00002770| 20 28 64 61 74 61 5b 69 | 5d 20 3d 3d 20 30 78 30 | (data[i|] == 0x0|
|00002780| 44 29 0a 58 58 09 09 09 | 64 61 74 61 5b 69 5d 20 |D).XX...|data[i] |
|00002790| 3d 20 30 78 30 41 3b 0a | 58 58 09 7d 0a 58 58 23 |= 0x0A;.|XX.}.XX#|
|000027a0| 65 6e 64 69 66 0a 58 58 | 0a 58 58 09 69 66 20 28 |endif.XX|.XX.if (|
|000027b0| 6d 73 67 29 20 20 7b 0a | 58 58 09 09 6c 65 6e 20 |msg) {.|XX..len |
|000027c0| 3d 20 50 4b 54 53 49 5a | 45 3b 0a 58 58 09 09 66 |= PKTSIZ|E;.XX..f|
|000027d0| 6f 72 20 28 69 20 3d 20 | 73 74 72 6c 65 6e 28 64 |or (i = |strlen(d|
|000027e0| 61 74 61 29 3b 20 69 20 | 3c 20 6c 65 6e 3b 20 69 |ata); i |< len; i|
|000027f0| 2b 2b 29 0a 58 58 09 09 | 09 64 61 74 61 5b 69 5d |++).XX..|.data[i]|
|00002800| 20 3d 20 27 5c 30 27 3b | 0a 58 58 09 7d 0a 58 58 | = '\0';|.XX.}.XX|
|00002810| 0a 58 58 09 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 |.XX.for |(i = 0; |
|00002820| 69 20 3c 20 4d 41 58 54 | 52 59 3b 20 69 2b 2b 29 |i < MAXT|RY; i++)|
|00002830| 20 20 7b 0a 58 58 09 09 | 67 73 70 61 63 6b 28 44 | {.XX..|gspack(D|
|00002840| 41 54 41 2c 20 70 6b 72 | 65 63 2c 20 70 6b 73 65 |ATA, pkr|ec, pkse|
|00002850| 6e 74 2c 20 6c 65 6e 2c | 20 64 61 74 61 29 3b 0a |nt, len,| data);.|
|00002860| 58 58 09 09 69 66 20 28 | 6d 73 67 20 3d 3d 20 32 |XX..if (|msg == 2|
|00002870| 29 0a 58 58 09 09 09 72 | 65 74 75 72 6e 28 30 29 |).XX...r|eturn(0)|
|00002880| 3b 0a 58 58 0a 58 58 09 | 09 73 77 69 74 63 68 28 |;.XX.XX.|.switch(|
|00002890| 67 72 70 61 63 6b 28 26 | 6e 70 6b 72 65 63 2c 20 |grpack(&|npkrec, |
|000028a0| 26 6e 70 6b 73 65 6e 74 | 2c 20 26 6e 6c 65 6e 2c |&npksent|, &nlen,|
|000028b0| 20 74 6d 70 29 29 20 20 | 7b 0a 58 58 09 09 63 61 | tmp)) |{.XX..ca|
|000028c0| 73 65 20 41 43 4b 3a 20 | 2f 2a 20 49 67 6e 6f 72 |se ACK: |/* Ignor|
|000028d0| 65 20 77 72 6f 6e 67 20 | 41 43 4b 27 73 20 2a 2f |e wrong |ACK's */|
|000028e0| 0a 58 58 09 09 09 69 66 | 20 28 6e 70 6b 72 65 63 |.XX...if| (npkrec|
|000028f0| 20 21 3d 20 70 6b 73 65 | 6e 74 29 20 20 7b 0a 58 | != pkse|nt) {.X|
|00002900| 58 09 09 20 20 20 20 20 | 20 20 20 09 69 66 20 28 |X.. | .if (|
|00002910| 64 65 62 75 67 20 3e 20 | 30 29 0a 58 58 09 09 09 |debug > |0).XX...|
|00002920| 09 09 70 72 69 6e 74 6d | 73 67 28 22 77 72 6f 6e |..printm|sg("wron|
|00002930| 67 20 52 52 20 25 64 20 | 28 25 64 29 20 22 2c 0a |g RR %d |(%d) ",.|
|00002940| 58 58 09 09 09 09 09 20 | 20 70 6b 73 65 6e 74 2c |XX..... | pksent,|
|00002950| 20 6e 70 6b 72 65 63 29 | 3b 0a 58 58 09 09 09 09 | npkrec)|;.XX....|
|00002960| 62 72 65 61 6b 3b 0a 58 | 58 09 20 20 20 20 20 20 |break;.X|X. |
|00002970| 20 20 09 7d 20 0a 58 58 | 0a 58 58 09 20 20 20 20 | .} .XX|.XX. |
|00002980| 20 20 20 20 09 70 6b 73 | 65 6e 74 20 3d 20 28 31 | .pks|ent = (1|
|00002990| 20 2b 20 70 6b 73 65 6e | 74 29 20 25 20 38 3b 0a | + pksen|t) % 8;.|
|000029a0| 58 58 09 20 20 20 20 20 | 20 20 20 09 72 65 74 75 |XX. | .retu|
|000029b0| 72 6e 28 30 29 3b 0a 58 | 58 09 09 63 61 73 65 20 |rn(0);.X|X..case |
|000029c0| 4e 41 4b 3a 0a 58 58 09 | 09 09 69 66 20 28 64 65 |NAK:.XX.|..if (de|
|000029d0| 62 75 67 20 3e 20 30 29 | 0a 58 58 09 09 09 09 70 |bug > 0)|.XX....p|
|000029e0| 72 69 6e 74 6d 73 67 28 | 22 52 45 4a 20 25 64 20 |rintmsg(|"REJ %d |
|000029f0| 22 2c 20 6e 70 6b 72 65 | 63 29 3b 0a 58 58 0a 58 |", npkre|c);.XX.X|
|00002a00| 58 09 09 20 20 20 20 20 | 20 20 20 69 66 20 28 6e |X.. | if (n|
|00002a10| 70 6b 72 65 63 20 21 3d | 20 70 6b 73 65 6e 74 29 |pkrec !=| pksent)|
|00002a20| 20 20 7b 0a 58 58 09 20 | 20 20 20 20 20 20 20 09 | {.XX. | .|
|00002a30| 09 69 66 20 28 64 65 62 | 75 67 20 3e 20 30 29 0a |.if (deb|ug > 0).|
|00002a40| 58 58 09 09 09 09 09 70 | 72 69 6e 74 6d 73 67 28 |XX.....p|rintmsg(|
|00002a50| 22 77 72 6f 6e 67 20 4e | 41 4b 20 52 4a 20 25 64 |"wrong N|AK RJ %d|
|00002a60| 20 28 25 64 29 22 2c 0a | 58 58 09 09 09 09 09 20 | (%d)",.|XX..... |
|00002a70| 20 70 6b 73 65 6e 74 2c | 20 6e 70 6b 72 65 63 29 | pksent,| npkrec)|
|00002a80| 3b 0a 58 58 09 09 09 09 | 62 72 65 61 6b 3b 0a 58 |;.XX....|break;.X|
|00002a90| 58 09 09 09 7d 0a 58 58 | 0a 58 58 09 09 09 70 6b |X...}.XX|.XX...pk|
|00002aa0| 73 65 6e 74 20 3d 20 28 | 31 20 2b 20 70 6b 73 65 |sent = (|1 + pkse|
|00002ab0| 6e 74 29 20 25 20 38 3b | 0a 58 58 09 09 09 72 65 |nt) % 8;|.XX...re|
|00002ac0| 74 75 72 6e 28 30 29 3b | 0a 58 58 09 09 63 61 73 |turn(0);|.XX..cas|
|00002ad0| 65 20 43 4c 4f 53 45 3a | 0a 58 58 09 09 09 72 65 |e CLOSE:|.XX...re|
|00002ae0| 74 75 72 6e 28 2d 31 29 | 3b 0a 58 58 09 09 64 65 |turn(-1)|;.XX..de|
|00002af0| 66 61 75 6c 74 3a 0a 58 | 58 09 09 09 62 72 65 61 |fault:.X|X...brea|
|00002b00| 6b 3b 0a 58 58 09 09 7d | 0a 58 58 09 7d 0a 58 58 |k;.XX..}|.XX.}.XX|
|00002b10| 0a 58 58 09 70 6b 6e 65 | 72 72 2b 2b 3b 0a 58 58 |.XX.pkne|rr++;.XX|
|00002b20| 09 69 66 20 28 70 6b 6e | 65 72 72 20 3e 3d 20 4d |.if (pkn|err >= M|
|00002b30| 41 58 45 52 52 29 0a 58 | 58 09 09 72 65 74 75 72 |AXERR).X|X..retur|
|00002b40| 6e 28 2d 31 29 3b 0a 58 | 58 0a 58 58 09 72 65 74 |n(-1);.X|X.XX.ret|
|00002b50| 75 72 6e 28 30 29 3b 0a | 58 58 7d 0a 58 58 0a 58 |urn(0);.|XX}.XX.X|
|00002b60| 58 0a 58 58 2f 2a 0a 58 | 58 20 2a 0a 58 58 20 2a |X.XX/*.X|X *.XX *|
|00002b70| 0a 58 58 20 2a 20 20 20 | 20 20 20 73 65 6e 64 20 |.XX * | send |
|00002b80| 61 20 70 61 63 6b 65 74 | 0a 58 58 20 2a 20 6e 74 |a packet|.XX * nt|
|00002b90| 32 3d 74 79 70 65 20 6e | 74 33 3d 70 6b 72 65 63 |2=type n|t3=pkrec|
|00002ba0| 20 6e 74 34 3d 70 6b 73 | 65 6e 74 20 6c 65 6e 3d | nt4=pks|ent len=|
|00002bb0| 6c 65 6e 67 74 68 3c 3d | 50 4b 54 53 49 5a 45 20 |length<=|PKTSIZE |
|00002bc0| 63 6e 74 31 3d 20 64 61 | 74 61 20 2a 20 72 65 74 |cnt1= da|ta * ret|
|00002bd0| 28 30 29 20 61 6c 77 61 | 79 73 0a 58 58 20 2a 2f |(0) alwa|ys.XX */|
|00002be0| 0a 58 58 0a 58 58 67 73 | 70 61 63 6b 28 6e 74 32 |.XX.XXgs|pack(nt2|
|00002bf0| 2c 6e 74 33 2c 6e 74 34 | 2c 6c 65 6e 2c 63 6e 74 |,nt3,nt4|,len,cnt|
|00002c00| 31 29 0a 58 58 69 6e 74 | 09 6e 74 32 2c 20 6e 74 |1).XXint|.nt2, nt|
|00002c10| 33 2c 20 6e 74 34 2c 20 | 6c 65 6e 3b 0a 58 58 75 |3, nt4, |len;.XXu|
|00002c20| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 09 2a 63 6e |nsigned |char.*cn|
|00002c30| 74 31 3b 0a 58 58 7b 0a | 58 58 09 75 6e 73 69 67 |t1;.XX{.|XX.unsig|
|00002c40| 6e 65 64 20 69 6e 74 09 | 63 68 65 63 6b 2c 20 69 |ned int.|check, i|
|00002c50| 3b 0a 58 58 09 75 6e 73 | 69 67 6e 65 64 20 63 68 |;.XX.uns|igned ch|
|00002c60| 61 72 09 63 32 2c 20 70 | 6b 74 5b 48 44 52 53 49 |ar.c2, p|kt[HDRSI|
|00002c70| 5a 45 5d 3b 0a 58 58 0a | 58 58 09 69 66 20 28 6c |ZE];.XX.|XX.if (l|
|00002c80| 65 6e 20 3e 20 36 34 29 | 0a 58 58 09 09 6c 65 6e |en > 64)|.XX..len|
|00002c90| 20 3d 20 36 34 3b 0a 58 | 58 0a 58 58 09 69 66 20 | = 64;.X|X.XX.if |
|00002ca0| 28 6c 65 6e 20 3d 3d 20 | 30 29 0a 58 58 09 09 63 |(len == |0).XX..c|
|00002cb0| 6e 74 31 5b 30 5d 20 3d | 20 27 5c 30 27 3b 0a 58 |nt1[0] =| '\0';.X|
|00002cc0| 58 0a 58 58 09 69 66 20 | 28 64 65 62 75 67 20 3e |X.XX.if |(debug >|
|00002cd0| 20 30 29 20 20 7b 0a 58 | 58 09 09 70 72 69 6e 74 | 0) {.X|X..print|
|00002ce0| 6d 73 67 28 22 73 65 6e | 64 20 70 61 63 6b 65 74 |msg("sen|d packet|
|00002cf0| 20 74 79 70 65 20 25 64 | 22 2c 20 6e 74 32 29 3b | type %d|", nt2);|
|00002d00| 0a 58 58 09 09 70 72 69 | 6e 74 6d 73 67 28 22 20 |.XX..pri|ntmsg(" |
|00002d10| 20 6e 75 6d 20 3d 20 25 | 64 20 6e 20 3d 20 25 64 | num = %|d n = %d|
|00002d20| 22 2c 20 6e 74 33 2c 20 | 6e 74 34 29 3b 0a 58 58 |", nt3, |nt4);.XX|
|00002d30| 09 09 70 72 69 6e 74 6d | 73 67 28 22 20 20 6c 65 |..printm|sg(" le|
|00002d40| 6e 20 3d 20 25 64 20 64 | 61 74 61 20 3d 5c 6e 7c |n = %d d|ata =\n||
|00002d50| 25 73 7c 22 2c 20 6c 65 | 6e 2c 20 63 6e 74 31 29 |%s|", le|n, cnt1)|
|00002d60| 3b 0a 58 58 09 7d 0a 58 | 58 0a 58 58 09 63 32 20 |;.XX.}.X|X.XX.c2 |
|00002d70| 3d 20 27 5c 30 27 3b 0a | 58 58 09 70 6b 74 5b 30 |= '\0';.|XX.pkt[0|
|00002d80| 5d 20 3d 20 27 5c 30 32 | 30 27 3b 0a 58 58 09 70 |] = '\02|0';.XX.p|
|00002d90| 6b 74 5b 34 5d 20 3d 20 | 6e 74 32 20 3c 3c 20 33 |kt[4] = |nt2 << 3|
|00002da0| 3b 0a 58 58 09 6e 74 32 | 20 26 3d 20 37 3b 0a 58 |;.XX.nt2| &= 7;.X|
|00002db0| 58 0a 58 58 09 73 77 69 | 74 63 68 20 28 6e 74 32 |X.XX.swi|tch (nt2|
|00002dc0| 29 20 20 7b 0a 58 58 09 | 63 61 73 65 20 31 3a 0a |) {.XX.|case 1:.|
|00002dd0| 58 58 09 20 20 20 20 20 | 20 62 72 65 61 6b 3b 20 |XX. | break; |
|00002de0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002df0| 20 2f 2a 20 73 74 6f 70 | 20 70 72 6f 74 6f 63 6f | /* stop| protoco|
|00002e00| 6c 20 2a 2f 0a 58 58 09 | 63 61 73 65 20 32 3a 0a |l */.XX.|case 2:.|
|00002e10| 58 58 09 20 20 20 20 20 | 20 70 6b 74 5b 34 5d 20 |XX. | pkt[4] |
|00002e20| 2b 3d 20 6e 74 33 3b 0a | 58 58 09 20 20 20 20 20 |+= nt3;.|XX. |
|00002e30| 20 62 72 65 61 6b 3b 20 | 20 20 2f 2a 20 72 65 6a | break; | /* rej|
|00002e40| 65 63 74 20 20 20 20 20 | 20 20 20 2a 2f 0a 58 58 |ect | */.XX|
|00002e50| 09 63 61 73 65 20 33 3a | 0a 58 58 09 20 20 20 20 |.case 3:|.XX. |
|00002e60| 20 20 62 72 65 61 6b 3b | 0a 58 58 09 63 61 73 65 | break;|.XX.case|
|00002e70| 20 34 3a 0a 58 58 09 20 | 20 20 20 20 20 70 6b 74 | 4:.XX. | pkt|
|00002e80| 5b 34 5d 20 2b 3d 20 6e | 74 33 3b 0a 58 58 09 20 |[4] += n|t3;.XX. |
|00002e90| 20 20 20 20 20 62 72 65 | 61 6b 3b 20 20 20 2f 2a | bre|ak; /*|
|00002ea0| 20 61 63 6b 20 20 20 20 | 20 20 20 20 20 20 2a 2f | ack | */|
|00002eb0| 0a 58 58 09 63 61 73 65 | 20 35 3a 0a 58 58 09 20 |.XX.case| 5:.XX. |
|00002ec0| 20 20 20 20 20 70 6b 74 | 5b 34 5d 20 2b 3d 20 53 | pkt|[4] += S|
|00002ed0| 57 49 4e 44 4f 57 3b 0a | 58 58 09 20 20 20 20 20 |WINDOW;.|XX. |
|00002ee0| 20 62 72 65 61 6b 3b 20 | 20 20 2f 2a 20 33 20 77 | break; | /* 3 w|
|00002ef0| 69 6e 64 6f 77 73 20 2a | 2f 0a 58 58 09 63 61 73 |indows *|/.XX.cas|
|00002f00| 65 20 36 3a 0a 58 58 09 | 20 20 20 20 20 20 70 6b |e 6:.XX.| pk|
|00002f10| 74 5b 34 5d 20 2b 3d 20 | 31 3b 0a 58 58 09 20 20 |t[4] += |1;.XX. |
|00002f20| 20 20 20 20 62 72 65 61 | 6b 3b 20 20 20 2f 2a 20 | brea|k; /* |
|00002f30| 70 6b 74 73 69 7a 20 3d | 20 36 34 20 28 31 29 20 |pktsiz =| 64 (1) |
|00002f40| 2a 2f 0a 58 58 09 63 61 | 73 65 20 37 3a 0a 58 58 |*/.XX.ca|se 7:.XX|
|00002f50| 09 20 20 20 20 20 20 70 | 6b 74 5b 34 5d 20 2b 3d |. p|kt[4] +=|
|00002f60| 20 53 57 49 4e 44 4f 57 | 3b 0a 58 58 09 20 20 20 | SWINDOW|;.XX. |
|00002f70| 20 20 20 62 72 65 61 6b | 3b 20 20 20 2f 2a 20 33 | break|; /* 3|
|00002f80| 20 77 69 6e 64 6f 77 73 | 20 2a 2f 0a 58 58 09 63 | windows| */.XX.c|
|00002f90| 61 73 65 20 30 3a 0a 58 | 58 09 20 20 20 20 20 20 |ase 0:.X|X. |
|00002fa0| 70 6b 74 5b 34 5d 20 2b | 3d 20 30 78 38 30 20 2b |pkt[4] +|= 0x80 +|
|00002fb0| 20 6e 74 33 20 2b 20 28 | 6e 74 34 20 3c 3c 20 33 | nt3 + (|nt4 << 3|
|00002fc0| 29 3b 0a 58 58 0a 58 58 | 20 20 20 20 20 20 20 20 |);.XX.XX| |
|00002fd0| 20 20 20 20 20 20 63 32 | 20 3d 20 28 50 4b 54 53 | c2| = (PKTS|
|00002fe0| 49 5a 45 20 2d 20 6c 65 | 6e 29 20 26 20 30 78 66 |IZE - le|n) & 0xf|
|00002ff0| 66 3b 0a 58 58 20 20 20 | 20 20 20 20 20 20 20 20 |f;.XX | |
|00003000| 20 20 20 69 66 20 28 63 | 32 29 20 20 7b 0a 58 58 | if (c|2) {.XX|
|00003010| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003020| 20 20 20 20 20 20 20 20 | 70 6b 74 5b 34 5d 20 2b | |pkt[4] +|
|00003030| 3d 20 30 78 34 30 3b 20 | 20 20 2f 2a 20 69 66 20 |= 0x40; | /* if |
|00003040| 6c 65 6e 20 3c 20 50 4b | 54 53 49 5a 45 20 2a 2f |len < PK|TSIZE */|
|00003050| 0a 58 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.XX | |
|00003060| 20 20 20 20 20 20 20 20 | 20 20 20 66 6f 72 20 28 | | for (|
|00003070| 69 20 3d 20 50 4b 54 53 | 49 5a 45 20 2d 20 31 3b |i = PKTS|IZE - 1;|
|00003080| 20 69 20 3e 20 30 3b 20 | 69 2d 2d 29 0a 58 58 09 | i > 0; |i--).XX.|
|00003090| 09 09 09 63 6e 74 31 5b | 69 5d 20 3d 20 63 6e 74 |...cnt1[|i] = cnt|
|000030a0| 31 5b 69 20 2d 20 31 5d | 3b 0a 58 58 0a 58 58 20 |1[i - 1]|;.XX.XX |
|000030b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000030c0| 20 20 20 20 20 20 20 63 | 6e 74 31 5b 30 5d 20 3d | c|nt1[0] =|
|000030d0| 20 63 32 3b 0a 58 58 09 | 09 7d 0a 58 58 20 20 20 | c2;.XX.|.}.XX |
|000030e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|000030f0| 61 6b 3b 0a 58 58 09 7d | 0a 58 58 0a 58 58 09 70 |ak;.XX.}|.XX.XX.p|
|00003100| 6b 74 5b 34 5d 20 26 3d | 20 30 78 66 66 3b 0a 58 |kt[4] &=| 0xff;.X|
|00003110| 58 0a 58 58 09 69 66 20 | 28 6e 74 32 20 21 3d 20 |X.XX.if |(nt2 != |
|00003120| 44 41 54 41 29 20 20 7b | 0a 58 58 09 20 20 20 20 |DATA) {|.XX. |
|00003130| 20 20 20 20 70 6b 74 5b | 31 5d 20 3d 20 39 3b 20 | pkt[|1] = 9; |
|00003140| 20 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 63 | | /* c|
|00003150| 6f 6e 74 72 6f 6c 20 70 | 61 63 6b 65 74 20 73 69 |ontrol p|acket si|
|00003160| 7a 65 20 3d 20 30 20 28 | 39 29 20 2a 2f 0a 58 58 |ze = 0 (|9) */.XX|
|00003170| 09 09 63 68 65 63 6b 20 | 3d 20 70 6b 74 5b 34 5d |..check |= pkt[4]|
|00003180| 3b 0a 58 58 09 7d 20 65 | 6c 73 65 20 7b 0a 58 58 |;.XX.} e|lse {.XX|
|00003190| 09 20 20 20 20 20 20 20 | 20 70 6b 74 5b 31 5d 20 |. | pkt[1] |
|000031a0| 3d 20 50 4b 54 53 49 5a | 32 3b 20 20 20 20 20 20 |= PKTSIZ|2; |
|000031b0| 20 20 20 20 20 20 20 2f | 2a 20 64 61 74 61 20 70 | /|* data p|
|000031c0| 61 63 6b 65 74 20 73 69 | 7a 65 20 3d 20 36 34 20 |acket si|ze = 64 |
|000031d0| 28 32 29 20 2a 2f 0a 58 | 58 09 20 20 20 20 20 20 |(2) */.X|X. |
|000031e0| 20 20 63 68 65 63 6b 20 | 3d 20 63 68 65 63 6b 73 | check |= checks|
|000031f0| 75 6d 28 63 6e 74 31 2c | 20 50 4b 54 53 49 5a 45 |um(cnt1,| PKTSIZE|
|00003200| 29 3b 0a 58 58 09 09 69 | 20 3d 20 70 6b 74 5b 34 |);.XX..i| = pkt[4|
|00003210| 5d 3b 09 2f 2a 20 67 6f | 74 20 74 6f 20 64 6f 20 |];./* go|t to do |
|00003220| 74 68 69 73 20 6f 6e 20 | 50 43 20 66 6f 72 20 65 |this on |PC for e|
|00003230| 78 2d 6f 72 20 68 69 67 | 68 20 62 69 74 73 20 2a |x-or hig|h bits *|
|00003240| 2f 0a 58 58 09 09 69 20 | 26 3d 20 30 78 66 66 3b |/.XX..i |&= 0xff;|
|00003250| 0a 58 58 09 09 63 68 65 | 63 6b 20 3d 20 28 63 68 |.XX..che|ck = (ch|
|00003260| 65 63 6b 20 5e 20 69 29 | 20 26 20 30 78 66 66 66 |eck ^ i)| & 0xfff|
|00003270| 66 3b 0a 58 58 09 7d 0a | 58 58 0a 58 58 09 63 68 |f;.XX.}.|XX.XX.ch|
|00003280| 65 63 6b 20 3d 20 28 30 | 78 61 61 61 61 20 2d 20 |eck = (0|xaaaa - |
|00003290| 63 68 65 63 6b 29 20 26 | 20 30 78 66 66 66 66 3b |check) &| 0xffff;|
|000032a0| 0a 58 58 09 70 6b 74 5b | 32 5d 20 3d 20 63 68 65 |.XX.pkt[|2] = che|
|000032b0| 63 6b 20 26 20 30 78 66 | 66 3b 0a 58 58 09 70 6b |ck & 0xf|f;.XX.pk|
|000032c0| 74 5b 33 5d 20 3d 20 28 | 63 68 65 63 6b 20 3e 3e |t[3] = (|check >>|
|000032d0| 20 38 29 20 26 20 30 78 | 66 66 3b 0a 58 58 09 70 | 8) & 0x|ff;.XX.p|
|000032e0| 6b 74 5b 35 5d 20 3d 20 | 28 70 6b 74 5b 31 5d 20 |kt[5] = |(pkt[1] |
|000032f0| 5e 20 70 6b 74 5b 32 5d | 20 5e 20 70 6b 74 5b 33 |^ pkt[2]| ^ pkt[3|
|00003300| 5d 20 5e 20 70 6b 74 5b | 34 5d 29 20 26 20 30 78 |] ^ pkt[|4]) & 0x|
|00003310| 66 66 3b 0a 58 58 0a 58 | 58 09 73 77 72 69 74 65 |ff;.XX.X|X.swrite|
|00003320| 28 70 6b 74 2c 20 48 44 | 52 53 49 5a 45 29 3b 20 |(pkt, HD|RSIZE); |
|00003330| 20 20 20 20 20 20 2f 2a | 20 68 65 61 64 65 72 20 | /*| header |
|00003340| 69 73 20 36 2d 62 79 74 | 65 73 20 6c 6f 6e 67 20 |is 6-byt|es long |
|00003350| 2a 2f 0a 58 58 0a 58 58 | 09 69 66 20 28 70 6b 74 |*/.XX.XX|.if (pkt|
|00003360| 5b 31 5d 20 21 3d 20 39 | 29 0a 58 58 09 09 73 77 |[1] != 9|).XX..sw|
|00003370| 72 69 74 65 28 63 6e 74 | 31 2c 20 50 4b 54 53 49 |rite(cnt|1, PKTSI|
|00003380| 5a 45 29 3b 09 2f 2a 20 | 64 61 74 61 20 69 73 20 |ZE);./* |data is |
|00003390| 61 6c 77 61 79 73 20 36 | 34 20 62 79 74 65 73 20 |always 6|4 bytes |
|000033a0| 6c 6f 6e 67 20 2a 2f 20 | 0a 58 58 7d 0a 58 58 0a |long */ |.XX}.XX.|
|000033b0| 58 58 0a 58 58 2f 2a 0a | 58 58 20 2a 0a 58 58 20 |XX.XX/*.|XX *.XX |
|000033c0| 2a 20 20 20 20 20 20 72 | 65 61 64 20 70 61 63 6b |* r|ead pack|
|000033d0| 65 74 0a 58 58 20 2a 20 | 6f 6e 20 72 65 74 75 72 |et.XX * |on retur|
|000033e0| 6e 3a 20 6e 74 33 3d 70 | 6b 72 65 63 20 6e 74 34 |n: nt3=p|krec nt4|
|000033f0| 3d 70 6b 73 65 6e 74 20 | 6c 65 6e 3d 6c 65 6e 67 |=pksent |len=leng|
|00003400| 74 68 20 3c 3d 50 4b 54 | 53 49 5a 45 20 20 63 6e |th <=PKT|SIZE cn|
|00003410| 74 31 3d 64 61 74 61 20 | 2a 0a 58 58 20 2a 20 72 |t1=data |*.XX * r|
|00003420| 65 74 28 74 79 70 65 29 | 20 6f 6b 3b 20 72 65 74 |et(type)| ok; ret|
|00003430| 28 2d 31 29 20 69 6e 70 | 75 74 20 62 75 66 20 65 |(-1) inp|ut buf e|
|00003440| 6d 70 74 79 3b 20 72 65 | 74 28 2d 32 29 20 62 61 |mpty; re|t(-2) ba|
|00003450| 64 20 68 65 61 64 65 72 | 3b 0a 58 58 20 2a 20 20 |d header|;.XX * |
|00003460| 20 20 20 20 20 20 20 20 | 20 20 20 20 72 65 74 28 | | ret(|
|00003470| 2d 33 29 20 6c 6f 73 74 | 20 70 6b 74 20 74 69 6d |-3) lost| pkt tim|
|00003480| 65 6f 75 74 3b 20 72 65 | 74 28 2d 34 29 20 63 68 |eout; re|t(-4) ch|
|00003490| 65 63 6b 73 75 6d 20 65 | 72 72 6f 72 3b 72 65 74 |ecksum e|rror;ret|
|000034a0| 28 2d 35 29 20 3f 0a 58 | 58 20 2a 2f 0a 58 58 0a |(-5) ?.X|X */.XX.|
|000034b0| 58 58 67 72 70 61 63 6b | 28 6e 74 33 2c 6e 74 34 |XXgrpack|(nt3,nt4|
|000034c0| 2c 6c 65 6e 2c 63 6e 74 | 31 29 0a 58 58 69 6e 74 |,len,cnt|1).XXint|
|000034d0| 09 2a 6e 74 33 2c 20 2a | 6e 74 34 2c 20 2a 6c 65 |.*nt3, *|nt4, *le|
|000034e0| 6e 3b 0a 58 58 75 6e 73 | 69 67 6e 65 64 20 63 68 |n;.XXuns|igned ch|
|000034f0| 61 72 09 2a 63 6e 74 31 | 3b 0a 58 58 7b 0a 58 58 |ar.*cnt1|;.XX{.XX|
|00003500| 09 75 6e 73 69 67 6e 65 | 64 20 69 6e 74 09 6e 74 |.unsigne|d int.nt|
|00003510| 31 2c 20 63 68 65 63 6b | 2c 20 63 68 65 63 6b 63 |1, check|, checkc|
|00003520| 68 6b 2c 20 69 3b 0a 58 | 58 09 75 6e 73 69 67 6e |hk, i;.X|X.unsign|
|00003530| 65 64 20 63 68 61 72 09 | 63 2c 20 63 32 2c 20 70 |ed char.|c, c2, p|
|00003540| 6b 74 5b 48 44 52 53 49 | 5a 45 5d 3b 0a 58 58 09 |kt[HDRSI|ZE];.XX.|
|00003550| 69 6e 74 09 09 69 69 3b | 0a 58 58 0a 58 58 09 63 |int..ii;|.XX.XX.c|
|00003560| 20 3d 20 27 5c 30 27 3b | 0a 58 58 09 77 68 69 6c | = '\0';|.XX.whil|
|00003570| 65 20 28 28 63 20 26 20 | 30 78 37 66 29 20 21 3d |e ((c & |0x7f) !=|
|00003580| 20 27 5c 30 32 30 27 29 | 0a 58 58 09 09 69 66 20 | '\020')|.XX..if |
|00003590| 28 73 72 65 61 64 28 26 | 63 2c 20 31 2c 20 6d 73 |(sread(&|c, 1, ms|
|000035a0| 67 74 69 6d 65 29 20 3c | 20 31 29 0a 58 58 09 09 |gtime) <| 1).XX..|
|000035b0| 09 72 65 74 75 72 6e 28 | 2d 31 29 3b 0a 58 58 0a |.return(|-1);.XX.|
|000035c0| 58 58 09 69 66 20 28 73 | 72 65 61 64 28 26 70 6b |XX.if (s|read(&pk|
|000035d0| 74 5b 31 5d 2c 20 48 44 | 52 53 49 5a 45 20 2d 20 |t[1], HD|RSIZE - |
|000035e0| 31 2c 20 6d 73 67 74 69 | 6d 65 29 20 3c 20 28 48 |1, msgti|me) < (H|
|000035f0| 44 52 53 49 5a 45 20 2d | 20 31 29 29 0a 58 58 09 |DRSIZE -| 1)).XX.|
|00003600| 09 72 65 74 75 72 6e 28 | 2d 31 29 3b 0a 58 58 0a |.return(|-1);.XX.|
|00003610| 58 58 09 2f 2a 20 68 65 | 61 64 65 72 20 69 73 20 |XX./* he|ader is |
|00003620| 36 2d 62 79 74 65 73 20 | 6c 6f 6e 67 20 2a 2f 0a |6-bytes |long */.|
|00003630| 58 58 0a 58 58 09 69 20 | 3d 20 70 6b 74 5b 31 5d |XX.XX.i |= pkt[1]|
|00003640| 20 5e 20 70 6b 74 5b 32 | 5d 20 5e 20 70 6b 74 5b | ^ pkt[2|] ^ pkt[|
|00003650| 33 5d 20 5e 20 70 6b 74 | 5b 34 5d 20 5e 20 70 6b |3] ^ pkt|[4] ^ pk|
|00003660| 74 5b 35 5d 3b 0a 58 58 | 09 69 20 26 3d 20 30 78 |t[5];.XX|.i &= 0x|
|00003670| 66 66 3b 0a 58 58 0a 58 | 58 09 69 66 20 28 69 29 |ff;.XX.X|X.if (i)|
|00003680| 20 20 7b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | { | |
|00003690| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 20 62 | | /* b|
|000036a0| 61 64 20 68 65 61 64 65 | 72 20 2a 2f 0a 58 58 09 |ad heade|r */.XX.|
|000036b0| 20 20 20 20 20 20 20 20 | 69 66 20 28 64 65 62 75 | |if (debu|
|000036c0| 67 29 0a 58 58 09 09 09 | 70 72 69 6e 74 6d 73 67 |g).XX...|printmsg|
|000036d0| 28 22 2a 2a 2a 2a 62 61 | 64 20 68 65 61 64 65 72 |("****ba|d header|
|000036e0| 2a 2a 2a 2a 22 29 3b 0a | 58 58 0a 58 58 09 20 20 |****");.|XX.XX. |
|000036f0| 20 20 20 20 20 20 72 65 | 74 75 72 6e 28 2d 32 29 | re|turn(-2)|
|00003700| 3b 0a 58 58 09 7d 0a 58 | 58 0a 58 58 09 69 66 20 |;.XX.}.X|X.XX.if |
|00003710| 28 28 70 6b 74 5b 31 5d | 20 26 3d 20 30 78 37 66 |((pkt[1]| &= 0x7f|
|00003720| 29 20 3d 3d 20 39 29 20 | 20 7b 20 20 20 20 20 20 |) == 9) | { |
|00003730| 20 2f 2a 20 63 6f 6e 74 | 72 6f 6c 20 70 61 63 6b | /* cont|rol pack|
|00003740| 65 74 20 2a 2f 0a 58 58 | 09 20 20 20 20 20 20 20 |et */.XX|. |
|00003750| 20 2a 6c 65 6e 20 3d 20 | 30 3b 0a 58 58 09 20 20 | *len = |0;.XX. |
|00003760| 20 20 20 20 20 20 63 20 | 3d 20 70 6b 74 5b 34 5d | c |= pkt[4]|
|00003770| 20 26 20 30 78 66 66 3b | 0a 58 58 09 20 20 20 20 | & 0xff;|.XX. |
|00003780| 20 20 20 20 6e 74 31 20 | 20 3d 20 28 75 6e 73 69 | nt1 | = (unsi|
|00003790| 67 6e 65 64 29 63 20 3e | 3e 20 33 3b 0a 58 58 09 |gned)c >|> 3;.XX.|
|000037a0| 20 20 20 20 20 20 20 20 | 2a 6e 74 33 20 3d 20 63 | |*nt3 = c|
|000037b0| 20 26 20 37 3b 0a 58 58 | 09 20 20 20 20 20 20 20 | & 7;.XX|. |
|000037c0| 20 2a 6e 74 34 20 3d 20 | 30 3b 0a 58 58 09 20 20 | *nt4 = |0;.XX. |
|000037d0| 20 20 20 20 20 20 63 68 | 65 63 6b 20 3d 20 30 3b | ch|eck = 0;|
|000037e0| 0a 58 58 09 20 20 20 20 | 20 20 20 20 63 68 65 63 |.XX. | chec|
|000037f0| 6b 63 68 6b 20 3d 20 30 | 3b 0a 58 58 09 20 20 20 |kchk = 0|;.XX. |
|00003800| 20 20 20 20 20 63 6e 74 | 31 5b 2a 6c 65 6e 5d 20 | cnt|1[*len] |
|00003810| 3d 20 27 5c 30 27 3b 0a | 58 58 09 7d 0a 58 58 09 |= '\0';.|XX.}.XX.|
|00003820| 65 6c 73 65 20 7b 20 20 | 20 20 20 20 20 2f 2a 20 |else { | /* |
|00003830| 64 61 74 61 20 70 61 63 | 6b 65 74 20 2a 2f 0a 58 |data pac|ket */.X|
|00003840| 58 09 20 20 20 20 20 20 | 20 20 69 66 20 28 70 6b |X. | if (pk|
|00003850| 74 5b 31 5d 20 21 3d 20 | 50 4b 54 53 49 5a 32 29 |t[1] != |PKTSIZ2)|
|00003860| 0a 58 58 09 09 09 72 65 | 74 75 72 6e 28 2d 35 29 |.XX...re|turn(-5)|
|00003870| 3b 20 20 20 2f 2a 20 63 | 61 6e 74 20 68 61 6e 64 |; /* c|ant hand|
|00003880| 6c 65 20 6f 74 68 65 72 | 20 74 68 61 6e 20 36 34 |le other| than 64|
|00003890| 2a 2f 0a 58 58 0a 58 58 | 09 20 20 20 20 20 20 20 |*/.XX.XX|. |
|000038a0| 20 6e 74 31 20 20 3d 20 | 30 3b 0a 58 58 09 20 20 | nt1 = |0;.XX. |
|000038b0| 20 20 20 20 20 20 63 32 | 20 3d 20 70 6b 74 5b 34 | c2| = pkt[4|
|000038c0| 5d 20 26 20 30 78 66 66 | 3b 0a 58 58 09 20 20 20 |] & 0xff|;.XX. |
|000038d0| 20 20 20 20 20 63 20 3d | 20 63 32 20 26 20 30 78 | c =| c2 & 0x|
|000038e0| 33 66 3b 0a 58 58 09 20 | 20 20 20 20 20 20 20 2a |3f;.XX. | *|
|000038f0| 6e 74 34 20 3d 20 28 75 | 6e 73 69 67 6e 65 64 29 |nt4 = (u|nsigned)|
|00003900| 63 20 3e 3e 20 33 3b 0a | 58 58 09 20 20 20 20 20 |c >> 3;.|XX. |
|00003910| 20 20 20 2a 6e 74 33 20 | 3d 20 63 20 26 20 37 3b | *nt3 |= c & 7;|
|00003920| 0a 58 58 0a 58 58 09 20 | 20 20 20 20 20 20 20 69 |.XX.XX. | i|
|00003930| 66 20 28 73 72 65 61 64 | 28 63 6e 74 31 2c 20 50 |f (sread|(cnt1, P|
|00003940| 4b 54 53 49 5a 45 2c 20 | 6d 73 67 74 69 6d 65 29 |KTSIZE, |msgtime)|
|00003950| 20 3c 20 50 4b 54 53 49 | 5a 45 29 0a 58 58 09 09 | < PKTSI|ZE).XX..|
|00003960| 09 72 65 74 75 72 6e 28 | 2d 33 29 3b 0a 58 58 0a |.return(|-3);.XX.|
|00003970| 58 58 09 20 20 20 20 20 | 20 20 20 2f 2a 20 36 34 |XX. | /* 64|
|00003980| 20 62 79 74 65 20 70 61 | 63 6b 65 74 73 20 65 76 | byte pa|ckets ev|
|00003990| 65 6e 20 69 66 20 70 61 | 72 74 69 61 6c 20 2a 2f |en if pa|rtial */|
|000039a0| 0a 58 58 0a 58 58 09 09 | 69 20 3d 20 70 6b 74 5b |.XX.XX..|i = pkt[|
|000039b0| 33 5d 3b 0a 58 58 09 09 | 69 20 3d 20 28 69 20 3c |3];.XX..|i = (i <|
|000039c0| 3c 20 38 29 20 26 20 30 | 78 66 66 30 30 3b 0a 58 |< 8) & 0|xff00;.X|
|000039d0| 58 09 09 63 68 65 63 6b | 20 3d 20 70 6b 74 5b 32 |X..check| = pkt[2|
|000039e0| 5d 3b 0a 58 58 09 09 63 | 68 65 63 6b 20 3d 20 69 |];.XX..c|heck = i|
|000039f0| 20 7c 20 28 63 68 65 63 | 6b 20 26 20 30 78 66 66 | | (chec|k & 0xff|
|00003a00| 29 3b 0a 58 58 09 20 20 | 20 20 20 20 20 20 63 68 |);.XX. | ch|
|00003a10| 65 63 6b 63 68 6b 20 3d | 20 63 68 65 63 6b 73 75 |eckchk =| checksu|
|00003a20| 6d 28 63 6e 74 31 2c 20 | 50 4b 54 53 49 5a 45 29 |m(cnt1, |PKTSIZE)|
|00003a30| 3b 0a 58 58 09 09 69 20 | 3d 20 70 6b 74 5b 34 5d |;.XX..i |= pkt[4]|
|00003a40| 20 7c 20 30 78 38 30 3b | 0a 58 58 09 09 69 20 26 | | 0x80;|.XX..i &|
|00003a50| 3d 20 30 78 66 66 3b 0a | 58 58 09 20 20 20 20 20 |= 0xff;.|XX. |
|00003a60| 20 20 20 63 68 65 63 6b | 63 68 6b 20 3d 20 30 78 | check|chk = 0x|
|00003a70| 61 61 61 61 20 2d 20 28 | 63 68 65 63 6b 63 68 6b |aaaa - (|checkchk|
|00003a80| 20 5e 20 69 29 3b 0a 58 | 58 20 20 20 20 20 20 20 | ^ i);.X|X |
|00003a90| 09 09 63 68 65 63 6b 63 | 68 6b 20 26 3d 20 30 78 |..checkc|hk &= 0x|
|00003aa0| 66 66 66 66 3b 0a 58 58 | 0a 58 58 09 20 20 20 20 |ffff;.XX|.XX. |
|00003ab0| 20 20 20 20 69 66 28 63 | 68 65 63 6b 63 68 6b 20 | if(c|heckchk |
|00003ac0| 21 3d 20 63 68 65 63 6b | 29 20 7b 0a 58 58 09 20 |!= check|) {.XX. |
|00003ad0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 69 | | i|
|00003ae0| 66 20 28 64 65 62 75 67 | 29 0a 58 58 09 09 09 09 |f (debug|).XX....|
|00003af0| 70 72 69 6e 74 6d 73 67 | 28 22 2a 2a 2a 63 68 65 |printmsg|("***che|
|00003b00| 63 6b 73 75 6d 20 65 72 | 72 6f 72 2a 2a 2a 22 29 |cksum er|ror***")|
|00003b10| 3b 0a 58 58 0a 58 58 09 | 20 20 20 20 20 20 20 20 |;.XX.XX.| |
|00003b20| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 28 45 | |return(E|
|00003b30| 52 52 4f 52 29 3b 0a 58 | 58 09 20 20 20 20 20 20 |RROR);.X|X. |
|00003b40| 20 20 7d 0a 58 58 0a 58 | 58 09 20 20 20 20 20 20 | }.XX.X|X. |
|00003b50| 20 20 2a 6c 65 6e 20 3d | 20 50 4b 54 53 49 5a 45 | *len =| PKTSIZE|
|00003b60| 3b 0a 58 58 0a 58 58 09 | 20 20 20 20 20 20 20 20 |;.XX.XX.| |
|00003b70| 69 66 20 28 63 32 20 26 | 20 30 78 34 30 29 20 20 |if (c2 &| 0x40) |
|00003b80| 7b 0a 58 58 09 20 20 20 | 20 20 20 20 20 20 20 20 |{.XX. | |
|00003b90| 20 20 20 20 20 69 69 20 | 3d 20 28 63 6e 74 31 5b | ii |= (cnt1[|
|00003ba0| 30 5d 20 26 20 30 78 66 | 66 29 3b 0a 58 58 09 20 |0] & 0xf|f);.XX. |
|00003bb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|00003bc0| 6c 65 6e 20 3d 20 28 2a | 6c 65 6e 20 2d 20 69 69 |len = (*|len - ii|
|00003bd0| 29 20 26 20 30 78 66 66 | 3b 0a 58 58 09 20 20 20 |) & 0xff|;.XX. |
|00003be0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 66 6f 72 | | for|
|00003bf0| 20 28 69 69 20 3d 20 30 | 3b 20 69 69 20 3c 20 2a | (ii = 0|; ii < *|
|00003c00| 6c 65 6e 3b 20 69 69 2b | 2b 29 0a 58 58 09 09 09 |len; ii+|+).XX...|
|00003c10| 09 63 6e 74 31 5b 69 69 | 5d 20 3d 20 63 6e 74 31 |.cnt1[ii|] = cnt1|
|00003c20| 5b 69 69 2b 31 5d 3b 0a | 58 58 09 20 20 20 20 20 |[ii+1];.|XX. |
|00003c30| 20 20 20 7d 0a 58 58 0a | 58 58 09 20 20 20 20 20 | }.XX.|XX. |
|00003c40| 20 20 20 63 6e 74 31 5b | 2a 6c 65 6e 5d 20 3d 20 | cnt1[|*len] = |
|00003c50| 27 5c 30 27 3b 0a 58 58 | 09 7d 0a 58 58 0a 58 58 |'\0';.XX|.}.XX.XX|
|00003c60| 09 69 66 20 28 64 65 62 | 75 67 20 3e 20 30 29 20 |.if (deb|ug > 0) |
|00003c70| 7b 0a 58 58 09 20 20 20 | 20 20 20 20 20 70 72 69 |{.XX. | pri|
|00003c80| 6e 74 6d 73 67 28 22 72 | 65 63 65 69 76 65 20 70 |ntmsg("r|eceive p|
|00003c90| 61 63 6b 65 74 20 74 79 | 70 65 20 25 64 20 22 2c |acket ty|pe %d ",|
|00003ca0| 20 6e 74 31 29 3b 0a 58 | 58 09 20 20 20 20 20 20 | nt1);.X|X. |
|00003cb0| 20 20 70 72 69 6e 74 6d | 73 67 28 22 20 20 6e 75 | printm|sg(" nu|
|00003cc0| 6d 20 3d 20 25 64 20 6e | 20 3d 20 25 64 22 2c 20 |m = %d n| = %d", |
|00003cd0| 2a 6e 74 33 2c 20 2a 6e | 74 34 29 3b 0a 58 58 09 |*nt3, *n|t4);.XX.|
|00003ce0| 20 20 20 20 20 20 20 20 | 70 72 69 6e 74 6d 73 67 | |printmsg|
|00003cf0| 28 22 20 20 63 68 65 63 | 6b 73 75 6d 20 72 65 63 |(" chec|ksum rec|
|00003d00| 20 3d 20 25 78 20 63 6f | 6d 70 20 3d 20 25 78 22 | = %x co|mp = %x"|
|00003d10| 2c 20 63 68 65 63 6b 2c | 20 63 68 65 63 6b 63 68 |, check,| checkch|
|00003d20| 6b 29 3b 0a 58 58 09 20 | 20 20 20 20 20 20 20 70 |k);.XX. | p|
|00003d30| 72 69 6e 74 6d 73 67 28 | 22 20 20 6c 65 6e 20 3d |rintmsg(|" len =|
|00003d40| 20 25 64 20 64 61 74 61 | 20 3d 5c 6e 7c 25 73 7c | %d data| =\n|%s||
|00003d50| 22 2c 20 2a 6c 65 6e 2c | 20 63 6e 74 31 29 3b 0a |", *len,| cnt1);.|
|00003d60| 58 58 09 7d 0a 58 58 0a | 58 58 09 69 69 20 3d 20 |XX.}.XX.|XX.ii = |
|00003d70| 6e 74 31 3b 0a 58 58 0a | 58 58 09 72 65 74 75 72 |nt1;.XX.|XX.retur|
|00003d80| 6e 28 69 69 29 3b 0a 58 | 58 7d 0a 58 58 0a 58 58 |n(ii);.X|X}.XX.XX|
|00003d90| 0a 58 58 75 6e 73 69 67 | 6e 65 64 20 63 68 65 63 |.XXunsig|ned chec|
|00003da0| 6b 73 75 6d 28 64 61 74 | 61 2c 20 6c 65 6e 29 0a |ksum(dat|a, len).|
|00003db0| 58 58 63 68 61 72 09 2a | 64 61 74 61 3b 0a 58 58 |XXchar.*|data;.XX|
|00003dc0| 69 6e 74 09 6c 65 6e 3b | 0a 58 58 7b 0a 58 58 09 |int.len;|.XX{.XX.|
|00003dd0| 75 6e 73 69 67 6e 65 64 | 20 69 6e 74 20 69 2c 6a |unsigned| int i,j|
|00003de0| 2c 74 6d 70 2c 63 68 6b | 31 2c 63 68 6b 32 3b 0a |,tmp,chk|1,chk2;.|
|00003df0| 58 58 0a 58 58 09 63 68 | 6b 31 20 3d 20 30 78 66 |XX.XX.ch|k1 = 0xf|
|00003e00| 66 66 66 3b 0a 58 58 09 | 63 68 6b 32 20 3d 20 30 |fff;.XX.|chk2 = 0|
|00003e10| 3b 0a 58 58 09 6a 20 3d | 20 6c 65 6e 3b 0a 58 58 |;.XX.j =| len;.XX|
|00003e20| 0a 58 58 09 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 |.XX.for |(i = 0; |
|00003e30| 69 20 3c 20 6c 65 6e 3b | 20 69 2b 2b 29 20 20 7b |i < len;| i++) {|
|00003e40| 0a 58 58 09 20 20 20 20 | 20 20 20 20 69 66 20 28 |.XX. | if (|
|00003e50| 63 68 6b 31 20 26 20 30 | 78 38 30 30 30 29 20 20 |chk1 & 0|x8000) |
|00003e60| 7b 0a 58 58 09 09 09 63 | 68 6b 31 20 3c 3c 3d 20 |{.XX...c|hk1 <<= |
|00003e70| 31 3b 0a 58 58 09 09 09 | 63 68 6b 31 2b 2b 3b 0a |1;.XX...|chk1++;.|
|00003e80| 58 58 09 09 7d 0a 58 58 | 09 20 20 20 20 20 20 20 |XX..}.XX|. |
|00003e90| 20 65 6c 73 65 20 20 7b | 0a 58 58 09 09 09 63 68 | else {|.XX...ch|
|00003ea0| 6b 31 20 3c 3c 3d 20 31 | 3b 0a 58 58 09 09 7d 0a |k1 <<= 1|;.XX..}.|
|00003eb0| 58 58 0a 58 58 09 20 20 | 20 20 20 20 20 20 74 6d |XX.XX. | tm|
|00003ec0| 70 20 3d 20 63 68 6b 31 | 3b 0a 58 58 09 20 20 20 |p = chk1|;.XX. |
|00003ed0| 20 20 20 20 20 63 68 6b | 31 20 2b 3d 20 28 64 61 | chk|1 += (da|
|00003ee0| 74 61 5b 69 5d 20 26 20 | 30 78 66 66 29 3b 0a 58 |ta[i] & |0xff);.X|
|00003ef0| 58 09 20 20 20 20 20 20 | 20 20 63 68 6b 32 20 2b |X. | chk2 +|
|00003f00| 3d 20 63 68 6b 31 20 5e | 20 6a 3b 0a 58 58 09 20 |= chk1 ^| j;.XX. |
|00003f10| 20 20 20 20 20 20 20 69 | 66 20 28 28 63 68 6b 31 | i|f ((chk1|
|00003f20| 20 26 20 30 78 66 66 66 | 66 29 20 3c 3d 20 28 74 | & 0xfff|f) <= (t|
|00003f30| 6d 70 20 26 20 30 78 66 | 66 66 66 29 29 0a 58 58 |mp & 0xf|fff)).XX|
|00003f40| 09 09 09 63 68 6b 31 20 | 5e 3d 20 63 68 6b 32 3b |...chk1 |^= chk2;|
|00003f50| 0a 58 58 0a 58 58 09 20 | 20 20 20 20 20 20 20 6a |.XX.XX. | j|
|00003f60| 2d 2d 3b 0a 58 58 09 7d | 0a 58 58 0a 58 58 09 72 |--;.XX.}|.XX.XX.r|
|00003f70| 65 74 75 72 6e 28 63 68 | 6b 31 20 26 20 30 78 66 |eturn(ch|k1 & 0xf|
|00003f80| 66 66 66 29 3b 0a 58 58 | 7d 0a 40 2f 2f 45 2a 4f |fff);.XX|}.@//E*O|
|00003f90| 2a 46 20 64 63 70 67 70 | 6b 74 2e 63 2f 2f 0a 63 |*F dcpgp|kt.c//.c|
|00003fa0| 68 6d 6f 64 20 75 3d 72 | 77 2c 67 3d 72 2c 6f 3d |hmod u=r|w,g=r,o=|
|00003fb0| 72 20 64 63 70 67 70 6b | 74 2e 63 0a 20 0a 65 63 |r dcpgpk|t.c. .ec|
|00003fc0| 68 6f 20 78 20 2d 20 64 | 63 70 69 6f 2e 63 0a 73 |ho x - d|cpio.c.s|
|00003fd0| 65 64 20 27 73 2f 5e 58 | 58 2f 2f 27 20 3e 20 22 |ed 's/^X|X//' > "|
|00003fe0| 64 63 70 69 6f 2e 63 22 | 20 3c 3c 27 40 2f 2f 45 |dcpio.c"| <<'@//E|
|00003ff0| 2a 4f 2a 46 20 64 63 70 | 69 6f 2e 63 2f 2f 27 0a |*O*F dcp|io.c//'.|
|00004000| 58 58 2f 2a 20 22 44 43 | 50 22 20 61 20 75 75 63 |XX/* "DC|P" a uuc|
|00004010| 70 20 63 6c 6f 6e 65 2e | 20 43 6f 70 79 72 69 67 |p clone.| Copyrig|
|00004020| 68 74 20 52 69 63 68 61 | 72 64 20 48 2e 20 4c 61 |ht Richa|rd H. La|
|00004030| 6d 62 20 31 39 38 35 2c | 31 39 38 36 2c 31 39 38 |mb 1985,|1986,198|
|00004040| 37 20 2a 2f 0a 58 58 2f | 2a 20 49 4f 20 72 6f 75 |7 */.XX/|* IO rou|
|00004050| 74 69 6e 65 73 20 2a 2f | 0a 58 58 0a 58 58 23 69 |tines */|.XX.XX#i|
|00004060| 6e 63 6c 75 64 65 20 3c | 73 79 73 2f 73 67 74 74 |nclude <|sys/sgtt|
|00004070| 79 2e 68 3e 0a 58 58 23 | 69 6e 63 6c 75 64 65 20 |y.h>.XX#|include |
|00004080| 3c 73 65 74 6a 6d 70 2e | 68 3e 0a 58 58 23 69 6e |<setjmp.|h>.XX#in|
|00004090| 63 6c 75 64 65 20 3c 73 | 69 67 6e 61 6c 2e 68 3e |clude <s|ignal.h>|
|000040a0| 0a 58 58 23 69 6e 63 6c | 75 64 65 20 22 64 63 70 |.XX#incl|ude "dcp|
|000040b0| 2e 68 22 0a 58 58 0a 58 | 58 6a 6d 70 5f 62 75 66 |.h".XX.X|Xjmp_buf|
|000040c0| 20 65 6e 76 3b 0a 58 58 | 76 6f 69 64 20 20 20 20 | env;.XX|void |
|000040d0| 63 6c 6b 69 6e 74 28 29 | 3b 0a 58 58 73 74 72 75 |clkint()|;.XXstru|
|000040e0| 63 74 09 73 67 74 74 79 | 62 20 74 74 79 62 75 66 |ct.sgtty|b ttybuf|
|000040f0| 61 2c 20 74 74 79 62 75 | 66 62 3b 0a 58 58 0a 58 |a, ttybu|fb;.XX.X|
|00004100| 58 0a 58 58 76 6f 69 64 | 20 63 6c 6b 69 6e 74 28 |X.XXvoid| clkint(|
|00004110| 29 0a 58 58 7b 0a 58 58 | 09 6c 6f 6e 67 6a 6d 70 |).XX{.XX|.longjmp|
|00004120| 28 65 6e 76 2c 20 31 29 | 3b 0a 58 58 7d 0a 58 58 |(env, 1)|;.XX}.XX|
|00004130| 0a 58 58 0a 58 58 73 65 | 74 6c 69 6e 65 28 74 74 |.XX.XXse|tline(tt|
|00004140| 79 2c 20 62 61 75 64 29 | 0a 58 58 69 6e 74 09 74 |y, baud)|.XXint.t|
|00004150| 74 79 2c 20 62 61 75 64 | 3b 0a 58 58 7b 0a 58 58 |ty, baud|;.XX{.XX|
|00004160| 09 67 74 74 79 28 74 74 | 79 2c 20 26 74 74 79 62 |.gtty(tt|y, &ttyb|
|00004170| 75 66 61 29 3b 0a 58 58 | 09 6d 65 6d 63 70 79 28 |ufa);.XX|.memcpy(|
|00004180| 28 63 68 61 72 20 2a 29 | 26 74 74 79 62 75 66 62 |(char *)|&ttybufb|
|00004190| 2c 20 28 63 68 61 72 20 | 2a 29 26 74 74 79 62 75 |, (char |*)&ttybu|
|000041a0| 66 61 2c 20 73 69 7a 65 | 6f 66 28 73 74 72 75 63 |fa, size|of(struc|
|000041b0| 74 20 73 67 74 74 79 62 | 29 29 3b 0a 58 58 09 74 |t sgttyb|));.XX.t|
|000041c0| 74 79 62 75 66 61 2e 73 | 67 5f 73 70 65 65 64 20 |tybufa.s|g_speed |
|000041d0| 3d 20 44 38 53 31 4e 4f | 4e 45 3b 0a 58 58 09 74 |= D8S1NO|NE;.XX.t|
|000041e0| 74 79 62 75 66 61 2e 73 | 67 5f 66 6c 61 67 20 3d |tybufa.s|g_flag =|
|000041f0| 20 52 41 57 20 26 20 7e | 45 43 48 4f 3b 0a 58 58 | RAW & ~|ECHO;.XX|
|00004200| 09 74 74 79 62 75 66 61 | 2e 73 67 5f 70 72 6f 74 |.ttybufa|.sg_prot|
|00004210| 20 3d 20 62 61 75 64 3b | 0a 58 58 09 73 74 74 79 | = baud;|.XX.stty|
|00004220| 28 74 74 79 2c 20 26 74 | 74 79 62 75 66 61 29 3b |(tty, &t|tybufa);|
|00004230| 0a 58 58 7d 0a 58 58 0a | 58 58 0a 58 58 73 77 72 |.XX}.XX.|XX.XXswr|
|00004240| 69 74 65 28 64 61 74 61 | 2c 6e 75 6d 29 0a 58 58 |ite(data|,num).XX|
|00004250| 69 6e 74 09 6e 75 6d 3b | 0a 58 58 75 6e 73 69 67 |int.num;|.XXunsig|
|00004260| 6e 65 64 20 63 68 61 72 | 09 2a 64 61 74 61 3b 0a |ned char|.*data;.|
|00004270| 58 58 7b 0a 58 58 09 77 | 72 69 74 65 28 66 70 77 |XX{.XX.w|rite(fpw|
|00004280| 2c 20 64 61 74 61 2c 20 | 6e 75 6d 29 3b 0a 58 58 |, data, |num);.XX|
|00004290| 0a 58 58 09 72 65 74 75 | 72 6e 28 6e 75 6d 29 3b |.XX.retu|rn(num);|
|000042a0| 0a 58 58 7d 0a 58 58 0a | 58 58 0a 58 58 2f 2a 20 |.XX}.XX.|XX.XX/* |
|000042b0| 6e 6f 6e 2d 62 6c 6f 63 | 6b 69 6e 67 20 72 65 61 |non-bloc|king rea|
|000042c0| 64 20 65 73 73 65 6e 74 | 69 61 6c 20 74 6f 20 22 |d essent|ial to "|
|000042d0| 67 22 20 70 72 6f 74 6f | 63 6f 6c 20 2a 2f 0a 58 |g" proto|col */.X|
|000042e0| 58 2f 2a 20 73 65 65 20 | 22 64 63 70 67 70 6b 74 |X/* see |"dcpgpkt|
|000042f0| 2e 63 22 20 66 6f 72 20 | 64 65 73 63 72 69 70 74 |.c" for |descript|
|00004300| 69 6f 6e 20 2a 2f 0a 58 | 58 2f 2a 20 52 65 71 75 |ion */.X|X/* Requ|
|00004310| 65 73 74 73 20 66 6f 72 | 20 49 2f 4f 20 73 68 6f |ests for| I/O sho|
|00004320| 75 6c 64 20 67 65 74 20 | 71 75 65 64 20 61 6e 64 |uld get |qued and|
|00004330| 20 61 6e 20 65 76 65 6e | 74 20 66 6c 61 67 20 67 | an even|t flag g|
|00004340| 69 76 65 6e 2e 20 54 68 | 65 6e 20 74 68 65 20 2a |iven. Th|en the *|
|00004350| 2f 0a 58 58 2f 2a 20 72 | 65 71 75 65 73 74 69 6e |/.XX/* r|equestin|
|00004360| 67 20 70 72 6f 63 65 73 | 73 20 28 65 2e 67 2e 67 |g proces|s (e.g.g|
|00004370| 6d 61 63 68 69 6e 65 28 | 29 29 20 77 61 69 74 73 |machine(|)) waits|
|00004380| 20 66 6f 72 20 74 68 65 | 20 65 76 65 6e 74 20 2a | for the| event *|
|00004390| 2f 0a 58 58 2f 2a 20 66 | 6c 61 67 20 74 6f 20 66 |/.XX/* f|lag to f|
|000043a0| 69 72 65 20 70 72 6f 63 | 65 73 73 69 6e 67 20 65 |ire proc|essing e|
|000043b0| 69 74 68 65 72 20 61 20 | 72 65 61 64 20 6f 72 20 |ither a |read or |
|000043c0| 61 20 77 72 69 74 65 2e | 20 2a 2f 0a 58 58 0a 58 |a write.| */.XX.X|
|000043d0| 58 0a 58 58 73 72 65 61 | 64 28 62 75 66 2c 6e 75 |X.XXsrea|d(buf,nu|
|000043e0| 6d 2c 74 69 6d 65 6f 75 | 74 29 0a 58 58 69 6e 74 |m,timeou|t).XXint|
|000043f0| 09 6e 75 6d 2c 20 74 69 | 6d 65 6f 75 74 3b 0a 58 |.num, ti|meout;.X|
|00004400| 58 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 09 2a |Xunsigne|d char.*|
|00004410| 62 75 66 3b 0a 58 58 7b | 0a 58 58 09 69 6e 74 09 |buf;.XX{|.XX.int.|
|00004420| 69 3b 0a 58 58 0a 58 58 | 09 69 66 20 28 73 65 74 |i;.XX.XX|.if (set|
|00004430| 6a 6d 70 28 65 6e 76 29 | 29 20 20 7b 0a 58 58 09 |jmp(env)|) {.XX.|
|00004440| 09 69 66 20 28 64 65 62 | 75 67 29 0a 58 58 09 09 |.if (deb|ug).XX..|
|00004450| 09 70 72 69 6e 74 6d 73 | 67 28 22 72 65 74 20 69 |.printms|g("ret i|
|00004460| 20 3d 20 25 64 5c 6e 22 | 2c 69 29 3b 0a 58 58 0a | = %d\n"|,i);.XX.|
|00004470| 58 58 09 09 72 65 74 75 | 72 6e 28 69 29 3b 0a 58 |XX..retu|rn(i);.X|
|00004480| 58 09 7d 0a 58 58 0a 58 | 58 09 73 69 67 6e 61 6c |X.}.XX.X|X.signal|
|00004490| 28 53 49 47 41 4c 52 4d | 2c 20 63 6c 6b 69 6e 74 |(SIGALRM|, clkint|
|000044a0| 29 3b 0a 58 58 09 61 6c | 61 72 6d 28 74 69 6d 65 |);.XX.al|arm(time|
|000044b0| 6f 75 74 20 2b 20 31 29 | 3b 0a 58 58 0a 58 58 09 |out + 1)|;.XX.XX.|
|000044c0| 66 6f 72 20 28 69 20 3d | 20 30 3b 20 69 20 3c 20 |for (i =| 0; i < |
|000044d0| 6e 75 6d 3b 20 69 2b 2b | 29 0a 58 58 09 09 72 65 |num; i++|).XX..re|
|000044e0| 61 64 28 66 70 72 2c 20 | 26 62 75 66 5b 69 5d 2c |ad(fpr, |&buf[i],|
|000044f0| 20 31 29 3b 0a 58 58 0a | 58 58 09 61 6c 61 72 6d | 1);.XX.|XX.alarm|
|00004500| 28 30 29 3b 0a 58 58 0a | 58 58 09 72 65 74 75 72 |(0);.XX.|XX.retur|
|00004510| 6e 28 69 29 3b 0a 58 58 | 7d 0a 58 58 0a 58 58 0a |n(i);.XX|}.XX.XX.|
|00004520| 58 58 73 74 72 75 63 74 | 09 7b 0a 58 58 09 69 6e |XXstruct|.{.XX.in|
|00004530| 74 09 62 61 75 64 72 61 | 74 65 3b 0a 58 58 09 63 |t.baudra|te;.XX.c|
|00004540| 68 61 72 09 2a 63 6f 64 | 65 3b 0a 58 58 7d 20 72 |har.*cod|e;.XX} r|
|00004550| 61 74 65 73 5b 5d 20 3d | 20 7b 0a 58 58 20 20 20 |ates[] =| {.XX |
|00004560| 20 7b 30 78 30 36 2c 20 | 22 33 30 30 22 7d 2c 0a | {0x06, |"300"},.|
|00004570| 58 58 20 20 20 20 7b 30 | 78 30 38 2c 20 22 31 32 |XX {0|x08, "12|
|00004580| 30 30 22 7d 2c 0a 58 58 | 20 20 20 20 7b 30 78 30 |00"},.XX| {0x0|
|00004590| 41 2c 20 22 32 34 30 30 | 22 7d 2c 0a 58 58 20 20 |A, "2400|"},.XX |
|000045a0| 20 20 7b 30 78 30 45 2c | 20 22 39 36 30 30 22 7d | {0x0E,| "9600"}|
|000045b0| 2c 0a 58 58 20 20 20 20 | 7b 30 78 30 30 2c 20 22 |,.XX |{0x00, "|
|000045c0| 22 7d 0a 58 58 20 20 20 | 20 7d 3b 0a 58 58 0a 58 |"}.XX | };.XX.X|
|000045d0| 58 6f 70 65 6e 6c 69 6e | 65 28 6e 61 6d 65 2c 20 |Xopenlin|e(name, |
|000045e0| 62 61 75 64 29 0a 58 58 | 63 68 61 72 09 2a 6e 61 |baud).XX|char.*na|
|000045f0| 6d 65 2c 20 2a 62 61 75 | 64 3b 0a 58 58 7b 0a 58 |me, *bau|d;.XX{.X|
|00004600| 58 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 69 |X.regist|er int i|
|00004610| 2c 20 73 70 65 65 64 3b | 0a 58 58 0a 58 58 09 69 |, speed;|.XX.XX.i|
|00004620| 20 3d 20 73 70 65 65 64 | 20 3d 20 30 3b 0a 58 58 | = speed| = 0;.XX|
|00004630| 09 64 6f 20 20 7b 0a 58 | 58 09 09 69 66 20 28 73 |.do {.X|X..if (s|
|00004640| 74 72 63 6d 70 28 62 61 | 75 64 2c 20 72 61 74 65 |trcmp(ba|ud, rate|
|00004650| 73 5b 69 5d 2e 63 6f 64 | 65 29 20 3d 3d 20 30 29 |s[i].cod|e) == 0)|
|00004660| 20 20 7b 0a 58 58 09 09 | 09 73 70 65 65 64 20 3d | {.XX..|.speed =|
|00004670| 20 72 61 74 65 73 5b 69 | 5d 2e 62 61 75 64 72 61 | rates[i|].baudra|
|00004680| 74 65 3b 0a 58 58 09 09 | 09 62 72 65 61 6b 3b 0a |te;.XX..|.break;.|
|00004690| 58 58 09 09 7d 0a 58 58 | 09 7d 20 77 68 69 6c 65 |XX..}.XX|.} while|
|000046a0| 20 28 72 61 74 65 73 5b | 2b 2b 69 5d 2e 62 61 75 | (rates[|++i].bau|
|000046b0| 64 72 61 74 65 20 21 3d | 20 30 29 3b 0a 58 58 0a |drate !=| 0);.XX.|
|000046c0| 58 58 09 69 66 20 28 73 | 70 65 65 64 20 3d 3d 20 |XX.if (s|peed == |
|000046d0| 30 29 0a 58 58 09 09 73 | 70 65 65 64 20 3d 20 30 |0).XX..s|peed = 0|
|000046e0| 78 30 38 3b 0a 58 58 0a | 58 58 09 66 70 72 20 3d |x08;.XX.|XX.fpr =|
|000046f0| 20 6f 70 65 6e 28 6e 61 | 6d 65 2c 20 30 29 3b 0a | open(na|me, 0);.|
|00004700| 58 58 09 66 70 77 20 3d | 20 6f 70 65 6e 28 6e 61 |XX.fpw =| open(na|
|00004710| 6d 65 2c 20 31 29 3b 0a | 58 58 09 73 65 74 6c 69 |me, 1);.|XX.setli|
|00004720| 6e 65 28 66 70 77 2c 20 | 73 70 65 65 64 29 3b 0a |ne(fpw, |speed);.|
|00004730| 58 58 09 73 65 74 6c 69 | 6e 65 28 66 70 72 2c 20 |XX.setli|ne(fpr, |
|00004740| 73 70 65 65 64 29 3b 0a | 58 58 0a 58 58 09 69 66 |speed);.|XX.XX.if|
|00004750| 20 28 66 70 72 20 3c 20 | 30 29 0a 58 58 09 09 72 | (fpr < |0).XX..r|
|00004760| 65 74 75 72 6e 28 2d 31 | 29 3b 0a 58 58 0a 58 58 |eturn(-1|);.XX.XX|
|00004770| 09 69 66 20 28 66 70 77 | 20 3c 20 30 29 0a 58 58 |.if (fpw| < 0).XX|
|00004780| 09 09 72 65 74 75 72 6e | 28 2d 31 29 3b 0a 58 58 |..return|(-1);.XX|
|00004790| 0a 58 58 09 72 65 74 75 | 72 6e 28 30 29 3b 0a 58 |.XX.retu|rn(0);.X|
|000047a0| 58 7d 0a 58 58 0a 58 58 | 0a 58 58 63 6c 6f 73 65 |X}.XX.XX|.XXclose|
|000047b0| 6c 69 6e 65 28 29 0a 58 | 58 7b 0a 58 58 09 73 74 |line().X|X{.XX.st|
|000047c0| 74 79 28 66 70 72 2c 20 | 26 74 74 79 62 75 66 62 |ty(fpr, |&ttybufb|
|000047d0| 29 3b 0a 58 58 09 73 74 | 74 79 28 66 70 77 2c 20 |);.XX.st|ty(fpw, |
|000047e0| 26 74 74 79 62 75 66 62 | 29 3b 0a 58 58 09 63 6c |&ttybufb|);.XX.cl|
|000047f0| 6f 73 65 28 66 70 72 29 | 3b 0a 58 58 09 63 6c 6f |ose(fpr)|;.XX.clo|
|00004800| 73 65 28 66 70 77 29 3b | 0a 58 58 7d 0a 40 2f 2f |se(fpw);|.XX}.@//|
|00004810| 45 2a 4f 2a 46 20 64 63 | 70 69 6f 2e 63 2f 2f 0a |E*O*F dc|pio.c//.|
|00004820| 63 68 6d 6f 64 20 75 3d | 72 77 2c 67 3d 72 2c 6f |chmod u=|rw,g=r,o|
|00004830| 3d 72 20 64 63 70 69 6f | 2e 63 0a 20 0a 65 63 68 |=r dcpio|.c. .ech|
|00004840| 6f 20 78 20 2d 20 64 63 | 70 72 65 63 2e 63 0a 73 |o x - dc|prec.c.s|
|00004850| 65 64 20 27 73 2f 5e 58 | 58 2f 2f 27 20 3e 20 22 |ed 's/^X|X//' > "|
|00004860| 64 63 70 72 65 63 2e 63 | 22 20 3c 3c 27 40 2f 2f |dcprec.c|" <<'@//|
|00004870| 45 2a 4f 2a 46 20 64 63 | 70 72 65 63 2e 63 2f 2f |E*O*F dc|prec.c//|
|00004880| 27 0a 58 58 2f 2a 20 22 | 44 43 50 22 20 61 20 75 |'.XX/* "|DCP" a u|
|00004890| 75 63 70 20 63 6c 6f 6e | 65 2e 20 43 6f 70 79 72 |ucp clon|e. Copyr|
|000048a0| 69 67 68 74 20 52 69 63 | 68 61 72 64 20 48 2e 20 |ight Ric|hard H. |
|000048b0| 4c 61 6d 62 20 31 39 38 | 35 2c 31 39 38 36 2c 31 |Lamb 198|5,1986,1|
|000048c0| 39 38 37 20 2a 2f 0a 58 | 58 2f 2a 20 66 69 6c 65 |987 */.X|X/* file|
|000048d0| 20 72 65 63 69 65 76 65 | 20 72 6f 75 74 69 6e 65 | recieve| routine|
|000048e0| 73 20 2a 2f 0a 58 58 0a | 58 58 23 69 6e 63 6c 75 |s */.XX.|XX#inclu|
|000048f0| 64 65 20 22 64 63 70 2e | 68 22 0a 58 58 0a 58 58 |de "dcp.|h".XX.XX|
|00004900| 73 74 61 74 69 63 20 75 | 6e 73 69 67 6e 65 64 20 |static u|nsigned |
|00004910| 63 68 61 72 20 72 70 61 | 63 6b 65 74 5b 4d 41 58 |char rpa|cket[MAX|
|00004920| 50 41 43 4b 5d 3b 0a 58 | 58 0a 58 58 0a 58 58 2f |PACK];.X|X.XX.XX/|
|00004930| 2a 0a 58 58 2a 2a 0a 58 | 58 2a 2a 73 63 68 6b 64 |*.XX**.X|X**schkd|
|00004940| 69 72 0a 58 58 2a 2a 20 | 73 63 61 6e 20 74 68 65 |ir.XX** |scan the|
|00004950| 20 64 69 72 0a 58 58 2a | 2f 0a 58 58 0a 58 58 73 | dir.XX*|/.XX.XXs|
|00004960| 63 68 6b 64 69 72 28 29 | 0a 58 58 7b 0a 58 58 09 |chkdir()|.XX{.XX.|
|00004970| 63 68 61 72 20 63 3b 0a | 58 58 0a 58 58 09 63 20 |char c;.|XX.XX.c |
|00004980| 3d 20 73 63 61 6e 64 69 | 72 28 29 3b 0a 58 58 09 |= scandi|r();.XX.|
|00004990| 69 66 20 28 63 20 3d 3d | 20 27 51 27 29 0a 58 58 |if (c ==| 'Q').XX|
|000049a0| 09 09 72 65 74 75 72 6e | 28 27 59 27 29 3b 0a 58 |..return|('Y');.X|
|000049b0| 58 0a 58 58 09 69 66 20 | 28 63 20 3d 3d 20 27 53 |X.XX.if |(c == 'S|
|000049c0| 27 29 20 20 7b 0a 58 58 | 09 09 73 74 72 63 70 79 |') {.XX|..strcpy|
|000049d0| 28 72 70 61 63 6b 65 74 | 2c 22 48 4e 22 29 3b 0a |(rpacket|,"HN");.|
|000049e0| 58 58 09 09 69 66 20 28 | 28 2a 73 65 6e 64 70 6b |XX..if (|(*sendpk|
|000049f0| 74 29 28 72 70 61 63 6b | 65 74 2c 20 30 2c 20 31 |t)(rpack|et, 0, 1|
|00004a00| 29 29 0a 58 58 09 09 09 | 72 65 74 75 72 6e 28 30 |)).XX...|return(0|
|00004a10| 29 3b 0a 58 58 09 7d 0a | 58 58 0a 58 58 09 72 65 |);.XX.}.|XX.XX.re|
|00004a20| 74 75 72 6e 28 27 42 27 | 29 3b 0a 58 58 7d 0a 58 |turn('B'|);.XX}.X|
|00004a30| 58 0a 58 58 0a 58 58 2f | 2a 0a 58 58 20 2a 0a 58 |X.XX.XX/|*.XX *.X|
|00004a40| 58 20 2a 20 20 20 20 20 | 20 65 6e 64 70 28 29 20 |X * | endp() |
|00004a50| 65 6e 64 20 70 72 6f 74 | 6f 63 6f 6c 0a 58 58 20 |end prot|ocol.XX |
|00004a60| 2a 0a 58 58 20 2a 2f 0a | 58 58 0a 58 58 65 6e 64 |*.XX */.|XX.XXend|
|00004a70| 70 28 29 0a 58 58 7b 0a | 58 58 09 73 74 72 63 70 |p().XX{.|XX.strcp|
|00004a80| 79 28 72 70 61 63 6b 65 | 74 2c 22 48 59 22 29 3b |y(rpacke|t,"HY");|
|00004a90| 0a 58 58 09 28 2a 73 65 | 6e 64 70 6b 74 29 28 72 |.XX.(*se|ndpkt)(r|
|00004aa0| 70 61 63 6b 65 74 2c 20 | 30 2c 20 32 29 3b 20 2f |packet, |0, 2); /|
|00004ab0| 2a 20 64 6f 6e 74 20 77 | 61 69 74 20 66 6f 72 20 |* dont w|ait for |
|00004ac0| 41 43 4b 20 2a 2f 0a 58 | 58 09 28 2a 63 6c 6f 73 |ACK */.X|X.(*clos|
|00004ad0| 65 70 6b 29 28 29 3b 0a | 58 58 0a 58 58 09 72 65 |epk)();.|XX.XX.re|
|00004ae0| 74 75 72 6e 28 27 50 27 | 29 3b 0a 58 58 7d 0a 58 |turn('P'|);.XX}.X|
|00004af0| 58 0a 58 58 0a 58 58 2f | 2a 0a 58 58 20 2a 20 20 |X.XX.XX/|*.XX * |
|00004b00| 72 20 64 20 61 20 74 20 | 61 0a 58 58 20 2a 0a 58 |r d a t |a.XX *.X|
|00004b10| 58 20 2a 20 20 52 65 63 | 65 69 76 65 20 44 61 74 |X * Rec|eive Dat|
|00004b20| 61 0a 58 58 20 2a 2f 0a | 58 58 0a 58 58 72 64 61 |a.XX */.|XX.XXrda|
|00004b30| 74 61 28 29 0a 58 58 7b | 0a 58 58 09 69 6e 74 20 |ta().XX{|.XX.int |
|00004b40| 6c 65 6e 3b 0a 58 58 0a | 58 58 09 69 66 20 28 28 |len;.XX.|XX.if ((|
|00004b50| 2a 67 65 74 70 6b 74 29 | 28 72 70 61 63 6b 65 74 |*getpkt)|(rpacket|
|00004b60| 2c 20 26 6c 65 6e 29 29 | 0a 58 58 09 09 72 65 74 |, &len))|.XX..ret|
|00004b70| 75 72 6e 28 30 29 3b 0a | 58 58 0a 58 58 09 69 66 |urn(0);.|XX.XX.if|
|00004b80| 20 28 6c 65 6e 20 3d 3d | 20 30 29 20 20 7b 0a 58 | (len ==| 0) {.X|
|00004b90| 58 09 20 20 20 20 20 20 | 20 20 63 6c 6f 73 65 28 |X. | close(|
|00004ba0| 66 70 29 3b 0a 58 58 09 | 20 20 20 20 20 20 20 20 |fp);.XX.| |
|00004bb0| 73 74 72 63 70 79 28 72 | 70 61 63 6b 65 74 2c 22 |strcpy(r|packet,"|
|00004bc0| 43 59 22 29 3b 0a 58 58 | 09 09 69 66 20 28 28 2a |CY");.XX|..if ((*|
|00004bd0| 73 65 6e 64 70 6b 74 29 | 28 72 70 61 63 6b 65 74 |sendpkt)|(rpacket|
|00004be0| 2c 20 30 2c 20 31 29 29 | 0a 58 58 09 09 09 72 65 |, 0, 1))|.XX...re|
|00004bf0| 74 75 72 6e 28 30 29 3b | 0a 58 58 0a 58 58 09 09 |turn(0);|.XX.XX..|
|00004c00| 69 66 20 28 64 65 62 75 | 67 29 0a 58 58 09 09 09 |if (debu|g).XX...|
|00004c10| 70 72 69 6e 74 6d 73 67 | 28 22 74 72 61 6e 73 66 |printmsg|("transf|
|00004c20| 65 72 20 63 6f 6d 70 6c | 65 74 65 22 29 3b 0a 58 |er compl|ete");.X|
|00004c30| 58 0a 58 58 09 09 72 65 | 74 75 72 6e 28 27 46 27 |X.XX..re|turn('F'|
|00004c40| 29 3b 0a 58 58 09 7d 0a | 58 58 0a 58 58 09 77 72 |);.XX.}.|XX.XX.wr|
|00004c50| 69 74 65 28 66 70 2c 20 | 72 70 61 63 6b 65 74 2c |ite(fp, |rpacket,|
|00004c60| 20 6c 65 6e 29 3b 09 2f | 2a 20 57 72 69 74 65 20 | len);./|* Write |
|00004c70| 74 68 65 20 64 61 74 61 | 20 74 6f 20 74 68 65 20 |the data| to the |
|00004c80| 66 69 6c 65 20 2a 2f 0a | 58 58 0a 58 58 09 72 65 |file */.|XX.XX.re|
|00004c90| 74 75 72 6e 28 27 44 27 | 29 3b 09 09 09 2f 2a 20 |turn('D'|);.../* |
|00004ca0| 52 65 6d 61 69 6e 20 69 | 6e 20 64 61 74 61 20 73 |Remain i|n data s|
|00004cb0| 74 61 74 65 20 2a 2f 0a | 58 58 7d 0a 58 58 0a 58 |tate */.|XX}.XX.X|
|00004cc0| 58 0a 58 58 2f 2a 0a 58 | 58 20 2a 20 20 72 20 66 |X.XX/*.X|X * r f|
|00004cd0| 20 69 20 6c 20 65 0a 58 | 58 20 2a 0a 58 58 20 2a | i l e.X|X *.XX *|
|00004ce0| 20 20 52 65 63 65 69 76 | 65 20 46 69 6c 65 20 48 | Receiv|e File H|
|00004cf0| 65 61 64 65 72 0a 58 58 | 20 2a 2f 0a 58 58 0a 58 |eader.XX| */.XX.X|
|00004d00| 58 72 66 69 6c 65 28 29 | 0a 58 58 7b 0a 58 58 09 |Xrfile()|.XX{.XX.|
|00004d10| 69 6e 74 09 6c 65 6e 2c | 20 69 3b 0a 58 58 09 63 |int.len,| i;.XX.c|
|00004d20| 68 61 72 09 66 69 6c 65 | 6e 61 6d 31 5b 31 33 32 |har.file|nam1[132|
|00004d30| 5d 3b 09 2f 2a 48 6f 6c | 64 73 20 74 68 65 20 63 |];./*Hol|ds the c|
|00004d40| 6f 6e 76 65 72 74 65 64 | 20 66 69 6c 65 20 6e 61 |onverted| file na|
|00004d50| 6d 65 20 2a 2f 0a 58 58 | 0a 58 58 09 69 66 20 28 |me */.XX|.XX.if (|
|00004d60| 28 2a 67 65 74 70 6b 74 | 29 28 72 70 61 63 6b 65 |(*getpkt|)(rpacke|
|00004d70| 74 2c 20 26 6c 65 6e 29 | 29 0a 58 58 09 09 72 65 |t, &len)|).XX..re|
|00004d80| 74 75 72 6e 28 30 29 3b | 0a 58 58 0a 58 58 09 69 |turn(0);|.XX.XX.i|
|00004d90| 66 20 28 28 72 70 61 63 | 6b 65 74 5b 30 5d 20 26 |f ((rpac|ket[0] &|
|00004da0| 20 30 78 37 66 29 20 3d | 3d 20 27 48 27 29 0a 58 | 0x7f) =|= 'H').X|
|00004db0| 58 09 09 72 65 74 75 72 | 6e 28 27 43 27 29 3b 0a |X..retur|n('C');.|
|00004dc0| 58 58 0a 58 58 09 73 73 | 63 61 6e 66 28 26 72 70 |XX.XX.ss|canf(&rp|
|00004dd0| 61 63 6b 65 74 5b 32 5d | 2c 20 22 25 73 20 25 73 |acket[2]|, "%s %s|
|00004de0| 20 22 2c 20 66 72 6f 6d | 66 69 6c 65 2c 20 74 6f | ", from|file, to|
|00004df0| 66 69 6c 65 29 3b 0a 58 | 58 0a 58 58 09 69 66 20 |file);.X|X.XX.if |
|00004e00| 28 28 66 70 20 3d 20 63 | 72 65 61 74 28 74 6f 66 |((fp = c|reat(tof|
|00004e10| 69 6c 65 2c 20 50 45 52 | 4d 53 29 29 20 3d 3d 20 |ile, PER|MS)) == |
|00004e20| 2d 31 29 20 20 7b 09 2f | 2a 20 54 72 79 20 74 6f |-1) {./|* Try to|
|00004e30| 20 6f 70 65 6e 20 61 20 | 6e 65 77 20 66 69 6c 65 | open a |new file|
|00004e40| 20 2a 2f 0a 58 58 09 09 | 69 66 20 28 64 65 62 75 | */.XX..|if (debu|
|00004e50| 67 29 0a 58 58 09 09 09 | 70 72 69 6e 74 6d 73 67 |g).XX...|printmsg|
|00004e60| 28 22 63 61 6e 6e 6f 74 | 20 63 72 65 61 74 65 20 |("cannot| create |
|00004e70| 25 73 22 2c 74 6f 66 69 | 6c 65 29 3b 20 2f 2a 20 |%s",tofi|le); /* |
|00004e80| 47 69 76 65 20 75 70 20 | 69 66 20 63 61 6e 27 74 |Give up |if can't|
|00004e90| 20 2a 2f 0a 58 58 0a 58 | 58 09 09 72 65 74 75 72 | */.XX.X|X..retur|
|00004ea0| 6e 28 27 41 27 29 3b 0a | 58 58 09 7d 0a 58 58 0a |n('A');.|XX.}.XX.|
|00004eb0| 58 58 09 69 66 20 28 64 | 65 62 75 67 29 0a 58 58 |XX.if (d|ebug).XX|
|00004ec0| 09 09 70 72 69 6e 74 6d | 73 67 28 22 52 65 63 65 |..printm|sg("Rece|
|00004ed0| 69 76 69 6e 67 20 25 73 | 20 61 73 20 25 73 22 2c |iving %s| as %s",|
|00004ee0| 20 66 72 6f 6d 66 69 6c | 65 2c 20 74 6f 66 69 6c | fromfil|e, tofil|
|00004ef0| 65 29 3b 0a 58 58 0a 58 | 58 09 73 74 72 63 70 79 |e);.XX.X|X.strcpy|
|00004f00| 28 72 70 61 63 6b 65 74 | 2c 20 22 53 59 22 29 3b |(rpacket|, "SY");|
|00004f10| 0a 58 58 0a 58 58 09 69 | 66 20 28 28 2a 73 65 6e |.XX.XX.i|f ((*sen|
|00004f20| 64 70 6b 74 29 28 72 70 | 61 63 6b 65 74 2c 20 30 |dpkt)(rp|acket, 0|
|00004f30| 2c 20 31 29 29 0a 58 58 | 09 09 72 65 74 75 72 6e |, 1)).XX|..return|
|00004f40| 28 30 29 3b 0a 58 58 0a | 58 58 09 72 65 74 75 72 |(0);.XX.|XX.retur|
|00004f50| 6e 28 27 44 27 29 3b 09 | 09 2f 2a 20 53 77 69 74 |n('D');.|./* Swit|
|00004f60| 63 68 20 74 6f 20 64 61 | 74 61 20 73 74 61 74 65 |ch to da|ta state|
|00004f70| 20 2a 2f 0a 58 58 7d 0a | 58 58 0a 58 58 0a 58 58 | */.XX}.|XX.XX.XX|
|00004f80| 2f 2a 0a 58 58 20 2a 20 | 20 72 20 69 20 6e 20 69 |/*.XX * | r i n i|
|00004f90| 20 74 0a 58 58 20 2a 0a | 58 58 20 2a 20 20 52 65 | t.XX *.|XX * Re|
|00004fa0| 63 65 69 76 65 20 49 6e | 69 74 69 61 6c 69 7a 61 |ceive In|itializa|
|00004fb0| 74 69 6f 6e 0a 58 58 20 | 2a 2f 0a 58 58 0a 58 58 |tion.XX |*/.XX.XX|
|00004fc0| 72 69 6e 69 74 28 29 0a | 58 58 7b 0a 58 58 09 69 |rinit().|XX{.XX.i|
|00004fd0| 66 20 28 28 2a 6f 70 65 | 6e 70 6b 29 28 29 29 0a |f ((*ope|npk)()).|
|00004fe0| 58 58 09 09 72 65 74 75 | 72 6e 28 30 29 3b 0a 58 |XX..retu|rn(0);.X|
|00004ff0| 58 0a 58 58 09 72 65 74 | 75 72 6e 28 27 46 27 29 |X.XX.ret|urn('F')|
|00005000| 3b 0a 58 58 7d 0a 40 2f | 2f 45 2a 4f 2a 46 20 64 |;.XX}.@/|/E*O*F d|
|00005010| 63 70 72 65 63 2e 63 2f | 2f 0a 63 68 6d 6f 64 20 |cprec.c/|/.chmod |
|00005020| 75 3d 72 77 2c 67 3d 72 | 2c 6f 3d 72 20 64 63 70 |u=rw,g=r|,o=r dcp|
|00005030| 72 65 63 2e 63 0a 20 0a | 65 63 68 6f 20 78 20 2d |rec.c. .|echo x -|
|00005040| 20 64 63 70 73 63 61 6e | 2e 63 0a 73 65 64 20 27 | dcpscan|.c.sed '|
|00005050| 73 2f 5e 58 58 2f 2f 27 | 20 3e 20 22 64 63 70 73 |s/^XX//'| > "dcps|
|00005060| 63 61 6e 2e 63 22 20 3c | 3c 27 40 2f 2f 45 2a 4f |can.c" <|<'@//E*O|
|00005070| 2a 46 20 64 63 70 73 63 | 61 6e 2e 63 2f 2f 27 0a |*F dcpsc|an.c//'.|
|00005080| 58 58 2f 2a 20 22 44 43 | 50 22 20 61 20 75 75 63 |XX/* "DC|P" a uuc|
|00005090| 70 20 63 6c 6f 6e 65 2e | 20 43 6f 70 79 72 69 67 |p clone.| Copyrig|
|000050a0| 68 74 20 52 69 63 68 61 | 72 64 20 48 2e 20 4c 61 |ht Richa|rd H. La|
|000050b0| 6d 62 20 31 39 38 35 2c | 31 39 38 36 2c 31 39 38 |mb 1985,|1986,198|
|000050c0| 37 20 2a 2f 0a 58 58 2f | 2a 20 44 69 72 65 63 74 |7 */.XX/|* Direct|
|000050d0| 6f 72 79 20 73 63 61 6e | 6e 65 72 20 2a 2f 0a 58 |ory scan|ner */.X|
|000050e0| 58 0a 58 58 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |X.XX#inc|lude <sy|
|000050f0| 73 2f 64 69 72 2e 68 3e | 0a 58 58 23 69 6e 63 6c |s/dir.h>|.XX#incl|
|00005100| 75 64 65 20 3c 73 74 72 | 69 6e 67 2e 68 3e 0a 58 |ude <str|ing.h>.X|
|00005110| 58 23 69 6e 63 6c 75 64 | 65 20 22 64 63 70 2e 68 |X#includ|e "dcp.h|
|00005120| 22 0a 58 58 0a 58 58 2f | 2a 0a 58 58 2a 2a 0a 58 |".XX.XX/|*.XX**.X|
|00005130| 58 2a 2a 73 63 61 6e 64 | 69 72 0a 58 58 2a 2a 0a |X**scand|ir.XX**.|
|00005140| 58 58 2a 2f 0a 58 58 0a | 58 58 73 63 61 6e 64 69 |XX*/.XX.|XXscandi|
|00005150| 72 28 29 0a 58 58 7b 0a | 58 58 09 69 6e 74 09 66 |r().XX{.|XX.int.f|
|00005160| 6e 3b 0a 58 58 09 44 49 | 52 09 2a 64 69 72 3b 0a |n;.XX.DI|R.*dir;.|
|00005170| 58 58 09 63 68 61 72 09 | 63 6e 61 6d 65 5b 33 5d |XX.char.|cname[3]|
|00005180| 3b 0a 58 58 09 73 74 72 | 75 63 74 09 64 69 72 65 |;.XX.str|uct.dire|
|00005190| 63 74 20 20 2a 70 64 69 | 72 3b 0a 58 58 0a 58 58 |ct *pdi|r;.XX.XX|
|000051a0| 09 73 74 72 63 70 79 28 | 63 6e 61 6d 65 2c 20 22 |.strcpy(|cname, "|
|000051b0| 43 2e 22 29 3b 0a 58 58 | 0a 58 58 09 69 66 20 28 |C.");.XX|.XX.if (|
|000051c0| 28 64 69 72 20 3d 20 6f | 70 65 6e 64 69 72 28 53 |(dir = o|pendir(S|
|000051d0| 50 4f 4f 4c 44 49 52 29 | 29 20 3d 3d 20 28 44 49 |POOLDIR)|) == (DI|
|000051e0| 52 20 2a 29 4e 55 4c 4c | 29 0a 58 58 09 09 72 65 |R *)NULL|).XX..re|
|000051f0| 74 75 72 6e 28 27 41 27 | 29 3b 0a 58 58 0a 58 58 |turn('A'|);.XX.XX|
|00005200| 09 77 68 69 6c 65 20 28 | 28 70 64 69 72 20 3d 20 |.while (|(pdir = |
|00005210| 72 65 61 64 64 69 72 28 | 64 69 72 29 29 20 21 3d |readdir(|dir)) !=|
|00005220| 20 28 73 74 72 75 63 74 | 20 64 69 72 65 63 74 20 | (struct| direct |
|00005230| 2a 29 4e 55 4c 4c 29 20 | 20 7b 0a 58 58 09 09 69 |*)NULL) | {.XX..i|
|00005240| 66 20 28 64 65 62 75 67 | 20 3e 20 34 29 0a 58 58 |f (debug| > 4).XX|
|00005250| 09 09 09 70 72 69 6e 74 | 6d 73 67 28 22 64 69 72 |...print|msg("dir|
|00005260| 20 66 69 6c 65 20 3d 20 | 25 73 20 63 66 69 6c 65 | file = |%s cfile|
|00005270| 20 3d 20 25 73 22 2c 70 | 64 69 72 2d 3e 64 5f 6e | = %s",p|dir->d_n|
|00005280| 61 6d 65 2c 20 63 6e 61 | 6d 65 29 3b 0a 58 58 0a |ame, cna|me);.XX.|
|00005290| 58 58 09 09 69 66 20 28 | 73 74 72 6e 63 6d 70 28 |XX..if (|strncmp(|
|000052a0| 70 64 69 72 2d 3e 64 5f | 6e 61 6d 65 2c 20 63 6e |pdir->d_|name, cn|
|000052b0| 61 6d 65 2c 20 32 29 20 | 3d 3d 20 30 29 20 20 7b |ame, 2) |== 0) {|
|000052c0| 0a 58 58 09 09 09 73 74 | 72 6e 63 70 79 28 63 66 |.XX...st|rncpy(cf|
|000052d0| 69 6c 65 2c 20 70 64 69 | 72 2d 3e 64 5f 6e 61 6d |ile, pdi|r->d_nam|
|000052e0| 65 2c 20 70 64 69 72 2d | 3e 64 5f 6e 61 6d 6c 65 |e, pdir-|>d_namle|
|000052f0| 6e 29 3b 0a 58 58 09 20 | 20 20 20 20 20 20 20 20 |n);.XX. | |
|00005300| 20 20 20 20 20 20 20 63 | 6c 6f 73 65 64 69 72 28 | c|losedir(|
|00005310| 64 69 72 29 3b 0a 58 58 | 0a 58 58 09 09 09 69 66 |dir);.XX|.XX...if|
|00005320| 20 28 66 77 20 3d 3d 20 | 2d 31 29 0a 58 58 09 09 | (fw == |-1).XX..|
|00005330| 09 09 69 66 20 28 28 66 | 77 20 3d 20 6f 70 65 6e |..if ((f|w = open|
|00005340| 28 63 66 69 6c 65 2c 20 | 30 29 29 20 3d 3d 20 2d |(cfile, |0)) == -|
|00005350| 31 29 0a 58 58 09 09 09 | 09 09 72 65 74 75 72 6e |1).XX...|..return|
|00005360| 28 27 59 27 29 3b 0a 58 | 58 0a 58 58 09 09 09 72 |('Y');.X|X.XX...r|
|00005370| 65 74 75 72 6e 28 27 53 | 27 29 3b 0a 58 58 09 09 |eturn('S|');.XX..|
|00005380| 7d 0a 58 58 09 7d 0a 58 | 58 0a 58 58 09 63 6c 6f |}.XX.}.X|X.XX.clo|
|00005390| 73 65 64 69 72 28 64 69 | 72 29 3b 0a 58 58 0a 58 |sedir(di|r);.XX.X|
|000053a0| 58 09 72 65 74 75 72 6e | 28 27 51 27 29 3b 0a 58 |X.return|('Q');.X|
|000053b0| 58 7d 0a 40 2f 2f 45 2a | 4f 2a 46 20 64 63 70 73 |X}.@//E*|O*F dcps|
|000053c0| 63 61 6e 2e 63 2f 2f 0a | 63 68 6d 6f 64 20 75 3d |can.c//.|chmod u=|
|000053d0| 72 77 2c 67 3d 72 2c 6f | 3d 72 20 64 63 70 73 63 |rw,g=r,o|=r dcpsc|
|000053e0| 61 6e 2e 63 0a 20 0a 65 | 63 68 6f 20 78 20 2d 20 |an.c. .e|cho x - |
|000053f0| 64 63 70 73 65 6e 64 2e | 63 0a 73 65 64 20 27 73 |dcpsend.|c.sed 's|
|00005400| 2f 5e 58 58 2f 2f 27 20 | 3e 20 22 64 63 70 73 65 |/^XX//' |> "dcpse|
|00005410| 6e 64 2e 63 22 20 3c 3c | 27 40 2f 2f 45 2a 4f 2a |nd.c" <<|'@//E*O*|
|00005420| 46 20 64 63 70 73 65 6e | 64 2e 63 2f 2f 27 0a 58 |F dcpsen|d.c//'.X|
|00005430| 58 2f 2a 20 22 44 43 50 | 22 20 61 20 75 75 63 70 |X/* "DCP|" a uucp|
|00005440| 20 63 6c 6f 6e 65 2e 20 | 43 6f 70 79 72 69 67 68 | clone. |Copyrigh|
|00005450| 74 20 52 69 63 68 61 72 | 64 20 48 2e 20 4c 61 6d |t Richar|d H. Lam|
|00005460| 62 20 31 39 38 35 2c 31 | 39 38 36 2c 31 39 38 37 |b 1985,1|986,1987|
|00005470| 20 2a 2f 0a 58 58 2f 2a | 20 66 69 6c 65 20 73 65 | */.XX/*| file se|
|00005480| 6e 64 20 72 6f 75 74 69 | 6e 65 73 20 2a 2f 0a 58 |nd routi|nes */.X|
|00005490| 58 0a 58 58 23 69 6e 63 | 6c 75 64 65 20 22 64 63 |X.XX#inc|lude "dc|
|000054a0| 70 2e 68 22 0a 58 58 0a | 58 58 73 74 61 74 69 63 |p.h".XX.|XXstatic|
|000054b0| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 73 | unsigne|d char s|
|000054c0| 70 61 63 6b 65 74 5b 4d | 41 58 50 41 43 4b 5d 3b |packet[M|AXPACK];|
|000054d0| 0a 58 58 0a 58 58 0a 58 | 58 2f 2a 0a 58 58 20 2a |.XX.XX.X|X/*.XX *|
|000054e0| 20 20 73 20 64 20 61 20 | 74 20 61 0a 58 58 20 2a | s d a |t a.XX *|
|000054f0| 0a 58 58 20 2a 20 20 53 | 65 6e 64 20 46 69 6c 65 |.XX * S|end File|
|00005500| 20 44 61 74 61 0a 58 58 | 20 2a 2f 0a 58 58 0a 58 | Data.XX| */.XX.X|
|00005510| 58 73 64 61 74 61 28 29 | 0a 58 58 7b 0a 58 58 09 |Xsdata()|.XX{.XX.|
|00005520| 69 66 20 28 28 2a 73 65 | 6e 64 70 6b 74 29 28 73 |if ((*se|ndpkt)(s|
|00005530| 70 61 63 6b 65 74 2c 20 | 73 69 7a 65 2c 20 30 29 |packet, |size, 0)|
|00005540| 29 0a 58 58 09 09 72 65 | 74 75 72 6e 28 30 29 3b |).XX..re|turn(0);|
|00005550| 09 09 09 2f 2a 20 73 65 | 6e 64 20 64 61 74 61 20 |.../* se|nd data |
|00005560| 2a 2f 0a 58 58 0a 58 58 | 09 69 66 20 28 28 73 69 |*/.XX.XX|.if ((si|
|00005570| 7a 65 20 3d 20 62 75 66 | 69 6c 6c 28 73 70 61 63 |ze = buf|ill(spac|
|00005580| 6b 65 74 29 29 20 3d 3d | 20 2d 31 29 09 2f 2a 20 |ket)) ==| -1)./* |
|00005590| 47 65 74 20 64 61 74 61 | 20 66 72 6f 6d 20 66 69 |Get data| from fi|
|000055a0| 6c 65 20 2a 2f 0a 58 58 | 09 09 72 65 74 75 72 6e |le */.XX|..return|
|000055b0| 28 27 5a 27 29 3b 09 09 | 09 2f 2a 20 49 66 20 45 |('Z');..|./* If E|
|000055c0| 4f 46 20 73 65 74 20 73 | 74 61 74 65 20 74 6f 20 |OF set s|tate to |
|000055d0| 74 68 61 74 20 2a 2f 0a | 58 58 0a 58 58 09 72 65 |that */.|XX.XX.re|
|000055e0| 74 75 72 6e 28 27 44 27 | 29 3b 09 09 09 09 2f 2a |turn('D'|);..../*|
|000055f0| 20 47 6f 74 20 64 61 74 | 61 2c 20 73 74 61 79 20 | Got dat|a, stay |
|00005600| 69 6e 20 73 74 61 74 65 | 20 44 20 2a 2f 0a 58 58 |in state| D */.XX|
|00005610| 7d 0a 58 58 0a 58 58 0a | 58 58 2f 2a 0a 58 58 20 |}.XX.XX.|XX/*.XX |
|00005620| 2a 20 20 62 20 75 20 66 | 20 69 20 6c 20 6c 0a 58 |* b u f| i l l.X|
|00005630| 58 20 2a 0a 58 58 20 2a | 20 20 47 65 74 20 61 20 |X *.XX *| Get a |
|00005640| 62 75 66 66 65 72 66 75 | 6c 20 6f 66 20 64 61 74 |bufferfu|l of dat|
|00005650| 61 20 66 72 6f 6d 20 74 | 68 65 20 66 69 6c 65 20 |a from t|he file |
|00005660| 74 68 61 74 27 73 20 62 | 65 69 6e 67 20 73 65 6e |that's b|eing sen|
|00005670| 74 2e 0a 58 58 20 2a 20 | 20 4f 6e 6c 79 20 63 6f |t..XX * | Only co|
|00005680| 6e 74 72 6f 6c 2d 71 75 | 6f 74 69 6e 67 20 69 73 |ntrol-qu|oting is|
|00005690| 20 64 6f 6e 65 3b 20 38 | 2d 62 69 74 20 26 20 72 | done; 8|-bit & r|
|000056a0| 65 70 65 61 74 20 63 6f | 75 6e 74 20 70 72 65 66 |epeat co|unt pref|
|000056b0| 69 78 65 73 20 61 72 65 | 0a 58 58 20 2a 20 20 6e |ixes are|.XX * n|
|000056c0| 6f 74 20 68 61 6e 64 6c | 65 64 2e 0a 58 58 20 2a |ot handl|ed..XX *|
|000056d0| 2f 0a 58 58 0a 58 58 69 | 6e 74 20 62 75 66 69 6c |/.XX.XXi|nt bufil|
|000056e0| 6c 28 62 75 66 66 65 72 | 29 0a 58 58 75 6e 73 69 |l(buffer|).XXunsi|
|000056f0| 67 6e 65 64 20 63 68 61 | 72 09 62 75 66 66 65 72 |gned cha|r.buffer|
|00005700| 5b 5d 3b 0a 58 58 7b 0a | 58 58 09 69 6e 74 09 69 |[];.XX{.|XX.int.i|
|00005710| 20 3d 20 30 3b 0a 58 58 | 09 63 68 61 72 09 74 3b | = 0;.XX|.char.t;|
|00005720| 0a 58 58 0a 58 58 20 20 | 20 20 20 20 20 20 77 68 |.XX.XX | wh|
|00005730| 69 6c 65 20 28 72 65 61 | 64 28 66 70 2c 20 26 74 |ile (rea|d(fp, &t|
|00005740| 2c 20 31 29 20 3d 3d 20 | 31 29 20 20 7b 0a 58 58 |, 1) == |1) {.XX|
|00005750| 09 09 62 75 66 66 65 72 | 5b 69 2b 2b 5d 20 3d 20 |..buffer|[i++] = |
|00005760| 74 3b 09 2f 2a 20 44 65 | 70 6f 73 69 74 20 74 68 |t;./* De|posit th|
|00005770| 65 20 63 68 61 72 61 63 | 74 65 72 20 69 74 73 65 |e charac|ter itse|
|00005780| 6c 66 20 2a 2f 0a 58 58 | 0a 58 58 09 09 69 66 20 |lf */.XX|.XX..if |
|00005790| 28 69 20 3e 3d 20 70 6b | 74 73 69 7a 65 29 0a 58 |(i >= pk|tsize).X|
|000057a0| 58 09 09 09 72 65 74 75 | 72 6e 28 69 29 3b 0a 58 |X...retu|rn(i);.X|
|000057b0| 58 09 7d 0a 58 58 0a 58 | 58 09 69 66 20 28 69 20 |X.}.XX.X|X.if (i |
|000057c0| 3d 3d 20 30 29 0a 58 58 | 09 09 72 65 74 75 72 6e |== 0).XX|..return|
|000057d0| 28 2d 31 29 3b 0a 58 58 | 0a 58 58 09 72 65 74 75 |(-1);.XX|.XX.retu|
|000057e0| 72 6e 28 69 29 3b 09 09 | 09 2f 2a 20 48 61 6e 64 |rn(i);..|./* Hand|
|000057f0| 6c 65 20 70 61 72 74 69 | 61 6c 20 62 75 66 66 65 |le parti|al buffe|
|00005800| 72 20 2a 2f 0a 58 58 7d | 0a 58 58 0a 58 58 0a 58 |r */.XX}|.XX.XX.X|
|00005810| 58 2f 2a 0a 58 58 20 2a | 20 20 73 20 62 20 72 20 |X/*.XX *| s b r |
|00005820| 65 20 61 20 6b 0a 58 58 | 20 2a 0a 58 58 20 2a 20 |e a k.XX| *.XX * |
|00005830| 20 53 65 6e 64 20 42 72 | 65 61 6b 20 28 45 4f 54 | Send Br|eak (EOT|
|00005840| 29 0a 58 58 20 2a 2f 0a | 58 58 0a 58 58 69 6e 74 |).XX */.|XX.XXint|
|00005850| 20 73 62 72 65 61 6b 28 | 29 0a 58 58 7b 0a 58 58 | sbreak(|).XX{.XX|
|00005860| 09 69 6e 74 09 6c 65 6e | 3b 0a 58 58 0a 58 58 09 |.int.len|;.XX.XX.|
|00005870| 73 74 72 63 70 79 28 73 | 70 61 63 6b 65 74 2c 22 |strcpy(s|packet,"|
|00005880| 48 22 29 3b 0a 58 58 0a | 58 58 09 69 66 20 28 28 |H");.XX.|XX.if ((|
|00005890| 2a 73 65 6e 64 70 6b 74 | 29 28 73 70 61 63 6b 65 |*sendpkt|)(spacke|
|000058a0| 74 2c 20 30 2c 20 31 29 | 29 0a 58 58 09 09 72 65 |t, 0, 1)|).XX..re|
|000058b0| 74 75 72 6e 28 30 29 3b | 0a 58 58 0a 58 58 09 69 |turn(0);|.XX.XX.i|
|000058c0| 66 20 28 28 2a 67 65 74 | 70 6b 74 29 28 73 70 61 |f ((*get|pkt)(spa|
|000058d0| 63 6b 65 74 2c 20 26 6c | 65 6e 29 29 0a 58 58 09 |cket, &l|en)).XX.|
|000058e0| 09 72 65 74 75 72 6e 28 | 30 29 3b 0a 58 58 0a 58 |.return(|0);.XX.X|
|000058f0| 58 09 69 66 20 28 64 65 | 62 75 67 29 0a 58 58 09 |X.if (de|bug).XX.|
|00005900| 09 70 72 69 6e 74 6d 73 | 67 28 22 53 77 69 74 63 |.printms|g("Switc|
|00005910| 68 20 6d 6f 64 65 73 22 | 29 3b 0a 58 58 0a 58 58 |h modes"|);.XX.XX|
|00005920| 09 69 66 20 28 73 70 61 | 63 6b 65 74 5b 31 5d 20 |.if (spa|cket[1] |
|00005930| 3d 3d 20 27 4e 27 29 0a | 58 58 09 09 72 65 74 75 |== 'N').|XX..retu|
|00005940| 72 6e 28 27 47 27 29 3b | 0a 58 58 0a 58 58 20 20 |rn('G');|.XX.XX |
|00005950| 20 20 20 20 20 20 72 65 | 74 75 72 6e 28 27 59 27 | re|turn('Y'|
|00005960| 29 3b 0a 58 58 7d 0a 58 | 58 0a 58 58 0a 58 58 2f |);.XX}.X|X.XX.XX/|
|00005970| 2a 0a 58 58 20 2a 20 20 | 73 20 65 20 6f 20 66 0a |*.XX * |s e o f.|
|00005980| 58 58 20 2a 0a 58 58 20 | 2a 20 20 53 65 6e 64 20 |XX *.XX |* Send |
|00005990| 45 6e 64 2d 4f 66 2d 46 | 69 6c 65 2e 0a 58 58 20 |End-Of-F|ile..XX |
|000059a0| 2a 2f 0a 58 58 0a 58 58 | 69 6e 74 20 73 65 6f 66 |*/.XX.XX|int seof|
|000059b0| 28 29 0a 58 58 7b 0a 58 | 58 09 69 6e 74 09 6c 65 |().XX{.X|X.int.le|
|000059c0| 6e 3b 0a 58 58 0a 58 58 | 09 69 66 20 28 28 2a 73 |n;.XX.XX|.if ((*s|
|000059d0| 65 6e 64 70 6b 74 29 28 | 73 70 61 63 6b 65 74 2c |endpkt)(|spacket,|
|000059e0| 20 30 2c 20 30 29 29 0a | 58 58 09 09 72 65 74 75 | 0, 0)).|XX..retu|
|000059f0| 72 6e 28 30 29 3b 0a 58 | 58 0a 58 58 09 69 66 20 |rn(0);.X|X.XX.if |
|00005a00| 28 28 2a 67 65 74 70 6b | 74 29 28 73 70 61 63 6b |((*getpk|t)(spack|
|00005a10| 65 74 2c 20 26 6c 65 6e | 29 29 0a 58 58 09 09 72 |et, &len|)).XX..r|
|00005a20| 65 74 75 72 6e 28 30 29 | 3b 09 09 2f 2a 20 72 65 |eturn(0)|;../* re|
|00005a30| 63 20 43 59 20 6f 72 20 | 43 4e 20 2a 2f 0a 58 58 |c CY or |CN */.XX|
|00005a40| 0a 58 58 09 69 66 20 28 | 73 74 72 6e 63 6d 70 28 |.XX.if (|strncmp(|
|00005a50| 73 70 61 63 6b 65 74 2c | 20 22 43 59 22 2c 20 32 |spacket,| "CY", 2|
|00005a60| 29 29 0a 58 58 09 09 72 | 65 74 75 72 6e 28 30 29 |)).XX..r|eturn(0)|
|00005a70| 3b 09 09 2f 2a 20 63 61 | 6e 74 20 73 65 6e 64 20 |;../* ca|nt send |
|00005a80| 66 69 6c 65 20 2a 2f 0a | 58 58 0a 58 58 09 63 6c |file */.|XX.XX.cl|
|00005a90| 6f 73 65 28 66 70 29 3b | 0a 58 58 09 66 70 20 3d |ose(fp);|.XX.fp =|
|00005aa0| 20 28 2d 31 29 3b 0a 58 | 58 09 75 6e 6c 69 6e 6b | (-1);.X|X.unlink|
|00005ab0| 28 66 72 6f 6d 66 69 6c | 65 29 3b 0a 58 58 0a 58 |(fromfil|e);.XX.X|
|00005ac0| 58 09 69 66 20 28 64 65 | 62 75 67 29 0a 58 58 09 |X.if (de|bug).XX.|
|00005ad0| 09 70 72 69 6e 74 6d 73 | 67 28 22 74 72 61 6e 73 |.printms|g("trans|
|00005ae0| 66 65 72 20 25 73 20 63 | 6f 6d 70 6c 65 74 65 2c |fer %s c|omplete,|
|00005af0| 25 64 22 2c 66 72 6f 6d | 66 69 6c 65 2c 66 70 29 |%d",from|file,fp)|
|00005b00| 3b 0a 58 58 0a 58 58 09 | 72 65 74 75 72 6e 28 27 |;.XX.XX.|return('|
|00005b10| 46 27 29 3b 09 09 09 2f | 2a 20 67 6f 20 67 65 74 |F');.../|* go get|
|00005b20| 20 74 68 65 20 6e 65 78 | 74 20 66 69 6c 65 20 74 | the nex|t file t|
|00005b30| 6f 20 73 65 6e 64 20 2a | 2f 0a 58 58 7d 0a 58 58 |o send *|/.XX}.XX|
|00005b40| 0a 58 58 0a 58 58 2f 2a | 0a 58 58 20 2a 20 20 73 |.XX.XX/*|.XX * s|
|00005b50| 20 66 20 69 20 6c 20 65 | 0a 58 58 20 2a 0a 58 58 | f i l e|.XX *.XX|
|00005b60| 20 2a 20 20 53 65 6e 64 | 20 46 69 6c 65 20 48 65 | * Send| File He|
|00005b70| 61 64 65 72 2e 0a 58 58 | 20 2a 2f 0a 58 58 0a 58 |ader..XX| */.XX.X|
|00005b80| 58 69 6e 74 20 73 66 69 | 6c 65 28 29 0a 58 58 7b |Xint sfi|le().XX{|
|00005b90| 0a 58 58 09 69 6e 74 09 | 6c 65 6e 3b 0a 58 58 0a |.XX.int.|len;.XX.|
|00005ba0| 58 58 09 69 66 20 28 66 | 70 20 3d 3d 20 2d 31 29 |XX.if (f|p == -1)|
|00005bb0| 20 20 7b 09 09 2f 2a 20 | 49 66 20 6e 6f 74 20 61 | {../* |If not a|
|00005bc0| 6c 72 65 61 64 79 20 6f | 70 65 6e 2c 20 2a 2f 0a |lready o|pen, */.|
|00005bd0| 58 58 09 09 69 66 20 28 | 64 65 62 75 67 20 3e 20 |XX..if (|debug > |
|00005be0| 31 29 0a 58 58 09 09 09 | 70 72 69 6e 74 6d 73 67 |1).XX...|printmsg|
|00005bf0| 28 22 6c 6f 6f 6b 69 6e | 67 20 66 6f 72 20 6e 65 |("lookin|g for ne|
|00005c00| 78 74 20 66 69 6c 65 2e | 2e 2e 22 29 3b 0a 58 58 |xt file.|..");.XX|
|00005c10| 0a 58 58 09 09 69 66 20 | 28 67 65 74 66 69 6c 65 |.XX..if |(getfile|
|00005c20| 28 29 29 20 20 7b 09 2f | 2a 20 67 65 74 20 6e 65 |()) {./|* get ne|
|00005c30| 78 74 20 66 69 6c 65 20 | 66 72 6f 6d 20 63 75 72 |xt file |from cur|
|00005c40| 72 65 6e 74 20 77 6f 72 | 6b 2a 2f 0a 58 58 09 09 |rent wor|k*/.XX..|
|00005c50| 09 63 6c 6f 73 65 28 66 | 77 29 3b 0a 58 58 09 09 |.close(f|w);.XX..|
|00005c60| 09 75 6e 6c 69 6e 6b 28 | 63 66 69 6c 65 29 3b 09 |.unlink(|cfile);.|
|00005c70| 2f 2a 20 63 6c 6f 73 65 | 20 61 6e 64 20 64 65 6c |/* close| and del|
|00005c80| 65 74 65 20 63 6f 6d 70 | 6c 65 74 65 64 20 77 6f |ete comp|leted wo|
|00005c90| 72 6b 66 69 6c 65 20 2a | 2f 0a 58 58 09 09 09 66 |rkfile *|/.XX...f|
|00005ca0| 77 20 3d 20 2d 31 3b 0a | 58 58 09 09 09 72 65 74 |w = -1;.|XX...ret|
|00005cb0| 75 72 6e 28 27 42 27 29 | 3b 09 2f 2a 20 65 6e 64 |urn('B')|;./* end|
|00005cc0| 20 73 65 6e 64 69 6e 67 | 20 73 65 73 73 69 6f 6e | sending| session|
|00005cd0| 20 2a 2f 0a 58 58 09 09 | 7d 0a 58 58 0a 58 58 09 | */.XX..|}.XX.XX.|
|00005ce0| 09 69 66 20 28 64 65 62 | 75 67 20 3e 20 31 29 0a |.if (deb|ug > 1).|
|00005cf0| 58 58 09 09 09 70 72 69 | 6e 74 6d 73 67 28 22 20 |XX...pri|ntmsg(" |
|00005d00| 20 4e 65 77 20 66 69 6c | 65 20 69 73 20 25 73 22 | New fil|e is %s"|
|00005d10| 2c 20 66 72 6f 6d 66 69 | 6c 65 29 3b 0a 58 58 0a |, fromfi|le);.XX.|
|00005d20| 58 58 09 09 69 66 20 28 | 64 65 62 75 67 29 0a 58 |XX..if (|debug).X|
|00005d30| 58 09 09 09 70 72 69 6e | 74 6d 73 67 28 22 20 20 |X...prin|tmsg(" |
|00005d40| 20 4f 70 65 6e 69 6e 67 | 20 25 73 20 66 6f 72 20 | Opening| %s for |
|00005d50| 73 65 6e 64 69 6e 67 2e | 22 2c 20 66 72 6f 6d 66 |sending.|", fromf|
|00005d60| 69 6c 65 29 3b 0a 58 58 | 0a 58 58 09 09 66 70 20 |ile);.XX|.XX..fp |
|00005d70| 3d 20 6f 70 65 6e 28 66 | 72 6f 6d 66 69 6c 65 2c |= open(f|romfile,|
|00005d80| 20 30 29 3b 09 2f 2a 20 | 6f 70 65 6e 20 74 68 65 | 0);./* |open the|
|00005d90| 20 66 69 6c 65 20 74 6f | 20 62 65 20 73 65 6e 74 | file to| be sent|
|00005da0| 20 2a 2f 0a 58 58 09 09 | 69 66 20 28 66 70 20 3d | */.XX..|if (fp =|
|00005db0| 3d 20 2d 31 29 20 20 7b | 09 2f 2a 20 49 66 20 62 |= -1) {|./* If b|
|00005dc0| 61 64 20 66 69 6c 65 20 | 70 6f 69 6e 74 65 72 2c |ad file |pointer,|
|00005dd0| 20 67 69 76 65 20 75 70 | 20 2a 2f 0a 58 58 09 09 | give up| */.XX..|
|00005de0| 09 69 66 20 28 64 65 62 | 75 67 29 0a 58 58 09 09 |.if (deb|ug).XX..|
|00005df0| 09 09 70 72 69 6e 74 6d | 73 67 28 22 43 61 6e 6e |..printm|sg("Cann|
|00005e00| 6f 74 20 6f 70 65 6e 20 | 66 69 6c 65 20 25 73 22 |ot open |file %s"|
|00005e10| 2c 20 66 72 6f 6d 66 69 | 6c 65 29 3b 0a 58 58 09 |, fromfi|le);.XX.|
|00005e20| 09 09 72 65 74 75 72 6e | 28 27 41 27 29 3b 0a 58 |..return|('A');.X|
|00005e30| 58 09 09 7d 0a 58 58 09 | 7d 20 65 6c 73 65 0a 58 |X..}.XX.|} else.X|
|00005e40| 58 09 09 72 65 74 75 72 | 6e 28 27 41 27 29 3b 20 |X..retur|n('A'); |
|00005e50| 2f 2a 20 49 66 20 73 6f | 6d 65 74 68 69 6e 67 73 |/* If so|methings|
|00005e60| 20 61 6c 72 65 61 64 79 | 20 6f 70 65 6e 2e 20 77 | already| open. w|
|00005e70| 65 72 65 20 69 6e 20 74 | 72 6f 75 62 6c 65 2a 2f |ere in t|rouble*/|
|00005e80| 0a 58 58 0a 58 58 09 69 | 66 20 28 64 65 62 75 67 |.XX.XX.i|f (debug|
|00005e90| 20 3e 20 31 29 0a 58 58 | 09 09 70 72 69 6e 74 6d | > 1).XX|..printm|
|00005ea0| 73 67 28 22 53 65 6e 64 | 69 6e 67 20 25 73 20 61 |sg("Send|ing %s a|
|00005eb0| 73 20 25 73 22 2c 66 72 | 6f 6d 66 69 6c 65 2c 74 |s %s",fr|omfile,t|
|00005ec0| 6f 66 69 6c 65 29 3b 0a | 58 58 0a 58 58 09 73 74 |ofile);.|XX.XX.st|
|00005ed0| 72 63 70 79 28 73 70 61 | 63 6b 65 74 2c 74 6f 66 |rcpy(spa|cket,tof|
|00005ee0| 69 6c 65 29 3b 0a 58 58 | 0a 58 58 09 69 66 20 28 |ile);.XX|.XX.if (|
|00005ef0| 28 2a 73 65 6e 64 70 6b | 74 29 28 73 70 61 63 6b |(*sendpk|t)(spack|
|00005f00| 65 74 2c 30 2c 31 29 29 | 0a 58 58 09 09 72 65 74 |et,0,1))|.XX..ret|
|00005f10| 75 72 6e 28 30 29 3b 09 | 09 2f 2a 20 73 65 6e 64 |urn(0);.|./* send|
|00005f20| 20 53 20 66 72 6f 6d 66 | 69 6c 65 20 74 6f 66 69 | S fromf|ile tofi|
|00005f30| 6c 65 20 2a 2f 0a 58 58 | 0a 58 58 09 69 66 20 28 |le */.XX|.XX.if (|
|00005f40| 28 2a 67 65 74 70 6b 74 | 29 28 73 70 61 63 6b 65 |(*getpkt|)(spacke|
|00005f50| 74 2c 26 6c 65 6e 29 29 | 0a 58 58 09 09 72 65 74 |t,&len))|.XX..ret|
|00005f60| 75 72 6e 28 30 29 3b 09 | 09 2f 2a 20 75 73 65 72 |urn(0);.|./* user|
|00005f70| 20 2d 20 74 6f 66 69 6c | 65 20 30 36 36 36 2e 20 | - tofil|e 0666. |
|00005f80| 2a 2f 0a 58 58 0a 58 58 | 09 69 66 20 28 73 70 61 |*/.XX.XX|.if (spa|
|00005f90| 63 6b 65 74 5b 31 5d 20 | 21 3d 20 27 59 27 29 0a |cket[1] |!= 'Y').|
|00005fa0| 58 58 09 09 72 65 74 75 | 72 6e 28 27 41 27 29 3b |XX..retu|rn('A');|
|00005fb0| 09 09 2f 2a 20 49 66 20 | 6f 74 68 65 72 73 69 64 |../* If |othersid|
|00005fc0| 65 20 73 61 79 73 20 6e | 6f 2d 71 75 69 74 2a 2f |e says n|o-quit*/|
|00005fd0| 0a 58 58 0a 58 58 09 73 | 69 7a 65 20 3d 20 62 75 |.XX.XX.s|ize = bu|
|00005fe0| 66 69 6c 6c 28 73 70 61 | 63 6b 65 74 29 3b 0a 58 |fill(spa|cket);.X|
|00005ff0| 58 0a 58 58 09 72 65 74 | 75 72 6e 28 27 44 27 29 |X.XX.ret|urn('D')|
|00006000| 3b 0a 58 58 7d 0a 58 58 | 0a 58 58 0a 58 58 2f 2a |;.XX}.XX|.XX.XX/*|
|00006010| 0a 58 58 20 2a 20 20 73 | 20 69 20 6e 20 69 20 74 |.XX * s| i n i t|
|00006020| 0a 58 58 20 2a 0a 58 58 | 20 2a 20 20 53 65 6e 64 |.XX *.XX| * Send|
|00006030| 20 49 6e 69 74 69 61 74 | 65 3a 20 73 65 6e 64 20 | Initiat|e: send |
|00006040| 74 68 69 73 20 68 6f 73 | 74 27 73 20 70 61 72 61 |this hos|t's para|
|00006050| 6d 65 74 65 72 73 20 61 | 6e 64 20 67 65 74 20 6f |meters a|nd get o|
|00006060| 74 68 65 72 20 73 69 64 | 65 27 73 20 62 61 63 6b |ther sid|e's back|
|00006070| 2e 0a 58 58 20 2a 2f 0a | 58 58 0a 58 58 69 6e 74 |..XX */.|XX.XXint|
|00006080| 20 73 69 6e 69 74 28 29 | 0a 58 58 7b 0a 58 58 09 | sinit()|.XX{.XX.|
|00006090| 69 66 20 28 28 2a 6f 70 | 65 6e 70 6b 29 28 29 29 |if ((*op|enpk)())|
|000060a0| 0a 58 58 09 09 72 65 74 | 75 72 6e 28 27 41 27 29 |.XX..ret|urn('A')|
|000060b0| 3b 0a 58 58 0a 58 58 09 | 72 65 74 75 72 6e 28 27 |;.XX.XX.|return('|
|000060c0| 42 27 29 3b 0a 58 58 7d | 0a 58 58 0a 58 58 0a 58 |B');.XX}|.XX.XX.X|
|000060d0| 58 2f 2a 0a 58 58 20 2a | 20 20 67 65 74 66 69 6c |X/*.XX *| getfil|
|000060e0| 65 0a 58 58 20 2a 0a 58 | 58 20 2a 20 20 67 65 74 |e.XX *.X|X * get|
|000060f0| 66 69 6c 65 20 72 65 61 | 64 73 20 74 68 65 20 6e |file rea|ds the n|
|00006100| 65 78 74 20 6c 69 6e 65 | 20 66 72 6f 6d 20 74 68 |ext line| from th|
|00006110| 65 20 70 72 65 73 65 6e | 74 6c 79 20 6f 70 65 6e |e presen|tly open|
|00006120| 20 77 6f 72 6b 66 69 6c | 65 0a 58 58 20 2a 20 20 | workfil|e.XX * |
|00006130| 28 63 66 69 6c 65 29 20 | 61 6e 64 20 64 65 74 65 |(cfile) |and dete|
|00006140| 72 6d 69 6e 65 73 20 66 | 72 6f 6d 20 74 68 69 73 |rmines f|rom this|
|00006150| 20 74 68 65 20 6e 65 78 | 74 20 66 69 6c 65 20 74 | the nex|t file t|
|00006160| 6f 20 62 65 20 73 65 6e | 74 0a 58 58 20 2a 20 20 |o be sen|t.XX * |
|00006170| 28 66 69 6c 65 29 2e 20 | 49 66 20 74 68 65 72 65 |(file). |If there|
|00006180| 20 61 72 65 20 6e 6f 20 | 6d 6f 72 65 20 54 52 55 | are no |more TRU|
|00006190| 45 20 69 73 20 72 65 74 | 75 72 6e 65 64 2e 0a 58 |E is ret|urned..X|
|000061a0| 58 20 2a 20 20 2d 2d 41 | 20 66 69 78 20 66 6f 72 |X * --A| fix for|
|000061b0| 20 22 52 20 66 72 6f 6d | 20 74 6f 20 30 36 36 36 | "R from| to 0666|
|000061c0| 22 20 73 68 6f 75 6c 64 | 20 62 65 20 64 6f 6e 65 |" should| be done|
|000061d0| 20 68 65 72 65 20 74 6f | 20 72 65 63 69 65 76 65 | here to| recieve|
|000061e0| 20 66 69 6c 65 73 0a 58 | 58 20 2a 20 20 2d 2d 69 | files.X|X * --i|
|000061f0| 6e 20 61 64 64 69 74 69 | 6f 6e 20 74 6f 20 73 65 |n additi|on to se|
|00006200| 6e 64 69 6e 67 20 74 68 | 65 6d 2e 20 54 68 65 20 |nding th|em. The |
|00006210| 61 70 70 72 6f 70 72 69 | 61 74 65 20 22 73 74 61 |appropri|ate "sta|
|00006220| 74 65 20 6c 65 74 74 65 | 72 22 0a 58 58 20 2a 20 |te lette|r".XX * |
|00006230| 20 2d 2d 69 2e 65 2e 20 | 22 52 22 20 73 68 6f 75 | --i.e. |"R" shou|
|00006240| 6c 64 20 62 65 20 72 65 | 74 75 72 6e 65 64 20 74 |ld be re|turned t|
|00006250| 6f 20 74 68 65 20 73 65 | 6e 64 20 22 6d 61 73 74 |o the se|nd "mast|
|00006260| 65 72 22 20 6f 72 20 22 | 73 6c 61 76 65 22 0a 58 |er" or "|slave".X|
|00006270| 58 20 2a 20 20 2d 2d 73 | 74 61 74 65 20 73 77 69 |X * --s|tate swi|
|00006280| 74 63 68 69 6e 67 20 74 | 61 62 6c 65 20 69 6e 20 |tching t|able in |
|00006290| 22 64 63 70 2e 63 22 0a | 58 58 20 2a 20 20 2d 2d |"dcp.c".|XX * --|
|000062a0| 49 20 64 69 64 20 6e 6f | 74 20 69 6d 70 6c 65 6d |I did no|t implem|
|000062b0| 65 6e 74 20 74 68 69 73 | 20 73 69 6e 63 65 20 74 |ent this| since t|
|000062c0| 68 65 20 6d 61 6a 6f 72 | 69 74 79 20 6f 66 20 75 |he major|ity of u|
|000062d0| 75 63 70 20 74 72 61 6e | 73 61 63 74 69 6f 6e 73 |ucp tran|sactions|
|000062e0| 0a 58 58 20 2a 20 20 2d | 2d 61 70 70 65 61 72 20 |.XX * -|-appear |
|000062f0| 74 6f 20 62 65 20 22 53 | 20 66 72 6f 6d 20 74 6f |to be "S| from to|
|00006300| 20 30 36 36 36 22 20 74 | 79 70 65 2e 20 52 48 4c | 0666" t|ype. RHL|
|00006310| 61 6d 62 20 31 2f 38 37 | 0a 58 58 20 2a 0a 58 58 |amb 1/87|.XX *.XX|
|00006320| 20 2a 2f 0a 58 58 0a 58 | 58 69 6e 74 20 67 65 74 | */.XX.X|Xint get|
|00006330| 66 69 6c 65 28 29 0a 58 | 58 7b 0a 58 58 09 69 6e |file().X|X{.XX.in|
|00006340| 74 09 69 3b 0a 58 58 09 | 63 68 61 72 09 6c 69 6e |t.i;.XX.|char.lin|
|00006350| 65 5b 31 33 32 5d 3b 0a | 58 58 0a 58 58 09 69 66 |e[132];.|XX.XX.if|
|00006360| 20 28 67 65 74 6c 69 6e | 65 28 66 77 2c 20 6c 69 | (getlin|e(fw, li|
|00006370| 6e 65 29 29 0a 58 58 09 | 09 72 65 74 75 72 6e 28 |ne)).XX.|.return(|
|00006380| 54 52 55 45 29 3b 0a 58 | 58 0a 58 58 09 73 73 63 |TRUE);.X|X.XX.ssc|
|00006390| 61 6e 66 28 26 6c 69 6e | 65 5b 32 5d 2c 20 22 25 |anf(&lin|e[2], "%|
|000063a0| 73 20 22 2c 20 66 72 6f | 6d 66 69 6c 65 29 3b 0a |s ", fro|mfile);.|
|000063b0| 58 58 0a 58 58 09 66 6f | 72 20 28 69 20 3d 20 30 |XX.XX.fo|r (i = 0|
|000063c0| 3b 20 6c 69 6e 65 5b 69 | 5d 3b 20 69 2b 2b 29 0a |; line[i|]; i++).|
|000063d0| 58 58 09 09 69 66 20 28 | 73 74 72 6e 63 6d 70 28 |XX..if (|strncmp(|
|000063e0| 26 6c 69 6e 65 5b 69 5d | 2c 20 22 30 36 36 36 22 |&line[i]|, "0666"|
|000063f0| 2c 20 34 29 20 3d 3d 20 | 30 29 0a 58 58 09 09 09 |, 4) == |0).XX...|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.