result.h revision ccad3c9ecbe8a1060ff7b407a318ccd592de536e
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews/*
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * Copyright (C) 1998, 1999 Internet Software Consortium.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User *
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * Permission to use, copy, modify, and distribute this software for any
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User * purpose with or without fee is hereby granted, provided that the above
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User * copyright notice and this permission notice appear in all copies.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User *
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User * SOFTWARE.
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User */
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#ifndef DNS_RESULT_H
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_RESULT_H 1
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#include <isc/lang.h>
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#include <isc/result.h>
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#include <isc/resultclass.h>
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#include <dns/types.h>
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox UserISC_LANG_BEGINDECLS
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox Usertypedef isc_result_t dns_result_t; /* XXXRTH for legacy use only */
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User/*
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * XXXRTH Legacy result codes, to be eliminated before public release.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User */
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_SUCCESS ISC_R_SUCCESS
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_NOMEMORY ISC_R_NOMEMORY
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOSPACE ISC_R_NOSPACE
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_NOTIMPLEMENTED ISC_R_NOTIMPLEMENTED
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOMORE ISC_R_NOMORE
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_EXISTS ISC_R_EXISTS
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOTFOUND ISC_R_NOTFOUND
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox User#define DNS_R_BADBASE64 ISC_R_BADBASE64
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_TIMEDOUT ISC_R_TIMEDOUT
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_CANCELED ISC_R_CANCELED
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User#define DNS_R_UNEXPECTED ISC_R_UNEXPECTED
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_NXRDATASET DNS_R_NXRRSET
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User/*
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * DNS library result codes
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User */
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_LABELTOOLONG (ISC_RESULTCLASS_DNS + 0)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADESCAPE (ISC_RESULTCLASS_DNS + 1)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADBITSTRING (ISC_RESULTCLASS_DNS + 2)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BITSTRINGTOOLONG (ISC_RESULTCLASS_DNS + 3)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_EMPTYLABEL (ISC_RESULTCLASS_DNS + 4)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADDOTTEDQUAD (ISC_RESULTCLASS_DNS + 5)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_UNEXPECTEDEND (ISC_RESULTCLASS_DNS + 6)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_UNKNOWN (ISC_RESULTCLASS_DNS + 7)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADLABELTYPE (ISC_RESULTCLASS_DNS + 8)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADPOINTER (ISC_RESULTCLASS_DNS + 9)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_TOOMANYHOPS (ISC_RESULTCLASS_DNS + 10)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_DISALLOWED (ISC_RESULTCLASS_DNS + 11)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_EXTRATOKEN (ISC_RESULTCLASS_DNS + 12)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_EXTRADATA (ISC_RESULTCLASS_DNS + 13)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_TEXTTOOLONG (ISC_RESULTCLASS_DNS + 14)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_RANGE (ISC_RESULTCLASS_DNS + 15)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_SYNTAX (ISC_RESULTCLASS_DNS + 16)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADCKSUM (ISC_RESULTCLASS_DNS + 17)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADAAAA (ISC_RESULTCLASS_DNS + 18)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOOWNER (ISC_RESULTCLASS_DNS + 19)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_NOTTL (ISC_RESULTCLASS_DNS + 20)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_BADCLASS (ISC_RESULTCLASS_DNS + 21)
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User#define DNS_R_UNEXPECTEDTOKEN (ISC_RESULTCLASS_DNS + 22)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_PARTIALMATCH (ISC_RESULTCLASS_DNS + 23)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_NEWORIGIN (ISC_RESULTCLASS_DNS + 24)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_UNCHANGED (ISC_RESULTCLASS_DNS + 25)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_BADTTL (ISC_RESULTCLASS_DNS + 26)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_NOREDATA (ISC_RESULTCLASS_DNS + 27)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_CONTINUE (ISC_RESULTCLASS_DNS + 28)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_DELEGATION (ISC_RESULTCLASS_DNS + 29)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_GLUE (ISC_RESULTCLASS_DNS + 30)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_DNAME (ISC_RESULTCLASS_DNS + 31)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_CNAME (ISC_RESULTCLASS_DNS + 32)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADDB (ISC_RESULTCLASS_DNS + 33)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_ZONECUT (ISC_RESULTCLASS_DNS + 34)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADZONE (ISC_RESULTCLASS_DNS + 35) /* XXX MPA*/
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_MOREDATA (ISC_RESULTCLASS_DNS + 36)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_UPTODATE (ISC_RESULTCLASS_DNS + 37)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_TSIGVERIFYFAILURE (ISC_RESULTCLASS_DNS + 38)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_TSIGERRORSET (ISC_RESULTCLASS_DNS + 39)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_SIGINVALID (ISC_RESULTCLASS_DNS + 40)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_SIGEXPIRED (ISC_RESULTCLASS_DNS + 41)
9d557856c2a19ec95ee73245f60a92f8675cf5baTinderbox User#define DNS_R_SIGFUTURE (ISC_RESULTCLASS_DNS + 42)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_KEYUNAUTHORIZED (ISC_RESULTCLASS_DNS + 43)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_INVALIDTIME (ISC_RESULTCLASS_DNS + 44)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User#define DNS_R_NRESULTS 45 /* Number of results */
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User/*
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User * DNS wire format rcodes
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User *
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * By making these their own class we can easily convert them into the
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User * wire-format rcode value simply by masking off the resultclass
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User */
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOERROR (ISC_RESULTCLASS_DNSRCODE + 0)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_FORMERR (ISC_RESULTCLASS_DNSRCODE + 1)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_SERVFAIL (ISC_RESULTCLASS_DNSRCODE + 2)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NXDOMAIN (ISC_RESULTCLASS_DNSRCODE + 3)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOTIMP (ISC_RESULTCLASS_DNSRCODE + 4)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_REFUSED (ISC_RESULTCLASS_DNSRCODE + 5)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_YXDOMAIN (ISC_RESULTCLASS_DNSRCODE + 6)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_YXRRSET (ISC_RESULTCLASS_DNSRCODE + 7)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_NXRRSET (ISC_RESULTCLASS_DNSRCODE + 8)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOTAUTH (ISC_RESULTCLASS_DNSRCODE + 9)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_NOTZONE (ISC_RESULTCLASS_DNSRCODE + 10)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User#define DNS_R_BADVERS (ISC_RESULTCLASS_DNSRCODE + 16)
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#define DNS_R_NRCODERESULTS 17 /* Number of rcode results */
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox User
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox User#define DNS_RESULT_ISRCODE(result) \
a24330c4805a224191ab687d0291963062fe3355Tinderbox User (ISC_RESULTCLASS_INCLASS(ISC_RESULTCLASS_DNSRCODE, (result)))
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox User
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox Userchar * dns_result_totext(isc_result_t);
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox Uservoid dns_result_register(void);
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox Userdns_rcode_t dns_result_torcode(isc_result_t result);
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox User
3241ddcf9354c5ab50f4df5a656e72a5c68e172bTinderbox UserISC_LANG_ENDDECLS
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#endif /* DNS_RESULT_H */
1ebb25608fa10737ea27abd4e0481707ccd45581Tinderbox User