1/* 2 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") 3 * Copyright (c) 1996,1999 by Internet Software Consortium. 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 15 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18#if defined(LIBC_SCCS) && !defined(lint) 19static const char rcsid[] = "$Id: nul_ng.c,v 1.3 2005/04/27 04:56:34 sra Exp $"; 20#endif 21 22/*! \file 23 * \brief 24 * nul_ng.c - the netgroup accessor null map 25 */ 26 27#include "port_before.h" 28 29#include <sys/types.h> 30#include <netinet/in.h> 31#include <arpa/nameser.h> 32#include <resolv.h> 33 34#include <stdio.h> 35#include <string.h> 36#include <netdb.h> 37#include <ctype.h> 38#include <stdlib.h> 39#include <errno.h> 40 41#include <irs.h> 42#include <isc/memcluster.h> 43 44#include "port_after.h" 45 46#include "irs_p.h" 47#include "hesiod.h" 48#include "dns_p.h" 49 50/* Forward. */ 51 52static void ng_close(struct irs_ng *); 53static int ng_next(struct irs_ng *, const char **, 54 const char **, const char **); 55static int ng_test(struct irs_ng *, 56 const char *, const char *, 57 const char *, const char *); 58static void ng_rewind(struct irs_ng *, const char *); 59static void ng_minimize(struct irs_ng *); 60 61/* Public. */ 62 63struct irs_ng * 64irs_nul_ng(struct irs_acc *this) { 65 struct irs_ng *ng; 66 67 UNUSED(this); 68 69 if (!(ng = memget(sizeof *ng))) { 70 errno = ENOMEM; 71 return (NULL); 72 } 73 memset(ng, 0x5e, sizeof *ng); 74 ng->private = NULL; 75 ng->close = ng_close; 76 ng->next = ng_next; 77 ng->test = ng_test; 78 ng->rewind = ng_rewind; 79 ng->minimize = ng_minimize; 80 return (ng); 81} 82 83/* Methods. */ 84 85static void 86ng_close(struct irs_ng *this) { 87 memput(this, sizeof *this); 88} 89 90/* ARGSUSED */ 91static int 92ng_next(struct irs_ng *this, const char **host, const char **user, 93 const char **domain) 94{ 95 UNUSED(this); 96 UNUSED(host); 97 UNUSED(user); 98 UNUSED(domain); 99 errno = ENOENT; 100 return (-1); 101} 102 103static int 104ng_test(struct irs_ng *this, const char *name, 105 const char *user, const char *host, const char *domain) 106{ 107 UNUSED(this); 108 UNUSED(name); 109 UNUSED(user); 110 UNUSED(host); 111 UNUSED(domain); 112 errno = ENODEV; 113 return (-1); 114} 115 116static void 117ng_rewind(struct irs_ng *this, const char *netgroup) { 118 UNUSED(this); 119 UNUSED(netgroup); 120 /* NOOP */ 121} 122 123static void 124ng_minimize(struct irs_ng *this) { 125 UNUSED(this); 126 /* NOOP */ 127} 128