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