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>hints= (Net::DNS::Resolver::Recurse)</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/Resolver/Recurse.rb, line 138</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hints=</span>(<span class="ruby-identifier">hints</span>)
|
|
15
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; hints(#{hints.inspect})\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
16
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">hints</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@nameservers</span>)
|
|
17
|
+
<span class="ruby-ivar">@hints</span>=(<span class="ruby-ivar">@nameservers</span>)
|
|
18
|
+
<span class="ruby-keyword kw">else</span>
|
|
19
|
+
<span class="ruby-ivar">@nameservers</span>=(<span class="ruby-identifier">hints</span>)
|
|
20
|
+
<span class="ruby-keyword kw">end</span>
|
|
21
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; verifying (root) zone...\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
22
|
+
<span class="ruby-comment cmt"># bind always asks one of the hint servers</span>
|
|
23
|
+
<span class="ruby-comment cmt"># for who it thinks is authoritative for</span>
|
|
24
|
+
<span class="ruby-comment cmt"># the (root) zone as a sanity check.</span>
|
|
25
|
+
<span class="ruby-comment cmt"># Nice idea.</span>
|
|
26
|
+
|
|
27
|
+
<span class="ruby-identifier">recurse</span>=(<span class="ruby-value">1</span>)
|
|
28
|
+
<span class="ruby-identifier">packet</span>=<span class="ruby-identifier">query</span>(<span class="ruby-value str">"."</span>, <span class="ruby-value str">"NS"</span>, <span class="ruby-value str">"IN"</span>)
|
|
29
|
+
|
|
30
|
+
<span class="ruby-identifier">hints</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
|
|
31
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">packet</span>)
|
|
32
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ans</span> = <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">answer</span>)
|
|
33
|
+
<span class="ruby-comment cmt"># foreach my $rr (@ans)</span>
|
|
34
|
+
<span class="ruby-identifier">ans</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
|
|
35
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\.?$/</span> <span class="ruby-keyword kw">and</span>
|
|
36
|
+
<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"NS"</span>)
|
|
37
|
+
<span class="ruby-comment cmt"># Found root authority</span>
|
|
38
|
+
<span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>.<span class="ruby-identifier">downcase</span>
|
|
39
|
+
<span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.$/</span>,<span class="ruby-value str">""</span>)
|
|
40
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; FOUND HINT: #{server}\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
41
|
+
<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>] = []
|
|
42
|
+
<span class="ruby-keyword kw">end</span>
|
|
43
|
+
<span class="ruby-keyword kw">end</span>
|
|
44
|
+
<span class="ruby-comment cmt"># foreach my $rr ($packet->additional) {</span>
|
|
45
|
+
<span class="ruby-identifier">packet</span>.<span class="ruby-identifier">additional</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
|
|
46
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; ADDITIONAL: "</span>,<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span>,<span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
47
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>)
|
|
48
|
+
<span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"A"</span>)
|
|
49
|
+
<span class="ruby-comment cmt">#print ";; ADDITIONAL HELP: $server -> [".$rr->rdatastr."]\n" if $self->{'debug'};</span>
|
|
50
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span>)
|
|
51
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; STORING IP: #{server} IN A "</span>,<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>,<span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
52
|
+
<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]=<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>
|
|
53
|
+
<span class="ruby-keyword kw">end</span>
|
|
54
|
+
<span class="ruby-keyword kw">end</span>
|
|
55
|
+
<span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"AAAA"</span>)
|
|
56
|
+
<span class="ruby-comment cmt">#print ";; ADDITIONAL HELP: $server -> [".$rr->rdatastr."]\n" if $self->{'debug'};</span>
|
|
57
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>])
|
|
58
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; STORING IP6: #{server} IN AAAA "</span>,<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>,<span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
59
|
+
<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]=<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>
|
|
60
|
+
<span class="ruby-keyword kw">end</span>
|
|
61
|
+
<span class="ruby-keyword kw">end</span>
|
|
62
|
+
|
|
63
|
+
<span class="ruby-keyword kw">end</span>
|
|
64
|
+
<span class="ruby-keyword kw">end</span>
|
|
65
|
+
<span class="ruby-keyword kw">end</span>
|
|
66
|
+
<span class="ruby-comment cmt"># foreach my $server (keys %hints) {</span>
|
|
67
|
+
<span class="ruby-identifier">hints</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">server</span><span class="ruby-operator">|</span>
|
|
68
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">==</span>[])
|
|
69
|
+
<span class="ruby-comment cmt"># Wipe the servers without lookups</span>
|
|
70
|
+
<span class="ruby-identifier">hints</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">server</span>)
|
|
71
|
+
<span class="ruby-keyword kw">end</span>
|
|
72
|
+
<span class="ruby-keyword kw">end</span>
|
|
73
|
+
<span class="ruby-ivar">@hints</span> = <span class="ruby-identifier">hints</span>
|
|
74
|
+
<span class="ruby-keyword kw">else</span>
|
|
75
|
+
<span class="ruby-ivar">@hints</span> = []
|
|
76
|
+
<span class="ruby-keyword kw">end</span>
|
|
77
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@hints</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>)
|
|
78
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@debug</span>)
|
|
79
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; USING THE FOLLOWING HINT IPS:\n"</span>;
|
|
80
|
+
<span class="ruby-comment cmt"># foreach my $ips (values %{ $self->{'hints'} }) {</span>
|
|
81
|
+
<span class="ruby-ivar">@hints</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ips</span><span class="ruby-operator">|</span>
|
|
82
|
+
<span class="ruby-comment cmt"># foreach my $server (@{ $ips }) {</span>
|
|
83
|
+
<span class="ruby-identifier">ips</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
|
84
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; #{server}\n"</span>;
|
|
85
|
+
<span class="ruby-keyword kw">end</span>
|
|
86
|
+
<span class="ruby-keyword kw">end</span>
|
|
87
|
+
<span class="ruby-keyword kw">end</span>
|
|
88
|
+
<span class="ruby-keyword kw">else</span>
|
|
89
|
+
<span class="ruby-identifier">warn</span> <span class="ruby-value str">"Server ["</span><span class="ruby-operator">+</span>(<span class="ruby-ivar">@nameservers</span>)[<span class="ruby-value">0</span>]<span class="ruby-operator">+</span><span class="ruby-value str">"] did not give answers"</span>
|
|
90
|
+
<span class="ruby-keyword kw">end</span>
|
|
91
|
+
|
|
92
|
+
<span class="ruby-comment cmt"># Disable recursion flag.</span>
|
|
93
|
+
<span class="ruby-ivar">@recurse</span>=(<span class="ruby-value">0</span>)
|
|
94
|
+
|
|
95
|
+
<span class="ruby-comment cmt"># return $self->nameservers( map { @{ $_ } } values %{ $self->{'hints'} } );</span>
|
|
96
|
+
<span class="ruby-ivar">@nameservers</span> = <span class="ruby-ivar">@hints</span>.<span class="ruby-identifier">values</span>
|
|
97
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@nameservers</span>
|
|
98
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
99
|
+
</body>
|
|
100
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
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>recursion_callback= (Net::DNS::Resolver::Recurse)</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/Resolver/Recurse.rb, line 237</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursion_callback=</span>(<span class="ruby-identifier">sub</span>)
|
|
15
|
+
<span class="ruby-comment cmt"># if (sub && UNIVERSAL::isa(sub, 'CODE'))</span>
|
|
16
|
+
<span class="ruby-ivar">@callback</span> = <span class="ruby-identifier">sub</span>
|
|
17
|
+
<span class="ruby-comment cmt"># end</span>
|
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
19
|
+
</body>
|
|
20
|
+
</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>recursion_callback (Net::DNS::Resolver::Recurse)</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/Resolver/Recurse.rb, line 243</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursion_callback</span>
|
|
15
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@callback</span>
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -0,0 +1,31 @@
|
|
|
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>query_dorecursion (Net::DNS::Resolver::Recurse)</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/Resolver/Recurse.rb, line 255</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_dorecursion</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
15
|
+
|
|
16
|
+
<span class="ruby-comment cmt"># Make sure the hint servers are initialized.</span>
|
|
17
|
+
<span class="ruby-ivar">@hints</span>=<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@hints</span>
|
|
18
|
+
<span class="ruby-ivar">@recurse</span>=(<span class="ruby-value">0</span>)
|
|
19
|
+
<span class="ruby-comment cmt"># Make sure the authority cache is clean.</span>
|
|
20
|
+
<span class="ruby-comment cmt"># It is only used to store A and AAAA records of</span>
|
|
21
|
+
<span class="ruby-comment cmt"># the suposedly authoritative name servers.</span>
|
|
22
|
+
<span class="ruby-ivar">@authority_cache</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
|
|
23
|
+
|
|
24
|
+
<span class="ruby-comment cmt"># Obtain real question Net::DNS::Packet</span>
|
|
25
|
+
<span class="ruby-identifier">query_packet</span> = <span class="ruby-identifier">make_query_packet</span>(<span class="ruby-identifier">args</span>)
|
|
26
|
+
|
|
27
|
+
<span class="ruby-comment cmt"># Seed name servers with hints</span>
|
|
28
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-value str">"."</span>, <span class="ruby-ivar">@hints</span>, <span class="ruby-value">0</span>)
|
|
29
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
30
|
+
</body>
|
|
31
|
+
</html>
|
|
@@ -0,0 +1,218 @@
|
|
|
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>_dorecursion (Net::DNS::Resolver::Recurse)</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/Resolver/Recurse.rb, line 272</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_dorecursion</span>(<span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">known_zone</span>, <span class="ruby-identifier">known_authorities</span>, <span class="ruby-identifier">depth</span>)
|
|
15
|
+
<span class="ruby-identifier">cache</span> = <span class="ruby-ivar">@authority_cache</span>
|
|
16
|
+
|
|
17
|
+
<span class="ruby-comment cmt"># die "Recursion too deep, aborting..." if $depth > 255;</span>
|
|
18
|
+
<span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">depth</span> <span class="ruby-operator">></span> <span class="ruby-value">255</span> )
|
|
19
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Recursion too deep, aborting...\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
20
|
+
<span class="ruby-ivar">@errorstring</span>=<span class="ruby-value str">"Recursion too deep, aborted"</span>
|
|
21
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
|
23
|
+
|
|
24
|
+
<span class="ruby-identifier">known_zone</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
25
|
+
|
|
26
|
+
<span class="ruby-comment cmt"># Get IPs from authorities</span>
|
|
27
|
+
<span class="ruby-identifier">ns</span> = []
|
|
28
|
+
<span class="ruby-comment cmt"># foreach my $ns (keys %{ $known_authorities }) {</span>
|
|
29
|
+
<span class="ruby-identifier">known_authorities</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">ns_rec</span><span class="ruby-operator">|</span>
|
|
30
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>] <span class="ruby-operator">!=</span> [] )
|
|
31
|
+
<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>] = <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>]
|
|
32
|
+
<span class="ruby-identifier">ns</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>])
|
|
33
|
+
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">!=</span>[])
|
|
34
|
+
<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>] = <span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>]
|
|
35
|
+
<span class="ruby-identifier">ns</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>])
|
|
36
|
+
<span class="ruby-keyword kw">end</span>
|
|
37
|
+
<span class="ruby-keyword kw">end</span>
|
|
38
|
+
|
|
39
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>)
|
|
40
|
+
<span class="ruby-identifier">found_auth</span> = <span class="ruby-value">0</span>
|
|
41
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@debug</span>)
|
|
42
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Failed to extract nameserver IPs:\n"</span>;
|
|
43
|
+
<span class="ruby-identifier">print</span> <span class="ruby-identifier">known_authorities</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">cache</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span>
|
|
44
|
+
<span class="ruby-keyword kw">end</span>
|
|
45
|
+
<span class="ruby-comment cmt"># foreach my $ns (keys %{ $known_authorities }) {</span>
|
|
46
|
+
<span class="ruby-identifier">known_authorities</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">ns_rec</span><span class="ruby-operator">|</span>
|
|
47
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">==</span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">==</span>[])
|
|
48
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Manual lookup for authority [#{ns_rec}]\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
49
|
+
|
|
50
|
+
<span class="ruby-identifier">auth_packet</span>=<span class="ruby-keyword kw">nil</span>
|
|
51
|
+
<span class="ruby-identifier">ans</span>=[]
|
|
52
|
+
|
|
53
|
+
<span class="ruby-comment cmt"># Don't query for V6 if its not there.</span>
|
|
54
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span> <span class="ruby-ivar">@force_v4</span>)
|
|
55
|
+
<span class="ruby-identifier">auth_packet</span> = <span class="ruby-identifier">_dorecursion</span>(<span class="ruby-identifier">make_query_packet</span>([<span class="ruby-identifier">ns_rec</span>,<span class="ruby-value str">"AAAA"</span>]), <span class="ruby-comment cmt"># packet</span>
|
|
56
|
+
<span class="ruby-value str">"."</span>, <span class="ruby-comment cmt"># known_zone</span>
|
|
57
|
+
<span class="ruby-ivar">@hints</span>, <span class="ruby-comment cmt"># known_authorities</span>
|
|
58
|
+
<span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>); <span class="ruby-comment cmt"># depth</span>
|
|
59
|
+
<span class="ruby-identifier">ans</span> = <span class="ruby-identifier">auth_packet</span>.<span class="ruby-identifier">answer</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auth_packet</span>
|
|
60
|
+
<span class="ruby-keyword kw">end</span>
|
|
61
|
+
|
|
62
|
+
<span class="ruby-identifier">auth_packet</span> = <span class="ruby-identifier">_dorecursion</span>(<span class="ruby-identifier">make_query_packet</span>([<span class="ruby-identifier">ns_rec</span>,<span class="ruby-value str">"A"</span>]), <span class="ruby-comment cmt"># packet</span>
|
|
63
|
+
<span class="ruby-value str">"."</span>, <span class="ruby-comment cmt"># known_zone</span>
|
|
64
|
+
<span class="ruby-ivar">@hints</span>, <span class="ruby-comment cmt"># known_authorities</span>
|
|
65
|
+
<span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>); <span class="ruby-comment cmt"># depth</span>
|
|
66
|
+
|
|
67
|
+
<span class="ruby-identifier">ans</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">auth_packet</span>.<span class="ruby-identifier">answer</span> ) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auth_packet</span>
|
|
68
|
+
|
|
69
|
+
<span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">ans</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> )
|
|
70
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Answers found for [#{ns_rec}]\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
71
|
+
<span class="ruby-comment cmt"># foreach my $rr (@ans) {</span>
|
|
72
|
+
<span class="ruby-identifier">ans</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr_arr</span><span class="ruby-operator">|</span>
|
|
73
|
+
<span class="ruby-identifier">rr_arr</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
|
|
74
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; RR:"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
75
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"CNAME"</span>)
|
|
76
|
+
<span class="ruby-comment cmt"># Follow CNAME</span>
|
|
77
|
+
<span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
|
|
78
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
|
|
79
|
+
<span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
80
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">ns_rec</span>)
|
|
81
|
+
<span class="ruby-identifier">cname</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>.<span class="ruby-identifier">downcase</span>
|
|
82
|
+
<span class="ruby-identifier">cname</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
83
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Following CNAME ns [#{ns_rec}] -> [#{cname}]\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
84
|
+
<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">cname</span>] <span class="ruby-operator">||=</span> []
|
|
85
|
+
<span class="ruby-identifier">known_authorities</span>.<span class="ruby-identifier">delete</span>[<span class="ruby-identifier">ns_rec</span>]
|
|
86
|
+
<span class="ruby-keyword kw">next</span>
|
|
87
|
+
<span class="ruby-keyword kw">end</span>
|
|
88
|
+
<span class="ruby-keyword kw">end</span>
|
|
89
|
+
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"A"</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"AAAA"</span> )
|
|
90
|
+
<span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
|
|
91
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
|
|
92
|
+
<span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
93
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span>)
|
|
94
|
+
<span class="ruby-identifier">ip</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>
|
|
95
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Found ns: #{server} IN A #{ip}\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
96
|
+
<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">server</span>] = <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">server</span>]
|
|
97
|
+
<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>].<span class="ruby-identifier">push</span>(<span class="ruby-identifier">ip</span>)
|
|
98
|
+
<span class="ruby-identifier">found_auth</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
|
|
99
|
+
<span class="ruby-keyword kw">next</span>
|
|
100
|
+
<span class="ruby-keyword kw">end</span>
|
|
101
|
+
<span class="ruby-keyword kw">end</span>
|
|
102
|
+
<span class="ruby-keyword kw">end</span>
|
|
103
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Ignoring useless answer: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
104
|
+
<span class="ruby-keyword kw">end</span>
|
|
105
|
+
<span class="ruby-keyword kw">end</span>
|
|
106
|
+
<span class="ruby-keyword kw">else</span>
|
|
107
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Could not find A records for [#{ns_rec}]\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
108
|
+
<span class="ruby-keyword kw">end</span>
|
|
109
|
+
<span class="ruby-keyword kw">end</span>
|
|
110
|
+
<span class="ruby-keyword kw">end</span>
|
|
111
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">found_auth</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>)
|
|
112
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Found #{found_auth} new NS authorities...\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
113
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">known_zone</span>, <span class="ruby-identifier">known_authorities</span>, <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
|
|
114
|
+
<span class="ruby-keyword kw">end</span>
|
|
115
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() No authority information could be obtained.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
116
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
117
|
+
<span class="ruby-keyword kw">end</span>
|
|
118
|
+
|
|
119
|
+
<span class="ruby-comment cmt"># Cut the deck of IPs in a random place.</span>
|
|
120
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() cutting deck of ("</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">") authorities...\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
121
|
+
<span class="ruby-identifier">splitpos</span> = <span class="ruby-identifier">rand</span>(<span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span>)
|
|
122
|
+
<span class="ruby-identifier">start</span> = <span class="ruby-identifier">ns</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">splitpos</span>]
|
|
123
|
+
<span class="ruby-identifier">endarr</span> = <span class="ruby-identifier">ns</span>[<span class="ruby-identifier">splitpos</span>, <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">splitpos</span>]
|
|
124
|
+
<span class="ruby-identifier">ns</span> = <span class="ruby-identifier">endarr</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">start</span>
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
<span class="ruby-identifier">ns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">levelns</span><span class="ruby-operator">|</span>
|
|
128
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Trying nameserver [#{levelns}]\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
129
|
+
<span class="ruby-ivar">@nameservers</span>=(<span class="ruby-identifier">levelns</span>)
|
|
130
|
+
|
|
131
|
+
<span class="ruby-identifier">packet</span> = <span class="ruby-identifier">send</span>( <span class="ruby-identifier">query_packet</span> )
|
|
132
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">packet</span>)
|
|
133
|
+
|
|
134
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@callback</span>)
|
|
135
|
+
<span class="ruby-ivar">@callback</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">packet</span>)
|
|
136
|
+
<span class="ruby-keyword kw">end</span>
|
|
137
|
+
|
|
138
|
+
<span class="ruby-identifier">of</span> = <span class="ruby-keyword kw">nil</span>
|
|
139
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Response received from ["</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@answerfrom</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"]\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
140
|
+
<span class="ruby-identifier">status</span> = <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rcode</span>
|
|
141
|
+
<span class="ruby-identifier">authority</span> = <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">authority</span>
|
|
142
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">status</span>)
|
|
143
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"NXDOMAIN"</span>)
|
|
144
|
+
<span class="ruby-comment cmt"># I guess NXDOMAIN is the best we'll ever get</span>
|
|
145
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() returning NXDOMAIN\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
146
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">packet</span>
|
|
147
|
+
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">packet</span>.<span class="ruby-identifier">answer</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>)
|
|
148
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Answers were found.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
149
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">packet</span>
|
|
150
|
+
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">authority</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>)
|
|
151
|
+
<span class="ruby-identifier">auth</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
|
|
152
|
+
<span class="ruby-comment cmt"># foreach my $rr (@authority) {</span>
|
|
153
|
+
<span class="ruby-identifier">authority</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
|
|
154
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(NS|SOA)$/</span>)
|
|
155
|
+
<span class="ruby-identifier">server</span> = (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"NS"</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">nsdname</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">mname</span>).<span class="ruby-identifier">downcase</span>
|
|
156
|
+
<span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
157
|
+
<span class="ruby-identifier">of</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
|
|
158
|
+
<span class="ruby-identifier">of</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
159
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() Received authority [#{of}] ["</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span>() <span class="ruby-operator">+</span> <span class="ruby-node">"] [#{server}]\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
160
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">of</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">known_zone</span>.<span class="ruby-identifier">length</span>)
|
|
161
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Deadbeat name server did not provide new information.\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
162
|
+
<span class="ruby-keyword kw">next</span>
|
|
163
|
+
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">of</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/#{known_zone}/</span>)
|
|
164
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() FOUND closer authority for [#{of}] at [#{server}].\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
165
|
+
<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>] <span class="ruby-operator">||=</span> []
|
|
166
|
+
<span class="ruby-keyword kw">else</span>
|
|
167
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Confused name server ["</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@answerfrom</span> <span class="ruby-operator">+</span> <span class="ruby-node">"] thinks [#{of}] is closer than [#{known_zone}]?\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
168
|
+
<span class="ruby-identifier">last</span>
|
|
169
|
+
<span class="ruby-keyword kw">end</span>
|
|
170
|
+
<span class="ruby-keyword kw">else</span>
|
|
171
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Ignoring NON NS entry found in authority section: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
172
|
+
<span class="ruby-keyword kw">end</span>
|
|
173
|
+
<span class="ruby-keyword kw">end</span>
|
|
174
|
+
<span class="ruby-comment cmt"># foreach my $rr ($packet->additional)</span>
|
|
175
|
+
<span class="ruby-identifier">packet</span>.<span class="ruby-identifier">additional</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
|
|
176
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"CNAME"</span>)
|
|
177
|
+
<span class="ruby-comment cmt"># Store this CNAME into %auth too</span>
|
|
178
|
+
<span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
|
|
179
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
|
|
180
|
+
<span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
181
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span>[])
|
|
182
|
+
<span class="ruby-identifier">cname</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>.<span class="ruby-identifier">downcase</span>
|
|
183
|
+
<span class="ruby-identifier">cname</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
184
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() FOUND CNAME authority: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">string</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
185
|
+
<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">cname</span>] <span class="ruby-operator">||=</span> []
|
|
186
|
+
<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>] = <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">cname</span>]
|
|
187
|
+
<span class="ruby-keyword kw">next</span>
|
|
188
|
+
<span class="ruby-keyword kw">end</span>
|
|
189
|
+
|
|
190
|
+
<span class="ruby-keyword kw">end</span>
|
|
191
|
+
<span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"A"</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"AAAA"</span>)
|
|
192
|
+
<span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
|
|
193
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
|
|
194
|
+
<span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">"."</span>)
|
|
195
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span>)
|
|
196
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() STORING: #{server} IN A "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"A"</span>
|
|
197
|
+
<span class="ruby-identifier">print</span> <span class="ruby-node">";; _dorecursion() STORING: #{server} IN AAAA "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"AAAA"</span>
|
|
198
|
+
<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>].<span class="ruby-identifier">push</span>(<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>)
|
|
199
|
+
<span class="ruby-keyword kw">next</span>
|
|
200
|
+
<span class="ruby-keyword kw">end</span>
|
|
201
|
+
<span class="ruby-keyword kw">end</span>
|
|
202
|
+
<span class="ruby-keyword kw">end</span>
|
|
203
|
+
<span class="ruby-identifier">print</span> <span class="ruby-value str">";; _dorecursion() Ignoring useless: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
204
|
+
<span class="ruby-keyword kw">end</span>
|
|
205
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">of</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/#{known_zone}/</span>)
|
|
206
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">of</span>, <span class="ruby-identifier">auth</span>, <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span> )
|
|
207
|
+
<span class="ruby-keyword kw">else</span>
|
|
208
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">known_zone</span>, <span class="ruby-identifier">known_authorities</span>, <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span> )
|
|
209
|
+
<span class="ruby-keyword kw">end</span>
|
|
210
|
+
<span class="ruby-keyword kw">end</span>
|
|
211
|
+
<span class="ruby-keyword kw">end</span>
|
|
212
|
+
<span class="ruby-keyword kw">end</span>
|
|
213
|
+
<span class="ruby-keyword kw">end</span>
|
|
214
|
+
|
|
215
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
216
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
217
|
+
</body>
|
|
218
|
+
</html>
|
|
@@ -0,0 +1,303 @@
|
|
|
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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: Net::DNS::Update</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Net::DNS::Update</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../../files/lib/Net/DNS/Update_rb.html">
|
|
59
|
+
lib/Net/DNS/Update.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
<a href="Packet.html">
|
|
69
|
+
Packet
|
|
70
|
+
</a>
|
|
71
|
+
</td>
|
|
72
|
+
</tr>
|
|
73
|
+
</table>
|
|
74
|
+
</div>
|
|
75
|
+
<!-- banner header -->
|
|
76
|
+
|
|
77
|
+
<div id="bodyContent">
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<div id="contextContent">
|
|
82
|
+
|
|
83
|
+
<div id="description">
|
|
84
|
+
<h1>NAME</h1>
|
|
85
|
+
<p>
|
|
86
|
+
<a href="Update.html">Net::DNS::Update</a> - Create a <a
|
|
87
|
+
href="../DNS.html">DNS</a> update packet
|
|
88
|
+
</p>
|
|
89
|
+
<h1>DESCRIPTION</h1>
|
|
90
|
+
<p>
|
|
91
|
+
<a href="Update.html">Net::DNS::Update</a> is a subclass of <a
|
|
92
|
+
href="Packet.html">Net::DNS::Packet</a>, to be used for making <a
|
|
93
|
+
href="../DNS.html">DNS</a> dynamic updates. Programmers should refer to RFC
|
|
94
|
+
2136 for the semantics of dynamic updates.
|
|
95
|
+
</p>
|
|
96
|
+
<p>
|
|
97
|
+
WARNING: This code is still under development. Please use with caution on
|
|
98
|
+
production nameservers.
|
|
99
|
+
</p>
|
|
100
|
+
<p>
|
|
101
|
+
Future versions of <a href="../DNS.html">Net::DNS</a> may provide a simpler
|
|
102
|
+
interface for making dynamic updates.
|
|
103
|
+
</p>
|
|
104
|
+
<h1>EXAMPLES</h1>
|
|
105
|
+
<p>
|
|
106
|
+
The first example below shows a complete program; subsequent examples show
|
|
107
|
+
only the creation of the update packet.
|
|
108
|
+
</p>
|
|
109
|
+
<h2>Add a new host</h2>
|
|
110
|
+
<pre>
|
|
111
|
+
require 'Net/DNS'
|
|
112
|
+
|
|
113
|
+
# Create the update packet.
|
|
114
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
115
|
+
|
|
116
|
+
# Prerequisite is that no A records exist for the name.
|
|
117
|
+
update.push('pre', Net::DNS.nxrrset('foo.example.com. A'))
|
|
118
|
+
|
|
119
|
+
# Add two A records for the name.
|
|
120
|
+
update.push('update', Net::DNS.rr_add('foo.example.com. 86400 A 192.168.1.2'))
|
|
121
|
+
update.push('update', Net::DNS.rr_add('foo.example.com. 86400 A 172.16.3.4'))
|
|
122
|
+
|
|
123
|
+
# Send the update to the zone's primary master.
|
|
124
|
+
res = Net::DNS::Resolver.new
|
|
125
|
+
res.nameservers=('primary-master.example.com')
|
|
126
|
+
|
|
127
|
+
reply = res.send(update)
|
|
128
|
+
|
|
129
|
+
# Did it work?
|
|
130
|
+
if (reply)
|
|
131
|
+
if (reply.header.rcode == 'NOERROR')
|
|
132
|
+
print "Update succeeded\n"
|
|
133
|
+
else
|
|
134
|
+
print 'Update failed: ', reply.header.rcode, "\n"
|
|
135
|
+
end
|
|
136
|
+
else
|
|
137
|
+
print 'Update failed: ', res.errorstring, "\n"
|
|
138
|
+
end
|
|
139
|
+
</pre>
|
|
140
|
+
<h2>Add an MX record for a name that already exists</h2>
|
|
141
|
+
<pre>
|
|
142
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
143
|
+
update.push("pre", yxdomain('example.com'))
|
|
144
|
+
update.push("update", Net::DNS.rr_add('example.com MX 10 mailhost.example.com'))
|
|
145
|
+
</pre>
|
|
146
|
+
<h2>Add a TXT record for a name that doesn‘t exist</h2>
|
|
147
|
+
<pre>
|
|
148
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
149
|
+
update.push("pre", nxdomain('info.example.com'))
|
|
150
|
+
update.push("update", Net::DNS.rr_add('info.example.com TXT "yabba dabba doo"'))
|
|
151
|
+
</pre>
|
|
152
|
+
<h2>Delete all A records for a name</h2>
|
|
153
|
+
<pre>
|
|
154
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
155
|
+
update.push("pre", yxrrset('foo.example.com A'))
|
|
156
|
+
update.push("update", Net::DNS.rr_del('foo.example.com A'))
|
|
157
|
+
</pre>
|
|
158
|
+
<h2>Delete all RRs for a name</h2>
|
|
159
|
+
<pre>
|
|
160
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
161
|
+
update.push("pre", yxdomain('byebye.example.com'))
|
|
162
|
+
$update->push("update", Net::DNS.rr_del('byebye.example.com'))
|
|
163
|
+
</pre>
|
|
164
|
+
<h2>Perform a signed update</h2>
|
|
165
|
+
<pre>
|
|
166
|
+
key_name = 'tsig-key'
|
|
167
|
+
key = 'awwLOtRfpGE+rRKF2+DEiw=='
|
|
168
|
+
|
|
169
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
170
|
+
update.push('update', Net::DNS.rr_add('foo.example.com A 10.1.2.3'))
|
|
171
|
+
update.push('update', Net::DNS.rr_add('bar.example.com A 10.4.5.6'))
|
|
172
|
+
update.sign_tsig(key_name, key)
|
|
173
|
+
</pre>
|
|
174
|
+
<h2>Another way to perform a signed update</h2>
|
|
175
|
+
<pre>
|
|
176
|
+
key_name = 'tsig-key'
|
|
177
|
+
key = 'awwLOtRfpGE+rRKF2+DEiw=='
|
|
178
|
+
|
|
179
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
180
|
+
update.push('update', Net::DNS.rr_add('foo.example.com A 10.1.2.3'))
|
|
181
|
+
update.push('update', Net::DNS.rr_add('bar.example.com A 10.4.5.6'))
|
|
182
|
+
update.push('additional', Net::DNS::RR.create("#{key_name} TSIG #{key}"))
|
|
183
|
+
</pre>
|
|
184
|
+
<h2>Perform a signed update with a customized TSIG record</h2>
|
|
185
|
+
<pre>
|
|
186
|
+
key_name = 'tsig-key'
|
|
187
|
+
key = 'awwLOtRfpGE+rRKF2+DEiw=='
|
|
188
|
+
|
|
189
|
+
tsig = Net::DNS::RR.create("#{key_name} TSIG #{key}")
|
|
190
|
+
tsig.fudge=(60)
|
|
191
|
+
|
|
192
|
+
update = Net::DNS::Update.new_from_values('example.com')
|
|
193
|
+
update.push('update', Net::DNS.rr_add('foo.example.com A 10.1.2.3'))
|
|
194
|
+
update.push('update', Net::DNS.rr_add('bar.example.com A 10.4.5.6'))
|
|
195
|
+
update.push('additional', tsig)
|
|
196
|
+
</pre>
|
|
197
|
+
<h1>BUGS</h1>
|
|
198
|
+
<p>
|
|
199
|
+
This code is still under development. Please use with caution on production
|
|
200
|
+
nameservers.
|
|
201
|
+
</p>
|
|
202
|
+
<h1>COPYRIGHT</h1>
|
|
203
|
+
<p>
|
|
204
|
+
Copyright (c) 1997-2002 Michael Fuhr.
|
|
205
|
+
</p>
|
|
206
|
+
<p>
|
|
207
|
+
Portions Copyright (c) 2002-2004 Chris Reinhardt.
|
|
208
|
+
</p>
|
|
209
|
+
<p>
|
|
210
|
+
Ruby version Copyright (c) 2006 AlexD (Nominet UK)
|
|
211
|
+
</p>
|
|
212
|
+
<p>
|
|
213
|
+
All rights reserved. This program is free software; you may redistribute it
|
|
214
|
+
and/or modify it under the same terms as Perl itself.
|
|
215
|
+
</p>
|
|
216
|
+
<h1>SEE ALSO</h1>
|
|
217
|
+
<p>
|
|
218
|
+
<a href="../DNS.html">Net::DNS</a>, <a
|
|
219
|
+
href="Resolver.html">Net::DNS::Resolver</a>, <a
|
|
220
|
+
href="Header.html">Net::DNS::Header</a>, <a
|
|
221
|
+
href="Packet.html">Net::DNS::Packet</a>, <a
|
|
222
|
+
href="Question.html">Net::DNS::Question</a>, <a
|
|
223
|
+
href="RR.html">Net::DNS::RR</a>, RFC 2136, RFC 2845
|
|
224
|
+
</p>
|
|
225
|
+
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
</div>
|
|
230
|
+
|
|
231
|
+
<div id="method-list">
|
|
232
|
+
<h3 class="section-bar">Methods</h3>
|
|
233
|
+
|
|
234
|
+
<div class="name-list">
|
|
235
|
+
<a href="#M000524">new_from_values</a>
|
|
236
|
+
</div>
|
|
237
|
+
</div>
|
|
238
|
+
|
|
239
|
+
</div>
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
<!-- if includes -->
|
|
243
|
+
|
|
244
|
+
<div id="section">
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
<!-- if method_list -->
|
|
254
|
+
<div id="methods">
|
|
255
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
256
|
+
|
|
257
|
+
<div id="method-M000524" class="method-detail">
|
|
258
|
+
<a name="M000524"></a>
|
|
259
|
+
|
|
260
|
+
<div class="method-heading">
|
|
261
|
+
<a href="Update.src/M000524.html" target="Code" class="method-signature"
|
|
262
|
+
onclick="popupCode('Update.src/M000524.html');return false;">
|
|
263
|
+
<span class="method-name">new_from_values</span><span class="method-args">(zone=nil, klass=nil)</span>
|
|
264
|
+
</a>
|
|
265
|
+
</div>
|
|
266
|
+
|
|
267
|
+
<div class="method-description">
|
|
268
|
+
<p>
|
|
269
|
+
Returns a <a href="Update.html">Net::DNS::Update</a> object suitable for
|
|
270
|
+
performing a <a href="../DNS.html">DNS</a> dynamic update. Specifically, it
|
|
271
|
+
creates a packet with the header opcode set to UPDATE and the zone record
|
|
272
|
+
type to SOA (per RFC 2136, Section 2.3).
|
|
273
|
+
</p>
|
|
274
|
+
<p>
|
|
275
|
+
Programs must use the push method to add RRs to the prerequisite, update,
|
|
276
|
+
and additional sections before performing the update.
|
|
277
|
+
</p>
|
|
278
|
+
<p>
|
|
279
|
+
Arguments are the zone name and the class. If the zone is omitted, the
|
|
280
|
+
default domain will be taken from the resolver configuration. If the class
|
|
281
|
+
is omitted, it defaults to IN.
|
|
282
|
+
</p>
|
|
283
|
+
<pre>
|
|
284
|
+
packet = Net::DNS::Update.new_from_values
|
|
285
|
+
packet = Net::DNS::Update.new('example.com')
|
|
286
|
+
packet = Net::DNS::Update.new('example.com', 'HS')
|
|
287
|
+
</pre>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
</div>
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
<div id="validator-badges">
|
|
299
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
300
|
+
</div>
|
|
301
|
+
|
|
302
|
+
</body>
|
|
303
|
+
</html>
|