From: Charles-Henri Bruyand Date: Mon, 11 Oct 2021 09:01:52 +0000 (+0200) Subject: fix fuzz_target_dnsdistcache build X-Git-Tag: dnsdist-1.7.0-alpha2~25^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=952ca332cccc4c4dad17aaf0a43238be0719a30d;p=thirdparty%2Fpdns.git fix fuzz_target_dnsdistcache build --- diff --git a/pdns/Makefile.am b/pdns/Makefile.am index fa995c5c11..204a12ca85 100644 --- a/pdns/Makefile.am +++ b/pdns/Makefile.am @@ -1580,7 +1580,7 @@ fuzz_target_dnsdistcache_SOURCES = \ dnsdist-cache.cc dnsdist-cache.hh \ dnsdist-ecs.cc dnsdist-ecs.hh \ dnsdist-idstate.hh \ - dnsdist-protocols.hh \ + dnsdist-protocols.cc dnsdist-protocols.hh \ dnslabeltext.cc \ dnsname.cc dnsname.hh \ dnsparser.cc dnsparser.hh \ diff --git a/pdns/dnsdist-protocols.cc b/pdns/dnsdist-protocols.cc new file mode 100644 index 0000000000..e9c66ed4f2 --- /dev/null +++ b/pdns/dnsdist-protocols.cc @@ -0,0 +1,83 @@ +/* + * This file is part of PowerDNS or dnsdist. + * Copyright -- PowerDNS.COM B.V. and its contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * In addition, for the avoidance of any doubt, permission is granted to + * link this program with OpenSSL and to (re)distribute the binaries + * produced as the result of such linking. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#include "dnsdist-protocols.hh" + +namespace dnsdist +{ +static const std::vector names = { + "DoUDP", + "DoTCP", + "DNSCryptUDP", + "DNSCryptTCP", + "DoT", + "DoH"}; + +static const std::vector prettyNames = { + "Do53 UDP", + "Do53 TCP", + "DNSCrypt UDP", + "DNSCrypt TCP", + "DNS over TLS", + "DNS over HTTPS"}; + +Protocol::Protocol(uint8_t protocol) : + d_protocol(protocol) +{ +} +Protocol& Protocol::operator=(const char* s) +{ + std::string str(s); + d_protocol = Protocol::fromString(str); + + return *this; +} +Protocol& Protocol::operator=(const std::string& s) +{ + d_protocol = Protocol::fromString(s); + + return *this; +} +Protocol::operator uint8_t() const +{ + return d_protocol; +} +const std::string& Protocol::toString() const +{ + return names.at(static_cast(d_protocol)); +} +const std::string& Protocol::toPrettyString() const +{ + return prettyNames.at(static_cast(d_protocol)); +} +uint8_t Protocol::fromString(const std::string& s) +{ + const auto& it = std::find(names.begin(), names.end(), s); + if (it != names.end()) { + return std::distance(names.begin(), it); + } + + return 0; +} +} diff --git a/pdns/dnsdistdist/dnsdist-protocols.cc b/pdns/dnsdistdist/dnsdist-protocols.cc deleted file mode 100644 index e9c66ed4f2..0000000000 --- a/pdns/dnsdistdist/dnsdist-protocols.cc +++ /dev/null @@ -1,83 +0,0 @@ -/* - * This file is part of PowerDNS or dnsdist. - * Copyright -- PowerDNS.COM B.V. and its contributors - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * In addition, for the avoidance of any doubt, permission is granted to - * link this program with OpenSSL and to (re)distribute the binaries - * produced as the result of such linking. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include - -#include "dnsdist-protocols.hh" - -namespace dnsdist -{ -static const std::vector names = { - "DoUDP", - "DoTCP", - "DNSCryptUDP", - "DNSCryptTCP", - "DoT", - "DoH"}; - -static const std::vector prettyNames = { - "Do53 UDP", - "Do53 TCP", - "DNSCrypt UDP", - "DNSCrypt TCP", - "DNS over TLS", - "DNS over HTTPS"}; - -Protocol::Protocol(uint8_t protocol) : - d_protocol(protocol) -{ -} -Protocol& Protocol::operator=(const char* s) -{ - std::string str(s); - d_protocol = Protocol::fromString(str); - - return *this; -} -Protocol& Protocol::operator=(const std::string& s) -{ - d_protocol = Protocol::fromString(s); - - return *this; -} -Protocol::operator uint8_t() const -{ - return d_protocol; -} -const std::string& Protocol::toString() const -{ - return names.at(static_cast(d_protocol)); -} -const std::string& Protocol::toPrettyString() const -{ - return prettyNames.at(static_cast(d_protocol)); -} -uint8_t Protocol::fromString(const std::string& s) -{ - const auto& it = std::find(names.begin(), names.end(), s); - if (it != names.end()) { - return std::distance(names.begin(), it); - } - - return 0; -} -} diff --git a/pdns/dnsdistdist/dnsdist-protocols.cc b/pdns/dnsdistdist/dnsdist-protocols.cc new file mode 120000 index 0000000000..eb08cd3869 --- /dev/null +++ b/pdns/dnsdistdist/dnsdist-protocols.cc @@ -0,0 +1 @@ +../dnsdist-protocols.cc \ No newline at end of file