pike.git / lib / modules / Protocols.pmod / DNS.pmod

version» Context lines:

pike.git/lib/modules/Protocols.pmod/DNS.pmod:1:   // Not yet finished -- Fredrik Hubinette       //inherit Stdio.UDP : udp;      //! Support for the Domain Name System protocol.   //! - //! RFC 1034, RFC 1035 and RFC 2308 + //! Implements @rfc{1034@}, @rfc{1035@} and @rfc{2308@}.      protected void send_reply(mapping r, mapping q, mapping m, Stdio.UDP udp);      #pike __REAL_VERSION__      // documentation taken from RFC 2136      //! No error condition.   final constant NOERROR=0;   
pike.git/lib/modules/Protocols.pmod/DNS.pmod:81:       //! Type - mailbox domain name (Obsolete)    T_MB=7,       //! Type - mail group member (Obsolete)    T_MG=8,       //! Type - mail rename domain name (Obsolete)    T_MR=9,    -  //! Type - null RR (Obsolete RFC 1035) +  //! Type - null RR (Obsolete @rfc{1035@})    T_NULL=10,    -  //! Type - well known service description (Obsolete RFC 1123, RFC 1127) +  //! Type - well known service description (Obsolete @rfc{1123@} and +  //! @rfc{1127@})    T_WKS=11,       //! Type - domain name pointer    T_PTR=12,       //! Type - host information    T_HINFO=13,       //! Type - mailbox or mail list information (Obsolete)    T_MINFO=14,       //! Type - mail exchange    T_MX=15,       //! Type - text strings    T_TXT=16,       //! Type - Responsible Person    T_RP=17,    -  //! Type - AFC database record (RFC 1183) +  //! Type - AFC database record (@rfc{1183@})    T_AFSDB=18,    -  //! Type - X25 PSDN address (RFC 1183) +  //! Type - X25 PSDN address (@rfc{1183@})    T_X25=19,    -  //! Type - ISDN address (RFC 1183) +  //! Type - ISDN address (@rfc{1183@})    T_ISDN=20,    -  //! Type - Route Through (RFC 1183) +  //! Type - Route Through (@rfc{1183@})    T_RT=21,    -  //! Type - OSI Network Service Access Protocol (RFC 1348, RFC 1637, -  //! RFC 1706) +  //! Type - OSI Network Service Access Protocol (@rfc{1348@}, +  //! @rfc{1637@} and @rfc{1706@})    T_NSAP=22,    -  //! Type - OSI NSAP Pointer (RFC 1348, Obsolete RFC 1637) +  //! Type - OSI NSAP Pointer (@rfc{1348@} and Obsolete @rfc{1637@})    T_NSAP_PTR=23,    -  //! Type - Signature (RFC 2535) +  //! Type - Signature (@rfc{2535@})    T_SIG=24,    -  //! Type - Key record (RFC 2535 and RFC 2930) +  //! Type - Key record (@rfc{2535@} and @rfc{2930@})    T_KEY=25,    -  //! Type - Pointer to X.400 mapping information (RFC 1664) +  //! Type - Pointer to X.400 mapping information (@rfc{1664@})    T_PX=26,    -  //! Type - Global Position (RFC 1712 Obsolete use LOC). +  //! Type - Global Position (@rfc{1712@} Obsolete use LOC).    T_GPOS=27,    -  //! Type - IPv6 address record (RFC 1886) +  //! Type - IPv6 address record (@rfc{1886@})    T_AAAA=28,    -  //! Type - Location Record (RFC 1876) +  //! Type - Location Record (@rfc{1876@})    T_LOC=29,    -  //! Type - Next (RFC 2065, Obsolete RFC 3755) +  //! Type - Next (@rfc{2065@} and Obsolete @rfc{3755@})    T_NXT=30,       //! Type - Nimrod Endpoint IDentifier (draft)    T_EID=31,       //! Type - Nimrod Locator (draft)    T_NIMLOC=32,    -  //! Type - Service location record (RFC 2782) +  //! Type - Service location record (@rfc{2782@})    T_SRV=33,       //! Type - ATM End System Address (af-saa-0069.000)    T_ATMA=34,    -  //! Type - NAPTR (RFC 3403) +  //! Type - NAPTR (@rfc{3403@})    T_NAPTR=35,    -  //! Type - Key eXchanger record (RFC 2230) +  //! Type - Key eXchanger record (@rfc{2230@})    T_KX=36,    -  //! Type - Certificate Record (RFC 4398) +  //! Type - Certificate Record (@rfc{4398@})    T_CERT=37,    -  //! Type - IPv6 address record (RFC 2874 Obsolete RFC 6563) +  //! Type - IPv6 address record (@rfc{2874@} and Obsolete @rfc{6563@})    T_A6=38,    -  //! Type - Delegation Name (RFC 2672) +  //! Type - Delegation Name (@rfc{2672@})    T_DNAME=39,       //! Type - Kitchen Sink (draft)    T_SINK=40,    -  //! Type - Option (RFC 2671) +  //! Type - Option (@rfc{2671@})    T_OPT=41,    -  //! Type - Address Prefix List (RFC 3123) +  //! Type - Address Prefix List (@rfc{3123@})    T_APL=42,    -  //! Type - Delegation Signer (RFC 4034) +  //! Type - Delegation Signer (@rfc{4034@})    T_DS=43,    -  //! Type - SSH Public Key Fingerprint (RFC 4255) +  //! Type - SSH Public Key Fingerprint (@rfc{4255@})    T_SSHFP=44,    -  //! Type - IPsec Key (RFC 4025) +  //! Type - IPsec Key (@rfc{4025@})    T_IPSECKEY=45,    -  //! Type - DNSSEC signature (RFC 4034) +  //! Type - DNSSEC signature (@rfc{4034@})    T_RRSIG=46,    -  //! Type - Next-Secure record (RFC 4034) +  //! Type - Next-Secure record (@rfc{4034@})    T_NSEC=47,    -  //! Type - DNS Key record (RFC 4034) +  //! Type - DNS Key record (@rfc{4034@})    T_DNSKEY=48,    -  //! Type - DHCP identifier (RFC 4701) +  //! Type - DHCP identifier (@rfc{4701@})    T_DHCID=49,    -  //! Type - NSEC record version 3 (RFC 5155) +  //! Type - NSEC record version 3 (@rfc{5155@})    T_NSEC3=50,    -  //! Type - NSEC3 parameters (RFC 5155) +  //! Type - NSEC3 parameters (@rfc{5155@})    T_NSEC3PARAM=51,    -  //! Type - TLSA certificate association (RFC 6698) +  //! Type - TLSA certificate association (@rfc{6698@})    T_TLSA=52,    -  //! Type - Host Identity Protocol (RFC 5205) +  //! Type - Host Identity Protocol (@rfc{5205@})    T_HIP=55,    -  //! Type - SPF - Sender Policy Framework (RFC 4408) +  //! Type - SPF - Sender Policy Framework (@rfc{4408@})    T_SPF=99,       // UserDB via DNS?    T_UINFO=100,    T_UID=101,    T_GID=102,    T_UNSPEC=103,    -  //! Type - Secret key record (RFC 2930) +  //! Type - Secret key record (@rfc{2930@})    T_TKEY=249,    -  //! Type - Transaction Signature (RFC 2845) +  //! Type - Transaction Signature (@rfc{2845@})    T_TSIG=250,    -  //! Type - Incremental Zone Transfer (RFC 1996) +  //! Type - Incremental Zone Transfer (@rfc{1996@})    T_IXFR=251,    -  //! Type - Authoritative Zone Transfer (RFC 1035) +  //! Type - Authoritative Zone Transfer (@rfc{1035@})    T_AXFR=252,       //! Type - Mail Box (MB, MG or MR) (Obsolete - use MX)    T_MAILB=253,       //! Type - Mail Agent (both MD and MF) (Obsolete - use MX)    T_MAILA=254,       //! Type - ANY - A request for all records    T_ANY=255,    -  //! Type - Certificate Authority Authorization (RFC 6844) +  //! Type - Certificate Authority Authorization (@rfc{6844@})    T_CAA=257,       //! Type - DNSSEC Trust Authorities (draft)    T_TA=32768,    -  //! Type - DNSSEC Lookaside Validation Record (RFC 4431) +  //! Type - DNSSEC Lookaside Validation Record (@rfc{4431@})    T_DLV=32769,   };      //! Flag bits used in @[T_DNSKEY] RRs.   enum DNSKEY_Flags {    F_ZONEKEY = 0x0100, //! Zone Key.    F_SECUREENTRYPOINT = 0x0001, //! Secure Entry Point.   };      //! DNSSEC Protocol types.   //!   //! @note - //! RFC 4034 obsoleted all but @[DNSSEC_DNSSEC]. + //! @rfc{4034@} obsoleted all but @[DNSSEC_DNSSEC].   enum DNSSEC_Protocol {    DNSSEC_TLS = 1, //! Reserved for use by TLS.    DNSSEC_EMAIL = 2, //! Reserved for use by SMTP et al. -  DNSSEC_DNSSEC = 3, //! Key for use by DNSSEC. RFC 4034 2.1.2. +  DNSSEC_DNSSEC = 3, //! Key for use by DNSSEC. @rfc{4034@} 2.1.2.    DNSSEC_IPSEC = 4, //! Reserved for use by IPSEC.    DNSSEC_ALL = 255, //! Any use. Discouraged.   };      //! DNSSEC Algorithm types.   enum DNSSES_Algorithm { -  DNSSEC_RSAMD5 = 1, //! RSA/MD5 RFC 2537. -  DNSSEC_DH = 2, //! Diffie-Hellman RFC 2539. -  DNSSEC_DSA = 3, //! DSA/SHA1 RFC 2536. +  DNSSEC_RSAMD5 = 1, //! RSA/MD5 @rfc{2537@}. +  DNSSEC_DH = 2, //! Diffie-Hellman @rfc{2539@}. +  DNSSEC_DSA = 3, //! DSA/SHA1 @rfc{2536@}.    DNSSEC_ECC = 4, -  DNSSEC_RSASHA1 = 5, //! RSA/SHA1 RFC 3110. +  DNSSEC_RSASHA1 = 5, //! RSA/SHA1 @rfc{3110@}.       DNSSEC_INDIRECT = 252, -  DNSSEC_PRIVATEDNS = 253, //! Private algorithm DNS-based RFC 4035 A.1.1. -  DNSSEC_PRIVATEOID = 254, //! Private algorithm OID-based RFC 4035 A.1.1. +  DNSSEC_PRIVATEDNS = 253, //! Private algorithm DNS-based @rfc{4035@} A.1.1. +  DNSSEC_PRIVATEOID = 254, //! Private algorithm OID-based @rfc{4035@} A.1.1.   };      //! DNSSEC Digest types.   enum DNSSEC_Digests { -  DNSSEC_SHA1 = 1, //! SHA1 digest RFC 4035 A.2. +  DNSSEC_SHA1 = 1, //! SHA1 digest @rfc{4035@} A.2.   };      int safe_bind(Stdio.UDP udp, string|int port, string|void device)   {    mixed err = catch {    udp->bind(port, device, 1);    return 1;    };   #if constant(System.EADDRINUSE)    if (errno() == System.EADDRINUSE) return 0;
pike.git/lib/modules/Protocols.pmod/DNS.pmod:601:    //! @mapping    //! @member int "preference"    //! @member string "mx"    //! @endmapping    //! @value T_HINFO    //! @mapping    //! @member string "cpu"    //! @member string "os"    //! @endmapping    //! @value T_SRV -  //! RFC 2052 and RFC 2782. +  //! @rfc{2052@} and @rfc{2782@}.    //! @mapping    //! @member int "priority"    //! @member int "weight"    //! @member int "port"    //! @member string "target"    //! @member string "service"    //! @member string "proto"    //! @member string "name"    //! @endmapping    //! @value T_A
pike.git/lib/modules/Protocols.pmod/DNS.pmod:645:    //! @member string "mname"    //! @member string "rname"    //! @member int "serial"    //! @member int "refresh"    //! @member int "retry"    //! @member int "expire"    //!    //! @member int "minimum"    //! Note: For historical reasons this entry is named    //! @expr{"minimum"@}, but it contains the TTL for -  //! negative answers (RFC 2308). +  //! negative answers (@rfc{2308@}).    //! @endmapping    //! @value T_NAPTR    //! @mapping    //! @member int "order"    //! @member int "preference"    //! @member string "flags"    //! @member string "service"    //! @member string "regexp"    //! @member string "replacement"    //! @endmapping
pike.git/lib/modules/Protocols.pmod/DNS.pmod:1696:    }    }       return ({    sizeof(names)?names[0]:0,    ips,    names,    });    }    -  //! Queries the service record (RFC 2782) from the default or given -  //! DNS server. The result is an array of arrays with the -  //! following six elements for each record. The array is -  //! sorted according to the priority of each record. +  //! Queries the service record (@rfc{2782@}) from the default or +  //! given DNS server. The result is an array of arrays with the +  //! following six elements for each record. The array is sorted +  //! according to the priority of each record.    //!    //! Each element of the array returned represents a service    //! record. Each service record contains the following:    //!    //! @returns    //! An array with the requested information about the specified    //! service.    //!    //! @array    //! @elem int priority