diff options
-rw-r--r-- | include/dns.h | 29 | ||||
-rw-r--r-- | include/inspircd.h | 8 | ||||
-rw-r--r-- | include/socket.h | 43 | ||||
-rw-r--r-- | src/dns.cpp | 48 | ||||
-rw-r--r-- | src/inspircd.cpp | 3 | ||||
-rw-r--r-- | src/socket.cpp | 12 |
6 files changed, 3 insertions, 140 deletions
diff --git a/include/dns.h b/include/dns.h index fa4295296..3682bbe1d 100644 --- a/include/dns.h +++ b/include/dns.h @@ -159,12 +159,6 @@ enum QueryType DNS_QUERY_PTR6 = 0xFFFE }; -#ifdef IPV6 -const QueryType DNS_QUERY_FORWARD = DNS_QUERY_AAAA; -#else -const QueryType DNS_QUERY_FORWARD = DNS_QUERY_A; -#endif -const QueryType DNS_QUERY_REVERSE = DNS_QUERY_PTR; /** * Used internally to force PTR lookups to use a certain protocol scemantics, * e.g. x.x.x.x.in-addr.arpa for v4, and *.ip6.arpa for v6. @@ -237,21 +231,12 @@ class CoreExport Resolver : public Extensible * the object to go 'out of scope' and cause a segfault in the core if the result * arrives at a later time. * @param source The IP or hostname to resolve - * @param qt The query type to perform. If you just want to perform a forward - * or reverse lookup, and you don't care wether you get ipv4 or ipv6, then use - * the constants DNS_QUERY_FORWARD and DNS_QUERY_REVERSE, which automatically - * select from 'A' record or 'AAAA' record lookups. However, if you want to resolve - * a specific record type, resolution of 'A', 'AAAA', 'PTR' and 'CNAME' records + * @param qt The query type to perform. Resolution of 'A', 'AAAA', 'PTR' and 'CNAME' records * is supported. Use one of the QueryType enum values to initiate this type of * lookup. Resolution of 'AAAA' ipv6 records is always supported, regardless of * wether InspIRCd is built with ipv6 support. - * If you attempt to resolve a 'PTR' record using DNS_QUERY_PTR, and InspIRCd is - * built with ipv6 support, the 'PTR' record will be formatted to ipv6 specs, - * e.g. x.x.x.x.x....ip6.arpa. otherwise it will be formatted to ipv4 specs, - * e.g. x.x.x.x.in-addr.arpa. This translation is automatic. - * To get around this automatic behaviour, you must use one of the values - * DNS_QUERY_PTR4 or DNS_QUERY_PTR6 to force ipv4 or ipv6 behaviour on the lookup, - * irrespective of what protocol InspIRCd has been built for. + * To look up reverse records, specify one of DNS_QUERY_PTR4 or DNS_QUERY_PTR6 depending + * on the type of address you are looking up. * @param cached The constructor will set this boolean to true or false depending * on whether the DNS lookup you are attempting is cached (and not expired) or not. * If the value is cached, upon return this will be set to true, otherwise it will @@ -421,14 +406,6 @@ class CoreExport DNS : public EventHandler int GetIP(const char* name); /** - * Start the lookup of a hostname from an ip, - * always using the protocol inspircd is built for, - * e.g. use ipv6 reverse lookup when built for ipv6, - * or ipv4 lookup when built for ipv4. - */ - int GetName(const irc::sockets::insp_inaddr* ip); - - /** * Start lookup of a hostname from an ip, but * force a specific protocol to be used for the lookup * for example to perform an ipv6 reverse lookup. diff --git a/include/inspircd.h b/include/inspircd.h index 2609f3cc1..3a80d2c82 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -369,14 +369,6 @@ class CoreExport InspIRCd : public classbase */ char ReadBuffer[65535]; - /** Used when connecting clients - */ - irc::sockets::insp_sockaddr client, server; - - /** Used when connecting clients - */ - socklen_t length; - #ifdef WIN32 IPC* WindowsIPC; #endif diff --git a/include/socket.h b/include/socket.h index 66578cca6..f7590c72d 100644 --- a/include/socket.h +++ b/include/socket.h @@ -52,26 +52,6 @@ namespace irc struct sockaddr_in6 in6; } sockaddrs; - /* macros to the relevant system address description structs */ -#ifdef IPV6 - /** insp_sockaddr for ipv6 - */ - typedef struct sockaddr_in6 insp_sockaddr; - /** insp_inaddr for ipv6 - */ - typedef struct in6_addr insp_inaddr; -#define AF_FAMILY AF_INET6 - -#else - /** insp_sockaddr for ipv4 - */ - typedef struct sockaddr_in insp_sockaddr; - /** insp_inaddr for ipv4 - */ - typedef struct in_addr insp_inaddr; -#define AF_FAMILY AF_INET - -#endif /** Match raw binary data using CIDR rules. * * This function will use binary comparison to compare the @@ -111,29 +91,6 @@ namespace irc */ CoreExport bool MatchCIDR(const std::string &address, const std::string &cidr_mask, bool match_with_username); - /** Convert an insp_inaddr into human readable form. - * - * @param n An insp_inaddr (IP address) structure - * @return A human-readable address. IPV6 addresses - * will be shortened to remove fields which are 0. - */ - CoreExport const char* insp_ntoa(insp_inaddr n); - - /** Convert a human-readable address into an insp_inaddr. - * - * @param a A human-readable address - * @param n An insp_inaddr struct which the result - * will be copied into on success. - * @return This method will return a negative value if address - * does not contain a valid address family. 0 if the address is - * does not contain a valid string representing a valid network - * address. A positive value is returned if the network address - * was successfully converted. - - * or any other number upon failure. - */ - CoreExport int insp_aton(const char* a, insp_inaddr* n); - /** Create a new valid file descriptor using socket() * @return On return this function will return a value >= 0 for success, * or a negative value upon failure (negative values are invalid file diff --git a/src/dns.cpp b/src/dns.cpp index f088055f8..396cc56df 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -512,38 +512,6 @@ int DNS::GetCName(const char *alias) } /** Start lookup of an IP address to a hostname */ -int DNS::GetName(const irc::sockets::insp_inaddr *ip) -{ - char query[128]; - DNSHeader h; - int id; - int length; - -#ifdef IPV6 - unsigned char* c = (unsigned char*)&ip->s6_addr; - if (c[0] == 0 && c[1] == 0 && c[2] == 0 && c[3] == 0 && - c[4] == 0 && c[5] == 0 && c[6] == 0 && c[7] == 0 && - c[8] == 0 && c[9] == 0 && c[10] == 0xFF && c[11] == 0xFF) - sprintf(query,"%d.%d.%d.%d.in-addr.arpa",c[15],c[14],c[13],c[12]); - else - DNS::MakeIP6Int(query, (in6_addr*)ip); -#else - unsigned char* c = (unsigned char*)&ip->s_addr; - sprintf(query,"%d.%d.%d.%d.in-addr.arpa",c[3],c[2],c[1],c[0]); -#endif - - if ((length = this->MakePayload(query, DNS_QUERY_PTR, 1, (unsigned char*)&h.payload)) == -1) - return -1; - - DNSRequest* req = this->AddQuery(&h, id, irc::sockets::insp_ntoa(*ip)); - - if ((!req) || (req->SendRequests(&h, length, DNS_QUERY_PTR) == -1)) - return -1; - - return id; -} - -/** Start lookup of an IP address to a hostname */ int DNS::GetNameForce(const char *ip, ForceProtocol fp) { char query[128]; @@ -959,28 +927,12 @@ Resolver::Resolver(InspIRCd* Instance, const std::string &source, QueryType qt, } } - irc::sockets::insp_inaddr binip; - switch (querytype) { case DNS_QUERY_A: this->myid = ServerInstance->Res->GetIP(source.c_str()); break; - case DNS_QUERY_PTR: - if (irc::sockets::insp_aton(source.c_str(), &binip) > 0) - { - /* Valid ip address */ - this->myid = ServerInstance->Res->GetName(&binip); - } - else - { - this->OnError(RESOLVER_BADIP, "Bad IP address for reverse lookup"); - throw ModuleException("Resolver: Bad IP address"); - return; - } - break; - case DNS_QUERY_PTR4: querytype = DNS_QUERY_PTR; this->myid = ServerInstance->Res->GetNameForce(source.c_str(), PROTOCOL_IPV4); diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 3b41d787b..d7239e0b4 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -378,9 +378,6 @@ InspIRCd::InspIRCd(int argc, char** argv) // Initialise TIME this->TIME = time(NULL); - memset(&server, 0, sizeof(server)); - memset(&client, 0, sizeof(client)); - // This must be created first, so other parts of Insp can use it while starting up this->Logs = new LogManager(this); diff --git a/src/socket.cpp b/src/socket.cpp index d3e5fb072..7d44b7e37 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -248,18 +248,6 @@ int InspIRCd::BindPorts(FailedPortList &failed_ports) return bound; } -const char* irc::sockets::insp_ntoa(insp_inaddr n) -{ - static char buf[1024]; - inet_ntop(AF_FAMILY, &n, buf, sizeof(buf)); - return buf; -} - -int irc::sockets::insp_aton(const char* a, insp_inaddr* n) -{ - return inet_pton(AF_FAMILY, a, n); -} - int irc::sockets::aptosa(const char* addr, int port, irc::sockets::sockaddrs* sa) { memset(sa, 0, sizeof(*sa)); |