lib/addns: move DNS client library to the main directory.
[sfrench/samba-autobuild/.git] / lib / addns / dnserr.h
diff --git a/lib/addns/dnserr.h b/lib/addns/dnserr.h
new file mode 100644 (file)
index 0000000..9e049ac
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+  Error codes for Linux DNS client library implementation
+  
+  Copyright (C) 2006 Krishna Ganugapati <krishnag@centeris.com>
+  Copyright (C) 2006 Gerald Carter <jerry@samba.org>
+
+     ** NOTE! The following LGPL license applies to the libaddns
+     ** library. This does NOT imply that all of Samba is released
+     ** under the LGPL
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version.
+
+  This library 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
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _DNSERR_H
+#define _DNSERR_H
+
+
+/* The Splint code analysis tool (http://www.splint.org.) doesn't 
+   like immediate structures. */
+   
+#ifdef _SPLINT_
+#undef HAVE_IMMEDIATE_STRUCTURES
+#endif
+
+/* Setup the DNS_ERROR typedef.  Technique takes from nt_status.h */
+
+#if defined(HAVE_IMMEDIATE_STRUCTURES)
+typedef struct {uint32 v;} DNS_ERROR;
+#define ERROR_DNS(x) ((DNS_ERROR) { x })
+#define ERROR_DNS_V(x) ((x).v)
+#else
+typedef uint32 DNS_ERROR;
+#define ERROR_DNS(x) (x)
+#define ERROR_DNS_V(x) (x)
+#endif
+
+#define ERR_DNS_IS_OK(x)   (ERROR_DNS_V(x) == 0)
+#define ERR_DNS_EQUAL(x,y) (ERROR_DNS_V(x) == ERROR_DNS_V(y))
+
+/*************************************************
+ * Define the error codes here
+ *************************************************/
+
+#define ERROR_DNS_SUCCESS              ERROR_DNS(0) 
+#define ERROR_DNS_RECORD_NOT_FOUND     ERROR_DNS(1)
+#define ERROR_DNS_BAD_RESPONSE         ERROR_DNS(2)
+#define ERROR_DNS_INVALID_PARAMETER    ERROR_DNS(3)
+#define ERROR_DNS_NO_MEMORY            ERROR_DNS(4)
+#define ERROR_DNS_INVALID_NAME_SERVER  ERROR_DNS(5)
+#define ERROR_DNS_CONNECTION_FAILED    ERROR_DNS(6)
+#define ERROR_DNS_GSS_ERROR            ERROR_DNS(7)
+#define ERROR_DNS_INVALID_NAME         ERROR_DNS(8)
+#define ERROR_DNS_INVALID_MESSAGE      ERROR_DNS(9)
+#define ERROR_DNS_SOCKET_ERROR         ERROR_DNS(10)
+#define ERROR_DNS_UPDATE_FAILED                ERROR_DNS(11)
+
+/*
+ * About to be removed, transitional error
+ */
+#define ERROR_DNS_UNSUCCESSFUL         ERROR_DNS(999)
+
+
+#define ERROR_BAD_RESPONSE             1
+#define ERROR_RECORD_NOT_FOUND         2
+#define ERROR_OUTOFMEMORY              8
+#if !defined(ERROR_INVALID_PARAMETER)
+#define ERROR_INVALID_PARAMETER         87
+#endif
+
+/*
+ * About to be removed, transitional error
+ */
+#define ERROR_UNSUCCESSFUL 999
+
+#endif /* _DNSERR_H */
+