pNet-DNS 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +0 -20
- data/doc/classes/ConfigTable.html +500 -0
- data/doc/classes/ConfigTable.src/M000013.html +25 -0
- data/doc/classes/ConfigTable.src/M000014.html +18 -0
- data/doc/classes/ConfigTable.src/M000015.html +18 -0
- data/doc/classes/ConfigTable.src/M000016.html +18 -0
- data/doc/classes/ConfigTable.src/M000017.html +18 -0
- data/doc/classes/ConfigTable.src/M000018.html +18 -0
- data/doc/classes/ConfigTable.src/M000019.html +18 -0
- data/doc/classes/ConfigTable.src/M000020.html +18 -0
- data/doc/classes/ConfigTable.src/M000021.html +18 -0
- data/doc/classes/ConfigTable.src/M000022.html +19 -0
- data/doc/classes/ConfigTable.src/M000023.html +21 -0
- data/doc/classes/ConfigTable.src/M000024.html +20 -0
- data/doc/classes/ConfigTable.src/M000025.html +18 -0
- data/doc/classes/ConfigTable.src/M000026.html +25 -0
- data/doc/classes/ConfigTable.src/M000027.html +23 -0
- data/doc/classes/ConfigTable.src/M000028.html +20 -0
- data/doc/classes/ConfigTable.src/M000029.html +20 -0
- data/doc/classes/ConfigTable.src/M000030.html +23 -0
- data/doc/classes/ConfigTable.src/M000031.html +19 -0
- data/doc/classes/ConfigTable.src/M000032.html +18 -0
- data/doc/classes/ConfigTable.src/M000033.html +18 -0
- data/doc/classes/ConfigTable/BoolItem.html +154 -0
- data/doc/classes/ConfigTable/BoolItem.src/M000034.html +18 -0
- data/doc/classes/ConfigTable/BoolItem.src/M000035.html +18 -0
- data/doc/classes/ConfigTable/ExecItem.html +201 -0
- data/doc/classes/ConfigTable/ExecItem.src/M000053.html +20 -0
- data/doc/classes/ConfigTable/ExecItem.src/M000054.html +18 -0
- data/doc/classes/ConfigTable/ExecItem.src/M000055.html +18 -0
- data/doc/classes/ConfigTable/ExecItem.src/M000056.html +18 -0
- data/doc/classes/ConfigTable/ExecItem.src/M000057.html +22 -0
- data/doc/classes/ConfigTable/Item.html +250 -0
- data/doc/classes/ConfigTable/Item.src/M000060.html +22 -0
- data/doc/classes/ConfigTable/Item.src/M000061.html +18 -0
- data/doc/classes/ConfigTable/Item.src/M000062.html +18 -0
- data/doc/classes/ConfigTable/Item.src/M000063.html +18 -0
- data/doc/classes/ConfigTable/Item.src/M000064.html +18 -0
- data/doc/classes/ConfigTable/Item.src/M000065.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.html +325 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000040.html +19 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000041.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000042.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000043.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000044.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000045.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000046.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000047.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000048.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000049.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000050.html +18 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000051.html +19 -0
- data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000052.html +19 -0
- data/doc/classes/ConfigTable/PackageSelectionItem.html +169 -0
- data/doc/classes/ConfigTable/PackageSelectionItem.src/M000038.html +19 -0
- data/doc/classes/ConfigTable/PackageSelectionItem.src/M000039.html +18 -0
- data/doc/classes/ConfigTable/PathItem.html +139 -0
- data/doc/classes/ConfigTable/PathItem.src/M000037.html +18 -0
- data/doc/classes/ConfigTable/ProgramItem.html +139 -0
- data/doc/classes/ConfigTable/ProgramItem.src/M000036.html +18 -0
- data/doc/classes/ConfigTable/SelectItem.html +156 -0
- data/doc/classes/ConfigTable/SelectItem.src/M000058.html +19 -0
- data/doc/classes/ConfigTable/SelectItem.src/M000059.html +18 -0
- data/doc/classes/Enumerable.html +118 -0
- data/doc/classes/Errno.html +111 -0
- data/doc/classes/Errno/ENOTEMPTY.html +111 -0
- data/doc/classes/File.html +166 -0
- data/doc/classes/File.src/M000223.html +20 -0
- data/doc/classes/File.src/M000224.html +20 -0
- data/doc/classes/File.src/M000225.html +18 -0
- data/doc/classes/FileOperations.html +375 -0
- data/doc/classes/FileOperations.src/M000560.html +31 -0
- data/doc/classes/FileOperations.src/M000561.html +20 -0
- data/doc/classes/FileOperations.src/M000562.html +20 -0
- data/doc/classes/FileOperations.src/M000563.html +24 -0
- data/doc/classes/FileOperations.src/M000564.html +34 -0
- data/doc/classes/FileOperations.src/M000565.html +27 -0
- data/doc/classes/FileOperations.src/M000566.html +21 -0
- data/doc/classes/FileOperations.src/M000567.html +19 -0
- data/doc/classes/FileOperations.src/M000568.html +40 -0
- data/doc/classes/FileOperations.src/M000569.html +19 -0
- data/doc/classes/FileOperations.src/M000570.html +20 -0
- data/doc/classes/FileOperations.src/M000571.html +18 -0
- data/doc/classes/FileOperations.src/M000572.html +18 -0
- data/doc/classes/FileOperations.src/M000573.html +18 -0
- data/doc/classes/FileOperations.src/M000574.html +20 -0
- data/doc/classes/FileOperations.src/M000575.html +20 -0
- data/doc/classes/HookScriptAPI.html +308 -0
- data/doc/classes/HookScriptAPI.src/M000226.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000228.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000229.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000230.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000231.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000232.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000233.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000234.html +18 -0
- data/doc/classes/HookScriptAPI.src/M000235.html +20 -0
- data/doc/classes/HookScriptAPI.src/M000236.html +20 -0
- data/doc/classes/HookScriptAPI.src/M000237.html +20 -0
- data/doc/classes/Installer.html +1148 -0
- data/doc/classes/Installer.src/M000140.html +21 -0
- data/doc/classes/Installer.src/M000141.html +18 -0
- data/doc/classes/Installer.src/M000142.html +17 -0
- data/doc/classes/Installer.src/M000143.html +18 -0
- data/doc/classes/Installer.src/M000144.html +18 -0
- data/doc/classes/Installer.src/M000145.html +18 -0
- data/doc/classes/Installer.src/M000146.html +18 -0
- data/doc/classes/Installer.src/M000147.html +18 -0
- data/doc/classes/Installer.src/M000148.html +23 -0
- data/doc/classes/Installer.src/M000149.html +18 -0
- data/doc/classes/Installer.src/M000152.html +18 -0
- data/doc/classes/Installer.src/M000156.html +18 -0
- data/doc/classes/Installer.src/M000157.html +18 -0
- data/doc/classes/Installer.src/M000158.html +20 -0
- data/doc/classes/Installer.src/M000160.html +18 -0
- data/doc/classes/Installer.src/M000164.html +36 -0
- data/doc/classes/Installer.src/M000165.html +25 -0
- data/doc/classes/Installer.src/M000166.html +24 -0
- data/doc/classes/Installer.src/M000167.html +19 -0
- data/doc/classes/Installer.src/M000168.html +18 -0
- data/doc/classes/Installer.src/M000169.html +18 -0
- data/doc/classes/Installer.src/M000170.html +21 -0
- data/doc/classes/Installer.src/M000171.html +18 -0
- data/doc/classes/Installer.src/M000172.html +20 -0
- data/doc/classes/Installer.src/M000173.html +18 -0
- data/doc/classes/Installer.src/M000174.html +21 -0
- data/doc/classes/Installer.src/M000175.html +18 -0
- data/doc/classes/Installer.src/M000176.html +22 -0
- data/doc/classes/Installer.src/M000177.html +18 -0
- data/doc/classes/Installer.src/M000178.html +23 -0
- data/doc/classes/Installer.src/M000179.html +18 -0
- data/doc/classes/Installer.src/M000180.html +20 -0
- data/doc/classes/Installer.src/M000181.html +19 -0
- data/doc/classes/Installer.src/M000182.html +19 -0
- data/doc/classes/Installer.src/M000183.html +20 -0
- data/doc/classes/Installer.src/M000184.html +30 -0
- data/doc/classes/Installer.src/M000185.html +20 -0
- data/doc/classes/Installer.src/M000191.html +19 -0
- data/doc/classes/Installer.src/M000192.html +20 -0
- data/doc/classes/Installer.src/M000195.html +19 -0
- data/doc/classes/Installer.src/M000199.html +26 -0
- data/doc/classes/Installer.src/M000200.html +25 -0
- data/doc/classes/Installer.src/M000201.html +29 -0
- data/doc/classes/Installer.src/M000202.html +26 -0
- data/doc/classes/Installer/Shebang.html +202 -0
- data/doc/classes/Installer/Shebang.src/M000203.html +23 -0
- data/doc/classes/Installer/Shebang.src/M000204.html +19 -0
- data/doc/classes/Installer/Shebang.src/M000205.html +19 -0
- data/doc/classes/Installer/Shebang.src/M000206.html +18 -0
- data/doc/classes/Net.html +295 -0
- data/doc/classes/Net/DNS.html +1139 -0
- data/doc/classes/Net/DNS.src/M000238.html +34 -0
- data/doc/classes/Net/DNS.src/M000239.html +40 -0
- data/doc/classes/Net/DNS.src/M000240.html +32 -0
- data/doc/classes/Net/DNS.src/M000241.html +30 -0
- data/doc/classes/Net/DNS.src/M000242.html +39 -0
- data/doc/classes/Net/DNS.src/M000243.html +18 -0
- data/doc/classes/Net/DNS.src/M000244.html +18 -0
- data/doc/classes/Net/DNS.src/M000245.html +18 -0
- data/doc/classes/Net/DNS.src/M000246.html +18 -0
- data/doc/classes/Net/DNS.src/M000247.html +18 -0
- data/doc/classes/Net/DNS.src/M000248.html +18 -0
- data/doc/classes/Net/DNS.src/M000249.html +25 -0
- data/doc/classes/Net/DNS.src/M000250.html +52 -0
- data/doc/classes/Net/DNS.src/M000251.html +71 -0
- data/doc/classes/Net/DNS.src/M000252.html +50 -0
- data/doc/classes/Net/DNS/Header.html +510 -0
- data/doc/classes/Net/DNS/Header.src/M000511.html +22 -0
- data/doc/classes/Net/DNS/Header.src/M000512.html +72 -0
- data/doc/classes/Net/DNS/Header.src/M000513.html +47 -0
- data/doc/classes/Net/DNS/Header.src/M000514.html +25 -0
- data/doc/classes/Net/DNS/Header.src/M000515.html +37 -0
- data/doc/classes/Net/DNS/Nameserver.html +285 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000516.html +100 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000517.html +86 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000518.html +32 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000519.html +80 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000520.html +33 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000521.html +18 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000522.html +88 -0
- data/doc/classes/Net/DNS/Nameserver.src/M000523.html +23 -0
- data/doc/classes/Net/DNS/Packet.html +774 -0
- data/doc/classes/Net/DNS/Packet.src/M000485.html +27 -0
- data/doc/classes/Net/DNS/Packet.src/M000486.html +158 -0
- data/doc/classes/Net/DNS/Packet.src/M000487.html +21 -0
- data/doc/classes/Net/DNS/Packet.src/M000488.html +85 -0
- data/doc/classes/Net/DNS/Packet.src/M000489.html +54 -0
- data/doc/classes/Net/DNS/Packet.src/M000490.html +58 -0
- data/doc/classes/Net/DNS/Packet.src/M000491.html +26 -0
- data/doc/classes/Net/DNS/Packet.src/M000492.html +53 -0
- data/doc/classes/Net/DNS/Packet.src/M000493.html +51 -0
- data/doc/classes/Net/DNS/Packet.src/M000494.html +24 -0
- data/doc/classes/Net/DNS/Packet.src/M000495.html +56 -0
- data/doc/classes/Net/DNS/Packet.src/M000496.html +30 -0
- data/doc/classes/Net/DNS/Packet.src/M000497.html +40 -0
- data/doc/classes/Net/DNS/Packet.src/M000498.html +31 -0
- data/doc/classes/Net/DNS/Packet.src/M000499.html +47 -0
- data/doc/classes/Net/DNS/Packet.src/M000500.html +21 -0
- data/doc/classes/Net/DNS/Packet.src/M000501.html +21 -0
- data/doc/classes/Net/DNS/Packet.src/M000502.html +21 -0
- data/doc/classes/Net/DNS/Packet.src/M000503.html +21 -0
- data/doc/classes/Net/DNS/Packet.src/M000504.html +21 -0
- data/doc/classes/Net/DNS/Question.html +302 -0
- data/doc/classes/Net/DNS/Question.src/M000505.html +42 -0
- data/doc/classes/Net/DNS/Question.src/M000506.html +18 -0
- data/doc/classes/Net/DNS/Question.src/M000507.html +23 -0
- data/doc/classes/Net/DNS/Question.src/M000508.html +18 -0
- data/doc/classes/Net/DNS/Question.src/M000509.html +18 -0
- data/doc/classes/Net/DNS/Question.src/M000510.html +18 -0
- data/doc/classes/Net/DNS/RR.html +830 -0
- data/doc/classes/Net/DNS/RR.src/M000253.html +32 -0
- data/doc/classes/Net/DNS/RR.src/M000254.html +29 -0
- data/doc/classes/Net/DNS/RR.src/M000255.html +24 -0
- data/doc/classes/Net/DNS/RR.src/M000256.html +32 -0
- data/doc/classes/Net/DNS/RR.src/M000257.html +39 -0
- data/doc/classes/Net/DNS/RR.src/M000258.html +135 -0
- data/doc/classes/Net/DNS/RR.src/M000259.html +18 -0
- data/doc/classes/Net/DNS/RR.src/M000260.html +19 -0
- data/doc/classes/Net/DNS/RR.src/M000261.html +26 -0
- data/doc/classes/Net/DNS/RR.src/M000262.html +18 -0
- data/doc/classes/Net/DNS/RR.src/M000263.html +59 -0
- data/doc/classes/Net/DNS/RR.src/M000264.html +36 -0
- data/doc/classes/Net/DNS/RR.src/M000265.html +20 -0
- data/doc/classes/Net/DNS/RR.src/M000266.html +18 -0
- data/doc/classes/Net/DNS/RR.src/M000267.html +27 -0
- data/doc/classes/Net/DNS/RR.src/M000268.html +31 -0
- data/doc/classes/Net/DNS/RR.src/M000269.html +19 -0
- data/doc/classes/Net/DNS/RR.src/M000270.html +18 -0
- data/doc/classes/Net/DNS/RR.src/M000271.html +18 -0
- data/doc/classes/Net/DNS/RR.src/M000272.html +35 -0
- data/doc/classes/Net/DNS/RR/A.html +311 -0
- data/doc/classes/Net/DNS/RR/A.src/M000314.html +18 -0
- data/doc/classes/Net/DNS/RR/A.src/M000315.html +19 -0
- data/doc/classes/Net/DNS/RR/A.src/M000316.html +18 -0
- data/doc/classes/Net/DNS/RR/A.src/M000317.html +19 -0
- data/doc/classes/Net/DNS/RR/A.src/M000318.html +29 -0
- data/doc/classes/Net/DNS/RR/A.src/M000319.html +22 -0
- data/doc/classes/Net/DNS/RR/A.src/M000320.html +20 -0
- data/doc/classes/Net/DNS/RR/A.src/M000321.html +18 -0
- data/doc/classes/Net/DNS/RR/A.src/M000322.html +22 -0
- data/doc/classes/Net/DNS/RR/AAAA.html +291 -0
- data/doc/classes/Net/DNS/RR/AAAA.src/M000366.html +24 -0
- data/doc/classes/Net/DNS/RR/AAAA.src/M000367.html +54 -0
- data/doc/classes/Net/DNS/RR/AAAA.src/M000368.html +20 -0
- data/doc/classes/Net/DNS/RR/AAAA.src/M000369.html +18 -0
- data/doc/classes/Net/DNS/RR/AAAA.src/M000370.html +24 -0
- data/doc/classes/Net/DNS/RR/AAAA.src/M000371.html +24 -0
- data/doc/classes/Net/DNS/RR/AAAA.src/M000372.html +23 -0
- data/doc/classes/Net/DNS/RR/AFSDB.html +278 -0
- data/doc/classes/Net/DNS/RR/AFSDB.src/M000308.html +24 -0
- data/doc/classes/Net/DNS/RR/AFSDB.src/M000309.html +22 -0
- data/doc/classes/Net/DNS/RR/AFSDB.src/M000310.html +23 -0
- data/doc/classes/Net/DNS/RR/AFSDB.src/M000311.html +22 -0
- data/doc/classes/Net/DNS/RR/AFSDB.src/M000312.html +25 -0
- data/doc/classes/Net/DNS/RR/AFSDB.src/M000313.html +24 -0
- data/doc/classes/Net/DNS/RR/CERT.html +313 -0
- data/doc/classes/Net/DNS/RR/CERT.src/M000361.html +30 -0
- data/doc/classes/Net/DNS/RR/CERT.src/M000362.html +29 -0
- data/doc/classes/Net/DNS/RR/CERT.src/M000363.html +48 -0
- data/doc/classes/Net/DNS/RR/CERT.src/M000364.html +39 -0
- data/doc/classes/Net/DNS/RR/CERT.src/M000365.html +26 -0
- data/doc/classes/Net/DNS/RR/CNAME.html +271 -0
- data/doc/classes/Net/DNS/RR/CNAME.src/M000339.html +20 -0
- data/doc/classes/Net/DNS/RR/CNAME.src/M000340.html +21 -0
- data/doc/classes/Net/DNS/RR/CNAME.src/M000341.html +20 -0
- data/doc/classes/Net/DNS/RR/CNAME.src/M000342.html +18 -0
- data/doc/classes/Net/DNS/RR/CNAME.src/M000343.html +24 -0
- data/doc/classes/Net/DNS/RR/CNAME.src/M000344.html +18 -0
- data/doc/classes/Net/DNS/RR/DNAME.html +253 -0
- data/doc/classes/Net/DNS/RR/DNAME.src/M000356.html +20 -0
- data/doc/classes/Net/DNS/RR/DNAME.src/M000357.html +20 -0
- data/doc/classes/Net/DNS/RR/DNAME.src/M000358.html +21 -0
- data/doc/classes/Net/DNS/RR/DNAME.src/M000359.html +18 -0
- data/doc/classes/Net/DNS/RR/DNAME.src/M000360.html +24 -0
- data/doc/classes/Net/DNS/RR/EID.html +218 -0
- data/doc/classes/Net/DNS/RR/EID.src/M000298.html +17 -0
- data/doc/classes/Net/DNS/RR/EID.src/M000299.html +17 -0
- data/doc/classes/Net/DNS/RR/EID.src/M000300.html +17 -0
- data/doc/classes/Net/DNS/RR/HINFO.html +264 -0
- data/doc/classes/Net/DNS/RR/HINFO.src/M000351.html +31 -0
- data/doc/classes/Net/DNS/RR/HINFO.src/M000352.html +21 -0
- data/doc/classes/Net/DNS/RR/HINFO.src/M000353.html +23 -0
- data/doc/classes/Net/DNS/RR/HINFO.src/M000354.html +18 -0
- data/doc/classes/Net/DNS/RR/HINFO.src/M000355.html +28 -0
- data/doc/classes/Net/DNS/RR/ISDN.html +263 -0
- data/doc/classes/Net/DNS/RR/ISDN.src/M000471.html +34 -0
- data/doc/classes/Net/DNS/RR/ISDN.src/M000472.html +27 -0
- data/doc/classes/Net/DNS/RR/ISDN.src/M000473.html +23 -0
- data/doc/classes/Net/DNS/RR/ISDN.src/M000474.html +18 -0
- data/doc/classes/Net/DNS/RR/ISDN.src/M000475.html +30 -0
- data/doc/classes/Net/DNS/RR/LOC.html +516 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000287.html +48 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000288.html +46 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000289.html +59 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000290.html +47 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000291.html +30 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000292.html +20 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000293.html +23 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000294.html +32 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000295.html +23 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000296.html +25 -0
- data/doc/classes/Net/DNS/RR/LOC.src/M000297.html +21 -0
- data/doc/classes/Net/DNS/RR/MB.html +267 -0
- data/doc/classes/Net/DNS/RR/MB.src/M000479.html +20 -0
- data/doc/classes/Net/DNS/RR/MB.src/M000480.html +21 -0
- data/doc/classes/Net/DNS/RR/MB.src/M000481.html +20 -0
- data/doc/classes/Net/DNS/RR/MB.src/M000482.html +18 -0
- data/doc/classes/Net/DNS/RR/MB.src/M000483.html +24 -0
- data/doc/classes/Net/DNS/RR/MB.src/M000484.html +22 -0
- data/doc/classes/Net/DNS/RR/MG.html +267 -0
- data/doc/classes/Net/DNS/RR/MG.src/M000345.html +20 -0
- data/doc/classes/Net/DNS/RR/MG.src/M000346.html +21 -0
- data/doc/classes/Net/DNS/RR/MG.src/M000347.html +20 -0
- data/doc/classes/Net/DNS/RR/MG.src/M000348.html +22 -0
- data/doc/classes/Net/DNS/RR/MG.src/M000349.html +24 -0
- data/doc/classes/Net/DNS/RR/MG.src/M000350.html +22 -0
- data/doc/classes/Net/DNS/RR/MINFO.html +280 -0
- data/doc/classes/Net/DNS/RR/MINFO.src/M000465.html +21 -0
- data/doc/classes/Net/DNS/RR/MINFO.src/M000466.html +23 -0
- data/doc/classes/Net/DNS/RR/MINFO.src/M000467.html +23 -0
- data/doc/classes/Net/DNS/RR/MINFO.src/M000468.html +18 -0
- data/doc/classes/Net/DNS/RR/MINFO.src/M000469.html +26 -0
- data/doc/classes/Net/DNS/RR/MINFO.src/M000470.html +25 -0
- data/doc/classes/Net/DNS/RR/MR.html +267 -0
- data/doc/classes/Net/DNS/RR/MR.src/M000400.html +20 -0
- data/doc/classes/Net/DNS/RR/MR.src/M000401.html +21 -0
- data/doc/classes/Net/DNS/RR/MR.src/M000402.html +20 -0
- data/doc/classes/Net/DNS/RR/MR.src/M000403.html +18 -0
- data/doc/classes/Net/DNS/RR/MR.src/M000404.html +24 -0
- data/doc/classes/Net/DNS/RR/MR.src/M000405.html +22 -0
- data/doc/classes/Net/DNS/RR/MX.html +296 -0
- data/doc/classes/Net/DNS/RR/MX.src/M000280.html +21 -0
- data/doc/classes/Net/DNS/RR/MX.src/M000281.html +23 -0
- data/doc/classes/Net/DNS/RR/MX.src/M000282.html +23 -0
- data/doc/classes/Net/DNS/RR/MX.src/M000283.html +23 -0
- data/doc/classes/Net/DNS/RR/MX.src/M000284.html +22 -0
- data/doc/classes/Net/DNS/RR/MX.src/M000285.html +25 -0
- data/doc/classes/Net/DNS/RR/MX.src/M000286.html +25 -0
- data/doc/classes/Net/DNS/RR/NAPTR.html +330 -0
- data/doc/classes/Net/DNS/RR/NAPTR.src/M000459.html +20 -0
- data/doc/classes/Net/DNS/RR/NAPTR.src/M000460.html +42 -0
- data/doc/classes/Net/DNS/RR/NAPTR.src/M000461.html +27 -0
- data/doc/classes/Net/DNS/RR/NAPTR.src/M000462.html +35 -0
- data/doc/classes/Net/DNS/RR/NAPTR.src/M000463.html +26 -0
- data/doc/classes/Net/DNS/RR/NAPTR.src/M000464.html +36 -0
- data/doc/classes/Net/DNS/RR/NIMLOC.html +219 -0
- data/doc/classes/Net/DNS/RR/NIMLOC.src/M000336.html +17 -0
- data/doc/classes/Net/DNS/RR/NIMLOC.src/M000337.html +17 -0
- data/doc/classes/Net/DNS/RR/NIMLOC.src/M000338.html +17 -0
- data/doc/classes/Net/DNS/RR/NS.html +273 -0
- data/doc/classes/Net/DNS/RR/NS.src/M000394.html +20 -0
- data/doc/classes/Net/DNS/RR/NS.src/M000395.html +21 -0
- data/doc/classes/Net/DNS/RR/NS.src/M000396.html +20 -0
- data/doc/classes/Net/DNS/RR/NS.src/M000397.html +22 -0
- data/doc/classes/Net/DNS/RR/NS.src/M000398.html +24 -0
- data/doc/classes/Net/DNS/RR/NS.src/M000399.html +20 -0
- data/doc/classes/Net/DNS/RR/NSAP.html +420 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000450.html +60 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000451.html +44 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000452.html +25 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000453.html +19 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000454.html +19 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000455.html +22 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000456.html +30 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000457.html +37 -0
- data/doc/classes/Net/DNS/RR/NSAP.src/M000458.html +31 -0
- data/doc/classes/Net/DNS/RR/NULL.html +215 -0
- data/doc/classes/Net/DNS/RR/NULL.src/M000423.html +17 -0
- data/doc/classes/Net/DNS/RR/NULL.src/M000424.html +17 -0
- data/doc/classes/Net/DNS/RR/NULL.src/M000425.html +17 -0
- data/doc/classes/Net/DNS/RR/OPT.html +448 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000439.html +30 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000440.html +20 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000441.html +50 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000442.html +21 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000443.html +18 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000444.html +25 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000445.html +18 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000446.html +18 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000447.html +18 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000448.html +21 -0
- data/doc/classes/Net/DNS/RR/OPT.src/M000449.html +18 -0
- data/doc/classes/Net/DNS/RR/PTR.html +264 -0
- data/doc/classes/Net/DNS/RR/PTR.src/M000330.html +20 -0
- data/doc/classes/Net/DNS/RR/PTR.src/M000331.html +21 -0
- data/doc/classes/Net/DNS/RR/PTR.src/M000332.html +20 -0
- data/doc/classes/Net/DNS/RR/PTR.src/M000333.html +19 -0
- data/doc/classes/Net/DNS/RR/PTR.src/M000334.html +24 -0
- data/doc/classes/Net/DNS/RR/PTR.src/M000335.html +24 -0
- data/doc/classes/Net/DNS/RR/PX.html +306 -0
- data/doc/classes/Net/DNS/RR/PX.src/M000432.html +19 -0
- data/doc/classes/Net/DNS/RR/PX.src/M000433.html +24 -0
- data/doc/classes/Net/DNS/RR/PX.src/M000434.html +24 -0
- data/doc/classes/Net/DNS/RR/PX.src/M000435.html +26 -0
- data/doc/classes/Net/DNS/RR/PX.src/M000436.html +18 -0
- data/doc/classes/Net/DNS/RR/PX.src/M000437.html +28 -0
- data/doc/classes/Net/DNS/RR/PX.src/M000438.html +26 -0
- data/doc/classes/Net/DNS/RR/RP.html +280 -0
- data/doc/classes/Net/DNS/RR/RP.src/M000426.html +21 -0
- data/doc/classes/Net/DNS/RR/RP.src/M000427.html +23 -0
- data/doc/classes/Net/DNS/RR/RP.src/M000428.html +23 -0
- data/doc/classes/Net/DNS/RR/RP.src/M000429.html +18 -0
- data/doc/classes/Net/DNS/RR/RP.src/M000430.html +25 -0
- data/doc/classes/Net/DNS/RR/RP.src/M000431.html +24 -0
- data/doc/classes/Net/DNS/RR/RT.html +292 -0
- data/doc/classes/Net/DNS/RR/RT.src/M000323.html +21 -0
- data/doc/classes/Net/DNS/RR/RT.src/M000324.html +23 -0
- data/doc/classes/Net/DNS/RR/RT.src/M000325.html +23 -0
- data/doc/classes/Net/DNS/RR/RT.src/M000326.html +22 -0
- data/doc/classes/Net/DNS/RR/RT.src/M000327.html +18 -0
- data/doc/classes/Net/DNS/RR/RT.src/M000328.html +25 -0
- data/doc/classes/Net/DNS/RR/RT.src/M000329.html +25 -0
- data/doc/classes/Net/DNS/RR/SOA.html +350 -0
- data/doc/classes/Net/DNS/RR/SOA.src/M000387.html +23 -0
- data/doc/classes/Net/DNS/RR/SOA.src/M000388.html +38 -0
- data/doc/classes/Net/DNS/RR/SOA.src/M000389.html +35 -0
- data/doc/classes/Net/DNS/RR/SOA.src/M000390.html +22 -0
- data/doc/classes/Net/DNS/RR/SOA.src/M000391.html +31 -0
- data/doc/classes/Net/DNS/RR/SOA.src/M000392.html +30 -0
- data/doc/classes/Net/DNS/RR/SOA.src/M000393.html +29 -0
- data/doc/classes/Net/DNS/RR/SPF.html +149 -0
- data/doc/classes/Net/DNS/RR/SRV.html +315 -0
- data/doc/classes/Net/DNS/RR/SRV.src/M000301.html +27 -0
- data/doc/classes/Net/DNS/RR/SRV.src/M000302.html +26 -0
- data/doc/classes/Net/DNS/RR/SRV.src/M000303.html +29 -0
- data/doc/classes/Net/DNS/RR/SRV.src/M000304.html +25 -0
- data/doc/classes/Net/DNS/RR/SRV.src/M000305.html +25 -0
- data/doc/classes/Net/DNS/RR/SRV.src/M000306.html +25 -0
- data/doc/classes/Net/DNS/RR/SRV.src/M000307.html +25 -0
- data/doc/classes/Net/DNS/RR/SSHFP.html +343 -0
- data/doc/classes/Net/DNS/RR/SSHFP.src/M000416.html +36 -0
- data/doc/classes/Net/DNS/RR/SSHFP.src/M000417.html +27 -0
- data/doc/classes/Net/DNS/RR/SSHFP.src/M000418.html +29 -0
- data/doc/classes/Net/DNS/RR/SSHFP.src/M000419.html +24 -0
- data/doc/classes/Net/DNS/RR/SSHFP.src/M000420.html +22 -0
- data/doc/classes/Net/DNS/RR/SSHFP.src/M000421.html +22 -0
- data/doc/classes/Net/DNS/RR/SSHFP.src/M000422.html +18 -0
- data/doc/classes/Net/DNS/RR/TKEY.html +377 -0
- data/doc/classes/Net/DNS/RR/TKEY.src/M000273.html +38 -0
- data/doc/classes/Net/DNS/RR/TKEY.src/M000274.html +45 -0
- data/doc/classes/Net/DNS/RR/TKEY.src/M000275.html +22 -0
- data/doc/classes/Net/DNS/RR/TKEY.src/M000276.html +24 -0
- data/doc/classes/Net/DNS/RR/TKEY.src/M000277.html +25 -0
- data/doc/classes/Net/DNS/RR/TKEY.src/M000278.html +32 -0
- data/doc/classes/Net/DNS/RR/TKEY.src/M000279.html +31 -0
- data/doc/classes/Net/DNS/RR/TSIG.html +516 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000406.html +51 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000407.html +37 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000408.html +23 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000409.html +43 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000410.html +25 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000411.html +18 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000412.html +19 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000413.html +32 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000414.html +52 -0
- data/doc/classes/Net/DNS/RR/TSIG.src/M000415.html +41 -0
- data/doc/classes/Net/DNS/RR/TXT.html +345 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000378.html +32 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000379.html +20 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000380.html +18 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000381.html +18 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000382.html +25 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000383.html +18 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000384.html +27 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000385.html +22 -0
- data/doc/classes/Net/DNS/RR/TXT.src/M000386.html +26 -0
- data/doc/classes/Net/DNS/RR/UNKNOWN.html +199 -0
- data/doc/classes/Net/DNS/RR/UNKNOWN.src/M000476.html +18 -0
- data/doc/classes/Net/DNS/RR/UNKNOWN.src/M000477.html +22 -0
- data/doc/classes/Net/DNS/RR/UNKNOWN.src/M000478.html +30 -0
- data/doc/classes/Net/DNS/RR/X25.html +249 -0
- data/doc/classes/Net/DNS/RR/X25.src/M000373.html +23 -0
- data/doc/classes/Net/DNS/RR/X25.src/M000374.html +20 -0
- data/doc/classes/Net/DNS/RR/X25.src/M000375.html +20 -0
- data/doc/classes/Net/DNS/RR/X25.src/M000376.html +22 -0
- data/doc/classes/Net/DNS/RR/X25.src/M000377.html +26 -0
- data/doc/classes/Net/DNS/Resolver.html +1606 -0
- data/doc/classes/Net/DNS/Resolver.src/M000525.html +65 -0
- data/doc/classes/Net/DNS/Resolver.src/M000526.html +73 -0
- data/doc/classes/Net/DNS/Resolver.src/M000527.html +48 -0
- data/doc/classes/Net/DNS/Resolver.src/M000528.html +49 -0
- data/doc/classes/Net/DNS/Resolver.src/M000529.html +35 -0
- data/doc/classes/Net/DNS/Resolver.src/M000530.html +69 -0
- data/doc/classes/Net/DNS/Resolver.src/M000531.html +26 -0
- data/doc/classes/Net/DNS/Resolver.src/M000534.html +33 -0
- data/doc/classes/Net/DNS/Resolver.src/M000535.html +19 -0
- data/doc/classes/Net/DNS/Resolver.src/M000536.html +18 -0
- data/doc/classes/Net/DNS/Resolver.src/M000537.html +67 -0
- data/doc/classes/Net/DNS/Resolver.src/M000538.html +80 -0
- data/doc/classes/Net/DNS/Resolver.src/M000539.html +36 -0
- data/doc/classes/Net/DNS/Resolver.src/M000540.html +166 -0
- data/doc/classes/Net/DNS/Resolver.src/M000541.html +283 -0
- data/doc/classes/Net/DNS/Resolver.src/M000542.html +100 -0
- data/doc/classes/Net/DNS/Resolver.src/M000543.html +41 -0
- data/doc/classes/Net/DNS/Resolver.src/M000544.html +20 -0
- data/doc/classes/Net/DNS/Resolver.src/M000545.html +77 -0
- data/doc/classes/Net/DNS/Resolver.src/M000546.html +33 -0
- data/doc/classes/Net/DNS/Resolver.src/M000547.html +18 -0
- data/doc/classes/Net/DNS/Resolver.src/M000548.html +86 -0
- data/doc/classes/Net/DNS/Resolver.src/M000549.html +127 -0
- data/doc/classes/Net/DNS/Resolver.src/M000550.html +25 -0
- data/doc/classes/Net/DNS/Resolver.src/M000551.html +29 -0
- data/doc/classes/Net/DNS/Resolver.src/M000552.html +18 -0
- data/doc/classes/Net/DNS/Resolver.src/M000553.html +51 -0
- data/doc/classes/Net/DNS/Resolver.src/M000554.html +102 -0
- data/doc/classes/Net/DNS/Resolver/Recurse.html +382 -0
- data/doc/classes/Net/DNS/Resolver/Recurse.src/M000555.html +100 -0
- data/doc/classes/Net/DNS/Resolver/Recurse.src/M000556.html +20 -0
- data/doc/classes/Net/DNS/Resolver/Recurse.src/M000557.html +18 -0
- data/doc/classes/Net/DNS/Resolver/Recurse.src/M000558.html +31 -0
- data/doc/classes/Net/DNS/Resolver/Recurse.src/M000559.html +218 -0
- data/doc/classes/Net/DNS/Update.html +303 -0
- data/doc/classes/Net/DNS/Update.src/M000524.html +33 -0
- data/doc/classes/SetupError.html +111 -0
- data/doc/classes/TestAResolverFile.html +137 -0
- data/doc/classes/TestAResolverFile.src/M000129.html +51 -0
- data/doc/classes/TestAxfr.html +137 -0
- data/doc/classes/TestAxfr.src/M000075.html +25 -0
- data/doc/classes/TestEscapedChars.html +152 -0
- data/doc/classes/TestEscapedChars.src/M000011.html +262 -0
- data/doc/classes/TestEscapedChars.src/M000012.html +245 -0
- data/doc/classes/TestHeader.html +137 -0
- data/doc/classes/TestHeader.src/M000074.html +87 -0
- data/doc/classes/TestInet6.html +167 -0
- data/doc/classes/TestInet6.src/M000126.html +43 -0
- data/doc/classes/TestInet6.src/M000127.html +94 -0
- data/doc/classes/TestInet6.src/M000128.html +52 -0
- data/doc/classes/TestMisc.html +167 -0
- data/doc/classes/TestMisc.src/M000008.html +28 -0
- data/doc/classes/TestMisc.src/M000009.html +50 -0
- data/doc/classes/TestMisc.src/M000010.html +83 -0
- data/doc/classes/TestOnline.html +231 -0
- data/doc/classes/TestOnline.src/M000215.html +66 -0
- data/doc/classes/TestOnline.src/M000216.html +58 -0
- data/doc/classes/TestOnline.src/M000217.html +80 -0
- data/doc/classes/TestOnline.src/M000218.html +68 -0
- data/doc/classes/TestOnline.src/M000219.html +32 -0
- data/doc/classes/TestOnline.src/M000220.html +20 -0
- data/doc/classes/TestOnline.src/M000221.html +20 -0
- data/doc/classes/TestPacket.html +152 -0
- data/doc/classes/TestPacket.src/M000138.html +153 -0
- data/doc/classes/TestPacket.src/M000139.html +30 -0
- data/doc/classes/TestPacketUniquePush.html +167 -0
- data/doc/classes/TestPacketUniquePush.src/M000212.html +20 -0
- data/doc/classes/TestPacketUniquePush.src/M000213.html +32 -0
- data/doc/classes/TestPacketUniquePush.src/M000214.html +98 -0
- data/doc/classes/TestQuestion.html +137 -0
- data/doc/classes/TestQuestion.src/M000073.html +45 -0
- data/doc/classes/TestRR.html +140 -0
- data/doc/classes/TestRR.src/M000132.html +241 -0
- data/doc/classes/TestRecurse.html +167 -0
- data/doc/classes/TestRecurse.src/M000070.html +38 -0
- data/doc/classes/TestRecurse.src/M000071.html +32 -0
- data/doc/classes/TestRecurse.src/M000072.html +21 -0
- data/doc/classes/TestResOpt.html +197 -0
- data/doc/classes/TestResOpt.src/M000207.html +40 -0
- data/doc/classes/TestResOpt.src/M000208.html +25 -0
- data/doc/classes/TestResOpt.src/M000209.html +51 -0
- data/doc/classes/TestResOpt.src/M000210.html +32 -0
- data/doc/classes/TestResOpt.src/M000211.html +38 -0
- data/doc/classes/TestResolver.html +137 -0
- data/doc/classes/TestResolver.src/M000069.html +98 -0
- data/doc/classes/TestResolverEnv.html +137 -0
- data/doc/classes/TestResolverEnv.src/M000222.html +50 -0
- data/doc/classes/TestRrOpt.html +137 -0
- data/doc/classes/TestRrOpt.src/M000007.html +36 -0
- data/doc/classes/TestRrRrSort.html +137 -0
- data/doc/classes/TestRrRrSort.src/M000125.html +112 -0
- data/doc/classes/TestRrTest.html +155 -0
- data/doc/classes/TestRrTest.src/M000137.html +80 -0
- data/doc/classes/TestRrUnknown.html +167 -0
- data/doc/classes/TestRrUnknown.src/M000066.html +41 -0
- data/doc/classes/TestRrUnknown.src/M000067.html +37 -0
- data/doc/classes/TestRrUnknown.src/M000068.html +41 -0
- data/doc/classes/TestTKey.html +152 -0
- data/doc/classes/TestTKey.src/M000130.html +18 -0
- data/doc/classes/TestTKey.src/M000131.html +106 -0
- data/doc/classes/TestTcp.html +186 -0
- data/doc/classes/TestTcp.src/M000133.html +22 -0
- data/doc/classes/TestTcp.src/M000134.html +23 -0
- data/doc/classes/TestTcp.src/M000135.html +22 -0
- data/doc/classes/TestTcp.src/M000136.html +23 -0
- data/doc/classes/TestUpdate.html +152 -0
- data/doc/classes/TestUpdate.src/M000123.html +20 -0
- data/doc/classes/TestUpdate.src/M000124.html +216 -0
- data/doc/classes/ToplevelInstaller.html +621 -0
- data/doc/classes/ToplevelInstaller.src/M000076.html +23 -0
- data/doc/classes/ToplevelInstaller.src/M000077.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000078.html +25 -0
- data/doc/classes/ToplevelInstaller.src/M000079.html +21 -0
- data/doc/classes/ToplevelInstaller.src/M000080.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000081.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000082.html +38 -0
- data/doc/classes/ToplevelInstaller.src/M000083.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000084.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000085.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000086.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000087.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000088.html +40 -0
- data/doc/classes/ToplevelInstaller.src/M000089.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000090.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000091.html +21 -0
- data/doc/classes/ToplevelInstaller.src/M000097.html +40 -0
- data/doc/classes/ToplevelInstaller.src/M000098.html +31 -0
- data/doc/classes/ToplevelInstaller.src/M000099.html +52 -0
- data/doc/classes/ToplevelInstaller.src/M000100.html +19 -0
- data/doc/classes/ToplevelInstaller.src/M000101.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000102.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000103.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000104.html +20 -0
- data/doc/classes/ToplevelInstaller.src/M000105.html +18 -0
- data/doc/classes/ToplevelInstaller.src/M000106.html +18 -0
- data/doc/classes/ToplevelInstallerMulti.html +398 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000107.html +21 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000108.html +21 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000109.html +23 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000110.html +29 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000111.html +22 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000112.html +21 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000113.html +21 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000114.html +20 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000115.html +20 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000116.html +20 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000117.html +21 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000118.html +21 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000119.html +25 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000120.html +18 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000121.html +18 -0
- data/doc/classes/ToplevelInstallerMulti.src/M000122.html +18 -0
- data/doc/created.rid +1 -0
- data/doc/files/demo/axfr_rb.html +163 -0
- data/doc/files/demo/check_soa_rb.html +139 -0
- data/doc/files/demo/check_zone_rb.html +236 -0
- data/doc/files/demo/check_zone_rb.src/M000001.html +82 -0
- data/doc/files/demo/check_zone_rb.src/M000002.html +25 -0
- data/doc/files/demo/check_zone_rb.src/M000003.html +23 -0
- data/doc/files/demo/check_zone_rb.src/M000004.html +23 -0
- data/doc/files/demo/check_zone_rb.src/M000005.html +23 -0
- data/doc/files/demo/example_recurse_rb.html +117 -0
- data/doc/files/demo/mresolv_rb.html +149 -0
- data/doc/files/demo/mx_rb.html +108 -0
- data/doc/files/demo/rubydig_rb.html +133 -0
- data/doc/files/demo/trace_dns_rb.html +109 -0
- data/doc/files/lib/Net/DNS/Header_rb.html +117 -0
- data/doc/files/lib/Net/DNS/Nameserver_rb.html +126 -0
- data/doc/files/lib/Net/DNS/Packet_rb.html +117 -0
- data/doc/files/lib/Net/DNS/Question_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/AAAA_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/AFSDB_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/A_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/CERT_rb.html +124 -0
- data/doc/files/lib/Net/DNS/RR/CNAME_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/DNAME_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/EID_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/HINFO_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/ISDN_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/LOC_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/MB_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/MG_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/MINFO_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/MR_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/MX_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/NAPTR_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/NIMLOC_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/NSAP_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/NS_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/NULL_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/OPT_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/PTR_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/PX_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/RP_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/RT_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/SOA_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/SPF_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/SRV_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/SSHFP_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/TKEY_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/TSIG_rb.html +125 -0
- data/doc/files/lib/Net/DNS/RR/TXT_rb.html +124 -0
- data/doc/files/lib/Net/DNS/RR/UNKNOWN_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR/X25_rb.html +117 -0
- data/doc/files/lib/Net/DNS/RR_rb.html +156 -0
- data/doc/files/lib/Net/DNS/Resolver/Recurse_rb.html +117 -0
- data/doc/files/lib/Net/DNS/Resolver_rb.html +131 -0
- data/doc/files/lib/Net/DNS/Update_rb.html +117 -0
- data/doc/files/lib/Net/DNS_rb.html +125 -0
- data/doc/files/setup_rb.html +148 -0
- data/doc/files/setup_rb.src/M000006.html +18 -0
- data/doc/files/test/tc_axfr_rb.html +127 -0
- data/doc/files/test/tc_escapedchars_rb.html +126 -0
- data/doc/files/test/tc_header_rb.html +126 -0
- data/doc/files/test/tc_inet6_rb.html +127 -0
- data/doc/files/test/tc_misc_rb.html +126 -0
- data/doc/files/test/tc_online_rb.html +127 -0
- data/doc/files/test/tc_packet_rb.html +126 -0
- data/doc/files/test/tc_packet_unique_push_rb.html +126 -0
- data/doc/files/test/tc_question_rb.html +126 -0
- data/doc/files/test/tc_recurse_rb.html +127 -0
- data/doc/files/test/tc_res_env_rb.html +126 -0
- data/doc/files/test/tc_res_file_rb.html +126 -0
- data/doc/files/test/tc_res_opt_rb.html +126 -0
- data/doc/files/test/tc_resolver_rb.html +126 -0
- data/doc/files/test/tc_rr-opt_rb.html +126 -0
- data/doc/files/test/tc_rr-rrsort_rb.html +126 -0
- data/doc/files/test/tc_rr-txt_rb.html +126 -0
- data/doc/files/test/tc_rr-unknown_rb.html +126 -0
- data/doc/files/test/tc_rr_rb.html +126 -0
- data/doc/files/test/tc_tcp_rb.html +126 -0
- data/doc/files/test/tc_thread_rb.html +109 -0
- data/doc/files/test/tc_tkey_rb.html +127 -0
- data/doc/files/test/tc_udp_rb.html +126 -0
- data/doc/files/test/tc_update_rb.html +126 -0
- data/doc/files/test/ts_netdns_rb.html +125 -0
- data/doc/files/test/ts_offline_rb.html +140 -0
- data/doc/files/test/ts_online_rb.html +131 -0
- data/doc/fr_class_index.html +112 -0
- data/doc/fr_file_index.html +105 -0
- data/doc/fr_method_index.html +601 -0
- data/doc/index.html +24 -0
- data/lib/Net/DNS.rb +16 -17
- data/lib/Net/DNS/Header.rb +15 -15
- data/lib/Net/DNS/Nameserver.rb +15 -15
- data/lib/Net/DNS/Packet.rb +15 -15
- data/lib/Net/DNS/Question.rb +15 -15
- data/lib/Net/DNS/RR.rb +15 -15
- data/lib/Net/DNS/RR/A.rb +15 -15
- data/lib/Net/DNS/RR/AAAA.rb +15 -15
- data/lib/Net/DNS/RR/AFSDB.rb +15 -15
- data/lib/Net/DNS/RR/CERT.rb +15 -15
- data/lib/Net/DNS/RR/CNAME.rb +15 -15
- data/lib/Net/DNS/RR/DNAME.rb +15 -15
- data/lib/Net/DNS/RR/EID.rb +15 -15
- data/lib/Net/DNS/RR/HINFO.rb +15 -15
- data/lib/Net/DNS/RR/ISDN.rb +15 -15
- data/lib/Net/DNS/RR/LOC.rb +15 -15
- data/lib/Net/DNS/RR/MB.rb +15 -15
- data/lib/Net/DNS/RR/MG.rb +15 -15
- data/lib/Net/DNS/RR/MINFO.rb +15 -15
- data/lib/Net/DNS/RR/MR.rb +15 -15
- data/lib/Net/DNS/RR/MX.rb +15 -15
- data/lib/Net/DNS/RR/NAPTR.rb +15 -15
- data/lib/Net/DNS/RR/NIMLOC.rb +15 -15
- data/lib/Net/DNS/RR/NS.rb +15 -15
- data/lib/Net/DNS/RR/NSAP.rb +15 -15
- data/lib/Net/DNS/RR/NULL.rb +15 -15
- data/lib/Net/DNS/RR/OPT.rb +15 -15
- data/lib/Net/DNS/RR/PTR.rb +15 -15
- data/lib/Net/DNS/RR/PX.rb +15 -15
- data/lib/Net/DNS/RR/RP.rb +15 -15
- data/lib/Net/DNS/RR/RT.rb +15 -15
- data/lib/Net/DNS/RR/SOA.rb +15 -15
- data/lib/Net/DNS/RR/SPF.rb +15 -15
- data/lib/Net/DNS/RR/SRV.rb +15 -15
- data/lib/Net/DNS/RR/SSHFP.rb +15 -15
- data/lib/Net/DNS/RR/TKEY.rb +15 -15
- data/lib/Net/DNS/RR/TSIG.rb +15 -15
- data/lib/Net/DNS/RR/TXT.rb +15 -15
- data/lib/Net/DNS/RR/UNKNOWN.rb +15 -15
- data/lib/Net/DNS/RR/X25.rb +15 -15
- data/lib/Net/DNS/Resolver.rb +117 -117
- data/lib/Net/DNS/Resolver/Recurse.rb +15 -15
- data/lib/Net/DNS/Update.rb +15 -15
- data/test/tc_axfr.rb +15 -15
- data/test/tc_escapedchars.rb +15 -15
- data/test/tc_header.rb +15 -15
- data/test/tc_inet6.rb +15 -15
- data/test/tc_misc.rb +15 -15
- data/test/tc_online.rb +15 -15
- data/test/tc_packet.rb +15 -15
- data/test/tc_packet_unique_push.rb +15 -15
- data/test/tc_question.rb +15 -15
- data/test/tc_recurse.rb +15 -15
- data/test/tc_res_env.rb +15 -15
- data/test/tc_res_file.rb +15 -15
- data/test/tc_res_opt.rb +15 -15
- data/test/tc_resolver.rb +18 -18
- data/test/tc_rr-opt.rb +15 -15
- data/test/tc_rr-rrsort.rb +15 -15
- data/test/tc_rr-txt.rb +15 -15
- data/test/tc_rr-unknown.rb +15 -15
- data/test/tc_rr.rb +15 -15
- data/test/tc_tcp.rb +15 -15
- data/test/tc_tkey.rb +15 -15
- data/test/tc_udp.rb +15 -15
- data/test/tc_update.rb +15 -15
- data/test/ts_netdns.rb +15 -15
- data/test/ts_offline.rb +15 -15
- data/test/ts_online.rb +15 -15
- metadata +818 -2
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>new (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 33</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">opts</span>={})
|
|
15
|
+
<span class="ruby-comment cmt"># LocalAddr IP address on which to listen. Defaults to INADDR_ANY.</span>
|
|
16
|
+
<span class="ruby-comment cmt"># LocalPort Port on which to listen. Defaults to 53.</span>
|
|
17
|
+
<span class="ruby-comment cmt"># ReplyHandler Reference to reply-handling </span>
|
|
18
|
+
<span class="ruby-comment cmt"># subroutine Required.</span>
|
|
19
|
+
<span class="ruby-comment cmt"># Verbose Print info about received </span>
|
|
20
|
+
<span class="ruby-comment cmt"># queries. Defaults to 0 (off).</span>
|
|
21
|
+
<span class="ruby-identifier">opts</span> = {<span class="ruby-identifier">:localaddr</span> =<span class="ruby-operator">></span> <span class="ruby-constant">DEFAULT_ADDR</span>, <span class="ruby-identifier">:localport</span> =<span class="ruby-operator">></span> <span class="ruby-constant">DEFAULT_PORT</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">opts</span>)
|
|
22
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:replyhandler</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:replyhandler</span>]<span class="ruby-operator">==</span><span class="ruby-keyword kw">nil</span>)
|
|
23
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-value str">"No reply handler!"</span>
|
|
24
|
+
<span class="ruby-keyword kw">end</span>
|
|
25
|
+
<span class="ruby-ivar">@replyhandler</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:replyhandler</span>]
|
|
26
|
+
<span class="ruby-ivar">@verbose</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:verbose</span>]
|
|
27
|
+
<span class="ruby-ivar">@sockets</span> = []
|
|
28
|
+
<span class="ruby-ivar">@_tcp</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
|
|
29
|
+
|
|
30
|
+
<span class="ruby-identifier">port</span>=<span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:localport</span>]
|
|
31
|
+
|
|
32
|
+
<span class="ruby-comment cmt"># make sure we have an array.</span>
|
|
33
|
+
<span class="ruby-comment cmt"># localaddr= [DEFAULT_ADDR] unless opts[:localaddr]!=nil</span>
|
|
34
|
+
<span class="ruby-identifier">localaddr</span>= [ <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:localaddr</span>] ] <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:localaddr</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>))
|
|
35
|
+
|
|
36
|
+
<span class="ruby-identifier">localaddresses</span> = <span class="ruby-identifier">localaddr</span>
|
|
37
|
+
|
|
38
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Nameserver on #{localaddresses.inspect}:#{port}\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
39
|
+
|
|
40
|
+
<span class="ruby-comment cmt"># while we are here, print incomplete lines as they come along.</span>
|
|
41
|
+
<span class="ruby-comment cmt"># local $| = 1 if @verbose</span>
|
|
42
|
+
|
|
43
|
+
<span class="ruby-identifier">localaddresses</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">localaddress</span><span class="ruby-operator">|</span>
|
|
44
|
+
|
|
45
|
+
<span class="ruby-identifier">addr</span> = <span class="ruby-identifier">localaddress</span>
|
|
46
|
+
|
|
47
|
+
<span class="ruby-comment cmt"># If not, it will do DNS lookups trying to resolve it as a hostname</span>
|
|
48
|
+
<span class="ruby-comment cmt"># We could also just set it to undef?</span>
|
|
49
|
+
|
|
50
|
+
<span class="ruby-comment cmt"># addr = IPAddr.ntop(addr) unless IPAddr.ipv4?(addr) || IPAddr.ipv6?(addr)</span>
|
|
51
|
+
|
|
52
|
+
<span class="ruby-comment cmt"># Pretty IP-addresses, if they are otherwise binary.</span>
|
|
53
|
+
<span class="ruby-comment cmt"># addrname = addr</span>
|
|
54
|
+
<span class="ruby-comment cmt"># addrname = IPAddr.ntop(addrname) unless addrname =~ /^[\w\.:\-]+$/</span>
|
|
55
|
+
<span class="ruby-identifier">addrname</span> = <span class="ruby-constant">IPAddr</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">addr</span>, <span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">AF_INET</span>)
|
|
56
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Setting up listening sockets for #{addrname}...\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
57
|
+
|
|
58
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Creating TCP socket for #{addrname} - "</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
59
|
+
|
|
60
|
+
<span class="ruby-comment cmt">#--------------------------------------------------------------------------</span>
|
|
61
|
+
<span class="ruby-comment cmt"># Create the TCP socket.</span>
|
|
62
|
+
<span class="ruby-comment cmt">#--------------------------------------------------------------------------</span>
|
|
63
|
+
|
|
64
|
+
<span class="ruby-comment cmt"># sock_tcp = inet_new(</span>
|
|
65
|
+
<span class="ruby-comment cmt"># LocalAddr => $addr,</span>
|
|
66
|
+
<span class="ruby-comment cmt"># LocalPort => $port,</span>
|
|
67
|
+
<span class="ruby-comment cmt"># Listen => 64,</span>
|
|
68
|
+
<span class="ruby-comment cmt"># Proto => "tcp",</span>
|
|
69
|
+
<span class="ruby-comment cmt"># Reuse => 1,</span>
|
|
70
|
+
<span class="ruby-comment cmt"># );</span>
|
|
71
|
+
<span class="ruby-comment cmt"># sock_tcp = TCPSocket.new(addr, port) </span>
|
|
72
|
+
<span class="ruby-ivar">@tcpserver</span> = <span class="ruby-constant">TCPServer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">addr</span>, <span class="ruby-identifier">port</span>)
|
|
73
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-ivar">@tcpserver</span>)
|
|
74
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimError</span>, <span class="ruby-node">"Couldn't create TCP socket: #{$!}"</span>
|
|
75
|
+
<span class="ruby-keyword kw">return</span>
|
|
76
|
+
<span class="ruby-keyword kw">end</span>
|
|
77
|
+
<span class="ruby-ivar">@tcpserver</span>.<span class="ruby-identifier">listen</span>(<span class="ruby-value">64</span>)
|
|
78
|
+
<span class="ruby-ivar">@sockets</span>.<span class="ruby-identifier">push</span>(<span class="ruby-ivar">@tcpserver</span>)
|
|
79
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"done.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
80
|
+
|
|
81
|
+
<span class="ruby-comment cmt">#--------------------------------------------------------------------------</span>
|
|
82
|
+
<span class="ruby-comment cmt"># Create the UDP Socket.</span>
|
|
83
|
+
<span class="ruby-comment cmt">#--------------------------------------------------------------------------</span>
|
|
84
|
+
|
|
85
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Creating UDP socket for #{addrname} - "</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
86
|
+
|
|
87
|
+
<span class="ruby-identifier">sock_udp</span> = <span class="ruby-constant">UDPSocket</span>.<span class="ruby-identifier">new</span>()
|
|
88
|
+
<span class="ruby-identifier">sock_udp</span>.<span class="ruby-identifier">bind</span>(<span class="ruby-identifier">addr</span>, <span class="ruby-identifier">port</span>)
|
|
89
|
+
|
|
90
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">sock_udp</span>)
|
|
91
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-node">"Couldn't create UDP socket: #{$!}"</span>
|
|
92
|
+
<span class="ruby-keyword kw">return</span>
|
|
93
|
+
<span class="ruby-keyword kw">end</span>
|
|
94
|
+
<span class="ruby-ivar">@sockets</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">sock_udp</span>)
|
|
95
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"done.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
96
|
+
<span class="ruby-keyword kw">end</span>
|
|
97
|
+
|
|
98
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
99
|
+
</body>
|
|
100
|
+
</html>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>make_reply (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 123</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_reply</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">peerhost</span>)
|
|
15
|
+
<span class="ruby-identifier">reply</span>=<span class="ruby-value str">""</span>
|
|
16
|
+
<span class="ruby-identifier">headermask</span>=<span class="ruby-value str">""</span>
|
|
17
|
+
|
|
18
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-keyword kw">not</span> <span class="ruby-identifier">query</span>)
|
|
19
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"ERROR: invalid packet\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
20
|
+
<span class="ruby-identifier">reply</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">DNS</span><span class="ruby-operator">::</span><span class="ruby-constant">Packet</span>.<span class="ruby-identifier">new_from_values</span>(<span class="ruby-value str">""</span>, <span class="ruby-value str">"ANY"</span>, <span class="ruby-value str">"ANY"</span>)
|
|
21
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rcode</span>=(<span class="ruby-value str">"FORMERR"</span>)
|
|
22
|
+
|
|
23
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">reply</span>
|
|
24
|
+
<span class="ruby-keyword kw">end</span>
|
|
25
|
+
|
|
26
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">qr</span><span class="ruby-operator">==</span><span class="ruby-value">1</span>)
|
|
27
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"ERROR: invalid packet (qr was set, dropping)\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
28
|
+
<span class="ruby-keyword kw">return</span>
|
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<span class="ruby-identifier">qr</span> = (<span class="ruby-identifier">query</span>.<span class="ruby-identifier">question</span>)[<span class="ruby-value">0</span>]
|
|
33
|
+
|
|
34
|
+
<span class="ruby-identifier">qname</span> = <span class="ruby-identifier">qr</span> <span class="ruby-value">? </span><span class="ruby-identifier">qr</span>.<span class="ruby-identifier">qname</span> <span class="ruby-operator">:</span> <span class="ruby-value str">""</span>
|
|
35
|
+
<span class="ruby-identifier">qclass</span> = <span class="ruby-identifier">qr</span> <span class="ruby-value">? </span><span class="ruby-identifier">qr</span>.<span class="ruby-identifier">qclass</span> <span class="ruby-operator">:</span> <span class="ruby-value str">"ANY"</span>
|
|
36
|
+
<span class="ruby-identifier">qtype</span> = <span class="ruby-identifier">qr</span> <span class="ruby-value">? </span><span class="ruby-identifier">qr</span>.<span class="ruby-identifier">qtype</span> <span class="ruby-operator">:</span> <span class="ruby-value str">"ANY"</span>
|
|
37
|
+
|
|
38
|
+
<span class="ruby-identifier">reply</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">DNS</span><span class="ruby-operator">::</span><span class="ruby-constant">Packet</span>.<span class="ruby-identifier">new_from_values</span>(<span class="ruby-identifier">qname</span>, <span class="ruby-identifier">qtype</span>, <span class="ruby-identifier">qclass</span>)
|
|
39
|
+
|
|
40
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">opcode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"QUERY"</span>)
|
|
41
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">qdcount</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>)
|
|
42
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"query "</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">id</span>,
|
|
43
|
+
<span class="ruby-node">": (#{qname}, #{qclass}, #{qtype}) - "</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
44
|
+
|
|
45
|
+
<span class="ruby-identifier">rcode</span>, <span class="ruby-identifier">ans</span>, <span class="ruby-identifier">auth</span>, <span class="ruby-identifier">add</span>, <span class="ruby-identifier">headermask</span> = <span class="ruby-ivar">@replyhandler</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">qname</span>, <span class="ruby-identifier">qclass</span>, <span class="ruby-identifier">qtype</span>, <span class="ruby-identifier">peerhost</span>, <span class="ruby-identifier">query</span>)
|
|
46
|
+
|
|
47
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"#{rcode}\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
48
|
+
|
|
49
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rcode</span>=(<span class="ruby-identifier">rcode</span>)
|
|
50
|
+
|
|
51
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">push</span>(<span class="ruby-value str">"answer"</span>, <span class="ruby-identifier">ans</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ans</span>
|
|
52
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">push</span>(<span class="ruby-value str">"authority"</span>, <span class="ruby-identifier">auth</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auth</span>
|
|
53
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">push</span>(<span class="ruby-value str">"additional"</span>, <span class="ruby-identifier">add</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">add</span>
|
|
54
|
+
<span class="ruby-keyword kw">else</span>
|
|
55
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"ERROR: qdcount "</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">qdcount</span>, <span class="ruby-value str">"unsupported\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
56
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rcode</span>=(<span class="ruby-value str">"FORMERR"</span>)
|
|
57
|
+
<span class="ruby-keyword kw">end</span>
|
|
58
|
+
<span class="ruby-keyword kw">else</span>
|
|
59
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"ERROR: opcode "</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">opcode</span>, <span class="ruby-value str">" unsupported\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
60
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rcode</span>=(<span class="ruby-value str">"FORMERR"</span>)
|
|
61
|
+
<span class="ruby-keyword kw">end</span>
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">headermask</span>)
|
|
66
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">ra</span>=(<span class="ruby-value">1</span>)
|
|
67
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">ad</span>=(<span class="ruby-value">0</span>)
|
|
68
|
+
<span class="ruby-keyword kw">else</span>
|
|
69
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">aa</span>=(<span class="ruby-value">1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">headermask</span>[<span class="ruby-value str">'aa'</span>]
|
|
70
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">ra</span>=(<span class="ruby-value">1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">headermask</span>[<span class="ruby-value str">'ra'</span>]
|
|
71
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">ad</span>=(<span class="ruby-value">1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">headermask</span>[<span class="ruby-value str">'ad'</span>]
|
|
72
|
+
<span class="ruby-keyword kw">end</span>
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">qr</span>=(<span class="ruby-value">1</span>)
|
|
76
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">cd</span>=(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">cd</span>)
|
|
77
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rd</span>=(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rd</span>)
|
|
78
|
+
<span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">id</span>=(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">id</span>)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<span class="ruby-identifier">print</span> <span class="ruby-identifier">reply</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">headermask</span>
|
|
82
|
+
|
|
83
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">reply</span>
|
|
84
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
85
|
+
</body>
|
|
86
|
+
</html>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>readfromtcp (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 199</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">readfromtcp</span>(<span class="ruby-identifier">sock</span>)
|
|
15
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-value">-1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>]
|
|
16
|
+
<span class="ruby-identifier">peer</span> = <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"peer"</span>]
|
|
17
|
+
<span class="ruby-comment cmt"># charsread = sock.sysread(@_tcp[sock]["inbuffer"], 16384)</span>
|
|
18
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"inbuffer"</span>] = <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">recv_nonblock</span>(<span class="ruby-value">16384</span>)
|
|
19
|
+
<span class="ruby-identifier">charsread</span> = <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"inbuffer"</span>].<span class="ruby-identifier">length</span>
|
|
20
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"timeout"</span>] = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>()<span class="ruby-operator">+</span><span class="ruby-value">120</span>; <span class="ruby-comment cmt"># Reset idle timer</span>
|
|
21
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Received #{charsread} octets from #{peer}\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
22
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">charsread</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-comment cmt"># 0 octets means socket has closed</span>
|
|
23
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Connection to #{peer} closed or lost.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
24
|
+
<span class="ruby-ivar">@sockets</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">sock</span>)
|
|
25
|
+
<span class="ruby-identifier">sock</span>.<span class="ruby-identifier">close</span>()
|
|
26
|
+
<span class="ruby-ivar">@_tcp</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">sock</span>)
|
|
27
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">charsread</span>
|
|
28
|
+
<span class="ruby-keyword kw">end</span>
|
|
29
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">charsread</span>
|
|
30
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
31
|
+
</body>
|
|
32
|
+
</html>
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>tcp_connection (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 221</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tcp_connection</span>(<span class="ruby-identifier">sock</span>)
|
|
15
|
+
<span class="ruby-comment cmt"># if (not @_tcp[sock])</span>
|
|
16
|
+
<span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">sock</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@tcpserver</span>)) <span class="ruby-comment cmt"># || (not @_tcp[sock]))</span>
|
|
17
|
+
<span class="ruby-comment cmt"># We go here if we are called with a listener socket.</span>
|
|
18
|
+
<span class="ruby-identifier">client</span> = <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">accept_nonblock</span>
|
|
19
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">client</span>)
|
|
20
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"TCP connection closed by peer before we could accept it.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
21
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span>
|
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
|
23
|
+
<span class="ruby-identifier">peerport</span>= <span class="ruby-identifier">client</span>.<span class="ruby-identifier">addr</span>[<span class="ruby-value">1</span>]
|
|
24
|
+
<span class="ruby-identifier">peerhost</span> = <span class="ruby-identifier">client</span>.<span class="ruby-identifier">addr</span>[<span class="ruby-value">3</span>]
|
|
25
|
+
|
|
26
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"TCP connection from #{peerhost}:#{peerport}\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
27
|
+
<span class="ruby-comment cmt"># client.blocking=(0)</span>
|
|
28
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">client</span>]=<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
|
|
29
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">client</span>][<span class="ruby-value str">"peer"</span>] = <span class="ruby-value str">"tcp:"</span><span class="ruby-operator">+</span><span class="ruby-identifier">peerhost</span>.<span class="ruby-identifier">inspect</span><span class="ruby-operator">+</span><span class="ruby-value str">":"</span><span class="ruby-operator">+</span><span class="ruby-identifier">peerport</span>.<span class="ruby-identifier">inspect</span>
|
|
30
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">client</span>][<span class="ruby-value str">"state"</span>] = <span class="ruby-constant">STATE_ACCEPTED</span>
|
|
31
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">client</span>][<span class="ruby-value str">"socket"</span>] = <span class="ruby-identifier">client</span>
|
|
32
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">client</span>][<span class="ruby-value str">"timeout"</span>] = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>()<span class="ruby-operator">+</span><span class="ruby-value">120</span>
|
|
33
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">client</span>][<span class="ruby-value str">"outbuffer"</span>] = <span class="ruby-value str">""</span>
|
|
34
|
+
<span class="ruby-ivar">@sockets</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">client</span>)
|
|
35
|
+
<span class="ruby-comment cmt"># After we accepted we will look at the socket again </span>
|
|
36
|
+
<span class="ruby-comment cmt"># to see if there is any data there. ---Olaf</span>
|
|
37
|
+
<span class="ruby-identifier">loop_once</span>(<span class="ruby-value">0</span>)
|
|
38
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>]
|
|
39
|
+
<span class="ruby-comment cmt"># We go here if we are called with a client socket</span>
|
|
40
|
+
<span class="ruby-identifier">peer</span> = <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"peer"</span>]
|
|
41
|
+
|
|
42
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"state"</span>] <span class="ruby-operator">==</span> <span class="ruby-constant">STATE_ACCEPTED</span>)
|
|
43
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"inbuffer"</span>].<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/^(..)/</span>, <span class="ruby-value str">""</span>))
|
|
44
|
+
<span class="ruby-keyword kw">return</span>; <span class="ruby-comment cmt"># Still not 2 octets ready</span>
|
|
45
|
+
<span class="ruby-keyword kw">end</span>
|
|
46
|
+
<span class="ruby-identifier">msglen</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">"n"</span>)[<span class="ruby-value">0</span>]
|
|
47
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Removed 2 octets from the input buffer from #{peer}.\n"</span> <span class="ruby-operator">+</span>
|
|
48
|
+
<span class="ruby-node">"#{peer} said his query contains #{msglen} octets.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
49
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"state"</span>] = <span class="ruby-constant">STATE_GOT_LENGTH</span>
|
|
50
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"querylength"</span>] = <span class="ruby-identifier">msglen</span>
|
|
51
|
+
<span class="ruby-keyword kw">end</span>
|
|
52
|
+
<span class="ruby-comment cmt"># Not elsif, because we might already have all the data</span>
|
|
53
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"state"</span>] <span class="ruby-operator">==</span> <span class="ruby-constant">STATE_GOT_LENGTH</span>)
|
|
54
|
+
<span class="ruby-comment cmt"># return if not all data has been received yet.</span>
|
|
55
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"querylength"</span>] <span class="ruby-operator">></span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"inbuffer"</span>].<span class="ruby-identifier">length</span>
|
|
56
|
+
|
|
57
|
+
<span class="ruby-identifier">qbuf</span> = <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"inbuffer"</span>][<span class="ruby-value">0</span>, <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"querylength"</span>]]
|
|
58
|
+
<span class="ruby-comment cmt"># substr($self->{"_tcp"}{$sock}{"inbuffer"}, 0, $self->{"_tcp"}{$sock}{"querylength"}) = "";</span>
|
|
59
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"inbuffer"</span>][<span class="ruby-value">0</span>, <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"querylength"</span>]]=<span class="ruby-value str">""</span>
|
|
60
|
+
<span class="ruby-identifier">query</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">DNS</span><span class="ruby-operator">::</span><span class="ruby-constant">Packet</span>.<span class="ruby-identifier">new_from_binary</span>(<span class="ruby-identifier">qbuf</span>)
|
|
61
|
+
<span class="ruby-identifier">reply</span> = <span class="ruby-identifier">make_reply</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">addr</span>[<span class="ruby-value">3</span>])
|
|
62
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">reply</span>)
|
|
63
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"I couldn't create a reply for #{peer}. Closing socket.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
64
|
+
<span class="ruby-comment cmt"># @select.remove(sock)</span>
|
|
65
|
+
<span class="ruby-ivar">@sockets</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">sock</span>)
|
|
66
|
+
<span class="ruby-identifier">sock</span>.<span class="ruby-identifier">close</span>()
|
|
67
|
+
<span class="ruby-ivar">@_tcp</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">sock</span>)
|
|
68
|
+
<span class="ruby-keyword kw">return</span>
|
|
69
|
+
<span class="ruby-keyword kw">end</span>
|
|
70
|
+
<span class="ruby-identifier">reply_data</span> = <span class="ruby-identifier">reply</span>.<span class="ruby-identifier">data</span>
|
|
71
|
+
<span class="ruby-identifier">len</span> = <span class="ruby-identifier">reply_data</span>.<span class="ruby-identifier">length</span>
|
|
72
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"outbuffer"</span>] = [<span class="ruby-identifier">len</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">"n"</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">reply_data</span>
|
|
73
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Queued #{@_tcp[sock]['outbuffer'].length} octets to #{peer}.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
74
|
+
<span class="ruby-comment cmt"># We are done.</span>
|
|
75
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"state"</span>] = <span class="ruby-constant">STATE_SENDING</span>
|
|
76
|
+
<span class="ruby-keyword kw">end</span>
|
|
77
|
+
<span class="ruby-keyword kw">end</span>
|
|
78
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
79
|
+
</body>
|
|
80
|
+
</html>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>udp_connection (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 291</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">udp_connection</span>(<span class="ruby-identifier">sock</span>)
|
|
15
|
+
<span class="ruby-identifier">buf</span>, <span class="ruby-identifier">sender</span> = <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">recvfrom</span>(<span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">DNS</span><span class="ruby-operator">::</span><span class="ruby-constant">PACKETSZ</span>)
|
|
16
|
+
<span class="ruby-identifier">peerhost</span> = <span class="ruby-identifier">sender</span>[<span class="ruby-value">2</span>]
|
|
17
|
+
<span class="ruby-identifier">peerport</span>= <span class="ruby-identifier">sender</span>[<span class="ruby-value">1</span>]
|
|
18
|
+
|
|
19
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"UDP connection from #{peerhost}:#{peerport}\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
20
|
+
|
|
21
|
+
<span class="ruby-identifier">query</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">DNS</span><span class="ruby-operator">::</span><span class="ruby-constant">Packet</span>.<span class="ruby-identifier">new_from_binary</span>(<span class="ruby-identifier">buf</span>)
|
|
22
|
+
|
|
23
|
+
<span class="ruby-identifier">reply</span> = <span class="ruby-identifier">make_reply</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">peerhost</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">return</span>
|
|
24
|
+
<span class="ruby-identifier">reply_data</span> = <span class="ruby-identifier">reply</span>.<span class="ruby-identifier">data</span>
|
|
25
|
+
|
|
26
|
+
<span class="ruby-comment cmt"># local $| = 1 if @verbose</span>
|
|
27
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"Writing response - "</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
28
|
+
<span class="ruby-comment cmt"># die() ?!?? I think we need something better. --robert</span>
|
|
29
|
+
<span class="ruby-identifier">sock</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">reply_data</span>, <span class="ruby-value">0</span>, <span class="ruby-identifier">peerhost</span>, <span class="ruby-identifier">peerport</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimError</span>, <span class="ruby-node">"send: #{$!}"</span>
|
|
30
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"done\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
31
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>get_open_tcp (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 311</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_open_tcp</span>
|
|
15
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@_tcp</span>.<span class="ruby-identifier">keys</span>
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>loop_once (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 328</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loop_once</span>(<span class="ruby-identifier">timeout</span>=<span class="ruby-value">0</span>)
|
|
15
|
+
<span class="ruby-comment cmt"># print ";loop_once called with #{timeout} \n" if @verbose</span>
|
|
16
|
+
<span class="ruby-ivar">@_tcp</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sock</span><span class="ruby-operator">|</span>
|
|
17
|
+
<span class="ruby-identifier">timeout</span> = <span class="ruby-value">0</span><span class="ruby-value">.1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">sock</span>][<span class="ruby-value str">"outbuffer"</span>]<span class="ruby-operator">!=</span><span class="ruby-value str">""</span>
|
|
18
|
+
<span class="ruby-keyword kw">end</span>
|
|
19
|
+
<span class="ruby-comment cmt"># ready = @select.can_read(timeout)</span>
|
|
20
|
+
<span class="ruby-identifier">ret</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-identifier">select</span>(<span class="ruby-ivar">@sockets</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">timeout</span>)
|
|
21
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ret!</span>=<span class="ruby-keyword kw">nil</span>)
|
|
22
|
+
<span class="ruby-identifier">ready</span> = <span class="ruby-identifier">ret</span>[<span class="ruby-value">0</span>]
|
|
23
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"ready : "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">ready</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span>
|
|
24
|
+
|
|
25
|
+
<span class="ruby-identifier">ready</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sock</span><span class="ruby-operator">|</span>
|
|
26
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span>(<span class="ruby-identifier">sock</span>.<span class="ruby-identifier">is_a?</span><span class="ruby-constant">UDPSocket</span>))
|
|
27
|
+
|
|
28
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">readfromtcp</span>(<span class="ruby-identifier">sock</span>) <span class="ruby-operator">&&</span>
|
|
29
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tcp_connection</span>(<span class="ruby-identifier">sock</span>)
|
|
30
|
+
<span class="ruby-keyword kw">else</span>
|
|
31
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">udp_connection</span>(<span class="ruby-identifier">sock</span>)
|
|
32
|
+
<span class="ruby-comment cmt"># else</span>
|
|
33
|
+
<span class="ruby-comment cmt"># print "ERROR: connection with unsupported protocol #{proto}\n" if @verbose</span>
|
|
34
|
+
<span class="ruby-keyword kw">end</span>
|
|
35
|
+
<span class="ruby-keyword kw">end</span>
|
|
36
|
+
<span class="ruby-keyword kw">end</span>
|
|
37
|
+
|
|
38
|
+
<span class="ruby-identifier">now</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>()
|
|
39
|
+
<span class="ruby-comment cmt"># Lets check if any of our TCP clients has pending actions.</span>
|
|
40
|
+
<span class="ruby-comment cmt"># (outbuffer, timeout)</span>
|
|
41
|
+
<span class="ruby-comment cmt"># @_tcp.keys.each do |s|</span>
|
|
42
|
+
<span class="ruby-ivar">@_tcp</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
|
|
43
|
+
<span class="ruby-identifier">sock</span> = <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"socket"</span>]
|
|
44
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"outbuffer"</span>].<span class="ruby-identifier">length</span><span class="ruby-operator">></span><span class="ruby-value">0</span>)
|
|
45
|
+
<span class="ruby-comment cmt"># If we have buffered output, then send as much as the OS will accept</span>
|
|
46
|
+
<span class="ruby-comment cmt"># and wait with the rest</span>
|
|
47
|
+
<span class="ruby-identifier">len</span> = <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"outbuffer"</span>].<span class="ruby-identifier">length</span>
|
|
48
|
+
<span class="ruby-comment cmt"># charssent = sock.syswrite(@_tcp[s]["outbuffer"]</span>
|
|
49
|
+
<span class="ruby-identifier">charssent</span> = <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">write_nonblock</span>(<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"outbuffer"</span>])
|
|
50
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">"Sent #{charssent} of #{len} octets to "</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"peer"</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">".\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
51
|
+
<span class="ruby-comment cmt"># substr($self->{"_tcp"}{$s}{"outbuffer"}, 0, charssent) = ""</span>
|
|
52
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"outbuffer"</span>] [<span class="ruby-value">0</span>, <span class="ruby-identifier">charssent</span>] = <span class="ruby-value str">""</span>
|
|
53
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"outbuffer"</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>)
|
|
54
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"outbuffer"</span>] = <span class="ruby-value str">""</span>
|
|
55
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"state"</span>] = <span class="ruby-constant">STATE_ACCEPTED</span>
|
|
56
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"inbuffer"</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">>=</span> <span class="ruby-value">2</span>)
|
|
57
|
+
<span class="ruby-comment cmt"># See if the client has send us enough data to process the</span>
|
|
58
|
+
<span class="ruby-comment cmt"># next query.</span>
|
|
59
|
+
<span class="ruby-comment cmt"># We do this here, because we only want to process (and buffer!!)</span>
|
|
60
|
+
<span class="ruby-comment cmt"># a single query at a time, per client. If we allowed a STATE_SENDING</span>
|
|
61
|
+
<span class="ruby-comment cmt"># client to have new requests processed. We could be easilier</span>
|
|
62
|
+
<span class="ruby-comment cmt"># victims of DoS (client sending lots of queries and never reading</span>
|
|
63
|
+
<span class="ruby-comment cmt"># from it's socket).</span>
|
|
64
|
+
<span class="ruby-comment cmt"># Note that this does not disable serialisation on part of the</span>
|
|
65
|
+
<span class="ruby-comment cmt"># client. The split second it should take for us to lookip the</span>
|
|
66
|
+
<span class="ruby-comment cmt"># next query, is likely faster than the time it takes to</span>
|
|
67
|
+
<span class="ruby-comment cmt"># send the response... well, unless it's a lot of tiny queries,</span>
|
|
68
|
+
<span class="ruby-comment cmt"># in which case we will be generating an entire TCP packet per</span>
|
|
69
|
+
<span class="ruby-comment cmt"># reply. --robert</span>
|
|
70
|
+
<span class="ruby-identifier">tcp_connection</span>(<span class="ruby-ivar">@_tcp</span>[<span class="ruby-value str">"socket"</span>])
|
|
71
|
+
<span class="ruby-keyword kw">end</span>
|
|
72
|
+
<span class="ruby-keyword kw">end</span>
|
|
73
|
+
<span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"timeout"</span>] = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>()<span class="ruby-operator">+</span><span class="ruby-value">120</span>
|
|
74
|
+
<span class="ruby-keyword kw">else</span>
|
|
75
|
+
<span class="ruby-comment cmt"># Get rid of idle clients.</span>
|
|
76
|
+
<span class="ruby-identifier">timeout</span> = <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"timeout"</span>]
|
|
77
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">timeout</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">now</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>)
|
|
78
|
+
<span class="ruby-identifier">print</span> <span class="ruby-ivar">@_tcp</span>[<span class="ruby-identifier">s</span>][<span class="ruby-value str">"peer"</span>],<span class="ruby-value str">" has been idle for too long and will be disconnected.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
79
|
+
<span class="ruby-comment cmt"># @select.remove(sock)</span>
|
|
80
|
+
<span class="ruby-ivar">@sockets</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">sock</span>)
|
|
81
|
+
<span class="ruby-identifier">sock</span>.<span class="ruby-identifier">close</span>()
|
|
82
|
+
<span class="ruby-ivar">@_tcp</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">s</span>)
|
|
83
|
+
<span class="ruby-keyword kw">end</span>
|
|
84
|
+
<span class="ruby-keyword kw">end</span>
|
|
85
|
+
<span class="ruby-keyword kw">end</span>
|
|
86
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
87
|
+
</body>
|
|
88
|
+
</html>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>main_loop (Net::DNS::Nameserver)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/Net/DNS/Nameserver.rb, line 406</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main_loop</span>
|
|
15
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">do</span>
|
|
16
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">"Waiting for connections...\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
|
|
17
|
+
<span class="ruby-comment cmt"># You really need an argument otherwise you'll be burning</span>
|
|
18
|
+
<span class="ruby-comment cmt"># CPU.</span>
|
|
19
|
+
<span class="ruby-identifier">loop_once</span>(<span class="ruby-value">10</span>)
|
|
20
|
+
<span class="ruby-keyword kw">end</span>
|
|
21
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
22
|
+
</body>
|
|
23
|
+
</html>
|