home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| ASCII text
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 75 6e 69 78 0a 46 72 |.sources|.unix.Fr|
|00000020| 6f 6d 3a 20 69 33 35 35 | 38 40 6e 65 77 73 69 65 |om: i355|8@newsie|
|00000030| 2e 64 63 2e 64 6b 20 28 | 53 6f 65 72 65 6e 20 4d |.dc.dk (|Soeren M|
|00000040| 69 63 68 61 65 6c 20 52 | 6f 75 67 29 0a 53 75 62 |ichael R|oug).Sub|
|00000050| 6a 65 63 74 3a 20 76 32 | 36 69 30 39 34 3a 20 6e |ject: v2|6i094: n|
|00000060| 73 32 74 61 62 20 2d 20 | 49 6e 63 72 65 61 73 69 |s2tab - |Increasi|
|00000070| 6e 67 20 74 68 65 20 75 | 73 65 66 75 6c 6c 6e 65 |ng the u|sefullne|
|00000080| 73 20 6f 66 20 74 68 65 | 20 6e 61 6d 65 73 65 72 |s of the| nameser|
|00000090| 76 65 72 2c 20 50 61 72 | 74 30 33 2f 30 33 0a 53 |ver, Par|t03/03.S|
|000000a0| 65 6e 64 65 72 3a 20 75 | 6e 69 78 2d 73 6f 75 72 |ender: u|nix-sour|
|000000b0| 63 65 73 2d 6d 6f 64 65 | 72 61 74 6f 72 40 76 69 |ces-mode|rator@vi|
|000000c0| 78 2e 63 6f 6d 0a 41 70 | 70 72 6f 76 65 64 3a 20 |x.com.Ap|proved: |
|000000d0| 70 61 75 6c 40 76 69 78 | 2e 63 6f 6d 0a 0a 53 75 |paul@vix|.com..Su|
|000000e0| 62 6d 69 74 74 65 64 2d | 42 79 3a 20 69 33 35 35 |bmitted-|By: i355|
|000000f0| 38 40 6e 65 77 73 69 65 | 2e 64 63 2e 64 6b 20 28 |8@newsie|.dc.dk (|
|00000100| 53 6f 65 72 65 6e 20 4d | 69 63 68 61 65 6c 20 52 |Soeren M|ichael R|
|00000110| 6f 75 67 29 0a 50 6f 73 | 74 69 6e 67 2d 4e 75 6d |oug).Pos|ting-Num|
|00000120| 62 65 72 3a 20 56 6f 6c | 75 6d 65 20 32 36 2c 20 |ber: Vol|ume 26, |
|00000130| 49 73 73 75 65 20 39 34 | 0a 41 72 63 68 69 76 65 |Issue 94|.Archive|
|00000140| 2d 4e 61 6d 65 3a 20 6e | 73 32 74 61 62 2f 70 61 |-Name: n|s2tab/pa|
|00000150| 72 74 30 33 0a 0a 23 21 | 20 2f 62 69 6e 2f 73 68 |rt03..#!| /bin/sh|
|00000160| 0a 23 20 54 68 69 73 20 | 69 73 20 61 20 73 68 65 |.# This |is a she|
|00000170| 6c 6c 20 61 72 63 68 69 | 76 65 2e 20 20 52 65 6d |ll archi|ve. Rem|
|00000180| 6f 76 65 20 61 6e 79 74 | 68 69 6e 67 20 62 65 66 |ove anyt|hing bef|
|00000190| 6f 72 65 20 74 68 69 73 | 20 6c 69 6e 65 2c 20 74 |ore this| line, t|
|000001a0| 68 65 6e 20 75 6e 70 61 | 63 6b 0a 23 20 69 74 20 |hen unpa|ck.# it |
|000001b0| 62 79 20 73 61 76 69 6e | 67 20 69 74 20 69 6e 74 |by savin|g it int|
|000001c0| 6f 20 61 20 66 69 6c 65 | 20 61 6e 64 20 74 79 70 |o a file| and typ|
|000001d0| 69 6e 67 20 22 73 68 20 | 66 69 6c 65 22 2e 20 20 |ing "sh |file". |
|000001e0| 54 6f 20 6f 76 65 72 77 | 72 69 74 65 20 65 78 69 |To overw|rite exi|
|000001f0| 73 74 69 6e 67 0a 23 20 | 66 69 6c 65 73 2c 20 74 |sting.# |files, t|
|00000200| 79 70 65 20 22 73 68 20 | 66 69 6c 65 20 2d 63 22 |ype "sh |file -c"|
|00000210| 2e 20 20 59 6f 75 20 63 | 61 6e 20 61 6c 73 6f 20 |. You c|an also |
|00000220| 66 65 65 64 20 74 68 69 | 73 20 61 73 20 73 74 61 |feed thi|s as sta|
|00000230| 6e 64 61 72 64 20 69 6e | 70 75 74 20 76 69 61 0a |ndard in|put via.|
|00000240| 23 20 75 6e 73 68 61 72 | 2c 20 6f 72 20 62 79 20 |# unshar|, or by |
|00000250| 74 79 70 69 6e 67 20 22 | 73 68 20 3c 66 69 6c 65 |typing "|sh <file|
|00000260| 22 2c 20 65 2e 67 2e 2e | 20 20 49 66 20 74 68 69 |", e.g..| If thi|
|00000270| 73 20 61 72 63 68 69 76 | 65 20 69 73 20 63 6f 6d |s archiv|e is com|
|00000280| 70 6c 65 74 65 2c 20 79 | 6f 75 0a 23 20 77 69 6c |plete, y|ou.# wil|
|00000290| 6c 20 73 65 65 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |l see th|e follow|
|000002a0| 69 6e 67 20 6d 65 73 73 | 61 67 65 20 61 74 20 74 |ing mess|age at t|
|000002b0| 68 65 20 65 6e 64 3a 0a | 23 09 09 22 45 6e 64 20 |he end:.|#.."End |
|000002c0| 6f 66 20 61 72 63 68 69 | 76 65 20 33 20 28 6f 66 |of archi|ve 3 (of|
|000002d0| 20 33 29 2e 22 0a 23 20 | 43 6f 6e 74 65 6e 74 73 | 3).".# |Contents|
|000002e0| 3a 20 20 6c 69 73 74 2e | 63 0a 23 20 57 72 61 70 |: list.|c.# Wrap|
|000002f0| 70 65 64 20 62 79 20 69 | 33 35 35 38 40 75 6c 72 |ped by i|3558@ulr|
|00000300| 69 6b 2e 64 63 2e 64 6b | 20 6f 6e 20 46 72 69 20 |ik.dc.dk| on Fri |
|00000310| 4d 61 72 20 32 36 20 31 | 35 3a 30 35 3a 33 36 20 |Mar 26 1|5:05:36 |
|00000320| 31 39 39 33 0a 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |1993.PAT|H=/bin:/|
|00000330| 75 73 72 2f 62 69 6e 3a | 2f 75 73 72 2f 75 63 62 |usr/bin:|/usr/ucb|
|00000340| 20 3b 20 65 78 70 6f 72 | 74 20 50 41 54 48 0a 69 | ; expor|t PATH.i|
|00000350| 66 20 74 65 73 74 20 2d | 66 20 27 6c 69 73 74 2e |f test -|f 'list.|
|00000360| 63 27 20 2d 61 20 22 24 | 7b 31 7d 22 20 21 3d 20 |c' -a "$|{1}" != |
|00000370| 22 2d 63 22 20 3b 20 74 | 68 65 6e 20 0a 20 20 65 |"-c" ; t|hen . e|
|00000380| 63 68 6f 20 73 68 61 72 | 3a 20 57 69 6c 6c 20 6e |cho shar|: Will n|
|00000390| 6f 74 20 63 6c 6f 62 62 | 65 72 20 65 78 69 73 74 |ot clobb|er exist|
|000003a0| 69 6e 67 20 66 69 6c 65 | 20 5c 22 27 6c 69 73 74 |ing file| \"'list|
|000003b0| 2e 63 27 5c 22 0a 65 6c | 73 65 0a 65 63 68 6f 20 |.c'\".el|se.echo |
|000003c0| 73 68 61 72 3a 20 45 78 | 74 72 61 63 74 69 6e 67 |shar: Ex|tracting|
|000003d0| 20 5c 22 27 6c 69 73 74 | 2e 63 27 5c 22 20 5c 28 | \"'list|.c'\" \(|
|000003e0| 33 32 36 35 38 20 63 68 | 61 72 61 63 74 65 72 73 |32658 ch|aracters|
|000003f0| 5c 29 0a 73 65 64 20 22 | 73 2f 5e 58 2f 2f 22 20 |\).sed "|s/^X//" |
|00000400| 3e 27 6c 69 73 74 2e 63 | 27 20 3c 3c 27 45 4e 44 |>'list.c|' <<'END|
|00000410| 5f 4f 46 5f 46 49 4c 45 | 27 0a 58 2f 2a 0a 58 20 |_OF_FILE|'.X/*.X |
|00000420| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000430| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000440| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000460| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0a |********|*******.|
|00000470| 58 20 2a 0a 58 20 2a 20 | 20 6c 69 73 74 2e 63 20 |X *.X * | list.c |
|00000480| 2d 2d 0a 58 20 2a 0a 58 | 20 2a 09 52 6f 75 74 69 |--.X *.X| *.Routi|
|00000490| 6e 65 73 20 74 6f 20 6f | 62 74 61 69 6e 20 69 6e |nes to o|btain in|
|000004a0| 66 6f 20 66 72 6f 6d 20 | 6e 61 6d 65 20 61 6e 64 |fo from |name and|
|000004b0| 20 66 69 6e 67 65 72 20 | 73 65 72 76 65 72 73 2e | finger |servers.|
|000004c0| 0a 58 20 2a 0a 58 20 2a | 09 41 64 61 70 74 65 64 |.X *.X *|.Adapted|
|000004d0| 20 66 72 6f 6d 20 34 2e | 33 42 53 44 20 42 49 4e | from 4.|3BSD BIN|
|000004e0| 44 20 6e 73 5f 69 6e 69 | 74 2e 63 20 61 6e 64 20 |D ns_ini|t.c and |
|000004f0| 66 72 6f 6d 20 66 69 6e | 67 65 72 2e 63 2e 0a 58 |from fin|ger.c..X|
|00000500| 20 2a 0a 58 20 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *.X ***|********|
|00000510| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000520| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000530| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000540| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000550| 2a 2a 2a 2a 0a 58 20 2a | 2f 0a 58 0a 58 23 69 6e |****.X *|/.X.X#in|
|00000560| 63 6c 75 64 65 20 3c 73 | 79 73 2f 74 79 70 65 73 |clude <s|ys/types|
|00000570| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |.h>.X#in|clude <s|
|00000580| 79 73 2f 73 6f 63 6b 65 | 74 2e 68 3e 0a 58 23 69 |ys/socke|t.h>.X#i|
|00000590| 6e 63 6c 75 64 65 20 3c | 6e 65 74 69 6e 65 74 2f |nclude <|netinet/|
|000005a0| 69 6e 2e 68 3e 0a 58 23 | 69 6e 63 6c 75 64 65 20 |in.h>.X#|include |
|000005b0| 3c 6e 65 74 64 62 2e 68 | 3e 0a 58 23 69 6e 63 6c |<netdb.h|>.X#incl|
|000005c0| 75 64 65 20 3c 73 74 64 | 69 6f 2e 68 3e 0a 58 23 |ude <std|io.h>.X#|
|000005d0| 69 6e 63 6c 75 64 65 20 | 3c 73 74 72 69 6e 67 2e |include |<string.|
|000005e0| 68 3e 0a 58 23 69 6e 63 | 6c 75 64 65 20 3c 63 74 |h>.X#inc|lude <ct|
|000005f0| 79 70 65 2e 68 3e 0a 58 | 23 69 6e 63 6c 75 64 65 |ype.h>.X|#include|
|00000600| 20 3c 65 72 72 6e 6f 2e | 68 3e 0a 58 23 69 6e 63 | <errno.|h>.X#inc|
|00000610| 6c 75 64 65 20 3c 61 72 | 70 61 2f 6e 61 6d 65 73 |lude <ar|pa/names|
|00000620| 65 72 2e 68 3e 0a 58 23 | 69 66 6e 64 65 66 20 54 |er.h>.X#|ifndef T|
|00000630| 5f 54 58 54 0a 58 23 64 | 65 66 69 6e 65 20 54 5f |_TXT.X#d|efine T_|
|00000640| 54 58 54 20 31 36 0a 58 | 23 65 6e 64 69 66 0a 58 |TXT 16.X|#endif.X|
|00000650| 23 69 6e 63 6c 75 64 65 | 20 3c 61 72 70 61 2f 69 |#include| <arpa/i|
|00000660| 6e 65 74 2e 68 3e 0a 58 | 23 69 6e 63 6c 75 64 65 |net.h>.X|#include|
|00000670| 20 3c 72 65 73 6f 6c 76 | 2e 68 3e 0a 58 23 69 6e | <resolv|.h>.X#in|
|00000680| 63 6c 75 64 65 20 22 72 | 65 73 2e 68 22 0a 58 23 |clude "r|es.h".X#|
|00000690| 69 6e 63 6c 75 64 65 20 | 22 76 74 61 62 6c 65 2e |include |"vtable.|
|000006a0| 68 22 0a 58 0a 58 23 69 | 66 6e 64 65 66 20 5f 5f |h".X.X#i|fndef __|
|000006b0| 53 54 44 43 5f 5f 0a 58 | 65 78 74 65 72 6e 20 63 |STDC__.X|extern c|
|000006c0| 68 61 72 20 2a 6d 61 6c | 6c 6f 63 28 29 3b 0a 58 |har *mal|loc();.X|
|000006d0| 23 65 6c 73 65 0a 58 23 | 69 6e 63 6c 75 64 65 20 |#else.X#|include |
|000006e0| 3c 73 74 64 6c 69 62 2e | 68 3e 0a 58 23 65 6e 64 |<stdlib.|h>.X#end|
|000006f0| 69 66 0a 58 0a 58 65 78 | 74 65 72 6e 20 76 6f 69 |if.X.Xex|tern voi|
|00000700| 64 20 2a 68 74 61 62 5f | 66 69 6e 64 28 29 3b 0a |d *htab_|find();.|
|00000710| 58 0a 58 23 64 65 66 69 | 6e 65 20 4e 4f 49 44 20 |X.X#defi|ne NOID |
|00000720| 2d 38 34 37 32 38 37 34 | 20 20 20 2f 2a 20 53 6f |-8472874| /* So|
|00000730| 6d 65 74 68 69 6e 67 20 | 76 65 72 79 20 75 6e 6c |mething |very unl|
|00000740| 69 6b 65 6c 79 20 2a 2f | 0a 58 2f 2a 0a 58 20 2a |ikely */|.X/*.X *|
|00000750| 20 20 49 6d 70 6f 72 74 | 65 64 20 66 72 6f 6d 20 | Import|ed from |
|00000760| 72 65 73 5f 64 65 62 75 | 67 2e 63 0a 58 20 2a 2f |res_debu|g.c.X */|
|00000770| 0a 58 65 78 74 65 72 6e | 20 63 68 61 72 20 2a 5f |.Xextern| char *_|
|00000780| 72 65 73 5f 72 65 73 75 | 6c 74 63 6f 64 65 73 5b |res_resu|ltcodes[|
|00000790| 5d 3b 0a 58 0a 58 65 78 | 74 65 72 6e 20 69 6e 74 |];.X.Xex|tern int|
|000007a0| 20 65 72 72 6e 6f 3b 0a | 58 73 74 61 74 69 63 20 | errno;.|Xstatic |
|000007b0| 69 6e 74 20 6c 65 6c 6d | 73 74 79 6c 65 3b 0a 58 |int lelm|style;.X|
|000007c0| 73 74 61 74 69 63 20 69 | 6e 74 20 72 65 63 75 72 |static i|nt recur|
|000007d0| 73 65 67 72 6f 75 70 3b | 0a 58 0a 58 74 79 70 65 |segroup;|.X.Xtype|
|000007e0| 64 65 66 20 75 6e 69 6f | 6e 20 7b 0a 58 20 20 20 |def unio|n {.X |
|000007f0| 20 48 45 41 44 45 52 20 | 71 62 31 3b 0a 58 20 20 | HEADER |qb1;.X |
|00000800| 20 20 63 68 61 72 20 71 | 62 32 5b 50 41 43 4b 45 | char q|b2[PACKE|
|00000810| 54 53 5a 5d 3b 0a 58 7d | 20 71 75 65 72 79 62 75 |TSZ];.X}| querybu|
|00000820| 66 3b 0a 58 0a 58 65 78 | 74 65 72 6e 20 48 6f 73 |f;.X.Xex|tern Hos|
|00000830| 74 49 6e 66 6f 09 2a 64 | 65 66 61 75 6c 74 50 74 |tInfo.*d|efaultPt|
|00000840| 72 3b 0a 58 65 78 74 65 | 72 6e 20 48 6f 73 74 49 |r;.Xexte|rn HostI|
|00000850| 6e 66 6f 09 63 75 72 48 | 6f 73 74 49 6e 66 6f 3b |nfo.curH|ostInfo;|
|00000860| 0a 58 65 78 74 65 72 6e | 20 63 68 61 72 20 2a 76 |.Xextern| char *v|
|00000870| 64 6f 6d 61 69 6e 3b 0a | 58 65 78 74 65 72 6e 20 |domain;.|Xextern |
|00000880| 69 6e 74 09 71 75 65 72 | 79 54 79 70 65 3b 0a 58 |int.quer|yType;.X|
|00000890| 65 78 74 65 72 6e 20 69 | 6e 74 09 71 75 65 72 79 |extern i|nt.query|
|000008a0| 43 6c 61 73 73 3b 0a 58 | 0a 58 73 74 61 74 69 63 |Class;.X|.Xstatic|
|000008b0| 20 69 6e 74 20 73 6f 63 | 6b 46 44 20 3d 20 2d 31 | int soc|kFD = -1|
|000008c0| 3b 0a 58 73 74 61 74 69 | 63 20 69 6e 74 20 4c 69 |;.Xstati|c int Li|
|000008d0| 73 74 53 75 62 72 28 29 | 3b 0a 58 0a 58 73 74 61 |stSubr()|;.X.Xsta|
|000008e0| 74 69 63 20 76 6f 69 64 | 20 41 64 64 41 6c 69 61 |tic void| AddAlia|
|000008f0| 73 28 29 3b 0a 58 73 74 | 61 74 69 63 20 76 6f 69 |s();.Xst|atic voi|
|00000900| 64 20 43 68 61 6e 67 65 | 4d 61 69 6c 4c 69 73 74 |d Change|MailList|
|00000910| 28 29 3b 0a 58 73 74 61 | 74 69 63 20 76 6f 69 64 |();.Xsta|tic void|
|00000920| 20 43 68 61 6e 67 65 41 | 64 64 72 28 29 3b 0a 58 | ChangeA|ddr();.X|
|00000930| 73 74 61 74 69 63 20 76 | 6f 69 64 20 43 68 61 6e |static v|oid Chan|
|00000940| 67 65 4d 61 69 6c 42 6f | 78 28 29 3b 0a 58 73 74 |geMailBo|x();.Xst|
|00000950| 61 74 69 63 20 76 6f 69 | 64 20 41 64 64 4d 61 69 |atic voi|d AddMai|
|00000960| 6c 4c 69 73 74 4d 65 6d | 62 65 72 28 29 3b 0a 58 |lListMem|ber();.X|
|00000970| 73 74 61 74 69 63 20 76 | 6f 69 64 20 43 68 61 6e |static v|oid Chan|
|00000980| 67 65 55 47 49 44 28 29 | 3b 0a 58 73 74 61 74 69 |geUGID()|;.Xstati|
|00000990| 63 20 76 6f 69 64 20 43 | 68 61 6e 67 65 48 49 6e |c void C|hangeHIn|
|000009a0| 66 6f 28 29 3b 0a 58 23 | 69 66 64 65 66 20 45 4d |fo();.X#|ifdef EM|
|000009b0| 55 4c 41 54 45 5f 48 45 | 53 49 4f 44 0a 58 73 74 |ULATE_HE|SIOD.Xst|
|000009c0| 61 74 69 63 20 76 6f 69 | 64 20 43 68 61 6e 67 65 |atic voi|d Change|
|000009d0| 54 65 78 74 28 29 3b 0a | 58 23 65 6e 64 69 66 20 |Text();.|X#endif |
|000009e0| 2f 2a 20 45 4d 55 4c 41 | 54 45 5f 48 45 53 49 4f |/* EMULA|TE_HESIO|
|000009f0| 44 20 2a 2f 0a 58 2f 2a | 0a 58 20 2a 20 20 44 75 |D */.X/*|.X * Du|
|00000a00| 72 69 6e 67 20 61 20 6c | 69 73 74 69 6e 67 20 74 |ring a l|isting t|
|00000a10| 6f 20 61 20 66 69 6c 65 | 2c 20 68 61 73 68 20 6d |o a file|, hash m|
|00000a20| 61 72 6b 73 20 61 72 65 | 20 70 72 69 6e 74 65 64 |arks are| printed|
|00000a30| 0a 58 20 2a 20 20 65 76 | 65 72 79 20 48 41 53 48 |.X * ev|ery HASH|
|00000a40| 5f 53 49 5a 45 20 72 65 | 63 6f 72 64 73 2e 0a 58 |_SIZE re|cords..X|
|00000a50| 20 2a 2f 0a 58 0a 58 23 | 64 65 66 69 6e 65 20 48 | */.X.X#|define H|
|00000a60| 41 53 48 5f 53 49 5a 45 | 20 35 30 0a 58 0a 58 0c |ASH_SIZE| 50.X.X.|
|00000a70| 0a 58 2f 2a 0a 58 20 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.X/*.X *|********|
|00000a80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000aa0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000ab0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000ac0| 2a 2a 2a 2a 2a 2a 0a 58 | 20 2a 0a 58 20 2a 20 20 |******.X| *.X * |
|00000ad0| 4c 6f 61 64 48 6f 73 74 | 73 20 2d 2d 0a 58 20 2a |LoadHost|s --.X *|
|00000ae0| 0a 58 20 2a 09 52 65 71 | 75 65 73 74 73 20 74 68 |.X *.Req|uests th|
|00000af0| 65 20 6e 61 6d 65 20 73 | 65 72 76 65 72 20 74 6f |e name s|erver to|
|00000b00| 20 64 6f 20 61 20 7a 6f | 6e 65 20 74 72 61 6e 73 | do a zo|ne trans|
|00000b10| 66 65 72 20 73 6f 20 77 | 65 0a 58 20 2a 09 66 69 |fer so w|e.X *.fi|
|00000b20| 6e 64 20 6f 75 74 20 77 | 68 61 74 20 68 6f 73 74 |nd out w|hat host|
|00000b30| 73 20 69 74 20 6b 6e 6f | 77 73 20 61 62 6f 75 74 |s it kno|ws about|
|00000b40| 2e 0a 58 20 2a 0a 58 20 | 2a 09 46 6f 72 20 4c 6f |..X *.X |*.For Lo|
|00000b50| 61 64 48 6f 73 74 73 2c | 20 74 68 65 72 65 20 61 |adHosts,| there a|
|00000b60| 72 65 20 66 69 76 65 20 | 74 79 70 65 73 20 6f 66 |re five |types of|
|00000b70| 20 6f 75 74 70 75 74 3a | 0a 58 20 2a 0a 58 20 2a | output:|.X *.X *|
|00000b80| 09 54 6f 20 73 65 65 20 | 61 6c 6c 20 74 79 70 65 |.To see |all type|
|00000b90| 73 20 6f 66 20 69 6e 66 | 6f 72 6d 61 74 69 6f 6e |s of inf|ormation|
|00000ba0| 20 73 6f 72 74 65 64 20 | 62 79 20 6e 61 6d 65 2c | sorted |by name,|
|00000bb0| 20 64 6f 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e | do the |followin|
|00000bc0| 67 3a 0a 58 20 2a 09 20 | 20 6c 73 20 2d 64 20 64 |g:.X *. | ls -d d|
|00000bd0| 6f 6d 61 69 6e 2e 65 64 | 75 20 3e 20 66 69 6c 65 |omain.ed|u > file|
|00000be0| 0a 58 20 2a 09 20 20 76 | 69 65 77 20 66 69 6c 65 |.X *. v|iew file|
|00000bf0| 0a 58 20 2a 0a 58 20 2a | 20 20 52 65 73 75 6c 74 |.X *.X *| Result|
|00000c00| 73 3a 0a 58 20 2a 09 53 | 55 43 43 45 53 53 09 09 |s:.X *.S|UCCESS..|
|00000c10| 74 68 65 20 6c 69 73 74 | 69 6e 67 20 77 61 73 20 |the list|ing was |
|00000c20| 73 75 63 63 65 73 73 66 | 75 6c 2e 0a 58 20 2a 09 |successf|ul..X *.|
|00000c30| 45 52 52 4f 52 09 09 74 | 68 65 20 73 65 72 76 65 |ERROR..t|he serve|
|00000c40| 72 20 63 6f 75 6c 64 20 | 6e 6f 74 20 62 65 20 63 |r could |not be c|
|00000c50| 6f 6e 74 61 63 74 65 64 | 20 62 65 63 61 75 73 65 |ontacted| because|
|00000c60| 0a 58 20 2a 09 09 09 61 | 20 73 6f 63 6b 65 74 20 |.X *...a| socket |
|00000c70| 63 6f 75 6c 64 20 6e 6f | 74 20 62 65 20 6f 62 74 |could no|t be obt|
|00000c80| 61 69 6e 65 64 20 6f 72 | 20 61 6e 20 65 72 72 6f |ained or| an erro|
|00000c90| 72 0a 58 20 2a 09 09 09 | 6f 63 63 75 72 65 64 20 |r.X *...|occured |
|00000ca0| 77 68 69 6c 65 20 72 65 | 63 65 69 76 69 6e 67 2c |while re|ceiving,|
|00000cb0| 20 6f 72 20 74 68 65 20 | 6f 75 74 70 75 74 20 66 | or the |output f|
|00000cc0| 69 6c 65 0a 58 20 2a 09 | 09 09 63 6f 75 6c 64 20 |ile.X *.|..could |
|00000cd0| 6e 6f 74 20 62 65 20 6f | 70 65 6e 65 64 2e 0a 58 |not be o|pened..X|
|00000ce0| 20 2a 0a 58 20 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *.X ***|********|
|00000cf0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d30| 2a 2a 2a 2a 0a 58 20 2a | 2f 0a 58 0a 58 76 6f 69 |****.X *|/.X.Xvoi|
|00000d40| 64 0a 58 4c 6f 61 64 48 | 6f 73 74 73 28 64 6f 6d |d.XLoadH|osts(dom|
|00000d50| 61 69 6e 29 0a 58 09 63 | 68 61 72 20 2a 64 6f 6d |ain).X.c|har *dom|
|00000d60| 61 69 6e 3b 0a 58 7b 0a | 58 09 69 6e 74 20 72 65 |ain;.X{.|X.int re|
|00000d70| 73 75 6c 74 3b 0a 58 0a | 58 09 69 66 20 28 64 6f |sult;.X.|X.if (do|
|00000d80| 6d 61 69 6e 20 26 26 20 | 2a 64 6f 6d 61 69 6e 29 |main && |*domain)|
|00000d90| 0a 58 09 7b 0a 58 09 20 | 20 20 20 72 65 73 75 6c |.X.{.X. | resul|
|00000da0| 74 20 3d 20 4c 69 73 74 | 53 75 62 72 28 64 6f 6d |t = List|Subr(dom|
|00000db0| 61 69 6e 29 3b 0a 58 09 | 20 20 20 20 69 66 20 28 |ain);.X.| if (|
|00000dc0| 72 65 73 75 6c 74 20 21 | 3d 20 53 55 43 43 45 53 |result !|= SUCCES|
|00000dd0| 53 29 0a 58 09 09 66 70 | 72 69 6e 74 66 28 73 74 |S).X..fp|rintf(st|
|00000de0| 64 65 72 72 2c 20 22 2a | 2a 2a 20 43 61 6e 27 74 |derr, "*|** Can't|
|00000df0| 20 6c 69 73 74 20 64 6f | 6d 61 69 6e 20 25 73 3a | list do|main %s:|
|00000e00| 20 25 73 5c 6e 22 2c 20 | 0a 58 09 09 09 64 6f 6d | %s\n", |.X...dom|
|00000e10| 61 69 6e 2c 20 44 65 63 | 6f 64 65 45 72 72 6f 72 |ain, Dec|odeError|
|00000e20| 28 72 65 73 75 6c 74 29 | 29 3b 0a 58 09 7d 0a 58 |(result)|);.X.}.X|
|00000e30| 09 65 6c 73 65 0a 58 09 | 7b 0a 58 09 20 20 20 20 |.else.X.|{.X. |
|00000e40| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 20 |fprintf(|stderr, |
|00000e50| 22 2a 2a 2a 20 6e 73 32 | 74 61 62 3a 20 65 6d 70 |"*** ns2|tab: emp|
|00000e60| 74 79 20 64 6f 6d 61 69 | 6e 5c 6e 22 29 3b 0a 58 |ty domai|n\n");.X|
|00000e70| 09 7d 0a 58 09 20 20 20 | 20 72 65 74 75 72 6e 3b |.}.X. | return;|
|00000e80| 0a 58 7d 0a 58 0a 58 73 | 74 72 75 63 74 20 6d 69 |.X}.X.Xs|truct mi|
|00000e90| 6e 66 6f 5f 65 6e 74 20 | 7b 0a 58 20 20 20 20 63 |nfo_ent |{.X c|
|00000ea0| 68 61 72 20 6e 61 6d 65 | 5b 33 32 5d 3b 0a 58 20 |har name|[32];.X |
|00000eb0| 20 20 20 63 68 61 72 20 | 72 65 71 75 65 73 74 5b | char |request[|
|00000ec0| 33 32 5d 3b 0a 58 20 20 | 20 20 63 68 61 72 20 65 |32];.X | char e|
|00000ed0| 72 72 6f 72 73 5b 33 32 | 5d 3b 0a 58 20 20 20 20 |rrors[32|];.X |
|00000ee0| 76 74 61 62 6c 65 20 74 | 61 62 6c 65 3b 20 2f 2a |vtable t|able; /*|
|00000ef0| 20 54 61 62 6c 65 20 66 | 6f 72 20 74 68 65 20 6d | Table f|or the m|
|00000f00| 65 6d 62 65 72 73 20 2a | 2f 0a 58 7d 3b 0a 58 73 |embers *|/.X};.Xs|
|00000f10| 74 72 75 63 74 20 6d 67 | 5f 65 6e 74 20 7b 0a 58 |truct mg|_ent {.X|
|00000f20| 20 20 20 20 63 68 61 72 | 20 6d 65 6d 62 65 72 5b | char| member[|
|00000f30| 33 32 5d 3b 0a 58 7d 3b | 0a 58 0a 58 73 74 72 75 |32];.X};|.X.Xstru|
|00000f40| 63 74 20 6d 62 5f 65 6e | 74 20 7b 0a 58 20 20 20 |ct mb_en|t {.X |
|00000f50| 20 63 68 61 72 20 6e 61 | 6d 65 5b 33 32 5d 3b 0a | char na|me[32];.|
|00000f60| 58 20 20 20 20 63 68 61 | 72 20 6d 61 69 6c 62 6f |X cha|r mailbo|
|00000f70| 78 5b 33 32 5d 3b 0a 58 | 20 20 20 20 69 6e 74 20 |x[32];.X| int |
|00000f80| 71 74 79 70 65 3b 0a 58 | 20 20 20 20 63 68 61 72 |qtype;.X| char|
|00000f90| 20 2a 67 65 63 6f 73 3b | 0a 58 20 20 20 20 69 6e | *gecos;|.X in|
|00000fa0| 74 20 67 69 64 3b 0a 58 | 20 20 20 20 69 6e 74 20 |t gid;.X| int |
|00000fb0| 75 69 64 3b 0a 58 7d 3b | 0a 58 0a 58 73 74 72 75 |uid;.X};|.X.Xstru|
|00000fc0| 63 74 20 68 6f 73 74 5f | 65 6e 74 20 7b 0a 58 20 |ct host_|ent {.X |
|00000fd0| 20 20 20 63 68 61 72 20 | 6e 61 6d 65 5b 33 32 5d | char |name[32]|
|00000fe0| 3b 0a 58 20 20 20 20 63 | 68 61 72 20 2a 6d 61 63 |;.X c|har *mac|
|00000ff0| 68 74 79 70 65 3b 0a 58 | 20 20 20 20 63 68 61 72 |htype;.X| char|
|00001000| 20 2a 6f 73 74 79 70 65 | 3b 0a 58 20 20 20 20 76 | *ostype|;.X v|
|00001010| 74 61 62 6c 65 20 61 6c | 69 61 73 65 73 3b 0a 58 |table al|iases;.X|
|00001020| 20 20 20 20 76 74 61 62 | 6c 65 20 69 70 61 64 64 | vtab|le ipadd|
|00001030| 72 3b 0a 58 7d 3b 0a 58 | 73 74 72 75 63 74 20 68 |r;.X};.X|struct h|
|00001040| 6f 73 74 5f 61 6c 69 20 | 7b 0a 58 20 20 20 20 63 |ost_ali |{.X c|
|00001050| 68 61 72 20 6e 61 6d 65 | 5b 33 32 5d 3b 0a 58 7d |har name|[32];.X}|
|00001060| 3b 0a 58 73 74 72 75 63 | 74 20 68 6f 73 74 5f 69 |;.Xstruc|t host_i|
|00001070| 70 20 7b 0a 58 20 20 20 | 20 69 6e 74 20 61 64 64 |p {.X | int add|
|00001080| 72 3b 0a 58 20 20 20 20 | 69 6e 74 20 75 73 65 64 |r;.X |int used|
|00001090| 3b 0a 58 7d 3b 0a 58 0a | 58 73 74 72 75 63 74 20 |;.X};.X.|Xstruct |
|000010a0| 74 78 74 5f 65 6e 74 20 | 7b 0a 58 20 20 20 20 63 |txt_ent |{.X c|
|000010b0| 68 61 72 20 6e 61 6d 65 | 5b 33 32 5d 3b 0a 58 20 |har name|[32];.X |
|000010c0| 20 20 20 63 68 61 72 20 | 2a 74 78 74 3b 0a 58 7d | char |*txt;.X}|
|000010d0| 3b 0a 58 0a 58 73 74 72 | 75 63 74 20 6e 73 5f 65 |;.X.Xstr|uct ns_e|
|000010e0| 6e 74 20 7b 0a 58 20 20 | 20 20 63 68 61 72 20 6e |nt {.X | char n|
|000010f0| 61 6d 65 5b 33 32 5d 3b | 0a 58 20 20 20 20 69 6e |ame[32];|.X in|
|00001100| 74 20 69 73 5f 65 78 70 | 6c 69 63 69 74 3b 0a 58 |t is_exp|licit;.X|
|00001110| 7d 3b 0a 58 76 74 61 62 | 6c 65 20 73 75 62 64 6f |};.Xvtab|le subdo|
|00001120| 6d 61 69 6e 73 3b 20 2f | 2a 20 54 61 62 6c 65 20 |mains; /|* Table |
|00001130| 74 6f 20 68 6f 6c 64 20 | 73 75 62 64 6f 6d 61 69 |to hold |subdomai|
|00001140| 6e 20 6c 69 73 74 20 2a | 2f 0a 58 0a 58 76 6f 69 |n list *|/.X.Xvoi|
|00001150| 64 20 2a 6d 61 69 6c 74 | 61 62 3b 20 2f 2a 20 54 |d *mailt|ab; /* T|
|00001160| 68 65 20 67 6c 6f 62 61 | 6c 20 68 61 73 68 20 74 |he globa|l hash t|
|00001170| 61 62 6c 65 20 66 6f 72 | 20 6d 61 69 6c 6c 69 73 |able for| maillis|
|00001180| 74 73 20 2a 2f 0a 58 76 | 6f 69 64 20 2a 6d 62 5f |ts */.Xv|oid *mb_|
|00001190| 74 61 62 3b 20 2f 2a 20 | 54 68 65 20 68 61 73 68 |tab; /* |The hash|
|000011a0| 20 74 61 62 6c 65 20 66 | 6f 72 20 6d 61 69 6c 62 | table f|or mailb|
|000011b0| 6f 78 65 73 20 2a 2f 0a | 58 76 6f 69 64 20 2a 68 |oxes */.|Xvoid *h|
|000011c0| 6f 73 74 5f 74 61 62 3b | 0a 58 23 69 66 64 65 66 |ost_tab;|.X#ifdef|
|000011d0| 20 45 4d 55 4c 41 54 45 | 5f 48 45 53 49 4f 44 0a | EMULATE|_HESIOD.|
|000011e0| 58 76 6f 69 64 20 2a 74 | 78 74 5f 74 61 62 3b 0a |Xvoid *t|xt_tab;.|
|000011f0| 58 23 65 6e 64 69 66 20 | 2f 2a 20 45 4d 55 4c 41 |X#endif |/* EMULA|
|00001200| 54 45 5f 48 45 53 49 4f | 44 20 2a 2f 0a 58 0a 58 |TE_HESIO|D */.X.X|
|00001210| 69 6e 74 0a 58 6e 73 5f | 63 6d 70 28 6e 31 2c 6e |int.Xns_|cmp(n1,n|
|00001220| 32 29 0a 58 20 20 20 20 | 73 74 72 75 63 74 20 6e |2).X |struct n|
|00001230| 73 5f 65 6e 74 20 2a 6e | 31 2c 2a 6e 32 3b 0a 58 |s_ent *n|1,*n2;.X|
|00001240| 7b 0a 58 20 20 20 20 72 | 65 74 75 72 6e 20 73 74 |{.X r|eturn st|
|00001250| 72 6e 63 6d 70 28 6e 31 | 2d 3e 6e 61 6d 65 2c 6e |rncmp(n1|->name,n|
|00001260| 32 2d 3e 6e 61 6d 65 2c | 73 69 7a 65 6f 66 28 6e |2->name,|sizeof(n|
|00001270| 31 2d 3e 6e 61 6d 65 29 | 29 3b 0a 58 7d 0a 58 0a |1->name)|);.X}.X.|
|00001280| 58 6e 73 5f 61 64 64 28 | 6e 61 6d 65 2c 69 73 5f |Xns_add(|name,is_|
|00001290| 65 78 70 6c 69 63 69 74 | 29 0a 58 20 20 20 20 63 |explicit|).X c|
|000012a0| 68 61 72 20 2a 6e 61 6d | 65 3b 0a 58 20 20 20 20 |har *nam|e;.X |
|000012b0| 69 6e 74 20 69 73 5f 65 | 78 70 6c 69 63 69 74 3b |int is_e|xplicit;|
|000012c0| 0a 58 7b 0a 58 20 20 20 | 20 73 74 72 75 63 74 20 |.X{.X | struct |
|000012d0| 6e 73 5f 65 6e 74 20 6e | 62 3b 0a 58 0a 58 20 20 |ns_ent n|b;.X.X |
|000012e0| 20 20 6d 65 6d 63 70 79 | 28 6e 62 2e 6e 61 6d 65 | memcpy|(nb.name|
|000012f0| 2c 6e 61 6d 65 2c 73 69 | 7a 65 6f 66 28 6e 62 2e |,name,si|zeof(nb.|
|00001300| 6e 61 6d 65 29 29 3b 0a | 58 20 20 20 20 6e 62 2e |name));.|X nb.|
|00001310| 69 73 5f 65 78 70 6c 69 | 63 69 74 20 3d 20 69 73 |is_expli|cit = is|
|00001320| 5f 65 78 70 6c 69 63 69 | 74 3b 0a 58 20 20 20 20 |_explici|t;.X |
|00001330| 69 66 28 21 56 54 61 62 | 6c 65 4c 6f 6f 6b 75 70 |if(!VTab|leLookup|
|00001340| 28 26 73 75 62 64 6f 6d | 61 69 6e 73 2c 26 6e 62 |(&subdom|ains,&nb|
|00001350| 29 29 0a 58 09 56 54 61 | 62 6c 65 41 70 70 65 6e |)).X.VTa|bleAppen|
|00001360| 64 28 26 73 75 62 64 6f | 6d 61 69 6e 73 2c 28 63 |d(&subdo|mains,(c|
|00001370| 68 61 72 2a 29 26 6e 62 | 29 3b 0a 58 7d 0a 58 0a |har*)&nb|);.X}.X.|
|00001380| 58 69 6e 74 0a 58 49 6e | 69 74 54 61 62 6c 65 73 |Xint.XIn|itTables|
|00001390| 28 29 0a 58 7b 0a 58 20 | 20 20 20 6d 61 69 6c 74 |().X{.X | mailt|
|000013a0| 61 62 20 3d 20 68 74 61 | 62 5f 69 6e 69 74 28 31 |ab = hta|b_init(1|
|000013b0| 37 2c 4e 55 4c 4c 2c 4e | 55 4c 4c 2c 4e 55 4c 4c |7,NULL,N|ULL,NULL|
|000013c0| 29 3b 0a 58 20 20 20 20 | 6d 62 5f 74 61 62 20 3d |);.X |mb_tab =|
|000013d0| 20 68 74 61 62 5f 69 6e | 69 74 28 32 33 31 2c 4e | htab_in|it(231,N|
|000013e0| 55 4c 4c 2c 4e 55 4c 4c | 2c 4e 55 4c 4c 29 3b 0a |ULL,NULL|,NULL);.|
|000013f0| 58 20 20 20 20 68 6f 73 | 74 5f 74 61 62 20 3d 20 |X hos|t_tab = |
|00001400| 68 74 61 62 5f 69 6e 69 | 74 28 32 33 31 2c 4e 55 |htab_ini|t(231,NU|
|00001410| 4c 4c 2c 4e 55 4c 4c 2c | 4e 55 4c 4c 29 3b 0a 58 |LL,NULL,|NULL);.X|
|00001420| 20 20 20 20 56 54 61 62 | 6c 65 53 65 74 28 26 73 | VTab|leSet(&s|
|00001430| 75 62 64 6f 6d 61 69 6e | 73 2c 73 69 7a 65 6f 66 |ubdomain|s,sizeof|
|00001440| 28 73 74 72 75 63 74 20 | 6e 73 5f 65 6e 74 29 29 |(struct |ns_ent))|
|00001450| 3b 0a 58 20 20 20 20 56 | 54 61 62 6c 65 53 65 74 |;.X V|TableSet|
|00001460| 43 6d 70 28 26 73 75 62 | 64 6f 6d 61 69 6e 73 2c |Cmp(&sub|domains,|
|00001470| 6e 73 5f 63 6d 70 29 3b | 0a 58 23 69 66 64 65 66 |ns_cmp);|.X#ifdef|
|00001480| 20 45 4d 55 4c 41 54 45 | 5f 48 45 53 49 4f 44 0a | EMULATE|_HESIOD.|
|00001490| 58 20 20 20 20 74 78 74 | 5f 74 61 62 20 3d 20 68 |X txt|_tab = h|
|000014a0| 74 61 62 5f 69 6e 69 74 | 28 31 37 2c 4e 55 4c 4c |tab_init|(17,NULL|
|000014b0| 2c 4e 55 4c 4c 2c 4e 55 | 4c 4c 29 3b 0a 58 23 65 |,NULL,NU|LL);.X#e|
|000014c0| 6e 64 69 66 20 2f 2a 20 | 45 4d 55 4c 41 54 45 5f |ndif /* |EMULATE_|
|000014d0| 48 45 53 49 4f 44 20 2a | 2f 0a 58 7d 0a 58 0a 58 |HESIOD *|/.X}.X.X|
|000014e0| 73 74 61 74 69 63 20 69 | 6e 74 0a 58 4c 69 73 74 |static i|nt.XList|
|000014f0| 53 75 62 72 28 64 6f 6d | 61 69 6e 29 0a 58 09 63 |Subr(dom|ain).X.c|
|00001500| 68 61 72 20 2a 64 6f 6d | 61 69 6e 3b 0a 58 7b 0a |har *dom|ain;.X{.|
|00001510| 58 09 71 75 65 72 79 62 | 75 66 09 09 62 75 66 3b |X.queryb|uf..buf;|
|00001520| 0a 58 09 73 74 72 75 63 | 74 20 73 6f 63 6b 61 64 |.X.struc|t sockad|
|00001530| 64 72 5f 69 6e 09 73 69 | 6e 3b 0a 58 09 48 45 41 |dr_in.si|n;.X.HEA|
|00001540| 44 45 52 09 09 09 2a 68 | 65 61 64 65 72 50 74 72 |DER...*h|eaderPtr|
|00001550| 3b 0a 58 09 69 6e 74 09 | 09 09 6d 73 67 6c 65 6e |;.X.int.|..msglen|
|00001560| 3b 0a 58 09 69 6e 74 09 | 09 09 61 6d 74 54 6f 52 |;.X.int.|..amtToR|
|00001570| 65 61 64 3b 0a 58 09 69 | 6e 74 09 09 09 6e 75 6d |ead;.X.i|nt...num|
|00001580| 52 65 61 64 3b 0a 58 09 | 69 6e 74 09 09 09 6e 75 |Read;.X.|int...nu|
|00001590| 6d 41 6e 73 77 65 72 73 | 20 3d 20 30 3b 0a 58 09 |mAnswers| = 0;.X.|
|000015a0| 69 6e 74 09 09 09 72 65 | 73 75 6c 74 3b 0a 58 09 |int...re|sult;.X.|
|000015b0| 69 6e 74 09 09 09 73 6f | 61 63 6e 74 20 3d 20 30 |int...so|acnt = 0|
|000015c0| 3b 0a 58 09 75 5f 73 68 | 6f 72 74 09 09 09 6c 65 |;.X.u_sh|ort...le|
|000015d0| 6e 3b 0a 58 09 63 68 61 | 72 09 09 09 2a 63 70 2c |n;.X.cha|r...*cp,|
|000015e0| 20 2a 6e 6d 70 3b 0a 58 | 09 63 68 61 72 09 09 09 | *nmp;.X|.char...|
|000015f0| 64 6e 61 6d 65 5b 32 5d | 5b 4e 41 4d 45 5f 4c 45 |dname[2]|[NAME_LE|
|00001600| 4e 5d 3b 0a 58 09 63 68 | 61 72 09 09 09 66 69 6c |N];.X.ch|ar...fil|
|00001610| 65 5b 4e 41 4d 45 5f 4c | 45 4e 5d 3b 0a 58 09 73 |e[NAME_L|EN];.X.s|
|00001620| 74 61 74 69 63 20 63 68 | 61 72 09 09 2a 61 6e 73 |tatic ch|ar..*ans|
|00001630| 77 65 72 20 3d 20 4e 55 | 4c 4c 3b 0a 58 09 73 74 |wer = NU|LL;.X.st|
|00001640| 61 74 69 63 20 69 6e 74 | 09 09 61 6e 73 77 65 72 |atic int|..answer|
|00001650| 4c 65 6e 20 3d 20 30 3b | 0a 58 09 65 6e 75 6d 20 |Len = 0;|.X.enum |
|00001660| 7b 0a 58 09 20 20 20 20 | 4e 4f 5f 45 52 52 4f 52 |{.X. |NO_ERROR|
|00001670| 53 2c 0a 58 09 20 20 20 | 20 45 52 52 5f 52 45 41 |S,.X. | ERR_REA|
|00001680| 44 49 4e 47 5f 4c 45 4e | 2c 0a 58 09 20 20 20 20 |DING_LEN|,.X. |
|00001690| 45 52 52 5f 52 45 41 44 | 49 4e 47 5f 4d 53 47 2c |ERR_READ|ING_MSG,|
|000016a0| 0a 58 09 20 20 20 20 45 | 52 52 5f 50 52 49 4e 54 |.X. E|RR_PRINT|
|000016b0| 49 4e 47 2c 0a 58 09 7d | 20 65 72 72 6f 72 20 3d |ING,.X.}| error =|
|000016c0| 20 4e 4f 5f 45 52 52 4f | 52 53 3b 0a 58 0a 58 09 | NO_ERRO|RS;.X.X.|
|000016d0| 2f 2a 0a 58 09 20 2a 20 | 20 43 72 65 61 74 65 20 |/*.X. * | Create |
|000016e0| 61 20 71 75 65 72 79 20 | 70 61 63 6b 65 74 20 66 |a query |packet f|
|000016f0| 6f 72 20 74 68 65 20 72 | 65 71 75 65 73 74 65 64 |or the r|equested|
|00001700| 20 64 6f 6d 61 69 6e 20 | 6e 61 6d 65 2e 0a 58 09 | domain |name..X.|
|00001710| 20 2a 2f 0a 58 09 6d 73 | 67 6c 65 6e 20 3d 20 72 | */.X.ms|glen = r|
|00001720| 65 73 5f 6d 6b 71 75 65 | 72 79 28 51 55 45 52 59 |es_mkque|ry(QUERY|
|00001730| 2c 20 64 6f 6d 61 69 6e | 2c 20 71 75 65 72 79 43 |, domain|, queryC|
|00001740| 6c 61 73 73 2c 20 54 5f | 41 58 46 52 2c 0a 58 09 |lass, T_|AXFR,.X.|
|00001750| 09 09 09 28 63 68 61 72 | 20 2a 29 30 2c 20 30 2c |...(char| *)0, 0,|
|00001760| 20 28 63 68 61 72 20 2a | 29 30 2c 0a 58 09 09 09 | (char *|)0,.X...|
|00001770| 09 28 63 68 61 72 20 2a | 29 20 26 62 75 66 2c 20 |.(char *|) &buf, |
|00001780| 73 69 7a 65 6f 66 28 62 | 75 66 29 29 3b 0a 58 09 |sizeof(b|uf));.X.|
|00001790| 69 66 20 28 6d 73 67 6c | 65 6e 20 3c 20 30 29 20 |if (msgl|en < 0) |
|000017a0| 7b 0a 58 09 20 20 20 20 | 69 66 20 28 5f 72 65 73 |{.X. |if (_res|
|000017b0| 2e 6f 70 74 69 6f 6e 73 | 20 26 20 52 45 53 5f 44 |.options| & RES_D|
|000017c0| 45 42 55 47 29 20 7b 0a | 58 09 09 66 70 72 69 6e |EBUG) {.|X..fprin|
|000017d0| 74 66 28 73 74 64 65 72 | 72 2c 20 22 2a 2a 2a 20 |tf(stder|r, "*** |
|000017e0| 6c 73 3a 20 72 65 73 5f | 6d 6b 71 75 65 72 79 20 |ls: res_|mkquery |
|000017f0| 66 61 69 6c 65 64 5c 6e | 22 29 3b 0a 58 09 20 20 |failed\n|");.X. |
|00001800| 20 20 7d 0a 58 09 20 20 | 20 20 72 65 74 75 72 6e | }.X. | return|
|00001810| 20 28 45 52 52 4f 52 29 | 3b 0a 58 09 7d 0a 58 0a | (ERROR)|;.X.}.X.|
|00001820| 58 09 62 7a 65 72 6f 28 | 28 63 68 61 72 20 2a 29 |X.bzero(|(char *)|
|00001830| 26 73 69 6e 2c 20 73 69 | 7a 65 6f 66 28 73 69 6e |&sin, si|zeof(sin|
|00001840| 29 29 3b 0a 58 09 73 69 | 6e 2e 73 69 6e 5f 66 61 |));.X.si|n.sin_fa|
|00001850| 6d 69 6c 79 09 3d 20 41 | 46 5f 49 4e 45 54 3b 0a |mily.= A|F_INET;.|
|00001860| 58 09 73 69 6e 2e 73 69 | 6e 5f 70 6f 72 74 09 3d |X.sin.si|n_port.=|
|00001870| 20 68 74 6f 6e 73 28 6e | 73 70 6f 72 74 29 3b 0a | htons(n|sport);.|
|00001880| 58 0a 58 09 2f 2a 0a 58 | 09 20 2a 20 20 43 68 65 |X.X./*.X|. * Che|
|00001890| 63 6b 20 74 6f 20 73 65 | 65 20 69 66 20 77 65 20 |ck to se|e if we |
|000018a0| 68 61 76 65 20 74 68 65 | 20 61 64 64 72 65 73 73 |have the| address|
|000018b0| 20 6f 66 20 74 68 65 20 | 73 65 72 76 65 72 20 6f | of the |server o|
|000018c0| 72 20 74 68 65 0a 58 09 | 20 2a 20 20 61 64 64 72 |r the.X.| * addr|
|000018d0| 65 73 73 20 6f 66 20 61 | 20 73 65 72 76 65 72 20 |ess of a| server |
|000018e0| 77 68 6f 20 6b 6e 6f 77 | 73 20 61 62 6f 75 74 20 |who know|s about |
|000018f0| 74 68 69 73 20 64 6f 6d | 61 69 6e 2e 0a 58 09 20 |this dom|ain..X. |
|00001900| 2a 0a 58 09 20 2a 20 20 | 46 6f 72 20 6e 6f 77 2c |*.X. * |For now,|
|00001910| 20 6a 75 73 74 20 75 73 | 65 20 74 68 65 20 66 69 | just us|e the fi|
|00001920| 72 73 74 20 61 64 64 72 | 65 73 73 20 69 6e 20 74 |rst addr|ess in t|
|00001930| 68 65 20 6c 69 73 74 2e | 0a 58 09 20 2a 2f 0a 58 |he list.|.X. */.X|
|00001940| 0a 58 09 69 66 20 28 64 | 65 66 61 75 6c 74 50 74 |.X.if (d|efaultPt|
|00001950| 72 2d 3e 61 64 64 72 4c | 69 73 74 20 21 3d 20 4e |r->addrL|ist != N|
|00001960| 55 4c 4c 29 20 7b 0a 58 | 09 20 20 73 69 6e 2e 73 |ULL) {.X|. sin.s|
|00001970| 69 6e 5f 61 64 64 72 20 | 3d 20 2a 28 73 74 72 75 |in_addr |= *(stru|
|00001980| 63 74 20 69 6e 5f 61 64 | 64 72 20 2a 29 20 64 65 |ct in_ad|dr *) de|
|00001990| 66 61 75 6c 74 50 74 72 | 2d 3e 61 64 64 72 4c 69 |faultPtr|->addrLi|
|000019a0| 73 74 5b 30 5d 3b 0a 58 | 09 7d 20 65 6c 73 65 20 |st[0];.X|.} else |
|000019b0| 7b 0a 58 09 20 20 73 69 | 6e 2e 73 69 6e 5f 61 64 |{.X. si|n.sin_ad|
|000019c0| 64 72 20 3d 20 2a 28 73 | 74 72 75 63 74 20 69 6e |dr = *(s|truct in|
|000019d0| 5f 61 64 64 72 20 2a 29 | 64 65 66 61 75 6c 74 50 |_addr *)|defaultP|
|000019e0| 74 72 2d 3e 73 65 72 76 | 65 72 73 5b 30 5d 2d 3e |tr->serv|ers[0]->|
|000019f0| 61 64 64 72 4c 69 73 74 | 5b 30 5d 3b 0a 58 09 7d |addrList|[0];.X.}|
|00001a00| 0a 58 0a 58 09 2f 2a 0a | 58 09 20 2a 20 20 53 65 |.X.X./*.|X. * Se|
|00001a10| 74 20 75 70 20 61 20 76 | 69 72 74 75 61 6c 20 63 |t up a v|irtual c|
|00001a20| 69 72 63 75 69 74 20 74 | 6f 20 74 68 65 20 73 65 |ircuit t|o the se|
|00001a30| 72 76 65 72 2e 0a 58 09 | 20 2a 2f 0a 58 09 69 66 |rver..X.| */.X.if|
|00001a40| 20 28 28 73 6f 63 6b 46 | 44 20 3d 20 73 6f 63 6b | ((sockF|D = sock|
|00001a50| 65 74 28 41 46 5f 49 4e | 45 54 2c 20 53 4f 43 4b |et(AF_IN|ET, SOCK|
|00001a60| 5f 53 54 52 45 41 4d 2c | 20 30 29 29 20 3c 20 30 |_STREAM,| 0)) < 0|
|00001a70| 29 20 7b 0a 58 09 20 20 | 20 20 70 65 72 72 6f 72 |) {.X. | perror|
|00001a80| 28 22 6c 73 3a 20 73 6f | 63 6b 65 74 22 29 3b 0a |("ls: so|cket");.|
|00001a90| 58 09 20 20 20 20 72 65 | 74 75 72 6e 28 45 52 52 |X. re|turn(ERR|
|00001aa0| 4f 52 29 3b 0a 58 09 7d | 0a 58 09 69 66 20 28 63 |OR);.X.}|.X.if (c|
|00001ab0| 6f 6e 6e 65 63 74 28 73 | 6f 63 6b 46 44 2c 20 26 |onnect(s|ockFD, &|
|00001ac0| 73 69 6e 2c 20 73 69 7a | 65 6f 66 28 73 69 6e 29 |sin, siz|eof(sin)|
|00001ad0| 29 20 3c 20 30 29 20 7b | 0a 58 09 20 20 20 20 69 |) < 0) {|.X. i|
|00001ae0| 6e 74 20 65 3b 0a 58 09 | 20 20 20 20 69 66 20 28 |nt e;.X.| if (|
|00001af0| 65 72 72 6e 6f 20 3d 3d | 20 45 43 4f 4e 4e 52 45 |errno ==| ECONNRE|
|00001b00| 46 55 53 45 44 29 20 7b | 0a 58 09 09 65 20 3d 20 |FUSED) {|.X..e = |
|00001b10| 4e 4f 5f 52 45 53 50 4f | 4e 53 45 3b 0a 58 09 20 |NO_RESPO|NSE;.X. |
|00001b20| 20 20 20 7d 20 65 6c 73 | 65 20 7b 0a 58 09 09 70 | } els|e {.X..p|
|00001b30| 65 72 72 6f 72 28 22 6c | 73 3a 20 63 6f 6e 6e 65 |error("l|s: conne|
|00001b40| 63 74 22 29 3b 0a 58 09 | 09 65 20 3d 20 45 52 52 |ct");.X.|.e = ERR|
|00001b50| 4f 52 3b 0a 58 09 20 20 | 20 20 7d 0a 58 09 20 20 |OR;.X. | }.X. |
|00001b60| 20 20 28 76 6f 69 64 29 | 20 63 6c 6f 73 65 28 73 | (void)| close(s|
|00001b70| 6f 63 6b 46 44 29 3b 0a | 58 09 20 20 20 20 73 6f |ockFD);.|X. so|
|00001b80| 63 6b 46 44 20 3d 20 2d | 31 3b 0a 58 09 20 20 20 |ckFD = -|1;.X. |
|00001b90| 20 72 65 74 75 72 6e 20 | 65 3b 0a 58 09 7d 0a 58 | return |e;.X.}.X|
|00001ba0| 0a 58 09 2f 2a 0a 58 09 | 20 2a 20 53 65 6e 64 20 |.X./*.X.| * Send |
|00001bb0| 6c 65 6e 67 74 68 20 26 | 20 6d 65 73 73 61 67 65 |length &| message|
|00001bc0| 20 66 6f 72 20 7a 6f 6e | 65 20 74 72 61 6e 73 66 | for zon|e transf|
|00001bd0| 65 72 0a 58 09 20 2a 2f | 0a 58 0a 58 20 20 20 20 |er.X. */|.X.X |
|00001be0| 20 20 20 20 6c 65 6e 20 | 3d 20 68 74 6f 6e 73 28 | len |= htons(|
|00001bf0| 6d 73 67 6c 65 6e 29 3b | 0a 58 0a 58 20 20 20 20 |msglen);|.X.X |
|00001c00| 20 20 20 20 69 66 20 28 | 77 72 69 74 65 28 73 6f | if (|write(so|
|00001c10| 63 6b 46 44 2c 20 28 63 | 68 61 72 20 2a 29 26 6c |ckFD, (c|har *)&l|
|00001c20| 65 6e 2c 20 73 69 7a 65 | 6f 66 28 6c 65 6e 29 29 |en, size|of(len))|
|00001c30| 20 21 3d 20 73 69 7a 65 | 6f 66 28 6c 65 6e 29 20 | != size|of(len) |
|00001c40| 7c 7c 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |||.X | |
|00001c50| 77 72 69 74 65 28 73 6f | 63 6b 46 44 2c 20 28 63 |write(so|ckFD, (c|
|00001c60| 68 61 72 20 2a 29 20 26 | 62 75 66 2c 20 6d 73 67 |har *) &|buf, msg|
|00001c70| 6c 65 6e 29 20 21 3d 20 | 6d 73 67 6c 65 6e 29 20 |len) != |msglen) |
|00001c80| 7b 0a 58 09 09 70 65 72 | 72 6f 72 28 22 6c 73 3a |{.X..per|ror("ls:|
|00001c90| 20 77 72 69 74 65 22 29 | 3b 0a 58 09 09 28 76 6f | write")|;.X..(vo|
|00001ca0| 69 64 29 20 63 6c 6f 73 | 65 28 73 6f 63 6b 46 44 |id) clos|e(sockFD|
|00001cb0| 29 3b 0a 58 09 09 73 6f | 63 6b 46 44 20 3d 20 2d |);.X..so|ckFD = -|
|00001cc0| 31 3b 0a 58 09 09 72 65 | 74 75 72 6e 28 45 52 52 |1;.X..re|turn(ERR|
|00001cd0| 4f 52 29 3b 0a 58 09 7d | 0a 58 0a 58 09 64 6e 61 |OR);.X.}|.X.X.dna|
|00001ce0| 6d 65 5b 30 5d 5b 30 5d | 20 3d 20 27 5c 30 27 3b |me[0][0]| = '\0';|
|00001cf0| 0a 58 09 77 68 69 6c 65 | 20 28 31 29 20 7b 0a 58 |.X.while| (1) {.X|
|00001d00| 09 20 20 20 20 75 6e 73 | 69 67 6e 65 64 20 73 68 |. uns|igned sh|
|00001d10| 6f 72 74 20 74 6d 70 3b | 0a 58 0a 58 09 20 20 20 |ort tmp;|.X.X. |
|00001d20| 20 2f 2a 0a 58 09 20 20 | 20 20 20 2a 20 52 65 61 | /*.X. | * Rea|
|00001d30| 64 20 74 68 65 20 6c 65 | 6e 67 74 68 20 6f 66 20 |d the le|ngth of |
|00001d40| 74 68 65 20 72 65 73 70 | 6f 6e 73 65 2e 0a 58 09 |the resp|onse..X.|
|00001d50| 20 20 20 20 20 2a 2f 0a | 58 0a 58 09 20 20 20 20 | */.|X.X. |
|00001d60| 63 70 20 3d 20 28 63 68 | 61 72 20 2a 29 20 26 74 |cp = (ch|ar *) &t|
|00001d70| 6d 70 3b 0a 58 09 20 20 | 20 20 61 6d 74 54 6f 52 |mp;.X. | amtToR|
|00001d80| 65 61 64 20 3d 20 73 69 | 7a 65 6f 66 28 75 5f 73 |ead = si|zeof(u_s|
|00001d90| 68 6f 72 74 29 3b 0a 58 | 09 20 20 20 20 77 68 69 |hort);.X|. whi|
|00001da0| 6c 65 20 28 61 6d 74 54 | 6f 52 65 61 64 20 3e 20 |le (amtT|oRead > |
|00001db0| 30 20 26 26 20 28 6e 75 | 6d 52 65 61 64 3d 72 65 |0 && (nu|mRead=re|
|00001dc0| 61 64 28 73 6f 63 6b 46 | 44 2c 20 63 70 2c 20 61 |ad(sockF|D, cp, a|
|00001dd0| 6d 74 54 6f 52 65 61 64 | 29 29 20 3e 20 30 29 20 |mtToRead|)) > 0) |
|00001de0| 7b 0a 58 09 09 63 70 09 | 20 20 2b 3d 20 6e 75 6d |{.X..cp.| += num|
|00001df0| 52 65 61 64 3b 0a 58 09 | 09 61 6d 74 54 6f 52 65 |Read;.X.|.amtToRe|
|00001e00| 61 64 20 2d 3d 20 6e 75 | 6d 52 65 61 64 3b 0a 58 |ad -= nu|mRead;.X|
|00001e10| 09 20 20 20 20 7d 0a 58 | 09 20 20 20 20 69 66 20 |. }.X|. if |
|00001e20| 28 6e 75 6d 52 65 61 64 | 20 3c 3d 20 30 29 20 7b |(numRead| <= 0) {|
|00001e30| 0a 58 09 09 65 72 72 6f | 72 20 3d 20 45 52 52 5f |.X..erro|r = ERR_|
|00001e40| 52 45 41 44 49 4e 47 5f | 4c 45 4e 3b 0a 58 09 09 |READING_|LEN;.X..|
|00001e50| 62 72 65 61 6b 3b 0a 58 | 09 20 20 20 20 7d 0a 58 |break;.X|. }.X|
|00001e60| 0a 58 09 20 20 20 20 69 | 66 20 28 28 6c 65 6e 20 |.X. i|f ((len |
|00001e70| 3d 20 68 74 6f 6e 73 28 | 74 6d 70 29 29 20 3d 3d |= htons(|tmp)) ==|
|00001e80| 20 30 29 20 7b 0a 58 09 | 09 62 72 65 61 6b 3b 09 | 0) {.X.|.break;.|
|00001e90| 2f 2a 20 6e 6f 74 68 69 | 6e 67 20 6c 65 66 74 20 |/* nothi|ng left |
|00001ea0| 74 6f 20 72 65 61 64 20 | 2a 2f 0a 58 09 20 20 20 |to read |*/.X. |
|00001eb0| 20 7d 0a 58 0a 58 09 20 | 20 20 20 2f 2a 0a 58 09 | }.X.X. | /*.X.|
|00001ec0| 20 20 20 20 20 2a 20 54 | 68 65 20 73 65 72 76 65 | * T|he serve|
|00001ed0| 72 20 73 65 6e 74 20 74 | 6f 6f 20 6d 75 63 68 20 |r sent t|oo much |
|00001ee0| 64 61 74 61 20 74 6f 20 | 66 69 74 20 74 68 65 20 |data to |fit the |
|00001ef0| 65 78 69 73 74 69 6e 67 | 20 62 75 66 66 65 72 20 |existing| buffer |
|00001f00| 2d 2d 0a 58 09 20 20 20 | 20 20 2a 20 61 6c 6c 6f |--.X. | * allo|
|00001f10| 63 61 74 65 20 61 20 6e | 65 77 20 6f 6e 65 2e 0a |cate a n|ew one..|
|00001f20| 58 09 20 20 20 20 20 2a | 2f 0a 58 09 20 20 20 20 |X. *|/.X. |
|00001f30| 69 66 20 28 6c 65 6e 20 | 3e 20 61 6e 73 77 65 72 |if (len |> answer|
|00001f40| 4c 65 6e 29 20 7b 0a 58 | 09 09 69 66 20 28 61 6e |Len) {.X|..if (an|
|00001f50| 73 77 65 72 4c 65 6e 20 | 21 3d 20 30 29 20 7b 0a |swerLen |!= 0) {.|
|00001f60| 58 09 09 20 20 20 20 66 | 72 65 65 28 61 6e 73 77 |X.. f|ree(answ|
|00001f70| 65 72 29 3b 0a 58 09 09 | 7d 0a 58 09 09 61 6e 73 |er);.X..|}.X..ans|
|00001f80| 77 65 72 4c 65 6e 20 3d | 20 6c 65 6e 3b 0a 58 09 |werLen =| len;.X.|
|00001f90| 09 61 6e 73 77 65 72 20 | 3d 20 6d 61 6c 6c 6f 63 |.answer |= malloc|
|00001fa0| 28 61 6e 73 77 65 72 4c | 65 6e 29 3b 0a 58 09 20 |(answerL|en);.X. |
|00001fb0| 20 20 20 7d 0a 58 0a 58 | 09 20 20 20 20 2f 2a 0a | }.X.X|. /*.|
|00001fc0| 58 09 20 20 20 20 20 2a | 20 52 65 61 64 20 74 68 |X. *| Read th|
|00001fd0| 65 20 72 65 73 70 6f 6e | 73 65 2e 0a 58 09 20 20 |e respon|se..X. |
|00001fe0| 20 20 20 2a 2f 0a 58 0a | 58 09 20 20 20 20 61 6d | */.X.|X. am|
|00001ff0| 74 54 6f 52 65 61 64 20 | 3d 20 6c 65 6e 3b 0a 58 |tToRead |= len;.X|
|00002000| 09 20 20 20 20 63 70 20 | 3d 20 61 6e 73 77 65 72 |. cp |= answer|
|00002010| 3b 0a 58 09 20 20 20 20 | 77 68 69 6c 65 20 28 61 |;.X. |while (a|
|00002020| 6d 74 54 6f 52 65 61 64 | 20 3e 20 30 20 26 26 20 |mtToRead| > 0 && |
|00002030| 28 6e 75 6d 52 65 61 64 | 3d 72 65 61 64 28 73 6f |(numRead|=read(so|
|00002040| 63 6b 46 44 2c 20 63 70 | 2c 20 61 6d 74 54 6f 52 |ckFD, cp|, amtToR|
|00002050| 65 61 64 29 29 20 3e 20 | 30 29 20 7b 0a 58 09 09 |ead)) > |0) {.X..|
|00002060| 63 70 20 2b 3d 20 6e 75 | 6d 52 65 61 64 3b 0a 58 |cp += nu|mRead;.X|
|00002070| 09 09 61 6d 74 54 6f 52 | 65 61 64 20 2d 3d 20 6e |..amtToR|ead -= n|
|00002080| 75 6d 52 65 61 64 3b 0a | 58 09 20 20 20 20 7d 0a |umRead;.|X. }.|
|00002090| 58 09 20 20 20 20 69 66 | 20 28 6e 75 6d 52 65 61 |X. if| (numRea|
|000020a0| 64 20 3c 3d 20 30 29 20 | 7b 0a 58 09 09 65 72 72 |d <= 0) |{.X..err|
|000020b0| 6f 72 20 3d 20 45 52 52 | 5f 52 45 41 44 49 4e 47 |or = ERR|_READING|
|000020c0| 5f 4d 53 47 3b 0a 58 09 | 09 62 72 65 61 6b 3b 0a |_MSG;.X.|.break;.|
|000020d0| 58 09 20 20 20 20 7d 0a | 58 0a 58 09 20 20 20 20 |X. }.|X.X. |
|000020e0| 72 65 73 75 6c 74 20 3d | 20 50 72 69 6e 74 4c 69 |result =| PrintLi|
|000020f0| 73 74 49 6e 66 6f 28 66 | 69 6c 65 50 74 72 2c 20 |stInfo(f|ilePtr, |
|00002100| 61 6e 73 77 65 72 2c 20 | 63 70 2c 20 64 6e 61 6d |answer, |cp, dnam|
|00002110| 65 5b 30 5d 29 3b 0a 58 | 09 20 20 20 20 69 66 20 |e[0]);.X|. if |
|00002120| 28 72 65 73 75 6c 74 20 | 21 3d 20 53 55 43 43 45 |(result |!= SUCCE|
|00002130| 53 53 29 20 7b 0a 58 09 | 09 65 72 72 6f 72 20 3d |SS) {.X.|.error =|
|00002140| 20 45 52 52 5f 50 52 49 | 4e 54 49 4e 47 3b 0a 58 | ERR_PRI|NTING;.X|
|00002150| 09 09 62 72 65 61 6b 3b | 0a 58 09 20 20 20 20 7d |..break;|.X. }|
|00002160| 0a 58 0a 58 09 20 20 20 | 20 6e 75 6d 41 6e 73 77 |.X.X. | numAnsw|
|00002170| 65 72 73 2b 2b 3b 0a 58 | 09 20 20 20 20 63 70 20 |ers++;.X|. cp |
|00002180| 3d 20 61 6e 73 77 65 72 | 20 2b 20 73 69 7a 65 6f |= answer| + sizeo|
|00002190| 66 28 48 45 41 44 45 52 | 29 3b 0a 58 09 20 20 20 |f(HEADER|);.X. |
|000021a0| 20 69 66 20 28 6e 74 6f | 68 73 28 28 28 48 45 41 | if (nto|hs(((HEA|
|000021b0| 44 45 52 2a 20 29 61 6e | 73 77 65 72 29 2d 3e 71 |DER* )an|swer)->q|
|000021c0| 64 63 6f 75 6e 74 29 20 | 3e 20 30 29 0a 58 09 09 |dcount) |> 0).X..|
|000021d0| 63 70 20 2b 3d 20 64 6e | 5f 73 6b 69 70 6e 61 6d |cp += dn|_skipnam|
|000021e0| 65 28 63 70 2c 20 61 6e | 73 77 65 72 20 2b 20 6c |e(cp, an|swer + l|
|000021f0| 65 6e 29 20 2b 20 51 46 | 49 58 45 44 53 5a 3b 0a |en) + QF|IXEDSZ;.|
|00002200| 58 09 20 20 20 20 6e 6d | 70 20 3d 20 63 70 3b 0a |X. nm|p = cp;.|
|00002210| 58 09 20 20 20 20 63 70 | 20 2b 3d 20 64 6e 5f 73 |X. cp| += dn_s|
|00002220| 6b 69 70 6e 61 6d 65 28 | 63 70 2c 20 28 75 5f 63 |kipname(|cp, (u_c|
|00002230| 68 61 72 20 2a 29 61 6e | 73 77 65 72 20 2b 20 6c |har *)an|swer + l|
|00002240| 65 6e 29 3b 0a 58 09 20 | 20 20 20 69 66 20 28 28 |en);.X. | if ((|
|00002250| 5f 67 65 74 73 68 6f 72 | 74 28 63 70 29 20 3d 3d |_getshor|t(cp) ==|
|00002260| 20 54 5f 53 4f 41 29 29 | 20 7b 0a 58 09 09 64 6e | T_SOA))| {.X..dn|
|00002270| 5f 65 78 70 61 6e 64 28 | 61 6e 73 77 65 72 2c 20 |_expand(|answer, |
|00002280| 61 6e 73 77 65 72 20 2b | 20 6c 65 6e 2c 20 6e 6d |answer +| len, nm|
|00002290| 70 2c 20 64 6e 61 6d 65 | 5b 73 6f 61 63 6e 74 5d |p, dname|[soacnt]|
|000022a0| 2c 0a 58 09 09 09 73 69 | 7a 65 6f 66 28 64 6e 61 |,.X...si|zeof(dna|
|000022b0| 6d 65 5b 30 5d 29 29 3b | 0a 58 09 20 20 20 20 20 |me[0]));|.X. |
|000022c0| 20 20 20 69 66 20 28 73 | 6f 61 63 6e 74 29 20 7b | if (s|oacnt) {|
|000022d0| 0a 58 09 09 20 20 20 20 | 69 66 20 28 73 74 72 63 |.X.. |if (strc|
|000022e0| 6d 70 28 64 6e 61 6d 65 | 5b 30 5d 2c 20 64 6e 61 |mp(dname|[0], dna|
|000022f0| 6d 65 5b 31 5d 29 20 3d | 3d 20 30 29 0a 58 09 09 |me[1]) =|= 0).X..|
|00002300| 09 62 72 65 61 6b 3b 0a | 58 09 09 7d 20 65 6c 73 |.break;.|X..} els|
|00002310| 65 0a 58 09 09 20 20 20 | 20 73 6f 61 63 6e 74 2b |e.X.. | soacnt+|
|00002320| 2b 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 7d 20 2f |+;.X. | }.X.} /|
|00002330| 2a 20 77 68 69 6c 65 20 | 2a 2f 0a 58 0a 58 09 28 |* while |*/.X.X.(|
|00002340| 76 6f 69 64 29 20 63 6c | 6f 73 65 28 73 6f 63 6b |void) cl|ose(sock|
|00002350| 46 44 29 3b 0a 58 09 73 | 6f 63 6b 46 44 20 3d 20 |FD);.X.s|ockFD = |
|00002360| 2d 31 3b 0a 58 09 73 77 | 69 74 63 68 20 28 65 72 |-1;.X.sw|itch (er|
|00002370| 72 6f 72 29 20 7b 0a 58 | 09 20 20 20 20 63 61 73 |ror) {.X|. cas|
|00002380| 65 20 4e 4f 5f 45 52 52 | 4f 52 53 3a 0a 58 09 09 |e NO_ERR|ORS:.X..|
|00002390| 72 65 74 75 72 6e 20 28 | 53 55 43 43 45 53 53 29 |return (|SUCCESS)|
|000023a0| 3b 0a 58 0a 58 09 20 20 | 20 20 63 61 73 65 20 45 |;.X.X. | case E|
|000023b0| 52 52 5f 52 45 41 44 49 | 4e 47 5f 4c 45 4e 3a 0a |RR_READI|NG_LEN:.|
|000023c0| 58 09 09 72 65 74 75 72 | 6e 28 45 52 52 4f 52 29 |X..retur|n(ERROR)|
|000023d0| 3b 0a 58 0a 58 09 20 20 | 20 20 63 61 73 65 20 45 |;.X.X. | case E|
|000023e0| 52 52 5f 50 52 49 4e 54 | 49 4e 47 3a 0a 58 09 09 |RR_PRINT|ING:.X..|
|000023f0| 72 65 74 75 72 6e 28 72 | 65 73 75 6c 74 29 3b 0a |return(r|esult);.|
|00002400| 58 0a 58 09 20 20 20 20 | 63 61 73 65 20 45 52 52 |X.X. |case ERR|
|00002410| 5f 52 45 41 44 49 4e 47 | 5f 4d 53 47 3a 0a 58 09 |_READING|_MSG:.X.|
|00002420| 09 68 65 61 64 65 72 50 | 74 72 20 3d 20 28 48 45 |.headerP|tr = (HE|
|00002430| 41 44 45 52 20 2a 29 20 | 61 6e 73 77 65 72 3b 0a |ADER *) |answer;.|
|00002440| 58 09 09 66 70 72 69 6e | 74 66 28 73 74 64 65 72 |X..fprin|tf(stder|
|00002450| 72 2c 22 2a 2a 2a 20 6c | 73 3a 20 65 72 72 6f 72 |r,"*** l|s: error|
|00002460| 20 72 65 63 65 69 76 69 | 6e 67 20 7a 6f 6e 65 20 | receivi|ng zone |
|00002470| 74 72 61 6e 73 66 65 72 | 3a 5c 6e 22 29 3b 0a 58 |transfer|:\n");.X|
|00002480| 09 09 66 70 72 69 6e 74 | 66 28 73 74 64 65 72 72 |..fprint|f(stderr|
|00002490| 2c 0a 58 09 20 20 20 20 | 20 20 20 22 20 20 72 65 |,.X. | " re|
|000024a0| 73 75 6c 74 3a 20 25 73 | 2c 20 61 6e 73 77 65 72 |sult: %s|, answer|
|000024b0| 73 20 3d 20 25 64 2c 20 | 61 75 74 68 6f 72 69 74 |s = %d, |authorit|
|000024c0| 79 20 3d 20 25 64 2c 20 | 61 64 64 69 74 69 6f 6e |y = %d, |addition|
|000024d0| 61 6c 20 3d 20 25 64 5c | 6e 22 2c 0a 58 09 09 09 |al = %d\|n",.X...|
|000024e0| 5f 72 65 73 5f 72 65 73 | 75 6c 74 63 6f 64 65 73 |_res_res|ultcodes|
|000024f0| 5b 68 65 61 64 65 72 50 | 74 72 2d 3e 72 63 6f 64 |[headerP|tr->rcod|
|00002500| 65 5d 2c 0a 58 09 09 09 | 6e 74 6f 68 73 28 68 65 |e],.X...|ntohs(he|
|00002510| 61 64 65 72 50 74 72 2d | 3e 61 6e 63 6f 75 6e 74 |aderPtr-|>ancount|
|00002520| 29 2c 20 6e 74 6f 68 73 | 28 68 65 61 64 65 72 50 |), ntohs|(headerP|
|00002530| 74 72 2d 3e 6e 73 63 6f | 75 6e 74 29 2c 0a 58 09 |tr->nsco|unt),.X.|
|00002540| 09 09 6e 74 6f 68 73 28 | 68 65 61 64 65 72 50 74 |..ntohs(|headerPt|
|00002550| 72 2d 3e 61 72 63 6f 75 | 6e 74 29 29 3b 0a 58 09 |r->arcou|nt));.X.|
|00002560| 09 72 65 74 75 72 6e 28 | 45 52 52 4f 52 29 3b 0a |.return(|ERROR);.|
|00002570| 58 09 20 20 20 20 64 65 | 66 61 75 6c 74 3a 0a 58 |X. de|fault:.X|
|00002580| 09 09 72 65 74 75 72 6e | 28 45 52 52 4f 52 29 3b |..return|(ERROR);|
|00002590| 0a 58 09 7d 0a 58 7d 0a | 58 0c 0a 58 0a 58 2f 2a |.X.}.X}.|X..X.X/*|
|000025a0| 0a 58 20 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.X *****|********|
|000025b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000025c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000025d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000025e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000025f0| 2a 2a 0a 58 20 2a 0a 58 | 20 2a 20 20 50 72 69 6e |**.X *.X| * Prin|
|00002600| 74 4c 69 73 74 49 6e 66 | 6f 20 2d 2d 0a 58 20 2a |tListInf|o --.X *|
|00002610| 0a 58 20 2a 09 55 73 65 | 64 20 62 79 20 74 68 65 |.X *.Use|d by the|
|00002620| 20 4c 69 73 74 49 6e 66 | 6f 20 72 6f 75 74 69 6e | ListInf|o routin|
|00002630| 65 20 74 6f 20 70 72 69 | 6e 74 20 74 68 65 20 61 |e to pri|nt the a|
|00002640| 6e 73 77 65 72 0a 58 20 | 2a 09 72 65 63 65 69 76 |nswer.X |*.receiv|
|00002650| 65 64 20 66 72 6f 6d 20 | 74 68 65 20 6e 61 6d 65 |ed from |the name|
|00002660| 20 73 65 72 76 65 72 2e | 20 4f 6e 6c 79 20 74 68 | server.| Only th|
|00002670| 65 20 64 65 73 69 72 65 | 64 0a 58 20 2a 09 69 6e |e desire|d.X *.in|
|00002680| 66 6f 72 6d 61 74 69 6f | 6e 20 69 73 20 70 72 69 |formatio|n is pri|
|00002690| 6e 74 65 64 2e 0a 58 20 | 2a 0a 58 20 2a 20 20 52 |nted..X |*.X * R|
|000026a0| 65 73 75 6c 74 73 3a 0a | 58 20 2a 09 53 55 43 43 |esults:.|X *.SUCC|
|000026b0| 45 53 53 09 09 74 68 65 | 20 61 6e 73 77 65 72 20 |ESS..the| answer |
|000026c0| 77 61 73 20 70 72 69 6e | 74 65 64 20 77 69 74 68 |was prin|ted with|
|000026d0| 6f 75 74 20 61 20 70 72 | 6f 62 6c 65 6d 2e 0a 58 |out a pr|oblem..X|
|000026e0| 20 2a 09 4e 4f 5f 49 4e | 46 4f 09 09 74 68 65 20 | *.NO_IN|FO..the |
|000026f0| 61 6e 73 77 65 72 20 70 | 61 63 6b 65 74 20 64 69 |answer p|acket di|
|00002700| 64 20 6e 6f 74 20 63 6f | 6e 74 61 69 6e 20 61 6e |d not co|ntain an|
|00002710| 20 61 6e 73 77 65 72 2e | 0a 58 20 2a 09 45 52 52 | answer.|.X *.ERR|
|00002720| 4f 52 09 09 74 68 65 20 | 61 6e 73 77 65 72 20 77 |OR..the |answer w|
|00002730| 61 73 20 6d 61 6c 66 6f | 72 6d 65 64 2e 0a 58 20 |as malfo|rmed..X |
|00002740| 2a 20 20 20 20 20 20 4d | 69 73 63 2e 20 65 72 72 |* M|isc. err|
|00002750| 6f 72 73 09 72 65 74 75 | 72 6e 65 64 20 69 6e 20 |ors.retu|rned in |
|00002760| 74 68 65 20 70 61 63 6b | 65 74 20 68 65 61 64 65 |the pack|et heade|
|00002770| 72 2e 0a 58 20 2a 0a 58 | 20 2a 2a 2a 2a 2a 2a 2a |r..X *.X| *******|
|00002780| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002790| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000027a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000027b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000027c0| 2a 2a 2a 2a 2a 2a 2a 2a | 0a 58 20 2a 2f 0a 58 0a |********|.X */.X.|
|000027d0| 58 23 64 65 66 69 6e 65 | 20 4e 41 4d 45 5f 46 4f |X#define| NAME_FO|
|000027e0| 52 4d 41 54 20 22 25 73 | 22 0a 58 0a 58 73 74 61 |RMAT "%s|".X.Xsta|
|000027f0| 74 69 63 20 42 6f 6f 6c | 65 61 6e 0a 58 73 74 72 |tic Bool|ean.Xstr|
|00002800| 69 70 5f 64 6f 6d 61 69 | 6e 28 73 74 72 69 6e 67 |ip_domai|n(string|
|00002810| 2c 20 64 6f 6d 61 69 6e | 29 0a 58 20 20 20 20 63 |, domain|).X c|
|00002820| 68 61 72 20 2a 73 74 72 | 69 6e 67 2c 20 2a 64 6f |har *str|ing, *do|
|00002830| 6d 61 69 6e 3b 0a 58 7b | 0a 58 20 20 20 20 72 65 |main;.X{|.X re|
|00002840| 67 69 73 74 65 72 20 63 | 68 61 72 20 2a 64 6f 74 |gister c|har *dot|
|00002850| 3b 0a 58 0a 58 20 20 20 | 20 69 66 20 28 2a 64 6f |;.X.X | if (*do|
|00002860| 6d 61 69 6e 20 21 3d 20 | 27 5c 30 27 29 20 7b 0a |main != |'\0') {.|
|00002870| 58 09 64 6f 74 20 3d 20 | 73 74 72 69 6e 67 3b 0a |X.dot = |string;.|
|00002880| 58 09 77 68 69 6c 65 20 | 28 28 64 6f 74 20 3d 20 |X.while |((dot = |
|00002890| 73 74 72 63 68 72 28 64 | 6f 74 2c 20 27 2e 27 29 |strchr(d|ot, '.')|
|000028a0| 29 20 21 3d 20 4e 55 4c | 4c 20 26 26 20 73 74 72 |) != NUL|L && str|
|000028b0| 63 61 73 65 63 6d 70 28 | 64 6f 6d 61 69 6e 2c 20 |casecmp(|domain, |
|000028c0| 2b 2b 64 6f 74 29 29 0a | 58 09 09 3b 0a 58 09 69 |++dot)).|X..;.X.i|
|000028d0| 66 20 28 64 6f 74 20 21 | 3d 20 4e 55 4c 4c 29 20 |f (dot !|= NULL) |
|000028e0| 7b 0a 58 09 20 20 20 20 | 64 6f 74 5b 2d 31 5d 20 |{.X. |dot[-1] |
|000028f0| 3d 20 27 5c 30 27 3b 0a | 58 09 20 20 20 20 72 65 |= '\0';.|X. re|
|00002900| 74 75 72 6e 20 54 52 55 | 45 3b 0a 58 09 7d 0a 58 |turn TRU|E;.X.}.X|
|00002910| 20 20 20 20 7d 0a 58 20 | 20 20 20 72 65 74 75 72 | }.X | retur|
|00002920| 6e 20 46 41 4c 53 45 3b | 0a 58 7d 0a 58 0a 58 73 |n FALSE;|.X}.X.Xs|
|00002930| 74 61 74 69 63 20 63 68 | 61 72 20 2a 0a 58 64 6f |tatic ch|ar *.Xdo|
|00002940| 6d 61 69 6e 5f 73 74 61 | 72 74 28 73 74 72 69 6e |main_sta|rt(strin|
|00002950| 67 2c 20 64 6f 6d 61 69 | 6e 29 0a 58 20 20 20 20 |g, domai|n).X |
|00002960| 63 68 61 72 20 2a 73 74 | 72 69 6e 67 2c 20 2a 64 |char *st|ring, *d|
|00002970| 6f 6d 61 69 6e 3b 0a 58 | 7b 0a 58 20 20 20 20 72 |omain;.X|{.X r|
|00002980| 65 67 69 73 74 65 72 20 | 63 68 61 72 20 2a 64 6f |egister |char *do|
|00002990| 74 3b 0a 58 0a 58 20 20 | 20 20 69 66 20 28 2a 64 |t;.X.X | if (*d|
|000029a0| 6f 6d 61 69 6e 20 21 3d | 20 27 5c 30 27 29 20 7b |omain !=| '\0') {|
|000029b0| 0a 58 09 64 6f 74 20 3d | 20 73 74 72 69 6e 67 3b |.X.dot =| string;|
|000029c0| 0a 58 09 77 68 69 6c 65 | 20 28 28 64 6f 74 20 3d |.X.while| ((dot =|
|000029d0| 20 73 74 72 63 68 72 28 | 64 6f 74 2c 20 27 2e 27 | strchr(|dot, '.'|
|000029e0| 29 29 20 21 3d 20 4e 55 | 4c 4c 20 26 26 20 73 74 |)) != NU|LL && st|
|000029f0| 72 63 61 73 65 63 6d 70 | 28 64 6f 6d 61 69 6e 2c |rcasecmp|(domain,|
|00002a00| 20 2b 2b 64 6f 74 29 29 | 0a 58 09 09 3b 0a 58 09 | ++dot))|.X..;.X.|
|00002a10| 72 65 74 75 72 6e 20 64 | 6f 74 3b 0a 58 20 20 20 |return d|ot;.X |
|00002a20| 20 7d 0a 58 20 20 20 20 | 72 65 74 75 72 6e 20 4e | }.X |return N|
|00002a30| 55 4c 4c 3b 0a 58 7d 0a | 58 0a 58 73 74 61 74 69 |ULL;.X}.|X.Xstati|
|00002a40| 63 20 63 68 61 72 20 2a | 0a 58 64 6f 6d 61 69 6e |c char *|.Xdomain|
|00002a50| 5f 63 68 69 6c 64 28 73 | 74 72 69 6e 67 2c 20 64 |_child(s|tring, d|
|00002a60| 6f 6d 61 69 6e 29 0a 58 | 20 20 20 20 63 68 61 72 |omain).X| char|
|00002a70| 20 2a 73 74 72 69 6e 67 | 2c 20 2a 64 6f 6d 61 69 | *string|, *domai|
|00002a80| 6e 3b 0a 58 7b 0a 58 20 | 20 20 20 72 65 67 69 73 |n;.X{.X | regis|
|00002a90| 74 65 72 20 63 68 61 72 | 20 2a 64 6f 74 3b 0a 58 |ter char| *dot;.X|
|00002aa0| 0a 58 20 20 20 20 69 66 | 20 28 2a 64 6f 6d 61 69 |.X if| (*domai|
|00002ab0| 6e 20 21 3d 20 27 5c 30 | 27 29 20 7b 0a 58 09 64 |n != '\0|') {.X.d|
|00002ac0| 6f 74 20 3d 20 73 74 72 | 69 6e 67 3b 0a 58 09 69 |ot = str|ing;.X.i|
|00002ad0| 66 28 28 64 6f 74 20 3d | 20 73 74 72 63 68 72 28 |f((dot =| strchr(|
|00002ae0| 64 6f 74 2c 20 27 2e 27 | 29 29 20 21 3d 20 4e 55 |dot, '.'|)) != NU|
|00002af0| 4c 4c 20 26 26 20 21 73 | 74 72 63 61 73 65 63 6d |LL && !s|trcasecm|
|00002b00| 70 28 64 6f 6d 61 69 6e | 2c 20 2b 2b 64 6f 74 29 |p(domain|, ++dot)|
|00002b10| 29 0a 58 09 20 20 20 20 | 72 65 74 75 72 6e 20 64 |).X. |return d|
|00002b20| 6f 74 3b 0a 58 20 20 20 | 20 7d 0a 58 20 20 20 20 |ot;.X | }.X |
|00002b30| 72 65 74 75 72 6e 20 4e | 55 4c 4c 3b 0a 58 7d 0a |return N|ULL;.X}.|
|00002b40| 58 0a 58 50 72 69 6e 74 | 4c 69 73 74 49 6e 66 6f |X.XPrint|ListInfo|
|00002b50| 28 66 69 6c 65 2c 20 6d | 73 67 2c 20 65 6f 6d 2c |(file, m|sg, eom,|
|00002b60| 20 64 6f 6d 61 69 6e 29 | 0a 58 20 20 20 20 46 49 | domain)|.X FI|
|00002b70| 4c 45 09 2a 66 69 6c 65 | 3b 0a 58 20 20 20 20 63 |LE.*file|;.X c|
|00002b80| 68 61 72 09 2a 6d 73 67 | 2c 20 2a 65 6f 6d 3b 0a |har.*msg|, *eom;.|
|00002b90| 58 20 20 20 20 63 68 61 | 72 09 2a 64 6f 6d 61 69 |X cha|r.*domai|
|00002ba0| 6e 3b 0a 58 7b 0a 58 20 | 20 20 20 72 65 67 69 73 |n;.X{.X | regis|
|00002bb0| 74 65 72 20 63 68 61 72 | 09 2a 63 70 3b 0a 58 20 |ter char|.*cp;.X |
|00002bc0| 20 20 20 48 45 41 44 45 | 52 09 09 2a 68 65 61 64 | HEADE|R..*head|
|00002bd0| 65 72 50 74 72 3b 0a 58 | 20 20 20 20 69 6e 74 09 |erPtr;.X| int.|
|00002be0| 09 09 74 79 70 65 2c 20 | 71 63 6c 61 73 73 2c 20 |..type, |qclass, |
|00002bf0| 64 6c 65 6e 2c 20 6e 61 | 6d 65 4c 65 6e 3b 0a 58 |dlen, na|meLen;.X|
|00002c00| 20 20 20 20 75 5f 6c 6f | 6e 67 09 09 74 74 6c 3b | u_lo|ng..ttl;|
|00002c10| 0a 58 20 20 20 20 69 6e | 74 09 09 09 6e 2c 20 70 |.X in|t...n, p|
|00002c20| 72 65 66 3b 0a 58 20 20 | 20 20 73 74 72 75 63 74 |ref;.X | struct|
|00002c30| 20 69 6e 5f 61 64 64 72 | 09 69 6e 61 64 64 72 3b | in_addr|.inaddr;|
|00002c40| 0a 58 20 20 20 20 63 68 | 61 72 09 09 6e 61 6d 65 |.X ch|ar..name|
|00002c50| 5b 4e 41 4d 45 5f 4c 45 | 4e 5d 3b 0a 58 20 20 20 |[NAME_LE|N];.X |
|00002c60| 20 63 68 61 72 09 09 6e | 61 6d 65 32 5b 4e 41 4d | char..n|ame2[NAM|
|00002c70| 45 5f 4c 45 4e 5d 3b 0a | 58 20 20 20 20 42 6f 6f |E_LEN];.|X Boo|
|00002c80| 6c 65 61 6e 09 09 73 74 | 72 69 70 70 65 64 3b 0a |lean..st|ripped;.|
|00002c90| 58 0a 58 20 20 20 20 2f | 2a 0a 58 20 20 20 20 20 |X.X /|*.X |
|00002ca0| 2a 20 52 65 61 64 20 74 | 68 65 20 68 65 61 64 65 |* Read t|he heade|
|00002cb0| 72 20 66 69 65 6c 64 73 | 2e 0a 58 20 20 20 20 20 |r fields|..X |
|00002cc0| 2a 2f 0a 58 20 20 20 20 | 68 65 61 64 65 72 50 74 |*/.X |headerPt|
|00002cd0| 72 20 3d 20 28 48 45 41 | 44 45 52 20 2a 29 6d 73 |r = (HEA|DER *)ms|
|00002ce0| 67 3b 0a 58 20 20 20 20 | 63 70 20 3d 20 6d 73 67 |g;.X |cp = msg|
|00002cf0| 20 2b 20 73 69 7a 65 6f | 66 28 48 45 41 44 45 52 | + sizeo|f(HEADER|
|00002d00| 29 3b 0a 58 20 20 20 20 | 69 66 20 28 68 65 61 64 |);.X |if (head|
|00002d10| 65 72 50 74 72 2d 3e 72 | 63 6f 64 65 20 21 3d 20 |erPtr->r|code != |
|00002d20| 4e 4f 45 52 52 4f 52 29 | 20 7b 0a 58 09 72 65 74 |NOERROR)| {.X.ret|
|00002d30| 75 72 6e 28 68 65 61 64 | 65 72 50 74 72 2d 3e 72 |urn(head|erPtr->r|
|00002d40| 63 6f 64 65 29 3b 0a 58 | 20 20 20 20 7d 0a 58 0a |code);.X| }.X.|
|00002d50| 58 20 20 20 20 2f 2a 0a | 58 20 20 20 20 20 2a 20 |X /*.|X * |
|00002d60| 20 57 65 20 61 72 65 20 | 6c 6f 6f 6b 69 6e 67 20 | We are |looking |
|00002d70| 66 6f 72 20 69 6e 66 6f | 20 66 72 6f 6d 20 61 6e |for info| from an|
|00002d80| 73 77 65 72 20 72 65 73 | 6f 75 72 63 65 20 72 65 |swer res|ource re|
|00002d90| 63 6f 72 64 73 2e 0a 58 | 20 20 20 20 20 2a 20 20 |cords..X| * |
|00002da0| 49 66 20 74 68 65 72 65 | 20 61 72 65 6e 27 74 20 |If there| aren't |
|00002db0| 61 6e 79 2c 20 72 65 74 | 75 72 6e 20 77 69 74 68 |any, ret|urn with|
|00002dc0| 20 61 6e 20 65 72 72 6f | 72 2e 20 57 65 20 61 73 | an erro|r. We as|
|00002dd0| 73 75 6d 65 0a 58 20 20 | 20 20 20 2a 20 20 74 68 |sume.X | * th|
|00002de0| 65 72 65 20 61 72 65 6e | 27 74 20 61 6e 79 20 71 |ere aren|'t any q|
|00002df0| 75 65 73 74 69 6f 6e 20 | 72 65 63 6f 72 64 73 2e |uestion |records.|
|00002e00| 0a 58 20 20 20 20 20 2a | 2f 0a 58 0a 58 20 20 20 |.X *|/.X.X |
|00002e10| 20 69 66 20 28 6e 74 6f | 68 73 28 68 65 61 64 65 | if (nto|hs(heade|
|00002e20| 72 50 74 72 2d 3e 61 6e | 63 6f 75 6e 74 29 20 3d |rPtr->an|count) =|
|00002e30| 3d 20 30 29 20 7b 0a 58 | 09 72 65 74 75 72 6e 28 |= 0) {.X|.return(|
|00002e40| 4e 4f 5f 49 4e 46 4f 29 | 3b 0a 58 20 20 20 20 7d |NO_INFO)|;.X }|
|00002e50| 20 65 6c 73 65 20 7b 0a | 58 09 69 66 20 28 6e 74 | else {.|X.if (nt|
|00002e60| 6f 68 73 28 68 65 61 64 | 65 72 50 74 72 2d 3e 71 |ohs(head|erPtr->q|
|00002e70| 64 63 6f 75 6e 74 29 20 | 3e 20 30 29 20 7b 0a 58 |dcount) |> 0) {.X|
|00002e80| 09 20 20 20 20 6e 61 6d | 65 4c 65 6e 20 3d 20 64 |. nam|eLen = d|
|00002e90| 6e 5f 73 6b 69 70 6e 61 | 6d 65 28 63 70 2c 20 65 |n_skipna|me(cp, e|
|00002ea0| 6f 6d 29 3b 0a 58 09 20 | 20 20 20 69 66 20 28 6e |om);.X. | if (n|
|00002eb0| 61 6d 65 4c 65 6e 20 3c | 20 30 29 0a 58 09 09 72 |ameLen <| 0).X..r|
|00002ec0| 65 74 75 72 6e 20 28 45 | 52 52 4f 52 29 3b 0a 58 |eturn (E|RROR);.X|
|00002ed0| 09 20 20 20 20 63 70 20 | 2b 3d 20 6e 61 6d 65 4c |. cp |+= nameL|
|00002ee0| 65 6e 20 2b 20 51 46 49 | 58 45 44 53 5a 3b 0a 58 |en + QFI|XEDSZ;.X|
|00002ef0| 09 7d 0a 58 09 69 66 20 | 28 28 6e 61 6d 65 4c 65 |.}.X.if |((nameLe|
|00002f00| 6e 20 3d 20 64 6e 5f 65 | 78 70 61 6e 64 28 6d 73 |n = dn_e|xpand(ms|
|00002f10| 67 2c 20 65 6f 6d 2c 20 | 63 70 2c 20 6e 61 6d 65 |g, eom, |cp, name|
|00002f20| 2c 20 73 69 7a 65 6f 66 | 28 6e 61 6d 65 29 29 29 |, sizeof|(name)))|
|00002f30| 20 3c 20 30 29 0a 58 09 | 20 20 20 20 72 65 74 75 | < 0).X.| retu|
|00002f40| 72 6e 20 28 45 52 52 4f | 52 29 3b 0a 58 09 63 70 |rn (ERRO|R);.X.cp|
|00002f50| 20 2b 3d 20 6e 61 6d 65 | 4c 65 6e 3b 0a 58 0a 58 | += name|Len;.X.X|
|00002f60| 09 74 79 70 65 20 3d 20 | 5f 67 65 74 73 68 6f 72 |.type = |_getshor|
|00002f70| 74 28 63 70 29 3b 0a 58 | 09 63 70 20 2b 3d 20 73 |t(cp);.X|.cp += s|
|00002f80| 69 7a 65 6f 66 28 75 5f | 73 68 6f 72 74 29 3b 0a |izeof(u_|short);.|
|00002f90| 58 0a 58 09 71 63 6c 61 | 73 73 20 3d 20 5f 67 65 |X.X.qcla|ss = _ge|
|00002fa0| 74 73 68 6f 72 74 28 63 | 70 29 3b 0a 58 09 63 70 |tshort(c|p);.X.cp|
|00002fb0| 20 2b 3d 20 73 69 7a 65 | 6f 66 28 75 5f 73 68 6f | += size|of(u_sho|
|00002fc0| 72 74 29 3b 0a 58 09 74 | 74 6c 20 3d 20 5f 67 65 |rt);.X.t|tl = _ge|
|00002fd0| 74 6c 6f 6e 67 28 63 70 | 29 3b 0a 58 09 63 70 20 |tlong(cp|);.X.cp |
|00002fe0| 2b 3d 20 73 69 7a 65 6f | 66 28 75 5f 6c 6f 6e 67 |+= sizeo|f(u_long|
|00002ff0| 29 3b 0a 58 09 64 6c 65 | 6e 20 3d 20 5f 67 65 74 |);.X.dle|n = _get|
|00003000| 73 68 6f 72 74 28 63 70 | 29 3b 0a 58 09 63 70 20 |short(cp|);.X.cp |
|00003010| 2b 3d 20 73 69 7a 65 6f | 66 28 75 5f 73 68 6f 72 |+= sizeo|f(u_shor|
|00003020| 74 29 3b 0a 58 0a 58 09 | 69 66 20 28 6e 61 6d 65 |t);.X.X.|if (name|
|00003030| 5b 30 5d 20 3d 3d 20 30 | 29 0a 58 09 09 73 74 72 |[0] == 0|).X..str|
|00003040| 63 70 79 28 6e 61 6d 65 | 2c 20 22 2e 22 29 3b 0a |cpy(name|, ".");.|
|00003050| 58 0a 58 09 2f 2a 20 53 | 74 72 69 70 20 74 68 65 |X.X./* S|trip the|
|00003060| 20 64 6f 6d 61 69 6e 20 | 6e 61 6d 65 20 66 72 6f | domain |name fro|
|00003070| 6d 20 74 68 65 20 64 61 | 74 61 2c 20 69 66 20 64 |m the da|ta, if d|
|00003080| 65 73 69 72 65 64 2e 20 | 2a 2f 0a 58 09 73 74 72 |esired. |*/.X.str|
|00003090| 69 70 70 65 64 20 3d 20 | 46 41 4c 53 45 3b 0a 58 |ipped = |FALSE;.X|
|000030a0| 09 69 66 20 28 74 79 70 | 65 20 21 3d 20 54 5f 41 |.if (typ|e != T_A|
|000030b0| 20 26 26 20 74 79 70 65 | 20 21 3d 20 54 5f 48 49 | && type| != T_HI|
|000030c0| 4e 46 4f 20 26 26 20 74 | 79 70 65 20 21 3d 20 54 |NFO && t|ype != T|
|000030d0| 5f 43 4e 41 4d 45 29 0a | 58 09 7b 0a 58 09 20 20 |_CNAME).|X.{.X. |
|000030e0| 20 20 63 68 61 72 20 2a | 79 3b 0a 58 0a 58 09 20 | char *|y;.X.X. |
|000030f0| 20 20 20 73 74 72 69 70 | 70 65 64 20 3d 20 73 74 | strip|ped = st|
|00003100| 72 69 70 5f 64 6f 6d 61 | 69 6e 28 6e 61 6d 65 2c |rip_doma|in(name,|
|00003110| 20 76 64 6f 6d 61 69 6e | 29 3b 0a 58 09 20 20 20 | vdomain|);.X. |
|00003120| 20 69 66 20 28 28 79 20 | 3d 20 73 74 72 72 63 68 | if ((y |= strrch|
|00003130| 72 28 6e 61 6d 65 2c 27 | 2e 27 29 29 20 21 3d 20 |r(name,'|.')) != |
|00003140| 30 29 0a 58 09 20 20 20 | 20 7b 0a 58 09 09 69 66 |0).X. | {.X..if|
|00003150| 28 73 74 72 69 70 70 65 | 64 29 0a 58 09 09 7b 0a |(strippe|d).X..{.|
|00003160| 58 09 09 20 20 20 20 2a | 79 2b 2b 20 3d 20 27 5c |X.. *|y++ = '\|
|00003170| 30 27 3b 0a 58 09 09 20 | 20 20 20 6e 73 5f 61 64 |0';.X.. | ns_ad|
|00003180| 64 28 79 2c 30 29 3b 20 | 2f 2a 20 41 64 64 69 6e |d(y,0); |/* Addin|
|00003190| 67 20 69 6d 70 6c 69 63 | 69 74 20 64 6f 6d 61 69 |g implic|it domai|
|000031a0| 6e 20 2a 2f 0a 58 09 09 | 7d 0a 58 09 09 72 65 74 |n */.X..|}.X..ret|
|000031b0| 75 72 6e 28 53 55 43 43 | 45 53 53 29 3b 0a 58 09 |urn(SUCC|ESS);.X.|
|000031c0| 20 20 20 20 7d 0a 58 09 | 7d 0a 58 09 65 6c 73 65 | }.X.|}.X.else|
|000031d0| 0a 58 09 7b 0a 58 09 20 | 20 20 20 63 68 61 72 20 |.X.{.X. | char |
|000031e0| 2a 79 2c 2a 64 73 3b 0a | 58 0a 58 09 20 20 20 20 |*y,*ds;.|X.X. |
|000031f0| 64 73 20 3d 20 64 6f 6d | 61 69 6e 5f 73 74 61 72 |ds = dom|ain_star|
|00003200| 74 28 6e 61 6d 65 2c 76 | 64 6f 6d 61 69 6e 29 3b |t(name,v|domain);|
|00003210| 0a 58 09 20 20 20 20 69 | 66 28 21 64 73 29 20 20 |.X. i|f(!ds) |
|00003220| 72 65 74 75 72 6e 28 53 | 55 43 43 45 53 53 29 3b |return(S|UCCESS);|
|00003230| 0a 58 09 20 20 20 20 64 | 73 5b 2d 31 5d 20 3d 20 |.X. d|s[-1] = |
|00003240| 27 5c 30 27 3b 0a 58 09 | 20 20 20 20 69 66 28 28 |'\0';.X.| if((|
|00003250| 20 79 20 3d 20 73 74 72 | 72 63 68 72 28 6e 61 6d | y = str|rchr(nam|
|00003260| 65 2c 27 2e 27 29 29 20 | 21 3d 20 30 29 0a 58 09 |e,'.')) |!= 0).X.|
|00003270| 20 20 20 20 7b 0a 58 09 | 09 2a 79 2b 2b 20 3d 20 | {.X.|.*y++ = |
|00003280| 27 5c 30 27 3b 0a 58 09 | 09 6e 73 5f 61 64 64 28 |'\0';.X.|.ns_add(|
|00003290| 79 2c 30 29 3b 20 2f 2a | 20 41 64 64 69 6e 67 20 |y,0); /*| Adding |
|000032a0| 69 6d 70 6c 69 63 69 74 | 20 64 6f 6d 61 69 6e 20 |implicit| domain |
|000032b0| 2a 2f 0a 58 09 09 72 65 | 74 75 72 6e 20 28 53 55 |*/.X..re|turn (SU|
|000032c0| 43 43 45 53 53 29 3b 0a | 58 09 20 20 20 20 7d 0a |CCESS);.|X. }.|
|000032d0| 58 09 20 20 20 20 64 73 | 5b 2d 31 5d 20 3d 20 27 |X. ds|[-1] = '|
|000032e0| 2e 27 3b 0a 58 09 7d 0a | 58 09 69 66 28 73 74 72 |.';.X.}.|X.if(str|
|000032f0| 6c 65 6e 28 6e 61 6d 65 | 29 20 3d 3d 20 30 29 0a |len(name|) == 0).|
|00003300| 58 09 20 20 20 20 72 65 | 74 75 72 6e 28 53 55 43 |X. re|turn(SUC|
|00003310| 43 45 53 53 29 3b 20 2f | 2a 20 49 67 6e 6f 72 65 |CESS); /|* Ignore|
|00003320| 20 74 68 69 73 20 72 65 | 63 6f 72 64 20 2a 2f 0a | this re|cord */.|
|00003330| 58 0a 58 2f 2a 0a 58 20 | 2a 20 54 68 65 20 77 69 |X.X/*.X |* The wi|
|00003340| 6c 64 63 61 72 64 20 69 | 73 20 61 20 73 70 65 63 |ldcard i|s a spec|
|00003350| 69 61 6c 20 63 61 73 65 | 2e 0a 58 20 2a 2f 0a 58 |ial case|..X */.X|
|00003360| 09 69 66 28 21 73 74 72 | 63 6d 70 28 6e 61 6d 65 |.if(!str|cmp(name|
|00003370| 2c 22 2a 22 29 29 20 72 | 65 74 75 72 6e 28 53 55 |,"*")) r|eturn(SU|
|00003380| 43 43 45 53 53 29 3b 0a | 58 0a 58 09 73 77 69 74 |CCESS);.|X.X.swit|
|00003390| 63 68 20 28 74 79 70 65 | 29 0a 58 09 7b 0a 58 09 |ch (type|).X.{.X.|
|000033a0| 20 20 20 20 63 61 73 65 | 20 54 5f 4e 53 3a 0a 58 | case| T_NS:.X|
|000033b0| 09 09 69 66 20 28 28 6e | 61 6d 65 4c 65 6e 20 3d |..if ((n|ameLen =|
|000033c0| 0a 58 09 09 09 64 6e 5f | 65 78 70 61 6e 64 28 6d |.X...dn_|expand(m|
|000033d0| 73 67 2c 20 65 6f 6d 2c | 20 63 70 2c 20 6e 61 6d |sg, eom,| cp, nam|
|000033e0| 65 32 2c 20 73 69 7a 65 | 6f 66 28 6e 61 6d 65 32 |e2, size|of(name2|
|000033f0| 29 29 29 20 3c 20 30 29 | 20 7b 0a 58 09 09 20 20 |))) < 0)| {.X.. |
|00003400| 20 20 72 65 74 75 72 6e | 20 28 45 52 52 4f 52 29 | return| (ERROR)|
|00003410| 3b 0a 58 09 09 7d 0a 58 | 09 09 73 74 72 69 70 5f |;.X..}.X|..strip_|
|00003420| 64 6f 6d 61 69 6e 28 6e | 61 6d 65 32 2c 20 76 64 |domain(n|ame2, vd|
|00003430| 6f 6d 61 69 6e 29 3b 0a | 58 09 09 6e 73 5f 61 64 |omain);.|X..ns_ad|
|00003440| 64 28 6e 61 6d 65 2c 31 | 29 3b 20 2f 2a 20 41 64 |d(name,1|); /* Ad|
|00003450| 64 20 65 78 70 6c 69 63 | 69 74 20 64 6f 6d 61 69 |d explic|it domai|
|00003460| 6e 20 2a 2f 0a 58 09 09 | 62 72 65 61 6b 3b 0a 58 |n */.X..|break;.X|
|00003470| 09 20 20 20 20 63 61 73 | 65 20 54 5f 4d 52 3a 0a |. cas|e T_MR:.|
|00003480| 58 09 20 20 20 20 7b 0a | 58 09 09 63 68 61 72 20 |X. {.|X..char |
|00003490| 6d 61 69 6c 62 6f 78 5b | 36 34 5d 3b 0a 58 0a 58 |mailbox[|64];.X.X|
|000034a0| 09 09 69 66 20 28 28 6e | 61 6d 65 4c 65 6e 20 3d |..if ((n|ameLen =|
|000034b0| 0a 58 09 09 09 64 6e 5f | 65 78 70 61 6e 64 28 6d |.X...dn_|expand(m|
|000034c0| 73 67 2c 20 65 6f 6d 2c | 20 63 70 2c 20 6e 61 6d |sg, eom,| cp, nam|
|000034d0| 65 32 2c 20 73 69 7a 65 | 6f 66 28 6e 61 6d 65 32 |e2, size|of(name2|
|000034e0| 29 29 29 20 3c 20 30 29 | 20 7b 0a 58 09 09 20 20 |))) < 0)| {.X.. |
|000034f0| 20 20 72 65 74 75 72 6e | 20 28 45 52 52 4f 52 29 | return| (ERROR)|
|00003500| 3b 0a 58 09 09 7d 0a 58 | 09 09 73 74 72 69 70 5f |;.X..}.X|..strip_|
|00003510| 64 6f 6d 61 69 6e 28 6e | 61 6d 65 32 2c 20 64 6f |domain(n|ame2, do|
|00003520| 6d 61 69 6e 29 3b 0a 58 | 09 09 69 66 28 75 73 65 |main);.X|..if(use|
|00003530| 5f 71 75 6f 74 65 73 28 | 6e 61 6d 65 32 29 29 0a |_quotes(|name2)).|
|00003540| 58 09 09 7b 0a 58 09 09 | 20 20 20 20 73 70 72 69 |X..{.X..| spri|
|00003550| 6e 74 66 28 6d 61 69 6c | 62 6f 78 2c 22 5c 22 25 |ntf(mail|box,"\"%|
|00003560| 73 5c 22 22 2c 6e 61 6d | 65 32 29 3b 0a 58 09 09 |s\"",nam|e2);.X..|
|00003570| 20 20 20 20 43 68 61 6e | 67 65 4d 61 69 6c 42 6f | Chan|geMailBo|
|00003580| 78 28 6e 61 6d 65 2c 6d | 61 69 6c 62 6f 78 2c 4e |x(name,m|ailbox,N|
|00003590| 55 4c 4c 2c 74 79 70 65 | 29 3b 0a 58 09 09 20 20 |ULL,type|);.X.. |
|000035a0| 20 20 2f 2a 20 66 70 72 | 69 6e 74 66 28 66 69 6c | /* fpr|intf(fil|
|000035b0| 65 2c 20 22 25 73 3a 5c | 22 25 73 5c 22 5c 6e 22 |e, "%s:\|"%s\"\n"|
|000035c0| 2c 6e 61 6d 65 2c 6e 61 | 6d 65 32 29 3b 20 2a 2f |,name,na|me2); */|
|000035d0| 0a 58 09 09 7d 0a 58 09 | 09 65 6c 73 65 0a 58 09 |.X..}.X.|.else.X.|
|000035e0| 09 7b 0a 58 09 09 20 20 | 20 20 43 68 61 6e 67 65 |.{.X.. | Change|
|000035f0| 4d 61 69 6c 42 6f 78 28 | 6e 61 6d 65 2c 6e 61 6d |MailBox(|name,nam|
|00003600| 65 32 2c 4e 55 4c 4c 2c | 74 79 70 65 29 3b 0a 58 |e2,NULL,|type);.X|
|00003610| 09 09 20 20 20 20 2f 2a | 20 66 70 72 69 6e 74 66 |.. /*| fprintf|
|00003620| 28 66 69 6c 65 2c 20 22 | 25 73 3a 25 73 5c 6e 22 |(file, "|%s:%s\n"|
|00003630| 2c 6e 61 6d 65 2c 6e 61 | 6d 65 32 29 3b 20 2a 2f |,name,na|me2); */|
|00003640| 0a 58 09 09 7d 0a 58 09 | 09 62 72 65 61 6b 3b 0a |.X..}.X.|.break;.|
|00003650| 58 09 20 20 20 20 7d 0a | 58 09 20 20 20 20 63 61 |X. }.|X. ca|
|00003660| 73 65 20 54 5f 4d 42 3a | 0a 58 09 20 20 20 20 7b |se T_MB:|.X. {|
|00003670| 0a 58 09 09 63 68 61 72 | 20 6d 61 69 6c 62 6f 78 |.X..char| mailbox|
|00003680| 5b 36 34 5d 3b 0a 58 0a | 58 09 09 69 66 20 28 28 |[64];.X.|X..if ((|
|00003690| 6e 61 6d 65 4c 65 6e 20 | 3d 0a 58 09 09 09 64 6e |nameLen |=.X...dn|
|000036a0| 5f 65 78 70 61 6e 64 28 | 6d 73 67 2c 20 65 6f 6d |_expand(|msg, eom|
|000036b0| 2c 20 63 70 2c 20 6e 61 | 6d 65 32 2c 20 73 69 7a |, cp, na|me2, siz|
|000036c0| 65 6f 66 28 6e 61 6d 65 | 32 29 29 29 20 3c 20 30 |eof(name|2))) < 0|
|000036d0| 29 20 7b 0a 58 09 09 20 | 20 20 20 72 65 74 75 72 |) {.X.. | retur|
|000036e0| 6e 20 28 45 52 52 4f 52 | 29 3b 0a 58 09 09 7d 0a |n (ERROR|);.X..}.|
|000036f0| 58 2f 2a 09 09 73 74 72 | 69 70 5f 64 6f 6d 61 69 |X/*..str|ip_domai|
|00003700| 6e 28 6e 61 6d 65 32 2c | 20 76 64 6f 6d 61 69 6e |n(name2,| vdomain|
|00003710| 29 3b 20 2a 2f 0a 58 09 | 09 69 66 28 75 73 65 5f |); */.X.|.if(use_|
|00003720| 71 75 6f 74 65 73 28 6e | 61 6d 65 32 29 29 0a 58 |quotes(n|ame2)).X|
|00003730| 09 09 7b 0a 58 09 09 20 | 20 20 20 66 70 72 69 6e |..{.X.. | fprin|
|00003740| 74 66 28 73 74 64 65 72 | 72 2c 22 45 72 72 6f 72 |tf(stder|r,"Error|
|00003750| 20 69 6e 20 68 6f 73 74 | 6e 61 6d 65 3a 20 25 73 | in host|name: %s|
|00003760| 5c 6e 22 2c 6e 61 6d 65 | 32 29 3b 0a 58 09 09 20 |\n",name|2);.X.. |
|00003770| 20 20 20 62 72 65 61 6b | 3b 0a 58 09 09 7d 0a 58 | break|;.X..}.X|
|00003780| 09 09 73 70 72 69 6e 74 | 66 28 6d 61 69 6c 62 6f |..sprint|f(mailbo|
|00003790| 78 2c 22 25 73 40 25 73 | 22 2c 6e 61 6d 65 2c 6e |x,"%s@%s|",name,n|
|000037a0| 61 6d 65 32 29 3b 0a 58 | 09 09 43 68 61 6e 67 65 |ame2);.X|..Change|
|000037b0| 4d 61 69 6c 42 6f 78 28 | 6e 61 6d 65 2c 6d 61 69 |MailBox(|name,mai|
|000037c0| 6c 62 6f 78 2c 4e 55 4c | 4c 2c 74 79 70 65 29 3b |lbox,NUL|L,type);|
|000037d0| 0a 58 09 09 2f 2a 20 66 | 70 72 69 6e 74 66 28 66 |.X../* f|printf(f|
|000037e0| 69 6c 65 2c 20 22 25 73 | 3a 25 73 40 25 73 5c 6e |ile, "%s|:%s@%s\n|
|000037f0| 22 2c 6e 61 6d 65 2c 6e | 61 6d 65 2c 20 6e 61 6d |",name,n|ame, nam|
|00003800| 65 32 29 3b 20 2a 2f 0a | 58 09 09 62 72 65 61 6b |e2); */.|X..break|
|00003810| 3b 0a 58 09 20 20 20 20 | 7d 0a 58 09 20 20 20 20 |;.X. |}.X. |
|00003820| 63 61 73 65 20 54 5f 4d | 47 3a 0a 58 09 09 69 66 |case T_M|G:.X..if|
|00003830| 20 28 28 6e 61 6d 65 4c | 65 6e 20 3d 0a 58 09 09 | ((nameL|en =.X..|
|00003840| 09 64 6e 5f 65 78 70 61 | 6e 64 28 6d 73 67 2c 20 |.dn_expa|nd(msg, |
|00003850| 65 6f 6d 2c 20 63 70 2c | 20 6e 61 6d 65 32 2c 20 |eom, cp,| name2, |
|00003860| 73 69 7a 65 6f 66 28 6e | 61 6d 65 32 29 29 29 20 |sizeof(n|ame2))) |
|00003870| 3c 20 30 29 0a 58 09 09 | 20 20 20 20 72 65 74 75 |< 0).X..| retu|
|00003880| 72 6e 20 28 45 52 52 4f | 52 29 3b 0a 58 09 09 73 |rn (ERRO|R);.X..s|
|00003890| 74 72 69 70 5f 64 6f 6d | 61 69 6e 28 6e 61 6d 65 |trip_dom|ain(name|
|000038a0| 32 2c 20 64 6f 6d 61 69 | 6e 29 3b 0a 58 09 09 41 |2, domai|n);.X..A|
|000038b0| 64 64 4d 61 69 6c 4c 69 | 73 74 4d 65 6d 62 65 72 |ddMailLi|stMember|
|000038c0| 28 6e 61 6d 65 2c 6e 61 | 6d 65 32 29 3b 0a 58 09 |(name,na|me2);.X.|
|000038d0| 09 62 72 65 61 6b 3b 0a | 58 09 20 20 20 20 63 61 |.break;.|X. ca|
|000038e0| 73 65 20 54 5f 43 4e 41 | 4d 45 3a 0a 58 09 09 69 |se T_CNA|ME:.X..i|
|000038f0| 66 20 28 28 6e 61 6d 65 | 4c 65 6e 20 3d 20 64 6e |f ((name|Len = dn|
|00003900| 5f 65 78 70 61 6e 64 28 | 6d 73 67 2c 20 65 6f 6d |_expand(|msg, eom|
|00003910| 2c 20 63 70 2c 20 6e 61 | 6d 65 32 2c 0a 58 09 09 |, cp, na|me2,.X..|
|00003920| 73 69 7a 65 6f 66 28 6e | 61 6d 65 32 29 29 29 20 |sizeof(n|ame2))) |
|00003930| 3c 20 30 29 0a 58 09 09 | 20 20 20 20 72 65 74 75 |< 0).X..| retu|
|00003940| 72 6e 20 28 45 52 52 4f | 52 29 3b 0a 58 09 09 73 |rn (ERRO|R);.X..s|
|00003950| 74 72 69 70 5f 64 6f 6d | 61 69 6e 28 6e 61 6d 65 |trip_dom|ain(name|
|00003960| 32 2c 20 76 64 6f 6d 61 | 69 6e 29 3b 0a 58 09 09 |2, vdoma|in);.X..|
|00003970| 41 64 64 41 6c 69 61 73 | 28 6e 61 6d 65 32 2c 6e |AddAlias|(name2,n|
|00003980| 61 6d 65 29 3b 0a 58 09 | 09 62 72 65 61 6b 3b 0a |ame);.X.|.break;.|
|00003990| 58 0a 58 09 20 20 20 20 | 63 61 73 65 20 54 5f 4d |X.X. |case T_M|
|000039a0| 49 4e 46 4f 3a 0a 58 09 | 20 20 20 20 7b 0a 58 09 |INFO:.X.| {.X.|
|000039b0| 09 63 68 61 72 20 72 65 | 71 5f 6e 61 6d 65 5b 33 |.char re|q_name[3|
|000039c0| 32 5d 2c 65 72 72 5f 6e | 61 6d 65 5b 33 32 5d 3b |2],err_n|ame[32];|
|000039d0| 0a 58 09 09 69 6e 74 20 | 6e 3b 0a 58 0a 58 09 09 |.X..int |n;.X.X..|
|000039e0| 69 66 28 28 6e 20 3d 20 | 64 6e 5f 65 78 70 61 6e |if((n = |dn_expan|
|000039f0| 64 28 6d 73 67 2c 65 6f | 6d 2c 63 70 2c 72 65 71 |d(msg,eo|m,cp,req|
|00003a00| 5f 6e 61 6d 65 2c 73 69 | 7a 65 6f 66 28 72 65 71 |_name,si|zeof(req|
|00003a10| 5f 6e 61 6d 65 29 29 29 | 20 3c 20 30 29 0a 58 09 |_name)))| < 0).X.|
|00003a20| 09 09 72 65 74 75 72 6e | 28 45 52 52 4f 52 29 3b |..return|(ERROR);|
|00003a30| 0a 58 09 09 63 70 20 2b | 3d 20 6e 3b 0a 58 09 09 |.X..cp +|= n;.X..|
|00003a40| 73 74 72 69 70 5f 64 6f | 6d 61 69 6e 28 72 65 71 |strip_do|main(req|
|00003a50| 5f 6e 61 6d 65 2c 20 64 | 6f 6d 61 69 6e 29 3b 0a |_name, d|omain);.|
|00003a60| 58 09 09 69 66 28 28 6e | 20 3d 20 64 6e 5f 65 78 |X..if((n| = dn_ex|
|00003a70| 70 61 6e 64 28 6d 73 67 | 2c 65 6f 6d 2c 63 70 2c |pand(msg|,eom,cp,|
|00003a80| 65 72 72 5f 6e 61 6d 65 | 2c 73 69 7a 65 6f 66 28 |err_name|,sizeof(|
|00003a90| 65 72 72 5f 6e 61 6d 65 | 29 29 29 20 3c 20 30 29 |err_name|))) < 0)|
|00003aa0| 0a 58 09 09 09 72 65 74 | 75 72 6e 28 45 52 52 4f |.X...ret|urn(ERRO|
|00003ab0| 52 29 3b 0a 58 09 09 63 | 70 20 2b 3d 20 6e 3b 0a |R);.X..c|p += n;.|
|00003ac0| 58 09 09 73 74 72 69 70 | 5f 64 6f 6d 61 69 6e 28 |X..strip|_domain(|
|00003ad0| 65 72 72 5f 6e 61 6d 65 | 2c 20 64 6f 6d 61 69 6e |err_name|, domain|
|00003ae0| 29 3b 0a 58 09 09 43 68 | 61 6e 67 65 4d 61 69 6c |);.X..Ch|angeMail|
|00003af0| 4c 69 73 74 28 6e 61 6d | 65 2c 72 65 71 5f 6e 61 |List(nam|e,req_na|
|00003b00| 6d 65 2c 65 72 72 5f 6e | 61 6d 65 29 3b 0a 58 09 |me,err_n|ame);.X.|
|00003b10| 20 20 20 20 7d 0a 58 09 | 09 62 72 65 61 6b 3b 0a | }.X.|.break;.|
|00003b20| 58 09 20 20 20 20 63 61 | 73 65 20 54 5f 55 49 4e |X. ca|se T_UIN|
|00003b30| 46 4f 3a 0a 58 09 09 43 | 68 61 6e 67 65 4d 61 69 |FO:.X..C|hangeMai|
|00003b40| 6c 42 6f 78 28 6e 61 6d | 65 2c 4e 55 4c 4c 2c 63 |lBox(nam|e,NULL,c|
|00003b50| 70 2c 30 29 3b 0a 58 09 | 09 2f 2a 20 66 70 72 69 |p,0);.X.|./* fpri|
|00003b60| 6e 74 66 28 66 69 6c 65 | 2c 20 22 23 20 25 73 20 |ntf(file|, "# %s |
|00003b70| 2d 2d 20 25 73 5c 6e 22 | 2c 6e 61 6d 65 2c 20 63 |-- %s\n"|,name, c|
|00003b80| 70 29 3b 20 2a 2f 0a 58 | 09 09 62 72 65 61 6b 3b |p); */.X|..break;|
|00003b90| 0a 58 09 20 20 20 20 63 | 61 73 65 20 54 5f 48 49 |.X. c|ase T_HI|
|00003ba0| 4e 46 4f 3a 0a 58 09 20 | 20 20 20 7b 0a 58 09 09 |NFO:.X. | {.X..|
|00003bb0| 63 68 61 72 20 6d 61 63 | 68 5f 6e 61 6d 65 5b 31 |char mac|h_name[1|
|00003bc0| 32 38 5d 2c 6f 73 5f 6e | 61 6d 65 5b 31 32 38 5d |28],os_n|ame[128]|
|00003bd0| 3b 0a 58 09 09 69 6e 74 | 20 6e 3b 0a 58 0a 58 09 |;.X..int| n;.X.X.|
|00003be0| 09 2a 6d 61 63 68 5f 6e | 61 6d 65 20 3d 20 27 5c |.*mach_n|ame = '\|
|00003bf0| 30 27 3b 20 2f 2a 20 52 | 65 73 65 74 20 6d 61 63 |0'; /* R|eset mac|
|00003c00| 68 69 6e 65 5f 6e 61 6d | 65 20 2a 2f 0a 58 09 09 |hine_nam|e */.X..|
|00003c10| 69 66 28 6e 20 3d 20 2a | 63 70 2b 2b 29 20 7b 0a |if(n = *|cp++) {.|
|00003c20| 58 09 09 20 20 20 20 28 | 76 6f 69 64 29 73 70 72 |X.. (|void)spr|
|00003c30| 69 6e 74 66 28 6d 61 63 | 68 5f 6e 61 6d 65 2c 22 |intf(mac|h_name,"|
|00003c40| 25 2e 2a 73 22 2c 6e 2c | 20 63 70 29 3b 0a 58 09 |%.*s",n,| cp);.X.|
|00003c50| 09 20 20 20 20 63 70 20 | 2b 3d 20 6e 3b 0a 58 09 |. cp |+= n;.X.|
|00003c60| 09 7d 20 0a 58 09 09 2a | 6f 73 5f 6e 61 6d 65 20 |.} .X..*|os_name |
|00003c70| 3d 20 27 5c 30 27 3b 20 | 2f 2a 20 52 65 73 65 74 |= '\0'; |/* Reset|
|00003c80| 20 6f 73 5f 6e 61 6d 65 | 20 2a 2f 0a 58 09 09 69 | os_name| */.X..i|
|00003c90| 66 28 6e 20 3d 20 2a 63 | 70 2b 2b 29 20 7b 0a 58 |f(n = *c|p++) {.X|
|00003ca0| 09 09 20 20 20 20 28 76 | 6f 69 64 29 73 70 72 69 |.. (v|oid)spri|
|00003cb0| 6e 74 66 28 6f 73 5f 6e | 61 6d 65 2c 22 25 2e 2a |ntf(os_n|ame,"%.*|
|00003cc0| 73 22 2c 6e 2c 20 63 70 | 29 3b 0a 58 09 09 20 20 |s",n, cp|);.X.. |
|00003cd0| 20 20 63 70 20 2b 3d 20 | 6e 3b 0a 58 09 09 7d 20 | cp += |n;.X..} |
|00003ce0| 0a 58 09 09 43 68 61 6e | 67 65 48 49 6e 66 6f 28 |.X..Chan|geHInfo(|
|00003cf0| 6e 61 6d 65 2c 6d 61 63 | 68 5f 6e 61 6d 65 2c 6f |name,mac|h_name,o|
|00003d00| 73 5f 6e 61 6d 65 29 3b | 0a 58 09 20 20 20 20 7d |s_name);|.X. }|
|00003d10| 0a 58 09 09 62 72 65 61 | 6b 3b 0a 58 09 20 20 20 |.X..brea|k;.X. |
|00003d20| 20 63 61 73 65 20 54 5f | 47 49 44 3a 0a 58 09 09 | case T_|GID:.X..|
|00003d30| 43 68 61 6e 67 65 55 47 | 49 44 28 6e 61 6d 65 2c |ChangeUG|ID(name,|
|00003d40| 4e 4f 49 44 2c 5f 67 65 | 74 6c 6f 6e 67 28 63 70 |NOID,_ge|tlong(cp|
|00003d50| 29 29 3b 0a 58 09 09 62 | 72 65 61 6b 3b 0a 58 09 |));.X..b|reak;.X.|
|00003d60| 20 20 20 20 63 61 73 65 | 20 54 5f 55 49 44 3a 0a | case| T_UID:.|
|00003d70| 58 09 09 43 68 61 6e 67 | 65 55 47 49 44 28 6e 61 |X..Chang|eUGID(na|
|00003d80| 6d 65 2c 5f 67 65 74 6c | 6f 6e 67 28 63 70 29 2c |me,_getl|ong(cp),|
|00003d90| 4e 4f 49 44 29 3b 0a 58 | 09 09 62 72 65 61 6b 3b |NOID);.X|..break;|
|00003da0| 0a 58 09 20 20 20 20 63 | 61 73 65 20 54 5f 41 3a |.X. c|ase T_A:|
|00003db0| 0a 58 09 09 43 68 61 6e | 67 65 41 64 64 72 28 6e |.X..Chan|geAddr(n|
|00003dc0| 61 6d 65 2c 5f 67 65 74 | 6c 6f 6e 67 28 63 70 29 |ame,_get|long(cp)|
|00003dd0| 29 3b 0a 58 09 09 62 72 | 65 61 6b 3b 0a 58 23 69 |);.X..br|eak;.X#i|
|00003de0| 66 64 65 66 20 45 4d 55 | 4c 41 54 45 5f 48 45 53 |fdef EMU|LATE_HES|
|00003df0| 49 4f 44 0a 58 09 20 20 | 20 20 63 61 73 65 20 54 |IOD.X. | case T|
|00003e00| 5f 54 58 54 3a 0a 58 09 | 09 7b 0a 58 09 09 20 20 |_TXT:.X.|.{.X.. |
|00003e10| 20 20 69 6e 74 20 6e 3b | 0a 58 09 09 20 20 20 20 | int n;|.X.. |
|00003e20| 6e 20 3d 20 2a 63 70 2b | 2b 3b 0a 58 09 09 20 20 |n = *cp+|+;.X.. |
|00003e30| 20 20 43 68 61 6e 67 65 | 54 65 78 74 28 6e 61 6d | Change|Text(nam|
|00003e40| 65 2c 63 70 2c 6e 29 3b | 0a 58 09 09 20 20 20 20 |e,cp,n);|.X.. |
|00003e50| 2f 2a 20 66 70 72 69 6e | 74 66 28 66 69 6c 65 2c |/* fprin|tf(file,|
|00003e60| 20 22 25 73 7c 25 73 5c | 6e 22 2c 6e 61 6d 65 2c | "%s|%s\|n",name,|
|00003e70| 6e 61 6d 65 32 29 3b 20 | 2a 2f 0a 58 09 09 7d 0a |name2); |*/.X..}.|
|00003e80| 58 09 09 62 72 65 61 6b | 3b 0a 58 23 65 6e 64 69 |X..break|;.X#endi|
|00003e90| 66 20 2f 2a 20 45 4d 55 | 4c 41 54 45 5f 48 45 53 |f /* EMU|LATE_HES|
|00003ea0| 49 4f 44 20 2a 2f 0a 58 | 09 20 20 20 20 64 65 66 |IOD */.X|. def|
|00003eb0| 61 75 6c 74 3a 0a 58 09 | 09 62 72 65 61 6b 3b 0a |ault:.X.|.break;.|
|00003ec0| 58 09 7d 20 2f 2a 20 73 | 77 69 74 63 68 20 2a 2f |X.} /* s|witch */|
|00003ed0| 0a 58 20 20 20 20 7d 0a | 58 20 20 20 20 72 65 74 |.X }.|X ret|
|00003ee0| 75 72 6e 28 53 55 43 43 | 45 53 53 29 3b 0a 58 7d |urn(SUCC|ESS);.X}|
|00003ef0| 0a 58 0c 0a 58 73 74 61 | 74 69 63 20 69 6e 74 0a |.X..Xsta|tic int.|
|00003f00| 58 75 73 65 5f 71 75 6f | 74 65 73 28 6e 61 6d 65 |Xuse_quo|tes(name|
|00003f10| 29 0a 58 20 20 20 20 63 | 68 61 72 20 2a 6e 61 6d |).X c|har *nam|
|00003f20| 65 3b 0a 58 7b 0a 58 20 | 20 20 20 63 68 61 72 20 |e;.X{.X | char |
|00003f30| 2a 77 69 6c 64 70 3b 0a | 58 20 20 20 20 69 6e 74 |*wildp;.|X int|
|00003f40| 20 6e 6f 71 75 6f 74 65 | 73 20 3d 20 31 3b 0a 58 | noquote|s = 1;.X|
|00003f50| 0a 58 20 20 20 20 77 68 | 69 6c 65 28 2a 6e 61 6d |.X wh|ile(*nam|
|00003f60| 65 20 26 26 20 6e 6f 71 | 75 6f 74 65 73 29 0a 58 |e && noq|uotes).X|
|00003f70| 20 20 20 20 7b 0a 58 09 | 66 6f 72 28 77 69 6c 64 | {.X.|for(wild|
|00003f80| 70 20 3d 20 22 20 5c 74 | 5c 6e 7c 2f 22 3b 20 2a |p = " \t|\n|/"; *|
|00003f90| 77 69 6c 64 70 20 26 26 | 20 6e 6f 71 75 6f 74 65 |wildp &&| noquote|
|00003fa0| 73 3b 20 29 0a 58 09 20 | 20 20 20 69 66 28 2a 77 |s; ).X. | if(*w|
|00003fb0| 69 6c 64 70 2b 2b 20 3d | 3d 20 2a 6e 61 6d 65 29 |ildp++ =|= *name)|
|00003fc0| 0a 58 09 09 6e 6f 71 75 | 6f 74 65 73 3d 30 3b 0a |.X..noqu|otes=0;.|
|00003fd0| 58 09 6e 61 6d 65 2b 2b | 3b 0a 58 20 20 20 20 7d |X.name++|;.X }|
|00003fe0| 0a 58 20 20 20 20 72 65 | 74 75 72 6e 20 21 6e 6f |.X re|turn !no|
|00003ff0| 71 75 6f 74 65 73 3b 0a | 58 7d 0a 58 0a 58 4c 69 |quotes;.|X}.X.XLi|
|00004000| 73 74 48 6f 73 74 5f 63 | 6c 6f 73 65 28 29 0a 58 |stHost_c|lose().X|
|00004010| 7b 0a 58 20 20 20 20 69 | 66 20 28 73 6f 63 6b 46 |{.X i|f (sockF|
|00004020| 44 20 21 3d 20 2d 31 29 | 20 7b 0a 58 09 28 76 6f |D != -1)| {.X.(vo|
|00004030| 69 64 29 20 63 6c 6f 73 | 65 28 73 6f 63 6b 46 44 |id) clos|e(sockFD|
|00004040| 29 3b 0a 58 09 73 6f 63 | 6b 46 44 20 3d 20 2d 31 |);.X.soc|kFD = -1|
|00004050| 3b 0a 58 20 20 20 20 7d | 0a 58 7d 0a 58 0a 58 73 |;.X }|.X}.X.Xs|
|00004060| 74 72 75 63 74 20 6d 62 | 5f 65 6e 74 20 2a 0a 58 |truct mb|_ent *.X|
|00004070| 43 72 65 61 74 65 4d 61 | 69 6c 42 6f 78 28 6e 61 |CreateMa|ilBox(na|
|00004080| 6d 65 29 0a 58 20 20 20 | 63 68 61 72 20 2a 6e 61 |me).X |char *na|
|00004090| 6d 65 3b 0a 58 7b 0a 58 | 20 20 20 20 73 74 72 75 |me;.X{.X| stru|
|000040a0| 63 74 20 6d 62 5f 65 6e | 74 20 2a 6d 65 3b 0a 58 |ct mb_en|t *me;.X|
|000040b0| 0a 58 20 20 20 20 6d 65 | 20 3d 20 28 73 74 72 75 |.X me| = (stru|
|000040c0| 63 74 20 6d 62 5f 65 6e | 74 2a 29 6d 61 6c 6c 6f |ct mb_en|t*)mallo|
|000040d0| 63 28 73 69 7a 65 6f 66 | 28 73 74 72 75 63 74 20 |c(sizeof|(struct |
|000040e0| 6d 62 5f 65 6e 74 29 29 | 3b 0a 58 20 20 20 20 62 |mb_ent))|;.X b|
|000040f0| 7a 65 72 6f 28 6d 65 2c | 73 69 7a 65 6f 66 28 73 |zero(me,|sizeof(s|
|00004100| 74 72 75 63 74 20 6d 62 | 5f 65 6e 74 29 29 3b 0a |truct mb|_ent));.|
|00004110| 58 20 20 20 20 6d 65 2d | 3e 67 69 64 20 3d 20 4e |X me-|>gid = N|
|00004120| 4f 49 44 3b 0a 58 20 20 | 20 20 6d 65 2d 3e 75 69 |OID;.X | me->ui|
|00004130| 64 20 3d 20 4e 4f 49 44 | 3b 0a 58 20 20 20 20 73 |d = NOID|;.X s|
|00004140| 74 72 6e 63 70 79 28 6d | 65 2d 3e 6e 61 6d 65 2c |trncpy(m|e->name,|
|00004150| 6e 61 6d 65 2c 33 32 29 | 3b 0a 58 20 20 20 20 68 |name,32)|;.X h|
|00004160| 74 61 62 5f 65 6e 74 65 | 72 28 6d 62 5f 74 61 62 |tab_ente|r(mb_tab|
|00004170| 2c 6d 65 2c 6d 65 29 3b | 0a 58 20 20 20 20 72 65 |,me,me);|.X re|
|00004180| 74 75 72 6e 20 6d 65 3b | 0a 58 7d 0a 58 0a 58 73 |turn me;|.X}.X.Xs|
|00004190| 74 61 74 69 63 20 76 6f | 69 64 0a 58 43 68 61 6e |tatic vo|id.XChan|
|000041a0| 67 65 4d 61 69 6c 42 6f | 78 28 6e 61 6d 65 2c 62 |geMailBo|x(name,b|
|000041b0| 6f 78 2c 67 65 63 6f 73 | 2c 71 74 79 70 65 29 0a |ox,gecos|,qtype).|
|000041c0| 58 20 20 20 63 68 61 72 | 20 2a 6e 61 6d 65 2c 2a |X char| *name,*|
|000041d0| 62 6f 78 2c 2a 67 65 63 | 6f 73 3b 0a 58 20 20 20 |box,*gec|os;.X |
|000041e0| 69 6e 74 20 71 74 79 70 | 65 3b 0a 58 7b 0a 58 20 |int qtyp|e;.X{.X |
|000041f0| 20 20 20 73 74 72 75 63 | 74 20 6d 62 5f 65 6e 74 | struc|t mb_ent|
|00004200| 20 2a 6d 65 3b 0a 58 20 | 20 20 20 0a 58 20 20 20 | *me;.X | .X |
|00004210| 20 6d 65 20 3d 20 28 73 | 74 72 75 63 74 20 6d 62 | me = (s|truct mb|
|00004220| 5f 65 6e 74 2a 29 68 74 | 61 62 5f 66 69 6e 64 28 |_ent*)ht|ab_find(|
|00004230| 6d 62 5f 74 61 62 2c 6e | 61 6d 65 29 3b 0a 58 20 |mb_tab,n|ame);.X |
|00004240| 20 20 20 69 66 28 21 6d | 65 29 20 0a 58 09 6d 65 | if(!m|e) .X.me|
|00004250| 20 3d 20 43 72 65 61 74 | 65 4d 61 69 6c 42 6f 78 | = Creat|eMailBox|
|00004260| 28 6e 61 6d 65 29 3b 0a | 58 20 20 20 20 69 66 28 |(name);.|X if(|
|00004270| 71 74 79 70 65 29 0a 58 | 09 6d 65 2d 3e 71 74 79 |qtype).X|.me->qty|
|00004280| 70 65 20 3d 20 71 74 79 | 70 65 3b 0a 58 20 20 20 |pe = qty|pe;.X |
|00004290| 20 69 66 28 62 6f 78 29 | 0a 58 20 20 20 20 7b 0a | if(box)|.X {.|
|000042a0| 58 09 73 74 72 6e 63 70 | 79 28 6d 65 2d 3e 6d 61 |X.strncp|y(me->ma|
|000042b0| 69 6c 62 6f 78 2c 62 6f | 78 2c 33 32 29 3b 0a 58 |ilbox,bo|x,32);.X|
|000042c0| 20 20 20 20 20 20 20 20 | 69 66 28 21 73 74 72 6e | |if(!strn|
|000042d0| 63 6d 70 28 6e 61 6d 65 | 2c 62 6f 78 2c 33 32 29 |cmp(name|,box,32)|
|000042e0| 29 0a 58 09 20 20 20 20 | 2a 6d 65 2d 3e 6d 61 69 |).X. |*me->mai|
|000042f0| 6c 62 6f 78 20 3d 20 27 | 5c 30 27 3b 20 2f 2a 20 |lbox = '|\0'; /* |
|00004300| 5a 65 72 6f 69 6e 67 20 | 69 74 2e 20 2a 2f 0a 58 |Zeroing |it. */.X|
|00004310| 20 20 20 20 7d 0a 58 2f | 2a 0a 58 20 2a 20 54 68 | }.X/|*.X * Th|
|00004320| 69 73 20 63 61 6e 20 68 | 61 76 65 20 73 6f 6d 65 |is can h|ave some|
|00004330| 20 73 69 7a 65 2c 20 61 | 6e 64 20 69 73 20 70 72 | size, a|nd is pr|
|00004340| 6f 62 61 6c 79 20 69 6e | 66 72 65 71 75 65 6e 74 |obaly in|frequent|
|00004350| 2c 20 73 6f 20 49 20 6d | 61 6c 6c 6f 63 20 74 68 |, so I m|alloc th|
|00004360| 65 20 73 70 61 63 65 0a | 58 20 2a 2f 0a 58 20 20 |e space.|X */.X |
|00004370| 20 20 69 66 28 67 65 63 | 6f 73 29 0a 58 20 20 20 | if(gec|os).X |
|00004380| 20 7b 0a 58 09 69 66 28 | 6d 65 2d 3e 67 65 63 6f | {.X.if(|me->geco|
|00004390| 73 29 20 66 72 65 65 28 | 6d 65 2d 3e 67 65 63 6f |s) free(|me->geco|
|000043a0| 73 29 3b 20 2f 2a 20 50 | 72 65 76 69 6f 73 20 73 |s); /* P|revios s|
|000043b0| 74 75 66 66 20 2a 2f 0a | 58 09 6d 65 2d 3e 67 65 |tuff */.|X.me->ge|
|000043c0| 63 6f 73 20 3d 20 6d 61 | 6c 6c 6f 63 28 73 74 72 |cos = ma|lloc(str|
|000043d0| 6c 65 6e 28 67 65 63 6f | 73 29 20 2b 31 20 29 3b |len(geco|s) +1 );|
|000043e0| 0a 58 09 73 74 72 63 70 | 79 28 6d 65 2d 3e 67 65 |.X.strcp|y(me->ge|
|000043f0| 63 6f 73 2c 67 65 63 6f | 73 29 3b 0a 58 20 20 20 |cos,geco|s);.X |
|00004400| 20 7d 0a 58 7d 0a 58 0a | 58 23 69 66 64 65 66 20 | }.X}.X.|X#ifdef |
|00004410| 45 4d 55 4c 41 54 45 5f | 48 45 53 49 4f 44 0a 58 |EMULATE_|HESIOD.X|
|00004420| 73 74 61 74 69 63 20 76 | 6f 69 64 0a 58 43 68 61 |static v|oid.XCha|
|00004430| 6e 67 65 54 65 78 74 28 | 6e 61 6d 65 2c 74 65 78 |ngeText(|name,tex|
|00004440| 74 2c 6e 29 0a 58 20 20 | 20 20 63 68 61 72 20 2a |t,n).X | char *|
|00004450| 6e 61 6d 65 2c 2a 74 65 | 78 74 3b 0a 58 20 20 20 |name,*te|xt;.X |
|00004460| 20 69 6e 74 20 6e 3b 0a | 58 7b 0a 58 20 20 20 20 | int n;.|X{.X |
|00004470| 73 74 72 75 63 74 20 74 | 78 74 5f 65 6e 74 20 2a |struct t|xt_ent *|
|00004480| 74 65 3b 0a 58 0a 58 20 | 20 20 20 74 65 20 3d 20 |te;.X.X | te = |
|00004490| 28 73 74 72 75 63 74 20 | 74 78 74 5f 65 6e 74 2a |(struct |txt_ent*|
|000044a0| 29 68 74 61 62 5f 66 69 | 6e 64 28 74 78 74 5f 74 |)htab_fi|nd(txt_t|
|000044b0| 61 62 2c 6e 61 6d 65 29 | 3b 0a 58 20 20 20 20 69 |ab,name)|;.X i|
|000044c0| 66 28 21 74 65 29 20 0a | 58 20 20 20 20 7b 0a 58 |f(!te) .|X {.X|
|000044d0| 09 74 65 20 3d 20 28 73 | 74 72 75 63 74 20 74 78 |.te = (s|truct tx|
|000044e0| 74 5f 65 6e 74 2a 29 6d | 61 6c 6c 6f 63 28 73 69 |t_ent*)m|alloc(si|
|000044f0| 7a 65 6f 66 28 73 74 72 | 75 63 74 20 74 78 74 5f |zeof(str|uct txt_|
|00004500| 65 6e 74 29 29 3b 0a 58 | 09 73 74 72 6e 63 70 79 |ent));.X|.strncpy|
|00004510| 28 74 65 2d 3e 6e 61 6d | 65 2c 6e 61 6d 65 2c 33 |(te->nam|e,name,3|
|00004520| 32 29 3b 0a 58 09 68 74 | 61 62 5f 65 6e 74 65 72 |2);.X.ht|ab_enter|
|00004530| 28 74 78 74 5f 74 61 62 | 2c 74 65 2c 74 65 29 3b |(txt_tab|,te,te);|
|00004540| 0a 58 20 20 20 20 7d 0a | 58 20 20 20 20 65 6c 73 |.X }.|X els|
|00004550| 65 0a 58 09 66 72 65 65 | 28 74 65 2d 3e 74 78 74 |e.X.free|(te->txt|
|00004560| 29 3b 0a 58 20 20 20 20 | 74 65 2d 3e 74 78 74 20 |);.X |te->txt |
|00004570| 3d 20 6d 61 6c 6c 6f 63 | 28 6e 2b 31 29 3b 0a 58 |= malloc|(n+1);.X|
|00004580| 20 20 20 20 73 74 72 6e | 63 70 79 28 74 65 2d 3e | strn|cpy(te->|
|00004590| 74 78 74 2c 74 65 78 74 | 2c 6e 29 3b 0a 58 20 20 |txt,text|,n);.X |
|000045a0| 20 20 74 65 2d 3e 74 78 | 74 5b 6e 5d 20 3d 20 27 | te->tx|t[n] = '|
|000045b0| 5c 30 27 3b 0a 58 7d 0a | 58 23 65 6e 64 69 66 20 |\0';.X}.|X#endif |
|000045c0| 2f 2a 20 45 4d 55 4c 41 | 54 45 5f 48 45 53 49 4f |/* EMULA|TE_HESIO|
|000045d0| 44 20 2a 2f 0a 58 0a 58 | 73 74 61 74 69 63 20 76 |D */.X.X|static v|
|000045e0| 6f 69 64 0a 58 43 68 61 | 6e 67 65 55 47 49 44 28 |oid.XCha|ngeUGID(|
|000045f0| 6e 61 6d 65 2c 75 69 64 | 2c 67 69 64 29 0a 58 20 |name,uid|,gid).X |
|00004600| 20 20 20 63 68 61 72 20 | 2a 6e 61 6d 65 3b 0a 58 | char |*name;.X|
|00004610| 20 20 20 20 69 6e 74 20 | 75 69 64 2c 67 69 64 3b | int |uid,gid;|
|00004620| 0a 58 7b 0a 58 20 20 20 | 20 73 74 72 75 63 74 20 |.X{.X | struct |
|00004630| 6d 62 5f 65 6e 74 20 2a | 6d 65 3b 0a 58 20 20 20 |mb_ent *|me;.X |
|00004640| 20 0a 58 20 20 20 20 6d | 65 20 3d 20 28 73 74 72 | .X m|e = (str|
|00004650| 75 63 74 20 6d 62 5f 65 | 6e 74 2a 29 68 74 61 62 |uct mb_e|nt*)htab|
|00004660| 5f 66 69 6e 64 28 6d 62 | 5f 74 61 62 2c 6e 61 6d |_find(mb|_tab,nam|
|00004670| 65 29 3b 0a 58 20 20 20 | 20 69 66 28 21 6d 65 29 |e);.X | if(!me)|
|00004680| 20 0a 58 09 6d 65 20 3d | 20 43 72 65 61 74 65 4d | .X.me =| CreateM|
|00004690| 61 69 6c 42 6f 78 28 6e | 61 6d 65 29 3b 0a 58 20 |ailBox(n|ame);.X |
|000046a0| 20 20 20 69 66 28 67 69 | 64 20 21 3d 20 4e 4f 49 | if(gi|d != NOI|
|000046b0| 44 29 20 6d 65 2d 3e 67 | 69 64 20 3d 20 67 69 64 |D) me->g|id = gid|
|000046c0| 3b 0a 58 20 20 20 20 69 | 66 28 75 69 64 20 21 3d |;.X i|f(uid !=|
|000046d0| 20 4e 4f 49 44 29 20 6d | 65 2d 3e 75 69 64 20 3d | NOID) m|e->uid =|
|000046e0| 20 75 69 64 3b 0a 58 7d | 0a 58 0a 58 73 74 72 75 | uid;.X}|.X.Xstru|
|000046f0| 63 74 20 68 6f 73 74 5f | 65 6e 74 20 2a 0a 58 43 |ct host_|ent *.XC|
|00004700| 72 65 61 74 65 41 64 64 | 72 28 6e 61 6d 65 29 0a |reateAdd|r(name).|
|00004710| 58 20 20 20 20 63 68 61 | 72 20 2a 6e 61 6d 65 3b |X cha|r *name;|
|00004720| 0a 58 7b 0a 58 20 20 20 | 20 73 74 72 75 63 74 20 |.X{.X | struct |
|00004730| 68 6f 73 74 5f 65 6e 74 | 20 2a 6d 65 3b 0a 58 0a |host_ent| *me;.X.|
|00004740| 58 20 20 20 20 6d 65 20 | 3d 20 28 73 74 72 75 63 |X me |= (struc|
|00004750| 74 20 68 6f 73 74 5f 65 | 6e 74 20 2a 29 6d 61 6c |t host_e|nt *)mal|
|00004760| 6c 6f 63 28 73 69 7a 65 | 6f 66 28 73 74 72 75 63 |loc(size|of(struc|
|00004770| 74 20 68 6f 73 74 5f 65 | 6e 74 29 29 3b 0a 58 20 |t host_e|nt));.X |
|00004780| 20 20 20 62 7a 65 72 6f | 28 6d 65 2c 73 69 7a 65 | bzero|(me,size|
|00004790| 6f 66 28 73 74 72 75 63 | 74 20 68 6f 73 74 5f 65 |of(struc|t host_e|
|000047a0| 6e 74 29 29 3b 0a 58 20 | 20 20 20 73 74 72 6e 63 |nt));.X | strnc|
|000047b0| 70 79 28 6d 65 2d 3e 6e | 61 6d 65 2c 6e 61 6d 65 |py(me->n|ame,name|
|000047c0| 2c 33 32 29 3b 0a 58 20 | 20 20 20 56 54 61 62 6c |,32);.X | VTabl|
|000047d0| 65 53 65 74 28 26 6d 65 | 2d 3e 69 70 61 64 64 72 |eSet(&me|->ipaddr|
|000047e0| 2c 73 69 7a 65 6f 66 28 | 73 74 72 75 63 74 20 68 |,sizeof(|struct h|
|000047f0| 6f 73 74 5f 69 70 29 29 | 3b 0a 58 20 20 20 20 56 |ost_ip))|;.X V|
|00004800| 54 61 62 6c 65 53 65 74 | 28 26 6d 65 2d 3e 61 6c |TableSet|(&me->al|
|00004810| 69 61 73 65 73 2c 73 69 | 7a 65 6f 66 28 73 74 72 |iases,si|zeof(str|
|00004820| 75 63 74 20 68 6f 73 74 | 5f 61 6c 69 29 29 3b 0a |uct host|_ali));.|
|00004830| 58 20 20 20 20 68 74 61 | 62 5f 65 6e 74 65 72 28 |X hta|b_enter(|
|00004840| 68 6f 73 74 5f 74 61 62 | 2c 6d 65 2c 6d 65 29 3b |host_tab|,me,me);|
|00004850| 0a 58 20 20 20 20 72 65 | 74 75 72 6e 20 6d 65 3b |.X re|turn me;|
|00004860| 0a 58 7d 0a 58 0a 58 73 | 74 61 74 69 63 20 76 6f |.X}.X.Xs|tatic vo|
|00004870| 69 64 0a 58 43 68 61 6e | 67 65 41 64 64 72 28 6e |id.XChan|geAddr(n|
|00004880| 61 6d 65 2c 61 64 64 72 | 29 0a 58 20 20 20 20 63 |ame,addr|).X c|
|00004890| 68 61 72 20 2a 6e 61 6d | 65 3b 0a 58 20 20 20 20 |har *nam|e;.X |
|000048a0| 69 6e 74 20 61 64 64 72 | 3b 0a 58 7b 0a 58 20 20 |int addr|;.X{.X |
|000048b0| 20 20 73 74 72 75 63 74 | 20 68 6f 73 74 5f 65 6e | struct| host_en|
|000048c0| 74 20 2a 6d 65 3b 0a 58 | 20 20 20 20 73 74 72 75 |t *me;.X| stru|
|000048d0| 63 74 20 68 6f 73 74 5f | 69 70 20 69 70 2c 2a 68 |ct host_|ip ip,*h|
|000048e0| 69 3b 0a 58 20 20 20 20 | 69 6e 74 20 69 78 3d 30 |i;.X |int ix=0|
|000048f0| 3b 0a 58 0a 58 23 69 66 | 20 30 0a 58 66 70 72 69 |;.X.X#if| 0.Xfpri|
|00004900| 6e 74 66 28 73 74 64 65 | 72 72 2c 22 49 6e 20 43 |ntf(stde|rr,"In C|
|00004910| 68 61 6e 67 65 41 64 64 | 72 20 77 69 74 68 20 25 |hangeAdd|r with %|
|00004920| 73 5c 6e 22 2c 6e 61 6d | 65 29 3b 0a 58 23 65 6e |s\n",nam|e);.X#en|
|00004930| 64 69 66 0a 58 20 20 20 | 20 6d 65 20 3d 20 28 73 |dif.X | me = (s|
|00004940| 74 72 75 63 74 20 68 6f | 73 74 5f 65 6e 74 2a 29 |truct ho|st_ent*)|
|00004950| 68 74 61 62 5f 66 69 6e | 64 28 68 6f 73 74 5f 74 |htab_fin|d(host_t|
|00004960| 61 62 2c 6e 61 6d 65 29 | 3b 0a 58 20 20 20 20 69 |ab,name)|;.X i|
|00004970| 66 28 21 6d 65 29 0a 58 | 20 20 20 20 20 20 20 6d |f(!me).X| m|
|00004980| 65 20 3d 20 43 72 65 61 | 74 65 41 64 64 72 28 6e |e = Crea|teAddr(n|
|00004990| 61 6d 65 29 3b 0a 58 20 | 20 20 20 77 68 69 6c 65 |ame);.X | while|
|000049a0| 28 68 69 20 3d 20 28 73 | 74 72 75 63 74 20 68 6f |(hi = (s|truct ho|
|000049b0| 73 74 5f 69 70 2a 29 56 | 54 61 62 6c 65 4e 65 78 |st_ip*)V|TableNex|
|000049c0| 74 28 26 6d 65 2d 3e 69 | 70 61 64 64 72 2c 26 69 |t(&me->i|paddr,&i|
|000049d0| 78 2c 31 29 29 0a 58 20 | 20 20 20 7b 0a 58 20 20 |x,1)).X | {.X |
|000049e0| 20 20 20 20 20 69 66 28 | 68 69 2d 3e 61 64 64 72 | if(|hi->addr|
|000049f0| 20 3d 3d 20 61 64 64 72 | 29 20 72 65 74 75 72 6e | == addr|) return|
|00004a00| 3b 20 2f 2a 20 44 6f 20 | 6e 6f 74 20 61 64 64 20 |; /* Do |not add |
|00004a10| 73 61 6d 65 20 49 50 20 | 61 64 64 72 65 73 73 20 |same IP |address |
|00004a20| 74 77 69 63 65 20 2a 2f | 0a 58 20 20 20 20 7d 0a |twice */|.X }.|
|00004a30| 58 20 20 20 20 69 70 2e | 75 73 65 64 20 3d 20 30 |X ip.|used = 0|
|00004a40| 3b 0a 58 20 20 20 20 69 | 70 2e 61 64 64 72 20 3d |;.X i|p.addr =|
|00004a50| 20 61 64 64 72 3b 0a 58 | 20 20 20 20 56 54 61 62 | addr;.X| VTab|
|00004a60| 6c 65 41 70 70 65 6e 64 | 28 26 6d 65 2d 3e 69 70 |leAppend|(&me->ip|
|00004a70| 61 64 64 72 2c 28 63 68 | 61 72 2a 29 26 69 70 29 |addr,(ch|ar*)&ip)|
|00004a80| 3b 0a 58 7d 0a 58 0a 58 | 73 74 61 74 69 63 20 76 |;.X}.X.X|static v|
|00004a90| 6f 69 64 0a 58 41 64 64 | 41 6c 69 61 73 28 6e 61 |oid.XAdd|Alias(na|
|00004aa0| 6d 65 2c 61 6c 69 61 73 | 29 0a 58 20 20 20 20 63 |me,alias|).X c|
|00004ab0| 68 61 72 20 2a 6e 61 6d | 65 3b 0a 58 20 20 20 20 |har *nam|e;.X |
|00004ac0| 63 68 61 72 20 2a 61 6c | 69 61 73 3b 0a 58 7b 0a |char *al|ias;.X{.|
|00004ad0| 58 20 20 20 20 73 74 72 | 75 63 74 20 68 6f 73 74 |X str|uct host|
|00004ae0| 5f 65 6e 74 20 2a 6d 65 | 3b 0a 58 20 20 20 20 73 |_ent *me|;.X s|
|00004af0| 74 72 75 63 74 20 68 6f | 73 74 5f 61 6c 69 20 61 |truct ho|st_ali a|
|00004b00| 6c 69 3b 0a 58 0a 58 23 | 69 66 20 30 0a 58 66 70 |li;.X.X#|if 0.Xfp|
|00004b10| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 22 49 6e |rintf(st|derr,"In|
|00004b20| 20 41 64 64 41 6c 69 61 | 73 20 77 69 74 68 20 25 | AddAlia|s with %|
|00004b30| 73 5c 6e 22 2c 6e 61 6d | 65 29 3b 0a 58 23 65 6e |s\n",nam|e);.X#en|
|00004b40| 64 69 66 0a 58 20 20 20 | 20 6d 65 20 3d 20 28 73 |dif.X | me = (s|
|00004b50| 74 72 75 63 74 20 68 6f | 73 74 5f 65 6e 74 2a 29 |truct ho|st_ent*)|
|00004b60| 68 74 61 62 5f 66 69 6e | 64 28 68 6f 73 74 5f 74 |htab_fin|d(host_t|
|00004b70| 61 62 2c 6e 61 6d 65 29 | 3b 0a 58 20 20 20 20 69 |ab,name)|;.X i|
|00004b80| 66 28 21 6d 65 29 0a 58 | 20 20 20 20 20 20 20 6d |f(!me).X| m|
|00004b90| 65 20 3d 20 43 72 65 61 | 74 65 41 64 64 72 28 6e |e = Crea|teAddr(n|
|00004ba0| 61 6d 65 29 3b 0a 58 20 | 20 20 20 73 74 72 6e 63 |ame);.X | strnc|
|00004bb0| 70 79 28 61 6c 69 2e 6e | 61 6d 65 2c 61 6c 69 61 |py(ali.n|ame,alia|
|00004bc0| 73 2c 33 32 29 3b 0a 58 | 20 20 20 20 56 54 61 62 |s,32);.X| VTab|
|00004bd0| 6c 65 41 70 70 65 6e 64 | 28 26 6d 65 2d 3e 61 6c |leAppend|(&me->al|
|00004be0| 69 61 73 65 73 2c 28 63 | 68 61 72 2a 29 26 61 6c |iases,(c|har*)&al|
|00004bf0| 69 29 3b 0a 58 7d 0a 58 | 0a 58 73 74 61 74 69 63 |i);.X}.X|.Xstatic|
|00004c00| 20 76 6f 69 64 0a 58 43 | 68 61 6e 67 65 48 49 6e | void.XC|hangeHIn|
|00004c10| 66 6f 28 6e 61 6d 65 2c | 6d 61 63 68 2c 6f 73 29 |fo(name,|mach,os)|
|00004c20| 0a 58 20 20 20 20 63 68 | 61 72 20 2a 6e 61 6d 65 |.X ch|ar *name|
|00004c30| 3b 0a 58 20 20 20 20 63 | 68 61 72 20 2a 6d 61 63 |;.X c|har *mac|
|00004c40| 68 3b 0a 58 20 20 20 20 | 63 68 61 72 20 2a 6f 73 |h;.X |char *os|
|00004c50| 3b 0a 58 7b 0a 58 20 20 | 20 20 73 74 72 75 63 74 |;.X{.X | struct|
|00004c60| 20 68 6f 73 74 5f 65 6e | 74 20 2a 6d 65 3b 0a 58 | host_en|t *me;.X|
|00004c70| 20 20 20 20 63 68 61 72 | 20 2a 6d 6d 61 63 68 3b | char| *mmach;|
|00004c80| 0a 58 20 20 20 20 63 68 | 61 72 20 2a 6d 6f 73 3b |.X ch|ar *mos;|
|00004c90| 0a 58 0a 58 20 20 20 20 | 6d 65 20 3d 20 28 73 74 |.X.X |me = (st|
|00004ca0| 72 75 63 74 20 68 6f 73 | 74 5f 65 6e 74 2a 29 68 |ruct hos|t_ent*)h|
|00004cb0| 74 61 62 5f 66 69 6e 64 | 28 68 6f 73 74 5f 74 61 |tab_find|(host_ta|
|00004cc0| 62 2c 6e 61 6d 65 29 3b | 0a 58 20 20 20 20 69 66 |b,name);|.X if|
|00004cd0| 28 21 6d 65 29 0a 58 09 | 6d 65 20 3d 20 43 72 65 |(!me).X.|me = Cre|
|00004ce0| 61 74 65 41 64 64 72 28 | 6e 61 6d 65 29 3b 0a 58 |ateAddr(|name);.X|
|00004cf0| 20 20 20 20 6d 6d 61 63 | 68 20 3d 20 6d 61 6c 6c | mmac|h = mall|
|00004d00| 6f 63 28 73 74 72 6c 65 | 6e 28 6d 61 63 68 29 2b |oc(strle|n(mach)+|
|00004d10| 31 29 3b 0a 58 20 20 20 | 20 6d 6f 73 20 3d 20 6d |1);.X | mos = m|
|00004d20| 61 6c 6c 6f 63 28 73 74 | 72 6c 65 6e 28 6f 73 29 |alloc(st|rlen(os)|
|00004d30| 2b 31 29 3b 0a 58 20 20 | 20 20 73 74 72 63 70 79 |+1);.X | strcpy|
|00004d40| 28 6d 6d 61 63 68 2c 6d | 61 63 68 29 3b 0a 58 20 |(mmach,m|ach);.X |
|00004d50| 20 20 20 73 74 72 63 70 | 79 28 6d 6f 73 2c 6f 73 | strcp|y(mos,os|
|00004d60| 29 3b 0a 58 0a 58 20 20 | 20 20 6d 65 2d 3e 6f 73 |);.X.X | me->os|
|00004d70| 74 79 70 65 20 3d 20 6d | 6f 73 3b 0a 58 20 20 20 |type = m|os;.X |
|00004d80| 20 6d 65 2d 3e 6d 61 63 | 68 74 79 70 65 20 3d 20 | me->mac|htype = |
|00004d90| 6d 6d 61 63 68 3b 0a 58 | 7d 0a 58 0a 58 73 74 72 |mmach;.X|}.X.Xstr|
|00004da0| 75 63 74 20 6d 69 6e 66 | 6f 5f 65 6e 74 20 2a 0a |uct minf|o_ent *.|
|00004db0| 58 43 72 65 61 74 65 4d | 61 69 6c 4c 69 73 74 28 |XCreateM|ailList(|
|00004dc0| 6e 61 6d 65 29 0a 58 20 | 20 20 63 68 61 72 20 2a |name).X | char *|
|00004dd0| 6e 61 6d 65 3b 0a 58 7b | 0a 58 20 20 20 20 73 74 |name;.X{|.X st|
|00004de0| 72 75 63 74 20 6d 69 6e | 66 6f 5f 65 6e 74 20 2a |ruct min|fo_ent *|
|00004df0| 6d 65 3b 0a 58 0a 58 20 | 20 20 20 6d 65 20 3d 20 |me;.X.X | me = |
|00004e00| 28 73 74 72 75 63 74 20 | 6d 69 6e 66 6f 5f 65 6e |(struct |minfo_en|
|00004e10| 74 2a 29 6d 61 6c 6c 6f | 63 28 73 69 7a 65 6f 66 |t*)mallo|c(sizeof|
|00004e20| 28 73 74 72 75 63 74 20 | 6d 69 6e 66 6f 5f 65 6e |(struct |minfo_en|
|00004e30| 74 29 29 3b 0a 58 20 20 | 20 20 62 7a 65 72 6f 28 |t));.X | bzero(|
|00004e40| 6d 65 2c 73 69 7a 65 6f | 66 28 73 74 72 75 63 74 |me,sizeo|f(struct|
|00004e50| 20 6d 69 6e 66 6f 5f 65 | 6e 74 29 29 3b 0a 58 20 | minfo_e|nt));.X |
|00004e60| 20 20 20 73 74 72 6e 63 | 70 79 28 6d 65 2d 3e 6e | strnc|py(me->n|
|00004e70| 61 6d 65 2c 6e 61 6d 65 | 2c 33 32 29 3b 0a 58 20 |ame,name|,32);.X |
|00004e80| 20 20 20 56 54 61 62 6c | 65 53 65 74 28 26 6d 65 | VTabl|eSet(&me|
|00004e90| 2d 3e 74 61 62 6c 65 2c | 73 69 7a 65 6f 66 28 73 |->table,|sizeof(s|
|00004ea0| 74 72 75 63 74 20 6d 67 | 5f 65 6e 74 29 29 3b 0a |truct mg|_ent));.|
|00004eb0| 58 20 20 20 20 68 74 61 | 62 5f 65 6e 74 65 72 28 |X hta|b_enter(|
|00004ec0| 6d 61 69 6c 74 61 62 2c | 6d 65 2c 6d 65 29 3b 0a |mailtab,|me,me);.|
|00004ed0| 58 20 20 20 20 72 65 74 | 75 72 6e 20 6d 65 3b 0a |X ret|urn me;.|
|00004ee0| 58 7d 0a 58 0a 58 73 74 | 61 74 69 63 20 76 6f 69 |X}.X.Xst|atic voi|
|00004ef0| 64 0a 58 43 68 61 6e 67 | 65 4d 61 69 6c 4c 69 73 |d.XChang|eMailLis|
|00004f00| 74 28 6e 61 6d 65 2c 72 | 65 71 75 65 73 74 2c 65 |t(name,r|equest,e|
|00004f10| 72 72 6f 72 73 29 0a 58 | 20 20 20 63 68 61 72 20 |rrors).X| char |
|00004f20| 2a 6e 61 6d 65 2c 2a 72 | 65 71 75 65 73 74 2c 2a |*name,*r|equest,*|
|00004f30| 65 72 72 6f 72 73 3b 0a | 58 7b 0a 58 20 20 20 20 |errors;.|X{.X |
|00004f40| 73 74 72 75 63 74 20 6d | 69 6e 66 6f 5f 65 6e 74 |struct m|info_ent|
|00004f50| 20 2a 6d 65 3b 0a 58 20 | 20 20 20 0a 58 20 20 20 | *me;.X | .X |
|00004f60| 20 6d 65 20 3d 20 28 73 | 74 72 75 63 74 20 6d 69 | me = (s|truct mi|
|00004f70| 6e 66 6f 5f 65 6e 74 2a | 29 68 74 61 62 5f 66 69 |nfo_ent*|)htab_fi|
|00004f80| 6e 64 28 6d 61 69 6c 74 | 61 62 2c 6e 61 6d 65 29 |nd(mailt|ab,name)|
|00004f90| 3b 0a 58 20 20 20 20 69 | 66 28 21 6d 65 29 20 0a |;.X i|f(!me) .|
|00004fa0| 58 09 6d 65 20 3d 20 43 | 72 65 61 74 65 4d 61 69 |X.me = C|reateMai|
|00004fb0| 6c 4c 69 73 74 28 6e 61 | 6d 65 29 3b 0a 58 20 20 |lList(na|me);.X |
|00004fc0| 20 20 69 66 28 72 65 71 | 75 65 73 74 29 0a 58 09 | if(req|uest).X.|
|00004fd0| 73 74 72 6e 63 70 79 28 | 6d 65 2d 3e 72 65 71 75 |strncpy(|me->requ|
|00004fe0| 65 73 74 2c 72 65 71 75 | 65 73 74 2c 33 32 29 3b |est,requ|est,32);|
|00004ff0| 0a 58 20 20 20 20 69 66 | 28 65 72 72 6f 72 73 29 |.X if|(errors)|
|00005000| 0a 58 09 73 74 72 6e 63 | 70 79 28 6d 65 2d 3e 65 |.X.strnc|py(me->e|
|00005010| 72 72 6f 72 73 2c 65 72 | 72 6f 72 73 2c 33 32 29 |rrors,er|rors,32)|
|00005020| 3b 0a 58 7d 0a 58 0a 58 | 73 74 61 74 69 63 20 76 |;.X}.X.X|static v|
|00005030| 6f 69 64 0a 58 41 64 64 | 4d 61 69 6c 4c 69 73 74 |oid.XAdd|MailList|
|00005040| 4d 65 6d 62 65 72 28 6e | 61 6d 65 2c 6d 65 6d 62 |Member(n|ame,memb|
|00005050| 65 72 29 0a 58 20 20 20 | 20 63 68 61 72 20 2a 6e |er).X | char *n|
|00005060| 61 6d 65 2c 2a 6d 65 6d | 62 65 72 3b 0a 58 7b 0a |ame,*mem|ber;.X{.|
|00005070| 58 20 20 20 20 73 74 72 | 75 63 74 20 6d 69 6e 66 |X str|uct minf|
|00005080| 6f 5f 65 6e 74 20 2a 6d | 65 3b 0a 58 20 20 20 20 |o_ent *m|e;.X |
|00005090| 73 74 72 75 63 74 20 6d | 67 5f 65 6e 74 20 6d 67 |struct m|g_ent mg|
|000050a0| 3b 0a 58 20 20 20 20 0a | 58 20 20 20 20 6d 65 20 |;.X .|X me |
|000050b0| 3d 20 28 73 74 72 75 63 | 74 20 6d 69 6e 66 6f 5f |= (struc|t minfo_|
|000050c0| 65 6e 74 2a 29 68 74 61 | 62 5f 66 69 6e 64 28 6d |ent*)hta|b_find(m|
|000050d0| 61 69 6c 74 61 62 2c 6e | 61 6d 65 29 3b 0a 58 20 |ailtab,n|ame);.X |
|000050e0| 20 20 20 69 66 28 21 6d | 65 29 20 0a 58 09 6d 65 | if(!m|e) .X.me|
|000050f0| 20 3d 20 43 72 65 61 74 | 65 4d 61 69 6c 4c 69 73 | = Creat|eMailLis|
|00005100| 74 28 6e 61 6d 65 29 3b | 0a 58 20 20 20 20 73 74 |t(name);|.X st|
|00005110| 72 6e 63 70 79 28 6d 67 | 2e 6d 65 6d 62 65 72 2c |rncpy(mg|.member,|
|00005120| 6d 65 6d 62 65 72 2c 33 | 32 29 3b 0a 58 20 20 20 |member,3|2);.X |
|00005130| 20 56 54 61 62 6c 65 41 | 70 70 65 6e 64 28 26 6d | VTableA|ppend(&m|
|00005140| 65 2d 3e 74 61 62 6c 65 | 2c 28 63 68 61 72 2a 29 |e->table|,(char*)|
|00005150| 26 6d 67 29 3b 0a 58 7d | 0a 58 0a 58 50 72 69 6e |&mg);.X}|.X.XPrin|
|00005160| 74 4d 61 69 6c 4c 69 73 | 74 73 28 66 69 6c 65 29 |tMailLis|ts(file)|
|00005170| 0a 58 20 20 20 20 46 49 | 4c 45 09 2a 66 69 6c 65 |.X FI|LE.*file|
|00005180| 3b 0a 58 7b 0a 58 20 20 | 20 20 69 6e 74 20 73 74 |;.X{.X | int st|
|00005190| 61 72 74 69 6e 67 3d 20 | 54 52 55 45 3b 0a 58 20 |arting= |TRUE;.X |
|000051a0| 20 20 20 69 6e 74 20 70 | 6f 73 2c 66 69 72 73 74 | int p|os,first|
|000051b0| 2c 6d 6c 65 6e 3b 0a 58 | 20 20 20 20 73 74 72 75 |,mlen;.X| stru|
|000051c0| 63 74 20 6d 69 6e 66 6f | 5f 65 6e 74 20 2a 6d 65 |ct minfo|_ent *me|
|000051d0| 2c 2a 6b 65 79 3b 0a 58 | 20 20 20 20 73 74 72 75 |,*key;.X| stru|
|000051e0| 63 74 20 6d 67 5f 65 6e | 74 20 2a 6d 67 3b 0a 58 |ct mg_en|t *mg;.X|
|000051f0| 0a 58 20 20 20 20 66 70 | 72 69 6e 74 66 28 66 69 |.X fp|rintf(fi|
|00005200| 6c 65 2c 22 23 5c 6e 23 | 20 4d 61 69 6c 6c 69 73 |le,"#\n#| Maillis|
|00005210| 74 73 20 63 72 65 61 74 | 65 64 20 62 79 20 6e 73 |ts creat|ed by ns|
|00005220| 32 74 61 62 5c 6e 23 5c | 6e 22 29 3b 0a 58 20 20 |2tab\n#\|n");.X |
|00005230| 20 20 77 68 69 6c 65 28 | 68 74 61 62 5f 6c 69 73 | while(|htab_lis|
|00005240| 74 28 6d 61 69 6c 74 61 | 62 2c 73 74 61 72 74 69 |t(mailta|b,starti|
|00005250| 6e 67 2c 26 6d 65 2c 26 | 6b 65 79 29 29 0a 58 20 |ng,&me,&|key)).X |
|00005260| 20 20 20 7b 0a 58 09 69 | 6e 74 20 69 78 3d 30 3b | {.X.i|nt ix=0;|
|00005270| 0a 58 09 69 6e 74 20 6c | 2c 64 6e 72 3b 0a 58 09 |.X.int l|,dnr;.X.|
|00005280| 73 74 72 75 63 74 20 6d | 62 5f 65 6e 74 20 2a 6d |struct m|b_ent *m|
|00005290| 62 3b 0a 58 0a 58 09 73 | 74 61 72 74 69 6e 67 20 |b;.X.X.s|tarting |
|000052a0| 3d 20 46 41 4c 53 45 3b | 0a 58 09 69 66 28 56 54 |= FALSE;|.X.if(VT|
|000052b0| 61 62 6c 65 53 69 7a 65 | 28 26 6d 65 2d 3e 74 61 |ableSize|(&me->ta|
|000052c0| 62 6c 65 29 20 3d 3d 20 | 30 29 0a 58 09 20 20 20 |ble) == |0).X. |
|000052d0| 20 63 6f 6e 74 69 6e 75 | 65 3b 0a 58 09 66 70 72 | continu|e;.X.fpr|
|000052e0| 69 6e 74 66 28 66 69 6c | 65 2c 22 5c 6e 22 29 3b |intf(fil|e,"\n");|
|000052f0| 20 2f 2a 20 53 74 61 72 | 74 20 65 61 63 68 20 6c | /* Star|t each l|
|00005300| 69 73 74 20 77 69 74 68 | 20 61 20 6e 65 77 6c 69 |ist with| a newli|
|00005310| 6e 65 20 2a 2f 0a 58 09 | 69 66 28 28 6d 62 20 3d |ne */.X.|if((mb =|
|00005320| 20 68 74 61 62 5f 66 69 | 6e 64 28 6d 62 5f 74 61 | htab_fi|nd(mb_ta|
|00005330| 62 2c 6d 65 2d 3e 6e 61 | 6d 65 29 29 20 26 26 20 |b,me->na|me)) && |
|00005340| 6d 62 2d 3e 67 65 63 6f | 73 29 0a 58 09 20 20 20 |mb->geco|s).X. |
|00005350| 66 70 72 69 6e 74 66 28 | 66 69 6c 65 2c 22 23 20 |fprintf(|file,"# |
|00005360| 25 73 5c 6e 22 2c 6d 62 | 2d 3e 67 65 63 6f 73 29 |%s\n",mb|->gecos)|
|00005370| 3b 20 2f 2a 20 47 65 74 | 20 63 6f 6d 6d 65 6e 74 |; /* Get| comment|
|00005380| 20 2a 2f 0a 58 09 64 6e | 72 20 3d 30 3b 0a 58 09 | */.X.dn|r =0;.X.|
|00005390| 69 66 28 2a 6d 65 2d 3e | 72 65 71 75 65 73 74 29 |if(*me->|request)|
|000053a0| 0a 58 09 20 20 20 20 66 | 70 72 69 6e 74 66 28 66 |.X. f|printf(f|
|000053b0| 69 6c 65 2c 22 25 73 2d | 72 65 71 75 65 73 74 3a |ile,"%s-|request:|
|000053c0| 20 25 73 5c 6e 22 2c 6d | 65 2d 3e 6e 61 6d 65 2c | %s\n",m|e->name,|
|000053d0| 6d 65 2d 3e 72 65 71 75 | 65 73 74 29 3b 0a 58 09 |me->requ|est);.X.|
|000053e0| 69 66 28 2a 6d 65 2d 3e | 65 72 72 6f 72 73 29 0a |if(*me->|errors).|
|000053f0| 58 09 20 20 20 20 66 70 | 72 69 6e 74 66 28 66 69 |X. fp|rintf(fi|
|00005400| 6c 65 2c 22 6f 77 6e 65 | 72 2d 25 73 3a 20 25 73 |le,"owne|r-%s: %s|
|00005410| 5c 6e 22 2c 6d 65 2d 3e | 6e 61 6d 65 2c 6d 65 2d |\n",me->|name,me-|
|00005420| 3e 65 72 72 6f 72 73 29 | 3b 0a 58 09 66 70 72 69 |>errors)|;.X.fpri|
|00005430| 6e 74 66 28 66 69 6c 65 | 2c 22 25 73 3a 20 22 2c |ntf(file|,"%s: ",|
|00005440| 6d 65 2d 3e 6e 61 6d 65 | 29 3b 0a 58 09 70 6f 73 |me->name|);.X.pos|
|00005450| 20 3d 20 73 74 72 6c 65 | 6e 28 6d 65 2d 3e 6e 61 | = strle|n(me->na|
|00005460| 6d 65 29 20 2b 31 3b 0a | 58 09 6d 6c 65 6e 20 3d |me) +1;.|X.mlen =|
|00005470| 20 70 6f 73 3b 0a 58 09 | 66 69 72 73 74 20 3d 20 | pos;.X.|first = |
|00005480| 54 52 55 45 3b 0a 58 20 | 20 20 20 20 20 20 20 77 |TRUE;.X | w|
|00005490| 68 69 6c 65 28 6d 67 20 | 3d 20 28 73 74 72 75 63 |hile(mg |= (struc|
|000054a0| 74 20 6d 67 5f 65 6e 74 | 2a 29 56 54 61 62 6c 65 |t mg_ent|*)VTable|
|000054b0| 4e 65 78 74 28 26 6d 65 | 2d 3e 74 61 62 6c 65 2c |Next(&me|->table,|
|000054c0| 26 69 78 2c 31 29 29 0a | 58 09 7b 0a 58 2f 2a 0a |&ix,1)).|X.{.X/*.|
|000054d0| 58 20 2a 20 44 6f 20 6e | 6f 74 20 69 6e 63 6c 75 |X * Do n|ot inclu|
|000054e0| 64 65 20 61 20 6c 69 73 | 74 6d 65 6d 62 65 72 20 |de a lis|tmember |
|000054f0| 77 69 74 68 20 74 68 65 | 20 73 61 6d 65 20 6e 61 |with the| same na|
|00005500| 6d 65 20 61 73 20 74 68 | 65 20 6c 69 73 74 20 69 |me as th|e list i|
|00005510| 74 20 73 65 6c 66 0a 58 | 20 2a 2f 0a 58 09 20 20 |t self.X| */.X. |
|00005520| 20 20 69 66 28 21 73 74 | 72 63 6d 70 28 6d 65 2d | if(!st|rcmp(me-|
|00005530| 3e 6e 61 6d 65 2c 6d 67 | 2d 3e 6d 65 6d 62 65 72 |>name,mg|->member|
|00005540| 29 29 20 63 6f 6e 74 69 | 6e 75 65 3b 0a 58 0a 58 |)) conti|nue;.X.X|
|00005550| 09 20 20 20 20 6c 20 3d | 20 73 74 72 6c 65 6e 28 |. l =| strlen(|
|00005560| 6d 67 2d 3e 6d 65 6d 62 | 65 72 29 20 2b 20 32 3b |mg->memb|er) + 2;|
|00005570| 0a 58 2f 2a 20 49 20 61 | 6d 20 74 6f 6c 64 20 74 |.X/* I a|m told t|
|00005580| 68 61 74 20 62 65 63 61 | 75 73 65 20 6f 66 20 72 |hat beca|use of r|
|00005590| 65 73 74 72 69 63 74 69 | 6f 6e 73 20 69 6e 20 64 |estricti|ons in d|
|000055a0| 62 6d 20 61 6e 20 61 6c | 69 61 73 20 63 61 6e 6e |bm an al|ias cann|
|000055b0| 6f 74 20 63 6f 6e 74 61 | 69 6e 0a 58 20 20 20 6d |ot conta|in.X m|
|000055c0| 6f 72 65 20 74 68 61 6e | 20 61 70 70 72 6f 78 69 |ore than| approxi|
|000055d0| 6d 61 74 65 6c 79 20 31 | 30 30 30 20 62 79 74 65 |mately 1|000 byte|
|000055e0| 73 20 6f 66 20 69 6e 66 | 6f 72 6d 61 74 69 6f 6e |s of inf|ormation|
|000055f0| 2e 20 53 6f 20 49 20 63 | 72 65 61 74 65 0a 58 20 |. So I c|reate.X |
|00005600| 20 20 64 75 6d 6d 79 20 | 61 6c 69 61 73 65 73 2e | dummy |aliases.|
|00005610| 0a 58 2a 2f 0a 58 09 20 | 20 20 20 6d 6c 65 6e 20 |.X*/.X. | mlen |
|00005620| 2b 3d 20 6c 3b 0a 58 09 | 20 20 20 20 69 66 28 6d |+= l;.X.| if(m|
|00005630| 6c 65 6e 20 3e 20 39 37 | 30 29 0a 58 09 20 20 20 |len > 97|0).X. |
|00005640| 20 7b 0a 58 09 09 69 66 | 28 21 66 69 72 73 74 29 | {.X..if|(!first)|
|00005650| 20 70 75 74 63 28 27 2c | 27 2c 66 69 6c 65 29 3b | putc(',|',file);|
|00005660| 0a 58 09 09 64 6e 72 2b | 2b 3b 0a 58 09 09 66 70 |.X..dnr+|+;.X..fp|
|00005670| 72 69 6e 74 66 28 66 69 | 6c 65 2c 22 25 73 5f 25 |rintf(fi|le,"%s_%|
|00005680| 64 2c 5c 6e 22 2c 6d 65 | 2d 3e 6e 61 6d 65 2c 64 |d,\n",me|->name,d|
|00005690| 6e 72 29 3b 0a 58 09 09 | 66 70 72 69 6e 74 66 28 |nr);.X..|fprintf(|
|000056a0| 66 69 6c 65 2c 0a 58 09 | 22 23 20 44 75 6d 6d 79 |file,.X.|"# Dummy|
|000056b0| 20 61 6c 69 61 73 20 6e | 65 63 65 73 61 72 79 20 | alias n|ecesary |
|000056c0| 62 65 63 61 75 73 65 20 | 6f 66 20 72 65 73 74 72 |because |of restr|
|000056d0| 69 63 74 69 6f 6e 73 20 | 69 6e 20 64 62 6d 28 33 |ictions |in dbm(3|
|000056e0| 78 29 2e 5c 6e 22 29 3b | 0a 58 09 09 66 70 72 69 |x).\n");|.X..fpri|
|000056f0| 6e 74 66 28 66 69 6c 65 | 2c 22 25 73 5f 25 64 3a |ntf(file|,"%s_%d:|
|00005700| 20 25 73 22 2c 6d 65 2d | 3e 6e 61 6d 65 2c 64 6e | %s",me-|>name,dn|
|00005710| 72 2c 6d 67 2d 3e 6d 65 | 6d 62 65 72 29 3b 0a 58 |r,mg->me|mber);.X|
|00005720| 09 09 70 6f 73 20 3d 20 | 73 74 72 6c 65 6e 28 6d |..pos = |strlen(m|
|00005730| 65 2d 3e 6e 61 6d 65 29 | 20 2b 20 34 3b 0a 58 09 |e->name)| + 4;.X.|
|00005740| 09 6d 6c 65 6e 20 3d 20 | 70 6f 73 20 2b 20 6c 3b |.mlen = |pos + l;|
|00005750| 0a 58 09 09 66 69 72 73 | 74 20 3d 20 46 41 4c 53 |.X..firs|t = FALS|
|00005760| 45 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 20 20 20 |E;.X. | }.X. |
|00005770| 20 69 66 28 28 70 6f 73 | 20 2b 20 6c 29 20 3e 20 | if((pos| + l) > |
|00005780| 37 36 29 0a 58 09 20 20 | 20 20 7b 0a 58 09 09 70 |76).X. | {.X..p|
|00005790| 6f 73 20 3d 20 6c 3b 0a | 58 09 09 66 70 72 69 6e |os = l;.|X..fprin|
|000057a0| 74 66 28 66 69 6c 65 2c | 22 2c 5c 6e 5c 74 25 73 |tf(file,|",\n\t%s|
|000057b0| 22 2c 6d 67 2d 3e 6d 65 | 6d 62 65 72 29 3b 0a 58 |",mg->me|mber);.X|
|000057c0| 09 20 20 20 20 7d 0a 58 | 09 20 20 20 20 65 6c 73 |. }.X|. els|
|000057d0| 65 0a 58 09 20 20 20 20 | 7b 0a 58 09 09 70 6f 73 |e.X. |{.X..pos|
|000057e0| 20 2b 3d 20 6c 3b 0a 58 | 09 09 69 66 28 21 66 69 | += l;.X|..if(!fi|
|000057f0| 72 73 74 29 20 66 70 72 | 69 6e 74 66 28 66 69 6c |rst) fpr|intf(fil|
|00005800| 65 2c 22 2c 20 22 29 3b | 0a 58 09 09 66 69 72 73 |e,", ");|.X..firs|
|00005810| 74 20 3d 20 46 41 4c 53 | 45 3b 0a 58 09 09 66 70 |t = FALS|E;.X..fp|
|00005820| 72 69 6e 74 66 28 66 69 | 6c 65 2c 22 25 73 22 2c |rintf(fi|le,"%s",|
|00005830| 6d 67 2d 3e 6d 65 6d 62 | 65 72 29 3b 0a 58 09 20 |mg->memb|er);.X. |
|00005840| 20 20 20 7d 0a 58 09 7d | 0a 58 09 66 70 72 69 6e | }.X.}|.X.fprin|
|00005850| 74 66 28 66 69 6c 65 2c | 22 5c 6e 22 29 3b 0a 58 |tf(file,|"\n");.X|
|00005860| 20 20 20 20 7d 0a 58 7d | 0a 58 0a 58 50 72 69 6e | }.X}|.X.XPrin|
|00005870| 74 4d 61 69 6c 42 6f 78 | 65 73 28 66 69 6c 65 29 |tMailBox|es(file)|
|00005880| 0a 58 20 20 20 20 46 49 | 4c 45 09 2a 66 69 6c 65 |.X FI|LE.*file|
|00005890| 3b 0a 58 7b 0a 58 20 20 | 20 20 69 6e 74 20 73 74 |;.X{.X | int st|
|000058a0| 61 72 74 69 6e 67 3d 20 | 54 52 55 45 3b 0a 58 20 |arting= |TRUE;.X |
|000058b0| 20 20 20 73 74 72 75 63 | 74 20 6d 62 5f 65 6e 74 | struc|t mb_ent|
|000058c0| 20 2a 6d 65 2c 2a 6b 65 | 79 3b 0a 58 0a 58 20 20 | *me,*ke|y;.X.X |
|000058d0| 20 20 66 70 72 69 6e 74 | 66 28 66 69 6c 65 2c 22 | fprint|f(file,"|
|000058e0| 23 5c 6e 23 20 4d 61 69 | 6c 62 6f 78 65 73 20 63 |#\n# Mai|lboxes c|
|000058f0| 72 65 61 74 65 64 20 62 | 79 20 6e 73 32 74 61 62 |reated b|y ns2tab|
|00005900| 5c 6e 23 5c 6e 22 29 3b | 0a 58 20 20 20 20 77 68 |\n#\n");|.X wh|
|00005910| 69 6c 65 28 68 74 61 62 | 5f 6c 69 73 74 28 6d 62 |ile(htab|_list(mb|
|00005920| 5f 74 61 62 2c 73 74 61 | 72 74 69 6e 67 2c 26 6d |_tab,sta|rting,&m|
|00005930| 65 2c 26 6b 65 79 29 29 | 0a 58 20 20 20 20 7b 0a |e,&key))|.X {.|
|00005940| 58 09 73 74 61 72 74 69 | 6e 67 20 3d 20 46 41 4c |X.starti|ng = FAL|
|00005950| 53 45 3b 0a 58 09 69 66 | 28 2a 6d 65 2d 3e 6d 61 |SE;.X.if|(*me->ma|
|00005960| 69 6c 62 6f 78 29 0a 58 | 09 7b 0a 58 09 20 20 20 |ilbox).X|.{.X. |
|00005970| 20 69 66 28 6d 65 2d 3e | 67 65 63 6f 73 29 0a 58 | if(me->|gecos).X|
|00005980| 09 09 66 70 72 69 6e 74 | 66 28 66 69 6c 65 2c 22 |..fprint|f(file,"|
|00005990| 23 20 25 73 20 2b 2d 20 | 25 73 5c 6e 22 2c 6d 65 |# %s +- |%s\n",me|
|000059a0| 2d 3e 6e 61 6d 65 2c 6d | 65 2d 3e 67 65 63 6f 73 |->name,m|e->gecos|
|000059b0| 29 3b 0a 58 09 20 20 20 | 20 66 70 72 69 6e 74 66 |);.X. | fprintf|
|000059c0| 28 66 69 6c 65 2c 22 25 | 73 3a 20 25 73 5c 6e 22 |(file,"%|s: %s\n"|
|000059d0| 2c 6d 65 2d 3e 6e 61 6d | 65 2c 6d 65 2d 3e 6d 61 |,me->nam|e,me->ma|
|000059e0| 69 6c 62 6f 78 29 3b 0a | 58 09 7d 0a 58 20 20 20 |ilbox);.|X.}.X |
|000059f0| 20 7d 0a 58 7d 0a 58 0a | 58 50 72 69 6e 74 4d 61 | }.X}.X.|XPrintMa|
|00005a00| 69 6c 28 66 69 6c 65 29 | 0a 58 20 20 20 20 46 49 |il(file)|.X FI|
|00005a10| 4c 45 09 2a 66 69 6c 65 | 3b 0a 58 7b 0a 58 20 20 |LE.*file|;.X{.X |
|00005a20| 20 20 66 70 72 69 6e 74 | 66 28 66 69 6c 65 2c 22 | fprint|f(file,"|
|00005a30| 23 20 41 6c 69 61 73 65 | 73 20 63 72 65 61 74 65 |# Aliase|s create|
|00005a40| 64 20 66 72 6f 6d 20 5b | 25 73 5d 20 6e 61 6d 65 |d from [|%s] name|
|00005a50| 73 65 72 76 65 72 2e 5c | 6e 22 2c 0a 58 09 20 20 |server.\|n",.X. |
|00005a60| 20 20 28 64 65 66 61 75 | 6c 74 50 74 72 2d 3e 61 | (defau|ltPtr->a|
|00005a70| 64 64 72 4c 69 73 74 20 | 21 3d 20 4e 55 4c 4c 29 |ddrList |!= NULL)|
|00005a80| 20 3f 20 64 65 66 61 75 | 6c 74 50 74 72 2d 3e 6e | ? defau|ltPtr->n|
|00005a90| 61 6d 65 20 3a 0a 58 09 | 20 20 20 20 20 64 65 66 |ame :.X.| def|
|00005aa0| 61 75 6c 74 50 74 72 2d | 3e 73 65 72 76 65 72 73 |aultPtr-|>servers|
|00005ab0| 5b 30 5d 2d 3e 6e 61 6d | 65 29 3b 0a 58 20 20 20 |[0]->nam|e);.X |
|00005ac0| 20 50 72 69 6e 74 4d 61 | 69 6c 42 6f 78 65 73 28 | PrintMa|ilBoxes(|
|00005ad0| 66 69 6c 65 29 3b 0a 58 | 20 20 20 20 50 72 69 6e |file);.X| Prin|
|00005ae0| 74 4d 61 69 6c 4c 69 73 | 74 73 28 66 69 6c 65 29 |tMailLis|ts(file)|
|00005af0| 3b 0a 58 20 20 20 20 72 | 65 74 75 72 6e 20 30 3b |;.X r|eturn 0;|
|00005b00| 0a 58 7d 0a 58 0a 58 0a | 58 50 72 69 6e 74 45 6c |.X}.X.X.|XPrintEl|
|00005b10| 6d 4c 69 73 74 73 28 66 | 69 6c 65 29 0a 58 20 20 |mLists(f|ile).X |
|00005b20| 20 20 46 49 4c 45 09 2a | 66 69 6c 65 3b 0a 58 7b | FILE.*|file;.X{|
|00005b30| 0a 58 20 20 20 20 69 6e | 74 20 73 74 61 72 74 69 |.X in|t starti|
|00005b40| 6e 67 3d 20 54 52 55 45 | 3b 0a 58 20 20 20 20 69 |ng= TRUE|;.X i|
|00005b50| 6e 74 20 70 6f 73 2c 66 | 69 72 73 74 2c 6d 6c 65 |nt pos,f|irst,mle|
|00005b60| 6e 3b 0a 58 20 20 20 20 | 73 74 72 75 63 74 20 6d |n;.X |struct m|
|00005b70| 69 6e 66 6f 5f 65 6e 74 | 20 2a 6d 65 2c 2a 6b 65 |info_ent| *me,*ke|
|00005b80| 79 3b 0a 58 20 20 20 20 | 73 74 72 75 63 74 20 6d |y;.X |struct m|
|00005b90| 67 5f 65 6e 74 20 2a 6d | 67 3b 0a 58 0a 58 20 20 |g_ent *m|g;.X.X |
|00005ba0| 20 20 66 70 72 69 6e 74 | 66 28 66 69 6c 65 2c 22 | fprint|f(file,"|
|00005bb0| 23 5c 6e 23 20 4d 61 69 | 6c 6c 69 73 74 73 20 63 |#\n# Mai|llists c|
|00005bc0| 72 65 61 74 65 64 20 62 | 79 20 6e 73 32 74 61 62 |reated b|y ns2tab|
|00005bd0| 20 28 45 4c 4d 29 20 53 | 74 79 6c 65 5c 6e 23 5c | (ELM) S|tyle\n#\|
|00005be0| 6e 22 29 3b 0a 58 20 20 | 20 20 77 68 69 6c 65 28 |n");.X | while(|
|00005bf0| 68 74 61 62 5f 6c 69 73 | 74 28 6d 61 69 6c 74 61 |htab_lis|t(mailta|
|00005c00| 62 2c 73 74 61 72 74 69 | 6e 67 2c 26 6d 65 2c 26 |b,starti|ng,&me,&|
|00005c10| 6b 65 79 29 29 0a 58 20 | 20 20 20 7b 0a 58 09 69 |key)).X | {.X.i|
|00005c20| 6e 74 20 69 78 3d 30 3b | 0a 58 09 69 6e 74 20 6c |nt ix=0;|.X.int l|
|00005c30| 2c 64 6e 72 3b 0a 58 09 | 73 74 72 75 63 74 20 6d |,dnr;.X.|struct m|
|00005c40| 62 5f 65 6e 74 20 2a 6d | 62 3b 0a 58 0a 58 09 73 |b_ent *m|b;.X.X.s|
|00005c50| 74 61 72 74 69 6e 67 20 | 3d 20 46 41 4c 53 45 3b |tarting |= FALSE;|
|00005c60| 0a 58 09 69 66 28 56 54 | 61 62 6c 65 53 69 7a 65 |.X.if(VT|ableSize|
|00005c70| 28 26 6d 65 2d 3e 74 61 | 62 6c 65 29 20 3d 3d 20 |(&me->ta|ble) == |
|00005c80| 30 29 0a 58 09 20 20 20 | 20 63 6f 6e 74 69 6e 75 |0).X. | continu|
|00005c90| 65 3b 0a 58 09 66 70 72 | 69 6e 74 66 28 66 69 6c |e;.X.fpr|intf(fil|
|00005ca0| 65 2c 22 5c 6e 22 29 3b | 20 2f 2a 20 53 74 61 72 |e,"\n");| /* Star|
|00005cb0| 74 20 65 61 63 68 20 6c | 69 73 74 20 77 69 74 68 |t each l|ist with|
|00005cc0| 20 61 20 6e 65 77 6c 69 | 6e 65 20 2a 2f 0a 58 09 | a newli|ne */.X.|
|00005cd0| 6d 62 20 3d 20 68 74 61 | 62 5f 66 69 6e 64 28 6d |mb = hta|b_find(m|
|00005ce0| 62 5f 74 61 62 2c 6d 65 | 2d 3e 6e 61 6d 65 29 3b |b_tab,me|->name);|
|00005cf0| 20 2f 2a 20 47 65 74 20 | 43 6f 6d 6d 65 6e 74 20 | /* Get |Comment |
|00005d00| 2a 2f 0a 58 09 64 6e 72 | 20 3d 30 3b 0a 58 09 69 |*/.X.dnr| =0;.X.i|
|00005d10| 66 28 2a 6d 65 2d 3e 72 | 65 71 75 65 73 74 29 0a |f(*me->r|equest).|
|00005d20| 58 09 20 20 20 20 69 66 | 28 6c 65 6c 6d 73 74 79 |X. if|(lelmsty|
|00005d30| 6c 65 29 0a 58 09 09 66 | 70 72 69 6e 74 66 28 66 |le).X..f|printf(f|
|00005d40| 69 6c 65 2c 22 25 73 2d | 72 65 71 75 65 73 74 20 |ile,"%s-|request |
|00005d50| 3d 20 25 73 20 52 65 71 | 75 65 73 74 20 3d 20 25 |= %s Req|uest = %|
|00005d60| 73 2d 72 65 71 75 65 73 | 74 5c 6e 22 2c 0a 58 09 |s-reques|t\n",.X.|
|00005d70| 09 20 20 20 20 20 6d 65 | 2d 3e 6e 61 6d 65 2c 6d |. me|->name,m|
|00005d80| 65 2d 3e 6e 61 6d 65 2c | 6d 65 2d 3e 6e 61 6d 65 |e->name,|me->name|
|00005d90| 29 3b 0a 58 09 20 20 20 | 20 65 6c 73 65 0a 58 09 |);.X. | else.X.|
|00005da0| 09 66 70 72 69 6e 74 66 | 28 66 69 6c 65 2c 22 25 |.fprintf|(file,"%|
|00005db0| 73 2d 72 65 71 75 65 73 | 74 20 3d 20 25 73 20 52 |s-reques|t = %s R|
|00005dc0| 65 71 75 65 73 74 20 3d | 20 25 73 5c 6e 22 2c 0a |equest =| %s\n",.|
|00005dd0| 58 09 09 20 20 20 20 20 | 6d 65 2d 3e 6e 61 6d 65 |X.. |me->name|
|00005de0| 2c 6d 65 2d 3e 6e 61 6d | 65 2c 6d 65 2d 3e 72 65 |,me->nam|e,me->re|
|00005df0| 71 75 65 73 74 29 3b 0a | 58 09 69 66 28 2a 6d 65 |quest);.|X.if(*me|
|00005e00| 2d 3e 65 72 72 6f 72 73 | 29 0a 58 09 20 20 20 20 |->errors|).X. |
|00005e10| 69 66 28 6c 65 6c 6d 73 | 74 79 6c 65 29 0a 58 09 |if(lelms|tyle).X.|
|00005e20| 09 66 70 72 69 6e 74 66 | 28 66 69 6c 65 2c 22 6f |.fprintf|(file,"o|
|00005e30| 77 6e 65 72 2d 25 73 20 | 3d 20 25 73 20 45 72 72 |wner-%s |= %s Err|
|00005e40| 6f 72 73 20 3d 20 6f 77 | 6e 65 72 2d 25 73 5c 6e |ors = ow|ner-%s\n|
|00005e50| 22 2c 0a 58 09 09 20 20 | 20 20 20 6d 65 2d 3e 6e |",.X.. | me->n|
|00005e60| 61 6d 65 2c 6d 65 2d 3e | 6e 61 6d 65 2c 6d 65 2d |ame,me->|name,me-|
|00005e70| 3e 6e 61 6d 65 29 3b 0a | 58 09 20 20 20 20 65 6c |>name);.|X. el|
|00005e80| 73 65 0a 58 09 09 66 70 | 72 69 6e 74 66 28 66 69 |se.X..fp|rintf(fi|
|00005e90| 6c 65 2c 22 6f 77 6e 65 | 72 2d 25 73 20 3d 20 25 |le,"owne|r-%s = %|
|00005ea0| 73 20 45 72 72 6f 72 73 | 20 3d 20 25 73 5c 6e 22 |s Errors| = %s\n"|
|00005eb0| 2c 0a 58 09 09 20 20 20 | 20 20 6d 65 2d 3e 6e 61 |,.X.. | me->na|
|00005ec0| 6d 65 2c 6d 65 2d 3e 6e | 61 6d 65 2c 6d 65 2d 3e |me,me->n|ame,me->|
|00005ed0| 65 72 72 6f 72 73 29 3b | 0a 58 09 69 66 28 6d 62 |errors);|.X.if(mb|
|00005ee0| 20 26 26 20 6d 62 2d 3e | 67 65 63 6f 73 29 0a 58 | && mb->|gecos).X|
|00005ef0| 09 20 20 20 20 66 70 72 | 69 6e 74 66 28 66 69 6c |. fpr|intf(fil|
|00005f00| 65 2c 22 25 73 20 3d 20 | 25 73 20 3d 20 22 2c 6d |e,"%s = |%s = ",m|
|00005f10| 65 2d 3e 6e 61 6d 65 2c | 6d 62 2d 3e 67 65 63 6f |e->name,|mb->geco|
|00005f20| 73 29 3b 0a 58 09 65 6c | 73 65 0a 58 09 20 20 20 |s);.X.el|se.X. |
|00005f30| 20 66 70 72 69 6e 74 66 | 28 66 69 6c 65 2c 22 25 | fprintf|(file,"%|
|00005f40| 73 20 3d 20 3d 20 22 2c | 6d 65 2d 3e 6e 61 6d 65 |s = = ",|me->name|
|00005f50| 29 3b 0a 58 2f 2a 0a 58 | 20 2a 20 4c 6f 63 61 6c |);.X/*.X| * Local|
|00005f60| 20 65 6c 6d 20 64 6f 65 | 73 6e 27 74 20 64 65 66 | elm doe|sn't def|
|00005f70| 69 6e 65 20 74 68 65 20 | 6d 65 6d 62 65 72 73 20 |ine the |members |
|00005f80| 69 6e 20 61 20 6d 61 69 | 6c 6c 69 73 74 2c 20 62 |in a mai|llist, b|
|00005f90| 75 74 20 6c 65 74 73 0a | 58 20 2a 20 2f 75 73 72 |ut lets.|X * /usr|
|00005fa0| 2f 6c 69 62 2f 61 6c 69 | 61 73 65 73 20 68 61 6e |/lib/ali|ases han|
|00005fb0| 64 6c 65 20 74 68 61 74 | 20 70 61 72 74 2e 0a 58 |dle that| part..X|
|00005fc0| 20 2a 2f 0a 58 09 69 66 | 28 6c 65 6c 6d 73 74 79 | */.X.if|(lelmsty|
|00005fd0| 6c 65 29 0a 58 09 7b 0a | 58 09 20 20 20 20 66 70 |le).X.{.|X. fp|
|00005fe0| 72 69 6e 74 66 28 66 69 | 6c 65 2c 22 25 73 5c 6e |rintf(fi|le,"%s\n|
|00005ff0| 22 2c 6d 65 2d 3e 6e 61 | 6d 65 29 3b 0a 58 09 20 |",me->na|me);.X. |
|00006000| 20 20 20 63 6f 6e 74 69 | 6e 75 65 3b 0a 58 09 7d | conti|nue;.X.}|
|00006010| 0a 58 09 70 6f 73 20 3d | 20 73 74 72 6c 65 6e 28 |.X.pos =| strlen(|
|00006020| 6d 65 2d 3e 6e 61 6d 65 | 29 20 2b 31 3b 0a 58 09 |me->name|) +1;.X.|
|00006030| 6d 6c 65 6e 20 3d 20 70 | 6f 73 3b 0a 58 09 66 69 |mlen = p|os;.X.fi|
|00006040| 72 73 74 20 3d 20 54 52 | 55 45 3b 0a 58 20 20 20 |rst = TR|UE;.X |
|00006050| 20 20 20 20 20 77 68 69 | 6c 65 28 6d 67 20 3d 20 | whi|le(mg = |
|00006060| 28 73 74 72 75 63 74 20 | 6d 67 5f 65 6e 74 2a 29 |(struct |mg_ent*)|
|00006070| 56 54 61 62 6c 65 4e 65 | 78 74 28 26 6d 65 2d 3e |VTableNe|xt(&me->|
|00006080| 74 61 62 6c 65 2c 26 69 | 78 2c 31 29 29 0a 58 09 |table,&i|x,1)).X.|
|00006090| 7b 0a 58 2f 2a 0a 58 20 | 2a 20 44 6f 20 6e 6f 74 |{.X/*.X |* Do not|
|000060a0| 20 69 6e 63 6c 75 64 65 | 20 61 20 6c 69 73 74 6d | include| a listm|
|000060b0| 65 6d 62 65 72 20 77 69 | 74 68 20 74 68 65 20 73 |ember wi|th the s|
|000060c0| 61 6d 65 20 6e 61 6d 65 | 20 61 73 20 74 68 65 20 |ame name| as the |
|000060d0| 6c 69 73 74 20 69 74 73 | 65 6c 66 0a 58 20 2a 2f |list its|elf.X */|
|000060e0| 0a 58 09 20 20 20 20 69 | 66 28 21 73 74 72 63 6d |.X. i|f(!strcm|
|000060f0| 70 28 6d 65 2d 3e 6e 61 | 6d 65 2c 6d 67 2d 3e 6d |p(me->na|me,mg->m|
|00006100| 65 6d 62 65 72 29 29 20 | 63 6f 6e 74 69 6e 75 65 |ember)) |continue|
|00006110| 3b 0a 58 0a 58 09 20 20 | 20 20 6c 20 3d 20 73 74 |;.X.X. | l = st|
|00006120| 72 6c 65 6e 28 6d 67 2d | 3e 6d 65 6d 62 65 72 29 |rlen(mg-|>member)|
|00006130| 20 2b 20 32 3b 0a 58 23 | 69 66 20 30 0a 58 2f 2a | + 2;.X#|if 0.X/*|
|00006140| 20 49 20 61 6d 20 74 6f | 6c 64 20 74 68 61 74 20 | I am to|ld that |
|00006150| 62 65 63 61 75 73 65 20 | 6f 66 20 72 65 73 74 72 |because |of restr|
|00006160| 69 63 74 69 6f 6e 73 20 | 69 6e 20 64 62 6d 20 61 |ictions |in dbm a|
|00006170| 6e 20 61 6c 69 61 73 20 | 63 61 6e 6e 6f 74 20 63 |n alias |cannot c|
|00006180| 6f 6e 74 61 69 6e 0a 58 | 20 20 20 6d 6f 72 65 20 |ontain.X| more |
|00006190| 74 68 61 6e 20 61 70 70 | 72 6f 78 69 6d 61 74 65 |than app|roximate|
|000061a0| 6c 79 20 31 30 30 30 20 | 62 79 74 65 73 20 6f 66 |ly 1000 |bytes of|
|000061b0| 20 69 6e 66 6f 72 6d 61 | 74 69 6f 6e 2e 20 53 6f | informa|tion. So|
|000061c0| 20 49 20 63 72 65 61 74 | 65 0a 58 20 20 20 64 75 | I creat|e.X du|
|000061d0| 6d 6d 79 20 61 6c 69 61 | 73 65 73 2e 0a 58 2a 2f |mmy alia|ses..X*/|
|000061e0| 0a 58 09 20 20 20 20 6d | 6c 65 6e 20 2b 3d 20 6c |.X. m|len += l|
|000061f0| 3b 0a 58 09 20 20 20 20 | 69 66 28 6d 6c 65 6e 20 |;.X. |if(mlen |
|00006200| 3e 20 39 37 30 29 0a 58 | 09 20 20 20 20 7b 0a 58 |> 970).X|. {.X|
|00006210| 09 09 69 66 28 21 66 69 | 72 73 74 29 20 70 75 74 |..if(!fi|rst) put|
|00006220| 63 28 27 2c 27 2c 66 69 | 6c 65 29 3b 0a 58 09 09 |c(',',fi|le);.X..|
|00006230| 64 6e 72 2b 2b 3b 0a 58 | 09 09 66 70 72 69 6e 74 |dnr++;.X|..fprint|
|00006240| 66 28 66 69 6c 65 2c 22 | 25 73 5f 25 64 5c 6e 22 |f(file,"|%s_%d\n"|
|00006250| 2c 6d 65 2d 3e 6e 61 6d | 65 2c 64 6e 72 29 3b 0a |,me->nam|e,dnr);.|
|00006260| 58 09 09 66 70 72 69 6e | 74 66 28 66 69 6c 65 2c |X..fprin|tf(file,|
|00006270| 0a 58 09 22 23 20 44 75 | 6d 6d 79 20 61 6c 69 61 |.X."# Du|mmy alia|
|00006280| 73 20 6e 65 63 65 73 61 | 72 79 20 62 65 63 61 75 |s necesa|ry becau|
|00006290| 73 65 20 6f 66 20 72 65 | 73 74 72 69 63 74 69 6f |se of re|strictio|
|000062a0| 6e 73 20 69 6e 20 64 62 | 6d 28 33 78 29 2e 5c 6e |ns in db|m(3x).\n|
|000062b0| 22 29 3b 0a 58 09 09 66 | 70 72 69 6e 74 66 28 66 |");.X..f|printf(f|
|000062c0| 69 6c 65 2c 22 25 73 5f | 25 64 20 3d 20 3d 20 25 |ile,"%s_|%d = = %|
|000062d0| 73 22 2c 6d 65 2d 3e 6e | 61 6d 65 2c 64 6e 72 2c |s",me->n|ame,dnr,|
|000062e0| 6d 67 2d 3e 6d 65 6d 62 | 65 72 29 3b 0a 58 09 09 |mg->memb|er);.X..|
|000062f0| 70 6f 73 20 3d 20 73 74 | 72 6c 65 6e 28 6d 65 2d |pos = st|rlen(me-|
|00006300| 3e 6e 61 6d 65 29 20 2b | 20 34 3b 0a 58 09 09 6d |>name) +| 4;.X..m|
|00006310| 6c 65 6e 20 3d 20 70 6f | 73 20 2b 20 6c 3b 0a 58 |len = po|s + l;.X|
|00006320| 09 09 66 69 72 73 74 20 | 3d 20 46 41 4c 53 45 3b |..first |= FALSE;|
|00006330| 0a 58 09 20 20 20 20 7d | 0a 58 23 65 6e 64 69 66 |.X. }|.X#endif|
|00006340| 0a 58 09 20 20 20 20 69 | 66 28 28 70 6f 73 20 2b |.X. i|f((pos +|
|00006350| 20 6c 29 20 3e 20 37 36 | 29 0a 58 09 20 20 20 20 | l) > 76|).X. |
|00006360| 7b 0a 58 09 09 70 6f 73 | 20 3d 20 6c 3b 0a 58 09 |{.X..pos| = l;.X.|
|00006370| 09 66 70 72 69 6e 74 66 | 28 66 69 6c 65 2c 22 2c |.fprintf|(file,",|
|00006380| 5c 6e 20 20 20 25 73 22 | 2c 6d 67 2d 3e 6d 65 6d |\n %s"|,mg->mem|
|00006390| 62 65 72 29 3b 0a 58 09 | 20 20 20 20 7d 0a 58 09 |ber);.X.| }.X.|
|000063a0| 20 20 20 20 65 6c 73 65 | 0a 58 09 20 20 20 20 7b | else|.X. {|
|000063b0| 0a 58 09 09 70 6f 73 20 | 2b 3d 20 6c 3b 0a 58 09 |.X..pos |+= l;.X.|
|000063c0| 09 69 66 28 21 66 69 72 | 73 74 29 20 66 70 72 69 |.if(!fir|st) fpri|
|000063d0| 6e 74 66 28 66 69 6c 65 | 2c 22 2c 20 22 29 3b 0a |ntf(file|,", ");.|
|000063e0| 58 09 09 66 69 72 73 74 | 20 3d 20 46 41 4c 53 45 |X..first| = FALSE|
|000063f0| 3b 0a 58 09 09 66 70 72 | 69 6e 74 66 28 66 69 6c |;.X..fpr|intf(fil|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.