mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
We don't use these files.
This commit is contained in:
parent
e3c3754c06
commit
08d41c70c1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/resolver/dist/; revision=269781
|
@ -1,10 +0,0 @@
|
|||
#ifndef _FD_SETSIZE_H
|
||||
#define _FD_SETSIZE_H
|
||||
|
||||
/*%
|
||||
* If you need a bigger FD_SETSIZE, this is NOT the place to set it.
|
||||
* This file is a fallback for BIND ports which don't specify their own.
|
||||
*/
|
||||
|
||||
#endif /* _FD_SETSIZE_H */
|
||||
/*! \file */
|
|
@ -1,123 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1997-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id: assertions.h,v 1.5 2008/11/14 02:36:51 marka Exp $
|
||||
*/
|
||||
|
||||
#ifndef ASSERTIONS_H
|
||||
#define ASSERTIONS_H 1
|
||||
|
||||
typedef enum {
|
||||
assert_require, assert_ensure, assert_insist, assert_invariant
|
||||
} assertion_type;
|
||||
|
||||
typedef void (*assertion_failure_callback)(const char *, int, assertion_type,
|
||||
const char *, int);
|
||||
|
||||
/* coverity[+kill] */
|
||||
extern assertion_failure_callback __assertion_failed;
|
||||
void set_assertion_failure_callback(assertion_failure_callback f);
|
||||
const char *assertion_type_to_text(assertion_type type);
|
||||
|
||||
#if defined(CHECK_ALL) || defined(__COVERITY__)
|
||||
#define CHECK_REQUIRE 1
|
||||
#define CHECK_ENSURE 1
|
||||
#define CHECK_INSIST 1
|
||||
#define CHECK_INVARIANT 1
|
||||
#endif
|
||||
|
||||
#if defined(CHECK_NONE) && !defined(__COVERITY__)
|
||||
#define CHECK_REQUIRE 0
|
||||
#define CHECK_ENSURE 0
|
||||
#define CHECK_INSIST 0
|
||||
#define CHECK_INVARIANT 0
|
||||
#endif
|
||||
|
||||
#ifndef CHECK_REQUIRE
|
||||
#define CHECK_REQUIRE 1
|
||||
#endif
|
||||
|
||||
#ifndef CHECK_ENSURE
|
||||
#define CHECK_ENSURE 1
|
||||
#endif
|
||||
|
||||
#ifndef CHECK_INSIST
|
||||
#define CHECK_INSIST 1
|
||||
#endif
|
||||
|
||||
#ifndef CHECK_INVARIANT
|
||||
#define CHECK_INVARIANT 1
|
||||
#endif
|
||||
|
||||
#if CHECK_REQUIRE != 0
|
||||
#define REQUIRE(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_require, \
|
||||
#cond, 0), 0)))
|
||||
#define REQUIRE_ERR(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_require, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define REQUIRE(cond) ((void) (cond))
|
||||
#define REQUIRE_ERR(cond) ((void) (cond))
|
||||
#endif /* CHECK_REQUIRE */
|
||||
|
||||
#if CHECK_ENSURE != 0
|
||||
#define ENSURE(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_ensure, \
|
||||
#cond, 0), 0)))
|
||||
#define ENSURE_ERR(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_ensure, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define ENSURE(cond) ((void) (cond))
|
||||
#define ENSURE_ERR(cond) ((void) (cond))
|
||||
#endif /* CHECK_ENSURE */
|
||||
|
||||
#if CHECK_INSIST != 0
|
||||
#define INSIST(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_insist, \
|
||||
#cond, 0), 0)))
|
||||
#define INSIST_ERR(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_insist, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define INSIST(cond) ((void) (cond))
|
||||
#define INSIST_ERR(cond) ((void) (cond))
|
||||
#endif /* CHECK_INSIST */
|
||||
|
||||
#if CHECK_INVARIANT != 0
|
||||
#define INVARIANT(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_invariant, \
|
||||
#cond, 0), 0)))
|
||||
#define INVARIANT_ERR(cond) \
|
||||
((void) ((cond) || \
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_invariant, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define INVARIANT(cond) ((void) (cond))
|
||||
#define INVARIANT_ERR(cond) ((void) (cond))
|
||||
#endif /* CHECK_INVARIANT */
|
||||
#endif /* ASSERTIONS_H */
|
||||
/*! \file */
|
|
@ -1,168 +0,0 @@
|
|||
#ifndef DST_H
|
||||
#define DST_H
|
||||
|
||||
#ifndef HAS_DST_KEY
|
||||
typedef struct dst_key {
|
||||
char *dk_key_name; /*%< name of the key */
|
||||
int dk_key_size; /*%< this is the size of the key in bits */
|
||||
int dk_proto; /*%< what protocols this key can be used for */
|
||||
int dk_alg; /*%< algorithm number from key record */
|
||||
u_int32_t dk_flags; /*%< and the flags of the public key */
|
||||
u_int16_t dk_id; /*%< identifier of the key */
|
||||
} DST_KEY;
|
||||
#endif /* HAS_DST_KEY */
|
||||
/*
|
||||
* do not taint namespace
|
||||
*/
|
||||
#define dst_bsafe_init __dst_bsafe_init
|
||||
#define dst_buffer_to_key __dst_buffer_to_key
|
||||
#define dst_check_algorithm __dst_check_algorithm
|
||||
#define dst_compare_keys __dst_compare_keys
|
||||
#define dst_cylink_init __dst_cylink_init
|
||||
#define dst_dnskey_to_key __dst_dnskey_to_key
|
||||
#define dst_eay_dss_init __dst_eay_dss_init
|
||||
#define dst_free_key __dst_free_key
|
||||
#define dst_generate_key __dst_generate_key
|
||||
#define dst_hmac_md5_init __dst_hmac_md5_init
|
||||
#define dst_init __dst_init
|
||||
#define dst_key_to_buffer __dst_key_to_buffer
|
||||
#define dst_key_to_dnskey __dst_key_to_dnskey
|
||||
#define dst_read_key __dst_read_key
|
||||
#define dst_rsaref_init __dst_rsaref_init
|
||||
#define dst_s_build_filename __dst_s_build_filename
|
||||
#define dst_s_calculate_bits __dst_s_calculate_bits
|
||||
#define dst_s_conv_bignum_b64_to_u8 __dst_s_conv_bignum_b64_to_u8
|
||||
#define dst_s_conv_bignum_u8_to_b64 __dst_s_conv_bignum_u8_to_b64
|
||||
#define dst_s_dns_key_id __dst_s_dns_key_id
|
||||
#define dst_s_dump __dst_s_dump
|
||||
#define dst_s_filename_length __dst_s_filename_length
|
||||
#define dst_s_fopen __dst_s_fopen
|
||||
#define dst_s_get_int16 __dst_s_get_int16
|
||||
#define dst_s_get_int32 __dst_s_get_int32
|
||||
#define dst_s_id_calc __dst_s_id_calc
|
||||
#define dst_s_put_int16 __dst_s_put_int16
|
||||
#define dst_s_put_int32 __dst_s_put_int32
|
||||
#define dst_s_quick_random __dst_s_quick_random
|
||||
#define dst_s_quick_random_set __dst_s_quick_random_set
|
||||
#define dst_s_random __dst_s_random
|
||||
#define dst_s_semi_random __dst_s_semi_random
|
||||
#define dst_s_verify_str __dst_s_verify_str
|
||||
#define dst_sig_size __dst_sig_size
|
||||
#define dst_sign_data __dst_sign_data
|
||||
#define dst_verify_data __dst_verify_data
|
||||
#define dst_write_key __dst_write_key
|
||||
|
||||
/*
|
||||
* DST Crypto API defintions
|
||||
*/
|
||||
void dst_init(void);
|
||||
int dst_check_algorithm(const int);
|
||||
|
||||
|
||||
int dst_sign_data(const int, /*!< specifies INIT/UPDATE/FINAL/ALL */
|
||||
DST_KEY *, /*!< the key to use */
|
||||
void **, /*!< pointer to state structure */
|
||||
const u_char *, /*!< data to be signed */
|
||||
const int, /*!< length of input data */
|
||||
u_char *, /*!< buffer to write signature to */
|
||||
const int); /*!< size of output buffer */
|
||||
int dst_verify_data(const int, /*!< specifies INIT/UPDATE/FINAL/ALL */
|
||||
DST_KEY *, /*!< the key to use */
|
||||
void **, /*!< pointer to state structure */
|
||||
const u_char *, /*!< data to be verified */
|
||||
const int, /*!< length of input data */
|
||||
const u_char *, /*!< buffer containing signature */
|
||||
const int); /*!< length of signature */
|
||||
DST_KEY *dst_read_key(const char *, /*!< name of key */
|
||||
const u_int16_t, /*!< key tag identifier */
|
||||
const int, /*!< key algorithm */
|
||||
const int); /*!< Private/PublicKey wanted */
|
||||
int dst_write_key(const DST_KEY *, /*!< key to write out */
|
||||
const int); /*!< Public/Private */
|
||||
DST_KEY *dst_dnskey_to_key(const char *, /*!< KEY record name */
|
||||
const u_char *, /*!< KEY RDATA */
|
||||
const int); /*!< size of input buffer */
|
||||
int dst_key_to_dnskey(const DST_KEY *, /*!< key to translate */
|
||||
u_char *, /*!< output buffer */
|
||||
const int); /*!< size of out_storage */
|
||||
DST_KEY *dst_buffer_to_key(const char *, /*!< name of the key */
|
||||
const int, /*!< algorithm */
|
||||
const int, /*!< dns flags */
|
||||
const int, /*!< dns protocol */
|
||||
const u_char *, /*!< key in dns wire fmt */
|
||||
const int); /*!< size of key */
|
||||
int dst_key_to_buffer(DST_KEY *, u_char *, int);
|
||||
|
||||
DST_KEY *dst_generate_key(const char *, /*!< name of new key */
|
||||
const int, /*!< key algorithm to generate */
|
||||
const int, /*!< size of new key */
|
||||
const int, /*!< alg dependent parameter */
|
||||
const int, /*!< key DNS flags */
|
||||
const int); /*!< key DNS protocol */
|
||||
DST_KEY *dst_free_key(DST_KEY *);
|
||||
int dst_compare_keys(const DST_KEY *, const DST_KEY *);
|
||||
|
||||
int dst_sig_size(DST_KEY *);
|
||||
|
||||
|
||||
/* support for dns key tags/ids */
|
||||
u_int16_t dst_s_dns_key_id(const u_char *, const int);
|
||||
u_int16_t dst_s_id_calc(const u_char *, const int);
|
||||
|
||||
/* Used by callers as well as by the library. */
|
||||
#define RAW_KEY_SIZE 8192 /*%< large enough to store any key */
|
||||
/* DST_API control flags */
|
||||
/* These are used used in functions dst_sign_data and dst_verify_data */
|
||||
#define SIG_MODE_INIT 1 /*%< initialize digest */
|
||||
#define SIG_MODE_UPDATE 2 /*%< add data to digest */
|
||||
#define SIG_MODE_FINAL 4 /*%< generate/verify signature */
|
||||
#define SIG_MODE_ALL (SIG_MODE_INIT|SIG_MODE_UPDATE|SIG_MODE_FINAL)
|
||||
|
||||
/* Flags for dst_read_private_key() */
|
||||
#define DST_FORCE_READ 0x1000000
|
||||
#define DST_CAN_SIGN 0x010F
|
||||
#define DST_NO_AUTHEN 0x8000
|
||||
#define DST_EXTEND_FLAG 0x1000
|
||||
#define DST_STANDARD 0
|
||||
#define DST_PRIVATE 0x2000000
|
||||
#define DST_PUBLIC 0x4000000
|
||||
#define DST_RAND_SEMI 1
|
||||
#define DST_RAND_STD 2
|
||||
#define DST_RAND_KEY 3
|
||||
#define DST_RAND_DSS 4
|
||||
|
||||
|
||||
/* DST algorithm codes */
|
||||
#define KEY_RSA 1
|
||||
#define KEY_DH 2
|
||||
#define KEY_DSA 3
|
||||
#define KEY_PRIVATE 254
|
||||
#define KEY_EXPAND 255
|
||||
#define KEY_HMAC_MD5 157
|
||||
#define KEY_HMAC_SHA1 158
|
||||
#define UNKNOWN_KEYALG 0
|
||||
#define DST_MAX_ALGS KEY_HMAC_SHA1
|
||||
|
||||
/* DST constants to locations in KEY record changes in new KEY record */
|
||||
#define DST_FLAGS_SIZE 2
|
||||
#define DST_KEY_PROT 2
|
||||
#define DST_KEY_ALG 3
|
||||
#define DST_EXT_FLAG 4
|
||||
#define DST_KEY_START 4
|
||||
|
||||
#ifndef SIGN_F_NOKEY
|
||||
#define SIGN_F_NOKEY 0xC000
|
||||
#endif
|
||||
|
||||
/* error codes from dst routines */
|
||||
#define SIGN_INIT_FAILURE (-23)
|
||||
#define SIGN_UPDATE_FAILURE (-24)
|
||||
#define SIGN_FINAL_FAILURE (-25)
|
||||
#define VERIFY_INIT_FAILURE (-26)
|
||||
#define VERIFY_UPDATE_FAILURE (-27)
|
||||
#define VERIFY_FINAL_FAILURE (-28)
|
||||
#define MISSING_KEY_OR_SIGNATURE (-30)
|
||||
#define UNSUPPORTED_KEYALG (-31)
|
||||
|
||||
#endif /* DST_H */
|
||||
/*! \file */
|
|
@ -1,49 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (c) 1997,1999 by Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
typedef int (*heap_higher_priority_func)(void *, void *);
|
||||
typedef void (*heap_index_func)(void *, int);
|
||||
typedef void (*heap_for_each_func)(void *, void *);
|
||||
|
||||
typedef struct heap_context {
|
||||
int array_size;
|
||||
int array_size_increment;
|
||||
int heap_size;
|
||||
void **heap;
|
||||
heap_higher_priority_func higher_priority;
|
||||
heap_index_func index;
|
||||
} *heap_context;
|
||||
|
||||
#define heap_new __heap_new
|
||||
#define heap_free __heap_free
|
||||
#define heap_insert __heap_insert
|
||||
#define heap_delete __heap_delete
|
||||
#define heap_increased __heap_increased
|
||||
#define heap_decreased __heap_decreased
|
||||
#define heap_element __heap_element
|
||||
#define heap_for_each __heap_for_each
|
||||
|
||||
heap_context heap_new(heap_higher_priority_func, heap_index_func, int);
|
||||
int heap_free(heap_context);
|
||||
int heap_insert(heap_context, void *);
|
||||
int heap_delete(heap_context, int);
|
||||
int heap_increased(heap_context, int);
|
||||
int heap_decreased(heap_context, int);
|
||||
void * heap_element(heap_context, int);
|
||||
int heap_for_each(heap_context, heap_for_each_func, void *);
|
||||
|
||||
/*! \file */
|
|
@ -1,50 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (c) 1997,1999 by Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MEMCLUSTER_H
|
||||
#define MEMCLUSTER_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#define meminit __meminit
|
||||
#ifdef MEMCLUSTER_DEBUG
|
||||
#define memget(s) __memget_debug(s, __FILE__, __LINE__)
|
||||
#define memput(p, s) __memput_debug(p, s, __FILE__, __LINE__)
|
||||
#else /*MEMCLUSTER_DEBUG*/
|
||||
#ifdef MEMCLUSTER_RECORD
|
||||
#define memget(s) __memget_record(s, __FILE__, __LINE__)
|
||||
#define memput(p, s) __memput_record(p, s, __FILE__, __LINE__)
|
||||
#else /*MEMCLUSTER_RECORD*/
|
||||
#define memget __memget
|
||||
#define memput __memput
|
||||
#endif /*MEMCLUSTER_RECORD*/
|
||||
#endif /*MEMCLUSTER_DEBUG*/
|
||||
#define memstats __memstats
|
||||
#define memactive __memactive
|
||||
|
||||
int meminit(size_t, size_t);
|
||||
void * __memget(size_t);
|
||||
void __memput(void *, size_t);
|
||||
void * __memget_debug(size_t, const char *, int);
|
||||
void __memput_debug(void *, size_t, const char *, int);
|
||||
void * __memget_record(size_t, const char *, int);
|
||||
void __memput_record(void *, size_t, const char *, int);
|
||||
void memstats(FILE *);
|
||||
int memactive(void);
|
||||
|
||||
#endif /* MEMCLUSTER_H */
|
||||
/*! \file */
|
|
@ -1,94 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1997, 1999, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#if !defined(LINT) && !defined(CODECENTER)
|
||||
static const char rcsid[] = "$Id: assertions.c,v 1.5 2008/11/14 02:36:51 marka Exp $";
|
||||
#endif
|
||||
|
||||
#include "port_before.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <isc/assertions.h>
|
||||
|
||||
#include "port_after.h"
|
||||
|
||||
/*
|
||||
* Forward.
|
||||
*/
|
||||
|
||||
static void default_assertion_failed(const char *, int, assertion_type,
|
||||
const char *, int);
|
||||
|
||||
/*
|
||||
* Public.
|
||||
*/
|
||||
|
||||
assertion_failure_callback __assertion_failed = default_assertion_failed;
|
||||
|
||||
void
|
||||
set_assertion_failure_callback(assertion_failure_callback f) {
|
||||
if (f == NULL)
|
||||
__assertion_failed = default_assertion_failed;
|
||||
else
|
||||
__assertion_failed = f;
|
||||
}
|
||||
|
||||
const char *
|
||||
assertion_type_to_text(assertion_type type) {
|
||||
const char *result;
|
||||
|
||||
switch (type) {
|
||||
case assert_require:
|
||||
result = "REQUIRE";
|
||||
break;
|
||||
case assert_ensure:
|
||||
result = "ENSURE";
|
||||
break;
|
||||
case assert_insist:
|
||||
result = "INSIST";
|
||||
break;
|
||||
case assert_invariant:
|
||||
result = "INVARIANT";
|
||||
break;
|
||||
default:
|
||||
result = NULL;
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*
|
||||
* Private.
|
||||
*/
|
||||
|
||||
/* coverity[+kill] */
|
||||
static void
|
||||
default_assertion_failed(const char *file, int line, assertion_type type,
|
||||
const char *cond, int print_errno)
|
||||
{
|
||||
fprintf(stderr, "%s:%d: %s(%s)%s%s failed.\n",
|
||||
file, line, assertion_type_to_text(type), cond,
|
||||
(print_errno) ? ": " : "",
|
||||
(print_errno) ? strerror(errno) : "");
|
||||
abort();
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
/*! \file */
|
|
@ -1,138 +0,0 @@
|
|||
.\" $Id: assertions.mdoc,v 1.3 2004/03/09 06:30:06 marka Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (c) 1997,1999 by Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
|
||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
|
||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
.\" OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.Dd November 17, 1997
|
||||
.Dt ASSERTIONS 3
|
||||
.Os ISC
|
||||
.Sh NAME
|
||||
.Nm REQUIRE ,
|
||||
.Nm REQUIRE_ERR ,
|
||||
.Nm ENSURE ,
|
||||
.Nm ENSURE_ERR ,
|
||||
.Nm INSIST ,
|
||||
.Nm INSIST_ERR ,
|
||||
.Nm INVARIANT ,
|
||||
.Nm INVARIANT_ERR ,
|
||||
.Nm set_assertion_failure_callback
|
||||
.Nd assertion system
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <isc/assertions.h>
|
||||
.Fo "typedef void (*assertion_failure_callback)"
|
||||
.Fa "char *filename"
|
||||
.Fa "int line"
|
||||
.Fa "assertion_type type"
|
||||
.Fa "char *condition"
|
||||
.Fa "int print_errno"
|
||||
.Fc
|
||||
.Fn REQUIRE "int boolean_expression"
|
||||
.Fn REQUIRE_ERR "int boolean_expression"
|
||||
.Fn ENSURE "int boolean_expression"
|
||||
.Fn ENSURE_ERR "int boolean_expression"
|
||||
.Fn INSIST "int boolean_expression"
|
||||
.Fn INSIST_ERR "int boolean_expression"
|
||||
.Fn INVARIANT "int boolean_expression"
|
||||
.Fn INVARIANT_ERR "int boolean_expression"
|
||||
.Ft void
|
||||
.Fn set_assertion_failure_callback "assertion_failure_callback callback"
|
||||
.Ft char *
|
||||
.Fn assertion_type_to_text "assertion_type type"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn REQUIRE ,
|
||||
.Fn ENSURE ,
|
||||
.Fn INSIST ,
|
||||
and
|
||||
.Fn INVARIANT
|
||||
macros evaluate a boolean expression, and if it is false, they invoke the
|
||||
current assertion failure callback. The default callback will print a message
|
||||
to
|
||||
.Li stderr
|
||||
describing the failure, and then cause the program to dump core.
|
||||
If the
|
||||
.Dq Fn _ERR
|
||||
variant of the assertion is used, the callback will include
|
||||
.Fn strerror "errno"
|
||||
in its message.
|
||||
.Pp
|
||||
Each assertion type has an associated
|
||||
.Li CHECK
|
||||
macro. If this macro's value is
|
||||
.Dq 0
|
||||
when
|
||||
.Dq "<isc/assertions.h>"
|
||||
is included, then assertions of that type will not be checked. E.g.
|
||||
.Pp
|
||||
.Dl #define CHECK_ENSURE 0
|
||||
.Pp
|
||||
will disable checking of
|
||||
.Fn ENSURE
|
||||
and
|
||||
.Fn ENSURE_ERR .
|
||||
The macros
|
||||
.Li CHECK_ALL
|
||||
and
|
||||
.Li CHECK_NONE
|
||||
may also be used, respectively specifying that either all or none of the
|
||||
assertion types should be checked.
|
||||
.Pp
|
||||
.Fn set_assertion_failure_callback
|
||||
specifies the function to call when an assertion fails.
|
||||
.Pp
|
||||
When an
|
||||
.Fn assertion_failure_callback
|
||||
is called, the
|
||||
.Fa filename
|
||||
and
|
||||
.Fa line
|
||||
arguments specify the filename and line number of the failing assertion.
|
||||
The
|
||||
.Fa type
|
||||
is one of:
|
||||
.Bd -literal -offset indent
|
||||
assert_require
|
||||
assert_ensure
|
||||
assert_insist
|
||||
assert_invariant
|
||||
.Ed
|
||||
.Pp
|
||||
and may be used by the callback to determine the type of the failing
|
||||
assertion.
|
||||
.Fa condition
|
||||
is the literal text of the assertion that failed.
|
||||
.Fa print_errno
|
||||
will be non-zero if the callback should print
|
||||
.Fa strerror "errno"
|
||||
as part of its output.
|
||||
.Pp
|
||||
.Fn assertion_type_to_text
|
||||
returns a textual representation of
|
||||
.Fa type .
|
||||
For example,
|
||||
.Fn assertion_type_to_text "assert_require"
|
||||
returns the string
|
||||
.Dq REQUIRE .
|
||||
.Sh SEE ALSO
|
||||
.Rs
|
||||
.%A Bertrand Meyer
|
||||
.%B Object-Oriented Software Construction, 2nd edition
|
||||
.%Q Prentice\-Hall
|
||||
.%D 1997
|
||||
.%O ISBN 0\-13\-629155\-4
|
||||
.%P chapter 11
|
||||
.Re
|
||||
.Sh AUTHOR
|
||||
Bob Halley (ISC).
|
|
@ -1,25 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (c) 1998,1999 by Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _RES_MKUPDATE_H_
|
||||
#define _RES_MKUPDATE_H_
|
||||
|
||||
__BEGIN_DECLS
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _RES_MKUPDATE_H_ */
|
||||
/*! \file */
|
|
@ -1,170 +0,0 @@
|
|||
#include "port_before.h"
|
||||
#include "fd_setsize.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/nameser.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include <isc/dst.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <netdb.h>
|
||||
#include <resolv.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "port_after.h"
|
||||
|
||||
#define DEBUG
|
||||
#include "res_debug.h"
|
||||
|
||||
|
||||
/*% res_nsendsigned */
|
||||
int
|
||||
res_nsendsigned(res_state statp, const u_char *msg, int msglen,
|
||||
ns_tsig_key *key, u_char *answer, int anslen)
|
||||
{
|
||||
res_state nstatp;
|
||||
DST_KEY *dstkey;
|
||||
int usingTCP = 0;
|
||||
u_char *newmsg;
|
||||
int newmsglen, bufsize, siglen;
|
||||
u_char sig[64];
|
||||
HEADER *hp;
|
||||
time_t tsig_time;
|
||||
int ret;
|
||||
int len;
|
||||
|
||||
dst_init();
|
||||
|
||||
nstatp = (res_state) malloc(sizeof(*statp));
|
||||
if (nstatp == NULL) {
|
||||
errno = ENOMEM;
|
||||
return (-1);
|
||||
}
|
||||
memcpy(nstatp, statp, sizeof(*statp));
|
||||
|
||||
bufsize = msglen + 1024;
|
||||
newmsg = (u_char *) malloc(bufsize);
|
||||
if (newmsg == NULL) {
|
||||
free(nstatp);
|
||||
errno = ENOMEM;
|
||||
return (-1);
|
||||
}
|
||||
memcpy(newmsg, msg, msglen);
|
||||
newmsglen = msglen;
|
||||
|
||||
if (ns_samename(key->alg, NS_TSIG_ALG_HMAC_MD5) != 1)
|
||||
dstkey = NULL;
|
||||
else
|
||||
dstkey = dst_buffer_to_key(key->name, KEY_HMAC_MD5,
|
||||
NS_KEY_TYPE_AUTH_ONLY,
|
||||
NS_KEY_PROT_ANY,
|
||||
key->data, key->len);
|
||||
if (dstkey == NULL) {
|
||||
errno = EINVAL;
|
||||
free(nstatp);
|
||||
free(newmsg);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
nstatp->nscount = 1;
|
||||
siglen = sizeof(sig);
|
||||
ret = ns_sign(newmsg, &newmsglen, bufsize, NOERROR, dstkey, NULL, 0,
|
||||
sig, &siglen, 0);
|
||||
if (ret < 0) {
|
||||
free (nstatp);
|
||||
free (newmsg);
|
||||
dst_free_key(dstkey);
|
||||
if (ret == NS_TSIG_ERROR_NO_SPACE)
|
||||
errno = EMSGSIZE;
|
||||
else if (ret == -1)
|
||||
errno = EINVAL;
|
||||
return (ret);
|
||||
}
|
||||
|
||||
if (newmsglen > PACKETSZ || nstatp->options & RES_USEVC)
|
||||
usingTCP = 1;
|
||||
if (usingTCP == 0)
|
||||
nstatp->options |= RES_IGNTC;
|
||||
else
|
||||
nstatp->options |= RES_USEVC;
|
||||
/*
|
||||
* Stop res_send printing the answer.
|
||||
*/
|
||||
nstatp->options &= ~RES_DEBUG;
|
||||
nstatp->pfcode &= ~RES_PRF_REPLY;
|
||||
|
||||
retry:
|
||||
|
||||
len = res_nsend(nstatp, newmsg, newmsglen, answer, anslen);
|
||||
if (len < 0) {
|
||||
free (nstatp);
|
||||
free (newmsg);
|
||||
dst_free_key(dstkey);
|
||||
return (len);
|
||||
}
|
||||
|
||||
ret = ns_verify(answer, &len, dstkey, sig, siglen,
|
||||
NULL, NULL, &tsig_time, nstatp->options & RES_KEEPTSIG);
|
||||
if (ret != 0) {
|
||||
Dprint((statp->options & RES_DEBUG) ||
|
||||
((statp->pfcode & RES_PRF_REPLY) &&
|
||||
(statp->pfcode & RES_PRF_HEAD1)),
|
||||
(stdout, ";; got answer:\n"));
|
||||
|
||||
DprintQ((statp->options & RES_DEBUG) ||
|
||||
(statp->pfcode & RES_PRF_REPLY),
|
||||
(stdout, "%s", ""),
|
||||
answer, (anslen > len) ? len : anslen);
|
||||
|
||||
if (ret > 0) {
|
||||
Dprint(statp->pfcode & RES_PRF_REPLY,
|
||||
(stdout, ";; server rejected TSIG (%s)\n",
|
||||
p_rcode(ret)));
|
||||
} else {
|
||||
Dprint(statp->pfcode & RES_PRF_REPLY,
|
||||
(stdout, ";; TSIG invalid (%s)\n",
|
||||
p_rcode(-ret)));
|
||||
}
|
||||
|
||||
free (nstatp);
|
||||
free (newmsg);
|
||||
dst_free_key(dstkey);
|
||||
if (ret == -1)
|
||||
errno = EINVAL;
|
||||
else
|
||||
errno = ENOTTY;
|
||||
return (-1);
|
||||
}
|
||||
|
||||
hp = (HEADER *) answer;
|
||||
if (hp->tc && !usingTCP && (statp->options & RES_IGNTC) == 0U) {
|
||||
nstatp->options &= ~RES_IGNTC;
|
||||
usingTCP = 1;
|
||||
goto retry;
|
||||
}
|
||||
Dprint((statp->options & RES_DEBUG) ||
|
||||
((statp->pfcode & RES_PRF_REPLY) &&
|
||||
(statp->pfcode & RES_PRF_HEAD1)),
|
||||
(stdout, ";; got answer:\n"));
|
||||
|
||||
DprintQ((statp->options & RES_DEBUG) ||
|
||||
(statp->pfcode & RES_PRF_REPLY),
|
||||
(stdout, "%s", ""),
|
||||
answer, (anslen > len) ? len : anslen);
|
||||
|
||||
Dprint(statp->pfcode & RES_PRF_REPLY, (stdout, ";; TSIG ok\n"));
|
||||
|
||||
free (nstatp);
|
||||
free (newmsg);
|
||||
dst_free_key(dstkey);
|
||||
return (len);
|
||||
}
|
||||
|
||||
/*! \file */
|
Loading…
Reference in a new issue