/*
- PowerDNS Versatile Database Driven Nameserver
- Copyright (C) 2002 - 2007 PowerDNS.COM BV
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2
- as published by the Free Software Foundation
-
-
- 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 St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-#include "utility.hh"
+ * 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 "dns.hh"
#include <iostream>
#include <string>
#include <sstream>
#include "qtype.hh"
#include "misc.hh"
-#include "lock.hh"
+
+static_assert(sizeof(QType) == 2, "QType is not 2 bytes in size, something is wrong!");
vector<QType::namenum> QType::names;
// XXX FIXME we need to do something with initializer order here!
QType::QType()
{
+ code = 0;
}
bool QType::isSupportedType() {
int QType::chartocode(const char *p)
{
- static QType qt;
+ string P = toUpper(p);
vector<namenum>::iterator pos;
+
for(pos=names.begin(); pos < names.end(); ++pos)
- if(pos->first == p)
+ if(pos->first == P)
return pos->second;
-
+
if(*p=='#') {
return atoi(p+1);
}
- if(boost::starts_with(p, "TYPE"))
+ if(boost::starts_with(P, "TYPE"))
return atoi(p+4);
-
+
return 0;
}
}
-QType::QType(uint16_t n)
+QType::QType(uint16_t n): QType()
{
- QType();
code=n;
}