home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / programs / programming / aol / !JFShared / BasicLib / SocketLib < prev    next >
Unknown  |  1997-09-29  |  17.2 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% xdgMime image/x-tga default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 10 f4 20 3e 53 | 6f 63 6b 65 74 4c 69 62 |..... >S|ocketLib|
|00000010| 0d 00 14 17 f4 20 a9 20 | 4a 75 73 74 69 6e 20 46 |..... . |Justin F|
|00000020| 6c 65 74 63 68 65 72 0d | 00 1e 22 f4 20 56 65 72 |letcher.|..". Ver|
|00000030| 73 69 6f 6e 20 3a 20 31 | 2e 31 32 20 28 32 39 20 |sion : 1|.12 (29 |
|00000040| 53 65 70 20 31 39 39 37 | 29 0d 00 28 34 f4 20 54 |Sep 1997|)..(4. T|
|00000050| 65 73 74 65 64 20 77 69 | 74 68 20 41 63 6f 72 6e |ested wi|th Acorn|
|00000060| 20 21 49 6e 74 65 72 6e | 65 74 20 61 6e 64 20 46 | !Intern|et and F|
|00000070| 72 65 65 4e 65 74 20 73 | 75 69 74 65 73 0d 00 32 |reeNet s|uites..2|
|00000080| 28 f4 20 4d 61 73 73 69 | 76 65 6c 79 20 62 75 67 |(. Massi|vely bug|
|00000090| 2d 66 69 78 65 64 20 62 | 79 20 44 61 76 65 20 54 |-fixed b|y Dave T|
|000000a0| 68 6f 6d 61 73 0d 00 3c | 3f f4 20 4e 6f 6e 2d 62 |homas..<|?. Non-b|
|000000b0| 6c 6f 63 6b 69 6e 67 20 | 63 6f 6e 6e 65 63 74 20 |locking |connect |
|000000c0| 61 6e 64 20 44 4e 53 20 | 71 75 65 72 79 20 61 64 |and DNS |query ad|
|000000d0| 64 65 64 20 62 79 20 52 | 65 75 62 65 6e 20 54 68 |ded by R|euben Th|
|000000e0| 6f 6d 61 73 0d 00 46 2a | 85 20 26 38 30 33 2c 22 |omas..F*|. &803,"|
|000000f0| 44 6f 20 6e 6f 74 20 72 | 75 6e 20 74 68 65 20 53 |Do not r|un the S|
|00000100| 6f 63 6b 65 74 20 4c 69 | 62 72 61 72 79 22 0d 00 |ocket Li|brary"..|
|00000110| 50 05 3a 0d 00 5a 36 f4 | 20 50 52 4f 43 69 6e 69 |P.:..Z6.| PROCini|
|00000120| 74 73 6f 63 6b 65 74 73 | 20 3a 20 49 6e 69 74 69 |tsockets| : Initi|
|00000130| 61 6c 69 73 65 20 74 68 | 65 20 73 6f 63 6b 65 74 |alise th|e socket|
|00000140| 73 20 6c 69 62 72 61 72 | 79 0d 00 64 11 dd f2 69 |s librar|y..d...i|
|00000150| 6e 69 74 73 6f 63 6b 65 | 74 73 0d 00 6e 39 c8 99 |nitsocke|ts..n9..|
|00000160| 20 22 58 4f 53 5f 53 57 | 49 4e 75 6d 62 65 72 46 | "XOS_SW|INumberF|
|00000170| 72 6f 6d 53 74 72 69 6e | 67 22 2c 2c 22 53 6f 63 |romStrin|g",,"Soc|
|00000180| 6b 65 74 5f 43 72 65 61 | 74 22 20 b8 3b 66 6c 61 |ket_Crea|t" .;fla|
|00000190| 67 73 25 0d 00 78 74 e7 | 20 28 66 6c 61 67 73 25 |gs%..xt.| (flags%|
|000001a0| 20 80 31 29 20 8c 72 65 | 70 6c 79 3d a4 65 72 72 | .1) .re|ply=.err|
|000001b0| 6f 72 62 6f 78 28 22 53 | 6f 63 6b 65 74 4c 69 62 |orbox("S|ocketLib|
|000001c0| 22 2c 22 54 68 69 73 20 | 61 70 70 6c 69 63 61 74 |","This |applicat|
|000001d0| 69 6f 6e 20 72 65 71 75 | 69 72 65 73 20 61 6e 20 |ion requ|ires an |
|000001e0| 69 6e 74 65 72 6e 65 74 | 20 73 75 69 74 65 20 74 |internet| suite t|
|000001f0| 6f 20 62 65 20 69 6e 73 | 74 61 6c 6c 65 64 2e 22 |o be ins|talled."|
|00000200| 2c 25 31 30 29 3a e0 0d | 00 82 47 2a 52 4d 45 6e |,%10):..|..G*RMEn|
|00000210| 73 75 72 65 20 49 6e 65 | 74 53 65 72 76 69 63 65 |sure Ine|tService|
|00000220| 73 20 31 2e 30 37 20 52 | 4d 4c 6f 61 64 20 53 79 |s 1.07 R|MLoad Sy|
|00000230| 73 74 65 6d 3a 4d 6f 64 | 75 6c 65 73 2e 4e 65 74 |stem:Mod|ules.Net|
|00000240| 77 6f 72 6b 2e 49 53 65 | 72 76 69 63 65 73 0d 00 |work.ISe|rvices..|
|00000250| 8c 3a 2a 52 4d 45 6e 73 | 75 72 65 20 49 6e 65 74 |.:*RMEns|ure Inet|
|00000260| 53 65 72 76 69 63 65 73 | 20 31 2e 30 37 20 53 65 |Services| 1.07 Se|
|00000270| 74 20 4e 6f 49 53 65 72 | 76 69 63 65 73 4d 6f 64 |t NoISer|vicesMod|
|00000280| 75 6c 65 20 54 72 75 65 | 0d 00 96 dc e7 20 a4 73 |ule True|..... .s|
|00000290| 79 73 74 65 6d 76 61 72 | 28 22 4e 6f 49 53 65 72 |ystemvar|("NoISer|
|000002a0| 76 69 63 65 73 4d 6f 64 | 75 6c 65 22 29 3d 22 54 |vicesMod|ule")="T|
|000002b0| 72 75 65 22 20 8c ff 28 | 22 55 6e 73 65 74 20 4e |rue" ..(|"Unset N|
|000002c0| 6f 49 53 65 72 76 69 63 | 65 73 4d 6f 64 75 6c 65 |oIServic|esModule|
|000002d0| 22 29 3a 72 65 70 6c 79 | 3d a4 65 72 72 6f 72 62 |"):reply|=.errorb|
|000002e0| 6f 78 28 22 53 6f 63 6b | 65 74 4c 69 62 22 2c 22 |ox("Sock|etLib","|
|000002f0| 54 68 69 73 20 61 70 70 | 6c 69 63 61 74 69 6f 6e |This app|lication|
|00000300| 20 72 65 71 75 69 72 65 | 73 20 61 20 6c 61 74 65 | require|s a late|
|00000310| 72 20 76 65 72 73 69 6f | 6e 20 6f 66 20 74 68 65 |r versio|n of the|
|00000320| 20 49 53 65 72 76 69 63 | 65 73 20 6d 6f 64 75 6c | IServic|es modul|
|00000330| 65 20 2d 20 74 68 69 73 | 20 63 61 6e 20 62 65 20 |e - this| can be |
|00000340| 6f 62 74 61 69 6e 65 64 | 20 77 69 74 68 20 4a 46 |obtained| with JF|
|00000350| 53 68 61 72 65 64 20 32 | 2e 34 32 2e 22 2c 25 31 |Shared 2|.42.",%1|
|00000360| 30 29 3a e0 0d 00 a0 1c | f4 20 49 6e 69 74 69 61 |0):.....|. Initia|
|00000370| 6c 69 73 65 20 65 72 72 | 6f 72 20 73 74 75 66 66 |lise err|or stuff|
|00000380| 0d 00 aa 11 73 6f 63 6b | 65 72 72 25 3d 26 38 30 |....sock|err%=&80|
|00000390| 35 0d 00 b4 42 f4 20 48 | 61 6e 64 6c 65 73 20 70 |5...B. H|andles p|
|000003a0| 6f 69 6e 74 20 74 6f 20 | 74 68 65 20 64 65 73 63 |oint to |the desc|
|000003b0| 72 69 70 74 6f 72 20 62 | 6c 6f 63 6b 73 20 77 68 |riptor b|locks wh|
|000003c0| 69 63 68 20 67 69 76 65 | 20 75 73 20 64 65 74 61 |ich give| us deta|
|000003d0| 69 6c 73 0d 00 be 17 f4 | 20 61 62 6f 75 74 20 74 |ils.....| about t|
|000003e0| 68 65 20 73 6f 63 6b 65 | 74 73 0d 00 c8 2b de 20 |he socke|ts...+. |
|000003f0| 73 6f 63 6b 25 28 32 35 | 36 29 2c 73 6f 63 6b 61 |sock%(25|6),socka|
|00000400| 64 64 72 25 20 31 36 2c | 73 6f 63 6b 74 65 6d 70 |ddr% 16,|socktemp|
|00000410| 25 20 32 35 36 0d 00 d2 | 0e 73 6f 63 6b 25 28 29 |% 256...|.sock%()|
|00000420| 3d 2d 31 0d 00 dc 15 f4 | 20 53 6f 63 6b 65 74 20 |=-1.....| Socket |
|00000430| 62 6c 6f 63 6b 73 20 3a | 0d 00 e6 1a f4 20 20 21 |blocks :|..... !|
|00000440| 30 20 20 3d 20 73 6f 63 | 6b 65 74 20 68 61 6e 64 |0 = soc|ket hand|
|00000450| 6c 65 0d 00 f0 1d f4 20 | 20 21 34 20 20 3d 20 42 |le..... | !4 = B|
|00000460| 75 66 66 65 72 65 64 20 | 61 64 64 72 65 73 73 0d |uffered |address.|
|00000470| 00 fa 23 f4 20 20 21 38 | 20 20 3d 20 53 69 7a 65 |..#. !8| = Size|
|00000480| 20 6f 66 20 64 61 74 61 | 20 69 6e 20 62 75 66 66 | of data| in buff|
|00000490| 65 72 0d 01 04 14 f4 20 | 20 21 43 20 20 3d 20 66 |er..... | !C = f|
|000004a0| 6c 61 67 73 20 3a 0d 01 | 0e 3a f4 20 20 20 20 20 |lags :..|.:. |
|000004b0| 20 20 20 20 62 30 20 3d | 20 4c 69 73 74 65 6e 69 | b0 =| Listeni|
|000004c0| 6e 67 20 28 30 20 3d 20 | 53 70 65 61 6b 69 6e 67 |ng (0 = |Speaking|
|000004d0| 2c 20 31 20 3d 20 4c 69 | 73 74 65 6e 69 6e 67 29 |, 1 = Li|stening)|
|000004e0| 0d 01 18 1b f4 20 20 20 | 20 20 20 20 20 20 62 31 |..... | b1|
|000004f0| 20 3d 20 42 75 66 66 65 | 72 65 64 0d 01 22 27 f4 | = Buffe|red.."'.|
|00000500| 20 20 20 20 20 20 20 20 | 20 62 32 20 3d 20 4e 6f | | b2 = No|
|00000510| 6e 2d 62 6c 6f 63 6b 69 | 6e 67 20 63 6f 6e 6e 65 |n-blocki|ng conne|
|00000520| 63 74 0d 01 2c 14 f4 20 | 54 6f 74 61 6c 20 73 69 |ct..,.. |Total si|
|00000530| 7a 65 20 26 31 30 0d 01 | 36 11 73 6f 63 6b 73 69 |ze &10..|6.socksi|
|00000540| 7a 65 25 3d 26 31 30 0d | 01 40 1f f4 20 49 6e 69 |ze%=&10.|.@.. Ini|
|00000550| 74 69 61 6c 69 73 65 20 | 62 75 66 66 65 72 65 64 |tialise |buffered|
|00000560| 20 73 74 75 66 66 0d 01 | 4a 3c 73 6f 63 6b 62 75 | stuff..|J<sockbu|
|00000570| 66 6c 65 6e 25 3d 31 30 | 32 34 2a 32 3a f4 20 32 |flen%=10|24*2:. 2|
|00000580| 6b 20 73 68 6f 75 6c 64 | 20 62 65 20 65 6e 6f 75 |k should| be enou|
|00000590| 67 68 20 66 6f 72 20 6d | 6f 73 74 20 74 68 69 6e |gh for m|ost thin|
|000005a0| 67 73 0d 01 54 3f 73 6f | 63 6b 6c 69 6e 65 25 3d |gs..T?so|ckline%=|
|000005b0| a4 63 6c 61 69 6d 28 73 | 6f 63 6b 62 75 66 6c 65 |.claim(s|ockbufle|
|000005c0| 6e 25 29 3a f4 20 46 6f | 72 20 63 6f 70 79 69 6e |n%):. Fo|r copyin|
|000005d0| 67 20 74 68 65 20 73 74 | 72 69 6e 67 20 69 6e 74 |g the st|ring int|
|000005e0| 6f 0d 01 5e 2a f4 20 52 | 65 61 64 20 74 68 65 20 |o..^*. R|ead the |
|000005f0| 6e 75 6d 62 65 72 20 6f | 66 20 68 61 6e 64 6c 65 |number o|f handle|
|00000600| 73 20 61 76 61 69 6c 61 | 62 6c 65 0d 01 68 25 c8 |s availa|ble..h%.|
|00000610| 99 20 22 53 6f 63 6b 65 | 74 5f 47 65 74 74 73 69 |. "Socke|t_Gettsi|
|00000620| 7a 65 22 20 b8 20 73 6f | 63 6b 74 73 69 7a 65 25 |ze" . so|cktsize%|
|00000630| 0d 01 72 1a f4 20 49 6e | 69 74 69 61 6c 69 73 65 |..r.. In|itialise|
|00000640| 20 63 6f 6e 73 74 61 6e | 74 73 0d 01 7c 16 46 49 | constan|ts..|.FI|
|00000650| 4f 4e 52 45 41 44 3d 26 | 34 30 30 34 36 36 37 46 |ONREAD=&|4004667F|
|00000660| 0d 01 86 15 46 49 4f 4e | 42 49 4f 3d 26 38 30 30 |....FION|BIO=&800|
|00000670| 34 36 36 37 45 0d 01 90 | 13 53 4f 5f 53 4e 44 42 |4667E...|.SO_SNDB|
|00000680| 55 46 3d 26 31 30 30 31 | 0d 01 9a 13 53 4f 5f 52 |UF=&1001|....SO_R|
|00000690| 43 56 42 55 46 3d 26 31 | 30 30 32 0d 01 a4 0d 41 |CVBUF=&1|002....A|
|000006a0| 46 5f 49 4e 45 54 3d 32 | 0d 01 ae 28 f4 20 4d 75 |F_INET=2|...(. Mu|
|000006b0| 6c 74 69 74 61 73 6b 69 | 6e 67 20 63 68 61 69 6e |ltitaski|ng chain|
|000006c0| 20 6f 66 20 68 61 6e 64 | 6c 65 73 20 75 73 65 64 | of hand|les used|
|000006d0| 0d 01 b8 0e 6d 74 63 68 | 61 69 6e 25 3d 30 0d 01 |....mtch|ain%=0..|
|000006e0| c2 05 e1 0d 01 cc 05 3a | 0d 01 d6 40 f4 20 46 4e |.......:|...@. FN|
|000006f0| 73 6f 63 6b 65 74 5f 66 | 69 6e 64 68 61 6e 64 6c |socket_f|indhandl|
|00000700| 65 20 3a 20 46 69 6e 64 | 20 61 20 73 6f 63 6b 65 |e : Find| a socke|
|00000710| 74 20 68 61 6e 64 6c 65 | 20 61 6e 64 20 63 6c 61 |t handle| and cla|
|00000720| 69 6d 20 73 70 61 63 65 | 0d 01 e0 17 dd a4 73 6f |im space|......so|
|00000730| 63 6b 65 74 5f 66 69 6e | 64 68 61 6e 64 6c 65 0d |cket_fin|dhandle.|
|00000740| 01 ea 0d ea 73 6f 63 6b | 25 2c 6f 25 0d 01 f4 35 |....sock|%,o%...5|
|00000750| 73 6f 63 6b 25 3d 2d 31 | 3a f5 3a 73 6f 63 6b 25 |sock%=-1|:.:sock%|
|00000760| 2b 3d 31 3a fd 20 73 6f | 63 6b 25 28 73 6f 63 6b |+=1:. so|ck%(sock|
|00000770| 25 29 3d 2d 31 20 84 20 | 73 6f 63 6b 25 3d 32 35 |%)=-1 . |sock%=25|
|00000780| 36 0d 01 fe 14 e7 20 73 | 6f 63 6b 25 3d 32 35 36 |6..... s|ock%=256|
|00000790| 20 8c 3d 2d 31 0d 02 08 | 22 73 6f 63 6b 25 28 73 | .=-1...|"sock%(s|
|000007a0| 6f 63 6b 25 29 3d a4 63 | 6c 61 69 6d 28 73 6f 63 |ock%)=.c|laim(soc|
|000007b0| 6b 73 69 7a 65 25 29 0d | 02 12 19 e7 20 73 6f 63 |ksize%).|.... soc|
|000007c0| 6b 25 28 73 6f 63 6b 25 | 29 3c 30 20 8c 3d 2d 31 |k%(sock%|)<0 .=-1|
|000007d0| 0d 02 1c 2c e3 6f 25 3d | 30 b8 73 6f 63 6b 73 69 |...,.o%=|0.socksi|
|000007e0| 7a 65 25 2d 34 20 88 34 | 3a 73 6f 63 6b 25 28 73 |ze%-4 .4|:sock%(s|
|000007f0| 6f 63 6b 25 29 21 6f 25 | 3d 30 3a ed 0d 02 26 0a |ock%)!o%|=0:...&.|
|00000800| 3d 73 6f 63 6b 25 0d 02 | 30 05 3a 0d 02 3a 3a f4 |=sock%..|0.:..::.|
|00000810| 20 46 4e 73 6f 63 6b 65 | 74 5f 63 72 65 61 74 65 | FNsocke|t_create|
|00000820| 69 6e 65 74 20 3a 20 4d | 61 6b 65 20 61 20 73 6f |inet : M|ake a so|
|00000830| 63 6b 65 74 20 66 6f 72 | 20 69 6e 74 65 72 6e 65 |cket for| interne|
|00000840| 74 20 75 73 65 0d 02 44 | 17 dd a4 73 6f 63 6b 65 |t use..D|...socke|
|00000850| 74 5f 63 72 65 61 74 65 | 69 6e 65 74 0d 02 4e 23 |t_create|inet..N#|
|00000860| ea 73 6f 63 6b 25 3a 73 | 6f 63 6b 25 3d a4 73 6f |.sock%:s|ock%=.so|
|00000870| 63 6b 65 74 5f 66 69 6e | 64 68 61 6e 64 6c 65 0d |cket_fin|dhandle.|
|00000880| 02 58 13 e7 20 73 6f 63 | 6b 25 3d 2d 31 20 8c 3d |.X.. soc|k%=-1 .=|
|00000890| 2d 31 0d 02 62 30 f4 20 | 50 46 5f 49 4e 45 54 2c |-1..b0. |PF_INET,|
|000008a0| 20 53 4f 43 4b 5f 53 54 | 52 45 41 4d 2c 20 61 6e | SOCK_ST|REAM, an|
|000008b0| 64 20 64 65 66 61 75 6c | 74 20 70 72 6f 74 6f 63 |d defaul|t protoc|
|000008c0| 6f 6c 0d 02 6c 2c c8 99 | 20 22 53 6f 63 6b 65 74 |ol..l,..| "Socket|
|000008d0| 5f 43 72 65 61 74 22 2c | 32 2c 31 2c 30 20 b8 20 |_Creat",|2,1,0 . |
|000008e0| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 30 0d 02 |sock%(so|ck%)!0..|
|000008f0| 76 34 e7 20 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |v4. sock|%(sock%)|
|00000900| 21 30 3d 2d 31 20 8c 20 | f2 72 65 6c 65 61 73 65 |!0=-1 . |.release|
|00000910| 28 73 6f 63 6b 25 28 73 | 6f 63 6b 25 29 29 3a 3d |(sock%(s|ock%)):=|
|00000920| 2d 31 0d 02 80 0a 3d 73 | 6f 63 6b 25 0d 02 8a 05 |-1....=s|ock%....|
|00000930| 3a 0d 02 94 1c dd f2 73 | 6f 63 6b 65 74 5f 63 68 |:......s|ocket_ch|
|00000940| 65 63 6b 28 73 6f 63 6b | 25 2c 72 24 29 0d 02 9e |eck(sock|%,r$)...|
|00000950| 3f e7 20 73 6f 63 6b 25 | 3c 30 20 84 73 6f 63 6b |?. sock%|<0 .sock|
|00000960| 25 3e 32 35 36 20 8c 85 | 20 73 6f 63 6b 65 72 72 |%>256 ..| sockerr|
|00000970| 25 2c 72 24 2b 22 3a 20 | 53 6f 63 6b 65 74 20 6f |%,r$+": |Socket o|
|00000980| 75 74 20 6f 66 20 72 61 | 6e 67 65 22 0d 02 a8 3e |ut of ra|nge"...>|
|00000990| e7 20 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 3c 30 |. sock%(|sock%)<0|
|000009a0| 20 8c 85 20 73 6f 63 6b | 65 72 72 25 2c 72 24 2b | .. sock|err%,r$+|
|000009b0| 22 3a 20 53 6f 63 6b 65 | 74 20 68 61 73 20 62 65 |": Socke|t has be|
|000009c0| 65 6e 20 63 6c 6f 73 65 | 64 22 0d 02 b2 05 e1 0d |en close|d"......|
|000009d0| 02 bc 05 3a 0d 02 c6 37 | f4 20 50 52 4f 43 73 6f |...:...7|. PROCso|
|000009e0| 63 6b 65 74 5f 6c 69 73 | 74 65 6e 20 3a 20 4c 69 |cket_lis|ten : Li|
|000009f0| 73 74 65 6e 20 6f 6e 20 | 61 20 70 61 72 74 69 63 |sten on |a partic|
|00000a00| 75 6c 61 72 20 73 6f 63 | 6b 65 74 0d 02 d0 24 dd |ular soc|ket...$.|
|00000a10| f2 73 6f 63 6b 65 74 5f | 6c 69 73 74 65 6e 28 73 |.socket_|listen(s|
|00000a20| 6f 63 6b 25 2c 69 70 25 | 2c 70 6f 72 74 25 29 0d |ock%,ip%|,port%).|
|00000a30| 02 da 22 ea 66 6c 61 67 | 73 25 2c 72 30 3a 70 6f |..".flag|s%,r0:po|
|00000a40| 72 74 25 3d 70 6f 72 74 | 25 20 80 20 26 46 46 46 |rt%=port|% . &FFF|
|00000a50| 46 0d 02 e4 21 f2 73 6f | 63 6b 65 74 5f 63 68 65 |F...!.so|cket_che|
|00000a60| 63 6b 28 73 6f 63 6b 25 | 2c 22 4c 69 73 74 65 6e |ck(sock%|,"Listen|
|00000a70| 22 29 0d 02 ee 3f 73 6f | 63 6b 61 64 64 72 25 21 |")...?so|ckaddr%!|
|00000a80| 30 3d 41 46 5f 49 4e 45 | 54 20 84 28 28 70 6f 72 |0=AF_INE|T .((por|
|00000a90| 74 25 20 81 32 35 36 29 | 3c 3c 31 36 29 20 84 28 |t% .256)|<<16) .(|
|00000aa0| 28 70 6f 72 74 25 20 83 | 32 35 36 29 3c 3c 32 34 |(port% .|256)<<24|
|00000ab0| 29 0d 02 f8 26 73 6f 63 | 6b 61 64 64 72 25 21 34 |)...&soc|kaddr%!4|
|00000ac0| 3d 69 70 25 3a f4 20 49 | 6e 20 72 65 76 65 72 73 |=ip%:. I|n revers|
|00000ad0| 65 20 6f 72 64 65 72 0d | 03 02 2b 73 6f 63 6b 61 |e order.|..+socka|
|00000ae0| 64 64 72 25 21 38 3d 30 | 3a 73 6f 63 6b 61 64 64 |ddr%!8=0|:sockadd|
|00000af0| 72 25 21 31 32 3d 30 3a | f4 20 52 65 73 65 72 76 |r%!12=0:|. Reserv|
|00000b00| 65 64 0d 03 0c 3c c8 99 | 20 22 58 53 6f 63 6b 65 |ed...<..| "XSocke|
|00000b10| 74 5f 42 69 6e 64 22 2c | 73 6f 63 6b 25 28 73 6f |t_Bind",|sock%(so|
|00000b20| 63 6b 25 29 21 30 2c 73 | 6f 63 6b 61 64 64 72 25 |ck%)!0,s|ockaddr%|
|00000b30| 2c 31 36 20 b8 72 30 3b | 66 6c 61 67 73 25 0d 03 |,16 .r0;|flags%..|
|00000b40| 16 37 e7 20 28 66 6c 61 | 67 73 25 20 80 31 29 3d |.7. (fla|gs% .1)=|
|00000b50| 31 20 8c 85 20 73 6f 63 | 6b 65 72 72 25 2c 22 42 |1 .. soc|kerr%,"B|
|00000b60| 69 6e 64 3a 20 22 2b a4 | 73 74 72 69 6e 67 30 28 |ind: "+.|string0(|
|00000b70| 72 30 2b 34 29 0d 03 20 | 23 f4 20 4d 61 72 6b 20 |r0+4).. |#. Mark |
|00000b80| 61 73 20 61 20 6e 6f 6e | 2d 62 6c 6f 63 6b 69 6e |as a non|-blockin|
|00000b90| 67 20 73 6f 63 6b 65 74 | 0d 03 2a 45 21 73 6f 63 |g socket|..*E!soc|
|00000ba0| 6b 74 65 6d 70 25 3d 2d | 31 3a c8 99 20 22 58 53 |ktemp%=-|1:.. "XS|
|00000bb0| 6f 63 6b 65 74 5f 49 6f | 63 74 6c 22 2c 73 6f 63 |ocket_Io|ctl",soc|
|00000bc0| 6b 25 28 73 6f 63 6b 25 | 29 21 30 2c 46 49 4f 4e |k%(sock%|)!0,FION|
|00000bd0| 42 49 4f 2c 73 6f 63 6b | 74 65 6d 70 25 0d 03 34 |BIO,sock|temp%..4|
|00000be0| 14 f4 20 4d 61 6b 65 20 | 69 74 20 6c 69 73 74 65 |.. Make |it liste|
|00000bf0| 6e 0d 03 3e 3c c8 99 20 | 22 58 53 6f 63 6b 65 74 |n..><.. |"XSocket|
|00000c00| 5f 4c 69 73 74 65 6e 22 | 2c 73 6f 63 6b 25 28 73 |_Listen"|,sock%(s|
|00000c10| 6f 63 6b 25 29 21 30 2c | 35 20 3a f4 20 35 20 69 |ock%)!0,|5 :. 5 i|
|00000c20| 73 20 74 68 65 20 62 61 | 63 6b 6c 6f 67 0d 03 48 |s the ba|cklog..H|
|00000c30| 2c f4 20 4d 61 72 6b 20 | 61 73 20 6c 69 73 74 65 |,. Mark |as liste|
|00000c40| 6e 69 6e 67 20 28 69 65 | 20 77 65 27 72 65 20 61 |ning (ie| we're a|
|00000c50| 6e 73 77 65 72 69 6e 67 | 29 0d 03 52 2f 73 6f 63 |nswering|)..R/soc|
|00000c60| 6b 25 28 73 6f 63 6b 25 | 29 21 26 43 3d 28 73 6f |k%(sock%|)!&C=(so|
|00000c70| 63 6b 25 28 73 6f 63 6b | 25 29 21 26 43 20 80 20 |ck%(sock|%)!&C . |
|00000c80| ac 20 31 29 20 84 20 31 | 0d 03 5c 05 e1 0d 03 66 |. 1) . 1|..\....f|
|00000c90| 05 3a 0d 03 70 43 f4 20 | 46 4e 73 6f 63 6b 65 74 |.:..pC. |FNsocket|
|00000ca0| 5f 66 69 6e 64 6c 69 73 | 74 65 6e 20 3a 20 4c 69 |_findlis|ten : Li|
|00000cb0| 73 74 65 6e 20 6f 6e 20 | 61 20 73 6f 63 6b 65 74 |sten on |a socket|
|00000cc0| 2c 20 6a 75 6d 70 69 6e | 67 20 6f 6e 20 69 66 20 |, jumpin|g on if |
|00000cd0| 65 72 72 6f 72 0d 03 7a | 2f dd a4 73 6f 63 6b 65 |error..z|/..socke|
|00000ce0| 74 5f 66 69 6e 64 6c 69 | 73 74 65 6e 28 73 6f 63 |t_findli|sten(soc|
|00000cf0| 6b 25 2c 69 70 25 2c 70 | 6f 72 74 25 2c 6c 69 6d |k%,ip%,p|ort%,lim|
|00000d00| 69 74 25 29 0d 03 84 22 | ea 66 6c 61 67 73 25 2c |it%)..."|.flags%,|
|00000d10| 72 30 3a 70 6f 72 74 25 | 3d 70 6f 72 74 25 20 80 |r0:port%|=port% .|
|00000d20| 20 26 46 46 46 46 0d 03 | 8e 25 f2 73 6f 63 6b 65 | &FFFF..|.%.socke|
|00000d30| 74 5f 63 68 65 63 6b 28 | 73 6f 63 6b 25 2c 22 46 |t_check(|sock%,"F|
|00000d40| 69 6e 64 4c 69 73 74 65 | 6e 22 29 0d 03 98 05 f5 |indListe|n").....|
|00000d50| 0d 03 a2 40 20 73 6f 63 | 6b 61 64 64 72 25 21 30 |...@ soc|kaddr%!0|
|00000d60| 3d 41 46 5f 49 4e 45 54 | 20 84 28 28 70 6f 72 74 |=AF_INET| .((port|
|00000d70| 25 20 81 32 35 36 29 3c | 3c 31 36 29 20 84 28 28 |% .256)<|<16) .((|
|00000d80| 70 6f 72 74 25 20 83 32 | 35 36 29 3c 3c 32 34 29 |port% .2|56)<<24)|
|00000d90| 0d 03 ac 27 20 73 6f 63 | 6b 61 64 64 72 25 21 34 |...' soc|kaddr%!4|
|00000da0| 3d 69 70 25 3a f4 20 49 | 6e 20 72 65 76 65 72 73 |=ip%:. I|n revers|
|00000db0| 65 20 6f 72 64 65 72 0d | 03 b6 2c 20 73 6f 63 6b |e order.|.., sock|
|00000dc0| 61 64 64 72 25 21 38 3d | 30 3a 73 6f 63 6b 61 64 |addr%!8=|0:sockad|
|00000dd0| 64 72 25 21 31 32 3d 30 | 3a f4 20 52 65 73 65 72 |dr%!12=0|:. Reser|
|00000de0| 76 65 64 0d 03 c0 3d 20 | c8 99 20 22 58 53 6f 63 |ved...= |.. "XSoc|
|00000df0| 6b 65 74 5f 42 69 6e 64 | 22 2c 73 6f 63 6b 25 28 |ket_Bind|",sock%(|
|00000e00| 73 6f 63 6b 25 29 21 30 | 2c 73 6f 63 6b 61 64 64 |sock%)!0|,sockadd|
|00000e10| 72 25 2c 31 36 20 b8 72 | 30 3b 66 6c 61 67 73 25 |r%,16 .r|0;flags%|
|00000e20| 0d 03 ca 28 20 e7 20 28 | 66 6c 61 67 73 25 20 80 |...( . (|flags% .|
|00000e30| 31 29 3d 31 20 8c 70 6f | 72 74 25 2b 3d 31 3a 6c |1)=1 .po|rt%+=1:l|
|00000e40| 69 6d 69 74 25 2d 3d 31 | 0d 03 d4 1e fd 20 28 66 |imit%-=1|..... (f|
|00000e50| 6c 61 67 73 25 20 80 31 | 29 3d 30 20 84 20 6c 69 |lags% .1|)=0 . li|
|00000e60| 6d 69 74 25 3c 30 0d 03 | de 13 e7 20 6c 69 6d 69 |mit%<0..|... limi|
|00000e70| 74 25 3c 30 20 8c 3d 2d | 31 0d 03 e8 7c e7 20 70 |t%<0 .=-|1...|. p|
|00000e80| 6f 72 74 25 3d 30 20 8c | 21 73 6f 63 6b 74 65 6d |ort%=0 .|!socktem|
|00000e90| 70 25 3d 31 36 3a c8 99 | 20 22 58 53 6f 63 6b 65 |p%=16:..| "XSocke|
|00000ea0| 74 5f 47 65 74 73 6f 63 | 6b 6e 61 6d 65 22 2c 73 |t_Getsoc|kname",s|
|00000eb0| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 30 2c 73 6f |ock%(soc|k%)!0,so|
|00000ec0| 63 6b 61 64 64 72 25 2c | 73 6f 63 6b 74 65 6d 70 |ckaddr%,|socktemp|
|00000ed0| 25 3a 70 6f 72 74 25 3d | 28 73 6f 63 6b 61 64 64 |%:port%=|(sockadd|
|00000ee0| 72 25 3f 32 29 2a 32 35 | 36 2b 73 6f 63 6b 61 64 |r%?2)*25|6+sockad|
|00000ef0| 64 72 25 3f 33 0d 03 f2 | 23 f4 20 4d 61 72 6b 20 |dr%?3...|#. Mark |
|00000f00| 61 73 20 61 20 6e 6f 6e | 2d 62 6c 6f 63 6b 69 6e |as a non|-blockin|
|00000f10| 67 20 73 6f 63 6b 65 74 | 0d 03 fc 45 21 73 6f 63 |g socket|...E!soc|
|00000f20| 6b 74 65 6d 70 25 3d 2d | 31 3a c8 99 20 22 58 53 |ktemp%=-|1:.. "XS|
|00000f30| 6f 63 6b 65 74 5f 49 6f | 63 74 6c 22 2c 73 6f 63 |ocket_Io|ctl",soc|
|00000f40| 6b 25 28 73 6f 63 6b 25 | 29 21 30 2c 46 49 4f 4e |k%(sock%|)!0,FION|
|00000f50| 42 49 4f 2c 73 6f 63 6b | 74 65 6d 70 25 0d 04 06 |BIO,sock|temp%...|
|00000f60| 14 f4 20 4d 61 6b 65 20 | 69 74 20 6c 69 73 74 65 |.. Make |it liste|
|00000f70| 6e 0d 04 10 3c c8 99 20 | 22 58 53 6f 63 6b 65 74 |n...<.. |"XSocket|
|00000f80| 5f 4c 69 73 74 65 6e 22 | 2c 73 6f 63 6b 25 28 73 |_Listen"|,sock%(s|
|00000f90| 6f 63 6b 25 29 21 30 2c | 35 20 3a f4 20 35 20 69 |ock%)!0,|5 :. 5 i|
|00000fa0| 73 20 74 68 65 20 62 61 | 63 6b 6c 6f 67 0d 04 1a |s the ba|cklog...|
|00000fb0| 2c f4 20 4d 61 72 6b 20 | 61 73 20 6c 69 73 74 65 |,. Mark |as liste|
|00000fc0| 6e 69 6e 67 20 28 69 65 | 20 77 65 27 72 65 20 61 |ning (ie| we're a|
|00000fd0| 6e 73 77 65 72 69 6e 67 | 29 0d 04 24 2f 73 6f 63 |nswering|)..$/soc|
|00000fe0| 6b 25 28 73 6f 63 6b 25 | 29 21 26 43 3d 28 73 6f |k%(sock%|)!&C=(so|
|00000ff0| 63 6b 25 28 73 6f 63 6b | 25 29 21 26 43 20 80 20 |ck%(sock|%)!&C . |
|00001000| ac 20 31 29 20 84 20 31 | 0d 04 2e 0a 3d 70 6f 72 |. 1) . 1|....=por|
|00001010| 74 25 0d 04 38 05 3a 0d | 04 42 31 f4 20 46 4e 73 |t%..8.:.|.B1. FNs|
|00001020| 6f 63 6b 65 74 5f 63 6f | 6e 6e 65 63 74 20 3a 20 |ocket_co|nnect : |
|00001030| 43 6f 6e 6e 65 63 74 20 | 74 6f 20 61 20 72 65 6d |Connect |to a rem|
|00001040| 6f 74 65 20 68 6f 73 74 | 0d 04 4c 25 dd a4 73 6f |ote host|..L%..so|
|00001050| 63 6b 65 74 5f 63 6f 6e | 6e 65 63 74 28 73 6f 63 |cket_con|nect(soc|
|00001060| 6b 25 2c 69 70 25 2c 70 | 6f 72 74 25 29 0d 04 56 |k%,ip%,p|ort%)..V|
|00001070| 20 ea 66 6c 61 67 73 25 | 2c 72 30 3a 70 6f 72 74 | .flags%|,r0:port|
|00001080| 25 3d 70 6f 72 74 25 80 | 26 46 46 46 46 0d 04 60 |%=port%.|&FFFF..`|
|00001090| 22 f2 73 6f 63 6b 65 74 | 5f 63 68 65 63 6b 28 73 |".socket|_check(s|
|000010a0| 6f 63 6b 25 2c 22 43 6f | 6e 6e 65 63 74 22 29 0d |ock%,"Co|nnect").|
|000010b0| 04 6a 1d f4 20 41 46 5f | 49 4e 45 54 20 61 6e 64 |.j.. AF_|INET and|
|000010c0| 20 70 6f 72 74 20 6e 75 | 6d 62 65 72 0d 04 74 3b | port nu|mber..t;|
|000010d0| 73 6f 63 6b 61 64 64 72 | 25 21 30 3d 32 20 84 20 |sockaddr|%!0=2 . |
|000010e0| 28 28 70 6f 72 74 25 20 | 81 32 35 36 29 3c 3c 31 |((port% |.256)<<1|
|000010f0| 36 29 20 84 20 28 28 70 | 6f 72 74 25 20 83 32 35 |6) . ((p|ort% .25|
|00001100| 36 29 3c 3c 32 34 29 0d | 04 7e 26 73 6f 63 6b 61 |6)<<24).|.~&socka|
|00001110| 64 64 72 25 21 34 3d 69 | 70 25 3a f4 20 49 6e 20 |ddr%!4=i|p%:. In |
|00001120| 72 65 76 65 72 73 65 20 | 6f 72 64 65 72 0d 04 88 |reverse |order...|
|00001130| 2b 73 6f 63 6b 61 64 64 | 72 25 21 38 3d 30 3a 73 |+sockadd|r%!8=0:s|
|00001140| 6f 63 6b 61 64 64 72 25 | 21 31 32 3d 30 3a f4 20 |ockaddr%|!12=0:. |
|00001150| 52 65 73 65 72 76 65 64 | 0d 04 92 3f c8 99 20 22 |Reserved|...?.. "|
|00001160| 58 53 6f 63 6b 65 74 5f | 43 6f 6e 6e 65 63 74 22 |XSocket_|Connect"|
|00001170| 2c 73 6f 63 6b 25 28 73 | 6f 63 6b 25 29 21 30 2c |,sock%(s|ock%)!0,|
|00001180| 73 6f 63 6b 61 64 64 72 | 25 2c 31 36 20 b8 72 30 |sockaddr|%,16 .r0|
|00001190| 3b 66 6c 61 67 73 25 0d | 04 9c 17 e7 20 28 66 6c |;flags%.|.... (fl|
|000011a0| 61 67 73 25 20 80 31 29 | 3d 31 20 8c 3d a3 0d 04 |ags% .1)|=1 .=...|
|000011b0| a6 23 f4 20 4d 61 72 6b | 20 61 73 20 61 20 6e 6f |.#. Mark| as a no|
|000011c0| 6e 2d 62 6c 6f 63 6b 69 | 6e 67 20 73 6f 63 6b 65 |n-blocki|ng socke|
|000011d0| 74 0d 04 b0 45 21 73 6f | 63 6b 74 65 6d 70 25 3d |t...E!so|cktemp%=|
|000011e0| 2d 31 3a c8 99 20 22 58 | 53 6f 63 6b 65 74 5f 49 |-1:.. "X|Socket_I|
|000011f0| 6f 63 74 6c 22 2c 73 6f | 63 6b 25 28 73 6f 63 6b |octl",so|ck%(sock|
|00001200| 25 29 21 30 2c 46 49 4f | 4e 42 49 4f 2c 73 6f 63 |%)!0,FIO|NBIO,soc|
|00001210| 6b 74 65 6d 70 25 0d 04 | ba 35 f4 20 4d 61 72 6b |ktemp%..|.5. Mark|
|00001220| 20 61 73 20 74 61 6c 6b | 69 6e 67 20 28 69 65 20 | as talk|ing (ie |
|00001230| 77 65 27 72 65 20 64 6f | 69 6e 67 20 74 68 65 20 |we're do|ing the |
|00001240| 63 6f 6e 6e 65 63 74 69 | 6e 67 29 0d 04 c4 2b 73 |connecti|ng)...+s|
|00001250| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 26 43 3d 28 |ock%(soc|k%)!&C=(|
|00001260| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 26 43 20 |sock%(so|ck%)!&C |
|00001270| 80 20 ac 20 31 29 0d 04 | ce 06 3d b9 0d 04 d8 05 |. . 1)..|..=.....|
|00001280| 3a 0d 04 e2 38 f4 20 46 | 4e 73 6f 63 6b 65 74 5f |:...8. F|Nsocket_|
|00001290| 6e 6f 62 6c 6f 63 6b 63 | 6f 6e 6e 65 63 74 20 3a |noblockc|onnect :|
|000012a0| 20 43 6f 6e 6e 65 63 74 | 20 77 69 74 68 6f 75 74 | Connect| without|
|000012b0| 20 62 6c 6f 63 6b 69 6e | 67 0d 04 ec 37 f4 20 52 | blockin|g...7. R|
|000012c0| 65 74 75 72 6e 73 20 46 | 41 4c 53 45 20 69 66 20 |eturns F|ALSE if |
|000012d0| 63 6f 75 6c 64 6e 27 74 | 20 63 6f 6e 6e 65 63 74 |couldn't| connect|
|000012e0| 2c 20 54 52 55 45 20 69 | 66 20 69 74 20 64 69 64 |, TRUE i|f it did|
|000012f0| 0d 04 f6 2a f4 20 61 6e | 64 20 2d 54 52 55 45 20 |...*. an|d -TRUE |
|00001300| 69 66 20 69 74 20 69 73 | 20 63 75 72 72 65 6e 74 |if it is| current|
|00001310| 6c 79 20 74 72 79 69 6e | 67 2e 0d 05 00 2c dd a4 |ly tryin|g....,..|
|00001320| 73 6f 63 6b 65 74 5f 6e | 6f 62 6c 6f 63 6b 63 6f |socket_n|oblockco|
|00001330| 6e 6e 65 63 74 28 73 6f | 63 6b 25 2c 69 70 25 2c |nnect(so|ck%,ip%,|
|00001340| 70 6f 72 74 25 29 0d 05 | 0a 25 ea 66 6c 61 67 73 |port%)..|.%.flags|
|00001350| 25 2c 72 30 2c 72 65 73 | 25 3a 70 6f 72 74 25 3d |%,r0,res|%:port%=|
|00001360| 70 6f 72 74 25 80 26 46 | 46 46 46 0d 05 14 22 f2 |port%.&F|FFF...".|
|00001370| 73 6f 63 6b 65 74 5f 63 | 68 65 63 6b 28 73 6f 63 |socket_c|heck(soc|
|00001380| 6b 25 2c 22 43 6f 6e 6e | 65 63 74 22 29 0d 05 1e |k%,"Conn|ect")...|
|00001390| 23 f4 20 4d 61 72 6b 20 | 61 73 20 61 20 6e 6f 6e |#. Mark |as a non|
|000013a0| 2d 62 6c 6f 63 6b 69 6e | 67 20 73 6f 63 6b 65 74 |-blockin|g socket|
|000013b0| 0d 05 28 45 21 73 6f 63 | 6b 74 65 6d 70 25 3d 2d |..(E!soc|ktemp%=-|
|000013c0| 31 3a c8 99 20 22 58 53 | 6f 63 6b 65 74 5f 49 6f |1:.. "XS|ocket_Io|
|000013d0| 63 74 6c 22 2c 73 6f 63 | 6b 25 28 73 6f 63 6b 25 |ctl",soc|k%(sock%|
|000013e0| 29 21 30 2c 46 49 4f 4e | 42 49 4f 2c 73 6f 63 6b |)!0,FION|BIO,sock|
|000013f0| 74 65 6d 70 25 0d 05 32 | 1d f4 20 41 46 5f 49 4e |temp%..2|.. AF_IN|
|00001400| 45 54 20 61 6e 64 20 70 | 6f 72 74 20 6e 75 6d 62 |ET and p|ort numb|
|00001410| 65 72 0d 05 3c 3b 73 6f | 63 6b 61 64 64 72 25 21 |er..<;so|ckaddr%!|
|00001420| 30 3d 32 20 84 20 28 28 | 70 6f 72 74 25 20 81 32 |0=2 . ((|port% .2|
|00001430| 35 36 29 3c 3c 31 36 29 | 20 84 20 28 28 70 6f 72 |56)<<16)| . ((por|
|00001440| 74 25 20 83 32 35 36 29 | 3c 3c 32 34 29 0d 05 46 |t% .256)|<<24)..F|
|00001450| 26 73 6f 63 6b 61 64 64 | 72 25 21 34 3d 69 70 25 |&sockadd|r%!4=ip%|
|00001460| 3a f4 20 49 6e 20 72 65 | 76 65 72 73 65 20 6f 72 |:. In re|verse or|
|00001470| 64 65 72 0d 05 50 2b 73 | 6f 63 6b 61 64 64 72 25 |der..P+s|ockaddr%|
|00001480| 21 38 3d 30 3a 73 6f 63 | 6b 61 64 64 72 25 21 31 |!8=0:soc|kaddr%!1|
|00001490| 32 3d 30 3a f4 20 52 65 | 73 65 72 76 65 64 0d 05 |2=0:. Re|served..|
|000014a0| 5a 3f c8 99 20 22 58 53 | 6f 63 6b 65 74 5f 43 6f |Z?.. "XS|ocket_Co|
|000014b0| 6e 6e 65 63 74 22 2c 73 | 6f 63 6b 25 28 73 6f 63 |nnect",s|ock%(soc|
|000014c0| 6b 25 29 21 30 2c 73 6f | 63 6b 61 64 64 72 25 2c |k%)!0,so|ckaddr%,|
|000014d0| 31 36 20 b8 72 30 3b 66 | 6c 61 67 73 25 0d 05 64 |16 .r0;f|lags%..d|
|000014e0| 15 e7 20 28 66 6c 61 67 | 73 25 20 80 31 29 3d 31 |.. (flag|s% .1)=1|
|000014f0| 20 8c 0d 05 6e 27 20 f4 | 20 43 68 65 63 6b 20 66 | ...n' .| Check f|
|00001500| 6f 72 20 65 72 72 6f 72 | 20 45 49 4e 50 52 4f 47 |or error| EINPROG|
|00001510| 52 45 53 53 20 28 33 36 | 29 0d 05 78 19 20 e7 20 |RESS (36|)..x. . |
|00001520| 21 72 30 3d 33 36 20 8c | 72 65 73 25 3d 31 20 8b |!r0=36 .|res%=1 .|
|00001530| 3d a3 0d 05 82 05 cc 0d | 05 8c 27 20 f4 20 4f 74 |=.......|..' . Ot|
|00001540| 68 65 72 77 69 73 65 20 | 69 74 27 73 20 63 6f 6e |herwise |it's con|
|00001550| 6e 65 63 74 65 64 20 61 | 6c 72 65 61 64 79 0d 05 |nected a|lready..|
|00001560| 96 0b 20 72 65 73 25 3d | b9 0d 05 a0 05 cd 0d 05 |.. res%=|........|
|00001570| aa 2d f4 20 4d 61 72 6b | 20 61 73 20 74 61 6c 6b |.-. Mark| as talk|
|00001580| 69 6e 67 2c 20 61 6e 64 | 20 77 65 27 72 65 20 6e |ing, and| we're n|
|00001590| 6f 6e 2d 62 6c 6f 63 6b | 69 6e 67 0d 05 b4 2f 73 |on-block|ing.../s|
|000015a0| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 26 43 3d 28 |ock%(soc|k%)!&C=(|
|000015b0| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 26 43 20 |sock%(so|ck%)!&C |
|000015c0| 80 20 ac 20 31 29 20 84 | 20 34 0d 05 be 09 3d 72 |. . 1) .| 4....=r|
|000015d0| 65 73 25 0d 05 c8 05 3a | 0d 05 d2 2b f4 20 46 4e |es%....:|...+. FN|
|000015e0| 73 6f 63 6b 65 74 5f 61 | 63 63 65 70 74 20 3a 20 |socket_a|ccept : |
|000015f0| 41 63 63 65 70 74 20 61 | 20 63 6f 6e 6e 65 63 74 |Accept a| connect|
|00001600| 69 6f 6e 0d 05 dc 1a dd | a4 73 6f 63 6b 65 74 5f |ion.....|.socket_|
|00001610| 61 63 63 65 70 74 28 6d | 61 69 6e 25 29 0d 05 e6 |accept(m|ain%)...|
|00001620| 21 f2 73 6f 63 6b 65 74 | 5f 63 68 65 63 6b 28 6d |!.socket|_check(m|
|00001630| 61 69 6e 25 2c 22 41 63 | 63 65 70 74 22 29 0d 05 |ain%,"Ac|cept")..|
|00001640| f0 2b ea 20 73 6b 74 25 | 2c 73 6f 63 6b 25 2c 4f |.+. skt%|,sock%,O|
|00001650| 3a 73 6f 63 6b 25 3d a4 | 73 6f 63 6b 65 74 5f 66 |:sock%=.|socket_f|
|00001660| 69 6e 64 68 61 6e 64 6c | 65 0d 05 fa 13 e7 20 73 |indhandl|e..... s|
|00001670| 6f 63 6b 25 3d 2d 31 20 | 8c 3d 2d 31 0d 06 04 11 |ock%=-1 |.=-1....|
|00001680| 21 73 6f 63 6b 74 65 6d | 70 25 3d 31 36 0d 06 0e |!socktem|p%=16...|
|00001690| 48 c8 99 20 22 58 53 6f | 63 6b 65 74 5f 41 63 63 |H.. "XSo|cket_Acc|
|000016a0| 65 70 74 22 2c 73 6f 63 | 6b 25 28 6d 61 69 6e 25 |ept",soc|k%(main%|
|000016b0| 29 21 30 2c 73 6f 63 6b | 61 64 64 72 25 2c 73 6f |)!0,sock|addr%,so|
|000016c0| 63 6b 74 65 6d 70 25 20 | b8 20 73 6b 74 25 3b 66 |cktemp% |. skt%;f|
|000016d0| 6c 61 67 73 25 0d 06 18 | 3a e7 20 28 66 6c 61 67 |lags%...|:. (flag|
|000016e0| 73 25 20 80 20 31 29 3d | 31 20 84 20 73 6b 74 25 |s% . 1)=|1 . skt%|
|000016f0| 3d 2d 31 20 8c f2 72 65 | 6c 65 61 73 65 28 73 6f |=-1 ..re|lease(so|
|00001700| 63 6b 25 28 73 6f 63 6b | 25 29 29 3a 3d 2d 31 0d |ck%(sock|%)):=-1.|
|00001710| 06 22 17 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 |.".sock%|(sock%)!|
|00001720| 30 3d 73 6b 74 25 0d 06 | 2c 1b f4 20 43 6f 70 79 |0=skt%..|,.. Copy|
|00001730| 20 74 68 65 20 73 6f 63 | 6b 65 74 20 62 6c 6f 63 | the soc|ket bloc|
|00001740| 6b 0d 06 36 39 e3 4f 3d | 34 b8 20 73 6f 63 6b 73 |k..69.O=|4. socks|
|00001750| 69 7a 65 25 2d 34 20 88 | 20 34 3a 73 6f 63 6b 25 |ize%-4 .| 4:sock%|
|00001760| 28 73 6f 63 6b 25 29 21 | 4f 3d 73 6f 63 6b 25 28 |(sock%)!|O=sock%(|
|00001770| 6d 61 69 6e 25 29 21 4f | 3a ed 0d 06 40 3e f4 20 |main%)!O|:...@>. |
|00001780| 49 66 20 69 74 20 69 73 | 20 61 20 62 75 66 66 65 |If it is| a buffe|
|00001790| 72 65 64 20 73 6f 63 6b | 65 74 20 74 68 65 6e 20 |red sock|et then |
|000017a0| 63 6c 61 69 6d 20 73 6f | 6d 65 20 6d 65 6d 6f 72 |claim so|me memor|
|000017b0| 79 20 66 6f 72 20 69 74 | 0d 06 4a 21 e7 20 28 28 |y for it|..J!. ((|
|000017c0| 73 6f 63 6b 25 28 6d 61 | 69 6e 25 29 21 26 43 29 |sock%(ma|in%)!&C)|
|000017d0| 20 80 20 32 29 3d 32 20 | 8c 0d 06 54 27 20 73 6f | . 2)=2 |...T' so|
|000017e0| 63 6b 25 28 73 6f 63 6b | 25 29 21 34 3d a4 63 6c |ck%(sock|%)!4=.cl|
|000017f0| 61 69 6d 28 73 6f 63 6b | 62 75 66 6c 65 6e 25 29 |aim(sock|buflen%)|
|00001800| 0d 06 5e 19 20 e7 20 73 | 6f 63 6b 25 28 73 6f 63 |..^. . s|ock%(soc|
|00001810| 6b 25 29 21 34 3c 30 20 | 8c 0d 06 68 22 20 20 f4 |k%)!4<0 |...h" .|
|00001820| 20 4e 6f 74 20 65 6e 6f | 75 67 68 20 6d 65 6d 6f | Not eno|ugh memo|
|00001830| 72 79 20 74 6f 20 63 6c | 61 69 6d 0d 06 72 1c 20 |ry to cl|aim..r. |
|00001840| 20 f2 72 65 6c 65 61 73 | 65 28 73 6f 63 6b 25 28 | .releas|e(sock%(|
|00001850| 73 6f 63 6b 25 29 29 0d | 06 7c 09 20 20 3d 2d 31 |sock%)).|.|. =-1|
|00001860| 0d 06 86 06 20 cd 0d 06 | 90 2a 20 73 6f 63 6b 25 |.... ...|.* sock%|
|00001870| 28 73 6f 63 6b 25 29 21 | 38 3d 30 3a f4 20 4e 6f |(sock%)!|8=0:. No|
|00001880| 20 62 79 74 65 73 20 69 | 6e 20 62 75 66 66 65 72 | bytes i|n buffer|
|00001890| 0d 06 9a 05 cd 0d 06 a4 | 0a 3d 73 6f 63 6b 25 0d |........|.=sock%.|
|000018a0| 06 ae 05 3a 0d 06 b8 41 | f4 20 50 52 4f 43 73 6f |...:...A|. PROCso|
|000018b0| 63 6b 65 74 5f 6d 61 6b | 65 62 75 66 66 65 72 65 |cket_mak|ebuffere|
|000018c0| 64 20 3a 20 45 6e 73 75 | 72 65 73 20 74 68 61 74 |d : Ensu|res that|
|000018d0| 20 61 20 73 6f 63 6b 65 | 74 20 69 73 20 62 75 66 | a socke|t is buf|
|000018e0| 66 65 72 65 64 0d 06 c2 | 20 dd f2 73 6f 63 6b 65 |fered...| ..socke|
|000018f0| 74 5f 6d 61 6b 65 62 75 | 66 66 65 72 65 64 28 73 |t_makebu|ffered(s|
|00001900| 6f 63 6b 25 29 0d 06 cc | 27 f2 73 6f 63 6b 65 74 |ock%)...|'.socket|
|00001910| 5f 63 68 65 63 6b 28 73 | 6f 63 6b 25 2c 22 4d 61 |_check(s|ock%,"Ma|
|00001920| 6b 65 42 75 66 66 65 72 | 65 64 22 29 0d 06 d6 22 |keBuffer|ed")..."|
|00001930| e7 20 28 28 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |. ((sock|%(sock%)|
|00001940| 21 26 43 29 20 80 20 32 | 29 3d 32 20 8c e1 0d 06 |!&C) . 2|)=2 ....|
|00001950| e0 26 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 21 34 |.&sock%(|sock%)!4|
|00001960| 3d a4 63 6c 61 69 6d 28 | 73 6f 63 6b 62 75 66 6c |=.claim(|sockbufl|
|00001970| 65 6e 25 29 0d 06 ea 50 | e7 20 73 6f 63 6b 25 28 |en%)...P|. sock%(|
|00001980| 73 6f 63 6b 25 29 21 34 | 3c 30 20 8c 85 20 73 6f |sock%)!4|<0 .. so|
|00001990| 63 6b 65 72 72 25 2c 22 | 4d 61 6b 65 42 75 66 66 |ckerr%,"|MakeBuff|
|000019a0| 65 72 65 64 3a 20 43 6f | 75 6c 64 20 6e 6f 74 20 |ered: Co|uld not |
|000019b0| 63 6c 61 69 6d 20 65 6e | 6f 75 67 68 20 6d 65 6d |claim en|ough mem|
|000019c0| 6f 72 79 22 0d 06 f4 29 | 73 6f 63 6b 25 28 73 6f |ory"...)|sock%(so|
|000019d0| 63 6b 25 29 21 38 3d 30 | 3a f4 20 4e 6f 20 62 79 |ck%)!8=0|:. No by|
|000019e0| 74 65 73 20 69 6e 20 62 | 75 66 66 65 72 0d 06 fe |tes in b|uffer...|
|000019f0| 29 73 6f 63 6b 25 28 73 | 6f 63 6b 25 29 21 26 43 |)sock%(s|ock%)!&C|
|00001a00| 3d 28 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 21 26 |=(sock%(|sock%)!&|
|00001a10| 43 29 20 84 20 32 0d 07 | 08 05 e1 0d 07 12 05 3a |C) . 2..|.......:|
|00001a20| 0d 07 1c 3f f4 20 50 52 | 4f 43 73 6f 63 6b 65 74 |...?. PR|OCsocket|
|00001a30| 5f 6d 61 6b 65 6c 69 6e | 67 65 72 20 3a 20 53 6f |_makelin|ger : So|
|00001a40| 63 6b 65 74 20 77 69 6c | 6c 20 28 6e 6f 74 29 20 |cket wil|l (not) |
|00001a50| 6c 69 6e 67 65 72 20 6f | 6e 20 63 6c 6f 73 65 0d |linger o|n close.|
|00001a60| 07 26 24 dd f2 73 6f 63 | 6b 65 74 5f 6d 61 6b 65 |.&$..soc|ket_make|
|00001a70| 6c 69 6e 67 65 72 28 73 | 6f 63 6b 25 2c 74 69 6d |linger(s|ock%,tim|
|00001a80| 65 25 29 0d 07 30 25 f2 | 73 6f 63 6b 65 74 5f 63 |e%)..0%.|socket_c|
|00001a90| 68 65 63 6b 28 73 6f 63 | 6b 25 2c 22 4d 61 6b 65 |heck(soc|k%,"Make|
|00001aa0| 4c 69 6e 67 65 72 22 29 | 0d 07 3a 2d 73 6f 63 6b |Linger")|..:-sock|
|00001ab0| 74 65 6d 70 25 21 30 3d | 31 2b 28 74 69 6d 65 25 |temp%!0=|1+(time%|
|00001ac0| 3d 30 29 3a 73 6f 63 6b | 74 65 6d 70 25 21 34 3d |=0):sock|temp%!4=|
|00001ad0| 74 69 6d 65 25 0d 07 44 | 40 c8 99 20 22 58 53 6f |time%..D|@.. "XSo|
|00001ae0| 63 6b 65 74 5f 53 65 74 | 73 6f 63 6b 6f 70 74 22 |cket_Set|sockopt"|
|00001af0| 2c 73 6f 63 6b 25 28 73 | 6f 63 6b 25 29 21 30 2c |,sock%(s|ock%)!0,|
|00001b00| 26 46 46 46 46 2c 26 38 | 30 2c 73 6f 63 6b 74 65 |&FFFF,&8|0,sockte|
|00001b10| 6d 70 25 2c 38 0d 07 4e | 05 e1 0d 07 58 05 3a 0d |mp%,8..N|....X.:.|
|00001b20| 07 62 40 f4 20 50 52 4f | 43 73 6f 63 6b 65 74 5f |.b@. PRO|Csocket_|
|00001b30| 6d 61 6b 65 72 65 75 73 | 61 62 6c 65 20 3a 20 53 |makereus|able : S|
|00001b40| 6f 63 6b 65 74 20 63 61 | 6e 20 62 65 20 72 65 75 |ocket ca|n be reu|
|00001b50| 73 65 64 20 77 68 65 6e | 20 63 6c 6f 73 65 64 0d |sed when| closed.|
|00001b60| 07 6c 26 dd f2 73 6f 63 | 6b 65 74 5f 6d 61 6b 65 |.l&..soc|ket_make|
|00001b70| 72 65 75 73 61 62 6c 65 | 28 73 6f 63 6b 25 2c 66 |reusable|(sock%,f|
|00001b80| 6c 61 67 25 29 0d 07 76 | 27 f2 73 6f 63 6b 65 74 |lag%)..v|'.socket|
|00001b90| 5f 63 68 65 63 6b 28 73 | 6f 63 6b 25 2c 22 4d 61 |_check(s|ock%,"Ma|
|00001ba0| 6b 65 52 65 75 73 61 62 | 6c 65 22 29 0d 07 80 1b |keReusab|le")....|
|00001bb0| 73 6f 63 6b 74 65 6d 70 | 25 21 30 3d 2d 28 66 6c |socktemp|%!0=-(fl|
|00001bc0| 61 67 25 3c 3e 30 29 0d | 07 8a 3f c8 99 20 22 58 |ag%<>0).|..?.. "X|
|00001bd0| 53 6f 63 6b 65 74 5f 53 | 65 74 73 6f 63 6b 6f 70 |Socket_S|etsockop|
|00001be0| 74 22 2c 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 |t",sock%|(sock%)!|
|00001bf0| 30 2c 26 46 46 46 46 2c | 26 34 2c 73 6f 63 6b 74 |0,&FFFF,|&4,sockt|
|00001c00| 65 6d 70 25 2c 34 0d 07 | 94 41 c8 99 20 22 58 53 |emp%,4..|.A.. "XS|
|00001c10| 6f 63 6b 65 74 5f 53 65 | 74 73 6f 63 6b 6f 70 74 |ocket_Se|tsockopt|
|00001c20| 22 2c 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 21 30 |",sock%(|sock%)!0|
|00001c30| 2c 26 46 46 46 46 2c 26 | 32 30 30 2c 73 6f 63 6b |,&FFFF,&|200,sock|
|00001c40| 74 65 6d 70 25 2c 34 0d | 07 9e 05 e1 0d 07 a8 05 |temp%,4.|........|
|00001c50| 3a 0d 07 b2 3e f4 20 50 | 52 4f 43 63 6c 6f 73 65 |:...>. P|ROCclose|
|00001c60| 73 6f 63 6b 65 74 73 20 | 3a 20 4b 69 6c 6c 20 61 |sockets |: Kill a|
|00001c70| 6c 6c 20 61 63 74 69 76 | 65 20 73 6f 63 6b 65 74 |ll activ|e socket|
|00001c80| 73 20 61 6e 64 20 63 6c | 6f 73 65 64 6f 77 6e 0d |s and cl|osedown.|
|00001c90| 07 bc 12 dd f2 63 6c 6f | 73 65 73 6f 63 6b 65 74 |.....clo|sesocket|
|00001ca0| 73 0d 07 c6 0b ea 20 49 | 25 2c 73 25 0d 07 d0 27 |s..... I|%,s%...'|
|00001cb0| e3 49 25 3d 30 b8 32 35 | 36 3a 73 25 3d 49 25 3a |.I%=0.25|6:s%=I%:|
|00001cc0| f2 73 6f 63 6b 65 74 5f | 63 6c 6f 73 65 28 73 25 |.socket_|close(s%|
|00001cd0| 29 3a ed 0d 07 da 17 f2 | 72 65 6c 65 61 73 65 28 |):......|release(|
|00001ce0| 73 6f 63 6b 6c 69 6e 65 | 25 29 0d 07 e4 30 c8 95 |sockline|%)...0..|
|00001cf0| 20 6d 74 63 68 61 69 6e | 25 3c 3e 30 3a f2 69 6e | mtchain|%<>0:.in|
|00001d00| 65 74 5f 6b 69 6c 6c 6d | 74 71 75 65 72 79 28 6d |et_killm|tquery(m|
|00001d10| 74 63 68 61 69 6e 25 29 | 3a ce 0d 07 ee 05 e1 0d |tchain%)|:.......|
|00001d20| 07 f8 05 3a 0d 08 02 2c | f4 20 50 52 4f 43 73 6f |...:...,|. PROCso|
|00001d30| 63 6b 65 74 5f 63 6c 6f | 73 65 20 3a 20 43 6c 6f |cket_clo|se : Clo|
|00001d40| 73 65 20 61 20 73 6f 63 | 6b 65 74 20 64 6f 77 6e |se a soc|ket down|
|00001d50| 0d 08 0c 1b dd f2 73 6f | 63 6b 65 74 5f 63 6c 6f |......so|cket_clo|
|00001d60| 73 65 28 f8 20 73 6f 63 | 6b 25 29 0d 08 16 1d e7 |se(. soc|k%).....|
|00001d70| 20 73 6f 63 6b 25 3e 3d | 30 20 80 20 73 6f 63 6b | sock%>=|0 . sock|
|00001d80| 25 3c 3d 32 35 36 20 8c | 0d 08 20 18 20 e7 20 73 |%<=256 .|.. . . s|
|00001d90| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 3e 2d 31 20 8c |ock%(soc|k%)>-1 .|
|00001da0| 0d 08 2a 2c 20 20 c8 99 | 20 22 58 53 6f 63 6b 65 |..*, ..| "XSocke|
|00001db0| 74 5f 53 68 75 74 64 6f | 77 6e 22 2c 73 6f 63 6b |t_Shutdo|wn",sock|
|00001dc0| 25 28 73 6f 63 6b 25 29 | 21 30 2c 32 0d 08 34 27 |%(sock%)|!0,2..4'|
|00001dd0| 20 20 c8 99 20 22 58 53 | 6f 63 6b 65 74 5f 43 6c | .. "XS|ocket_Cl|
|00001de0| 6f 73 65 22 2c 73 6f 63 | 6b 25 28 73 6f 63 6b 25 |ose",soc|k%(sock%|
|00001df0| 29 21 30 0d 08 3e 3c 20 | 20 e7 20 28 28 73 6f 63 |)!0..>< | . ((soc|
|00001e00| 6b 25 28 73 6f 63 6b 25 | 29 21 26 43 29 20 80 20 |k%(sock%|)!&C) . |
|00001e10| 32 29 3d 32 20 8c f2 72 | 65 6c 65 61 73 65 28 73 |2)=2 ..r|elease(s|
|00001e20| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 26 34 29 0d |ock%(soc|k%)!&4).|
|00001e30| 08 48 1c 20 20 f2 72 65 | 6c 65 61 73 65 28 73 6f |.H. .re|lease(so|
|00001e40| 63 6b 25 28 73 6f 63 6b | 25 29 29 0d 08 52 06 20 |ck%(sock|%))..R. |
|00001e50| cd 0d 08 5c 05 cd 0d 08 | 66 0c 73 6f 63 6b 25 3d |...\....|f.sock%=|
|00001e60| 2d 31 0d 08 70 05 e1 0d | 08 7a 05 3a 0d 08 84 3d |-1..p...|.z.:...=|
|00001e70| f4 20 46 4e 73 6f 63 6b | 65 74 5f 69 6e 62 75 66 |. FNsock|et_inbuf|
|00001e80| 66 65 72 20 3a 20 52 65 | 61 64 20 61 6d 6f 75 6e |fer : Re|ad amoun|
|00001e90| 74 20 6f 66 20 64 61 74 | 61 20 69 6e 20 69 6e 70 |t of dat|a in inp|
|00001ea0| 75 74 20 62 75 66 66 65 | 72 0d 08 8e 1c dd a4 73 |ut buffe|r......s|
|00001eb0| 6f 63 6b 65 74 5f 69 6e | 62 75 66 66 65 72 28 73 |ocket_in|buffer(s|
|00001ec0| 6f 63 6b 25 29 0d 08 98 | 23 f2 73 6f 63 6b 65 74 |ock%)...|#.socket|
|00001ed0| 5f 63 68 65 63 6b 28 73 | 6f 63 6b 25 2c 22 49 6e |_check(s|ock%,"In|
|00001ee0| 42 75 66 66 65 72 22 29 | 0d 08 a2 38 c8 99 20 22 |Buffer")|...8.. "|
|00001ef0| 58 53 6f 63 6b 65 74 5f | 49 6f 63 74 6c 22 2c 73 |XSocket_|Ioctl",s|
|00001f00| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 30 2c 46 49 |ock%(soc|k%)!0,FI|
|00001f10| 4f 4e 52 45 41 44 2c 73 | 6f 63 6b 74 65 6d 70 25 |ONREAD,s|ocktemp%|
|00001f20| 0d 08 ac 0f 3d 21 73 6f | 63 6b 74 65 6d 70 25 0d |....=!so|cktemp%.|
|00001f30| 08 b6 05 3a 0d 08 c0 3c | f4 20 46 4e 73 6f 63 6b |...:...<|. FNsock|
|00001f40| 65 74 5f 65 6f 66 20 3a | 20 52 65 74 75 72 6e 20 |et_eof :| Return |
|00001f50| 54 52 55 45 20 69 66 20 | 74 68 65 20 6f 74 68 65 |TRUE if |the othe|
|00001f60| 72 20 65 6e 64 20 68 61 | 73 20 63 6c 6f 73 65 64 |r end ha|s closed|
|00001f70| 0d 08 ca 17 dd a4 73 6f | 63 6b 65 74 5f 65 6f 66 |......so|cket_eof|
|00001f80| 28 73 6f 63 6b 25 29 0d | 08 d4 1e f2 73 6f 63 6b |(sock%).|....sock|
|00001f90| 65 74 5f 63 68 65 63 6b | 28 73 6f 63 6b 25 2c 22 |et_check|(sock%,"|
|00001fa0| 45 6f 66 22 29 0d 08 de | 25 ea 20 6f 6b 2c 66 25 |Eof")...|%. ok,f%|
|00001fb0| 3a 6f 6b 3d a4 73 6f 63 | 6b 65 74 5f 72 65 61 64 |:ok=.soc|ket_read|
|00001fc0| 79 28 73 6f 63 6b 25 2c | b9 29 0d 08 e8 0d e7 20 |y(sock%,|.)..... |
|00001fd0| 6f 6b 3c 3e 30 20 8c 0d | 08 f2 1e 20 f4 20 4d 53 |ok<>0 ..|... . MS|
|00001fe0| 47 5f 50 45 45 4b 20 2b | 20 4d 53 47 5f 44 4f 4e |G_PEEK +| MSG_DON|
|00001ff0| 54 57 41 49 54 0d 08 fc | 40 20 c8 99 20 22 58 53 |TWAIT...|@ .. "XS|
|00002000| 6f 63 6b 65 74 5f 52 65 | 63 76 22 2c 73 6f 63 6b |ocket_Re|cv",sock|
|00002010| 25 28 73 6f 63 6b 25 29 | 21 30 2c 73 6f 63 6b 74 |%(sock%)|!0,sockt|
|00002020| 65 6d 70 25 2c 31 2c 26 | 32 2b 26 38 30 20 b8 20 |emp%,1,&|2+&80 . |
|00002030| 6f 6b 3b 66 25 0d 09 06 | 1a 20 6f 6b 3d 28 6f 6b |ok;f%...|. ok=(ok|
|00002040| 3d 30 29 20 84 20 28 66 | 25 20 80 31 29 3d 31 0d |=0) . (f|% .1)=1.|
|00002050| 09 10 05 cd 0d 09 1a 07 | 3d 6f 6b 0d 09 24 05 3a |........|=ok..$.:|
|00002060| 0d 09 2e 37 f4 20 46 4e | 73 6f 63 6b 65 74 5f 72 |...7. FN|socket_r|
|00002070| 65 61 64 79 20 3a 20 43 | 68 65 63 6b 20 77 68 65 |eady : C|heck whe|
|00002080| 74 68 65 72 20 61 20 73 | 6f 63 6b 65 74 20 69 73 |ther a s|ocket is|
|00002090| 20 75 73 61 62 6c 65 0d | 09 38 1f dd a4 73 6f 63 | usable.|.8...soc|
|000020a0| 6b 65 74 5f 72 65 61 64 | 79 28 73 6f 63 6b 25 2c |ket_read|y(sock%,|
|000020b0| 72 65 61 64 25 29 0d 09 | 42 20 f2 73 6f 63 6b 65 |read%)..|B .socke|
|000020c0| 74 5f 63 68 65 63 6b 28 | 73 6f 63 6b 25 2c 22 52 |t_check(|sock%,"R|
|000020d0| 65 61 64 79 22 29 0d 09 | 4c 38 ea 20 49 2c 66 64 |eady")..|L8. I,fd|
|000020e0| 25 2c 62 25 2c 6f 6b 25 | 2c 72 25 2c 77 25 3a 66 |%,b%,ok%|,r%,w%:f|
|000020f0| 64 25 3d 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 |d%=sock%|(sock%)!|
|00002100| 30 3a 62 25 3d 73 6f 63 | 6b 74 65 6d 70 25 0d 09 |0:b%=soc|ktemp%..|
|00002110| 56 39 e3 20 49 3d 30 20 | b8 20 28 28 73 6f 63 6b |V9. I=0 |. ((sock|
|00002120| 74 73 69 7a 65 25 2f 38 | 2b 33 29 20 80 20 ac 33 |tsize%/8|+3) . .3|
|00002130| 29 2d 31 20 88 20 34 3a | 73 6f 63 6b 74 65 6d 70 |)-1 . 4:|socktemp|
|00002140| 25 21 49 3d 30 3a ed 0d | 09 60 31 c8 95 20 66 64 |%!I=0:..|.`1.. fd|
|00002150| 25 3e 3d 33 32 3a 62 25 | 2b 3d 34 3a 66 64 25 2d |%>=32:b%|+=4:fd%-|
|00002160| 3d 33 32 3a ce 3a 21 62 | 25 3d 21 62 25 20 84 20 |=32:.:!b|%=!b% . |
|00002170| 28 31 3c 3c 66 64 25 29 | 0d 09 6a 32 62 25 3d 73 |(1<<fd%)|..j2b%=s|
|00002180| 6f 63 6b 74 65 6d 70 25 | 2b 49 3a 21 62 25 3d 30 |ocktemp%|+I:!b%=0|
|00002190| 3a 62 25 21 34 3d 30 3a | f4 20 69 6d 6d 65 64 69 |:b%!4=0:|. immedi|
|000021a0| 61 74 65 20 72 65 74 75 | 72 6e 0d 09 74 27 e7 20 |ate retu|rn..t'. |
|000021b0| 72 65 61 64 25 20 8c 72 | 25 3d 73 6f 63 6b 74 65 |read% .r|%=sockte|
|000021c0| 6d 70 25 20 8b 77 25 3d | 73 6f 63 6b 74 65 6d 70 |mp% .w%=|socktemp|
|000021d0| 25 0d 09 7e 32 c8 99 20 | 22 53 6f 63 6b 65 74 5f |%..~2.. |"Socket_|
|000021e0| 53 65 6c 65 63 74 22 2c | 73 6f 63 6b 74 73 69 7a |Select",|socktsiz|
|000021f0| 65 25 2c 72 25 2c 77 25 | 2c 30 2c 62 25 20 b8 20 |e%,r%,w%|,0,b% . |
|00002200| 6f 6b 25 0d 09 88 08 3d | 6f 6b 25 0d 09 92 05 3a |ok%....=|ok%....:|
|00002210| 0d 09 9c 38 f4 20 46 4e | 73 6f 63 6b 65 74 5f 63 |...8. FN|socket_c|
|00002220| 6f 6e 6e 65 63 74 65 64 | 20 3a 20 43 68 65 63 6b |onnected| : Check|
|00002230| 20 69 66 20 77 65 20 61 | 72 65 20 63 6f 6e 6e 65 | if we a|re conne|
|00002240| 63 74 65 64 20 79 65 74 | 0d 09 a6 2c f4 20 54 52 |cted yet|...,. TR|
|00002250| 55 45 20 69 66 20 77 65 | 20 61 72 65 2c 20 46 41 |UE if we| are, FA|
|00002260| 4c 53 45 20 69 66 20 77 | 6f 72 6b 69 6e 67 20 6f |LSE if w|orking o|
|00002270| 6e 20 69 74 0d 09 b0 16 | f4 20 65 72 72 6f 72 2c |n it....|. error,|
|00002280| 20 6f 74 68 65 72 77 69 | 73 65 0d 09 ba 1d dd a4 | otherwi|se......|
|00002290| 73 6f 63 6b 65 74 5f 63 | 6f 6e 6e 65 63 74 65 64 |socket_c|onnected|
|000022a0| 28 73 6f 63 6b 25 29 0d | 09 c4 0b ea 20 6f 6b 2c |(sock%).|.... ok,|
|000022b0| 66 25 0d 09 ce 1d f4 20 | 4d 53 47 5f 50 45 45 4b |f%..... |MSG_PEEK|
|000022c0| 20 2b 20 4d 53 47 5f 44 | 4f 4e 54 57 41 49 54 0d | + MSG_D|ONTWAIT.|
|000022d0| 09 d8 3f c8 99 20 22 58 | 53 6f 63 6b 65 74 5f 52 |..?.. "X|Socket_R|
|000022e0| 65 63 76 22 2c 73 6f 63 | 6b 25 28 73 6f 63 6b 25 |ecv",soc|k%(sock%|
|000022f0| 29 21 30 2c 73 6f 63 6b | 74 65 6d 70 25 2c 31 2c |)!0,sock|temp%,1,|
|00002300| 26 32 2b 26 38 30 20 b8 | 20 6f 6b 3b 66 25 0d 09 |&2+&80 .| ok;f%..|
|00002310| e2 0f e7 20 28 66 25 20 | 80 31 29 20 8c 0d 09 ec |... (f% |.1) ....|
|00002320| 30 20 6f 6b 3d 21 6f 6b | 3a e7 20 6f 6b 3d 33 35 |0 ok=!ok|:. ok=35|
|00002330| 20 8c 6f 6b 3d b9 20 8b | e7 20 6f 6b 3d 33 36 20 | .ok=. .|. ok=36 |
|00002340| 84 20 6f 6b 3d 35 37 20 | 8c 6f 6b 3d a3 0d 09 f6 |. ok=57 |.ok=....|
|00002350| 05 cc 0d 0a 00 09 20 6f | 6b 3d b9 0d 0a 0a 05 cd |...... o|k=......|
|00002360| 0d 0a 14 07 3d 6f 6b 0d | 0a 1e 05 3a 0d 0a 28 2f |....=ok.|...:..(/|
|00002370| f4 20 46 4e 73 6f 63 6b | 65 74 5f 72 65 61 64 64 |. FNsock|et_readd|
|00002380| 61 74 61 20 3a 20 52 65 | 61 64 20 64 61 74 61 20 |ata : Re|ad data |
|00002390| 69 6e 74 6f 20 62 75 66 | 66 65 72 0d 0a 32 25 dd |into buf|fer..2%.|
|000023a0| a4 73 6f 63 6b 65 74 5f | 72 65 61 64 64 61 74 61 |.socket_|readdata|
|000023b0| 28 73 6f 63 6b 25 2c f8 | 20 73 74 61 72 74 25 29 |(sock%,.| start%)|
|000023c0| 0d 0a 3c 13 ea 20 72 65 | 61 64 25 3a 72 65 61 64 |..<.. re|ad%:read|
|000023d0| 25 3d 30 0d 0a 46 23 f2 | 73 6f 63 6b 65 74 5f 63 |%=0..F#.|socket_c|
|000023e0| 68 65 63 6b 28 73 6f 63 | 6b 25 2c 22 52 65 61 64 |heck(soc|k%,"Read|
|000023f0| 44 61 74 61 22 29 0d 0a | 50 44 f4 20 52 65 61 64 |Data")..|PD. Read|
|00002400| 20 64 61 74 61 20 66 72 | 6f 6d 20 73 6f 63 6b 65 | data fr|om socke|
|00002410| 74 20 74 6f 20 6f 75 72 | 20 62 75 66 66 65 72 20 |t to our| buffer |
|00002420| 69 66 20 62 75 66 66 65 | 72 65 64 2c 20 65 6c 73 |if buffe|red, els|
|00002430| 65 20 74 6f 20 75 73 65 | 72 73 0d 0a 5a 36 e7 20 |e to use|rs..Z6. |
|00002440| 28 28 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 21 26 |((sock%(|sock%)!&|
|00002450| 43 29 20 80 20 32 29 3d | 32 20 8c 73 74 61 72 74 |C) . 2)=|2 .start|
|00002460| 25 3d 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 21 34 |%=sock%(|sock%)!4|
|00002470| 0d 0a 64 79 e7 20 73 74 | 61 72 74 25 3c 26 38 30 |..dy. st|art%<&80|
|00002480| 30 30 20 8c 85 20 73 6f | 63 6b 65 72 72 25 2c 22 |00 .. so|ckerr%,"|
|00002490| 52 65 61 64 44 61 74 61 | 3a 20 53 74 75 70 69 64 |ReadData|: Stupid|
|000024a0| 20 61 64 64 72 65 73 73 | 20 66 6f 72 20 73 6f 63 | address| for soc|
|000024b0| 6b 65 74 5f 72 65 61 64 | 64 61 74 61 20 28 22 2b |ket_read|data ("+|
|000024c0| c3 7e 73 74 61 72 74 25 | 2b 22 29 2c 20 66 6c 61 |.~start%|+"), fla|
|000024d0| 67 73 20 3d 20 22 2b c3 | 28 73 6f 63 6b 25 28 73 |gs = "+.|(sock%(s|
|000024e0| 6f 63 6b 25 29 21 26 43 | 29 0d 0a 6e 21 e7 20 a4 |ock%)!&C|)..n!. .|
|000024f0| 73 6f 63 6b 65 74 5f 69 | 6e 62 75 66 66 65 72 28 |socket_i|nbuffer(|
|00002500| 73 6f 63 6b 25 29 3e 30 | 20 8c 0d 0a 78 3f 20 c8 |sock%)>0| ...x? .|
|00002510| 99 20 22 53 6f 63 6b 65 | 74 5f 52 65 61 64 22 2c |. "Socke|t_Read",|
|00002520| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 30 2c 73 |sock%(so|ck%)!0,s|
|00002530| 74 61 72 74 25 2c 73 6f | 63 6b 62 75 66 6c 65 6e |tart%,so|ckbuflen|
|00002540| 25 20 b8 20 72 65 61 64 | 25 0d 0a 82 05 cd 0d 0a |% . read|%.......|
|00002550| 8c 0a 3d 72 65 61 64 25 | 0d 0a 96 05 3a 0d 0a a0 |..=read%|....:...|
|00002560| 3d f4 20 46 4e 73 6f 63 | 6b 65 74 5f 72 65 61 64 |=. FNsoc|ket_read|
|00002570| 6c 69 6e 65 20 3a 20 52 | 65 61 64 20 61 20 6c 69 |line : R|ead a li|
|00002580| 6e 65 20 69 6e 74 6f 20 | 61 20 74 65 6d 70 6f 72 |ne into |a tempor|
|00002590| 61 72 79 20 62 75 66 66 | 65 72 0d 0a aa 39 f4 20 |ary buff|er...9. |
|000025a0| 4c 69 6e 65 20 77 69 6c | 6c 20 62 65 20 69 6e 20 |Line wil|l be in |
|000025b0| 61 20 74 65 6d 70 6f 72 | 61 72 79 20 62 75 66 66 |a tempor|ary buff|
|000025c0| 65 72 2c 20 74 65 72 6d | 69 6e 61 74 65 64 20 62 |er, term|inated b|
|000025d0| 79 20 30 0d 0a b4 3f f4 | 20 2d 31 20 77 69 6c 6c |y 0...?.| -1 will|
|000025e0| 20 62 65 20 72 65 74 75 | 72 6e 65 64 20 69 66 20 | be retu|rned if |
|000025f0| 6e 6f 20 63 6f 6d 70 6c | 65 74 65 20 6c 69 6e 65 |no compl|ete line|
|00002600| 20 68 61 73 20 62 65 65 | 6e 20 72 65 63 65 69 76 | has bee|n receiv|
|00002610| 65 64 0d 0a be 25 dd a4 | 73 6f 63 6b 65 74 5f 72 |ed...%..|socket_r|
|00002620| 65 61 64 6c 69 6e 65 28 | 73 6f 63 6b 25 2c f8 20 |eadline(|sock%,. |
|00002630| 73 74 61 72 74 25 29 0d | 0a c8 1b ea 20 62 75 66 |start%).|.... buf|
|00002640| 25 2c 6f 66 73 25 2c 49 | 25 2c 4f 25 2c 72 65 61 |%,ofs%,I|%,O%,rea|
|00002650| 64 25 0d 0a d2 23 f2 73 | 6f 63 6b 65 74 5f 63 68 |d%...#.s|ocket_ch|
|00002660| 65 63 6b 28 73 6f 63 6b | 25 2c 22 52 65 61 64 4c |eck(sock|%,"ReadL|
|00002670| 69 6e 65 22 29 0d 0a dc | 5c e7 20 28 73 6f 63 6b |ine")...|\. (sock|
|00002680| 25 28 73 6f 63 6b 25 29 | 21 26 43 20 80 20 32 29 |%(sock%)|!&C . 2)|
|00002690| 3d 30 20 8c 85 20 73 6f | 63 6b 65 72 72 25 2c 22 |=0 .. so|ckerr%,"|
|000026a0| 52 65 61 64 4c 69 6e 65 | 3a 20 4e 6f 6e 2d 62 75 |ReadLine|: Non-bu|
|000026b0| 66 66 65 72 65 64 20 73 | 6f 63 6b 65 74 5f 72 65 |ffered s|ocket_re|
|000026c0| 61 64 6c 69 6e 65 20 61 | 74 74 65 6d 70 74 65 64 |adline a|ttempted|
|000026d0| 22 0d 0a e6 0d 73 74 61 | 72 74 25 3d 2d 31 0d 0a |"....sta|rt%=-1..|
|000026e0| f0 29 f4 20 52 65 61 64 | 20 64 61 74 61 20 66 72 |.). Read| data fr|
|000026f0| 6f 6d 20 73 6f 63 6b 65 | 74 20 74 6f 20 6f 75 72 |om socke|t to our|
|00002700| 20 62 75 66 66 65 72 0d | 0a fa 2b 62 75 66 25 3d | buffer.|..+buf%=|
|00002710| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 34 3a 6f |sock%(so|ck%)!4:o|
|00002720| 66 73 25 3d 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |fs%=sock|%(sock%)|
|00002730| 21 38 0d 0b 04 21 e7 20 | a4 73 6f 63 6b 65 74 5f |!8...!. |.socket_|
|00002740| 69 6e 62 75 66 66 65 72 | 28 73 6f 63 6b 25 29 3e |inbuffer|(sock%)>|
|00002750| 30 20 8c 0d 0b 0e 5b 20 | e7 20 62 75 66 25 3c 26 |0 ....[ |. buf%<&|
|00002760| 38 30 30 30 20 8c 85 20 | 73 6f 63 6b 65 72 72 25 |8000 .. |sockerr%|
|00002770| 2c 22 52 65 61 64 4c 69 | 6e 65 3a 20 53 74 75 70 |,"ReadLi|ne: Stup|
|00002780| 69 64 20 61 64 64 72 65 | 73 73 20 66 6f 72 20 73 |id addre|ss for s|
|00002790| 6f 63 6b 65 74 5f 72 65 | 61 64 6c 69 6e 65 20 28 |ocket_re|adline (|
|000027a0| 22 2b c3 7e 73 74 61 72 | 74 25 2b 22 29 22 0d 0b |"+.~star|t%+")"..|
|000027b0| 18 47 20 c8 99 20 22 53 | 6f 63 6b 65 74 5f 52 65 |.G .. "S|ocket_Re|
|000027c0| 61 64 22 2c 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |ad",sock|%(sock%)|
|000027d0| 21 30 2c 62 75 66 25 2b | 6f 66 73 25 2c 73 6f 63 |!0,buf%+|ofs%,soc|
|000027e0| 6b 62 75 66 6c 65 6e 25 | 2d 6f 66 73 25 20 b8 20 |kbuflen%|-ofs% . |
|000027f0| 72 65 61 64 25 0d 0b 22 | 45 20 e7 20 72 65 61 64 |read%.."|E . read|
|00002800| 25 3c 31 20 8c 85 20 73 | 6f 63 6b 65 72 72 25 2c |%<1 .. s|ockerr%,|
|00002810| 22 52 65 61 64 4c 69 6e | 65 3a 20 44 69 64 6e 27 |"ReadLin|e: Didn'|
|00002820| 74 20 72 65 61 64 20 61 | 6e 79 74 68 69 6e 67 20 |t read a|nything |
|00002830| 3f 20 22 2b c3 72 65 61 | 64 25 0d 0b 2c 14 20 6f |? "+.rea|d%..,. o|
|00002840| 66 73 25 3d 6f 66 73 25 | 2b 72 65 61 64 25 0d 0b |fs%=ofs%|+read%..|
|00002850| 36 05 cd 0d 0b 40 11 e7 | 20 6f 66 73 25 3d 30 20 |6....@..| ofs%=0 |
|00002860| 8c 3d 2d 31 0d 0b 4a 12 | e3 20 49 25 3d 30 b8 20 |.=-1..J.|. I%=0. |
|00002870| 6f 66 73 25 2d 31 0d 0b | 54 1c 20 e7 20 62 75 66 |ofs%-1..|T. . buf|
|00002880| 25 3f 49 25 3d 30 20 8c | 62 75 66 25 3f 49 25 3d |%?I%=0 .|buf%?I%=|
|00002890| 31 33 0d 0b 5e 20 20 e7 | 20 62 75 66 25 3f 49 25 |13..^ .| buf%?I%|
|000028a0| 3d 31 30 20 84 20 62 75 | 66 25 3f 49 25 3d 31 33 |=10 . bu|f%?I%=13|
|000028b0| 20 8c 0d 0b 68 29 20 20 | f4 20 43 6f 70 79 20 6c | ...h) |. Copy l|
|000028c0| 69 6e 65 20 74 6f 20 62 | 75 66 66 65 72 20 61 6e |ine to b|uffer an|
|000028d0| 64 20 74 65 72 6d 69 6e | 61 74 65 0d 0b 72 25 20 |d termin|ate..r% |
|000028e0| 20 e3 4f 25 3d 30 b8 49 | 25 3a 73 6f 63 6b 6c 69 | .O%=0.I|%:sockli|
|000028f0| 6e 65 25 3f 4f 25 3d 62 | 75 66 25 3f 4f 25 3a ed |ne%?O%=b|uf%?O%:.|
|00002900| 0d 0b 7c 14 20 20 73 6f | 63 6b 6c 69 6e 65 25 3f |..|. so|ckline%?|
|00002910| 49 25 3d 30 0d 0b 86 33 | 20 20 f4 20 43 6f 70 79 |I%=0...3| . Copy|
|00002920| 20 72 65 6d 61 69 6e 64 | 65 72 20 6f 66 20 62 75 | remaind|er of bu|
|00002930| 66 66 65 72 20 74 6f 20 | 73 74 61 72 74 20 6f 66 |ffer to |start of|
|00002940| 20 62 75 66 66 65 72 0d | 0b 90 30 20 20 e3 4f 25 | buffer.|..0 .O%|
|00002950| 3d 49 25 2b 31 20 b8 20 | 6f 66 73 25 2d 31 3a 62 |=I%+1 . |ofs%-1:b|
|00002960| 75 66 25 3f 28 4f 25 2d | 49 25 2d 31 29 3d 62 75 |uf%?(O%-|I%-1)=bu|
|00002970| 66 25 3f 4f 25 3a ed 0d | 0b 9a 24 20 20 6f 66 73 |f%?O%:..|..$ ofs|
|00002980| 25 2d 3d 49 25 2b 31 3a | 73 6f 63 6b 25 28 73 6f |%-=I%+1:|sock%(so|
|00002990| 63 6b 25 29 21 38 3d 6f | 66 73 25 0d 0b a4 25 20 |ck%)!8=o|fs%...% |
|000029a0| 20 f4 20 52 65 74 75 72 | 6e 20 77 69 74 68 20 62 | . Retur|n with b|
|000029b0| 75 66 66 65 72 20 61 6e | 64 20 6c 65 6e 67 74 68 |uffer an|d length|
|000029c0| 0d 0b ae 1c 20 20 73 74 | 61 72 74 25 3d 73 6f 63 |.... st|art%=soc|
|000029d0| 6b 6c 69 6e 65 25 3a 3d | 49 25 2b 31 0d 0b b8 06 |kline%:=|I%+1....|
|000029e0| 20 cd 0d 0b c2 05 ed 0d | 0b cc 17 73 6f 63 6b 25 | .......|...sock%|
|000029f0| 28 73 6f 63 6b 25 29 21 | 38 3d 6f 66 73 25 0d 0b |(sock%)!|8=ofs%..|
|00002a00| d6 07 3d 2d 31 0d 0b e0 | 05 3a 0d 0b ea 35 f4 20 |..=-1...|.:...5. |
|00002a10| 50 52 4f 43 73 6f 63 6b | 65 74 5f 73 65 6e 64 6c |PROCsock|et_sendl|
|00002a20| 69 6e 65 20 3a 20 53 65 | 6e 64 20 61 20 73 74 72 |ine : Se|nd a str|
|00002a30| 69 6e 67 20 74 6f 20 61 | 20 73 6f 63 6b 65 74 0d |ing to a| socket.|
|00002a40| 0b f4 1f dd f2 73 6f 63 | 6b 65 74 5f 73 65 6e 64 |.....soc|ket_send|
|00002a50| 6c 69 6e 65 28 73 6f 63 | 6b 25 2c 6d 24 29 0d 0b |line(soc|k%,m$)..|
|00002a60| fe 0f ea 20 72 30 2c 66 | 6c 61 67 73 25 0d 0c 08 |... r0,f|lags%...|
|00002a70| 23 f2 73 6f 63 6b 65 74 | 5f 63 68 65 63 6b 28 73 |#.socket|_check(s|
|00002a80| 6f 63 6b 25 2c 22 53 65 | 6e 64 4c 69 6e 65 22 29 |ock%,"Se|ndLine")|
|00002a90| 0d 0c 12 17 24 28 73 6f | 63 6b 74 65 6d 70 25 29 |....$(so|cktemp%)|
|00002aa0| 3d 6d 24 2b bd 31 30 0d | 0c 1c 42 c8 99 20 22 58 |=m$+.10.|..B.. "X|
|00002ab0| 53 6f 63 6b 65 74 5f 57 | 72 69 74 65 22 2c 73 6f |Socket_W|rite",so|
|00002ac0| 63 6b 25 28 73 6f 63 6b | 25 29 21 30 2c 73 6f 63 |ck%(sock|%)!0,soc|
|00002ad0| 6b 74 65 6d 70 25 2c a9 | 28 6d 24 29 2b 31 20 b8 |ktemp%,.|(m$)+1 .|
|00002ae0| 72 30 3b 66 6c 61 67 73 | 25 0d 0c 26 46 f4 20 49 |r0;flags|%..&F. I|
|00002af0| 46 20 28 66 6c 61 67 73 | 25 20 41 4e 44 20 31 29 |F (flags|% AND 1)|
|00002b00| 3d 31 20 54 48 45 4e 45 | 52 52 4f 52 20 73 6f 63 |=1 THENE|RROR soc|
|00002b10| 6b 65 72 72 25 2c 22 57 | 72 69 74 65 3a 20 22 2b |kerr%,"W|rite: "+|
|00002b20| 46 4e 73 74 72 69 6e 67 | 30 28 72 30 2b 34 29 0d |FNstring|0(r0+4).|
|00002b30| 0c 30 43 f4 20 49 46 20 | 72 30 3c 3e 4c 45 4e 28 |.0C. IF |r0<>LEN(|
|00002b40| 6d 24 29 2b 31 20 54 48 | 45 4e 45 52 52 4f 52 20 |m$)+1 TH|ENERROR |
|00002b50| 73 6f 63 6b 65 72 72 25 | 2c 22 43 6f 75 6c 64 20 |sockerr%|,"Could |
|00002b60| 6e 6f 74 20 73 65 6e 64 | 20 61 6c 6c 20 64 61 74 |not send| all dat|
|00002b70| 61 22 0d 0c 3a 05 e1 0d | 0c 44 05 3a 0d 0c 4e 31 |a"..:...|.D.:..N1|
|00002b80| f4 20 50 52 4f 43 73 6f | 63 6b 65 74 5f 73 65 6e |. PROCso|cket_sen|
|00002b90| 64 64 61 74 61 20 3a 20 | 53 65 6e 64 20 64 61 74 |ddata : |Send dat|
|00002ba0| 61 20 74 6f 20 61 20 73 | 6f 63 6b 65 74 0d 0c 58 |a to a s|ocket..X|
|00002bb0| 24 dd f2 73 6f 63 6b 65 | 74 5f 73 65 6e 64 64 61 |$..socke|t_sendda|
|00002bc0| 74 61 28 73 6f 63 6b 25 | 2c 62 25 2c 6c 65 6e 25 |ta(sock%|,b%,len%|
|00002bd0| 29 0d 0c 62 0f ea 20 72 | 30 2c 66 6c 61 67 73 25 |)..b.. r|0,flags%|
|00002be0| 0d 0c 6c 23 f2 73 6f 63 | 6b 65 74 5f 63 68 65 63 |..l#.soc|ket_chec|
|00002bf0| 6b 28 73 6f 63 6b 25 2c | 22 53 65 6e 64 44 61 74 |k(sock%,|"SendDat|
|00002c00| 61 22 29 0d 0c 76 38 c8 | 99 20 22 58 53 6f 63 6b |a")..v8.|. "XSock|
|00002c10| 65 74 5f 57 72 69 74 65 | 22 2c 73 6f 63 6b 25 28 |et_Write|",sock%(|
|00002c20| 73 6f 63 6b 25 29 21 30 | 2c 62 25 2c 6c 65 6e 25 |sock%)!0|,b%,len%|
|00002c30| 20 b8 72 30 3b 66 6c 61 | 67 73 25 0d 0c 80 46 f4 | .r0;fla|gs%...F.|
|00002c40| 20 49 46 20 28 66 6c 61 | 67 73 25 20 41 4e 44 20 | IF (fla|gs% AND |
|00002c50| 31 29 3d 31 20 54 48 45 | 4e 45 52 52 4f 52 20 73 |1)=1 THE|NERROR s|
|00002c60| 6f 63 6b 65 72 72 25 2c | 22 57 72 69 74 65 3a 20 |ockerr%,|"Write: |
|00002c70| 22 2b 46 4e 73 74 72 69 | 6e 67 30 28 72 30 2b 34 |"+FNstri|ng0(r0+4|
|00002c80| 29 0d 0c 8a 05 e1 0d 0c | 94 05 3a 0d 0c 9e 3b f4 |).......|..:...;.|
|00002c90| 20 46 4e 73 6f 63 6b 65 | 74 5f 67 65 74 70 65 65 | FNsocke|t_getpee|
|00002ca0| 72 6e 61 6d 65 20 3a 20 | 52 65 61 64 20 74 68 65 |rname : |Read the|
|00002cb0| 20 6e 61 6d 65 20 6f 66 | 20 74 68 65 20 6f 74 68 | name of| the oth|
|00002cc0| 65 72 20 65 6e 64 0d 0c | a8 1f dd a4 73 6f 63 6b |er end..|....sock|
|00002cd0| 65 74 5f 67 65 74 70 65 | 65 72 6e 61 6d 65 28 73 |et_getpe|ername(s|
|00002ce0| 6f 63 6b 25 29 0d 0c b2 | 0b ea 20 72 30 2c 72 31 |ock%)...|.. r0,r1|
|00002cf0| 0d 0c bc 26 f2 73 6f 63 | 6b 65 74 5f 63 68 65 63 |...&.soc|ket_chec|
|00002d00| 6b 28 73 6f 63 6b 25 2c | 22 47 65 74 50 65 65 72 |k(sock%,|"GetPeer|
|00002d10| 4e 61 6d 65 22 29 0d 0c | c6 11 21 73 6f 63 6b 74 |Name")..|..!sockt|
|00002d20| 65 6d 70 25 3d 31 36 0d | 0c d0 3e c8 99 20 22 53 |emp%=16.|..>.. "S|
|00002d30| 6f 63 6b 65 74 5f 47 65 | 74 70 65 65 72 6e 61 6d |ocket_Ge|tpeernam|
|00002d40| 65 22 2c 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 |e",sock%|(sock%)!|
|00002d50| 30 2c 73 6f 63 6b 61 64 | 64 72 25 2c 73 6f 63 6b |0,sockad|dr%,sock|
|00002d60| 74 65 6d 70 25 0d 0c da | 1f f4 20 22 58 49 6e 74 |temp%...|.. "XInt|
|00002d70| 65 72 6e 65 74 5f 47 65 | 74 48 6f 73 74 42 79 41 |ernet_Ge|tHostByA|
|00002d80| 64 64 72 22 0d 0c e4 32 | c8 99 20 26 36 36 30 30 |ddr"...2|.. &6600|
|00002d90| 31 2c 30 2c 73 6f 63 6b | 61 64 64 72 25 2b 34 2c |1,0,sock|addr%+4,|
|00002da0| 34 2c 41 46 5f 49 4e 45 | 54 20 b8 20 2c 72 31 3b |4,AF_INE|T . ,r1;|
|00002db0| 66 6c 61 67 73 25 0d 0c | ee 2b e7 20 28 66 6c 61 |flags%..|.+. (fla|
|00002dc0| 67 73 25 20 80 31 29 3d | 30 20 80 20 72 31 3c 3e |gs% .1)=|0 . r1<>|
|00002dd0| 30 20 8c 3d a4 73 74 72 | 69 6e 67 30 28 21 72 31 |0 .=.str|ing0(!r1|
|00002de0| 29 0d 0c f8 4c 3d c3 28 | 73 6f 63 6b 61 64 64 72 |)...L=.(|sockaddr|
|00002df0| 25 3f 34 29 2b 22 2e 22 | 2b c3 28 73 6f 63 6b 61 |%?4)+"."|+.(socka|
|00002e00| 64 64 72 25 3f 35 29 2b | 22 2e 22 2b c3 28 73 6f |ddr%?5)+|"."+.(so|
|00002e10| 63 6b 61 64 64 72 25 3f | 36 29 2b 22 2e 22 2b c3 |ckaddr%?|6)+"."+.|
|00002e20| 28 73 6f 63 6b 61 64 64 | 72 25 3f 37 29 0d 0d 02 |(sockadd|r%?7)...|
|00002e30| 05 3a 0d 0d 0c 41 f4 20 | 2a 2a 2a 2a 2a 2a 2a 2a |.:...A. |********|
|00002e40| 2a 2a 2a 2a 2a 2a 2a 2a | 20 48 6f 73 74 20 61 6e |********| Host an|
|00002e50| 64 20 73 65 72 76 69 63 | 65 20 73 70 65 63 69 66 |d servic|e specif|
|00002e60| 69 63 20 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |ic *****|********|
|00002e70| 2a 2a 2a 0d 0d 16 05 3a | 0d 0d 20 3c f4 20 46 4e |***....:|.. <. FN|
|00002e80| 69 6e 65 74 5f 67 65 74 | 73 65 72 76 62 79 6e 61 |inet_get|servbyna|
|00002e90| 6d 65 20 3a 20 52 65 61 | 64 20 74 68 65 20 70 6f |me : Rea|d the po|
|00002ea0| 72 74 20 66 72 6f 6d 20 | 73 65 72 76 69 63 65 20 |rt from |service |
|00002eb0| 6e 61 6d 65 0d 0d 2a 26 | dd a4 69 6e 65 74 5f 67 |name..*&|..inet_g|
|00002ec0| 65 74 73 65 72 76 62 79 | 6e 61 6d 65 28 6e 61 6d |etservby|name(nam|
|00002ed0| 65 24 2c 70 72 6f 74 6f | 24 29 0d 0d 34 14 ea 20 |e$,proto|$)..4.. |
|00002ee0| 73 65 72 76 65 6e 74 25 | 2c 70 6f 72 74 25 0d 0d |servent%|,port%..|
|00002ef0| 3e 1c e7 20 bb 28 6e 61 | 6d 65 24 29 3c 3e 30 20 |>.. .(na|me$)<>0 |
|00002f00| 8c 3d bb 28 6e 61 6d 65 | 24 29 0d 0d 48 3b c8 99 |.=.(name|$)..H;..|
|00002f10| 20 22 49 6e 74 65 72 6e | 65 74 5f 47 65 74 53 65 | "Intern|et_GetSe|
|00002f20| 72 76 69 63 65 42 79 4e | 61 6d 65 22 2c 6e 61 6d |rviceByN|ame",nam|
|00002f30| 65 24 2c 70 72 6f 74 6f | 24 20 b8 20 2c 73 65 72 |e$,proto|$ . ,ser|
|00002f40| 76 65 6e 74 25 0d 0d 52 | 2b e7 20 73 65 72 76 65 |vent%..R|+. serve|
|00002f50| 6e 74 25 3d 30 20 8c 70 | 6f 72 74 25 3d 30 20 8b |nt%=0 .p|ort%=0 .|
|00002f60| 70 6f 72 74 25 3d 73 65 | 72 76 65 6e 74 25 21 38 |port%=se|rvent%!8|
|00002f70| 0d 0d 5c 0a 3d 70 6f 72 | 74 25 0d 0d 66 05 3a 0d |..\.=por|t%..f.:.|
|00002f80| 0d 70 3c f4 20 46 4e 69 | 6e 65 74 5f 67 65 74 73 |.p<. FNi|net_gets|
|00002f90| 65 72 76 62 79 70 6f 72 | 74 20 3a 20 52 65 61 64 |ervbypor|t : Read|
|00002fa0| 20 74 68 65 20 73 65 72 | 76 69 63 65 20 6e 61 6d | the ser|vice nam|
|00002fb0| 65 20 66 72 6f 6d 20 70 | 6f 72 74 0d 0d 7a 26 dd |e from p|ort..z&.|
|00002fc0| a4 69 6e 65 74 5f 67 65 | 74 73 65 72 76 62 79 70 |.inet_ge|tservbyp|
|00002fd0| 6f 72 74 28 70 6f 72 74 | 25 2c 70 72 6f 74 6f 24 |ort(port|%,proto$|
|00002fe0| 29 0d 0d 84 23 ea 20 73 | 65 72 76 65 6e 74 25 2c |)...#. s|ervent%,|
|00002ff0| 73 24 3a 70 6f 72 74 25 | 3d 70 6f 72 74 25 80 26 |s$:port%|=port%.&|
|00003000| 46 46 46 46 0d 0d 8e 3b | c8 99 20 22 49 6e 74 65 |FFFF...;|.. "Inte|
|00003010| 72 6e 65 74 5f 47 65 74 | 53 65 72 76 69 63 65 42 |rnet_Get|ServiceB|
|00003020| 79 50 6f 72 74 22 2c 70 | 6f 72 74 25 2c 70 72 6f |yPort",p|ort%,pro|
|00003030| 74 6f 24 20 b8 20 2c 73 | 65 72 76 65 6e 74 25 0d |to$ . ,s|ervent%.|
|00003040| 0d 98 33 e7 20 73 65 72 | 76 65 6e 74 25 3d 30 20 |..3. ser|vent%=0 |
|00003050| 8c 73 24 3d c3 70 6f 72 | 74 25 20 8b 73 24 3d a4 |.s$=.por|t% .s$=.|
|00003060| 73 74 72 69 6e 67 30 28 | 21 73 65 72 76 65 6e 74 |string0(|!servent|
|00003070| 25 29 0d 0d a2 07 3d 73 | 24 0d 0d ac 05 3a 0d 0d |%)....=s|$....:..|
|00003080| b6 39 f4 20 46 4e 69 6e | 65 74 5f 67 65 74 68 6f |.9. FNin|et_getho|
|00003090| 73 74 62 79 6e 61 6d 65 | 20 3a 20 52 65 74 75 72 |stbyname| : Retur|
|000030a0| 6e 20 61 64 64 72 65 73 | 73 20 6f 66 20 6e 61 6d |n addres|s of nam|
|000030b0| 65 64 20 68 6f 73 74 0d | 0d c0 1f dd a4 69 6e 65 |ed host.|.....ine|
|000030c0| 74 5f 67 65 74 68 6f 73 | 74 62 79 6e 61 6d 65 28 |t_gethos|tbyname(|
|000030d0| 68 6f 73 74 24 29 0d 0d | ca 11 ea 20 70 74 72 25 |host$)..|... ptr%|
|000030e0| 2c 66 6c 61 67 73 25 0d | 0d d4 1f f4 20 22 58 49 |,flags%.|.... "XI|
|000030f0| 6e 74 65 72 6e 65 74 5f | 47 65 74 48 6f 73 74 42 |nternet_|GetHostB|
|00003100| 79 4e 61 6d 65 22 0d 0d | de 23 c8 99 20 26 36 36 |yName"..|.#.. &66|
|00003110| 30 30 30 2c 30 2c 68 6f | 73 74 24 20 b8 2c 70 74 |000,0,ho|st$ .,pt|
|00003120| 72 25 3b 66 6c 61 67 73 | 25 0d 0d e8 21 e7 20 70 |r%;flags|%...!. p|
|00003130| 74 72 25 3d 30 20 84 20 | 28 66 6c 61 67 73 25 20 |tr%=0 . |(flags% |
|00003140| 80 20 31 29 3d 31 20 8c | 3d 30 0d 0d f2 31 3d 21 |. 1)=1 .|=0...1=!|
|00003150| 21 28 70 74 72 25 21 31 | 36 29 3a f4 20 59 65 73 |!(ptr%!1|6):. Yes|
|00003160| 2c 20 74 68 61 74 20 69 | 73 20 72 69 67 68 74 2c |, that i|s right,|
|00003170| 20 68 6f 6e 65 73 74 20 | 3b 2d 29 0d 0d fc 05 3a | honest |;-)....:|
|00003180| 0d 0e 06 43 f4 20 46 4e | 69 6e 65 74 5f 67 65 74 |...C. FN|inet_get|
|00003190| 68 6f 73 74 62 79 61 64 | 64 72 20 3a 20 52 65 74 |hostbyad|dr : Ret|
|000031a0| 75 72 6e 20 6e 61 6d 65 | 20 6f 66 20 68 6f 73 74 |urn name| of host|
|000031b0| 20 77 69 74 68 20 67 69 | 76 65 6e 20 61 64 64 72 | with gi|ven addr|
|000031c0| 65 73 73 0d 0e 10 1f dd | a4 69 6e 65 74 5f 67 65 |ess.....|.inet_ge|
|000031d0| 74 68 6f 73 74 62 79 61 | 64 64 72 28 61 64 64 72 |thostbya|ddr(addr|
|000031e0| 25 29 0d 0e 1a 22 ea 20 | 70 74 72 25 2c 66 6c 61 |%)...". |ptr%,fla|
|000031f0| 67 73 25 3a 21 73 6f 63 | 6b 74 65 6d 70 25 3d 61 |gs%:!soc|ktemp%=a|
|00003200| 64 64 72 25 0d 0e 24 1f | f4 20 22 58 49 6e 74 65 |ddr%..$.|. "XInte|
|00003210| 72 6e 65 74 5f 47 65 74 | 48 6f 73 74 42 79 41 64 |rnet_Get|HostByAd|
|00003220| 64 72 22 0d 0e 2e 32 c8 | 99 20 26 36 36 30 30 31 |dr"...2.|. &66001|
|00003230| 2c 30 2c 73 6f 63 6b 74 | 65 6d 70 25 2c 34 2c 41 |,0,sockt|emp%,4,A|
|00003240| 46 5f 49 4e 45 54 20 b8 | 72 2c 70 74 72 25 3b 66 |F_INET .|r,ptr%;f|
|00003250| 6c 61 67 73 25 0d 0e 38 | 2f f4 20 49 46 20 28 66 |lags%..8|/. IF (f|
|00003260| 6c 61 67 73 25 20 41 4e | 44 20 31 29 20 54 48 45 |lags% AN|D 1) THE|
|00003270| 4e 50 52 49 4e 54 46 4e | 73 74 72 69 6e 67 30 28 |NPRINTFN|string0(|
|00003280| 72 2b 34 29 0d 0e 42 67 | e7 20 70 74 72 25 3d 30 |r+4)..Bg|. ptr%=0|
|00003290| 20 84 20 28 66 6c 61 67 | 73 25 20 80 20 31 29 3d | . (flag|s% . 1)=|
|000032a0| 31 20 8c 3d c3 28 73 6f | 63 6b 74 65 6d 70 25 3f |1 .=.(so|cktemp%?|
|000032b0| 30 29 2b 22 2e 22 2b c3 | 28 73 6f 63 6b 74 65 6d |0)+"."+.|(socktem|
|000032c0| 70 25 3f 31 29 2b 22 2e | 22 2b c3 28 73 6f 63 6b |p%?1)+".|"+.(sock|
|000032d0| 74 65 6d 70 25 3f 32 29 | 2b 22 2e 22 2b c3 28 73 |temp%?2)|+"."+.(s|
|000032e0| 6f 63 6b 74 65 6d 70 25 | 3f 33 29 0d 0e 4c 14 3d |ocktemp%|?3)..L.=|
|000032f0| a4 73 74 72 69 6e 67 30 | 28 21 70 74 72 25 29 0d |.string0|(!ptr%).|
|00003300| 0e 56 05 3a 0d 0e 60 37 | f4 20 46 4e 69 6e 65 74 |.V.:..`7|. FNinet|
|00003310| 5f 63 72 65 61 74 65 73 | 65 72 76 6d 65 6e 75 20 |_creates|ervmenu |
|00003320| 3a 20 43 72 65 61 74 65 | 20 61 20 6d 65 6e 75 20 |: Create| a menu |
|00003330| 6f 66 20 73 65 72 76 69 | 63 65 73 0d 0e 6a 27 dd |of servi|ces..j'.|
|00003340| a4 69 6e 65 74 5f 63 72 | 65 61 74 65 73 65 72 76 |.inet_cr|eateserv|
|00003350| 6d 65 6e 75 28 6e 61 6d | 65 24 2c 70 72 6f 74 6f |menu(nam|e$,proto|
|00003360| 24 29 0d 0e 74 0b ea 20 | 6d 65 6e 75 25 0d 0e 7e |$)..t.. |menu%..~|
|00003370| 11 e7 20 70 72 6f 74 6f | 24 3d 22 22 20 8c 0d 0e |.. proto|$="" ...|
|00003380| 88 32 20 c8 99 20 22 49 | 6e 74 65 72 6e 65 74 5f |.2 .. "I|nternet_|
|00003390| 47 65 74 53 65 72 76 69 | 63 65 73 4d 65 6e 75 22 |GetServi|cesMenu"|
|000033a0| 2c 6e 61 6d 65 24 2c 30 | 20 b8 20 6d 65 6e 75 25 |,name$,0| . menu%|
|000033b0| 0d 0e 92 05 cc 0d 0e 9c | 37 20 c8 99 20 22 49 6e |........|7 .. "In|
|000033c0| 74 65 72 6e 65 74 5f 47 | 65 74 53 65 72 76 69 63 |ternet_G|etServic|
|000033d0| 65 73 4d 65 6e 75 22 2c | 6e 61 6d 65 24 2c 70 72 |esMenu",|name$,pr|
|000033e0| 6f 74 6f 24 20 b8 20 6d | 65 6e 75 25 0d 0e a6 05 |oto$ . m|enu%....|
|000033f0| cd 0d 0e b0 0a 3d 6d 65 | 6e 75 25 0d 0e ba 05 3a |.....=me|nu%....:|
|00003400| 0d 0e c4 39 f4 20 46 4e | 69 6e 65 74 5f 64 65 63 |...9. FN|inet_dec|
|00003410| 6f 64 65 65 72 72 6f 72 | 20 3a 20 44 65 63 6f 64 |odeerror| : Decod|
|00003420| 65 73 20 61 6e 20 65 72 | 72 6f 72 20 69 6e 74 6f |es an er|ror into|
|00003430| 20 61 20 73 74 72 69 6e | 67 0d 0e ce 1c dd a4 69 | a strin|g......i|
|00003440| 6e 65 74 5f 64 65 63 6f | 64 65 65 72 72 6f 72 28 |net_deco|deerror(|
|00003450| 65 72 72 25 29 0d 0e d8 | 2b ea 20 61 24 3a c8 99 |err%)...|+. a$:..|
|00003460| 20 22 49 6e 74 65 72 6e | 65 74 5f 44 65 63 6f 64 | "Intern|et_Decod|
|00003470| 65 45 72 72 6f 72 22 2c | 65 72 72 25 20 b8 61 24 |eError",|err% .a$|
|00003480| 0d 0e e2 07 3d 61 24 0d | 0e ec 05 3a 0d 0e f6 44 |....=a$.|...:...D|
|00003490| f4 20 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |. ******|********|
|000034a0| 2a 2a 2a 20 4d 75 6c 74 | 69 2d 74 61 73 6b 69 6e |*** Mult|i-taskin|
|000034b0| 67 20 52 65 73 6f 6c 76 | 65 72 20 73 74 75 66 66 |g Resolv|er stuff|
|000034c0| 20 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *******|********|
|000034d0| 0d 0f 00 05 3a 0d 0f 0a | 42 f4 20 46 4e 69 6e 65 |....:...|B. FNine|
|000034e0| 74 5f 6d 74 72 65 73 6f | 6c 76 65 72 20 3a 20 49 |t_mtreso|lver : I|
|000034f0| 73 20 74 68 65 72 65 20 | 4d 75 6c 74 69 74 61 73 |s there |Multitas|
|00003500| 6b 69 6e 67 20 72 65 73 | 6f 6c 76 65 72 20 70 72 |king res|olver pr|
|00003510| 65 73 65 6e 74 20 3f 0d | 0f 14 15 dd a4 69 6e 65 |esent ?.|.....ine|
|00003520| 74 5f 6d 74 72 65 73 6f | 6c 76 65 72 0d 0f 1e 11 |t_mtreso|lver....|
|00003530| ea 20 66 6c 61 67 73 25 | 2c 70 74 72 25 0d 0f 28 |. flags%|,ptr%..(|
|00003540| 34 c8 99 20 22 4f 53 5f | 4d 6f 64 75 6c 65 22 2c |4.. "OS_|Module",|
|00003550| 31 38 2c 22 44 4e 53 52 | 65 73 6f 6c 76 65 72 22 |18,"DNSR|esolver"|
|00003560| 20 b8 20 2c 2c 2c 70 74 | 72 25 3b 66 6c 61 67 73 | . ,,,pt|r%;flags|
|00003570| 25 0d 0f 32 16 e7 20 28 | 66 6c 61 67 73 25 20 80 |%..2.. (|flags% .|
|00003580| 20 31 29 3d 30 20 8c 0d | 0f 3c 2a 20 e7 20 bb 28 | 1)=0 ..|.<* . .(|
|00003590| a4 73 74 72 69 6e 67 30 | 28 28 70 74 72 25 21 31 |.string0|((ptr%!1|
|000035a0| 30 29 2b 31 33 29 29 3e | 3d 31 2e 30 33 20 8c 3d |0)+13))>|=1.03 .=|
|000035b0| b9 0d 0f 46 05 cd 0d 0f | 50 06 3d a3 0d 0f 5a 05 |...F....|P.=...Z.|
|000035c0| 3a 0d 0f 64 44 f4 20 46 | 4e 69 6e 65 74 5f 73 74 |:..dD. F|Ninet_st|
|000035d0| 61 72 74 6d 74 67 65 74 | 68 6f 73 74 62 79 6e 61 |artmtget|hostbyna|
|000035e0| 6d 65 20 3a 20 53 74 61 | 72 74 20 61 20 6d 75 6c |me : Sta|rt a mul|
|000035f0| 74 69 74 61 73 6b 69 6e | 67 20 6e 61 6d 65 20 6c |titaskin|g name l|
|00003600| 6f 6f 6b 75 70 0d 0f 6e | 32 f4 20 52 65 74 75 72 |ookup..n|2. Retur|
|00003610| 6e 73 20 68 61 6e 64 6c | 65 20 69 66 20 74 68 69 |ns handl|e if thi|
|00003620| 73 20 73 75 63 63 65 65 | 64 65 64 20 69 6e 20 73 |s succee|ded in s|
|00003630| 74 61 72 74 69 6e 67 0d | 0f 78 26 dd a4 69 6e 65 |tarting.|.x&..ine|
|00003640| 74 5f 73 74 61 72 74 6d | 74 67 65 74 68 6f 73 74 |t_startm|tgethost|
|00003650| 62 79 6e 61 6d 65 28 68 | 6f 73 74 24 29 0d 0f 82 |byname(h|ost$)...|
|00003660| 11 ea 20 70 74 72 25 2c | 66 6c 61 67 73 25 0d 0f |.. ptr%,|flags%..|
|00003670| 8c 38 c8 99 20 22 58 44 | 4e 53 52 65 73 6f 6c 76 |.8.. "XD|NSResolv|
|00003680| 65 72 5f 4d 54 47 65 74 | 48 6f 73 74 42 79 4e 61 |er_MTGet|HostByNa|
|00003690| 6d 65 22 2c 68 6f 73 74 | 24 20 b8 70 74 72 25 3b |me",host|$ .ptr%;|
|000036a0| 66 6c 61 67 73 25 0d 0f | 96 18 e7 20 28 66 6c 61 |flags%..|... (fla|
|000036b0| 67 73 25 20 80 20 31 29 | 3d 31 20 8c 3d a3 0d 0f |gs% . 1)|=1 .=...|
|000036c0| a0 1c f4 20 48 6f 6f 6b | 20 75 73 20 69 6e 74 6f |... Hook| us into|
|000036d0| 20 74 68 65 20 63 68 61 | 69 6e 0d 0f aa 43 66 6c | the cha|in...Cfl|
|000036e0| 61 67 73 25 3d a4 63 6c | 61 69 6d 28 38 29 3a 21 |ags%=.cl|aim(8):!|
|000036f0| 66 6c 61 67 73 25 3d 6d | 74 63 68 61 69 6e 25 3a |flags%=m|tchain%:|
|00003700| 66 6c 61 67 73 25 21 34 | 3d 70 74 72 25 3a 6d 74 |flags%!4|=ptr%:mt|
|00003710| 63 68 61 69 6e 25 3d 66 | 6c 61 67 73 25 0d 0f b4 |chain%=f|lags%...|
|00003720| 09 3d 70 74 72 25 0d 0f | be 05 3a 0d 0f c8 42 f4 |.=ptr%..|..:...B.|
|00003730| 20 46 4e 69 6e 65 74 5f | 73 74 61 72 74 6d 74 67 | FNinet_|startmtg|
|00003740| 65 74 68 6f 73 74 62 79 | 61 64 64 72 20 3a 20 53 |ethostby|addr : S|
|00003750| 74 61 72 74 20 6d 75 6c | 74 69 74 61 73 6b 69 6e |tart mul|titaskin|
|00003760| 67 20 61 64 64 72 20 6c | 6f 6f 6b 75 70 0d 0f d2 |g addr l|ookup...|
|00003770| 32 f4 20 52 65 74 75 72 | 6e 73 20 68 61 6e 64 6c |2. Retur|ns handl|
|00003780| 65 20 69 66 20 74 68 69 | 73 20 73 75 63 63 65 65 |e if thi|s succee|
|00003790| 64 65 64 20 69 6e 20 73 | 74 61 72 74 69 6e 67 0d |ded in s|tarting.|
|000037a0| 0f dc 26 dd a4 69 6e 65 | 74 5f 73 74 61 72 74 6d |..&..ine|t_startm|
|000037b0| 74 67 65 74 68 6f 73 74 | 62 79 61 64 64 72 28 61 |tgethost|byaddr(a|
|000037c0| 64 64 72 25 29 0d 0f e6 | 22 ea 20 70 74 72 25 2c |ddr%)...|". ptr%,|
|000037d0| 66 6c 61 67 73 25 3a 21 | 73 6f 63 6b 74 65 6d 70 |flags%:!|socktemp|
|000037e0| 25 3d 61 64 64 72 25 0d | 0f f0 46 c8 99 20 22 58 |%=addr%.|..F.. "X|
|000037f0| 44 4e 53 52 65 73 6f 6c | 76 65 72 5f 4d 54 47 65 |DNSResol|ver_MTGe|
|00003800| 74 48 6f 73 74 42 79 41 | 64 64 72 22 2c 73 6f 63 |tHostByA|ddr",soc|
|00003810| 6b 74 65 6d 70 25 2c 34 | 2c 41 46 5f 49 4e 45 54 |ktemp%,4|,AF_INET|
|00003820| 20 b8 70 74 72 25 3b 66 | 6c 61 67 73 25 0d 0f fa | .ptr%;f|lags%...|
|00003830| 18 e7 20 28 66 6c 61 67 | 73 25 20 80 20 31 29 3d |.. (flag|s% . 1)=|
|00003840| 31 20 8c 3d a3 0d 10 04 | 1c f4 20 48 6f 6f 6b 20 |1 .=....|.. Hook |
|00003850| 75 73 20 69 6e 74 6f 20 | 74 68 65 20 63 68 61 69 |us into |the chai|
|00003860| 6e 0d 10 0e 43 66 6c 61 | 67 73 25 3d a4 63 6c 61 |n...Cfla|gs%=.cla|
|00003870| 69 6d 28 38 29 3a 21 66 | 6c 61 67 73 25 3d 6d 74 |im(8):!f|lags%=mt|
|00003880| 63 68 61 69 6e 25 3a 66 | 6c 61 67 73 25 21 34 3d |chain%:f|lags%!4=|
|00003890| 70 74 72 25 3a 6d 74 63 | 68 61 69 6e 25 3d 66 6c |ptr%:mtc|hain%=fl|
|000038a0| 61 67 73 25 0d 10 18 09 | 3d 70 74 72 25 0d 10 22 |ags%....|=ptr%.."|
|000038b0| 05 3a 0d 10 2c 41 f4 20 | 46 4e 69 6e 65 74 5f 63 |.:..,A. |FNinet_c|
|000038c0| 68 65 63 6b 6d 74 71 75 | 65 72 79 20 3a 20 43 68 |heckmtqu|ery : Ch|
|000038d0| 65 63 6b 20 70 72 6f 67 | 72 65 73 73 20 6f 66 20 |eck prog|ress of |
|000038e0| 6d 75 6c 74 69 74 61 73 | 6b 69 6e 67 20 6c 6f 6f |multitas|king loo|
|000038f0| 6b 75 70 0d 10 36 3c f4 | 20 52 65 74 75 72 6e 73 |kup..6<.| Returns|
|00003900| 20 46 41 4c 53 45 20 69 | 66 20 71 75 65 72 79 20 | FALSE i|f query |
|00003910| 66 61 69 6c 65 64 20 28 | 73 74 61 63 6b 20 66 61 |failed (|stack fa|
|00003920| 69 6c 75 72 65 29 2c 20 | 54 52 55 45 20 69 66 0d |ilure), |TRUE if.|
|00003930| 10 40 33 f4 20 71 75 65 | 72 79 20 63 6f 6d 70 6c |.@3. que|ry compl|
|00003940| 65 74 65 64 20 6f 6b 2c | 20 61 6e 64 20 31 20 69 |eted ok,| and 1 i|
|00003950| 66 20 69 74 27 73 20 73 | 74 69 6c 6c 20 67 6f 69 |f it's s|till goi|
|00003960| 6e 67 0d 10 4a 1f dd a4 | 69 6e 65 74 5f 63 68 65 |ng..J...|inet_che|
|00003970| 63 6b 6d 74 71 75 65 72 | 79 28 71 75 65 72 79 25 |ckmtquer|y(query%|
|00003980| 29 0d 10 54 11 ea 20 72 | 65 73 25 2c 66 6c 61 67 |)..T.. r|es%,flag|
|00003990| 73 25 0d 10 5e 30 c8 99 | 20 22 58 44 4e 53 52 65 |s%..^0..| "XDNSRe|
|000039a0| 73 6f 6c 76 65 72 5f 43 | 68 65 63 6b 22 2c 71 75 |solver_C|heck",qu|
|000039b0| 65 72 79 25 20 b8 20 72 | 65 73 25 3b 66 6c 61 67 |ery% . r|es%;flag|
|000039c0| 73 25 0d 10 68 2f e7 20 | 28 66 6c 61 67 73 25 20 |s%..h/. |(flags% |
|000039d0| 80 20 31 29 3d 31 20 84 | 20 72 65 73 25 3d 34 20 |. 1)=1 .| res%=4 |
|000039e0| 8c 3d a3 20 8b e7 20 72 | 65 73 25 3d 33 20 8c 3d |.=. .. r|es%=3 .=|
|000039f0| b9 0d 10 72 06 3d 31 0d | 10 7c 05 3a 0d 10 86 3f |...r.=1.|.|.:...?|
|00003a00| f4 20 50 52 4f 43 69 6e | 65 74 5f 6b 69 6c 6c 6d |. PROCin|et_killm|
|00003a10| 74 71 75 65 72 79 20 3a | 20 46 6f 72 67 65 74 20 |tquery :| Forget |
|00003a20| 61 62 6f 75 74 20 61 20 | 6d 75 6c 74 69 74 61 73 |about a |multitas|
|00003a30| 6b 69 6e 67 20 6c 6f 6f | 6b 75 70 0d 10 90 1e dd |king loo|kup.....|
|00003a40| f2 69 6e 65 74 5f 6b 69 | 6c 6c 6d 74 71 75 65 72 |.inet_ki|llmtquer|
|00003a50| 79 28 71 75 65 72 79 25 | 29 0d 10 9a 0e ea 20 6c |y(query%|)..... l|
|00003a60| 25 2c 70 25 2c 6e 25 0d | 10 a4 24 c8 99 20 22 58 |%,p%,n%.|..$.. "X|
|00003a70| 44 4e 53 52 65 73 6f 6c | 76 65 72 5f 44 69 73 70 |DNSResol|ver_Disp|
|00003a80| 6f 73 65 22 2c 71 75 65 | 72 79 25 0d 10 ae 0f 70 |ose",que|ry%....p|
|00003a90| 25 3d 6d 74 63 68 61 69 | 6e 25 0d 10 b8 13 e7 20 |%=mtchai|n%..... |
|00003aa0| 70 25 21 34 3d 71 75 65 | 72 79 25 20 8c 0d 10 c2 |p%!4=que|ry% ....|
|00003ab0| 1e 20 6d 74 63 68 61 69 | 6e 25 3d 21 70 25 3a f2 |. mtchai|n%=!p%:.|
|00003ac0| 72 65 6c 65 61 73 65 28 | 70 25 29 0d 10 cc 05 cc |release(|p%).....|
|00003ad0| 0d 10 d6 11 20 6c 25 3d | 70 25 3a 70 25 3d 21 70 |.... l%=|p%:p%=!p|
|00003ae0| 25 0d 10 e0 0d 20 c8 95 | 20 70 25 3c 3e 30 0d 10 |%.... ..| p%<>0..|
|00003af0| ea 2f 20 20 6e 25 3d 21 | 70 25 3a e7 20 70 25 21 |./ n%=!|p%:. p%!|
|00003b00| 34 3d 71 75 65 72 79 25 | 20 8c f2 72 65 6c 65 61 |4=query%| ..relea|
|00003b10| 73 65 28 70 25 29 3a 21 | 6c 25 3d 6e 25 0d 10 f4 |se(p%):!|l%=n%...|
|00003b20| 0b 20 20 70 25 3d 6e 25 | 0d 10 fe 06 20 ce 0d 11 |. p%=n%|.... ...|
|00003b30| 08 05 cd 0d 11 12 05 e1 | 0d 11 1c 05 3a 0d 11 26 |........|....:..&|
|00003b40| 41 f4 20 46 4e 69 6e 65 | 74 5f 6d 74 67 65 74 68 |A. FNine|t_mtgeth|
|00003b50| 6f 73 74 62 79 6e 61 6d | 65 20 3a 20 52 65 74 72 |ostbynam|e : Retr|
|00003b60| 69 65 76 65 20 61 6e 20 | 61 64 64 72 65 73 73 20 |ieve an |address |
|00003b70| 66 72 6f 6d 20 61 20 68 | 6f 73 74 65 6e 74 0d 11 |from a h|ostent..|
|00003b80| 30 3a f4 20 52 65 74 75 | 72 6e 73 20 74 68 65 20 |0:. Retu|rns the |
|00003b90| 72 65 73 75 6c 74 20 6f | 66 20 68 6f 73 74 20 6c |result o|f host l|
|00003ba0| 6f 6f 6b 75 70 2c 20 6f | 72 20 30 20 69 66 20 69 |ookup, o|r 0 if i|
|00003bb0| 74 20 66 61 69 6c 65 64 | 0d 11 3a 22 dd a4 69 6e |t failed|..:"..in|
|00003bc0| 65 74 5f 6d 74 67 65 74 | 68 6f 73 74 62 79 6e 61 |et_mtget|hostbyna|
|00003bd0| 6d 65 28 71 75 65 72 79 | 25 29 0d 11 44 17 ea 20 |me(query|%)..D.. |
|00003be0| 70 74 72 25 2c 66 6c 61 | 67 73 25 2c 61 64 64 72 |ptr%,fla|gs%,addr|
|00003bf0| 25 0d 11 4e 34 c8 99 20 | 22 58 44 4e 53 52 65 73 |%..N4.. |"XDNSRes|
|00003c00| 6f 6c 76 65 72 5f 47 65 | 74 41 6e 73 77 65 72 22 |olver_Ge|tAnswer"|
|00003c10| 2c 71 75 65 72 79 25 20 | b8 20 70 74 72 25 3b 66 |,query% |. ptr%;f|
|00003c20| 6c 61 67 73 25 0d 11 58 | 21 e7 20 70 74 72 25 3c |lags%..X|!. ptr%<|
|00003c30| 3e 30 20 8c 20 61 64 64 | 72 25 3d 21 21 28 70 74 |>0 . add|r%=!!(pt|
|00003c40| 72 25 21 31 36 29 0d 11 | 62 1d f2 69 6e 65 74 5f |r%!16)..|b..inet_|
|00003c50| 6b 69 6c 6c 6d 74 71 75 | 65 72 79 28 71 75 65 72 |killmtqu|ery(quer|
|00003c60| 79 25 29 0d 11 6c 21 e7 | 20 70 74 72 25 3d 30 20 |y%)..l!.| ptr%=0 |
|00003c70| 84 20 28 66 6c 61 67 73 | 25 20 80 20 31 29 3d 31 |. (flags|% . 1)=1|
|00003c80| 20 8c 3d 30 0d 11 76 0a | 3d 61 64 64 72 25 0d 11 | .=0..v.|=addr%..|
|00003c90| 80 05 3a 0d 11 8a 3d f4 | 20 46 4e 69 6e 65 74 5f |..:...=.| FNinet_|
|00003ca0| 6d 74 67 65 74 68 6f 73 | 74 62 79 61 64 64 72 20 |mtgethos|tbyaddr |
|00003cb0| 3a 20 52 65 74 72 69 65 | 76 65 20 61 20 6e 61 6d |: Retrie|ve a nam|
|00003cc0| 65 20 66 72 6f 6d 20 61 | 20 68 6f 73 74 65 6e 74 |e from a| hostent|
|00003cd0| 0d 11 94 41 f4 20 52 65 | 74 75 72 6e 73 20 74 68 |...A. Re|turns th|
|00003ce0| 65 20 72 65 73 75 6c 74 | 20 6f 66 20 61 6e 20 61 |e result| of an a|
|00003cf0| 64 64 72 65 73 73 20 6c | 6f 6f 6b 75 70 2c 20 6f |ddress l|ookup, o|
|00003d00| 72 20 22 22 20 69 66 20 | 69 74 20 66 61 69 6c 65 |r "" if |it faile|
|00003d10| 64 0d 11 9e 22 dd a4 69 | 6e 65 74 5f 6d 74 67 65 |d..."..i|net_mtge|
|00003d20| 74 68 6f 73 74 62 79 61 | 64 64 72 28 71 75 65 72 |thostbya|ddr(quer|
|00003d30| 79 25 29 0d 11 a8 17 ea | 20 70 74 72 25 2c 66 6c |y%).....| ptr%,fl|
|00003d40| 61 67 73 25 2c 68 6f 73 | 74 24 0d 11 b2 34 c8 99 |ags%,hos|t$...4..|
|00003d50| 20 22 58 44 4e 53 52 65 | 73 6f 6c 76 65 72 5f 47 | "XDNSRe|solver_G|
|00003d60| 65 74 41 6e 73 77 65 72 | 22 2c 71 75 65 72 79 25 |etAnswer|",query%|
|00003d70| 20 b8 20 70 74 72 25 3b | 66 6c 61 67 73 25 0d 11 | . ptr%;|flags%..|
|00003d80| bc 24 e7 20 70 74 72 25 | 3c 3e 30 20 8c 68 6f 73 |.$. ptr%|<>0 .hos|
|00003d90| 74 24 3d a4 73 74 72 69 | 6e 67 30 28 21 70 74 72 |t$=.stri|ng0(!ptr|
|00003da0| 25 29 0d 11 c6 1d f2 69 | 6e 65 74 5f 6b 69 6c 6c |%).....i|net_kill|
|00003db0| 6d 74 71 75 65 72 79 28 | 71 75 65 72 79 25 29 0d |mtquery(|query%).|
|00003dc0| 11 d0 22 e7 20 70 74 72 | 25 3d 30 20 84 20 28 66 |..". ptr|%=0 . (f|
|00003dd0| 6c 61 67 73 25 20 80 20 | 31 29 3d 31 20 8c 3d 22 |lags% . |1)=1 .="|
|00003de0| 22 0d 11 da 0a 3d 68 6f | 73 74 24 0d 11 e4 05 3a |"....=ho|st$....:|
|00003df0| 0d 11 ee 41 f4 20 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |...A. **|********|
|00003e00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 20 42 75 66 66 65 |********|** Buffe|
|00003e10| 72 20 72 6f 75 74 69 6e | 65 73 20 2a 2a 2a 2a 2a |r routin|es *****|
|00003e20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003e30| 2a 0d 11 f8 05 3a 0d 12 | 02 3a f4 20 46 4e 62 75 |*....:..|.:. FNbu|
|00003e40| 66 66 65 72 5f 67 65 74 | 77 6f 72 64 20 3a 20 52 |ffer_get|word : R|
|00003e50| 65 61 64 20 74 68 65 20 | 66 69 72 73 74 20 77 6f |ead the |first wo|
|00003e60| 72 64 20 66 72 6f 6d 20 | 61 20 62 75 66 66 65 72 |rd from |a buffer|
|00003e70| 0d 12 0c 28 dd a4 62 75 | 66 66 65 72 5f 67 65 74 |...(..bu|ffer_get|
|00003e80| 77 6f 72 64 28 73 74 61 | 72 74 25 2c 6c 65 6e 25 |word(sta|rt%,len%|
|00003e90| 2c f8 20 70 74 72 25 29 | 0d 12 16 0e ea 20 61 24 |,. ptr%)|..... a$|
|00003ea0| 3a 61 24 3d 22 22 0d 12 | 20 2b c8 95 20 73 74 61 |:a$=""..| +.. sta|
|00003eb0| 72 74 25 3f 70 74 72 25 | 3d 33 32 20 80 20 70 74 |rt%?ptr%|=32 . pt|
|00003ec0| 72 25 3c 6c 65 6e 25 3a | 70 74 72 25 2b 3d 31 3a |r%<len%:|ptr%+=1:|
|00003ed0| ce 0d 12 2a 15 e7 20 70 | 74 72 25 3e 3d 6c 65 6e |...*.. p|tr%>=len|
|00003ee0| 25 20 8c 3d 22 22 0d 12 | 34 05 f5 0d 12 3e 1f 20 |% .=""..|4....>. |
|00003ef0| 61 24 2b 3d bd 28 73 74 | 61 72 74 25 3f 70 74 72 |a$+=.(st|art%?ptr|
|00003f00| 25 29 3a 70 74 72 25 2b | 3d 31 0d 12 48 4e fd 20 |%):ptr%+|=1..HN. |
|00003f10| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 33 32 20 84 |start%?p|tr%=32 .|
|00003f20| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 31 30 20 84 |start%?p|tr%=10 .|
|00003f30| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 31 33 20 84 |start%?p|tr%=13 .|
|00003f40| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 30 20 84 70 |start%?p|tr%=0 .p|
|00003f50| 74 72 25 3d 6c 65 6e 25 | 0d 12 52 2a e7 20 73 74 |tr%=len%|..R*. st|
|00003f60| 61 72 74 25 3f 70 74 72 | 25 3d 33 32 20 80 20 70 |art%?ptr|%=32 . p|
|00003f70| 74 72 25 3c 3e 6c 65 6e | 25 20 8c 70 74 72 25 2b |tr%<>len|% .ptr%+|
|00003f80| 3d 31 0d 12 5c 07 3d 61 | 24 0d 12 66 05 3a 0d 12 |=1..\.=a|$..f.:..|
|00003f90| 70 40 f4 20 46 4e 62 75 | 66 66 65 72 5f 67 65 74 |p@. FNbu|ffer_get|
|00003fa0| 72 65 73 74 20 3a 20 52 | 65 61 64 20 74 68 65 20 |rest : R|ead the |
|00003fb0| 72 65 73 74 20 6f 66 20 | 74 68 65 20 62 75 66 66 |rest of |the buff|
|00003fc0| 65 72 20 74 6f 20 61 20 | 73 74 72 69 6e 67 0d 12 |er to a |string..|
|00003fd0| 7a 28 dd a4 62 75 66 66 | 65 72 5f 67 65 74 72 65 |z(..buff|er_getre|
|00003fe0| 73 74 28 73 74 61 72 74 | 25 2c 6c 65 6e 25 2c f8 |st(start|%,len%,.|
|00003ff0| 20 70 74 72 25 29 0d 12 | 84 0e ea 20 61 24 3a 61 | ptr%)..|... a$:a|
|00004000| 24 3d 22 22 0d 12 8e 52 | c8 95 20 28 ac 20 28 73 |$=""...R|.. (. (s|
|00004010| 74 61 72 74 25 3f 70 74 | 72 25 3d 31 30 20 84 73 |tart%?pt|r%=10 .s|
|00004020| 74 61 72 74 25 3f 70 74 | 72 25 3d 31 33 20 84 20 |tart%?pt|r%=13 . |
|00004030| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 30 20 84 70 |start%?p|tr%=0 .p|
|00004040| 74 72 25 3d 6c 65 6e 25 | 29 29 20 80 20 a9 28 61 |tr%=len%|)) . .(a|
|00004050| 24 29 3c 32 35 34 0d 12 | 98 1f 20 61 24 2b 3d bd |$)<254..|.. a$+=.|
|00004060| 28 73 74 61 72 74 25 3f | 70 74 72 25 29 3a 70 74 |(start%?|ptr%):pt|
|00004070| 72 25 2b 3d 31 0d 12 a2 | 05 ce 0d 12 ac 4c e7 20 |r%+=1...|.....L. |
|00004080| 28 73 74 61 72 74 25 3f | 70 74 72 25 3d 31 30 20 |(start%?|ptr%=10 |
|00004090| 84 73 74 61 72 74 25 3f | 70 74 72 25 3d 31 33 20 |.start%?|ptr%=13 |
|000040a0| 84 20 73 74 61 72 74 25 | 3f 70 74 72 25 3d 30 29 |. start%|?ptr%=0)|
|000040b0| 20 80 20 70 74 72 25 3c | 3e 6c 65 6e 25 20 8c 70 | . ptr%<|>len% .p|
|000040c0| 74 72 25 2b 3d 31 0d 12 | b6 07 3d 61 24 0d 12 c0 |tr%+=1..|..=a$...|
|000040d0| 05 3a 0d 12 ca 41 f4 20 | 2a 2a 2a 2a 2a 2a 2a 2a |.:...A. |********|
|000040e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 20 4c 6f |********|***** Lo|
|000040f0| 67 67 69 6e 67 20 72 6f | 75 74 69 6e 65 73 20 2a |gging ro|utines *|
|00004100| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004110| 2a 2a 2a 0d 12 d4 05 3a | 0d 12 de 2d f4 20 50 52 |***....:|...-. PR|
|00004120| 4f 43 73 79 73 6c 6f 67 | 20 3a 20 6c 6f 67 20 61 |OCsyslog| : log a|
|00004130| 20 6c 69 6e 65 20 74 6f | 20 74 68 65 20 6c 6f 67 | line to| the log|
|00004140| 20 66 69 6c 65 0d 12 e8 | 13 dd f2 73 79 73 6c 6f | file...|...syslo|
|00004150| 67 28 6c 25 2c 6d 24 29 | 0d 12 f2 18 f4 20 58 53 |g(l%,m$)|..... XS|
|00004160| 79 73 4c 6f 67 5f 4c 6f | 67 4d 65 73 73 61 67 65 |ysLog_Lo|gMessage|
|00004170| 0d 12 fc 1c c8 99 20 26 | 36 43 38 38 30 2c 41 70 |...... &|6C880,Ap|
|00004180| 70 6e 61 6d 65 24 2c 6d | 24 2c 6c 25 0d 13 06 05 |pname$,m|$,l%....|
|00004190| e1 0d 13 10 05 3a 0d 13 | 1a 2d f4 20 46 4e 6c 6f |.....:..|.-. FNlo|
|000041a0| 67 5f 6f 70 65 6e 73 65 | 73 73 69 6f 6e 20 3a 20 |g_opense|ssion : |
|000041b0| 53 74 61 72 74 20 61 20 | 73 65 73 73 69 6f 6e 20 |Start a |session |
|000041c0| 6c 6f 67 0d 13 24 19 dd | a4 6c 6f 67 5f 6f 70 65 |log..$..|.log_ope|
|000041d0| 6e 73 65 73 73 69 6f 6e | 28 6c 25 29 0d 13 2e 1c |nsession|(l%)....|
|000041e0| f4 20 58 53 79 73 4c 6f | 67 5f 4f 70 65 6e 53 65 |. XSysLo|g_OpenSe|
|000041f0| 73 73 69 6f 6e 4c 6f 67 | 0d 13 38 1e c8 99 20 26 |ssionLog|..8... &|
|00004200| 36 43 38 38 38 2c 41 70 | 70 6e 61 6d 65 24 2c 6c |6C888,Ap|pname$,l|
|00004210| 25 20 b8 20 6c 25 0d 13 | 42 07 3d 6c 25 0d 13 4c |% . l%..|B.=l%..L|
|00004220| 05 3a 0d 13 56 1a f4 20 | 50 52 4f 43 6c 6f 67 5f |.:..V.. |PROClog_|
|00004230| 63 6c 6f 73 65 73 65 73 | 73 69 6f 6e 0d 13 60 1a |closeses|sion..`.|
|00004240| dd f2 6c 6f 67 5f 63 6c | 6f 73 65 73 65 73 73 69 |..log_cl|osesessi|
|00004250| 6f 6e 28 6c 25 29 0d 13 | 6a 1d f4 20 58 53 79 73 |on(l%)..|j.. XSys|
|00004260| 4c 6f 67 5f 43 6c 6f 73 | 65 53 65 73 73 69 6f 6e |Log_Clos|eSession|
|00004270| 4c 6f 67 0d 13 74 10 c8 | 99 20 26 36 43 38 38 39 |Log..t..|. &6C889|
|00004280| 2c 6c 25 0d 13 7e 05 e1 | 0d 13 88 05 3a 0d 13 92 |,l%..~..|....:...|
|00004290| 31 f4 20 46 4e 6c 6f 67 | 5f 73 65 73 73 69 6f 6e |1. FNlog|_session|
|000042a0| 20 3a 20 4c 6f 67 20 61 | 20 6c 69 6e 65 20 74 6f | : Log a| line to|
|000042b0| 20 61 20 73 65 73 73 69 | 6f 6e 20 6c 6f 67 0d 13 | a sessi|on log..|
|000042c0| 9c 1d dd f2 6c 6f 67 5f | 73 65 73 73 69 6f 6e 28 |....log_|session(|
|000042d0| 6c 6f 67 25 2c 6c 25 2c | 6d 24 29 0d 13 a6 18 f4 |log%,l%,|m$).....|
|000042e0| 20 58 53 79 73 4c 6f 67 | 5f 4c 6f 67 4d 65 73 73 | XSysLog|_LogMess|
|000042f0| 61 67 65 0d 13 b0 18 c8 | 99 20 26 36 43 38 38 30 |age.....|. &6C880|
|00004300| 2c 6c 6f 67 25 2c 6d 24 | 2c 6c 25 0d 13 ba 05 e1 |,log%,m$|,l%.....|
|00004310| 0d 13 c4 05 3a 0d 13 ce | 2a f4 20 50 52 4f 43 6c |....:...|*. PROCl|
|00004320| 6f 67 5f 69 6e 64 65 6e | 74 20 3a 20 69 6e 64 65 |og_inden|t : inde|
|00004330| 6e 74 20 74 68 65 20 6c | 6f 67 20 66 69 6c 65 0d |nt the l|og file.|
|00004340| 13 d8 14 dd f2 6c 6f 67 | 5f 69 6e 64 65 6e 74 28 |.....log|_indent(|
|00004350| 6c 25 29 0d 13 e2 14 f4 | 20 58 53 79 73 4c 6f 67 |l%).....| XSysLog|
|00004360| 5f 49 6e 64 65 6e 74 0d | 13 ec 2e e7 20 6c 25 3c |_Indent.|.... l%<|
|00004370| 3e 2d 31 20 8c c8 99 20 | 26 36 43 38 38 35 2c 6c |>-1 ... |&6C885,l|
|00004380| 25 20 8b c8 99 20 26 36 | 43 38 38 35 2c 41 70 70 |% ... &6|C885,App|
|00004390| 6e 61 6d 65 24 0d 13 f6 | 05 e1 0d 14 00 05 3a 0d |name$...|......:.|
|000043a0| 14 0a 37 f4 20 50 52 4f | 43 6c 6f 67 5f 6f 75 74 |..7. PRO|Clog_out|
|000043b0| 64 65 6e 74 20 3a 20 72 | 65 6d 6f 76 65 20 69 6e |dent : r|emove in|
|000043c0| 64 65 6e 74 20 66 72 6f | 6d 20 74 68 65 20 6c 6f |dent fro|m the lo|
|000043d0| 67 20 66 69 6c 65 0d 14 | 14 15 dd f2 6c 6f 67 5f |g file..|....log_|
|000043e0| 6f 75 74 64 65 6e 74 28 | 6c 25 29 0d 14 1e 16 f4 |outdent(|l%).....|
|000043f0| 20 58 53 79 73 4c 6f 67 | 5f 55 6e 49 6e 64 65 6e | XSysLog|_UnInden|
|00004400| 74 0d 14 28 2e e7 20 6c | 25 3c 3e 2d 31 20 8c c8 |t..(.. l|%<>-1 ..|
|00004410| 99 20 26 36 43 38 38 36 | 2c 6c 25 20 8b c8 99 20 |. &6C886|,l% ... |
|00004420| 26 36 43 38 38 36 2c 41 | 70 70 6e 61 6d 65 24 0d |&6C886,A|ppname$.|
|00004430| 14 32 05 e1 0d 14 3c 05 | 3a 0d 14 46 25 f4 20 50 |.2....<.|:..F%. P|
|00004440| 52 4f 43 6c 6f 67 5f 64 | 61 74 61 20 3a 20 4c 6f |ROClog_d|ata : Lo|
|00004450| 67 20 61 20 64 61 74 61 | 20 62 6c 6f 63 6b 0d 14 |g a data| block..|
|00004460| 50 22 dd f2 6c 6f 67 5f | 64 61 74 61 28 6c 6f 67 |P"..log_|data(log|
|00004470| 25 2c 6c 25 2c 64 25 2c | 6c 65 6e 25 2c 62 25 29 |%,l%,d%,|len%,b%)|
|00004480| 0d 14 5a 15 f4 20 58 53 | 79 73 4c 6f 67 5f 4c 6f |..Z.. XS|ysLog_Lo|
|00004490| 67 44 61 74 61 0d 14 64 | 4e e7 20 6c 6f 67 25 3c |gData..d|N. log%<|
|000044a0| 3e 2d 31 20 8c c8 99 20 | 26 36 43 38 38 41 2c 6c |>-1 ... |&6C88A,l|
|000044b0| 6f 67 25 2c 6c 25 2c 64 | 25 2c 6c 65 6e 25 2c 62 |og%,l%,d|%,len%,b|
|000044c0| 25 20 8b c8 99 20 26 36 | 43 38 38 41 2c 41 70 70 |% ... &6|C88A,App|
|000044d0| 6e 61 6d 65 24 2c 6c 25 | 2c 64 25 2c 6c 65 6e 25 |name$,l%|,d%,len%|
|000044e0| 2c 62 25 0d 14 6e 05 e1 | 0d ff |,b%..n..|.. |
+--------+-------------------------+-------------------------+--------+--------+