1efcad6b7SDag-Erling Smørgrav /* OPENBSD BASED ON : include/netdb.h */ 2efcad6b7SDag-Erling Smørgrav 3d95e11bfSDag-Erling Smørgrav /* $OpenBSD: getrrsetbyname.c,v 1.4 2001/08/16 18:16:43 ho Exp $ */ 4d95e11bfSDag-Erling Smørgrav 5d95e11bfSDag-Erling Smørgrav /* 6d95e11bfSDag-Erling Smørgrav * Copyright (c) 2001 Jakob Schlyter. All rights reserved. 7d95e11bfSDag-Erling Smørgrav * 8d95e11bfSDag-Erling Smørgrav * Redistribution and use in source and binary forms, with or without 9d95e11bfSDag-Erling Smørgrav * modification, are permitted provided that the following conditions 10d95e11bfSDag-Erling Smørgrav * are met: 11d95e11bfSDag-Erling Smørgrav * 12d95e11bfSDag-Erling Smørgrav * 1. Redistributions of source code must retain the above copyright 13d95e11bfSDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer. 14d95e11bfSDag-Erling Smørgrav * 15d95e11bfSDag-Erling Smørgrav * 2. Redistributions in binary form must reproduce the above copyright 16d95e11bfSDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer in the 17d95e11bfSDag-Erling Smørgrav * documentation and/or other materials provided with the distribution. 18d95e11bfSDag-Erling Smørgrav * 19d95e11bfSDag-Erling Smørgrav * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 20d95e11bfSDag-Erling Smørgrav * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 21d95e11bfSDag-Erling Smørgrav * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 22d95e11bfSDag-Erling Smørgrav * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 23d95e11bfSDag-Erling Smørgrav * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 24d95e11bfSDag-Erling Smørgrav * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25d95e11bfSDag-Erling Smørgrav * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26d95e11bfSDag-Erling Smørgrav * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27d95e11bfSDag-Erling Smørgrav * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28d95e11bfSDag-Erling Smørgrav * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29d95e11bfSDag-Erling Smørgrav */ 30d95e11bfSDag-Erling Smørgrav 31d95e11bfSDag-Erling Smørgrav /* 32d95e11bfSDag-Erling Smørgrav * Portions Copyright (c) 1999-2001 Internet Software Consortium. 33d95e11bfSDag-Erling Smørgrav * 34d95e11bfSDag-Erling Smørgrav * Permission to use, copy, modify, and distribute this software for any 35d95e11bfSDag-Erling Smørgrav * purpose with or without fee is hereby granted, provided that the above 36d95e11bfSDag-Erling Smørgrav * copyright notice and this permission notice appear in all copies. 37d95e11bfSDag-Erling Smørgrav * 38d95e11bfSDag-Erling Smørgrav * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM 39d95e11bfSDag-Erling Smørgrav * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL 40d95e11bfSDag-Erling Smørgrav * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL 41d95e11bfSDag-Erling Smørgrav * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, 42d95e11bfSDag-Erling Smørgrav * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 43d95e11bfSDag-Erling Smørgrav * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 44d95e11bfSDag-Erling Smørgrav * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 45d95e11bfSDag-Erling Smørgrav * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 46d95e11bfSDag-Erling Smørgrav */ 47d95e11bfSDag-Erling Smørgrav 48d95e11bfSDag-Erling Smørgrav #ifndef _GETRRSETBYNAME_H 49d95e11bfSDag-Erling Smørgrav #define _GETRRSETBYNAME_H 50d95e11bfSDag-Erling Smørgrav 51d95e11bfSDag-Erling Smørgrav #include "includes.h" 52d95e11bfSDag-Erling Smørgrav 53efcad6b7SDag-Erling Smørgrav #ifndef HAVE_GETRRSETBYNAME 54d95e11bfSDag-Erling Smørgrav 55d95e11bfSDag-Erling Smørgrav #include <sys/types.h> 56d95e11bfSDag-Erling Smørgrav #include <netinet/in.h> 57d95e11bfSDag-Erling Smørgrav #include <arpa/nameser.h> 58d95e11bfSDag-Erling Smørgrav #include <netdb.h> 59d95e11bfSDag-Erling Smørgrav #include <resolv.h> 60d95e11bfSDag-Erling Smørgrav 61efcad6b7SDag-Erling Smørgrav #ifndef HFIXEDSZ 62efcad6b7SDag-Erling Smørgrav #define HFIXEDSZ 12 63efcad6b7SDag-Erling Smørgrav #endif 64efcad6b7SDag-Erling Smørgrav 65d4af9e69SDag-Erling Smørgrav #ifndef T_RRSIG 66d4af9e69SDag-Erling Smørgrav #define T_RRSIG 46 67efcad6b7SDag-Erling Smørgrav #endif 68efcad6b7SDag-Erling Smørgrav 69d95e11bfSDag-Erling Smørgrav /* 70d95e11bfSDag-Erling Smørgrav * Flags for getrrsetbyname() 71d95e11bfSDag-Erling Smørgrav */ 72d95e11bfSDag-Erling Smørgrav #ifndef RRSET_VALIDATED 73d95e11bfSDag-Erling Smørgrav # define RRSET_VALIDATED 1 74d95e11bfSDag-Erling Smørgrav #endif 75d95e11bfSDag-Erling Smørgrav 76d95e11bfSDag-Erling Smørgrav /* 77d95e11bfSDag-Erling Smørgrav * Return codes for getrrsetbyname() 78d95e11bfSDag-Erling Smørgrav */ 79d95e11bfSDag-Erling Smørgrav #ifndef ERRSET_SUCCESS 80d95e11bfSDag-Erling Smørgrav # define ERRSET_SUCCESS 0 81d95e11bfSDag-Erling Smørgrav # define ERRSET_NOMEMORY 1 82d95e11bfSDag-Erling Smørgrav # define ERRSET_FAIL 2 83d95e11bfSDag-Erling Smørgrav # define ERRSET_INVAL 3 84d95e11bfSDag-Erling Smørgrav # define ERRSET_NONAME 4 85d95e11bfSDag-Erling Smørgrav # define ERRSET_NODATA 5 86d95e11bfSDag-Erling Smørgrav #endif 87d95e11bfSDag-Erling Smørgrav 88d95e11bfSDag-Erling Smørgrav struct rdatainfo { 89d95e11bfSDag-Erling Smørgrav unsigned int rdi_length; /* length of data */ 90d95e11bfSDag-Erling Smørgrav unsigned char *rdi_data; /* record data */ 91d95e11bfSDag-Erling Smørgrav }; 92d95e11bfSDag-Erling Smørgrav 93d95e11bfSDag-Erling Smørgrav struct rrsetinfo { 94d95e11bfSDag-Erling Smørgrav unsigned int rri_flags; /* RRSET_VALIDATED ... */ 95d95e11bfSDag-Erling Smørgrav unsigned int rri_rdclass; /* class number */ 96d95e11bfSDag-Erling Smørgrav unsigned int rri_rdtype; /* RR type number */ 97d95e11bfSDag-Erling Smørgrav unsigned int rri_ttl; /* time to live */ 98d95e11bfSDag-Erling Smørgrav unsigned int rri_nrdatas; /* size of rdatas array */ 99d95e11bfSDag-Erling Smørgrav unsigned int rri_nsigs; /* size of sigs array */ 100d95e11bfSDag-Erling Smørgrav char *rri_name; /* canonical name */ 101d95e11bfSDag-Erling Smørgrav struct rdatainfo *rri_rdatas; /* individual records */ 102d95e11bfSDag-Erling Smørgrav struct rdatainfo *rri_sigs; /* individual signatures */ 103d95e11bfSDag-Erling Smørgrav }; 104d95e11bfSDag-Erling Smørgrav 105d95e11bfSDag-Erling Smørgrav int getrrsetbyname(const char *, unsigned int, unsigned int, unsigned int, struct rrsetinfo **); 106d95e11bfSDag-Erling Smørgrav void freerrset(struct rrsetinfo *); 107d95e11bfSDag-Erling Smørgrav 108efcad6b7SDag-Erling Smørgrav #endif /* !defined(HAVE_GETRRSETBYNAME) */ 109d95e11bfSDag-Erling Smørgrav 110d95e11bfSDag-Erling Smørgrav #endif /* _GETRRSETBYNAME_H */ 111