1
0
mirror of https://github.com/anope/anope.git synced 2026-06-30 21:26:37 +02:00

Make sockaddrs/cidr not throw on invalid ips to give us an easier/cheaper way to test for a valid IP

This commit is contained in:
Adam
2013-05-08 09:50:43 -04:00
parent 6859decfb8
commit 9b07e163c0
16 changed files with 212 additions and 244 deletions
+10
View File
@@ -151,6 +151,8 @@ class Packet : public Query
sockaddrs addrs;
addrs.ntop(AF_INET, &a);
if (!addrs.valid())
throw SocketException("Invalid IP");
record.rdata = addrs.addr();
break;
@@ -167,6 +169,8 @@ class Packet : public Query
sockaddrs addrs;
addrs.ntop(AF_INET6, &a);
if (!addrs.valid())
throw SocketException("Invalid IP");
record.rdata = addrs.addr();
break;
@@ -272,6 +276,8 @@ class Packet : public Query
if (q.type == QUERY_PTR)
{
sockaddrs ip(q.name);
if (!ip.valid())
throw SocketException("Invalid IP");
if (q.name.find(':') != Anope::string::npos)
{
@@ -347,6 +353,8 @@ class Packet : public Query
throw SocketException("Unable to pack packet");
sockaddrs a(rr.rdata);
if (!a.valid())
throw SocketException("Invalid IP");
s = htons(4);
memcpy(&output[pos], &s, 2);
@@ -362,6 +370,8 @@ class Packet : public Query
throw SocketException("Unable to pack packet");
sockaddrs a(rr.rdata);
if (!a.valid())
throw SocketException("Invalid IP");
s = htons(16);
memcpy(&output[pos], &s, 2);