11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* OPENBSD BASED ON : include/netdb.h */ 21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* $OpenBSD: getrrsetbyname.c,v 1.4 2001/08/16 18:16:43 ho Exp $ */ 41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* 61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Copyright (c) 2001 Jakob Schlyter. All rights reserved. 71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Redistribution and use in source and binary forms, with or without 91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * modification, are permitted provided that the following conditions 101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * are met: 111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 1. Redistributions of source code must retain the above copyright 131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * notice, this list of conditions and the following disclaimer. 141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 2. Redistributions in binary form must reproduce the above copyright 161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * notice, this list of conditions and the following disclaimer in the 171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * documentation and/or other materials provided with the distribution. 181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood */ 301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* 321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Portions Copyright (c) 1999-2001 Internet Software Consortium. 331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Permission to use, copy, modify, and distribute this software for any 351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * purpose with or without fee is hereby granted, provided that the above 361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * copyright notice and this permission notice appear in all copies. 371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM 391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL 401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL 411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, 421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood */ 471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef _GETRRSETBYNAME_H 491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define _GETRRSETBYNAME_H 501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include "includes.h" 521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HAVE_GETRRSETBYNAME 541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <sys/types.h> 561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <netinet/in.h> 571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <arpa/nameser.h> 581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <netdb.h> 591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <resolv.h> 601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HFIXEDSZ 621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define HFIXEDSZ 12 631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef T_RRSIG 661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define T_RRSIG 46 671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* 701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Flags for getrrsetbyname() 711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood */ 721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef RRSET_VALIDATED 731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# define RRSET_VALIDATED 1 741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* 771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Return codes for getrrsetbyname() 781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood */ 791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef ERRSET_SUCCESS 801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# define ERRSET_SUCCESS 0 811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# define ERRSET_NOMEMORY 1 821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# define ERRSET_FAIL 2 831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# define ERRSET_INVAL 3 841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# define ERRSET_NONAME 4 851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# define ERRSET_NODATA 5 861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct rdatainfo { 891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned int rdi_length; /* length of data */ 901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *rdi_data; /* record data */ 911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct rrsetinfo { 941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned int rri_flags; /* RRSET_VALIDATED ... */ 951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned int rri_rdclass; /* class number */ 961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned int rri_rdtype; /* RR type number */ 971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned int rri_ttl; /* time to live */ 981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned int rri_nrdatas; /* size of rdatas array */ 991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned int rri_nsigs; /* size of sigs array */ 1001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood char *rri_name; /* canonical name */ 1011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct rdatainfo *rri_rdatas; /* individual records */ 1021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct rdatainfo *rri_sigs; /* individual signatures */ 1031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 1041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodint getrrsetbyname(const char *, unsigned int, unsigned int, unsigned int, struct rrsetinfo **); 1061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodvoid freerrset(struct rrsetinfo *); 1071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif /* !defined(HAVE_GETRRSETBYNAME) */ 1091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif /* _GETRRSETBYNAME_H */ 111