diff options
author | Adam <Adam@anope.org> | 2012-02-14 15:13:27 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-02-14 15:13:27 -0500 |
commit | a9772cde21407c89abd161d51aff45267f87b1fb (patch) | |
tree | 9e57ba6c121d3843888917d968dd4f5d030b57cf /src/dns.cpp | |
parent | 086790d6331357022f4da17c76b26b9fc6e2ad90 (diff) |
Clean up and reorganize our header files
Diffstat (limited to 'src/dns.cpp')
-rw-r--r-- | src/dns.cpp | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/dns.cpp b/src/dns.cpp index fc1ab37df..d9010b8f9 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -1,4 +1,23 @@ +/* + * + * (C) 2003-2012 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + */ + #include "services.h" +#include "anope.h" +#include "dns.h" +#include "sockets.h" +#include "socketengine.h" + +#include <sys/types.h> +#include <sys/socket.h> +#include <netdb.h> DNSManager *DNSEngine = NULL; @@ -320,11 +339,10 @@ unsigned short DNSPacket::Pack(unsigned char *output, unsigned short output_size if (q.type == DNS_QUERY_PTR) { + sockaddrs ip(q.name); + if (q.name.find(':') != Anope::string::npos) { - sockaddrs ip; - ip.pton(AF_INET6, q.name); - static const char *const hex = "0123456789abcdef"; char reverse_ip[128]; unsigned reverse_ip_count = 0; @@ -342,9 +360,6 @@ unsigned short DNSPacket::Pack(unsigned char *output, unsigned short output_size } else { - sockaddrs ip; - ip.pton(AF_INET, q.name); - unsigned long forward = ip.sa4.sin_addr.s_addr; in_addr reverse; reverse.s_addr = forward << 24 | (forward & 0xFF00) << 8 | (forward & 0xFF0000) >> 8 | forward >> 24; @@ -399,8 +414,7 @@ unsigned short DNSPacket::Pack(unsigned char *output, unsigned short output_size if (pos + 6 > output_size) throw SocketException("Unable to pack packet"); - sockaddrs addr; - addr.pton(AF_INET, rr.rdata); + sockaddrs addr(rr.rdata); s = htons(4); memcpy(&output[pos], &s, 2); @@ -415,8 +429,7 @@ unsigned short DNSPacket::Pack(unsigned char *output, unsigned short output_size if (pos + 18 > output_size) throw SocketException("Unable to pack packet"); - sockaddrs addr; - addr.pton(AF_INET6, rr.rdata); + sockaddrs addr(rr.rdata); s = htons(16); memcpy(&output[pos], &s, 2); |