Browse Source

declared/defined DNSProtocolError in separate files as these would be
used in other places than the message class.


git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@1337 e5f2f494-b856-4b98-b285-d166d9295462

JINMEI Tatuya 15 years ago
parent
commit
dd4a388c97

+ 1 - 0
src/lib/dns/Makefile.am

@@ -10,6 +10,7 @@ BUILT_SOURCES = rrclass.h rrtype.h rrparamregistry.cc
 
 lib_LTLIBRARIES = libdns.la
 libdns_la_SOURCES = buffer.h name.cc name.h messagerenderer.h messagerenderer.cc
+libdns_la_SOURCES += exceptions.h exceptions.cc
 libdns_la_SOURCES += rrparamregistry.h rrparamregistry.cc
 libdns_la_SOURCES += rrclass.h rrclass.cc rrtype.h rrtype.cc rrttl.h rrttl.cc
 libdns_la_SOURCES += rdata.h rdata.cc

+ 34 - 0
src/lib/dns/exceptions.cc

@@ -0,0 +1,34 @@
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+// $Id$
+
+#include "exceptions.h"
+#include "message.h"
+
+namespace isc {
+namespace dns {
+
+const Rcode&
+DNSMessageFORMERR::getRcode() const {
+    return (Rcode::FORMERR());
+}
+
+const Rcode&
+DNSMessageBADVERS::getRcode() const {
+    return (Rcode::BADVERS());
+}
+
+} // end of namespace dns
+} // end of namespace isc

+ 61 - 0
src/lib/dns/exceptions.h

@@ -0,0 +1,61 @@
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+// $Id$
+
+// XXX: we have another exceptions.h, so we need to use a prefix "DNS_" in
+// the include guard.  More preferably, we should define a consistent naming
+// style for the header guide (e.g. module-name_file-name_H) throughout the
+// package.
+
+#ifndef __DNS_EXCEPTIONS_H
+#define __DNS_EXCEPTIONS_H 1
+
+#include <exceptions/exceptions.h>
+
+namespace isc {
+namespace dns {
+
+///
+/// \brief A standard DNS module exception ...[TBD]
+///
+class Rcode;                    // forward declaration
+
+class DNSProtocolError : public isc::Exception {
+public:
+    DNSProtocolError(const char* file, size_t line, const char* what) :
+        isc::Exception(file, line, what) {}
+    virtual const Rcode& getRcode() const = 0;
+};
+
+class DNSMessageFORMERR : public DNSProtocolError {
+public:
+    DNSMessageFORMERR(const char* file, size_t line, const char* what) :
+        DNSProtocolError(file, line, what) {}
+    virtual const Rcode& getRcode() const;
+};
+
+class DNSMessageBADVERS : public DNSProtocolError {
+public:
+    DNSMessageBADVERS(const char* file, size_t line, const char* what) :
+        DNSProtocolError(file, line, what) {}
+    virtual const Rcode& getRcode() const;
+};
+}
+}
+#endif  // __DNS_EXCEPTIONS_H
+
+// Local Variables: 
+// mode: c++
+// End: 

+ 1 - 10
src/lib/dns/message.cc

@@ -27,6 +27,7 @@
 #include <exceptions/exceptions.h>
 
 #include "buffer.h"
+#include "exceptions.h"
 #include "message.h"
 #include "messagerenderer.h"
 #include "name.h"
@@ -153,16 +154,6 @@ static const char *opcodetext[] = {
 };
 }
 
-const Rcode&
-DNSMessageFORMERR::getRcode() const {
-    return (Rcode::FORMERR());
-}
-
-const Rcode&
-DNSMessageBADVERS::getRcode() const {
-    return (Rcode::BADVERS());
-}
-
 string
 Opcode::toText() const
 {

+ 0 - 26
src/lib/dns/message.h

@@ -30,32 +30,6 @@ namespace dns {
 ///
 /// \brief A standard DNS module exception ...[TBD]
 ///
-class Rcode;                    // forward declaration
-
-class DNSProtocolError : public Exception {
-public:
-    DNSProtocolError(const char* file, size_t line, const char* what) :
-        isc::Exception(file, line, what) {}
-    virtual const Rcode& getRcode() const = 0;
-};
-
-class DNSMessageFORMERR : public DNSProtocolError {
-public:
-    DNSMessageFORMERR(const char* file, size_t line, const char* what) :
-        DNSProtocolError(file, line, what) {}
-    virtual const Rcode& getRcode() const;
-};
-
-class DNSMessageBADVERS : public DNSProtocolError {
-public:
-    DNSMessageBADVERS(const char* file, size_t line, const char* what) :
-        DNSProtocolError(file, line, what) {}
-    virtual const Rcode& getRcode() const;
-};
-
-///
-/// \brief A standard DNS module exception ...[TBD]
-///
 class MessageTooShort : public Exception {
 public:
     MessageTooShort(const char* file, size_t line, const char* what) :

+ 1 - 0
src/lib/dns/tests/message_unittest.cc

@@ -17,6 +17,7 @@
 #include <exceptions/exceptions.h>
 
 #include <dns/buffer.h>
+#include <dns/exceptions.h>
 #include <dns/message.h>
 #include <dns/messagerenderer.h>
 #include <dns/question.h>