acl.c revision 45e1bd63587102c3bb361eaca42ee7b714fb3542
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * Copyright (C) 1999-2002 Internet Software Consortium.
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * Permission to use, copy, modify, and distribute this software for any
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * purpose with or without fee is hereby granted, provided that the above
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * copyright notice and this permission notice appear in all copies.
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews * PERFORMANCE OF THIS SOFTWARE.
7867d18ce0ffa93055fbda3b9d2be8b168d898fcMark Andrews/* $Id: acl.c,v 1.29 2006/02/28 02:39:51 marka Exp $ */
return (ISC_R_NOMEMORY);
return (result);
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
unsigned int newalloc;
void *newmem;
return (ISC_R_NOMEMORY);
return (ISC_R_SUCCESS);
static isc_result_t
return (result);
return (result);
int *match,
return (ISC_R_SUCCESS);
*match = 0;
return (ISC_R_SUCCESS);
*matchelt = e;
return (ISC_R_SUCCESS);
return (ISC_R_NOTFOUND);
const dns_aclelement_t *e,
int indirectmatch;
switch (e->type) {
goto matched;
goto matched;
env,
if (indirectmatch > 0)
goto matchelt_set;
case dns_aclelementtype_any:
*matchelt = e;
return (ISC_TRUE);
goto nested;
goto nested;
INSIST(0);
return (ISC_FALSE);
unsigned int refs;
if (refs == 0)
return (ISC_FALSE);
return (ISC_FALSE);
case dns_aclelementtype_any:
return (ISC_TRUE);
INSIST(0);
return (ISC_FALSE);
return (ISC_TRUE);
return (ISC_FALSE);
for (i = 0; i < a->length; i++) {
&b->elements[i]))
return (ISC_FALSE);
return (ISC_TRUE);
static isc_boolean_t
case AF_INET:
return (ISC_TRUE);
case AF_INET6:
return (ISC_TRUE);
return (ISC_FALSE);
for (i = 0; i < a->length; i++) {
if (e->negative)
switch (e->type) {
return (ISC_TRUE);
return (ISC_TRUE);
case dns_aclelementtype_any:
return (ISC_TRUE);
INSIST(0);
return (ISC_TRUE);
return (ISC_FALSE);
goto cleanup_nothing;
goto cleanup_localhost;
return (ISC_R_SUCCESS);
return (result);