summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2010-10-05 16:54:57 +0000
committerwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2010-10-05 16:54:57 +0000
commit73c98b671163fde6880a06b228bbf16cd5193a47 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /include
parent85178561deb9056145da76bf973f735dcab63465 (diff)
downloadlibapr-util-73c98b671163fde6880a06b228bbf16cd5193a47.tar.gz
Create 'a trunk' to explain things as nick suggests
git-svn-id: http://svn.apache.org/repos/asf/apr/apr-util/trunk@1004712 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include')
-rw-r--r--include/apr_anylock.h128
-rw-r--r--include/apr_base64.h112
-rw-r--r--include/apr_buckets.h1569
-rw-r--r--include/apr_crypto.h462
-rw-r--r--include/apr_date.h106
-rw-r--r--include/apr_dbd.h552
-rw-r--r--include/apr_dbm.h227
-rw-r--r--include/apr_hooks.h296
-rw-r--r--include/apr_ldap.h.in197
-rw-r--r--include/apr_ldap.hnw158
-rw-r--r--include/apr_ldap.hw197
-rw-r--r--include/apr_ldap_init.h165
-rw-r--r--include/apr_ldap_option.h254
-rw-r--r--include/apr_ldap_rebind.h98
-rw-r--r--include/apr_ldap_url.h120
-rw-r--r--include/apr_md4.h135
-rw-r--r--include/apr_md5.h162
-rw-r--r--include/apr_memcache.h446
-rw-r--r--include/apr_optional.h92
-rw-r--r--include/apr_optional_hooks.h117
-rw-r--r--include/apr_queue.h138
-rw-r--r--include/apr_reslist.h174
-rw-r--r--include/apr_rmm.h137
-rw-r--r--include/apr_sdbm.h176
-rw-r--r--include/apr_sha1.h121
-rw-r--r--include/apr_strmatch.h81
-rw-r--r--include/apr_thread_pool.h299
-rw-r--r--include/apr_uri.h178
-rw-r--r--include/apr_uuid.h76
-rw-r--r--include/apr_xlate.h163
-rw-r--r--include/apr_xml.h356
-rw-r--r--include/apu.h.in114
-rw-r--r--include/apu.hnw124
-rw-r--r--include/apu.hw140
-rw-r--r--include/apu_errno.h173
-rw-r--r--include/apu_version.h134
-rw-r--r--include/apu_want.h.in51
-rw-r--r--include/apu_want.hnw52
-rw-r--r--include/apu_want.hw52
-rw-r--r--include/private/apr_crypto_internal.h253
-rw-r--r--include/private/apr_dbd_internal.h365
-rw-r--r--include/private/apr_dbd_odbc_v2.h119
-rw-r--r--include/private/apr_dbm_private.h121
-rw-r--r--include/private/apu_config.hnw53
-rw-r--r--include/private/apu_config.hw46
-rw-r--r--include/private/apu_internal.h73
-rw-r--r--include/private/apu_select_dbm.h.in28
-rw-r--r--include/private/apu_select_dbm.hw28
48 files changed, 0 insertions, 9418 deletions
diff --git a/include/apr_anylock.h b/include/apr_anylock.h
deleted file mode 100644
index 51e97ff3..00000000
--- a/include/apr_anylock.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file apr_anylock.h
- * @brief APR-Util transparent any lock flavor wrapper
- */
-#ifndef APR_ANYLOCK_H
-#define APR_ANYLOCK_H
-
-#include "apr_proc_mutex.h"
-#include "apr_thread_mutex.h"
-#include "apr_thread_rwlock.h"
-
-/** Structure that may contain any APR lock type */
-typedef struct apr_anylock_t {
- /** Indicates what type of lock is in lock */
- enum tm_lock {
- apr_anylock_none, /**< None */
- apr_anylock_procmutex, /**< Process-based */
- apr_anylock_threadmutex, /**< Thread-based */
- apr_anylock_readlock, /**< Read lock */
- apr_anylock_writelock /**< Write lock */
- } type;
- /** Union of all possible APR locks */
- union apr_anylock_u_t {
- apr_proc_mutex_t *pm; /**< Process mutex */
-#if APR_HAS_THREADS
- apr_thread_mutex_t *tm; /**< Thread mutex */
- apr_thread_rwlock_t *rw; /**< Read-write lock */
-#endif
- } lock;
-} apr_anylock_t;
-
-#if APR_HAS_THREADS
-
-/** Lock an apr_anylock_t structure */
-#define APR_ANYLOCK_LOCK(lck) \
- (((lck)->type == apr_anylock_none) \
- ? APR_SUCCESS \
- : (((lck)->type == apr_anylock_threadmutex) \
- ? apr_thread_mutex_lock((lck)->lock.tm) \
- : (((lck)->type == apr_anylock_procmutex) \
- ? apr_proc_mutex_lock((lck)->lock.pm) \
- : (((lck)->type == apr_anylock_readlock) \
- ? apr_thread_rwlock_rdlock((lck)->lock.rw) \
- : (((lck)->type == apr_anylock_writelock) \
- ? apr_thread_rwlock_wrlock((lck)->lock.rw) \
- : APR_EINVAL)))))
-
-#else /* APR_HAS_THREADS */
-
-#define APR_ANYLOCK_LOCK(lck) \
- (((lck)->type == apr_anylock_none) \
- ? APR_SUCCESS \
- : (((lck)->type == apr_anylock_procmutex) \
- ? apr_proc_mutex_lock((lck)->lock.pm) \
- : APR_EINVAL))
-
-#endif /* APR_HAS_THREADS */
-
-#if APR_HAS_THREADS
-
-/** Try to lock an apr_anylock_t structure */
-#define APR_ANYLOCK_TRYLOCK(lck) \
- (((lck)->type == apr_anylock_none) \
- ? APR_SUCCESS \
- : (((lck)->type == apr_anylock_threadmutex) \
- ? apr_thread_mutex_trylock((lck)->lock.tm) \
- : (((lck)->type == apr_anylock_procmutex) \
- ? apr_proc_mutex_trylock((lck)->lock.pm) \
- : (((lck)->type == apr_anylock_readlock) \
- ? apr_thread_rwlock_tryrdlock((lck)->lock.rw) \
- : (((lck)->type == apr_anylock_writelock) \
- ? apr_thread_rwlock_trywrlock((lck)->lock.rw) \
- : APR_EINVAL)))))
-
-#else /* APR_HAS_THREADS */
-
-#define APR_ANYLOCK_TRYLOCK(lck) \
- (((lck)->type == apr_anylock_none) \
- ? APR_SUCCESS \
- : (((lck)->type == apr_anylock_procmutex) \
- ? apr_proc_mutex_trylock((lck)->lock.pm) \
- : APR_EINVAL))
-
-#endif /* APR_HAS_THREADS */
-
-#if APR_HAS_THREADS
-
-/** Unlock an apr_anylock_t structure */
-#define APR_ANYLOCK_UNLOCK(lck) \
- (((lck)->type == apr_anylock_none) \
- ? APR_SUCCESS \
- : (((lck)->type == apr_anylock_threadmutex) \
- ? apr_thread_mutex_unlock((lck)->lock.tm) \
- : (((lck)->type == apr_anylock_procmutex) \
- ? apr_proc_mutex_unlock((lck)->lock.pm) \
- : ((((lck)->type == apr_anylock_readlock) || \
- ((lck)->type == apr_anylock_writelock)) \
- ? apr_thread_rwlock_unlock((lck)->lock.rw) \
- : APR_EINVAL))))
-
-#else /* APR_HAS_THREADS */
-
-#define APR_ANYLOCK_UNLOCK(lck) \
- (((lck)->type == apr_anylock_none) \
- ? APR_SUCCESS \
- : (((lck)->type == apr_anylock_procmutex) \
- ? apr_proc_mutex_unlock((lck)->lock.pm) \
- : APR_EINVAL))
-
-#endif /* APR_HAS_THREADS */
-
-#endif /* !APR_ANYLOCK_H */
diff --git a/include/apr_base64.h b/include/apr_base64.h
deleted file mode 100644
index b4b2b88f..00000000
--- a/include/apr_base64.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * The apr_vsnprintf/apr_snprintf functions are based on, and used with the
- * permission of, the SIO stdio-replacement strx_* functions by Panos
- * Tsirigotis <panos@alumni.cs.colorado.edu> for xinetd.
- */
-
-/**
- * @file apr_base64.h
- * @brief APR-UTIL Base64 Encoding
- */
-#ifndef APR_BASE64_H
-#define APR_BASE64_H
-
-#include "apu.h"
-#include "apr_general.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup APR_Util_Base64 Base64 Encoding
- * @ingroup APR_Util
- * @{
- */
-
-/* Simple BASE64 encode/decode functions.
- *
- * As we might encode binary strings, hence we require the length of
- * the incoming plain source. And return the length of what we decoded.
- *
- * The decoding function takes any non valid char (i.e. whitespace, \0
- * or anything non A-Z,0-9 etc as terminal.
- *
- * plain strings/binary sequences are not assumed '\0' terminated. Encoded
- * strings are neither. But probably should.
- *
- */
-
-/**
- * Given the length of an un-encrypted string, get the length of the
- * encrypted string.
- * @param len the length of an unencrypted string.
- * @return the length of the string after it is encrypted
- */
-APU_DECLARE(int) apr_base64_encode_len(int len);
-
-/**
- * Encode a text string using base64encoding.
- * @param coded_dst The destination string for the encoded string.
- * @param plain_src The original string in plain text
- * @param len_plain_src The length of the plain text string
- * @return the length of the encoded string
- */
-APU_DECLARE(int) apr_base64_encode(char * coded_dst, const char *plain_src,
- int len_plain_src);
-
-/**
- * Encode an EBCDIC string using base64encoding.
- * @param coded_dst The destination string for the encoded string.
- * @param plain_src The original string in plain text
- * @param len_plain_src The length of the plain text string
- * @return the length of the encoded string
- */
-APU_DECLARE(int) apr_base64_encode_binary(char * coded_dst,
- const unsigned char *plain_src,
- int len_plain_src);
-
-/**
- * Determine the maximum buffer length required to decode the plain text
- * string given the encoded string.
- * @param coded_src The encoded string
- * @return the maximum required buffer length for the plain text string
- */
-APU_DECLARE(int) apr_base64_decode_len(const char * coded_src);
-
-/**
- * Decode a string to plain text
- * @param plain_dst The destination string for the plain text
- * @param coded_src The encoded string
- * @return the length of the plain text string
- */
-APU_DECLARE(int) apr_base64_decode(char * plain_dst, const char *coded_src);
-
-/**
- * Decode an EBCDIC string to plain text
- * @param plain_dst The destination string for the plain text
- * @param coded_src The encoded string
- * @return the length of the plain text string
- */
-APU_DECLARE(int) apr_base64_decode_binary(unsigned char * plain_dst,
- const char *coded_src);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !APR_BASE64_H */
diff --git a/include/apr_buckets.h b/include/apr_buckets.h
deleted file mode 100644
index fb87635c..00000000
--- a/include/apr_buckets.h
+++ /dev/null
@@ -1,1569 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * @file apr_buckets.h
- * @brief APR-UTIL Buckets/Bucket Brigades
- */
-
-#ifndef APR_BUCKETS_H
-#define APR_BUCKETS_H
-
-#if defined(APR_BUCKET_DEBUG) && !defined(APR_RING_DEBUG)
-#define APR_RING_DEBUG
-#endif
-
-#include "apu.h"
-#include "apr_network_io.h"
-#include "apr_file_io.h"
-#include "apr_general.h"
-#include "apr_mmap.h"
-#include "apr_errno.h"
-#include "apr_ring.h"
-#include "apr.h"
-#if APR_HAVE_SYS_UIO_H
-#include <sys/uio.h> /* for struct iovec */
-#endif
-#if APR_HAVE_STDARG_H
-#include <stdarg.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup APR_Util_Bucket_Brigades Bucket Brigades
- * @ingroup APR_Util
- * @{
- */
-
-/** default bucket buffer size - 8KB minus room for memory allocator headers */
-#define APR_BUCKET_BUFF_SIZE 8000
-
-/** Determines how a bucket or brigade should be read */
-typedef enum {
- APR_BLOCK_READ, /**< block until data becomes available */
- APR_NONBLOCK_READ /**< return immediately if no data is available */
-} apr_read_type_e;
-
-/**
- * The one-sentence buzzword-laden overview: Bucket brigades represent
- * a complex data stream that can be passed through a layered IO
- * system without unnecessary copying. A longer overview follows...
- *
- * A bucket brigade is a doubly linked list (ring) of buckets, so we
- * aren't limited to inserting at the front and removing at the end.
- * Buckets are only passed around as members of a brigade, although
- * singleton buckets can occur for short periods of time.
- *
- * Buckets are data stores of various types. They can refer to data in
- * memory, or part of a file or mmap area, or the output of a process,
- * etc. Buckets also have some type-dependent accessor functions:
- * read, split, copy, setaside, and destroy.
- *
- * read returns the address and size of the data in the bucket. If the
- * data isn't in memory then it is read in and the bucket changes type
- * so that it can refer to the new location of the data. If all the
- * data doesn't fit in the bucket then a new bucket is inserted into
- * the brigade to hold the rest of it.
- *
- * split divides the data in a bucket into two regions. After a split
- * the original bucket refers to the first part of the data and a new
- * bucket inserted into the brigade after the original bucket refers
- * to the second part of the data. Reference counts are maintained as
- * necessary.
- *
- * setaside ensures that the data in the bucket has a long enough
- * lifetime. Sometimes it is convenient to create a bucket referring
- * to data on the stack in the expectation that it will be consumed
- * (output to the network) before the stack is unwound. If that
- * expectation turns out not to be valid, the setaside function is
- * called to move the data somewhere safer.
- *
- * copy makes a duplicate of the bucket structure as long as it's
- * possible to have multiple references to a single copy of the
- * data itself. Not all bucket types can be copied.
- *
- * destroy maintains the reference counts on the resources used by a
- * bucket and frees them if necessary.
- *
- * Note: all of the above functions have wrapper macros (apr_bucket_read(),
- * apr_bucket_destroy(), etc), and those macros should be used rather
- * than using the function pointers directly.
- *
- * To write a bucket brigade, they are first made into an iovec, so that we
- * don't write too little data at one time. Currently we ignore compacting the
- * buckets into as few buckets as possible, but if we really want good
- * performance, then we need to compact the buckets before we convert to an
- * iovec, or possibly while we are converting to an iovec.
- */
-
-/*
- * Forward declaration of the main types.
- */
-
-/** @see apr_bucket_brigade */
-typedef struct apr_bucket_brigade apr_bucket_brigade;
-/** @see apr_bucket */
-typedef struct apr_bucket apr_bucket;
-/** @see apr_bucket_alloc_t */
-typedef struct apr_bucket_alloc_t apr_bucket_alloc_t;
-
-/** @see apr_bucket_type_t */
-typedef struct apr_bucket_type_t apr_bucket_type_t;
-
-/**
- * Basic bucket type
- */
-struct apr_bucket_type_t {
- /**
- * The name of the bucket type
- */
- const char *name;
- /**
- * The number of functions this bucket understands. Can not be less than
- * five.
- */
- int num_func;
- /**
- * Whether the bucket contains metadata (ie, information that
- * describes the regular contents of the brigade). The metadata
- * is not returned by apr_bucket_read() and is not indicated by
- * the ->length of the apr_bucket itself. In other words, an
- * empty bucket is safe to arbitrarily remove if and only if it
- * contains no metadata. In this sense, "data" is just raw bytes
- * that are the "content" of the brigade and "metadata" describes
- * that data but is not a proper part of it.
- */
- enum {
- /** This bucket type represents actual data to send to the client. */
- APR_BUCKET_DATA = 0,
- /** This bucket type represents metadata. */
- APR_BUCKET_METADATA = 1
- } is_metadata;
- /**
- * Free the private data and any resources used by the bucket (if they
- * aren't shared with another bucket). This function is required to be
- * implemented for all bucket types, though it might be a no-op on some
- * of them (namely ones that never allocate any private data structures).
- * @param data The private data pointer from the bucket to be destroyed
- */
- void (*destroy)(void *data);
-
- /**
- * Read the data from the bucket. This is required to be implemented
- * for all bucket types.
- * @param b The bucket to read from
- * @param str A place to store the data read. Allocation should only be
- * done if absolutely necessary.
- * @param len The amount of data read.
- * @param block Should this read function block if there is more data that
- * cannot be read immediately.
- */
- apr_status_t (*read)(apr_bucket *b, const char **str, apr_size_t *len,
- apr_read_type_e block);
-
- /**
- * Make it possible to set aside the data for at least as long as the
- * given pool. Buckets containing data that could potentially die before
- * this pool (e.g. the data resides on the stack, in a child pool of
- * the given pool, or in a disjoint pool) must somehow copy, shift, or
- * transform the data to have the proper lifetime.
- * @param e The bucket to convert
- * @remark Some bucket types contain data that will always outlive the
- * bucket itself. For example no data (EOS and FLUSH), or the data
- * resides in global, constant memory (IMMORTAL), or the data is on
- * the heap (HEAP). For these buckets, apr_bucket_setaside_noop can
- * be used.
- */
- apr_status_t (*setaside)(apr_bucket *e, apr_pool_t *pool);
-
- /**
- * Split one bucket in two at the specified position by duplicating
- * the bucket structure (not the data) and modifying any necessary
- * start/end/offset information. If it's not possible to do this
- * for the bucket type (perhaps the length of the data is indeterminate,
- * as with pipe and socket buckets), then APR_ENOTIMPL is returned.
- * @param e The bucket to split
- * @param point The offset of the first byte in the new bucket
- */
- apr_status_t (*split)(apr_bucket *e, apr_size_t point);
-
- /**
- * Copy the bucket structure (not the data), assuming that this is
- * possible for the bucket type. If it's not, APR_ENOTIMPL is returned.
- * @param e The bucket to copy
- * @param c Returns a pointer to the new bucket
- */
- apr_status_t (*copy)(apr_bucket *e, apr_bucket **c);
-
-};
-
-/**
- * apr_bucket structures are allocated on the malloc() heap and
- * their lifetime is controlled by the parent apr_bucket_brigade
- * structure. Buckets can move from one brigade to another e.g. by
- * calling APR_BRIGADE_CONCAT(). In general the data in a bucket has
- * the same lifetime as the bucket and is freed when the bucket is
- * destroyed; if the data is shared by more than one bucket (e.g.
- * after a split) the data is freed when the last bucket goes away.
- */
-struct apr_bucket {
- /** Links to the rest of the brigade */
- APR_RING_ENTRY(apr_bucket) link;
- /** The type of bucket. */
- const apr_bucket_type_t *type;
- /** The length of the data in the bucket. This could have been implemented
- * with a function, but this is an optimization, because the most
- * common thing to do will be to get the length. If the length is unknown,
- * the value of this field will be (apr_size_t)(-1).
- */
- apr_size_t length;
- /** The start of the data in the bucket relative to the private base
- * pointer. The vast majority of bucket types allow a fixed block of
- * data to be referenced by multiple buckets, each bucket pointing to
- * a different segment of the data. That segment starts at base+start
- * and ends at base+start+length.
- * If the length == (apr_size_t)(-1), then start == -1.
- */
- apr_off_t start;
- /** type-dependent data hangs off this pointer */
- void *data;
- /**
- * Pointer to function used to free the bucket. This function should
- * always be defined and it should be consistent with the memory
- * function used to allocate the bucket. For example, if malloc() is
- * used to allocate the bucket, this pointer should point to free().
- * @param e Pointer to the bucket being freed
- */
- void (*free)(void *e);
- /** The freelist from which this bucket was allocated */
- apr_bucket_alloc_t *list;
-};
-
-/** A list of buckets */
-struct apr_bucket_brigade {
- /** The pool to associate the brigade with. The data is not allocated out
- * of the pool, but a cleanup is registered with this pool. If the
- * brigade is destroyed by some mechanism other than pool destruction,
- * the destroying function is responsible for killing the cleanup.
- */
- apr_pool_t *p;
- /** The buckets in the brigade are on this list. */
- /*
- * The apr_bucket_list structure doesn't actually need a name tag
- * because it has no existence independent of struct apr_bucket_brigade;
- * the ring macros are designed so that you can leave the name tag
- * argument empty in this situation but apparently the Windows compiler
- * doesn't like that.
- */
- APR_RING_HEAD(apr_bucket_list, apr_bucket) list;
- /** The freelist from which this bucket was allocated */
- apr_bucket_alloc_t *bucket_alloc;
-};
-
-
-/**
- * Function called when a brigade should be flushed
- */
-typedef apr_status_t (*apr_brigade_flush)(apr_bucket_brigade *bb, void *ctx);
-
-/*
- * define APR_BUCKET_DEBUG if you want your brigades to be checked for
- * validity at every possible instant. this will slow your code down
- * substantially but is a very useful debugging tool.
- */
-#ifdef APR_BUCKET_DEBUG
-
-#define APR_BRIGADE_CHECK_CONSISTENCY(b) \
- APR_RING_CHECK_CONSISTENCY(&(b)->list, apr_bucket, link)
-
-#define APR_BUCKET_CHECK_CONSISTENCY(e) \
- APR_RING_CHECK_ELEM_CONSISTENCY((e), apr_bucket, link)
-
-#else
-/**
- * checks the ring pointers in a bucket brigade for consistency. an
- * abort() will be triggered if any inconsistencies are found.
- * note: this is a no-op unless APR_BUCKET_DEBUG is defined.
- * @param b The brigade
- */
-#define APR_BRIGADE_CHECK_CONSISTENCY(b)
-/**
- * checks the brigade a bucket is in for ring consistency. an
- * abort() will be triggered if any inconsistencies are found.
- * note: this is a no-op unless APR_BUCKET_DEBUG is defined.
- * @param e The bucket
- */
-#define APR_BUCKET_CHECK_CONSISTENCY(e)
-#endif
-
-
-/**
- * Wrappers around the RING macros to reduce the verbosity of the code
- * that handles bucket brigades.
- */
-/**
- * The magic pointer value that indicates the head of the brigade
- * @remark This is used to find the beginning and end of the brigade, eg:
- * <pre>
- * while (e != APR_BRIGADE_SENTINEL(b)) {
- * ...
- * e = APR_BUCKET_NEXT(e);
- * }
- * </pre>
- * @param b The brigade
- * @return The magic pointer value
- */
-#define APR_BRIGADE_SENTINEL(b) APR_RING_SENTINEL(&(b)->list, apr_bucket, link)
-
-/**
- * Determine if the bucket brigade is empty
- * @param b The brigade to check
- * @return true or false
- */
-#define APR_BRIGADE_EMPTY(b) APR_RING_EMPTY(&(b)->list, apr_bucket, link)
-
-/**
- * Return the first bucket in a brigade
- * @param b The brigade to query
- * @return The first bucket in the brigade
- */
-#define APR_BRIGADE_FIRST(b) APR_RING_FIRST(&(b)->list)
-/**
- * Return the last bucket in a brigade
- * @param b The brigade to query
- * @return The last bucket in the brigade
- */
-#define APR_BRIGADE_LAST(b) APR_RING_LAST(&(b)->list)
-
-/**
- * Insert a list of buckets at the front of a brigade
- * @param b The brigade to add to
- * @param e The first bucket in a list of buckets to insert
- */
-#define APR_BRIGADE_INSERT_HEAD(b, e) do { \
- apr_bucket *ap__b = (e); \
- APR_RING_INSERT_HEAD(&(b)->list, ap__b, apr_bucket, link); \
- APR_BRIGADE_CHECK_CONSISTENCY((b)); \
- } while (0)
-
-/**
- * Insert a list of buckets at the end of a brigade
- * @param b The brigade to add to
- * @param e The first bucket in a list of buckets to insert
- */
-#define APR_BRIGADE_INSERT_TAIL(b, e) do { \
- apr_bucket *ap__b = (e); \
- APR_RING_INSERT_TAIL(&(b)->list, ap__b, apr_bucket, link); \
- APR_BRIGADE_CHECK_CONSISTENCY((b)); \
- } while (0)
-
-/**
- * Concatenate brigade b onto the end of brigade a, leaving brigade b empty
- * @param a The first brigade
- * @param b The second brigade
- */
-#define APR_BRIGADE_CONCAT(a, b) do { \
- APR_RING_CONCAT(&(a)->list, &(b)->list, apr_bucket, link); \
- APR_BRIGADE_CHECK_CONSISTENCY((a)); \
- } while (0)
-
-/**
- * Prepend brigade b onto the beginning of brigade a, leaving brigade b empty
- * @param a The first brigade
- * @param b The second brigade
- */
-#define APR_BRIGADE_PREPEND(a, b) do { \
- APR_RING_PREPEND(&(a)->list, &(b)->list, apr_bucket, link); \
- APR_BRIGADE_CHECK_CONSISTENCY((a)); \
- } while (0)
-
-/**
- * Insert a list of buckets before a specified bucket
- * @param a The bucket to insert before
- * @param b The buckets to insert
- */
-#define APR_BUCKET_INSERT_BEFORE(a, b) do { \
- apr_bucket *ap__a = (a), *ap__b = (b); \
- APR_RING_INSERT_BEFORE(ap__a, ap__b, link); \
- APR_BUCKET_CHECK_CONSISTENCY(ap__a); \
- } while (0)
-
-/**
- * Insert a list of buckets after a specified bucket
- * @param a The bucket to insert after
- * @param b The buckets to insert
- */
-#define APR_BUCKET_INSERT_AFTER(a, b) do { \
- apr_bucket *ap__a = (a), *ap__b = (b); \
- APR_RING_INSERT_AFTER(ap__a, ap__b, link); \
- APR_BUCKET_CHECK_CONSISTENCY(ap__a); \
- } while (0)
-
-/**
- * Get the next bucket in the list
- * @param e The current bucket
- * @return The next bucket
- */
-#define APR_BUCKET_NEXT(e) APR_RING_NEXT((e), link)
-/**
- * Get the previous bucket in the list
- * @param e The current bucket
- * @return The previous bucket
- */
-#define APR_BUCKET_PREV(e) APR_RING_PREV((e), link)
-
-/**
- * Remove a bucket from its bucket brigade
- * @param e The bucket to remove
- */
-#define APR_BUCKET_REMOVE(e) APR_RING_REMOVE((e), link)
-
-/**
- * Initialize a new bucket's prev/next pointers
- * @param e The bucket to initialize
- */
-#define APR_BUCKET_INIT(e) APR_RING_ELEM_INIT((e), link)
-
-/**
- * Determine if a bucket contains metadata. An empty bucket is
- * safe to arbitrarily remove if and only if this is false.
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_METADATA(e) ((e)->type->is_metadata)
-
-/**
- * Determine if a bucket is a FLUSH bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_FLUSH(e) ((e)->type == &apr_bucket_type_flush)
-/**
- * Determine if a bucket is an EOS bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_EOS(e) ((e)->type == &apr_bucket_type_eos)
-/**
- * Determine if a bucket is a FILE bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_FILE(e) ((e)->type == &apr_bucket_type_file)
-/**
- * Determine if a bucket is a PIPE bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_PIPE(e) ((e)->type == &apr_bucket_type_pipe)
-/**
- * Determine if a bucket is a SOCKET bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_SOCKET(e) ((e)->type == &apr_bucket_type_socket)
-/**
- * Determine if a bucket is a HEAP bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_HEAP(e) ((e)->type == &apr_bucket_type_heap)
-/**
- * Determine if a bucket is a TRANSIENT bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_TRANSIENT(e) ((e)->type == &apr_bucket_type_transient)
-/**
- * Determine if a bucket is a IMMORTAL bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_IMMORTAL(e) ((e)->type == &apr_bucket_type_immortal)
-#if APR_HAS_MMAP
-/**
- * Determine if a bucket is a MMAP bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_MMAP(e) ((e)->type == &apr_bucket_type_mmap)
-#endif
-/**
- * Determine if a bucket is a POOL bucket
- * @param e The bucket to inspect
- * @return true or false
- */
-#define APR_BUCKET_IS_POOL(e) ((e)->type == &apr_bucket_type_pool)
-
-/*
- * General-purpose reference counting for the various bucket types.
- *
- * Any bucket type that keeps track of the resources it uses (i.e.
- * most of them except for IMMORTAL, TRANSIENT, and EOS) needs to
- * attach a reference count to the resource so that it can be freed
- * when the last bucket that uses it goes away. Resource-sharing may
- * occur because of bucket splits or buckets that refer to globally
- * cached data. */
-
-/** @see apr_bucket_refcount */
-typedef struct apr_bucket_refcount apr_bucket_refcount;
-/**
- * The structure used to manage the shared resource must start with an
- * apr_bucket_refcount which is updated by the general-purpose refcount
- * code. A pointer to the bucket-type-dependent private data structure
- * can be cast to a pointer to an apr_bucket_refcount and vice versa.
- */
-struct apr_bucket_refcount {
- /** The number of references to this bucket */
- int refcount;
-};
-
-/* ***** Reference-counted bucket types ***** */
-
-/** @see apr_bucket_heap */
-typedef struct apr_bucket_heap apr_bucket_heap;
-/**
- * A bucket referring to data allocated off the heap.
- */
-struct apr_bucket_heap {
- /** Number of buckets using this memory */
- apr_bucket_refcount refcount;
- /** The start of the data actually allocated. This should never be
- * modified, it is only used to free the bucket.
- */
- char *base;
- /** how much memory was allocated */
- apr_size_t alloc_len;
- /** function to use to delete the data */
- void (*free_func)(void *data);
-};
-
-/** @see apr_bucket_pool */
-typedef struct apr_bucket_pool apr_bucket_pool;
-/**
- * A bucket referring to data allocated from a pool
- */
-struct apr_bucket_pool {
- /** The pool bucket must be able to be easily morphed to a heap
- * bucket if the pool gets cleaned up before all references are
- * destroyed. This apr_bucket_heap structure is populated automatically
- * when the pool gets cleaned up, and subsequent calls to pool_read()
- * will result in the apr_bucket in question being morphed into a
- * regular heap bucket. (To avoid having to do many extra refcount
- * manipulations and b->data manipulations, the apr_bucket_pool
- * struct actually *contains* the apr_bucket_heap struct that it
- * will become as its first element; the two share their
- * apr_bucket_refcount members.)
- */
- apr_bucket_heap heap;
- /** The block of data actually allocated from the pool.
- * Segments of this block are referenced by adjusting
- * the start and length of the apr_bucket accordingly.
- * This will be NULL after the pool gets cleaned up.
- */
- const char *base;
- /** The pool the data was allocated from. When the pool
- * is cleaned up, this gets set to NULL as an indicator
- * to pool_read() that the data is now on the heap and
- * so it should morph the bucket into a regular heap
- * bucket before continuing.
- */
- apr_pool_t *pool;
- /** The freelist this structure was allocated from, which is
- * needed in the cleanup phase in order to allocate space on the heap
- */
- apr_bucket_alloc_t *list;
-};
-
-#if APR_HAS_MMAP
-/** @see apr_bucket_mmap */
-typedef struct apr_bucket_mmap apr_bucket_mmap;
-/**
- * A bucket referring to an mmap()ed file
- */
-struct apr_bucket_mmap {
- /** Number of buckets using this memory */
- apr_bucket_refcount refcount;
- /** The mmap this sub_bucket refers to */
- apr_mmap_t *mmap;
-};
-#endif
-
-/** @see apr_bucket_file */
-typedef struct apr_bucket_file apr_bucket_file;
-/**
- * A bucket referring to an file
- */
-struct apr_bucket_file {
- /** Number of buckets using this memory */
- apr_bucket_refcount refcount;
- /** The file this bucket refers to */
- apr_file_t *fd;
- /** The pool into which any needed structures should
- * be created while reading from this file bucket */
- apr_pool_t *readpool;
-#if APR_HAS_MMAP
- /** Whether this bucket should be memory-mapped if
- * a caller tries to read from it */
- int can_mmap;
-#endif /* APR_HAS_MMAP */
-};
-
-/** @see apr_bucket_structs */
-typedef union apr_bucket_structs apr_bucket_structs;
-/**
- * A union of all bucket structures so we know what
- * the max size is.
- */
-union apr_bucket_structs {
- apr_bucket b; /**< Bucket */
- apr_bucket_heap heap; /**< Heap */
- apr_bucket_pool pool; /**< Pool */
-#if APR_HAS_MMAP
- apr_bucket_mmap mmap; /**< MMap */
-#endif
- apr_bucket_file file; /**< File */
-};
-
-/**
- * The amount that apr_bucket_alloc() should allocate in the common case.
- * Note: this is twice as big as apr_bucket_structs to allow breathing
- * room for third-party bucket types.
- */
-#define APR_BUCKET_ALLOC_SIZE APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs))
-
-/* ***** Bucket Brigade Functions ***** */
-/**
- * Create a new bucket brigade. The bucket brigade is originally empty.
- * @param p The pool to associate with the brigade. Data is not allocated out
- * of the pool, but a cleanup is registered.
- * @param list The bucket allocator to use
- * @return The empty bucket brigade
- */
-APU_DECLARE(apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p,
- apr_bucket_alloc_t *list);
-
-/**
- * destroy an entire bucket brigade. This includes destroying all of the
- * buckets within the bucket brigade's bucket list.
- * @param b The bucket brigade to destroy
- */
-APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b);
-
-/**
- * empty out an entire bucket brigade. This includes destroying all of the
- * buckets within the bucket brigade's bucket list. This is similar to
- * apr_brigade_destroy(), except that it does not deregister the brigade's
- * pool cleanup function.
- * @param data The bucket brigade to clean up
- * @remark Generally, you should use apr_brigade_destroy(). This function
- * can be useful in situations where you have a single brigade that
- * you wish to reuse many times by destroying all of the buckets in
- * the brigade and putting new buckets into it later.
- */
-APU_DECLARE(apr_status_t) apr_brigade_cleanup(void *data);
-
-/**
- * Move the buckets from the tail end of the existing brigade @param b into
- * the brigade @param a. If @param a is NULL a new brigade is created. Buckets
- * from @param e to the last bucket (inclusively) of brigade @param b are moved
- * from @param b to the returned brigade @param a.
- * @param b The brigade to split
- * @param e The first bucket to move
- * @param a The brigade which should be used for the result or NULL if
- * a new brigade should be created.
- * @return The brigade supplied in @param a or a new one if @param a was NULL.
- * @warning Note that this function allocates a new brigade if @param a is
- * NULL so memory consumption should be carefully considered.
- */
-APU_DECLARE(apr_bucket_brigade *) apr_brigade_split_ex(apr_bucket_brigade *b,
- apr_bucket *e,
- apr_bucket_brigade *a);
-
-/**
- * Create a new bucket brigade and move the buckets from the tail end
- * of an existing brigade into the new brigade. Buckets from
- * @param e to the last bucket (inclusively) of brigade @param b
- * are moved from @param b to the returned brigade.
- * @param b The brigade to split
- * @param e The first bucket to move
- * @return The new brigade
- * @warning Note that this function always allocates a new brigade
- * so memory consumption should be carefully considered.
- */
-APU_DECLARE(apr_bucket_brigade *) apr_brigade_split(apr_bucket_brigade *b,
- apr_bucket *e);
-
-/**
- * Partition a bucket brigade at a given offset (in bytes from the start of
- * the brigade). This is useful whenever a filter wants to use known ranges
- * of bytes from the brigade; the ranges can even overlap.
- * @param b The brigade to partition
- * @param point The offset at which to partition the brigade
- * @param after_point Returns a pointer to the first bucket after the partition
- * @return APR_SUCCESS on success, APR_INCOMPLETE if the contents of the
- * brigade were shorter than @a point, or an error code.
- * @remark if APR_INCOMPLETE is returned, @a after_point will be set to
- * the brigade sentinel.
- */
-APU_DECLARE(apr_status_t) apr_brigade_partition(apr_bucket_brigade *b,
- apr_off_t point,
- apr_bucket **after_point);
-
-/**
- * Return the total length of the brigade.
- * @param bb The brigade to compute the length of
- * @param read_all Read unknown-length buckets to force a size
- * @param length Returns the length of the brigade (up to the end, or up
- * to a bucket read error), or -1 if the brigade has buckets
- * of indeterminate length and read_all is 0.
- */
-APU_DECLARE(apr_status_t) apr_brigade_length(apr_bucket_brigade *bb,
- int read_all,
- apr_off_t *length);
-
-/**
- * Take a bucket brigade and store the data in a flat char*
- * @param bb The bucket brigade to create the char* from
- * @param c The char* to write into
- * @param len The maximum length of the char array. On return, it is the
- * actual length of the char array.
- */
-APU_DECLARE(apr_status_t) apr_brigade_flatten(apr_bucket_brigade *bb,
- char *c,
- apr_size_t *len);
-
-/**
- * Creates a pool-allocated string representing a flat bucket brigade
- * @param bb The bucket brigade to create the char array from
- * @param c On return, the allocated char array
- * @param len On return, the length of the char array.
- * @param pool The pool to allocate the string from.
- */
-APU_DECLARE(apr_status_t) apr_brigade_pflatten(apr_bucket_brigade *bb,
- char **c,
- apr_size_t *len,
- apr_pool_t *pool);
-
-/**
- * Split a brigade to represent one LF line.
- * @param bbOut The bucket brigade that will have the LF line appended to.
- * @param bbIn The input bucket brigade to search for a LF-line.
- * @param block The blocking mode to be used to split the line.
- * @param maxbytes The maximum bytes to read. If this many bytes are seen
- * without a LF, the brigade will contain a partial line.
- */
-APU_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut,
- apr_bucket_brigade *bbIn,
- apr_read_type_e block,
- apr_off_t maxbytes);
-
-/**
- * create an iovec of the elements in a bucket_brigade... return number
- * of elements used. This is useful for writing to a file or to the
- * network efficiently.
- * @param b The bucket brigade to create the iovec from
- * @param vec The iovec to create
- * @param nvec The number of elements in the iovec. On return, it is the
- * number of iovec elements actually filled out.
- */
-APU_DECLARE(apr_status_t) apr_brigade_to_iovec(apr_bucket_brigade *b,
- struct iovec *vec, int *nvec);
-
-/**
- * This function writes a list of strings into a bucket brigade.
- * @param b The bucket brigade to add to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param va A list of strings to add
- * @return APR_SUCCESS or error code.
- */
-APU_DECLARE(apr_status_t) apr_brigade_vputstrs(apr_bucket_brigade *b,
- apr_brigade_flush flush,
- void *ctx,
- va_list va);
-
-/**
- * This function writes a string into a bucket brigade.
- *
- * The apr_brigade_write function attempts to be efficient with the
- * handling of heap buckets. Regardless of the amount of data stored
- * inside a heap bucket, heap buckets are a fixed size to promote their
- * reuse.
- *
- * If an attempt is made to write a string to a brigade that already
- * ends with a heap bucket, this function will attempt to pack the
- * string into the remaining space in the previous heap bucket, before
- * allocating a new heap bucket.
- *
- * This function always returns APR_SUCCESS, unless a flush function is
- * passed, in which case the return value of the flush function will be
- * returned if used.
- * @param b The bucket brigade to add to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param str The string to add
- * @param nbyte The number of bytes to write
- * @return APR_SUCCESS or error code
- */
-APU_DECLARE(apr_status_t) apr_brigade_write(apr_bucket_brigade *b,
- apr_brigade_flush flush, void *ctx,
- const char *str, apr_size_t nbyte);
-
-/**
- * This function writes multiple strings into a bucket brigade.
- * @param b The bucket brigade to add to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param vec The strings to add (address plus length for each)
- * @param nvec The number of entries in iovec
- * @return APR_SUCCESS or error code
- */
-APU_DECLARE(apr_status_t) apr_brigade_writev(apr_bucket_brigade *b,
- apr_brigade_flush flush,
- void *ctx,
- const struct iovec *vec,
- apr_size_t nvec);
-
-/**
- * This function writes a string into a bucket brigade.
- * @param bb The bucket brigade to add to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param str The string to add
- * @return APR_SUCCESS or error code
- */
-APU_DECLARE(apr_status_t) apr_brigade_puts(apr_bucket_brigade *bb,
- apr_brigade_flush flush, void *ctx,
- const char *str);
-
-/**
- * This function writes a character into a bucket brigade.
- * @param b The bucket brigade to add to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param c The character to add
- * @return APR_SUCCESS or error code
- */
-APU_DECLARE(apr_status_t) apr_brigade_putc(apr_bucket_brigade *b,
- apr_brigade_flush flush, void *ctx,
- const char c);
-
-/**
- * This function writes an unspecified number of strings into a bucket brigade.
- * @param b The bucket brigade to add to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param ... The strings to add
- * @return APR_SUCCESS or error code
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_brigade_putstrs(apr_bucket_brigade *b,
- apr_brigade_flush flush,
- void *ctx, ...);
-
-/**
- * Evaluate a printf and put the resulting string at the end
- * of the bucket brigade.
- * @param b The brigade to write to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param fmt The format of the string to write
- * @param ... The arguments to fill out the format
- * @return APR_SUCCESS or error code
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_brigade_printf(apr_bucket_brigade *b,
- apr_brigade_flush flush,
- void *ctx,
- const char *fmt, ...)
- __attribute__((format(printf,4,5)));
-
-/**
- * Evaluate a printf and put the resulting string at the end
- * of the bucket brigade.
- * @param b The brigade to write to
- * @param flush The flush function to use if the brigade is full
- * @param ctx The structure to pass to the flush function
- * @param fmt The format of the string to write
- * @param va The arguments to fill out the format
- * @return APR_SUCCESS or error code
- */
-APU_DECLARE(apr_status_t) apr_brigade_vprintf(apr_bucket_brigade *b,
- apr_brigade_flush flush,
- void *ctx,
- const char *fmt, va_list va);
-
-/**
- * Utility function to insert a file (or a segment of a file) onto the
- * end of the brigade. The file is split into multiple buckets if it
- * is larger than the maximum size which can be represented by a
- * single bucket.
- * @param bb the brigade to insert into
- * @param f the file to insert
- * @param start the offset of the start of the segment
- * @param len the length of the segment of the file to insert
- * @param p pool from which file buckets are allocated
- * @return the last bucket inserted
- */
-APU_DECLARE(apr_bucket *) apr_brigade_insert_file(apr_bucket_brigade *bb,
- apr_file_t *f,
- apr_off_t start,
- apr_off_t len,
- apr_pool_t *p);
-
-
-
-/* ***** Bucket freelist functions ***** */
-/**
- * Create a bucket allocator.
- * @param p This pool's underlying apr_allocator_t is used to allocate memory
- * for the bucket allocator. When the pool is destroyed, the bucket
- * allocator's cleanup routine will free all memory that has been
- * allocated from it.
- * @remark The reason the allocator gets its memory from the pool's
- * apr_allocator_t rather than from the pool itself is because
- * the bucket allocator will free large memory blocks back to the
- * allocator when it's done with them, thereby preventing memory
- * footprint growth that would occur if we allocated from the pool.
- * @warning The allocator must never be used by more than one thread at a time.
- */
-APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p);
-
-/**
- * Create a bucket allocator.
- * @param allocator This apr_allocator_t is used to allocate both the bucket
- * allocator and all memory handed out by the bucket allocator. The
- * caller is responsible for destroying the bucket allocator and the
- * apr_allocator_t -- no automatic cleanups will happen.
- * @warning The allocator must never be used by more than one thread at a time.
- */
-APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(apr_allocator_t *allocator);
-
-/**
- * Destroy a bucket allocator.
- * @param list The allocator to be destroyed
- */
-APU_DECLARE_NONSTD(void) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list);
-
-/**
- * Allocate memory for use by the buckets.
- * @param size The amount to allocate.
- * @param list The allocator from which to allocate the memory.
- */
-APU_DECLARE_NONSTD(void *) apr_bucket_alloc(apr_size_t size, apr_bucket_alloc_t *list);
-
-/**
- * Free memory previously allocated with apr_bucket_alloc().
- * @param block The block of memory to be freed.
- */
-APU_DECLARE_NONSTD(void) apr_bucket_free(void *block);
-
-
-/* ***** Bucket Functions ***** */
-/**
- * Free the resources used by a bucket. If multiple buckets refer to
- * the same resource it is freed when the last one goes away.
- * @see apr_bucket_delete()
- * @param e The bucket to destroy
- */
-#define apr_bucket_destroy(e) do { \
- (e)->type->destroy((e)->data); \
- (e)->free(e); \
- } while (0)
-
-/**
- * Delete a bucket by removing it from its brigade (if any) and then
- * destroying it.
- * @remark This mainly acts as an aid in avoiding code verbosity. It is
- * the preferred exact equivalent to:
- * <pre>
- * APR_BUCKET_REMOVE(e);
- * apr_bucket_destroy(e);
- * </pre>
- * @param e The bucket to delete
- */
-#define apr_bucket_delete(e) do { \
- APR_BUCKET_REMOVE(e); \
- apr_bucket_destroy(e); \
- } while (0)
-
-/**
- * Read some data from the bucket.
- *
- * The apr_bucket_read function returns a convenient amount of data
- * from the bucket provided, writing the address and length of the
- * data to the pointers provided by the caller. The function tries
- * as hard as possible to avoid a memory copy.
- *
- * Buckets are expected to be a member of a brigade at the time they
- * are read.
- *
- * In typical application code, buckets are read in a loop, and after
- * each bucket is read and processed, it is moved or deleted from the
- * brigade and the next bucket read.
- *
- * The definition of "convenient" depends on the type of bucket that
- * is being read, and is decided by APR. In the case of memory based
- * buckets such as heap and immortal buckets, a pointer will be
- * returned to the location of the buffer containing the complete
- * contents of the bucket.
- *
- * Some buckets, such as the socket bucket, might have no concept
- * of length. If an attempt is made to read such a bucket, the
- * apr_bucket_read function will read a convenient amount of data
- * from the socket. The socket bucket is magically morphed into a
- * heap bucket containing the just-read data, and a new socket bucket
- * is inserted just after this heap bucket.
- *
- * To understand why apr_bucket_read might do this, consider the loop
- * described above to read and process buckets. The current bucket
- * is magically morphed into a heap bucket and returned to the caller.
- * The caller processes the data, and deletes the heap bucket, moving
- * onto the next bucket, the new socket bucket. This process repeats,
- * giving the illusion of a bucket brigade that contains potentially
- * infinite amounts of data. It is up to the caller to decide at what
- * point to stop reading buckets.
- *
- * Some buckets, such as the file bucket, might have a fixed size,
- * but be significantly larger than is practical to store in RAM in
- * one go. As with the socket bucket, if an attempt is made to read
- * from a file bucket, the file bucket is magically morphed into a
- * heap bucket containing a convenient amount of data read from the
- * current offset in the file. During the read, the offset will be
- * moved forward on the file, and a new file bucket will be inserted
- * directly after the current bucket representing the remainder of the
- * file. If the heap bucket was large enough to store the whole
- * remainder of the file, no more file buckets are inserted, and the
- * file bucket will disappear completely.
- *
- * The pattern for reading buckets described above does create the
- * illusion that the code is willing to swallow buckets that might be
- * too large for the system to handle in one go. This however is just
- * an illusion: APR will always ensure that large (file) or infinite
- * (socket) buckets are broken into convenient bite sized heap buckets
- * before data is returned to the caller.
- *
- * There is a potential gotcha to watch for: if buckets are read in a
- * loop, and aren't deleted after being processed, the potentially large
- * bucket will slowly be converted into RAM resident heap buckets. If
- * the file is larger than available RAM, an out of memory condition
- * could be caused if the application is not careful to manage this.
- *
- * @param e The bucket to read from
- * @param str The location to store a pointer to the data in
- * @param len The location to store the amount of data read
- * @param block Whether the read function blocks
- */
-#define apr_bucket_read(e,str,len,block) (e)->type->read(e, str, len, block)
-
-/**
- * Setaside data so that stack data is not destroyed on returning from
- * the function
- * @param e The bucket to setaside
- * @param p The pool to setaside into
- */
-#define apr_bucket_setaside(e,p) (e)->type->setaside(e,p)
-
-/**
- * Split one bucket in two at the point provided.
- *
- * Once split, the original bucket becomes the first of the two new buckets.
- *
- * (It is assumed that the bucket is a member of a brigade when this
- * function is called).
- * @param e The bucket to split
- * @param point The offset to split the bucket at
- */
-#define apr_bucket_split(e,point) (e)->type->split(e, point)
-
-/**
- * Copy a bucket.
- * @param e The bucket to copy
- * @param c Returns a pointer to the new bucket
- */
-#define apr_bucket_copy(e,c) (e)->type->copy(e, c)
-
-/* Bucket type handling */
-
-/**
- * This function simply returns APR_SUCCESS to denote that the bucket does
- * not require anything to happen for its setaside() function. This is
- * appropriate for buckets that have "immortal" data -- the data will live
- * at least as long as the bucket.
- * @param data The bucket to setaside
- * @param pool The pool defining the desired lifetime of the bucket data
- * @return APR_SUCCESS
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_noop(apr_bucket *data,
- apr_pool_t *pool);
-
-/**
- * A place holder function that signifies that the setaside function was not
- * implemented for this bucket
- * @param data The bucket to setaside
- * @param pool The pool defining the desired lifetime of the bucket data
- * @return APR_ENOTIMPL
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_notimpl(apr_bucket *data,
- apr_pool_t *pool);
-
-/**
- * A place holder function that signifies that the split function was not
- * implemented for this bucket
- * @param data The bucket to split
- * @param point The location to split the bucket
- * @return APR_ENOTIMPL
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_split_notimpl(apr_bucket *data,
- apr_size_t point);
-
-/**
- * A place holder function that signifies that the copy function was not
- * implemented for this bucket
- * @param e The bucket to copy
- * @param c Returns a pointer to the new bucket
- * @return APR_ENOTIMPL
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_copy_notimpl(apr_bucket *e,
- apr_bucket **c);
-
-/**
- * A place holder function that signifies that this bucket does not need
- * to do anything special to be destroyed. That's only the case for buckets
- * that either have no data (metadata buckets) or buckets whose data pointer
- * points to something that's not a bucket-type-specific structure, as with
- * simple buckets where data points to a string and pipe buckets where data
- * points directly to the apr_file_t.
- * @param data The bucket data to destroy
- */
-APU_DECLARE_NONSTD(void) apr_bucket_destroy_noop(void *data);
-
-/**
- * There is no apr_bucket_destroy_notimpl, because destruction is required
- * to be implemented (it could be a noop, but only if that makes sense for
- * the bucket type)
- */
-
-/* There is no apr_bucket_read_notimpl, because it is a required function
- */
-
-
-/* All of the bucket types implemented by the core */
-/**
- * The flush bucket type. This signifies that all data should be flushed to
- * the next filter. The flush bucket should be sent with the other buckets.
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_flush;
-/**
- * The EOS bucket type. This signifies that there will be no more data, ever.
- * All filters MUST send all data to the next filter when they receive a
- * bucket of this type
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_eos;
-/**
- * The FILE bucket type. This bucket represents a file on disk
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_file;
-/**
- * The HEAP bucket type. This bucket represents a data allocated from the
- * heap.
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_heap;
-#if APR_HAS_MMAP
-/**
- * The MMAP bucket type. This bucket represents an MMAP'ed file
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_mmap;
-#endif
-/**
- * The POOL bucket type. This bucket represents a data that was allocated
- * from a pool. IF this bucket is still available when the pool is cleared,
- * the data is copied on to the heap.
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pool;
-/**
- * The PIPE bucket type. This bucket represents a pipe to another program.
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pipe;
-/**
- * The IMMORTAL bucket type. This bucket represents a segment of data that
- * the creator is willing to take responsibility for. The core will do
- * nothing with the data in an immortal bucket
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_immortal;
-/**
- * The TRANSIENT bucket type. This bucket represents a data allocated off
- * the stack. When the setaside function is called, this data is copied on
- * to the heap
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_transient;
-/**
- * The SOCKET bucket type. This bucket represents a socket to another machine
- */
-APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_socket;
-
-
-/* ***** Simple buckets ***** */
-
-/**
- * Split a simple bucket into two at the given point. Most non-reference
- * counting buckets that allow multiple references to the same block of
- * data (eg transient and immortal) will use this as their split function
- * without any additional type-specific handling.
- * @param b The bucket to be split
- * @param point The offset of the first byte in the new bucket
- * @return APR_EINVAL if the point is not within the bucket;
- * APR_ENOMEM if allocation failed;
- * or APR_SUCCESS
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_split(apr_bucket *b,
- apr_size_t point);
-
-/**
- * Copy a simple bucket. Most non-reference-counting buckets that allow
- * multiple references to the same block of data (eg transient and immortal)
- * will use this as their copy function without any additional type-specific
- * handling.
- * @param a The bucket to copy
- * @param b Returns a pointer to the new bucket
- * @return APR_ENOMEM if allocation failed;
- * or APR_SUCCESS
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_copy(apr_bucket *a,
- apr_bucket **b);
-
-
-/* ***** Shared, reference-counted buckets ***** */
-
-/**
- * Initialize a bucket containing reference-counted data that may be
- * shared. The caller must allocate the bucket if necessary and
- * initialize its type-dependent fields, and allocate and initialize
- * its own private data structure. This function should only be called
- * by type-specific bucket creation functions.
- * @param b The bucket to initialize
- * @param data A pointer to the private data structure
- * with the reference count at the start
- * @param start The start of the data in the bucket
- * relative to the private base pointer
- * @param length The length of the data in the bucket
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_shared_make(apr_bucket *b, void *data,
- apr_off_t start,
- apr_size_t length);
-
-/**
- * Decrement the refcount of the data in the bucket. This function
- * should only be called by type-specific bucket destruction functions.
- * @param data The private data pointer from the bucket to be destroyed
- * @return TRUE or FALSE; TRUE if the reference count is now
- * zero, indicating that the shared resource itself can
- * be destroyed by the caller.
- */
-APU_DECLARE(int) apr_bucket_shared_destroy(void *data);
-
-/**
- * Split a bucket into two at the given point, and adjust the refcount
- * to the underlying data. Most reference-counting bucket types will
- * be able to use this function as their split function without any
- * additional type-specific handling.
- * @param b The bucket to be split
- * @param point The offset of the first byte in the new bucket
- * @return APR_EINVAL if the point is not within the bucket;
- * APR_ENOMEM if allocation failed;
- * or APR_SUCCESS
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_split(apr_bucket *b,
- apr_size_t point);
-
-/**
- * Copy a refcounted bucket, incrementing the reference count. Most
- * reference-counting bucket types will be able to use this function
- * as their copy function without any additional type-specific handling.
- * @param a The bucket to copy
- * @param b Returns a pointer to the new bucket
- * @return APR_ENOMEM if allocation failed;
- or APR_SUCCESS
- */
-APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_copy(apr_bucket *a,
- apr_bucket **b);
-
-
-/* ***** Functions to Create Buckets of varying types ***** */
-/*
- * Each bucket type foo has two initialization functions:
- * apr_bucket_foo_make which sets up some already-allocated memory as a
- * bucket of type foo; and apr_bucket_foo_create which allocates memory
- * for the bucket, calls apr_bucket_make_foo, and initializes the
- * bucket's list pointers. The apr_bucket_foo_make functions are used
- * inside the bucket code to change the type of buckets in place;
- * other code should call apr_bucket_foo_create. All the initialization
- * functions change nothing if they fail.
- */
-
-/**
- * Create an End of Stream bucket. This indicates that there is no more data
- * coming from down the filter stack. All filters should flush at this point.
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_eos_create(apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in an EOS bucket. This indicates that there is no
- * more data coming from down the filter stack. All filters should flush at
- * this point.
- * @param b The bucket to make into an EOS bucket
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b);
-
-/**
- * Create a flush bucket. This indicates that filters should flush their
- * data. There is no guarantee that they will flush it, but this is the
- * best we can do.
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in a FLUSH bucket. This indicates that filters
- * should flush their data. There is no guarantee that they will flush it,
- * but this is the best we can do.
- * @param b The bucket to make into a FLUSH bucket
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b);
-
-/**
- * Create a bucket referring to long-lived data.
- * @param buf The data to insert into the bucket
- * @param nbyte The size of the data to insert.
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const char *buf,
- apr_size_t nbyte,
- apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in a bucket refer to long-lived data
- * @param b The bucket to make into a IMMORTAL bucket
- * @param buf The data to insert into the bucket
- * @param nbyte The size of the data to insert.
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_immortal_make(apr_bucket *b,
- const char *buf,
- apr_size_t nbyte);
-
-/**
- * Create a bucket referring to data on the stack.
- * @param buf The data to insert into the bucket
- * @param nbyte The size of the data to insert.
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_transient_create(const char *buf,
- apr_size_t nbyte,
- apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in a bucket refer to stack data
- * @param b The bucket to make into a TRANSIENT bucket
- * @param buf The data to insert into the bucket
- * @param nbyte The size of the data to insert.
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_transient_make(apr_bucket *b,
- const char *buf,
- apr_size_t nbyte);
-
-/**
- * Create a bucket referring to memory on the heap. If the caller asks
- * for the data to be copied, this function always allocates 4K of
- * memory so that more data can be added to the bucket without
- * requiring another allocation. Therefore not all the data may be put
- * into the bucket. If copying is not requested then the bucket takes
- * over responsibility for free()ing the memory.
- * @param buf The buffer to insert into the bucket
- * @param nbyte The size of the buffer to insert.
- * @param free_func Function to use to free the data; NULL indicates that the
- * bucket should make a copy of the data
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf,
- apr_size_t nbyte,
- void (*free_func)(void *data),
- apr_bucket_alloc_t *list);
-/**
- * Make the bucket passed in a bucket refer to heap data
- * @param b The bucket to make into a HEAP bucket
- * @param buf The buffer to insert into the bucket
- * @param nbyte The size of the buffer to insert.
- * @param free_func Function to use to free the data; NULL indicates that the
- * bucket should make a copy of the data
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_heap_make(apr_bucket *b, const char *buf,
- apr_size_t nbyte,
- void (*free_func)(void *data));
-
-/**
- * Create a bucket referring to memory allocated from a pool.
- *
- * @param buf The buffer to insert into the bucket
- * @param length The number of bytes referred to by this bucket
- * @param pool The pool the memory was allocated from
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_pool_create(const char *buf,
- apr_size_t length,
- apr_pool_t *pool,
- apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in a bucket refer to pool data
- * @param b The bucket to make into a pool bucket
- * @param buf The buffer to insert into the bucket
- * @param length The number of bytes referred to by this bucket
- * @param pool The pool the memory was allocated from
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_pool_make(apr_bucket *b, const char *buf,
- apr_size_t length,
- apr_pool_t *pool);
-
-#if APR_HAS_MMAP
-/**
- * Create a bucket referring to mmap()ed memory.
- * @param mm The mmap to insert into the bucket
- * @param start The offset of the first byte in the mmap
- * that this bucket refers to
- * @param length The number of bytes referred to by this bucket
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm,
- apr_off_t start,
- apr_size_t length,
- apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in a bucket refer to an MMAP'ed file
- * @param b The bucket to make into a MMAP bucket
- * @param mm The mmap to insert into the bucket
- * @param start The offset of the first byte in the mmap
- * that this bucket refers to
- * @param length The number of bytes referred to by this bucket
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_mmap_make(apr_bucket *b, apr_mmap_t *mm,
- apr_off_t start,
- apr_size_t length);
-#endif
-
-/**
- * Create a bucket referring to a socket.
- * @param thissock The socket to put in the bucket
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *thissock,
- apr_bucket_alloc_t *list);
-/**
- * Make the bucket passed in a bucket refer to a socket
- * @param b The bucket to make into a SOCKET bucket
- * @param thissock The socket to put in the bucket
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_socket_make(apr_bucket *b,
- apr_socket_t *thissock);
-
-/**
- * Create a bucket referring to a pipe.
- * @param thispipe The pipe to put in the bucket
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *thispipe,
- apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in a bucket refer to a pipe
- * @param b The bucket to make into a PIPE bucket
- * @param thispipe The pipe to put in the bucket
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_pipe_make(apr_bucket *b,
- apr_file_t *thispipe);
-
-/**
- * Create a bucket referring to a file.
- * @param fd The file to put in the bucket
- * @param offset The offset where the data of interest begins in the file
- * @param len The amount of data in the file we are interested in
- * @param p The pool into which any needed structures should be created
- * while reading from this file bucket
- * @param list The freelist from which this bucket should be allocated
- * @return The new bucket, or NULL if allocation failed
- * @remark If the file is truncated such that the segment of the file
- * referenced by the bucket no longer exists, an attempt to read
- * from the bucket will fail with APR_EOF.
- * @remark apr_brigade_insert_file() should generally be used to
- * insert files into brigades, since that function can correctly
- * handle large file issues.
- */
-APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
- apr_off_t offset,
- apr_size_t len,
- apr_pool_t *p,
- apr_bucket_alloc_t *list);
-
-/**
- * Make the bucket passed in a bucket refer to a file
- * @param b The bucket to make into a FILE bucket
- * @param fd The file to put in the bucket
- * @param offset The offset where the data of interest begins in the file
- * @param len The amount of data in the file we are interested in
- * @param p The pool into which any needed structures should be created
- * while reading from this file bucket
- * @return The new bucket, or NULL if allocation failed
- */
-APU_DECLARE(apr_bucket *) apr_bucket_file_make(apr_bucket *b, apr_file_t *fd,
- apr_off_t offset,
- apr_size_t len, apr_pool_t *p);
-
-/**
- * Enable or disable memory-mapping for a FILE bucket (default is enabled)
- * @param b The bucket
- * @param enabled Whether memory-mapping should be enabled
- * @return APR_SUCCESS normally, or an error code if the operation fails
- */
-APU_DECLARE(apr_status_t) apr_bucket_file_enable_mmap(apr_bucket *b,
- int enabled);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !APR_BUCKETS_H */
diff --git a/include/apr_crypto.h b/include/apr_crypto.h
deleted file mode 100644
index 2577248c..00000000
--- a/include/apr_crypto.h
+++ /dev/null
@@ -1,462 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_CRYPTO_H
-#define APR_CRYPTO_H
-
-#include "apu.h"
-#include "apr_pools.h"
-#include "apr_tables.h"
-#include "apu_errno.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @file apr_crypto.h
- * @brief APR-UTIL Crypto library
- */
-/**
- * @defgroup APR_Util_Crypto Crypto routines
- * @ingroup APR_Util
- * @{
- */
-
-/** CA certificate type unknown */
-#define APR_CRYPTO_CA_TYPE_UNKNOWN 0
-/** binary DER encoded CA certificate */
-#define APR_CRYPTO_CA_TYPE_DER 1
-/** PEM encoded CA certificate */
-#define APR_CRYPTO_CA_TYPE_BASE64 2
-/** Netscape/Mozilla cert7.db CA certificate database */
-#define APR_CRYPTO_CA_TYPE_CERT7_DB 3
-/** Netscape/Mozilla secmod file */
-#define APR_CRYPTO_CA_TYPE_SECMOD 4
-/** Client certificate type unknown */
-#define APR_CRYPTO_CERT_TYPE_UNKNOWN 5
-/** binary DER encoded client certificate */
-#define APR_CRYPTO_CERT_TYPE_DER 6
-/** PEM encoded client certificate */
-#define APR_CRYPTO_CERT_TYPE_BASE64 7
-/** Netscape/Mozilla key3.db client certificate database */
-#define APR_CRYPTO_CERT_TYPE_KEY3_DB 8
-/** Netscape/Mozilla client certificate nickname */
-#define APR_CRYPTO_CERT_TYPE_NICKNAME 9
-/** Private key type unknown */
-#define APR_CRYPTO_KEY_TYPE_UNKNOWN 10
-/** binary DER encoded private key */
-#define APR_CRYPTO_KEY_TYPE_DER 11
-/** PEM encoded private key */
-#define APR_CRYPTO_KEY_TYPE_BASE64 12
-/** PKCS#12 encoded client certificate */
-#define APR_CRYPTO_CERT_TYPE_PFX 13
-/** PKCS#12 encoded private key */
-#define APR_CRYPTO_KEY_TYPE_PFX 14
-/** Openldap directory full of base64-encoded cert
- * authorities with hashes in corresponding .0 directory
- */
-#define APR_CRYPTO_CA_TYPE_CACERTDIR_BASE64 15
-/** CMS Key Database with private key and cert chain */
-#define APR_CRYPTO_CA_TYPE_CMS 16
-/** Symmetrical key */
-#define APR_CRYPTO_KEY_TYPE_SYM 17
-/** Netscape/Mozilla certificate database directory */
-#define APR_CRYPTO_CA_TYPE_DIR 18
-/** Crypto engine */
-#define APR_CRYPTO_ENGINE 101
-
-#if APU_HAVE_CRYPTO
-
-#ifndef APU_CRYPTO_RECOMMENDED_DRIVER
-#if APU_HAVE_OPENSSL
-#define APU_CRYPTO_RECOMMENDED_DRIVER "openssl"
-#else
-#if APU_HAVE_NSS
-#define APU_CRYPTO_RECOMMENDED_DRIVER "nss"
-#else
-#if APU_HAVE_MSCNG
-#define APU_CRYPTO_RECOMMENDED_DRIVER "mscng"
-#else
-#if APU_HAVE_MSCAPI
-#define APU_CRYPTO_RECOMMENDED_DRIVER "mscapi"
-#else
-#endif
-#endif
-#endif
-#endif
-#endif
-
-/**
- * Symmetric Key types understood by the library.
- *
- * NOTE: It is expected that this list will grow over time.
- *
- * Interoperability Matrix:
- *
- * The matrix is based on the testcrypto.c unit test, which attempts to
- * test whether a simple encrypt/decrypt will succeed, as well as testing
- * whether an encrypted string by one library can be decrypted by the
- * others.
- *
- * Some libraries will successfully encrypt and decrypt their own data,
- * but won't decrypt data from another library. It is hoped that over
- * time these anomalies will be found and fixed, but until then it is
- * recommended that ciphers are chosen that interoperate across platform.
- *
- * An X below means the test passes, it does not necessarily mean that
- * encryption performed is correct or secure. Applications should stick
- * to ciphers that pass the interoperablity tests on the right hand side
- * of the table.
- *
- * Aligned data is data whose length is a multiple of the block size for
- * the chosen cipher. Padded data is data that is not aligned by block
- * size and must be padded by the crypto library.
- *
- * OpenSSL NSS Interop
- * Align Pad Align Pad Align Pad
- * 3DES_192/CBC X X X X X X
- * 3DES_192/ECB X X
- * AES_256/CBC X X X X X X
- * AES_256/ECB X X X X
- * AES_192/CBC X X X X
- * AES_192/ECB X X X
- * AES_128/CBC X X X X
- * AES_128/ECB X X X
- *
- * Conclusion: for padded data, use 3DES_192/CBC or AES_256/CBC. For
- * aligned data, use 3DES_192/CBC, AES_256/CBC or AES_256/ECB.
- */
-
-typedef enum {
- KEY_NONE, KEY_3DES_192, /** 192 bit (3-Key) 3DES */
- KEY_AES_128, /** 128 bit AES */
- KEY_AES_192, /** 192 bit AES */
- KEY_AES_256
-/** 256 bit AES */
-} apr_crypto_block_key_type_e;
-
-typedef enum {
- MODE_NONE, /** An error condition */
- MODE_ECB, /** Electronic Code Book */
- MODE_CBC
-/** Cipher Block Chaining */
-} apr_crypto_block_key_mode_e;
-
-/**
- * Certificate and private key structure.
- *
- * The various crypto backends expect certificates and keys in a wide
- * array of formats. This structure is analogous to apr_ldap_opt_tls_cert_t
- * from the LDAP interface. Ultimately that interface should be meshed with
- * this one.
- * @param type Type of certificate APR_CRYPTO_*_TYPE_*
- * @param path Path, file or nickname of the certificate
- * @param password Optional password, can be NULL
- */
-typedef struct apr_crypto_param_t {
- int type;
- const char *path;
- const char *password;
-} apr_crypto_param_t;
-
-/* These are opaque structs. Instantiation is up to each backend */
-typedef struct apr_crypto_driver_t apr_crypto_driver_t;
-typedef struct apr_crypto_config_t apr_crypto_config_t;
-typedef struct apr_crypto_key_t apr_crypto_key_t;
-typedef struct apr_crypto_block_t apr_crypto_block_t;
-
-/**
- * Public factory API, common to all backends.
- */
-typedef struct apr_crypto_t {
- apr_pool_t *pool;
- apu_err_t *result;
- apr_array_header_t *keys;
- apr_crypto_config_t *config;
-} apr_crypto_t;
-
-/**
- * @brief Perform once-only initialisation. Call once only.
- *
- * @param pool - pool to register any shutdown cleanups, etc
- * @return APR_NOTIMPL in case of no crypto support.
- */
-APU_DECLARE(apr_status_t) apr_crypto_init(apr_pool_t *pool,
- const apr_array_header_t *params);
-
-/**
- * @brief Get the driver struct for a name
- *
- * @param pool - (process) pool to register cleanup
- * @param name - driver name
- * @param driver - pointer to driver struct.
- * @return APR_SUCCESS for success
- * @return APR_ENOTIMPL for no driver (when DSO not enabled)
- * @return APR_EDSOOPEN if DSO driver file can't be opened
- * @return APR_ESYMNOTFOUND if the driver file doesn't contain a driver
- */
-APU_DECLARE(apr_status_t) apr_crypto_get_driver(apr_pool_t *pool, const char *name,
- const apr_crypto_driver_t **driver, const apr_array_header_t *params,
- const apu_err_t **result);
-
-/**
- * @brief Return the name of the driver.
- *
- * @param driver - The driver in use.
- * @return The name of the driver.
- */
-APU_DECLARE(const char *)apr_crypto_driver_name (const apr_crypto_driver_t *driver);
-
-/**
- * @brief Get the result of the last operation on a factory. If the result
- * is NULL, the operation was successful.
- * @param driver - driver to use
- * @param factory - factory pointer will be written here
- * @param result - the result structure
- * @return APR_SUCCESS for success
- */
-APU_DECLARE(apr_status_t) apr_crypto_error(const apr_crypto_t *f,
- const apu_err_t **result);
-
-/**
- * @brief Create a context for supporting encryption. Keys, certificates,
- * algorithms and other parameters will be set per context. More than
- * one context can be created at one time. A cleanup will be automatically
- * registered with the given pool to guarantee a graceful shutdown.
- * @param driver - driver to use
- * @param pool - process pool
- * @param params - array of key parameters
- * @param factory - factory pointer will be written here
- * @return APR_ENOENGINE when the engine specified does not exist. APR_EINITENGINE
- * if the engine cannot be initialised.
- */
-APU_DECLARE(apr_status_t) apr_crypto_factory(const apr_crypto_driver_t *driver,
- apr_pool_t *pool, const apr_array_header_t *params, apr_crypto_t **f);
-
-/**
- * @brief Create a key from the given passphrase. By default, the PBKDF2
- * algorithm is used to generate the key from the passphrase. It is expected
- * that the same pass phrase will generate the same key, regardless of the
- * backend crypto platform used. The key is cleaned up when the context
- * is cleaned, and may be reused with multiple encryption or decryption
- * operations.
- * @note If *key is NULL, a apr_crypto_key_t will be created from a pool. If
- * *key is not NULL, *key must point at a previously created structure.
- * @param driver - driver to use
- * @param p The pool to use.
- * @param f The context to use.
- * @param pass The passphrase to use.
- * @param passLen The passphrase length in bytes
- * @param salt The salt to use.
- * @param saltLen The salt length in bytes
- * @param type 3DES_192, AES_128, AES_192, AES_256.
- * @param mode Electronic Code Book / Cipher Block Chaining.
- * @param doPad Pad if necessary.
- * @param key The key returned, see note.
- * @param ivSize The size of the initialisation vector will be returned, based
- * on whether an IV is relevant for this type of crypto.
- * @return Returns APR_ENOKEY if the pass phrase is missing or empty, or if a backend
- * error occurred while generating the key. APR_ENOCIPHER if the type or mode
- * is not supported by the particular backend. APR_EKEYTYPE if the key type is
- * not known. APR_EPADDING if padding was requested but is not supported.
- * APR_ENOTIMPL if not implemented.
- */
-APU_DECLARE(apr_status_t) apr_crypto_passphrase(const apr_crypto_driver_t *driver,
- apr_pool_t *p, const apr_crypto_t *f, const char *pass,
- apr_size_t passLen, const unsigned char * salt, apr_size_t saltLen,
- const apr_crypto_block_key_type_e type,
- const apr_crypto_block_key_mode_e mode, const int doPad,
- const int iterations, apr_crypto_key_t **key, apr_size_t *ivSize);
-
-/**
- * @brief Initialise a context for encrypting arbitrary data using the given key.
- * @note If *ctx is NULL, a apr_crypto_block_t will be created from a pool. If
- * *ctx is not NULL, *ctx must point at a previously created structure.
- * @param driver - driver to use
- * @param p The pool to use.
- * @param f The block factory to use.
- * @param key The key structure to use.
- * @param iv Optional initialisation vector. If the buffer pointed to is NULL,
- * an IV will be created at random, in space allocated from the pool.
- * If the buffer pointed to is not NULL, the IV in the buffer will be
- * used.
- * @param ctx The block context returned, see note.
- * @param blockSize The block size of the cipher.
- * @return Returns APR_ENOIV if an initialisation vector is required but not specified.
- * Returns APR_EINIT if the backend failed to initialise the context. Returns
- * APR_ENOTIMPL if not implemented.
- */
-APU_DECLARE(apr_status_t) apr_crypto_block_encrypt_init(
- const apr_crypto_driver_t *driver, apr_pool_t *p,
- const apr_crypto_t *f, const apr_crypto_key_t *key,
- const unsigned char **iv, apr_crypto_block_t **ctx,
- apr_size_t *blockSize);
-
-/**
- * @brief Encrypt data provided by in, write it to out.
- * @note The number of bytes written will be written to outlen. If
- * out is NULL, outlen will contain the maximum size of the
- * buffer needed to hold the data, including any data
- * generated by apr_crypto_block_encrypt_finish below. If *out points
- * to NULL, a buffer sufficiently large will be created from
- * the pool provided. If *out points to a not-NULL value, this
- * value will be used as a buffer instead.
- * @param driver - driver to use
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written,
- * see note.
- * @param outlen Length of the output will be written here.
- * @param in Address of the buffer to read.
- * @param inlen Length of the buffer to read.
- * @return APR_ECRYPT if an error occurred. Returns APR_ENOTIMPL if
- * not implemented.
- */
-APU_DECLARE(apr_status_t) apr_crypto_block_encrypt(
- const apr_crypto_driver_t *driver, apr_crypto_block_t *ctx,
- unsigned char **out, apr_size_t *outlen, const unsigned char *in,
- apr_size_t inlen);
-
-/**
- * @brief Encrypt final data block, write it to out.
- * @note If necessary the final block will be written out after being
- * padded. Typically the final block will be written to the
- * same buffer used by apr_crypto_block_encrypt, offset by the
- * number of bytes returned as actually written by the
- * apr_crypto_block_encrypt() call. After this call, the context
- * is cleaned and can be reused by apr_crypto_block_encrypt_init().
- * @param driver - driver to use
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written. This
- * buffer must already exist, and is usually the same
- * buffer used by apr_evp_crypt(). See note.
- * @param outlen Length of the output will be written here.
- * @return APR_ECRYPT if an error occurred.
- * @return APR_EPADDING if padding was enabled and the block was incorrectly
- * formatted.
- * @return APR_ENOTIMPL if not implemented.
- */
-APU_DECLARE(apr_status_t) apr_crypto_block_encrypt_finish(
- const apr_crypto_driver_t *driver, apr_crypto_block_t *ctx,
- unsigned char *out, apr_size_t *outlen);
-
-/**
- * @brief Initialise a context for decrypting arbitrary data using the given key.
- * @note If *ctx is NULL, a apr_crypto_block_t will be created from a pool. If
- * *ctx is not NULL, *ctx must point at a previously created structure.
- * @param driver - driver to use
- * @param p The pool to use.
- * @param f The block factory to use.
- * @param key The key structure to use.
- * @param iv Optional initialisation vector.
- * @param ctx The block context returned, see note.
- * @param blockSize The block size of the cipher.
- * @return Returns APR_ENOIV if an initialisation vector is required but not specified.
- * Returns APR_EINIT if the backend failed to initialise the context. Returns
- * APR_ENOTIMPL if not implemented.
- */
-APU_DECLARE(apr_status_t) apr_crypto_block_decrypt_init(
- const apr_crypto_driver_t *driver, apr_pool_t *p,
- const apr_crypto_t *f, const apr_crypto_key_t *key,
- const unsigned char *iv, apr_crypto_block_t **ctx,
- apr_size_t *blockSize);
-
-/**
- * @brief Decrypt data provided by in, write it to out.
- * @note The number of bytes written will be written to outlen. If
- * out is NULL, outlen will contain the maximum size of the
- * buffer needed to hold the data, including any data
- * generated by apr_crypto_block_decrypt_finish below. If *out points
- * to NULL, a buffer sufficiently large will be created from
- * the pool provided. If *out points to a not-NULL value, this
- * value will be used as a buffer instead.
- * @param driver - driver to use
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written,
- * see note.
- * @param outlen Length of the output will be written here.
- * @param in Address of the buffer to read.
- * @param inlen Length of the buffer to read.
- * @return APR_ECRYPT if an error occurred. Returns APR_ENOTIMPL if
- * not implemented.
- */
-APU_DECLARE(apr_status_t) apr_crypto_block_decrypt(
- const apr_crypto_driver_t *driver, apr_crypto_block_t *ctx,
- unsigned char **out, apr_size_t *outlen, const unsigned char *in,
- apr_size_t inlen);
-
-/**
- * @brief Decrypt final data block, write it to out.
- * @note If necessary the final block will be written out after being
- * padded. Typically the final block will be written to the
- * same buffer used by apr_crypto_block_decrypt, offset by the
- * number of bytes returned as actually written by the
- * apr_crypto_block_decrypt() call. After this call, the context
- * is cleaned and can be reused by apr_crypto_block_decrypt_init().
- * @param driver - driver to use
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written. This
- * buffer must already exist, and is usually the same
- * buffer used by apr_evp_crypt(). See note.
- * @param outlen Length of the output will be written here.
- * @return APR_ECRYPT if an error occurred.
- * @return APR_EPADDING if padding was enabled and the block was incorrectly
- * formatted.
- * @return APR_ENOTIMPL if not implemented.
- */
-APU_DECLARE(apr_status_t) apr_crypto_block_decrypt_finish(
- const apr_crypto_driver_t *driver, apr_crypto_block_t *ctx,
- unsigned char *out, apr_size_t *outlen);
-
-/**
- * @brief Clean encryption / decryption context.
- * @note After cleanup, a context is free to be reused if necessary.
- * @param driver - driver to use
- * @param ctx The block context to use.
- * @return Returns APR_ENOTIMPL if not supported.
- */
-APU_DECLARE(apr_status_t) apr_crypto_block_cleanup(
- const apr_crypto_driver_t *driver, apr_crypto_block_t *ctx);
-
-/**
- * @brief Clean encryption / decryption factory.
- * @note After cleanup, a factory is free to be reused if necessary.
- * @param driver - driver to use
- * @param f The factory to use.
- * @return Returns APR_ENOTIMPL if not supported.
- */
-APU_DECLARE(apr_status_t) apr_crypto_cleanup(const apr_crypto_driver_t *driver,
- apr_crypto_t *f);
-
-/**
- * @brief Shutdown the crypto library.
- * @note After shutdown, it is expected that the init function can be called again.
- * @param driver - driver to use
- * @param p The pool to use.
- * @return Returns APR_ENOTIMPL if not supported.
- */
-APU_DECLARE(apr_status_t) apr_crypto_shutdown(const apr_crypto_driver_t *driver,
- apr_pool_t *p);
-
-#endif /* APU_HAVE_CRYPTO */
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/apr_date.h b/include/apr_date.h
deleted file mode 100644
index b098b542..00000000
--- a/include/apr_date.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_DATE_H
-#define APR_DATE_H
-
-/**
- * @file apr_date.h
- * @brief APR-UTIL date routines
- */
-
-/**
- * @defgroup APR_Util_Date Date routines
- * @ingroup APR_Util
- * @{
- */
-
-/*
- * apr_date.h: prototypes for date parsing utility routines
- */
-
-#include "apu.h"
-#include "apr_time.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** A bad date. */
-#define APR_DATE_BAD ((apr_time_t)0)
-
-/**
- * Compare a string to a mask
- * @param data The string to compare
- * @param mask Mask characters (arbitrary maximum is 256 characters):
- * <PRE>
- * '\@' - uppercase letter
- * '\$' - lowercase letter
- * '\&' - hex digit
- * '#' - digit
- * '~' - digit or space
- * '*' - swallow remaining characters
- * </PRE>
- * @remark The mask tests for an exact match for any other character
- * @return 1 if the string matches, 0 otherwise
- */
-APU_DECLARE(int) apr_date_checkmask(const char *data, const char *mask);
-
-/**
- * Parses an HTTP date in one of three standard forms:
- * <PRE>
- * Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
- * Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
- * Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
- * </PRE>
- * @param date The date in one of the three formats above
- * @return the apr_time_t number of microseconds since 1 Jan 1970 GMT, or
- * 0 if this would be out of range or if the date is invalid.
- */
-APU_DECLARE(apr_time_t) apr_date_parse_http(const char *date);
-
-/**
- * Parses a string resembling an RFC 822 date. This is meant to be
- * leinent in its parsing of dates. Hence, this will parse a wider
- * range of dates than apr_date_parse_http.
- *
- * The prominent mailer (or poster, if mailer is unknown) that has
- * been seen in the wild is included for the unknown formats.
- * <PRE>
- * Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
- * Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
- * Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
- * Sun, 6 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
- * Sun, 06 Nov 94 08:49:37 GMT ; RFC 822
- * Sun, 6 Nov 94 08:49:37 GMT ; RFC 822
- * Sun, 06 Nov 94 08:49 GMT ; Unknown [drtr\@ast.cam.ac.uk]
- * Sun, 6 Nov 94 08:49 GMT ; Unknown [drtr\@ast.cam.ac.uk]
- * Sun, 06 Nov 94 8:49:37 GMT ; Unknown [Elm 70.85]
- * Sun, 6 Nov 94 8:49:37 GMT ; Unknown [Elm 70.85]
- * </PRE>
- *
- * @param date The date in one of the formats above
- * @return the apr_time_t number of microseconds since 1 Jan 1970 GMT, or
- * 0 if this would be out of range or if the date is invalid.
- */
-APU_DECLARE(apr_time_t) apr_date_parse_rfc(const char *date);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !APR_DATE_H */
diff --git a/include/apr_dbd.h b/include/apr_dbd.h
deleted file mode 100644
index f30977da..00000000
--- a/include/apr_dbd.h
+++ /dev/null
@@ -1,552 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* Overview of what this is and does:
- * http://www.apache.org/~niq/dbd.html
- */
-
-#ifndef APR_DBD_H
-#define APR_DBD_H
-
-#include "apu.h"
-#include "apr_pools.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @file apr_dbd.h
- * @brief APR-UTIL DBD library
- */
-/**
- * @defgroup APR_Util_DBD DBD routines
- * @ingroup APR_Util
- * @{
- */
-
-/**
- * Mapping of C to SQL types, used for prepared statements.
- * @remarks
- * For apr_dbd_p[v]query/select functions, in and out parameters are always
- * const char * (i.e. regular nul terminated strings). LOB types are passed
- * with four (4) arguments: payload, length, table and column, all as const
- * char *, where table and column are reserved for future use by Oracle.
- * @remarks
- * For apr_dbd_p[v]bquery/select functions, in and out parameters are
- * described next to each enumeration constant and are generally native binary
- * types or some APR data type. LOB types are passed with four (4) arguments:
- * payload (char*), length (apr_size_t*), table (char*) and column (char*).
- * Table and column are reserved for future use by Oracle.
- */
-typedef enum {
- APR_DBD_TYPE_NONE,
- APR_DBD_TYPE_TINY, /**< \%hhd : in, out: char* */
- APR_DBD_TYPE_UTINY, /**< \%hhu : in, out: unsigned char* */
- APR_DBD_TYPE_SHORT, /**< \%hd : in, out: short* */
- APR_DBD_TYPE_USHORT, /**< \%hu : in, out: unsigned short* */
- APR_DBD_TYPE_INT, /**< \%d : in, out: int* */
- APR_DBD_TYPE_UINT, /**< \%u : in, out: unsigned int* */
- APR_DBD_TYPE_LONG, /**< \%ld : in, out: long* */
- APR_DBD_TYPE_ULONG, /**< \%lu : in, out: unsigned long* */
- APR_DBD_TYPE_LONGLONG, /**< \%lld : in, out: apr_int64_t* */
- APR_DBD_TYPE_ULONGLONG, /**< \%llu : in, out: apr_uint64_t* */
- APR_DBD_TYPE_FLOAT, /**< \%f : in, out: float* */
- APR_DBD_TYPE_DOUBLE, /**< \%lf : in, out: double* */
- APR_DBD_TYPE_STRING, /**< \%s : in: char*, out: char** */
- APR_DBD_TYPE_TEXT, /**< \%pDt : in: char*, out: char** */
- APR_DBD_TYPE_TIME, /**< \%pDi : in: char*, out: char** */
- APR_DBD_TYPE_DATE, /**< \%pDd : in: char*, out: char** */
- APR_DBD_TYPE_DATETIME, /**< \%pDa : in: char*, out: char** */
- APR_DBD_TYPE_TIMESTAMP, /**< \%pDs : in: char*, out: char** */
- APR_DBD_TYPE_ZTIMESTAMP, /**< \%pDz : in: char*, out: char** */
- APR_DBD_TYPE_BLOB, /**< \%pDb : in: char* apr_size_t* char* char*, out: apr_bucket_brigade* */
- APR_DBD_TYPE_CLOB, /**< \%pDc : in: char* apr_size_t* char* char*, out: apr_bucket_brigade* */
- APR_DBD_TYPE_NULL /**< \%pDn : in: void*, out: void** */
-} apr_dbd_type_e;
-
-/* These are opaque structs. Instantiation is up to each backend */
-typedef struct apr_dbd_driver_t apr_dbd_driver_t;
-typedef struct apr_dbd_t apr_dbd_t;
-typedef struct apr_dbd_transaction_t apr_dbd_transaction_t;
-typedef struct apr_dbd_results_t apr_dbd_results_t;
-typedef struct apr_dbd_row_t apr_dbd_row_t;
-typedef struct apr_dbd_prepared_t apr_dbd_prepared_t;
-
-/** apr_dbd_init: perform once-only initialisation. Call once only.
- *
- * @param pool - pool to register any shutdown cleanups, etc
- */
-APU_DECLARE(apr_status_t) apr_dbd_init(apr_pool_t *pool);
-
-/** apr_dbd_get_driver: get the driver struct for a name
- *
- * @param pool - (process) pool to register cleanup
- * @param name - driver name
- * @param driver - pointer to driver struct.
- * @return APR_SUCCESS for success
- * @return APR_ENOTIMPL for no driver (when DSO not enabled)
- * @return APR_EDSOOPEN if DSO driver file can't be opened
- * @return APR_ESYMNOTFOUND if the driver file doesn't contain a driver
- */
-APU_DECLARE(apr_status_t) apr_dbd_get_driver(apr_pool_t *pool, const char *name,
- const apr_dbd_driver_t **driver);
-
-/** apr_dbd_open_ex: open a connection to a backend
- *
- * @param pool - working pool
- * @param params - arguments to driver (implementation-dependent)
- * @param handle - pointer to handle to return
- * @param driver - driver struct.
- * @param error - descriptive error.
- * @return APR_SUCCESS for success
- * @return APR_EGENERAL if driver exists but connection failed
- * @remarks PostgreSQL: the params is passed directly to the PQconnectdb()
- * function (check PostgreSQL documentation for more details on the syntax).
- * @remarks SQLite2: the params is split on a colon, with the first part used
- * as the filename and second part converted to an integer and used as file
- * mode.
- * @remarks SQLite3: the params is passed directly to the sqlite3_open()
- * function as a filename to be opened (check SQLite3 documentation for more
- * details).
- * @remarks Oracle: the params can have "user", "pass", "dbname" and "server"
- * keys, each followed by an equal sign and a value. Such key/value pairs can
- * be delimited by space, CR, LF, tab, semicolon, vertical bar or comma.
- * @remarks MySQL: the params can have "host", "port", "user", "pass",
- * "dbname", "sock", "flags" "fldsz", "group" and "reconnect" keys, each
- * followed by an equal sign and a value. Such key/value pairs can be
- * delimited by space, CR, LF, tab, semicolon, vertical bar or comma. For
- * now, "flags" can only recognise CLIENT_FOUND_ROWS (check MySQL manual for
- * details). The value associated with "fldsz" determines maximum amount of
- * memory (in bytes) for each of the fields in the result set of prepared
- * statements. By default, this value is 1 MB. The value associated with
- * "group" determines which group from configuration file to use (see
- * MYSQL_READ_DEFAULT_GROUP option of mysql_options() in MySQL manual).
- * Reconnect is set to 1 by default (i.e. true).
- * @remarks FreeTDS: the params can have "username", "password", "appname",
- * "dbname", "host", "charset", "lang" and "server" keys, each followed by an
- * equal sign and a value.
- */
-APU_DECLARE(apr_status_t) apr_dbd_open_ex(const apr_dbd_driver_t *driver,
- apr_pool_t *pool, const char *params,
- apr_dbd_t **handle,
- const char **error);
-
-/** apr_dbd_open: open a connection to a backend
- *
- * @param pool - working pool
- * @param params - arguments to driver (implementation-dependent)
- * @param handle - pointer to handle to return
- * @param driver - driver struct.
- * @return APR_SUCCESS for success
- * @return APR_EGENERAL if driver exists but connection failed
- * @see apr_dbd_open_ex
- */
-APU_DECLARE(apr_status_t) apr_dbd_open(const apr_dbd_driver_t *driver,
- apr_pool_t *pool, const char *params,
- apr_dbd_t **handle);
-
-/** apr_dbd_close: close a connection to a backend
- *
- * @param handle - handle to close
- * @param driver - driver struct.
- * @return APR_SUCCESS for success or error status
- */
-APU_DECLARE(apr_status_t) apr_dbd_close(const apr_dbd_driver_t *driver,
- apr_dbd_t *handle);
-
-/* apr-function-shaped versions of things */
-
-/** apr_dbd_name: get the name of the driver
- *
- * @param driver - the driver
- * @return - name
- */
-APU_DECLARE(const char*) apr_dbd_name(const apr_dbd_driver_t *driver);
-
-/** apr_dbd_native_handle: get native database handle of the underlying db
- *
- * @param driver - the driver
- * @param handle - apr_dbd handle
- * @return - native handle
- */
-APU_DECLARE(void*) apr_dbd_native_handle(const apr_dbd_driver_t *driver,
- apr_dbd_t *handle);
-
-/** check_conn: check status of a database connection
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection to check
- * @return APR_SUCCESS or error
- */
-APU_DECLARE(int) apr_dbd_check_conn(const apr_dbd_driver_t *driver, apr_pool_t *pool,
- apr_dbd_t *handle);
-
-/** apr_dbd_set_dbname: select database name. May be a no-op if not supported.
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param name - the database to select
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_set_dbname(const apr_dbd_driver_t *driver, apr_pool_t *pool,
- apr_dbd_t *handle, const char *name);
-
-/** apr_dbd_transaction_start: start a transaction. May be a no-op.
- *
- * @param driver - the driver
- * @param pool - a pool to use for error messages (if any).
- * @param handle - the db connection
- * @param trans - ptr to a transaction. May be null on entry
- * @return 0 for success or error code
- * @remarks Note that transaction modes, set by calling
- * apr_dbd_transaction_mode_set(), will affect all query/select calls within
- * a transaction. By default, any error in query/select during a transaction
- * will cause the transaction to inherit the error code and any further
- * query/select calls will fail immediately. Put transaction in "ignore
- * errors" mode to avoid that. Use "rollback" mode to do explicit rollback.
- */
-APU_DECLARE(int) apr_dbd_transaction_start(const apr_dbd_driver_t *driver,
- apr_pool_t *pool,
- apr_dbd_t *handle,
- apr_dbd_transaction_t **trans);
-
-/** apr_dbd_transaction_end: end a transaction
- * (commit on success, rollback on error).
- * May be a no-op.
- *
- * @param driver - the driver
- * @param handle - the db connection
- * @param trans - the transaction.
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_transaction_end(const apr_dbd_driver_t *driver,
- apr_pool_t *pool,
- apr_dbd_transaction_t *trans);
-
-#define APR_DBD_TRANSACTION_COMMIT 0x00 /**< commit the transaction */
-#define APR_DBD_TRANSACTION_ROLLBACK 0x01 /**< rollback the transaction */
-#define APR_DBD_TRANSACTION_IGNORE_ERRORS 0x02 /**< ignore transaction errors */
-
-/** apr_dbd_transaction_mode_get: get the mode of transaction
- *
- * @param driver - the driver
- * @param trans - the transaction
- * @return mode of transaction
- */
-APU_DECLARE(int) apr_dbd_transaction_mode_get(const apr_dbd_driver_t *driver,
- apr_dbd_transaction_t *trans);
-
-/** apr_dbd_transaction_mode_set: set the mode of transaction
- *
- * @param driver - the driver
- * @param trans - the transaction
- * @param mode - new mode of the transaction
- * @return the mode of transaction in force after the call
- */
-APU_DECLARE(int) apr_dbd_transaction_mode_set(const apr_dbd_driver_t *driver,
- apr_dbd_transaction_t *trans,
- int mode);
-
-/** apr_dbd_query: execute an SQL query that doesn't return a result set
- *
- * @param driver - the driver
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the SQL statement to execute
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_query(const apr_dbd_driver_t *driver, apr_dbd_t *handle,
- int *nrows, const char *statement);
-
-/** apr_dbd_select: execute an SQL query that returns a result set
- *
- * @param driver - the driver
- * @param pool - pool to allocate the result set
- * @param handle - the connection
- * @param res - pointer to result set pointer. May point to NULL on entry
- * @param statement - the SQL statement to execute
- * @param random - 1 to support random access to results (seek any row);
- * 0 to support only looping through results in order
- * (async access - faster)
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_select(const apr_dbd_driver_t *driver, apr_pool_t *pool,
- apr_dbd_t *handle, apr_dbd_results_t **res,
- const char *statement, int random);
-
-/** apr_dbd_num_cols: get the number of columns in a results set
- *
- * @param driver - the driver
- * @param res - result set.
- * @return number of columns
- */
-APU_DECLARE(int) apr_dbd_num_cols(const apr_dbd_driver_t *driver,
- apr_dbd_results_t *res);
-
-/** apr_dbd_num_tuples: get the number of rows in a results set
- * of a synchronous select
- *
- * @param driver - the driver
- * @param res - result set.
- * @return number of rows, or -1 if the results are asynchronous
- */
-APU_DECLARE(int) apr_dbd_num_tuples(const apr_dbd_driver_t *driver,
- apr_dbd_results_t *res);
-
-/** apr_dbd_get_row: get a row from a result set
- *
- * @param driver - the driver
- * @param pool - pool to allocate the row
- * @param res - result set pointer
- * @param row - pointer to row pointer. May point to NULL on entry
- * @param rownum - row number (counting from 1), or -1 for "next row".
- * Ignored if random access is not supported.
- * @return 0 for success, -1 for rownum out of range or data finished
- */
-APU_DECLARE(int) apr_dbd_get_row(const apr_dbd_driver_t *driver, apr_pool_t *pool,
- apr_dbd_results_t *res, apr_dbd_row_t **row,
- int rownum);
-
-/** apr_dbd_get_entry: get an entry from a row
- *
- * @param driver - the driver
- * @param row - row pointer
- * @param col - entry number
- * @return value from the row, or NULL if col is out of bounds.
- */
-APU_DECLARE(const char*) apr_dbd_get_entry(const apr_dbd_driver_t *driver,
- apr_dbd_row_t *row, int col);
-
-/** apr_dbd_get_name: get an entry name from a result set
- *
- * @param driver - the driver
- * @param res - result set pointer
- * @param col - entry number
- * @return name of the entry, or NULL if col is out of bounds.
- */
-APU_DECLARE(const char*) apr_dbd_get_name(const apr_dbd_driver_t *driver,
- apr_dbd_results_t *res, int col);
-
-
-/** apr_dbd_error: get current error message (if any)
- *
- * @param driver - the driver
- * @param handle - the connection
- * @param errnum - error code from operation that returned an error
- * @return the database current error message, or message for errnum
- * (implementation-dependent whether errnum is ignored)
- */
-APU_DECLARE(const char*) apr_dbd_error(const apr_dbd_driver_t *driver,
- apr_dbd_t *handle, int errnum);
-
-/** apr_dbd_escape: escape a string so it is safe for use in query/select
- *
- * @param driver - the driver
- * @param pool - pool to alloc the result from
- * @param string - the string to escape
- * @param handle - the connection
- * @return the escaped, safe string
- */
-APU_DECLARE(const char*) apr_dbd_escape(const apr_dbd_driver_t *driver,
- apr_pool_t *pool, const char *string,
- apr_dbd_t *handle);
-
-/** apr_dbd_prepare: prepare a statement
- *
- * @param driver - the driver
- * @param pool - pool to alloc the result from
- * @param handle - the connection
- * @param query - the SQL query
- * @param label - A label for the prepared statement.
- * use NULL for temporary prepared statements
- * (eg within a Request in httpd)
- * @param statement - statement to prepare. May point to null on entry.
- * @return 0 for success or error code
- * @remarks To specify parameters of the prepared query, use \%s, \%d etc.
- * (see below for full list) in place of database specific parameter syntax
- * (e.g. for PostgreSQL, this would be $1, $2, for SQLite3 this would be ?
- * etc.). For instance: "SELECT name FROM customers WHERE name=%s" would be
- * a query that this function understands.
- * @remarks Here is the full list of format specifiers that this function
- * understands and what they map to in SQL: \%hhd (TINY INT), \%hhu (UNSIGNED
- * TINY INT), \%hd (SHORT), \%hu (UNSIGNED SHORT), \%d (INT), \%u (UNSIGNED
- * INT), \%ld (LONG), \%lu (UNSIGNED LONG), \%lld (LONG LONG), \%llu
- * (UNSIGNED LONG LONG), \%f (FLOAT, REAL), \%lf (DOUBLE PRECISION), \%s
- * (VARCHAR), \%pDt (TEXT), \%pDi (TIME), \%pDd (DATE), \%pDa (DATETIME),
- * \%pDs (TIMESTAMP), \%pDz (TIMESTAMP WITH TIME ZONE), \%pDb (BLOB), \%pDc
- * (CLOB) and \%pDn (NULL). Not all databases have support for all these
- * types, so the underlying driver will attempt the "best match" where
- * possible. A \% followed by any letter not in the above list will be
- * interpreted as VARCHAR (i.e. \%s).
- */
-APU_DECLARE(int) apr_dbd_prepare(const apr_dbd_driver_t *driver, apr_pool_t *pool,
- apr_dbd_t *handle, const char *query,
- const char *label,
- apr_dbd_prepared_t **statement);
-
-
-/** apr_dbd_pquery: query using a prepared statement + args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param nargs - ignored (for backward compatibility only)
- * @param args - args to prepared statement
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_pquery(const apr_dbd_driver_t *driver, apr_pool_t *pool,
- apr_dbd_t *handle, int *nrows,
- apr_dbd_prepared_t *statement, int nargs,
- const char **args);
-
-/** apr_dbd_pselect: select using a prepared statement + args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param nargs - ignored (for backward compatibility only)
- * @param args - args to prepared statement
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_pselect(const apr_dbd_driver_t *driver, apr_pool_t *pool,
- apr_dbd_t *handle, apr_dbd_results_t **res,
- apr_dbd_prepared_t *statement, int random,
- int nargs, const char **args);
-
-/** apr_dbd_pvquery: query using a prepared statement + args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param ... - varargs list
- * @return 0 for success or error code
- */
-APU_DECLARE_NONSTD(int) apr_dbd_pvquery(const apr_dbd_driver_t *driver,
- apr_pool_t *pool,
- apr_dbd_t *handle, int *nrows,
- apr_dbd_prepared_t *statement, ...);
-
-/** apr_dbd_pvselect: select using a prepared statement + args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param ... - varargs list
- * @return 0 for success or error code
- */
-APU_DECLARE_NONSTD(int) apr_dbd_pvselect(const apr_dbd_driver_t *driver,
- apr_pool_t *pool, apr_dbd_t *handle,
- apr_dbd_results_t **res,
- apr_dbd_prepared_t *statement,
- int random, ...);
-
-/** apr_dbd_pbquery: query using a prepared statement + binary args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param args - binary args to prepared statement
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_pbquery(const apr_dbd_driver_t *driver,
- apr_pool_t *pool, apr_dbd_t *handle,
- int *nrows, apr_dbd_prepared_t *statement,
- const void **args);
-
-/** apr_dbd_pbselect: select using a prepared statement + binary args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param args - binary args to prepared statement
- * @return 0 for success or error code
- */
-APU_DECLARE(int) apr_dbd_pbselect(const apr_dbd_driver_t *driver,
- apr_pool_t *pool,
- apr_dbd_t *handle, apr_dbd_results_t **res,
- apr_dbd_prepared_t *statement, int random,
- const void **args);
-
-/** apr_dbd_pvbquery: query using a prepared statement + binary args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param ... - varargs list of binary args
- * @return 0 for success or error code
- */
-APU_DECLARE_NONSTD(int) apr_dbd_pvbquery(const apr_dbd_driver_t *driver,
- apr_pool_t *pool,
- apr_dbd_t *handle, int *nrows,
- apr_dbd_prepared_t *statement, ...);
-
-/** apr_dbd_pvbselect: select using a prepared statement + binary args
- *
- * @param driver - the driver
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param ... - varargs list of binary args
- * @return 0 for success or error code
- */
-APU_DECLARE_NONSTD(int) apr_dbd_pvbselect(const apr_dbd_driver_t *driver,
- apr_pool_t *pool, apr_dbd_t *handle,
- apr_dbd_results_t **res,
- apr_dbd_prepared_t *statement,
- int random, ...);
-
-/** apr_dbd_datum_get: get a binary entry from a row
- *
- * @param driver - the driver
- * @param row - row pointer
- * @param col - entry number
- * @param type - type of data to get
- * @param data - pointer to data, allocated by the caller
- * @return APR_SUCCESS on success, APR_ENOENT if data is NULL or APR_EGENERAL
- */
-APU_DECLARE(apr_status_t) apr_dbd_datum_get(const apr_dbd_driver_t *driver,
- apr_dbd_row_t *row, int col,
- apr_dbd_type_e type, void *data);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/apr_dbm.h b/include/apr_dbm.h
deleted file mode 100644
index ad1b4f39..00000000
--- a/include/apr_dbm.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_DBM_H
-#define APR_DBM_H
-
-#include "apu.h"
-#include "apr.h"
-#include "apr_errno.h"
-#include "apr_pools.h"
-#include "apr_file_info.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @file apr_dbm.h
- * @brief APR-UTIL DBM library
- */
-/**
- * @defgroup APR_Util_DBM DBM routines
- * @ingroup APR_Util
- * @{
- */
-/**
- * Structure for referencing a dbm
- */
-typedef struct apr_dbm_t apr_dbm_t;
-
-/**
- * Structure for referencing the datum record within a dbm
- */
-typedef struct
-{
- /** pointer to the 'data' to retrieve/store in the DBM */
- char *dptr;
- /** size of the 'data' to retrieve/store in the DBM */
- apr_size_t dsize;
-} apr_datum_t;
-
-/* modes to open the DB */
-#define APR_DBM_READONLY 1 /**< open for read-only access */
-#define APR_DBM_READWRITE 2 /**< open for read-write access */
-#define APR_DBM_RWCREATE 3 /**< open for r/w, create if needed */
-#define APR_DBM_RWTRUNC 4 /**< open for r/w, truncating an existing
- DB if present */
-/**
- * Open a dbm file by file name and type of DBM
- * @param dbm The newly opened database
- * @param type The type of the DBM (not all may be available at run time)
- * <pre>
- * db for Berkeley DB files
- * gdbm for GDBM files
- * ndbm for NDBM files
- * sdbm for SDBM files (always available)
- * default for the default DBM type
- * </pre>
- * @param name The dbm file name to open
- * @param mode The flag value
- * <PRE>
- * APR_DBM_READONLY open for read-only access
- * APR_DBM_READWRITE open for read-write access
- * APR_DBM_RWCREATE open for r/w, create if needed
- * APR_DBM_RWTRUNC open for r/w, truncate if already there
- * </PRE>
- * @param perm Permissions to apply to if created
- * @param cntxt The pool to use when creating the dbm
- * @remark The dbm name may not be a true file name, as many dbm packages
- * append suffixes for seperate data and index files.
- * @bug In apr-util 0.9 and 1.x, the type arg was case insensitive. This
- * was highly inefficient, and as of 2.x the dbm name must be provided in
- * the correct case (lower case for all bundled providers)
- */
-
-APU_DECLARE(apr_status_t) apr_dbm_open_ex(apr_dbm_t **dbm, const char* type,
- const char *name,
- apr_int32_t mode, apr_fileperms_t perm,
- apr_pool_t *cntxt);
-
-
-/**
- * Open a dbm file by file name
- * @param dbm The newly opened database
- * @param name The dbm file name to open
- * @param mode The flag value
- * <PRE>
- * APR_DBM_READONLY open for read-only access
- * APR_DBM_READWRITE open for read-write access
- * APR_DBM_RWCREATE open for r/w, create if needed
- * APR_DBM_RWTRUNC open for r/w, truncate if already there
- * </PRE>
- * @param perm Permissions to apply to if created
- * @param cntxt The pool to use when creating the dbm
- * @remark The dbm name may not be a true file name, as many dbm packages
- * append suffixes for seperate data and index files.
- */
-APU_DECLARE(apr_status_t) apr_dbm_open(apr_dbm_t **dbm, const char *name,
- apr_int32_t mode, apr_fileperms_t perm,
- apr_pool_t *cntxt);
-
-/**
- * Close a dbm file previously opened by apr_dbm_open
- * @param dbm The database to close
- */
-APU_DECLARE(void) apr_dbm_close(apr_dbm_t *dbm);
-
-/**
- * Fetch a dbm record value by key
- * @param dbm The database
- * @param key The key datum to find this record
- * @param pvalue The value datum retrieved for this record
- */
-APU_DECLARE(apr_status_t) apr_dbm_fetch(apr_dbm_t *dbm, apr_datum_t key,
- apr_datum_t *pvalue);
-/**
- * Store a dbm record value by key
- * @param dbm The database
- * @param key The key datum to store this record by
- * @param value The value datum to store in this record
- */
-APU_DECLARE(apr_status_t) apr_dbm_store(apr_dbm_t *dbm, apr_datum_t key,
- apr_datum_t value);
-
-/**
- * Delete a dbm record value by key
- * @param dbm The database
- * @param key The key datum of the record to delete
- * @remark It is not an error to delete a non-existent record.
- */
-APU_DECLARE(apr_status_t) apr_dbm_delete(apr_dbm_t *dbm, apr_datum_t key);
-
-/**
- * Search for a key within the dbm
- * @param dbm The database
- * @param key The datum describing a key to test
- */
-APU_DECLARE(int) apr_dbm_exists(apr_dbm_t *dbm, apr_datum_t key);
-
-/**
- * Retrieve the first record key from a dbm
- * @param dbm The database
- * @param pkey The key datum of the first record
- */
-APU_DECLARE(apr_status_t) apr_dbm_firstkey(apr_dbm_t *dbm, apr_datum_t *pkey);
-
-/**
- * Retrieve the next record key from a dbm
- * @param dbm The database
- * @param pkey The key datum of the next record
- */
-APU_DECLARE(apr_status_t) apr_dbm_nextkey(apr_dbm_t *dbm, apr_datum_t *pkey);
-
-/**
- * Proactively toss any memory associated with the apr_datum_t.
- * @param dbm The database
- * @param data The datum to free.
- */
-APU_DECLARE(void) apr_dbm_freedatum(apr_dbm_t *dbm, apr_datum_t data);
-
-/**
- * Report more information when an apr_dbm function fails.
- * @param dbm The database
- * @param errcode A DBM-specific value for the error (for logging). If this
- * isn't needed, it may be NULL.
- * @param errbuf Location to store the error text
- * @param errbufsize The size of the provided buffer
- * @return The errbuf parameter, for convenience.
- */
-APU_DECLARE(char *) apr_dbm_geterror(apr_dbm_t *dbm, int *errcode,
- char *errbuf, apr_size_t errbufsize);
-/**
- * If the specified file/path were passed to apr_dbm_open(), return the
- * actual file/path names which would be (created and) used. At most, two
- * files may be used; used2 may be NULL if only one file is used.
- * @param pool The pool for allocating used1 and used2.
- * @param type The type of DBM you require info on @see apr_dbm_open_ex
- * @param pathname The path name to generate used-names from.
- * @param used1 The first pathname used by the apr_dbm implementation.
- * @param used2 The second pathname used by apr_dbm. If only one file is
- * used by the specific implementation, this will be set to NULL.
- * @return An error if the specified type is invalid.
- * @remark The dbm file(s) don't need to exist. This function only manipulates
- * the pathnames.
- */
-APU_DECLARE(apr_status_t) apr_dbm_get_usednames_ex(apr_pool_t *pool,
- const char *type,
- const char *pathname,
- const char **used1,
- const char **used2);
-
-/**
- * If the specified file/path were passed to apr_dbm_open(), return the
- * actual file/path names which would be (created and) used. At most, two
- * files may be used; used2 may be NULL if only one file is used.
- * @param pool The pool for allocating used1 and used2.
- * @param pathname The path name to generate used-names from.
- * @param used1 The first pathname used by the apr_dbm implementation.
- * @param used2 The second pathname used by apr_dbm. If only one file is
- * used by the specific implementation, this will be set to NULL.
- * @remark The dbm file(s) don't need to exist. This function only manipulates
- * the pathnames.
- */
-APU_DECLARE(void) apr_dbm_get_usednames(apr_pool_t *pool,
- const char *pathname,
- const char **used1,
- const char **used2);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !APR_DBM_H */
diff --git a/include/apr_hooks.h b/include/apr_hooks.h
deleted file mode 100644
index 9f2a8075..00000000
--- a/include/apr_hooks.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_HOOKS_H
-#define APR_HOOKS_H
-
-#include "apu.h"
-/* For apr_array_header_t */
-#include "apr_tables.h"
-
-#ifdef APR_DTRACE_PROVIDER
-#include <sys/sdt.h>
-#ifndef OLD_DTRACE_PROBE
-#define OLD_DTRACE_PROBE(name) __dtrace_ap___##name()
-#endif
-#ifndef OLD_DTRACE_PROBE1
-#define OLD_DTRACE_PROBE1(name,a) __dtrace_ap___##name(a)
-#endif
-#ifndef OLD_DTRACE_PROBE2
-#define OLD_DTRACE_PROBE2(name,a,b) __dtrace_ap___##name(a,b)
-#endif
-#else
-#define OLD_DTRACE_PROBE(a)
-#define OLD_DTRACE_PROBE1(a,b)
-#define OLD_DTRACE_PROBE2(a,b,c)
-#endif
-
-/**
- * @file apr_hooks.h
- * @brief Apache hook functions
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/**
- * @defgroup APR_Util_Hook Hook Functions
- * @ingroup APR_Util
- * @{
- */
-/** macro to return the prototype of the hook function */
-#define APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name) \
-link##_DECLARE(apr_array_header_t *) ns##_hook_get_##name(void)
-
-/** macro to declare the hook correctly */
-#define APR_DECLARE_EXTERNAL_HOOK(ns,link,ret,name,args) \
-typedef ret ns##_HOOK_##name##_t args; \
-link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf, \
- const char * const *aszPre, \
- const char * const *aszSucc, int nOrder); \
-link##_DECLARE(ret) ns##_run_##name args; \
-APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name); \
-typedef struct ns##_LINK_##name##_t \
- { \
- ns##_HOOK_##name##_t *pFunc; \
- const char *szName; \
- const char * const *aszPredecessors; \
- const char * const *aszSuccessors; \
- int nOrder; \
- } ns##_LINK_##name##_t;
-
-/** macro to declare the hook structure */
-#define APR_HOOK_STRUCT(members) \
-static struct { members } _hooks;
-
-/** macro to link the hook structure */
-#define APR_HOOK_LINK(name) \
- apr_array_header_t *link_##name;
-
-/** macro to implement the hook */
-#define APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
-link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf,const char * const *aszPre, \
- const char * const *aszSucc,int nOrder) \
- { \
- ns##_LINK_##name##_t *pHook; \
- if(!_hooks.link_##name) \
- { \
- _hooks.link_##name=apr_array_make(apr_hook_global_pool,1,sizeof(ns##_LINK_##name##_t)); \
- apr_hook_sort_register(#name,&_hooks.link_##name); \
- } \
- pHook=apr_array_push(_hooks.link_##name); \
- pHook->pFunc=pf; \
- pHook->aszPredecessors=aszPre; \
- pHook->aszSuccessors=aszSucc; \
- pHook->nOrder=nOrder; \
- pHook->szName=apr_hook_debug_current; \
- if(apr_hook_debug_enabled) \
- apr_hook_debug_show(#name,aszPre,aszSucc); \
- } \
- APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name) \
- { \
- return _hooks.link_##name; \
- }
-
-/**
- * Implement a hook that has no return code, and therefore runs all of the
- * registered functions
- * @param ns The namespace prefix of the hook functions
- * @param link The linkage declaration prefix of the hook
- * @param name The name of the hook
- * @param args_decl The declaration of the arguments for the hook
- * @param args_use The names for the arguments for the hook
- * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which
- * provide export linkage from the module that IMPLEMENTs the hook, and
- * import linkage from external modules that link to the hook's module.
- */
-#define APR_IMPLEMENT_EXTERNAL_HOOK_VOID(ns,link,name,args_decl,args_use) \
-APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
-link##_DECLARE(void) ns##_run_##name args_decl \
- { \
- ns##_LINK_##name##_t *pHook; \
- int n; \
-\
- OLD_DTRACE_PROBE(name##__entry); \
-\
- if(_hooks.link_##name) \
- { \
- pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
- for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
- { \
- OLD_DTRACE_PROBE1(name##__dispatch__invoke, (char *)pHook[n].szName); \
- pHook[n].pFunc args_use; \
- OLD_DTRACE_PROBE2(name##__dispatch__complete, (char *)pHook[n].szName, 0); \
- } \
- } \
-\
- OLD_DTRACE_PROBE1(name##__return, 0); \
-\
- }
-
-/* FIXME: note that this returns ok when nothing is run. I suspect it should
- really return decline, but that breaks Apache currently - Ben
-*/
-/**
- * Implement a hook that runs until one of the functions returns something
- * other than OK or DECLINE
- * @param ns The namespace prefix of the hook functions
- * @param link The linkage declaration prefix of the hook
- * @param ret Type to return
- * @param name The name of the hook
- * @param args_decl The declaration of the arguments for the hook
- * @param args_use The names for the arguments for the hook
- * @param ok Success value
- * @param decline Decline value
- * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which
- * provide export linkage from the module that IMPLEMENTs the hook, and
- * import linkage from external modules that link to the hook's module.
- */
-#define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(ns,link,ret,name,args_decl,args_use,ok,decline) \
-APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
-link##_DECLARE(ret) ns##_run_##name args_decl \
- { \
- ns##_LINK_##name##_t *pHook; \
- int n; \
- ret rv = ok; \
-\
- OLD_DTRACE_PROBE(name##__entry); \
-\
- if(_hooks.link_##name) \
- { \
- pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
- for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
- { \
- OLD_DTRACE_PROBE1(name##__dispatch__invoke, (char *)pHook[n].szName); \
- rv=pHook[n].pFunc args_use; \
- OLD_DTRACE_PROBE2(name##__dispatch__complete, (char *)pHook[n].szName, rv); \
- if(rv != ok && rv != decline) \
- break; \
- rv = ok; \
- } \
- } \
-\
- OLD_DTRACE_PROBE1(name##__return, rv); \
-\
- return rv; \
- }
-
-
-/**
- * Implement a hook that runs until the first function returns something
- * other than the value of decline
- * @param ns The namespace prefix of the hook functions
- * @param link The linkage declaration prefix of the hook
- * @param name The name of the hook
- * @param ret Type to return
- * @param args_decl The declaration of the arguments for the hook
- * @param args_use The names for the arguments for the hook
- * @param decline Decline value
- * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which
- * provide export linkage from the module that IMPLEMENTs the hook, and
- * import linkage from external modules that link to the hook's module.
- */
-#define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(ns,link,ret,name,args_decl,args_use,decline) \
-APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
-link##_DECLARE(ret) ns##_run_##name args_decl \
- { \
- ns##_LINK_##name##_t *pHook; \
- int n; \
- ret rv = decline; \
-\
- OLD_DTRACE_PROBE(name##__entry); \
-\
- if(_hooks.link_##name) \
- { \
- pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
- for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
- { \
- OLD_DTRACE_PROBE1(name##__dispatch__invoke, (char *)pHook[n].szName); \
- rv=pHook[n].pFunc args_use; \
- OLD_DTRACE_PROBE2(name##__dispatch__complete, (char *)pHook[n].szName, rv); \
-\
- if(rv != decline) \
- break; \
- } \
- } \
-\
- OLD_DTRACE_PROBE1(name##__return, rv); \
-\
- return rv; \
- }
-
- /* Hook orderings */
-/** run this hook first, before ANYTHING */
-#define APR_HOOK_REALLY_FIRST (-10)
-/** run this hook first */
-#define APR_HOOK_FIRST 0
-/** run this hook somewhere */
-#define APR_HOOK_MIDDLE 10
-/** run this hook after every other hook which is defined*/
-#define APR_HOOK_LAST 20
-/** run this hook last, after EVERYTHING */
-#define APR_HOOK_REALLY_LAST 30
-
-/**
- * The global pool used to allocate any memory needed by the hooks.
- */
-APU_DECLARE_DATA extern apr_pool_t *apr_hook_global_pool;
-
-/**
- * A global variable to determine if debugging information about the
- * hooks functions should be printed
- */
-APU_DECLARE_DATA extern int apr_hook_debug_enabled;
-
-/**
- * The name of the module that is currently registering a function
- */
-APU_DECLARE_DATA extern const char *apr_hook_debug_current;
-
-/**
- * Register a hook function to be sorted
- * @param szHookName The name of the Hook the function is registered for
- * @param aHooks The array which stores all of the functions for this hook
- */
-APU_DECLARE(void) apr_hook_sort_register(const char *szHookName,
- apr_array_header_t **aHooks);
-/**
- * Sort all of the registerd functions for a given hook
- */
-APU_DECLARE(void) apr_hook_sort_all(void);
-
-/**
- * Print all of the information about the current hook. This is used for
- * debugging purposes.
- * @param szName The name of the hook
- * @param aszPre All of the functions in the predecessor array
- * @param aszSucc All of the functions in the successor array
- */
-APU_DECLARE(void) apr_hook_debug_show(const char *szName,
- const char * const *aszPre,
- const char * const *aszSucc);
-
-/**
- * Remove all currently registered functions.
- */
-APU_DECLARE(void) apr_hook_deregister_all(void);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_HOOKS_H */
diff --git a/include/apr_ldap.h.in b/include/apr_ldap.h.in
deleted file mode 100644
index 6087783d..00000000
--- a/include/apr_ldap.h.in
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
- */
-/**
- * @file apr_ldap.h
- * @brief APR-UTIL LDAP
- */
-#ifndef APU_LDAP_H
-#define APU_LDAP_H
-
-/**
- * @defgroup APR_Util_LDAP LDAP
- * @ingroup APR_Util
- * @{
- */
-
-/* this will be defined if LDAP support was compiled into apr-util */
-#define APR_HAS_LDAP @apu_has_ldap@
-
-/* identify the LDAP toolkit used */
-#define APR_HAS_NETSCAPE_LDAPSDK @apu_has_ldap_netscape@
-#define APR_HAS_SOLARIS_LDAPSDK @apu_has_ldap_solaris@
-#define APR_HAS_NOVELL_LDAPSDK @apu_has_ldap_novell@
-#define APR_HAS_MOZILLA_LDAPSDK @apu_has_ldap_mozilla@
-#define APR_HAS_OPENLDAP_LDAPSDK @apu_has_ldap_openldap@
-#define APR_HAS_MICROSOFT_LDAPSDK @apu_has_ldap_microsoft@
-#define APR_HAS_TIVOLI_LDAPSDK @apu_has_ldap_tivoli@
-#define APR_HAS_ZOS_LDAPSDK @apu_has_ldap_zos@
-#define APR_HAS_OTHER_LDAPSDK @apu_has_ldap_other@
-
-
-/*
- * Handle the case when LDAP is enabled
- */
-#if APR_HAS_LDAP
-
-/*
- * The following #defines are DEPRECATED and should not be used for
- * anything. They remain to maintain binary compatibility.
- * The original code defined the OPENLDAP SDK as present regardless
- * of what really was there, which was way bogus. In addition, the
- * apr_ldap_url_parse*() functions have been rewritten specifically for
- * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
- */
-#if APR_HAS_TIVOLI_LDAPSDK
-#define APR_HAS_LDAP_SSL 0
-#else
-#define APR_HAS_LDAP_SSL 1
-#endif
-#define APR_HAS_LDAP_URL_PARSE 0
-
-#if APR_HAS_OPENLDAP_LDAPSDK && !defined(LDAP_DEPRECATED)
-/* Ensure that the "deprecated" interfaces are still exposed
- * with OpenLDAP >= 2.3; these were exposed by default in earlier
- * releases. */
-#define LDAP_DEPRECATED 1
-#endif
-
-/*
- * Include the standard LDAP header files.
- */
-
-@lber_h@
-@ldap_h@
-@ldap_ssl_h@
-
-
-/*
- * Detected standard functions
- */
-#define APR_HAS_LDAPSSL_CLIENT_INIT @apu_has_ldapssl_client_init@
-#define APR_HAS_LDAPSSL_CLIENT_DEINIT @apu_has_ldapssl_client_deinit@
-#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT @apu_has_ldapssl_add_trusted_cert@
-#define APR_HAS_LDAP_START_TLS_S @apu_has_ldap_start_tls_s@
-#define APR_HAS_LDAP_SSLINIT @apu_has_ldap_sslinit@
-#define APR_HAS_LDAPSSL_INIT @apu_has_ldapssl_init@
-#define APR_HAS_LDAPSSL_INSTALL_ROUTINES @apu_has_ldapssl_install_routines@
-
-/*
- * Make sure the secure LDAP port is defined
- */
-#ifndef LDAPS_PORT
-#define LDAPS_PORT 636 /* ldaps:/// default LDAP over TLS port */
-#endif
-
-/*
- * For ldap function calls that input a size limit on the number of returned elements
- * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)
- * LDAP_DEFAULT_LIMIT is preferred as it allows inheritance from whatever the SDK
- * or process is configured for.
- */
-#ifdef LDAP_DEFAULT_LIMIT
-#define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT
-#else
-#ifdef LDAP_NO_LIMIT
-#define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
-#endif
-#endif
-
-#ifndef APR_LDAP_SIZELIMIT
-#define APR_LDAP_SIZELIMIT 0 /* equivalent to LDAP_NO_LIMIT, and what goes on the wire */
-#endif
-
-/*
- * z/OS is missing some defines
- */
-#ifndef LDAP_VERSION_MAX
-#define LDAP_VERSION_MAX LDAP_VERSION
-#endif
-#if APR_HAS_ZOS_LDAPSDK
-#define LDAP_VENDOR_NAME "IBM z/OS"
-#endif
-
-/* Note: Macros defining const casting has been removed in APR v1.0,
- * pending real support for LDAP v2.0 toolkits.
- *
- * In the mean time, please use an LDAP v3.0 toolkit.
- */
-#if LDAP_VERSION_MAX <= 2
-#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * This structure allows the C LDAP API error codes to be returned
- * along with plain text error messages that explain to us mere mortals
- * what really happened.
- */
-typedef struct apr_ldap_err_t {
- const char *reason;
- const char *msg;
- int rc;
-} apr_ldap_err_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-/* The MS SDK returns LDAP_UNAVAILABLE when the backend has closed the connection
- * between LDAP calls. Protect with APR_HAS_MICROSOFT_LDAPSDK in case someone
- * manually chooses another SDK on Windows
- */
-#if APR_HAS_MICROSOFT_LDAPSDK
-#define APR_LDAP_IS_SERVER_DOWN(s) ((s) == LDAP_SERVER_DOWN \
- || (s) == LDAP_UNAVAILABLE)
-#else
-#define APR_LDAP_IS_SERVER_DOWN(s) ((s) == LDAP_SERVER_DOWN)
-#endif
-
-/* These symbols are not actually exported in a DSO build, but mapped into
- * a private exported function array for apr_ldap_stub to bind dynamically.
- * Rename them appropriately to protect the global namespace.
- */
-#ifdef APU_DSO_LDAP_BUILD
-
-#define apr_ldap_info apr__ldap_info
-#define apr_ldap_init apr__ldap_init
-#define apr_ldap_ssl_init apr__ldap_ssl_init
-#define apr_ldap_ssl_deinit apr__ldap_ssl_deinit
-#define apr_ldap_get_option apr__ldap_get_option
-#define apr_ldap_set_option apr__ldap_set_option
-#define apr_ldap_rebind_init apr__ldap_rebind_init
-#define apr_ldap_rebind_add apr__ldap_rebind_add
-#define apr_ldap_rebind_remove apr__ldap_rebind_remove
-
-#define APU_DECLARE_LDAP(type) type
-#else
-#define APU_DECLARE_LDAP(type) APU_DECLARE(type)
-#endif
-
-#include "apr_ldap_url.h"
-#include "apr_ldap_init.h"
-#include "apr_ldap_option.h"
-#include "apr_ldap_rebind.h"
-
-/** @} */
-#endif /* APR_HAS_LDAP */
-#endif /* APU_LDAP_H */
diff --git a/include/apr_ldap.hnw b/include/apr_ldap.hnw
deleted file mode 100644
index c93014ae..00000000
--- a/include/apr_ldap.hnw
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
- */
-/**
- * @file apr_ldap.h
- * @brief APR-UTIL LDAP
- */
-#ifndef APU_LDAP_H
-#define APU_LDAP_H
-
-/**
- * @defgroup APR_Util_LDAP LDAP
- * @ingroup APR_Util
- * @{
- */
-
-/* this will be defined if LDAP support was compiled into apr-util */
-#define APR_HAS_LDAP 1
-
-/* identify the LDAP toolkit used */
-#define APR_HAS_NETSCAPE_LDAPSDK 0
-#define APR_HAS_SOLARIS_LDAPSDK 0
-#define APR_HAS_NOVELL_LDAPSDK 1
-#define APR_HAS_MOZILLA_LDAPSDK 0
-#define APR_HAS_OPENLDAP_LDAPSDK 0
-#define APR_HAS_MICROSOFT_LDAPSDK 0
-#define APR_HAS_OTHER_LDAPSDK 0
-
-
-/*
- * Handle the case when LDAP is enabled
- */
-#if APR_HAS_LDAP
-
-/*
- * The following #defines are DEPRECATED and should not be used for
- * anything. They remain to maintain binary compatibility.
- * The original code defined the OPENLDAP SDK as present regardless
- * of what really was there, which was way bogus. In addition, the
- * apr_ldap_url_parse*() functions have been rewritten specifically for
- * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
- */
-#define APR_HAS_LDAP_SSL 1
-#define APR_HAS_LDAP_URL_PARSE 0
-
-
-/*
- * Include the standard LDAP header files.
- */
-
-#ifdef GENEXPORTS
-#define LDAP_VERSION_MAX 3
-#define LDAP_INSUFFICIENT_ACCESS
-#else
-#include <lber.h>
-#include <ldap.h>
-#if APR_HAS_LDAP_SSL
-#include <ldap_ssl.h>
-#endif
-#endif
-
-
-/*
- * Detected standard functions
- */
-#define APR_HAS_LDAPSSL_CLIENT_INIT 1
-#define APR_HAS_LDAPSSL_CLIENT_DEINIT 1
-#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 1
-#define APR_HAS_LDAP_START_TLS_S 0
-#define APR_HAS_LDAP_SSLINIT 0
-#define APR_HAS_LDAPSSL_INIT 1
-#define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0
-
-
-/*
- * Make sure the secure LDAP port is defined
- */
-#ifndef LDAPS_PORT
-#define LDAPS_PORT 636 /* ldaps:/// default LDAP over TLS port */
-#endif
-
-
-/* Note: Macros defining const casting has been removed in APR v1.0,
- * pending real support for LDAP v2.0 toolkits.
- *
- * In the mean time, please use an LDAP v3.0 toolkit.
- */
-#if LDAP_VERSION_MAX <= 2
-#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * This structure allows the C LDAP API error codes to be returned
- * along with plain text error messages that explain to us mere mortals
- * what really happened.
- */
-typedef struct apr_ldap_err_t {
- const char *reason;
- const char *msg;
- int rc;
-} apr_ldap_err_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#define APR_LDAP_IS_SERVER_DOWN(s) ((s) == LDAP_SERVER_DOWN)
-
-/* These symbols are not actually exported in a DSO build, but mapped into
- * a private exported function array for apr_ldap_stub to bind dynamically.
- * Rename them appropriately to protect the global namespace.
- */
-#ifdef APU_DSO_LDAP_BUILD
-
-#define apr_ldap_info apr__ldap_info
-#define apr_ldap_init apr__ldap_init
-#define apr_ldap_ssl_init apr__ldap_ssl_init
-#define apr_ldap_ssl_deinit apr__ldap_ssl_deinit
-#define apr_ldap_get_option apr__ldap_get_option
-#define apr_ldap_set_option apr__ldap_set_option
-#define apr_ldap_rebind_init apr__ldap_rebind_init
-#define apr_ldap_rebind_add apr__ldap_rebind_add
-#define apr_ldap_rebind_remove apr__ldap_rebind_remove
-
-#define APU_DECLARE_LDAP(type) type
-#else
-#define APU_DECLARE_LDAP(type) APU_DECLARE(type)
-#endif
-
-#include "apr_ldap_url.h"
-#include "apr_ldap_init.h"
-#include "apr_ldap_option.h"
-#include "apr_ldap_rebind.h"
-
-/** @} */
-#endif /* APR_HAS_LDAP */
-#endif /* APU_LDAP_H */
-
diff --git a/include/apr_ldap.hw b/include/apr_ldap.hw
deleted file mode 100644
index c1bd0d4b..00000000
--- a/include/apr_ldap.hw
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
- */
-/**
- * @file apr_ldap.h
- * @brief APR-UTIL LDAP
- */
-#ifndef APU_LDAP_H
-#define APU_LDAP_H
-
-/**
- * @defgroup APR_Util_LDAP LDAP
- * @ingroup APR_Util
- * @{
- */
-
-/* this will be defined if LDAP support was compiled into apr-util */
-#define APR_HAS_LDAP 1
-
-/* identify the LDAP toolkit used */
-#define APR_HAS_NETSCAPE_LDAPSDK 0
-#define APR_HAS_SOLARIS_LDAPSDK 0
-#define APR_HAS_NOVELL_LDAPSDK 0
-#define APR_HAS_MOZILLA_LDAPSDK 0
-#define APR_HAS_OPENLDAP_LDAPSDK 0
-#define APR_HAS_MICROSOFT_LDAPSDK 1
-#define APR_HAS_TIVOLI_LDAPSDK 0
-#define APR_HAS_ZOS_LDAPSDK 0
-#define APR_HAS_OTHER_LDAPSDK 0
-
-
-/*
- * Handle the case when LDAP is enabled
- */
-#if APR_HAS_LDAP
-
-/*
- * The following #defines are DEPRECATED and should not be used for
- * anything. They remain to maintain binary compatibility.
- * The original code defined the OPENLDAP SDK as present regardless
- * of what really was there, which was way bogus. In addition, the
- * apr_ldap_url_parse*() functions have been rewritten specifically for
- * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
- */
-#if APR_HAS_TIVOLI_LDAPSDK
-#define APR_HAS_LDAP_SSL 0
-#else
-#define APR_HAS_LDAP_SSL 1
-#endif
-#define APR_HAS_LDAP_URL_PARSE 0
-
-#if APR_HAS_OPENLDAP_LDAPSDK && !defined(LDAP_DEPRECATED)
-/* Ensure that the "deprecated" interfaces are still exposed
- * with OpenLDAP >= 2.3; these were exposed by default in earlier
- * releases. */
-#define LDAP_DEPRECATED 1
-#endif
-
-/*
- * Include the standard LDAP header files.
- */
-
-#include <winldap.h>
-
-
-/*
- * Detected standard functions
- */
-#define APR_HAS_LDAPSSL_CLIENT_INIT 0
-#define APR_HAS_LDAPSSL_CLIENT_DEINIT 0
-#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 0
-#define APR_HAS_LDAP_START_TLS_S 0
-#define APR_HAS_LDAP_SSLINIT 1
-#define APR_HAS_LDAPSSL_INIT 0
-#define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0
-
-
-/*
- * Make sure the secure LDAP port is defined
- */
-#ifndef LDAPS_PORT
-#define LDAPS_PORT 636 /* ldaps:/// default LDAP over TLS port */
-#endif
-
-
-/*
- * For ldap function calls that input a size limit on the number of returned elements
- * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)
- * LDAP_DEFAULT_LIMIT is preferred as it allows inheritance from whatever the SDK
- * or process is configured for.
- */
-#ifdef LDAP_DEFAULT_LIMIT
-#define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT
-#else
-#ifdef LDAP_NO_LIMIT
-#define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
-#endif
-#endif
-
-#ifndef APR_LDAP_SIZELIMIT
-#define APR_LDAP_SIZELIMIT 0 /* equivalent to LDAP_NO_LIMIT, and what goes on the wire */
-#endif
-
-/*
- * z/OS is missing some defines
- */
-#ifndef LDAP_VERSION_MAX
-#define LDAP_VERSION_MAX LDAP_VERSION
-#endif
-#if APR_HAS_ZOS_LDAPSDK
-#define LDAP_VENDOR_NAME "IBM z/OS"
-#endif
-
-/* Note: Macros defining const casting has been removed in APR v1.0,
- * pending real support for LDAP v2.0 toolkits.
- *
- * In the mean time, please use an LDAP v3.0 toolkit.
- */
-#if LDAP_VERSION_MAX <= 2
-#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * This structure allows the C LDAP API error codes to be returned
- * along with plain text error messages that explain to us mere mortals
- * what really happened.
- */
-typedef struct apr_ldap_err_t {
- const char *reason;
- const char *msg;
- int rc;
-} apr_ldap_err_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-/* The MS SDK returns LDAP_UNAVAILABLE when the backend has closed the connection
- * between LDAP calls. Protect with APR_HAS_MICROSOFT_LDAPSDK in case someone
- * manually chooses another SDK on Windows
- */
-#if APR_HAS_MICROSOFT_LDAPSDK
-#define APR_LDAP_IS_SERVER_DOWN(s) ((s) == LDAP_SERVER_DOWN \
- || (s) == LDAP_UNAVAILABLE)
-#else
-#define APR_LDAP_IS_SERVER_DOWN(s) ((s) == LDAP_SERVER_DOWN)
-#endif
-
-/* These symbols are not actually exported in a DSO build, but mapped into
- * a private exported function array for apr_ldap_stub to bind dynamically.
- * Rename them appropriately to protect the global namespace.
- */
-#ifdef APU_DSO_LDAP_BUILD
-
-#define apr_ldap_info apr__ldap_info
-#define apr_ldap_init apr__ldap_init
-#define apr_ldap_ssl_init apr__ldap_ssl_init
-#define apr_ldap_ssl_deinit apr__ldap_ssl_deinit
-#define apr_ldap_get_option apr__ldap_get_option
-#define apr_ldap_set_option apr__ldap_set_option
-#define apr_ldap_rebind_init apr__ldap_rebind_init
-#define apr_ldap_rebind_add apr__ldap_rebind_add
-#define apr_ldap_rebind_remove apr__ldap_rebind_remove
-
-#define APU_DECLARE_LDAP(type) type
-#else
-#define APU_DECLARE_LDAP(type) APU_DECLARE(type)
-#endif
-
-#include "apr_ldap_url.h"
-#include "apr_ldap_init.h"
-#include "apr_ldap_option.h"
-#include "apr_ldap_rebind.h"
-
-/** @} */
-#endif /* APR_HAS_LDAP */
-#endif /* APU_LDAP_H */
diff --git a/include/apr_ldap_init.h b/include/apr_ldap_init.h
deleted file mode 100644
index aeb6d9bb..00000000
--- a/include/apr_ldap_init.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file apr_ldap_init.h
- * @brief APR-UTIL LDAP ldap_init() functions
- */
-#ifndef APR_LDAP_INIT_H
-#define APR_LDAP_INIT_H
-
-/**
- * @addtogroup APR_Util_LDAP
- * @{
- */
-
-#include "apr_ldap.h"
-
-#if APR_HAS_LDAP
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/**
- * Macro to detect security related return values.
- */
-#if defined(LDAP_INSUFFICIENT_ACCESS)
-#define APU_LDAP_INSUFFICIENT_ACCESS LDAP_INSUFFICIENT_ACCESS
-#elif defined(LDAP_INSUFFICIENT_RIGHTS)
-#define APU_LDAP_INSUFFICIENT_ACCESS LDAP_INSUFFICIENT_RIGHTS
-#elif defined(APR_HAS_MICROSOFT_LDAPSDK)
-/* The macros above fail to contemplate that LDAP_RETCODE values
- * may be represented by an enum. autoconf tests would be much
- * more robust.
- */
-#define APU_LDAP_INSUFFICIENT_ACCESS LDAP_INSUFFICIENT_RIGHTS
-#else
-#error The security return codes must be added to support this LDAP toolkit.
-#endif
-
-#if defined(LDAP_SECURITY_ERROR)
-#define APU_LDAP_SECURITY_ERROR LDAP_SECURITY_ERROR
-#else
-#define APU_LDAP_SECURITY_ERROR(n) \
- (LDAP_INAPPROPRIATE_AUTH == n) ? 1 \
- : (LDAP_INVALID_CREDENTIALS == n) ? 1 \
- : (APU_LDAP_INSUFFICIENT_ACCESS == n) ? 1 \
- : 0
-#endif
-
-
-/**
- * APR LDAP SSL Initialise function
- *
- * This function initialises SSL on the underlying LDAP toolkit
- * if this is necessary.
- *
- * If a CA certificate is provided, this is set, however the setting
- * of certificates via this method has been deprecated and will be removed in
- * APR v2.0.
- *
- * The apr_ldap_set_option() function with the APR_LDAP_OPT_TLS_CERT option
- * should be used instead to set certificates.
- *
- * If SSL support is not available on this platform, or a problem
- * was encountered while trying to set the certificate, the function
- * will return APR_EGENERAL. Further LDAP specific error information
- * can be found in result_err.
- * @param pool The pool to use
- * @param cert_auth_file The name of the certificate to use, can be NULL
- * @param cert_file_type The type of certificate specified. See the
- * apr_ldap_set_option() APR_LDAP_OPT_TLS_CERT option for details.
- * @param result_err The returned result
- */
-APU_DECLARE_LDAP(int) apr_ldap_ssl_init(apr_pool_t *pool,
- const char *cert_auth_file,
- int cert_file_type,
- apr_ldap_err_t **result_err);
-
-/**
- * APR LDAP SSL De-Initialise function
- *
- * This function tears down any SSL certificate setup previously
- * set using apr_ldap_ssl_init(). It should be called to clean
- * up if a graceful restart of a service is attempted.
- * @todo currently we do not check whether apr_ldap_ssl_init()
- * has been called first - we probably should.
- */
-APU_DECLARE_LDAP(int) apr_ldap_ssl_deinit(void);
-
-/**
- * APR LDAP initialise function
- *
- * This function is responsible for initialising an LDAP
- * connection in a toolkit independant way. It does the
- * job of ldap_init() from the C api.
- *
- * It handles both the SSL and non-SSL case, and attempts
- * to hide the complexity setup from the user. This function
- * assumes that any certificate setup necessary has already
- * been done.
- *
- * If SSL or STARTTLS needs to be enabled, and the underlying
- * toolkit supports it, the following values are accepted for
- * secure:
- *
- * APR_LDAP_NONE: No encryption
- * APR_LDAP_SSL: SSL encryption (ldaps://)
- * APR_LDAP_STARTTLS: Force STARTTLS on ldap://
- * @remark The Novell toolkit is only able to set the SSL mode via this
- * function. To work around this limitation, set the SSL mode here if no
- * per connection client certificates are present, otherwise set secure
- * APR_LDAP_NONE here, then set the per connection client certificates,
- * followed by setting the SSL mode via apr_ldap_set_option(). As Novell
- * does not support per connection client certificates, this problem is
- * worked around while still being compatible with other LDAP toolkits.
- * @param pool The pool to use
- * @param ldap The LDAP handle
- * @param hostname The name of the host to connect to. This can be either a
- * DNS name, or an IP address.
- * @param portno The port to connect to
- * @param secure The security mode to set
- * @param result_err The returned result
- */
-APU_DECLARE_LDAP(int) apr_ldap_init(apr_pool_t *pool,
- LDAP **ldap,
- const char *hostname,
- int portno,
- int secure,
- apr_ldap_err_t **result_err);
-
-/**
- * APR LDAP info function
- *
- * This function returns a string describing the LDAP toolkit
- * currently in use. The string is placed inside result_err->reason.
- * @param pool The pool to use
- * @param result_err The returned result
- */
-APU_DECLARE_LDAP(int) apr_ldap_info(apr_pool_t *pool,
- apr_ldap_err_t **result_err);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_HAS_LDAP */
-
-/** @} */
-
-#endif /* APR_LDAP_URL_H */
diff --git a/include/apr_ldap_option.h b/include/apr_ldap_option.h
deleted file mode 100644
index 0ff8a862..00000000
--- a/include/apr_ldap_option.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file apr_ldap_option.h
- * @brief APR-UTIL LDAP ldap_*_option() functions
- */
-#ifndef APR_LDAP_OPTION_H
-#define APR_LDAP_OPTION_H
-
-/**
- * @addtogroup APR_Util_LDAP
- * @{
- */
-
-#include "apr_ldap.h"
-
-#if APR_HAS_LDAP
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * The following defines handle the different TLS certificate
- * options available. If these options are missing, APR will try and
- * emulate support for this using the deprecated ldap_start_tls_s()
- * function.
- */
-/**
- * Set SSL mode to one of APR_LDAP_NONE, APR_LDAP_SSL, APR_LDAP_STARTTLS
- * or APR_LDAP_STOPTLS.
- */
-#define APR_LDAP_OPT_TLS 0x6fff
-/**
- * Set zero or more CA certificates, client certificates or private
- * keys globally, or per connection (where supported).
- */
-#define APR_LDAP_OPT_TLS_CERT 0x6ffe
-/**
- * Set the LDAP library to no verify the server certificate. This means
- * all servers are considered trusted.
- */
-#define APR_LDAP_OPT_VERIFY_CERT 0x6ffd
-/**
- * Set the LDAP library to indicate if referrals should be chased during
- * LDAP searches.
- */
-#define APR_LDAP_OPT_REFERRALS 0x6ffc
-/**
- * Set the LDAP library to indicate a maximum number of referral hops to
- * chase before giving up on the search.
- */
-#define APR_LDAP_OPT_REFHOPLIMIT 0x6ffb
-
-/**
- * Structures for the apr_set_option() cases
- */
-
-/**
- * APR_LDAP_OPT_TLS_CERT
- *
- * This structure includes possible options to set certificates on
- * system initialisation. Different SDKs have different certificate
- * requirements, and to achieve this multiple certificates must be
- * specified at once passed as an (apr_array_header_t *).
- *
- * Netscape:
- * Needs the CA cert database (cert7.db), the client cert database (key3.db)
- * and the security module file (secmod.db) set at the system initialisation
- * time. Three types are supported: APR_LDAP_CERT7_DB, APR_LDAP_KEY3_DB and
- * APR_LDAP_SECMOD.
- *
- * To specify a client cert connection, a certificate nickname needs to be
- * provided with a type of APR_LDAP_CERT.
- * int ldapssl_enable_clientauth( LDAP *ld, char *keynickname,
- * char *keypasswd, char *certnickname );
- * keynickname is currently not used, and should be set to ""
- *
- * Novell:
- * Needs CA certificates and client certificates set at system initialisation
- * time. Three types are supported: APR_LDAP_CA*, APR_LDAP_CERT* and
- * APR_LDAP_KEY*.
- *
- * Certificates cannot be specified per connection.
- *
- * The functions used are:
- * ldapssl_add_trusted_cert(serverTrustedRoot, serverTrustedRootEncoding);
- * Clients certs and keys are set at system initialisation time with
- * int ldapssl_set_client_cert (
- * void *cert,
- * int type
- * void *password);
- * type can be LDAPSSL_CERT_FILETYPE_B64 or LDAPSSL_CERT_FILETYPE_DER
- * ldapssl_set_client_private_key(clientPrivateKey,
- * clientPrivateKeyEncoding,
- * clientPrivateKeyPassword);
- *
- * OpenSSL:
- * Needs one or more CA certificates to be set at system initialisation time
- * with a type of APR_LDAP_CA*.
- *
- * May have one or more client certificates set per connection with a type of
- * APR_LDAP_CERT*, and keys with APR_LDAP_KEY*.
- */
-/** CA certificate type unknown */
-#define APR_LDAP_CA_TYPE_UNKNOWN 0
-/** binary DER encoded CA certificate */
-#define APR_LDAP_CA_TYPE_DER 1
-/** PEM encoded CA certificate */
-#define APR_LDAP_CA_TYPE_BASE64 2
-/** Netscape/Mozilla cert7.db CA certificate database */
-#define APR_LDAP_CA_TYPE_CERT7_DB 3
-/** Netscape/Mozilla secmod file */
-#define APR_LDAP_CA_TYPE_SECMOD 4
-/** Client certificate type unknown */
-#define APR_LDAP_CERT_TYPE_UNKNOWN 5
-/** binary DER encoded client certificate */
-#define APR_LDAP_CERT_TYPE_DER 6
-/** PEM encoded client certificate */
-#define APR_LDAP_CERT_TYPE_BASE64 7
-/** Netscape/Mozilla key3.db client certificate database */
-#define APR_LDAP_CERT_TYPE_KEY3_DB 8
-/** Netscape/Mozilla client certificate nickname */
-#define APR_LDAP_CERT_TYPE_NICKNAME 9
-/** Private key type unknown */
-#define APR_LDAP_KEY_TYPE_UNKNOWN 10
-/** binary DER encoded private key */
-#define APR_LDAP_KEY_TYPE_DER 11
-/** PEM encoded private key */
-#define APR_LDAP_KEY_TYPE_BASE64 12
-/** PKCS#12 encoded client certificate */
-#define APR_LDAP_CERT_TYPE_PFX 13
-/** PKCS#12 encoded private key */
-#define APR_LDAP_KEY_TYPE_PFX 14
-/** Openldap directory full of base64-encoded cert
- * authorities with hashes in corresponding .0 directory
- */
-#define APR_LDAP_CA_TYPE_CACERTDIR_BASE64 15
-
-
-/**
- * Certificate structure.
- *
- * This structure is used to store certificate details. An array of
- * these structures is passed to apr_ldap_set_option() to set CA
- * and client certificates.
- * @param type Type of certificate APR_LDAP_*_TYPE_*
- * @param path Path, file or nickname of the certificate
- * @param password Optional password, can be NULL
- */
-typedef struct apr_ldap_opt_tls_cert_t apr_ldap_opt_tls_cert_t;
-struct apr_ldap_opt_tls_cert_t {
- int type;
- const char *path;
- const char *password;
-};
-
-/**
- * APR_LDAP_OPT_TLS
- *
- * This sets the SSL level on the LDAP handle.
- *
- * Netscape/Mozilla:
- * Supports SSL, but not STARTTLS
- * SSL is enabled by calling ldapssl_install_routines().
- *
- * Novell:
- * Supports SSL and STARTTLS.
- * SSL is enabled by calling ldapssl_install_routines(). Note that calling
- * other ldap functions before ldapssl_install_routines() may cause this
- * function to fail.
- * STARTTLS is enabled by calling ldapssl_start_tls_s() after calling
- * ldapssl_install_routines() (check this).
- *
- * OpenLDAP:
- * Supports SSL and supports STARTTLS, but none of this is documented:
- * http://www.openldap.org/lists/openldap-software/200409/msg00618.html
- * Documentation for both SSL support and STARTTLS has been deleted from
- * the OpenLDAP documentation and website.
- */
-
-/** No encryption */
-#define APR_LDAP_NONE 0
-/** SSL encryption (ldaps://) */
-#define APR_LDAP_SSL 1
-/** TLS encryption (STARTTLS) */
-#define APR_LDAP_STARTTLS 2
-/** end TLS encryption (STOPTLS) */
-#define APR_LDAP_STOPTLS 3
-
-/**
- * APR LDAP get option function
- *
- * This function gets option values from a given LDAP session if
- * one was specified. It maps to the native ldap_get_option() function.
- * @param pool The pool to use
- * @param ldap The LDAP handle
- * @param option The LDAP_OPT_* option to return
- * @param outvalue The value returned (if any)
- * @param result_err The apr_ldap_err_t structure contained detailed results
- * of the operation.
- */
-APU_DECLARE_LDAP(int) apr_ldap_get_option(apr_pool_t *pool,
- LDAP *ldap,
- int option,
- void *outvalue,
- apr_ldap_err_t **result_err);
-
-/**
- * APR LDAP set option function
- *
- * This function sets option values to a given LDAP session if
- * one was specified. It maps to the native ldap_set_option() function.
- *
- * Where an option is not supported by an LDAP toolkit, this function
- * will try and apply legacy functions to achieve the same effect,
- * depending on the platform.
- * @param pool The pool to use
- * @param ldap The LDAP handle
- * @param option The LDAP_OPT_* option to set
- * @param invalue The value to set
- * @param result_err The apr_ldap_err_t structure contained detailed results
- * of the operation.
- */
-APU_DECLARE_LDAP(int) apr_ldap_set_option(apr_pool_t *pool,
- LDAP *ldap,
- int option,
- const void *invalue,
- apr_ldap_err_t **result_err);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_HAS_LDAP */
-
-/** @} */
-
-#endif /* APR_LDAP_OPTION_H */
-
diff --git a/include/apr_ldap_rebind.h b/include/apr_ldap_rebind.h
deleted file mode 100644
index 342a17c3..00000000
--- a/include/apr_ldap_rebind.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * The APR LDAP rebind functions provide an implementation of
- * a rebind procedure that can be used to allow clients to chase referrals,
- * using the same credentials used to log in originally.
- *
- * Use of this implementation is optional.
- *
- * @file apr_ldap_rebind.h
- * @brief Apache LDAP library
- */
-
-#ifndef APU_LDAP_REBIND_H
-#define APU_LDAP_REBIND_H
-
-/**
- * @addtogroup APR_Util_LDAP
- * @{
- **/
-
-#if defined(DOXYGEN)
-#include "apr_ldap.h"
-#endif
-
-/*
- * Handle the case when LDAP is enabled
- */
-#if APR_HAS_LDAP
-
-/**
- * APR LDAP initialize rebind lock
- *
- * This function creates the lock for controlling access to the xref list..
- * @param pool Pool to use when creating the xref_lock.
- */
-APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_init(apr_pool_t *pool);
-
-
-/**
- * APR LDAP rebind_add function
- *
- * This function creates a cross reference entry for the specified ldap
- * connection. The rebind callback function will look up this ldap
- * connection so it can retrieve the bindDN and bindPW for use in any
- * binds while referrals are being chased.
- *
- * This function will add the callback to the LDAP handle passed in.
- *
- * A cleanup is registered within the pool provided to remove this
- * entry when the pool is removed. Alternatively apr_ldap_rebind_remove()
- * can be called to explicitly remove the entry at will.
- *
- * @param pool The pool to use
- * @param ld The LDAP connectionhandle
- * @param bindDN The bind DN to be used for any binds while chasing
- * referrals on this ldap connection.
- * @param bindPW The bind Password to be used for any binds while
- * chasing referrals on this ldap connection.
- */
-APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_add(apr_pool_t *pool,
- LDAP *ld,
- const char *bindDN,
- const char *bindPW);
-
-/**
- * APR LDAP rebind_remove function
- *
- * This function removes the rebind cross reference entry for the
- * specified ldap connection.
- *
- * If not explicitly removed, this function will be called automatically
- * when the pool is cleaned up.
- *
- * @param ld The LDAP connectionhandle
- */
-APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_remove(LDAP *ld);
-
-#endif /* APR_HAS_LDAP */
-
-/** @} */
-
-#endif /* APU_LDAP_REBIND_H */
-
diff --git a/include/apr_ldap_url.h b/include/apr_ldap_url.h
deleted file mode 100644
index a71f5b3c..00000000
--- a/include/apr_ldap_url.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file apr_ldap_url.h
- * @brief APR-UTIL LDAP ldap_init() functions
- */
-#ifndef APR_LDAP_URL_H
-#define APR_LDAP_URL_H
-
-/**
- * @addtogroup APR_Util_LDAP
- * @{
- */
-
-#if defined(DOXYGEN)
-#include "apr_ldap.h"
-#endif
-
-#if APR_HAS_LDAP
-
-#include "apu.h"
-#include "apr_pools.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** Structure to access an exploded LDAP URL */
-typedef struct apr_ldap_url_desc_t {
- struct apr_ldap_url_desc_t *lud_next;
- char *lud_scheme;
- char *lud_host;
- int lud_port;
- char *lud_dn;
- char **lud_attrs;
- int lud_scope;
- char *lud_filter;
- char **lud_exts;
- int lud_crit_exts;
-} apr_ldap_url_desc_t;
-
-#ifndef APR_LDAP_URL_SUCCESS
-#define APR_LDAP_URL_SUCCESS 0x00 /* Success */
-#define APR_LDAP_URL_ERR_MEM 0x01 /* can't allocate memory space */
-#define APR_LDAP_URL_ERR_PARAM 0x02 /* parameter is bad */
-#define APR_LDAP_URL_ERR_BADSCHEME 0x03 /* URL doesn't begin with "ldap[si]://" */
-#define APR_LDAP_URL_ERR_BADENCLOSURE 0x04 /* URL is missing trailing ">" */
-#define APR_LDAP_URL_ERR_BADURL 0x05 /* URL is bad */
-#define APR_LDAP_URL_ERR_BADHOST 0x06 /* host port is bad */
-#define APR_LDAP_URL_ERR_BADATTRS 0x07 /* bad (or missing) attributes */
-#define APR_LDAP_URL_ERR_BADSCOPE 0x08 /* scope string is invalid (or missing) */
-#define APR_LDAP_URL_ERR_BADFILTER 0x09 /* bad or missing filter */
-#define APR_LDAP_URL_ERR_BADEXTS 0x0a /* bad or missing extensions */
-#endif
-
-/**
- * Is this URL an ldap url? ldap://
- * @param url The url to test
- */
-APU_DECLARE(int) apr_ldap_is_ldap_url(const char *url);
-
-/**
- * Is this URL an SSL ldap url? ldaps://
- * @param url The url to test
- */
-APU_DECLARE(int) apr_ldap_is_ldaps_url(const char *url);
-
-/**
- * Is this URL an ldap socket url? ldapi://
- * @param url The url to test
- */
-APU_DECLARE(int) apr_ldap_is_ldapi_url(const char *url);
-
-/**
- * Parse an LDAP URL.
- * @param pool The pool to use
- * @param url_in The URL to parse
- * @param ludpp The structure to return the exploded URL
- * @param result_err The result structure of the operation
- */
-APU_DECLARE(int) apr_ldap_url_parse_ext(apr_pool_t *pool,
- const char *url_in,
- apr_ldap_url_desc_t **ludpp,
- apr_ldap_err_t **result_err);
-
-/**
- * Parse an LDAP URL.
- * @param pool The pool to use
- * @param url_in The URL to parse
- * @param ludpp The structure to return the exploded URL
- * @param result_err The result structure of the operation
- */
-APU_DECLARE(int) apr_ldap_url_parse(apr_pool_t *pool,
- const char *url_in,
- apr_ldap_url_desc_t **ludpp,
- apr_ldap_err_t **result_err);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_HAS_LDAP */
-
-/** @} */
-
-#endif /* APR_LDAP_URL_H */
diff --git a/include/apr_md4.h b/include/apr_md4.h
deleted file mode 100644
index 43fb33e3..00000000
--- a/include/apr_md4.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* This is derived from material copyright RSA Data Security, Inc.
- * Their notice is reproduced below in its entirety.
- *
- * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
- * rights reserved.
- *
- * License to copy and use this software is granted provided that it
- * is identified as the "RSA Data Security, Inc. MD4 Message-Digest
- * Algorithm" in all material mentioning or referencing this software
- * or this function.
- *
- * License is also granted to make and use derivative works provided
- * that such works are identified as "derived from the RSA Data
- * Security, Inc. MD4 Message-Digest Algorithm" in all material
- * mentioning or referencing the derived work.
- *
- * RSA Data Security, Inc. makes no representations concerning either
- * the merchantability of this software or the suitability of this
- * software for any particular purpose. It is provided "as is"
- * without express or implied warranty of any kind.
- *
- * These notices must be retained in any copies of any part of this
- * documentation and/or software.
- */
-
-#ifndef APR_MD4_H
-#define APR_MD4_H
-
-#include "apu.h"
-#include "apr_xlate.h"
-/**
- * @file apr_md4.h
- * @brief APR-UTIL MD4 Library
- */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup APR_Util_MD4 MD4 Library
- * @ingroup APR_Util
- * @{
- */
-
-/** The digestsize for MD4 */
-#define APR_MD4_DIGESTSIZE 16
-
-/** @see apr_md4_ctx_t */
-typedef struct apr_md4_ctx_t apr_md4_ctx_t;
-
-/** MD4 context. */
-struct apr_md4_ctx_t {
- /** state (ABCD) */
- apr_uint32_t state[4];
- /** number of bits, modulo 2^64 (lsb first) */
- apr_uint32_t count[2];
- /** input buffer */
- unsigned char buffer[64];
-#if APR_HAS_XLATE
- /** translation handle */
- apr_xlate_t *xlate;
-#endif
-};
-
-/**
- * MD4 Initialize. Begins an MD4 operation, writing a new context.
- * @param context The MD4 context to initialize.
- */
-APU_DECLARE(apr_status_t) apr_md4_init(apr_md4_ctx_t *context);
-
-#if APR_HAS_XLATE
-/**
- * MDr4 translation setup. Provides the APR translation handle to be used
- * for translating the content before calculating the digest.
- * @param context The MD4 content to set the translation for.
- * @param xlate The translation handle to use for this MD4 context
- */
-APU_DECLARE(apr_status_t) apr_md4_set_xlate(apr_md4_ctx_t *context,
- apr_xlate_t *xlate);
-#else
-#define apr_md4_set_xlate(context, xlate) APR_ENOTIMPL
-#endif
-
-/**
- * MD4 block update operation. Continue an MD4 message-digest operation,
- * processing another message block, and updating the context.
- * @param context The MD4 content to update.
- * @param input next message block to update
- * @param inputLen The length of the next message block
- */
-APU_DECLARE(apr_status_t) apr_md4_update(apr_md4_ctx_t *context,
- const unsigned char *input,
- apr_size_t inputLen);
-
-/**
- * MD4 finalization. Ends an MD4 message-digest operation, writing the
- * message digest and zeroing the context
- * @param digest The final MD4 digest
- * @param context The MD4 content we are finalizing.
- */
-APU_DECLARE(apr_status_t) apr_md4_final(
- unsigned char digest[APR_MD4_DIGESTSIZE],
- apr_md4_ctx_t *context);
-
-/**
- * MD4 digest computation
- * @param digest The MD4 digest
- * @param input message block to use
- * @param inputLen The length of the message block
- */
-APU_DECLARE(apr_status_t) apr_md4(unsigned char digest[APR_MD4_DIGESTSIZE],
- const unsigned char *input,
- apr_size_t inputLen);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !APR_MD4_H */
diff --git a/include/apr_md5.h b/include/apr_md5.h
deleted file mode 100644
index 367324a7..00000000
--- a/include/apr_md5.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * This is work is derived from material Copyright RSA Data Security, Inc.
- *
- * The RSA copyright statement and Licence for that original material is
- * included below. This is followed by the Apache copyright statement and
- * licence for the modifications made to that material.
- */
-
-/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
- rights reserved.
-
- License to copy and use this software is granted provided that it
- is identified as the "RSA Data Security, Inc. MD5 Message-Digest
- Algorithm" in all material mentioning or referencing this software
- or this function.
-
- License is also granted to make and use derivative works provided
- that such works are identified as "derived from the RSA Data
- Security, Inc. MD5 Message-Digest Algorithm" in all material
- mentioning or referencing the derived work.
-
- RSA Data Security, Inc. makes no representations concerning either
- the merchantability of this software or the suitability of this
- software for any particular purpose. It is provided "as is"
- without express or implied warranty of any kind.
-
- These notices must be retained in any copies of any part of this
- documentation and/or software.
- */
-
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_MD5_H
-#define APR_MD5_H
-
-#include "apu.h"
-#include "apr_xlate.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/**
- * @file apr_md5.h
- * @brief APR MD5 Routines
- */
-
-/**
- * @defgroup APR_MD5 MD5 Routines
- * @ingroup APR
- * @{
- */
-
-/** The MD5 digest size */
-#define APR_MD5_DIGESTSIZE 16
-
-/** @see apr_md5_ctx_t */
-typedef struct apr_md5_ctx_t apr_md5_ctx_t;
-
-/** MD5 context. */
-struct apr_md5_ctx_t {
- /** state (ABCD) */
- apr_uint32_t state[4];
- /** number of bits, modulo 2^64 (lsb first) */
- apr_uint32_t count[2];
- /** input buffer */
- unsigned char buffer[64];
- /** translation handle
- * ignored if xlate is unsupported
- */
- apr_xlate_t *xlate;
-};
-
-/**
- * MD5 Initialize. Begins an MD5 operation, writing a new context.
- * @param context The MD5 context to initialize.
- */
-APU_DECLARE(apr_status_t) apr_md5_init(apr_md5_ctx_t *context);
-
-/**
- * MD5 translation setup. Provides the APR translation handle to be used
- * for translating the content before calculating the digest.
- * @param context The MD5 content to set the translation for.
- * @param xlate The translation handle to use for this MD5 context
- */
-APU_DECLARE(apr_status_t) apr_md5_set_xlate(apr_md5_ctx_t *context,
- apr_xlate_t *xlate);
-
-/**
- * MD5 block update operation. Continue an MD5 message-digest operation,
- * processing another message block, and updating the context.
- * @param context The MD5 content to update.
- * @param input next message block to update
- * @param inputLen The length of the next message block
- */
-APU_DECLARE(apr_status_t) apr_md5_update(apr_md5_ctx_t *context,
- const void *input,
- apr_size_t inputLen);
-
-/**
- * MD5 finalization. Ends an MD5 message-digest operation, writing the
- * message digest and zeroing the context
- * @param digest The final MD5 digest
- * @param context The MD5 content we are finalizing.
- */
-APU_DECLARE(apr_status_t) apr_md5_final(unsigned char digest[APR_MD5_DIGESTSIZE],
- apr_md5_ctx_t *context);
-
-/**
- * MD5 in one step
- * @param digest The final MD5 digest
- * @param input The message block to use
- * @param inputLen The length of the message block
- */
-APU_DECLARE(apr_status_t) apr_md5(unsigned char digest[APR_MD5_DIGESTSIZE],
- const void *input,
- apr_size_t inputLen);
-
-/**
- * Encode a password using an MD5 algorithm
- * @param password The password to encode
- * @param salt The salt to use for the encoding
- * @param result The string to store the encoded password in
- * @param nbytes The size of the result buffer
- */
-APU_DECLARE(apr_status_t) apr_md5_encode(const char *password, const char *salt,
- char *result, apr_size_t nbytes);
-
-
-/**
- * Validate hashes created by APR-supported algorithms: md5 and sha1.
- * hashes created by crypt are supported only on platforms that provide
- * crypt(3), so don't rely on that function unless you know that your
- * application will be run only on platforms that support it. On platforms
- * that don't support crypt(3), this falls back to a clear text string
- * comparison.
- * @param passwd The password to validate
- * @param hash The password to validate against
- */
-APU_DECLARE(apr_status_t) apr_password_validate(const char *passwd,
- const char *hash);
-
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !APR_MD5_H */
diff --git a/include/apr_memcache.h b/include/apr_memcache.h
deleted file mode 100644
index 499d2800..00000000
--- a/include/apr_memcache.h
+++ /dev/null
@@ -1,446 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_MEMCACHE_H
-#define APR_MEMCACHE_H
-
-/**
- * @file apr_memcache.h
- * @brief Client interface for memcached
- * @remark To use this interface you must have a separate memcached
- * server running. See the memcached website at http://www.danga.com/memcached/
- * for more information.
- */
-
-#include "apr.h"
-#include "apr_pools.h"
-#include "apr_time.h"
-#include "apr_strings.h"
-#include "apr_network_io.h"
-#include "apr_ring.h"
-#include "apr_buckets.h"
-#include "apr_reslist.h"
-#include "apr_hash.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup APR_Util_MC Memcached Client Routines
- * @ingroup APR_Util
- * @{
- */
-
-/** Specifies the status of a memcached server */
-typedef enum
-{
- APR_MC_SERVER_LIVE, /**< Server is alive and responding to requests */
- APR_MC_SERVER_DEAD /**< Server is not responding to requests */
-} apr_memcache_server_status_t;
-
-/** Opaque memcache client connection object */
-typedef struct apr_memcache_conn_t apr_memcache_conn_t;
-
-/** Memcache Server Info Object */
-typedef struct apr_memcache_server_t apr_memcache_server_t;
-struct apr_memcache_server_t
-{
- const char *host; /**< Hostname of this Server */
- apr_port_t port; /**< Port of this Server */
- apr_memcache_server_status_t status; /**< @see apr_memcache_server_status_t */
-#if APR_HAS_THREADS || defined(DOXYGEN)
- apr_reslist_t *conns; /**< Resource list of actual client connections */
-#else
- apr_memcache_conn_t *conn;
-#endif
- apr_pool_t *p; /** Pool to use for private allocations */
-#if APR_HAS_THREADS
- apr_thread_mutex_t *lock;
-#endif
- apr_time_t btime;
-};
-
-/* Custom hash callback function prototype, user for server selection.
-* @param baton user selected baton
-* @param data data to hash
-* @param data_len length of data
-*/
-typedef apr_uint32_t (*apr_memcache_hash_func)(void *baton,
- const char *data,
- const apr_size_t data_len);
-
-typedef struct apr_memcache_t apr_memcache_t;
-
-/* Custom Server Select callback function prototype.
-* @param baton user selected baton
-* @param mc memcache instance, use mc->live_servers to select a node
-* @param hash hash of the selected key.
-*/
-typedef apr_memcache_server_t* (*apr_memcache_server_func)(void *baton,
- apr_memcache_t *mc,
- const apr_uint32_t hash);
-
-/** Container for a set of memcached servers */
-struct apr_memcache_t
-{
- apr_uint32_t flags; /**< Flags, Not currently used */
- apr_uint16_t nalloc; /**< Number of Servers Allocated */
- apr_uint16_t ntotal; /**< Number of Servers Added */
- apr_memcache_server_t **live_servers; /**< Array of Servers */
- apr_pool_t *p; /** Pool to use for allocations */
- void *hash_baton;
- apr_memcache_hash_func hash_func;
- void *server_baton;
- apr_memcache_server_func server_func;
-};
-
-/** Returned Data from a multiple get */
-typedef struct
-{
- apr_status_t status;
- const char* key;
- apr_size_t len;
- char *data;
- apr_uint16_t flags;
-} apr_memcache_value_t;
-
-/**
- * Creates a crc32 hash used to split keys between servers
- * @param data Data to be hashed
- * @param data_len Length of the data to use
- * @return crc32 hash of data
- * @remark The crc32 hash is not compatible with old memcached clients.
- */
-APU_DECLARE(apr_uint32_t) apr_memcache_hash(apr_memcache_t *mc,
- const char *data,
- const apr_size_t data_len);
-
-/**
- * Pure CRC32 Hash. Used by some clients.
- */
-APU_DECLARE(apr_uint32_t) apr_memcache_hash_crc32(void *baton,
- const char *data,
- const apr_size_t data_len);
-
-/**
- * hash compatible with the standard Perl Client.
- */
-APU_DECLARE(apr_uint32_t) apr_memcache_hash_default(void *baton,
- const char *data,
- const apr_size_t data_len);
-
-/**
- * Picks a server based on a hash
- * @param mc The memcache client object to use
- * @param hash Hashed value of a Key
- * @return server that controls specified hash
- * @see apr_memcache_hash
- */
-APU_DECLARE(apr_memcache_server_t *) apr_memcache_find_server_hash(apr_memcache_t *mc,
- const apr_uint32_t hash);
-
-/**
- * server selection compatible with the standard Perl Client.
- */
-APU_DECLARE(apr_memcache_server_t *)
-apr_memcache_find_server_hash_default(void *baton,
- apr_memcache_t *mc,
- const apr_uint32_t hash);
-
-/**
- * Adds a server to a client object
- * @param mc The memcache client object to use
- * @param ms Server to add
- * @remark Adding servers is not thread safe, and should be done once at startup.
- * @warning Changing servers after startup may cause keys to go to
- * different servers.
- */
-APU_DECLARE(apr_status_t) apr_memcache_add_server(apr_memcache_t *mc,
- apr_memcache_server_t *server);
-
-
-/**
- * Finds a Server object based on a hostname/port pair
- * @param mc The memcache client object to use
- * @param host Hostname of the server
- * @param port Port of the server
- * @return Server with matching Hostname and Port, or NULL if none was found.
- */
-APU_DECLARE(apr_memcache_server_t *) apr_memcache_find_server(apr_memcache_t *mc,
- const char *host,
- apr_port_t port);
-
-/**
- * Enables a Server for use again
- * @param mc The memcache client object to use
- * @param ms Server to Activate
- */
-APU_DECLARE(apr_status_t) apr_memcache_enable_server(apr_memcache_t *mc,
- apr_memcache_server_t *ms);
-
-
-/**
- * Disable a Server
- * @param mc The memcache client object to use
- * @param ms Server to Disable
- */
-APU_DECLARE(apr_status_t) apr_memcache_disable_server(apr_memcache_t *mc,
- apr_memcache_server_t *ms);
-
-/**
- * Creates a new Server Object
- * @param p Pool to use
- * @param host hostname of the server
- * @param port port of the server
- * @param min minimum number of client sockets to open
- * @param smax soft maximum number of client connections to open
- * @param max hard maximum number of client connections
- * @param ttl time to live in seconds of a client connection
- * @param ns location of the new server object
- * @see apr_reslist_create
- * @remark min, smax, and max are only used when APR_HAS_THREADS
- */
-APU_DECLARE(apr_status_t) apr_memcache_server_create(apr_pool_t *p,
- const char *host,
- apr_port_t port,
- apr_uint32_t min,
- apr_uint32_t smax,
- apr_uint32_t max,
- apr_uint32_t ttl,
- apr_memcache_server_t **ns);
-/**
- * Creates a new memcached client object
- * @param p Pool to use
- * @param max_servers maximum number of servers
- * @param flags Not currently used
- * @param mc location of the new memcache client object
- */
-APU_DECLARE(apr_status_t) apr_memcache_create(apr_pool_t *p,
- apr_uint16_t max_servers,
- apr_uint32_t flags,
- apr_memcache_t **mc);
-
-/**
- * Gets a value from the server, allocating the value out of p
- * @param mc client to use
- * @param p Pool to use
- * @param key null terminated string containing the key
- * @param baton location of the allocated value
- * @param len length of data at baton
- * @param flags any flags set by the client for this key
- * @return
- */
-APU_DECLARE(apr_status_t) apr_memcache_getp(apr_memcache_t *mc,
- apr_pool_t *p,
- const char* key,
- char **baton,
- apr_size_t *len,
- apr_uint16_t *flags);
-
-
-/**
- * Add a key to a hash for a multiget query
- * if the hash (*value) is NULL it will be created
- * @param data_pool pool from where the hash and their items are created from
- * @param key null terminated string containing the key
- * @param values hash of keys and values that this key will be added to
- * @return
- */
-APU_DECLARE(void)
-apr_memcache_add_multget_key(apr_pool_t *data_pool,
- const char* key,
- apr_hash_t **values);
-
-/**
- * Gets multiple values from the server, allocating the values out of p
- * @param mc client to use
- * @param temp_pool Pool used for tempoary allocations. May be cleared inside this
- * call.
- * @param data_pool Pool used to allocate data for the returned values.
- * @param values hash of apr_memcache_value_t keyed by strings, contains the
- * result of the multiget call.
- * @return
- */
-APU_DECLARE(apr_status_t)
-apr_memcache_multgetp(apr_memcache_t *mc,
- apr_pool_t *temp_pool,
- apr_pool_t *data_pool,
- apr_hash_t *values);
-
-/**
- * Sets a value by key on the server
- * @param mc client to use
- * @param key null terminated string containing the key
- * @param baton data to store on the server
- * @param len length of data at baton
- * @param timeout time in seconds for the data to live on the server
- * @param flags any flags set by the client for this key
- */
-APU_DECLARE(apr_status_t) apr_memcache_set(apr_memcache_t *mc,
- const char *key,
- char *baton,
- const apr_size_t data_size,
- apr_uint32_t timeout,
- apr_uint16_t flags);
-
-/**
- * Adds value by key on the server
- * @param mc client to use
- * @param key null terminated string containing the key
- * @param baton data to store on the server
- * @param len length of data at baton
- * @param timeout time for the data to live on the server
- * @param flags any flags set by the client for this key
- * @return APR_SUCCESS if the key was added, APR_EEXIST if the key
- * already exists on the server.
- */
-APU_DECLARE(apr_status_t) apr_memcache_add(apr_memcache_t *mc,
- const char *key,
- char *baton,
- const apr_size_t data_size,
- apr_uint32_t timeout,
- apr_uint16_t flags);
-
-/**
- * Replaces value by key on the server
- * @param mc client to use
- * @param key null terminated string containing the key
- * @param baton data to store on the server
- * @param len length of data at baton
- * @param timeout time for the data to live on the server
- * @param flags any flags set by the client for this key
- * @return APR_SUCCESS if the key was added, APR_EEXIST if the key
- * did not exist on the server.
- */
-APU_DECLARE(apr_status_t) apr_memcache_replace(apr_memcache_t *mc,
- const char *key,
- char *data,
- const apr_size_t data_size,
- apr_uint32_t timeout,
- apr_uint16_t flags);
-/**
- * Deletes a key from a server
- * @param mc client to use
- * @param key null terminated string containing the key
- * @param timeout time for the delete to stop other clients from adding
- */
-APU_DECLARE(apr_status_t) apr_memcache_delete(apr_memcache_t *mc,
- const char *key,
- apr_uint32_t timeout);
-
-/**
- * Increments a value
- * @param mc client to use
- * @param key null terminated string containing the key
- * @param n number to increment by
- * @param nv new value after incrmenting
- */
-APU_DECLARE(apr_status_t) apr_memcache_incr(apr_memcache_t *mc,
- const char *key,
- apr_int32_t n,
- apr_uint32_t *nv);
-
-/**
- * Decrements a value
- * @param mc client to use
- * @param key null terminated string containing the key
- * @param n number to decrement by
- * @param nv new value after decrementing
- */
-APU_DECLARE(apr_status_t) apr_memcache_decr(apr_memcache_t *mc,
- const char *key,
- apr_int32_t n,
- apr_uint32_t *new_value);
-
-/**
- * Query a server's version
- * @param ms server to query
- * @param p Pool to allocate answer from
- * @param baton location to store server version string
- * @param len length of the server version string
- */
-APU_DECLARE(apr_status_t) apr_memcache_version(apr_memcache_server_t *ms,
- apr_pool_t *p,
- char **baton);
-
-typedef struct
-{
- /** Version string of this server */
- const char *version;
- /** Process id of this server process */
- apr_uint32_t pid;
- /** Number of seconds this server has been running */
- apr_uint32_t uptime;
- /** current UNIX time according to the server */
- apr_time_t time;
- /** The size of a pointer on the current machine */
- apr_uint32_t pointer_size;
- /** Accumulated user time for this process */
- apr_time_t rusage_user;
- /** Accumulated system time for this process */
- apr_time_t rusage_system;
- /** Current number of items stored by the server */
- apr_uint32_t curr_items;
- /** Total number of items stored by this server */
- apr_uint32_t total_items;
- /** Current number of bytes used by this server to store items */
- apr_uint64_t bytes;
- /** Number of open connections */
- apr_uint32_t curr_connections;
- /** Total number of connections opened since the server started running */
- apr_uint32_t total_connections;
- /** Number of connection structures allocated by the server */
- apr_uint32_t connection_structures;
- /** Cumulative number of retrieval requests */
- apr_uint32_t cmd_get;
- /** Cumulative number of storage requests */
- apr_uint32_t cmd_set;
- /** Number of keys that have been requested and found present */
- apr_uint32_t get_hits;
- /** Number of items that have been requested and not found */
- apr_uint32_t get_misses;
- /** Number of items removed from cache because they passed their
- expiration time */
- apr_uint64_t evictions;
- /** Total number of bytes read by this server */
- apr_uint64_t bytes_read;
- /** Total number of bytes sent by this server */
- apr_uint64_t bytes_written;
- /** Number of bytes this server is allowed to use for storage. */
- apr_uint32_t limit_maxbytes;
- /** Number of threads the server is running (if built with threading) */
- apr_uint32_t threads;
-} apr_memcache_stats_t;
-
-/**
- * Query a server for statistics
- * @param ms server to query
- * @param p Pool to allocate answer from
- * @param stats location of the new statistics structure
- */
-APU_DECLARE(apr_status_t) apr_memcache_stats(apr_memcache_server_t *ms,
- apr_pool_t *p,
- apr_memcache_stats_t **stats);
-
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_MEMCACHE_H */
diff --git a/include/apr_optional.h b/include/apr_optional.h
deleted file mode 100644
index 3301d66e..00000000
--- a/include/apr_optional.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_OPTIONAL_H
-#define APR_OPTIONAL_H
-
-#include "apu.h"
-/**
- * @file apr_optional.h
- * @brief APR-UTIL registration of functions exported by modules
- */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup APR_Util_Opt Optional Functions
- * @ingroup APR_Util
- *
- * Typesafe registration and retrieval of functions that may not be present
- * (i.e. functions exported by optional modules)
- * @{
- */
-
-/**
- * The type of an optional function.
- * @param name The name of the function
- */
-#define APR_OPTIONAL_FN_TYPE(name) apr_OFN_##name##_t
-
-/**
- * Declare an optional function.
- * @param ret The return type of the function
- * @param name The name of the function
- * @param args The function arguments (including brackets)
- */
-#define APR_DECLARE_OPTIONAL_FN(ret,name,args) \
-typedef ret (APR_OPTIONAL_FN_TYPE(name)) args
-
-/**
- * XXX: This doesn't belong here, then!
- * Private function! DO NOT USE!
- * @internal
- */
-
-typedef void (apr_opt_fn_t)(void);
-/** @internal */
-APU_DECLARE_NONSTD(void) apr_dynamic_fn_register(const char *szName,
- apr_opt_fn_t *pfn);
-
-/**
- * Register an optional function. This can be later retrieved, type-safely, by
- * name. Like all global functions, the name must be unique. Note that,
- * confusingly but correctly, the function itself can be static!
- * @param name The name of the function
- */
-#define APR_REGISTER_OPTIONAL_FN(name) do { \
- APR_OPTIONAL_FN_TYPE(name) *apu__opt = name; \
- apr_dynamic_fn_register(#name,(apr_opt_fn_t *)apu__opt); \
-} while (0)
-
-/** @internal
- * Private function! DO NOT USE!
- */
-APU_DECLARE(apr_opt_fn_t *) apr_dynamic_fn_retrieve(const char *szName);
-
-/**
- * Retrieve an optional function. Returns NULL if the function is not present.
- * @param name The name of the function
- */
-#define APR_RETRIEVE_OPTIONAL_FN(name) \
- (APR_OPTIONAL_FN_TYPE(name) *)apr_dynamic_fn_retrieve(#name)
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_OPTIONAL_H */
diff --git a/include/apr_optional_hooks.h b/include/apr_optional_hooks.h
deleted file mode 100644
index 54bf65ef..00000000
--- a/include/apr_optional_hooks.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * @file apr_optional_hooks.h
- * @brief Apache optional hook functions
- */
-
-
-#ifndef APR_OPTIONAL_HOOK_H
-#define APR_OPTIONAL_HOOK_H
-
-#include "apr_tables.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/**
- * @defgroup APR_Util_OPT_HOOK Optional Hook Functions
- * @ingroup APR_Util_Hook
- * @{
- */
-/**
- * Function to implemnt the APR_OPTIONAL_HOOK Macro
- * @internal
- * @see APR_OPTIONAL_HOOK
- *
- * @param name The name of the hook
- * @param pfn A pointer to a function that will be called
- * @param aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one
- * @param aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one
- * @param nOrder an integer determining order before honouring aszPre and aszSucc (for example HOOK_MIDDLE)
- */
-
-
-APU_DECLARE(void) apr_optional_hook_add(const char *szName,void (*pfn)(void),
- const char * const *aszPre,
- const char * const *aszSucc,
- int nOrder);
-
-/**
- * Hook to an optional hook.
- *
- * @param ns The namespace prefix of the hook functions
- * @param name The name of the hook
- * @param pfn A pointer to a function that will be called
- * @param aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one
- * @param aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one
- * @param nOrder an integer determining order before honouring aszPre and aszSucc (for example HOOK_MIDDLE)
- */
-
-#define APR_OPTIONAL_HOOK(ns,name,pfn,aszPre,aszSucc,nOrder) do { \
- ns##_HOOK_##name##_t *apu__hook = pfn; \
- apr_optional_hook_add(#name,(void (*)(void))apu__hook,aszPre, aszSucc, nOrder); \
-} while (0)
-
-/**
- * @internal
- * @param szName - the name of the function
- * @return the hook structure for a given hook
- */
-APU_DECLARE(apr_array_header_t *) apr_optional_hook_get(const char *szName);
-
-/**
- * Implement an optional hook that runs until one of the functions
- * returns something other than OK or DECLINE.
- *
- * @param ns The namespace prefix of the hook functions
- * @param link The linkage declaration prefix of the hook
- * @param ret The type of the return value of the hook
- * @param ret The type of the return value of the hook
- * @param name The name of the hook
- * @param args_decl The declaration of the arguments for the hook
- * @param args_use The names for the arguments for the hook
- * @param ok Success value
- * @param decline Decline value
- */
-#define APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ns,link,ret,name,args_decl,args_use,ok,decline) \
-link##_DECLARE(ret) ns##_run_##name args_decl \
- { \
- ns##_LINK_##name##_t *pHook; \
- int n; \
- ret rv; \
- apr_array_header_t *pHookArray=apr_optional_hook_get(#name); \
-\
- if(!pHookArray) \
- return ok; \
-\
- pHook=(ns##_LINK_##name##_t *)pHookArray->elts; \
- for(n=0 ; n < pHookArray->nelts ; ++n) \
- { \
- rv=(pHook[n].pFunc)args_use; \
-\
- if(rv != ok && rv != decline) \
- return rv; \
- } \
- return ok; \
- }
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_OPTIONAL_HOOK_H */
diff --git a/include/apr_queue.h b/include/apr_queue.h
deleted file mode 100644
index 5d24c67c..00000000
--- a/include/apr_queue.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_QUEUE_H
-#define APR_QUEUE_H
-
-/**
- * @file apr_queue.h
- * @brief Thread Safe FIFO bounded queue
- * @note Since most implementations of the queue are backed by a condition
- * variable implementation, it isn't available on systems without threads.
- * Although condition variables are some times available without threads.
- */
-
-#include "apu.h"
-#include "apr_errno.h"
-#include "apr_pools.h"
-
-#if APR_HAS_THREADS
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup APR_Util_FIFO Thread Safe FIFO bounded queue
- * @ingroup APR_Util
- * @{
- */
-
-/**
- * opaque structure
- */
-typedef struct apr_queue_t apr_queue_t;
-
-/**
- * create a FIFO queue
- * @param queue The new queue
- * @param queue_capacity maximum size of the queue
- * @param a pool to allocate queue from
- */
-APU_DECLARE(apr_status_t) apr_queue_create(apr_queue_t **queue,
- unsigned int queue_capacity,
- apr_pool_t *a);
-
-/**
- * push/add a object to the queue, blocking if the queue is already full
- *
- * @param queue the queue
- * @param data the data
- * @returns APR_EINTR the blocking was interrupted (try again)
- * @returns APR_EOF the queue has been terminated
- * @returns APR_SUCCESS on a successfull push
- */
-APU_DECLARE(apr_status_t) apr_queue_push(apr_queue_t *queue, void *data);
-
-/**
- * pop/get an object from the queue, blocking if the queue is already empty
- *
- * @param queue the queue
- * @param data the data
- * @returns APR_EINTR the blocking was interrupted (try again)
- * @returns APR_EOF if the queue has been terminated
- * @returns APR_SUCCESS on a successfull pop
- */
-APU_DECLARE(apr_status_t) apr_queue_pop(apr_queue_t *queue, void **data);
-
-/**
- * push/add a object to the queue, returning immediatly if the queue is full
- *
- * @param queue the queue
- * @param data the data
- * @returns APR_EINTR the blocking operation was interrupted (try again)
- * @returns APR_EAGAIN the queue is full
- * @returns APR_EOF the queue has been terminated
- * @returns APR_SUCCESS on a successfull push
- */
-APU_DECLARE(apr_status_t) apr_queue_trypush(apr_queue_t *queue, void *data);
-
-/**
- * pop/get an object to the queue, returning immediatly if the queue is empty
- *
- * @param queue the queue
- * @param data the data
- * @returns APR_EINTR the blocking operation was interrupted (try again)
- * @returns APR_EAGAIN the queue is empty
- * @returns APR_EOF the queue has been terminated
- * @returns APR_SUCCESS on a successfull push
- */
-APU_DECLARE(apr_status_t) apr_queue_trypop(apr_queue_t *queue, void **data);
-
-/**
- * returns the size of the queue.
- *
- * @warning this is not threadsafe, and is intended for reporting/monitoring
- * of the queue.
- * @param queue the queue
- * @returns the size of the queue
- */
-APU_DECLARE(unsigned int) apr_queue_size(apr_queue_t *queue);
-
-/**
- * interrupt all the threads blocking on this queue.
- *
- * @param queue the queue
- */
-APU_DECLARE(apr_status_t) apr_queue_interrupt_all(apr_queue_t *queue);
-
-/**
- * terminate all queue, sendinging a interupt to all the
- * blocking threads
- *
- * @param queue the queue
- */
-APU_DECLARE(apr_status_t) apr_queue_term(apr_queue_t *queue);
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* APR_HAS_THREADS */
-
-#endif /* APRQUEUE_H */
diff --git a/include/apr_reslist.h b/include/apr_reslist.h
deleted file mode 100644
index ad27d80c..00000000
--- a/include/apr_reslist.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_RESLIST_H
-#define APR_RESLIST_H
-
-/**
- * @file apr_reslist.h
- * @brief APR-UTIL Resource List Routines
- */
-
-#include "apr.h"
-#include "apu.h"
-#include "apr_pools.h"
-#include "apr_errno.h"
-#include "apr_time.h"
-
-/**
- * @defgroup APR_Util_RL Resource List Routines
- * @ingroup APR_Util
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** Opaque resource list object */
-typedef struct apr_reslist_t apr_reslist_t;
-
-/* Generic constructor called by resource list when it needs to create a
- * resource.
- * @param resource opaque resource
- * @param param flags
- * @param pool Pool
- */
-typedef apr_status_t (*apr_reslist_constructor)(void **resource, void *params,
- apr_pool_t *pool);
-
-/* Generic destructor called by resource list when it needs to destroy a
- * resource.
- * @param resource opaque resource
- * @param param flags
- * @param pool Pool
- */
-typedef apr_status_t (*apr_reslist_destructor)(void *resource, void *params,
- apr_pool_t *pool);
-
-/* Cleanup order modes */
-#define APR_RESLIST_CLEANUP_DEFAULT 0 /**< default pool cleanup */
-#define APR_RESLIST_CLEANUP_FIRST 1 /**< use pool pre cleanup */
-
-/**
- * Create a new resource list with the following parameters:
- * @param reslist An address where the pointer to the new resource
- * list will be stored.
- * @param min Allowed minimum number of available resources. Zero
- * creates new resources only when needed.
- * @param smax Resources will be destroyed to meet this maximum
- * restriction as they expire.
- * @param hmax Absolute maximum limit on the number of total resources.
- * @param ttl If non-zero, sets the maximum amount of time a resource
- * may be available while exceeding the soft limit.
- * @param con Constructor routine that is called to create a new resource.
- * @param de Destructor routine that is called to destroy an expired resource.
- * @param params Passed to constructor and deconstructor
- * @param pool The pool from which to create this resoure list. Also the
- * same pool that is passed to the constructor and destructor
- * routines.
- * @remark If APR has been compiled without thread support, hmax will be
- * automatically set to 1 and values of min and smax will be forced to
- * 1 for any non-zero value.
- */
-APU_DECLARE(apr_status_t) apr_reslist_create(apr_reslist_t **reslist,
- int min, int smax, int hmax,
- apr_interval_time_t ttl,
- apr_reslist_constructor con,
- apr_reslist_destructor de,
- void *params,
- apr_pool_t *pool);
-
-/**
- * Destroy the given resource list and all resources controlled by
- * this list.
- * FIXME: Should this block until all resources become available,
- * or maybe just destroy all the free ones, or maybe destroy
- * them even though they might be in use by something else?
- * Currently it will abort if there are resources that haven't
- * been released, so there is an assumption that all resources
- * have been released to the list before calling this function.
- * @param reslist The reslist to destroy
- */
-APU_DECLARE(apr_status_t) apr_reslist_destroy(apr_reslist_t *reslist);
-
-/**
- * Retrieve a resource from the list, creating a new one if necessary.
- * If we have met our maximum number of resources, we will block
- * until one becomes available.
- */
-APU_DECLARE(apr_status_t) apr_reslist_acquire(apr_reslist_t *reslist,
- void **resource);
-
-/**
- * Return a resource back to the list of available resources.
- */
-APU_DECLARE(apr_status_t) apr_reslist_release(apr_reslist_t *reslist,
- void *resource);
-
-/**
- * Set the timeout the acquire will wait for a free resource
- * when the maximum number of resources is exceeded.
- * @param reslist The resource list.
- * @param timeout Timeout to wait. The zero waits forewer.
- */
-APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist,
- apr_interval_time_t timeout);
-
-/**
- * Return the number of outstanding resources.
- * @param reslist The resource list.
- */
-APU_DECLARE(apr_uint32_t) apr_reslist_acquired_count(apr_reslist_t *reslist);
-
-/**
- * Invalidate a resource in the pool - e.g. a database connection
- * that returns a "lost connection" error and can't be restored.
- * Use this instead of apr_reslist_release if the resource is bad.
- */
-APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist,
- void *resource);
-
-/**
- * Perform routine maintenance on the resource list. This call
- * may instantiate new resources or expire old resources.
- * @param reslist The resource list.
- */
-APU_DECLARE(apr_status_t) apr_reslist_maintain(apr_reslist_t *reslist);
-
-/**
- * Set reslist cleanup order.
- * @param reslist The resource list.
- * @param mode Cleanup order mode
- * <PRE>
- * APR_RESLIST_CLEANUP_DEFAULT default pool cleanup order
- * APR_RESLIST_CLEANUP_FIRST use pool pre cleanup
- * </PRE>
- * @remark If APR_RESLIST_CLEANUP_FIRST is used the destructors will
- * be called before child pools of the pool used to create the reslist
- * are destroyed. This allows to explicitly destroy the child pools
- * inside reslist destructors.
- */
-APU_DECLARE(void) apr_reslist_cleanup_order_set(apr_reslist_t *reslist,
- apr_uint32_t mode);
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* ! APR_RESLIST_H */
diff --git a/include/apr_rmm.h b/include/apr_rmm.h
deleted file mode 100644
index 976fe9c5..00000000
--- a/include/apr_rmm.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_RMM_H
-#define APR_RMM_H
-/**
- * @file apr_rmm.h
- * @brief APR-UTIL Relocatable Memory Management Routines
- */
-/**
- * @defgroup APR_Util_RMM Relocatable Memory Management Routines
- * @ingroup APR_Util
- * @{
- */
-
-#include "apr.h"
-#include "apr_pools.h"
-#include "apr_errno.h"
-#include "apu.h"
-#include "apr_anylock.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** Structure to access Relocatable, Managed Memory */
-typedef struct apr_rmm_t apr_rmm_t;
-
-/** Fundamental allocation unit, within a specific apr_rmm_t */
-typedef apr_size_t apr_rmm_off_t;
-
-/**
- * Initialize a relocatable memory block to be managed by the apr_rmm API.
- * @param rmm The relocatable memory block
- * @param lock An apr_anylock_t of the appropriate type of lock, or NULL
- * if no locking is required.
- * @param membuf The block of relocatable memory to be managed
- * @param memsize The size of relocatable memory block to be managed
- * @param cont The pool to use for local storage and management
- * @remark Both @param membuf and @param memsize must be aligned
- * (for instance using APR_ALIGN_DEFAULT).
- */
-APU_DECLARE(apr_status_t) apr_rmm_init(apr_rmm_t **rmm, apr_anylock_t *lock,
- void *membuf, apr_size_t memsize,
- apr_pool_t *cont);
-
-/**
- * Destroy a managed memory block.
- * @param rmm The relocatable memory block to destroy
- */
-APU_DECLARE(apr_status_t) apr_rmm_destroy(apr_rmm_t *rmm);
-
-/**
- * Attach to a relocatable memory block already managed by the apr_rmm API.
- * @param rmm The relocatable memory block
- * @param lock An apr_anylock_t of the appropriate type of lock
- * @param membuf The block of relocatable memory already under management
- * @param cont The pool to use for local storage and management
- */
-APU_DECLARE(apr_status_t) apr_rmm_attach(apr_rmm_t **rmm, apr_anylock_t *lock,
- void *membuf, apr_pool_t *cont);
-
-/**
- * Detach from the managed block of memory.
- * @param rmm The relocatable memory block to detach from
- */
-APU_DECLARE(apr_status_t) apr_rmm_detach(apr_rmm_t *rmm);
-
-/**
- * Allocate memory from the block of relocatable memory.
- * @param rmm The relocatable memory block
- * @param reqsize How much memory to allocate
- */
-APU_DECLARE(apr_rmm_off_t) apr_rmm_malloc(apr_rmm_t *rmm, apr_size_t reqsize);
-
-/**
- * Realloc memory from the block of relocatable memory.
- * @param rmm The relocatable memory block
- * @param entity The memory allocation to realloc
- * @param reqsize The new size
- */
-APU_DECLARE(apr_rmm_off_t) apr_rmm_realloc(apr_rmm_t *rmm, void *entity, apr_size_t reqsize);
-
-/**
- * Allocate memory from the block of relocatable memory and initialize it to zero.
- * @param rmm The relocatable memory block
- * @param reqsize How much memory to allocate
- */
-APU_DECLARE(apr_rmm_off_t) apr_rmm_calloc(apr_rmm_t *rmm, apr_size_t reqsize);
-
-/**
- * Free allocation returned by apr_rmm_malloc or apr_rmm_calloc.
- * @param rmm The relocatable memory block
- * @param entity The memory allocation to free
- */
-APU_DECLARE(apr_status_t) apr_rmm_free(apr_rmm_t *rmm, apr_rmm_off_t entity);
-
-/**
- * Retrieve the physical address of a relocatable allocation of memory
- * @param rmm The relocatable memory block
- * @param entity The memory allocation to free
- * @return address The address, aligned with APR_ALIGN_DEFAULT.
- */
-APU_DECLARE(void *) apr_rmm_addr_get(apr_rmm_t *rmm, apr_rmm_off_t entity);
-
-/**
- * Compute the offset of a relocatable allocation of memory
- * @param rmm The relocatable memory block
- * @param entity The physical address to convert to an offset
- */
-APU_DECLARE(apr_rmm_off_t) apr_rmm_offset_get(apr_rmm_t *rmm, void *entity);
-
-/**
- * Compute the required overallocation of memory needed to fit n allocs
- * @param n The number of alloc/calloc regions desired
- */
-APU_DECLARE(apr_size_t) apr_rmm_overhead_get(int n);
-
-#ifdef __cplusplus
-}
-#endif
-/** @} */
-#endif /* ! APR_RMM_H */
-
diff --git a/include/apr_sdbm.h b/include/apr_sdbm.h
deleted file mode 100644
index 5759508b..00000000
--- a/include/apr_sdbm.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * sdbm - ndbm work-alike hashed database library
- * based on Per-Ake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
- * author: oz@nexus.yorku.ca
- * status: ex-public domain
- */
-
-#ifndef APR_SDBM_H
-#define APR_SDBM_H
-
-#include "apu.h"
-#include "apr_errno.h"
-#include "apr_file_io.h" /* for apr_fileperms_t */
-
-/**
- * @file apr_sdbm.h
- * @brief apr-util SDBM library
- */
-/**
- * @defgroup APR_Util_DBM_SDBM SDBM library
- * @ingroup APR_Util_DBM
- * @{
- */
-
-/**
- * Structure for referencing an sdbm
- */
-typedef struct apr_sdbm_t apr_sdbm_t;
-
-/**
- * Structure for referencing the datum record within an sdbm
- */
-typedef struct {
- /** pointer to the data stored/retrieved */
- char *dptr;
- /** size of data */
- /* apr_ssize_t for release 2.0??? */
- int dsize;
-} apr_sdbm_datum_t;
-
-/* The extensions used for the database files */
-/** SDBM Directory file extension */
-#define APR_SDBM_DIRFEXT ".dir"
-/** SDBM page file extension */
-#define APR_SDBM_PAGFEXT ".pag"
-
-/* flags to sdbm_store */
-#define APR_SDBM_INSERT 0 /**< Insert */
-#define APR_SDBM_REPLACE 1 /**< Replace */
-#define APR_SDBM_INSERTDUP 2 /**< Insert with duplicates */
-
-/**
- * Open an sdbm database by file name
- * @param db The newly opened database
- * @param name The sdbm file to open
- * @param mode The flag values (APR_READ and APR_BINARY flags are implicit)
- * <PRE>
- * APR_WRITE open for read-write access
- * APR_CREATE create the sdbm if it does not exist
- * APR_TRUNCATE empty the contents of the sdbm
- * APR_EXCL fail for APR_CREATE if the file exists
- * APR_DELONCLOSE delete the sdbm when closed
- * APR_SHARELOCK support locking across process/machines
- * </PRE>
- * @param perms Permissions to apply to if created
- * @param p The pool to use when creating the sdbm
- * @remark The sdbm name is not a true file name, as sdbm appends suffixes
- * for seperate data and index files.
- */
-APU_DECLARE(apr_status_t) apr_sdbm_open(apr_sdbm_t **db, const char *name,
- apr_int32_t mode,
- apr_fileperms_t perms, apr_pool_t *p);
-
-/**
- * Close an sdbm file previously opened by apr_sdbm_open
- * @param db The database to close
- */
-APU_DECLARE(apr_status_t) apr_sdbm_close(apr_sdbm_t *db);
-
-/**
- * Lock an sdbm database for concurency of multiple operations
- * @param db The database to lock
- * @param type The lock type
- * <PRE>
- * APR_FLOCK_SHARED
- * APR_FLOCK_EXCLUSIVE
- * </PRE>
- * @remark Calls to apr_sdbm_lock may be nested. All apr_sdbm functions
- * perform implicit locking. Since an APR_FLOCK_SHARED lock cannot be
- * portably promoted to an APR_FLOCK_EXCLUSIVE lock, apr_sdbm_store and
- * apr_sdbm_delete calls will fail if an APR_FLOCK_SHARED lock is held.
- * The apr_sdbm_lock call requires the database to be opened with the
- * APR_SHARELOCK mode value.
- */
-APU_DECLARE(apr_status_t) apr_sdbm_lock(apr_sdbm_t *db, int type);
-
-/**
- * Release an sdbm lock previously aquired by apr_sdbm_lock
- * @param db The database to unlock
- */
-APU_DECLARE(apr_status_t) apr_sdbm_unlock(apr_sdbm_t *db);
-
-/**
- * Fetch an sdbm record value by key
- * @param db The database
- * @param value The value datum retrieved for this record
- * @param key The key datum to find this record
- */
-APU_DECLARE(apr_status_t) apr_sdbm_fetch(apr_sdbm_t *db,
- apr_sdbm_datum_t *value,
- apr_sdbm_datum_t key);
-
-/**
- * Store an sdbm record value by key
- * @param db The database
- * @param key The key datum to store this record by
- * @param value The value datum to store in this record
- * @param opt The method used to store the record
- * <PRE>
- * APR_SDBM_INSERT return an error if the record exists
- * APR_SDBM_REPLACE overwrite any existing record for key
- * </PRE>
- */
-APU_DECLARE(apr_status_t) apr_sdbm_store(apr_sdbm_t *db, apr_sdbm_datum_t key,
- apr_sdbm_datum_t value, int opt);
-
-/**
- * Delete an sdbm record value by key
- * @param db The database
- * @param key The key datum of the record to delete
- * @remark It is not an error to delete a non-existent record.
- */
-APU_DECLARE(apr_status_t) apr_sdbm_delete(apr_sdbm_t *db,
- const apr_sdbm_datum_t key);
-
-/**
- * Retrieve the first record key from a dbm
- * @param db The database
- * @param key The key datum of the first record
- * @remark The keys returned are not ordered. To traverse the list of keys
- * for an sdbm opened with APR_SHARELOCK, the caller must use apr_sdbm_lock
- * prior to retrieving the first record, and hold the lock until after the
- * last call to apr_sdbm_nextkey.
- */
-APU_DECLARE(apr_status_t) apr_sdbm_firstkey(apr_sdbm_t *db, apr_sdbm_datum_t *key);
-
-/**
- * Retrieve the next record key from an sdbm
- * @param db The database
- * @param key The key datum of the next record
- */
-APU_DECLARE(apr_status_t) apr_sdbm_nextkey(apr_sdbm_t *db, apr_sdbm_datum_t *key);
-
-/**
- * Returns true if the sdbm database opened for read-only access
- * @param db The database to test
- */
-APU_DECLARE(int) apr_sdbm_rdonly(apr_sdbm_t *db);
-/** @} */
-#endif /* APR_SDBM_H */
diff --git a/include/apr_sha1.h b/include/apr_sha1.h
deleted file mode 100644
index 2a4edf36..00000000
--- a/include/apr_sha1.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* NIST Secure Hash Algorithm
- * heavily modified by Uwe Hollerbach uh@alumni.caltech edu
- * from Peter C. Gutmann's implementation as found in
- * Applied Cryptography by Bruce Schneier
- * This code is hereby placed in the public domain
- */
-
-#ifndef APR_SHA1_H
-#define APR_SHA1_H
-
-#include "apu.h"
-#include "apr_general.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @file apr_sha1.h
- * @brief APR-UTIL SHA1 library
- */
-
-/** size of the SHA1 DIGEST */
-#define APR_SHA1_DIGESTSIZE 20
-
-/**
- * Define the Magic String prefix that identifies a password as being
- * hashed using our algorithm.
- */
-#define APR_SHA1PW_ID "{SHA}"
-
-/** length of the SHA Password */
-#define APR_SHA1PW_IDLEN 5
-
-/** @see apr_sha1_ctx_t */
-typedef struct apr_sha1_ctx_t apr_sha1_ctx_t;
-
-/**
- * SHA1 context structure
- */
-struct apr_sha1_ctx_t {
- /** message digest */
- apr_uint32_t digest[5];
- /** 64-bit bit counts */
- apr_uint32_t count_lo, count_hi;
- /** SHA data buffer */
- apr_uint32_t data[16];
- /** unprocessed amount in data */
- int local;
-};
-
-/**
- * Provide a means to SHA1 crypt/encode a plaintext password in a way which
- * makes password file compatible with those commonly use in netscape web
- * and ldap installations.
- * @param clear The plaintext password
- * @param len The length of the plaintext password
- * @param out The encrypted/encoded password
- * @note SHA1 support is useful for migration purposes, but is less
- * secure than Apache's password format, since Apache's (MD5)
- * password format uses a random eight character salt to generate
- * one of many possible hashes for the same password. Netscape
- * uses plain SHA1 without a salt, so the same password
- * will always generate the same hash, making it easier
- * to break since the search space is smaller.
- */
-APU_DECLARE(void) apr_sha1_base64(const char *clear, int len, char *out);
-
-/**
- * Initialize the SHA digest
- * @param context The SHA context to initialize
- */
-APU_DECLARE(void) apr_sha1_init(apr_sha1_ctx_t *context);
-
-/**
- * Update the SHA digest
- * @param context The SHA1 context to update
- * @param input The buffer to add to the SHA digest
- * @param inputLen The length of the input buffer
- */
-APU_DECLARE(void) apr_sha1_update(apr_sha1_ctx_t *context, const char *input,
- unsigned int inputLen);
-
-/**
- * Update the SHA digest with binary data
- * @param context The SHA1 context to update
- * @param input The buffer to add to the SHA digest
- * @param inputLen The length of the input buffer
- */
-APU_DECLARE(void) apr_sha1_update_binary(apr_sha1_ctx_t *context,
- const unsigned char *input,
- unsigned int inputLen);
-
-/**
- * Finish computing the SHA digest
- * @param digest the output buffer in which to store the digest
- * @param context The context to finalize
- */
-APU_DECLARE(void) apr_sha1_final(unsigned char digest[APR_SHA1_DIGESTSIZE],
- apr_sha1_ctx_t *context);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_SHA1_H */
diff --git a/include/apr_strmatch.h b/include/apr_strmatch.h
deleted file mode 100644
index 53fadad5..00000000
--- a/include/apr_strmatch.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_STRMATCH_H
-#define APR_STRMATCH_H
-/**
- * @file apr_strmatch.h
- * @brief APR-UTIL string matching routines
- */
-
-#include "apu.h"
-#include "apr_pools.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup APR_Util_StrMatch String matching routines
- * @ingroup APR_Util
- * @{
- */
-
-/** @see apr_strmatch_pattern */
-typedef struct apr_strmatch_pattern apr_strmatch_pattern;
-
-/**
- * Precompiled search pattern
- */
-struct apr_strmatch_pattern {
- /** Function called to compare */
- const char *(*compare)(const apr_strmatch_pattern *this_pattern,
- const char *s, apr_size_t slen);
- const char *pattern; /**< Current pattern */
- apr_size_t length; /**< Current length */
- void *context; /**< hook to add precomputed metadata */
-};
-
-#if defined(DOXYGEN)
-/**
- * Search for a precompiled pattern within a string
- * @param pattern The pattern
- * @param s The string in which to search for the pattern
- * @param slen The length of s (excluding null terminator)
- * @return A pointer to the first instance of the pattern in s, or
- * NULL if not found
- */
-APU_DECLARE(const char *) apr_strmatch(const apr_strmatch_pattern *pattern,
- const char *s, apr_size_t slen);
-#else
-#define apr_strmatch(pattern, s, slen) (*((pattern)->compare))((pattern), (s), (slen))
-#endif
-
-/**
- * Precompile a pattern for matching using the Boyer-Moore-Horspool algorithm
- * @param p The pool from which to allocate the pattern
- * @param s The pattern string
- * @param case_sensitive Whether the matching should be case-sensitive
- * @return a pointer to the compiled pattern, or NULL if compilation fails
- */
-APU_DECLARE(const apr_strmatch_pattern *) apr_strmatch_precompile(apr_pool_t *p, const char *s, int case_sensitive);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !APR_STRMATCH_H */
diff --git a/include/apr_thread_pool.h b/include/apr_thread_pool.h
deleted file mode 100644
index cbf382b3..00000000
--- a/include/apr_thread_pool.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-#ifndef APU_THREAD_POOL_H
-#define APU_THREAD_POOL_H
-
-#include "apu.h"
-#include "apr_thread_proc.h"
-
-/**
- * @file apr_thread_pool.h
- * @brief APR Thread Pool Library
-
- * @remarks This library implements a thread pool using apr_thread_t. A thread
- * pool is a set of threads that can be created in advance or on demand until a
- * maximum number. When a task is scheduled, the thread pool will find an idle
- * thread to handle the task. In case all existing threads are busy and the
- * number of tasks in the queue is higher than the adjustable threshold, the
- * pool will try to create a new thread to serve the task if the maximum number
- * has not been reached. Otherwise, the task will be put into a queue based on
- * priority, which can be valued from 0 to 255, with higher values being served
- * first. If there are tasks with the same priority, the new task might be put at
- * the top or at the bottom - it depends on which function is used to put the task.
- *
- * @remarks There may be the case where the thread pool can use up to the maximum
- * number of threads at peak load, but having those threads idle afterwards. A
- * maximum number of idle threads can be set so that the extra idling threads will
- * be terminated to save system resources.
- */
-#if APR_HAS_THREADS
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup APR_Util_TP Thread Pool routines
- * @ingroup APR_Util
- * @{
- */
-
-/** Opaque Thread Pool structure. */
-typedef struct apr_thread_pool apr_thread_pool_t;
-
-#define APR_THREAD_TASK_PRIORITY_LOWEST 0
-#define APR_THREAD_TASK_PRIORITY_LOW 63
-#define APR_THREAD_TASK_PRIORITY_NORMAL 127
-#define APR_THREAD_TASK_PRIORITY_HIGH 191
-#define APR_THREAD_TASK_PRIORITY_HIGHEST 255
-
-/**
- * Create a thread pool
- * @param me The pointer in which to return the newly created apr_thread_pool
- * object, or NULL if thread pool creation fails.
- * @param init_threads The number of threads to be created initially, this number
- * will also be used as the initial value for the maximum number of idle threads.
- * @param max_threads The maximum number of threads that can be created
- * @param pool The pool to use
- * @return APR_SUCCESS if the thread pool was created successfully. Otherwise,
- * the error code.
- */
-APU_DECLARE(apr_status_t) apr_thread_pool_create(apr_thread_pool_t **me,
- apr_size_t init_threads,
- apr_size_t max_threads,
- apr_pool_t *pool);
-
-/**
- * Destroy the thread pool and stop all the threads
- * @return APR_SUCCESS if all threads are stopped.
- */
-APU_DECLARE(apr_status_t) apr_thread_pool_destroy(apr_thread_pool_t *me);
-
-/**
- * Schedule a task to the bottom of the tasks of same priority.
- * @param me The thread pool
- * @param func The task function
- * @param param The parameter for the task function
- * @param priority The priority of the task.
- * @param owner Owner of this task.
- * @return APR_SUCCESS if the task had been scheduled successfully
- */
-APU_DECLARE(apr_status_t) apr_thread_pool_push(apr_thread_pool_t *me,
- apr_thread_start_t func,
- void *param,
- apr_byte_t priority,
- void *owner);
-/**
- * Schedule a task to be run after a delay
- * @param me The thread pool
- * @param func The task function
- * @param param The parameter for the task function
- * @param time Time in microseconds
- * @param owner Owner of this task.
- * @return APR_SUCCESS if the task had been scheduled successfully
- */
-APU_DECLARE(apr_status_t) apr_thread_pool_schedule(apr_thread_pool_t *me,
- apr_thread_start_t func,
- void *param,
- apr_interval_time_t time,
- void *owner);
-
-/**
- * Schedule a task to the top of the tasks of same priority.
- * @param me The thread pool
- * @param func The task function
- * @param param The parameter for the task function
- * @param priority The priority of the task.
- * @param owner Owner of this task.
- * @return APR_SUCCESS if the task had been scheduled successfully
- */
-APU_DECLARE(apr_status_t) apr_thread_pool_top(apr_thread_pool_t *me,
- apr_thread_start_t func,
- void *param,
- apr_byte_t priority,
- void *owner);
-
-/**
- * Cancel tasks submitted by the owner. If there is any task from the owner that
- * is currently running, the function will spin until the task finished.
- * @param me The thread pool
- * @param owner Owner of the task
- * @return APR_SUCCESS if the task has been cancelled successfully
- * @note The task function should not be calling cancel, otherwise the function
- * may get stuck forever. The function assert if it detect such a case.
- */
-APU_DECLARE(apr_status_t) apr_thread_pool_tasks_cancel(apr_thread_pool_t *me,
- void *owner);
-
-/**
- * Get the current number of tasks waiting in the queue
- * @param me The thread pool
- * @return Number of tasks in the queue
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_tasks_count(apr_thread_pool_t *me);
-
-/**
- * Get the current number of scheduled tasks waiting in the queue
- * @param me The thread pool
- * @return Number of scheduled tasks in the queue
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_scheduled_tasks_count(apr_thread_pool_t *me);
-
-/**
- * Get the current number of threads
- * @param me The thread pool
- * @return Total number of threads
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_threads_count(apr_thread_pool_t *me);
-
-/**
- * Get the current number of busy threads
- * @param me The thread pool
- * @return Number of busy threads
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_busy_count(apr_thread_pool_t *me);
-
-/**
- * Get the current number of idle threads
- * @param me The thread pool
- * @return Number of idle threads
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_idle_count(apr_thread_pool_t *me);
-
-/**
- * Access function for the maximum number of idle threads. Number of current
- * idle threads will be reduced to the new limit.
- * @param me The thread pool
- * @param cnt The number
- * @return The number of threads that were stopped.
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_idle_max_set(apr_thread_pool_t *me,
- apr_size_t cnt);
-
-/**
- * Get number of tasks that have run
- * @param me The thread pool
- * @return Number of tasks that have run
- */
-APU_DECLARE(apr_size_t)
- apr_thread_pool_tasks_run_count(apr_thread_pool_t * me);
-
-/**
- * Get high water mark of the number of tasks waiting to run
- * @param me The thread pool
- * @return High water mark of tasks waiting to run
- */
-APU_DECLARE(apr_size_t)
- apr_thread_pool_tasks_high_count(apr_thread_pool_t * me);
-
-/**
- * Get high water mark of the number of threads
- * @param me The thread pool
- * @return High water mark of threads in thread pool
- */
-APU_DECLARE(apr_size_t)
- apr_thread_pool_threads_high_count(apr_thread_pool_t * me);
-
-/**
- * Get the number of idle threads that were destroyed after timing out
- * @param me The thread pool
- * @return Number of idle threads that timed out
- */
-APU_DECLARE(apr_size_t)
- apr_thread_pool_threads_idle_timeout_count(apr_thread_pool_t * me);
-
-/**
- * Access function for the maximum number of idle threads
- * @param me The thread pool
- * @return The current maximum number
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_idle_max_get(apr_thread_pool_t *me);
-
-/**
- * Access function for the maximum number of threads.
- * @param me The thread pool
- * @param cnt Number of threads
- * @return The original maximum number of threads
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_thread_max_set(apr_thread_pool_t *me,
- apr_size_t cnt);
-
-/**
- * Access function for the maximum wait time (in microseconds) of an
- * idling thread that exceeds the maximum number of idling threads.
- * A non-zero value allows for the reaping of idling threads to shrink
- * over time. Which helps reduce thrashing.
- * @param me The thread pool
- * @param timeout The number of microseconds an idle thread should wait
- * till it reaps itself
- * @return The original maximum wait time
- */
-APU_DECLARE(apr_interval_time_t)
- apr_thread_pool_idle_wait_set(apr_thread_pool_t * me,
- apr_interval_time_t timeout);
-
-/**
- * Access function for the maximum wait time (in microseconds) of an
- * idling thread that exceeds the maximum number of idling threads
- * @param me The thread pool
- * @return The current maximum wait time
- */
-APU_DECLARE(apr_interval_time_t)
- apr_thread_pool_idle_wait_get(apr_thread_pool_t * me);
-
-/**
- * Access function for the maximum number of threads
- * @param me The thread pool
- * @return The current maximum number
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_thread_max_get(apr_thread_pool_t *me);
-
-/**
- * Access function for the threshold of tasks in queue to trigger a new thread.
- * @param me The thread pool
- * @param cnt The new threshold
- * @return The original threshold
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_threshold_set(apr_thread_pool_t *me,
- apr_size_t val);
-
-/**
- * Access function for the threshold of tasks in queue to trigger a new thread.
- * @param me The thread pool
- * @return The current threshold
- */
-APU_DECLARE(apr_size_t) apr_thread_pool_threshold_get(apr_thread_pool_t * me);
-
-/**
- * Get owner of the task currently been executed by the thread.
- * @param thd The thread is executing a task
- * @param owner Pointer to receive owner of the task.
- * @return APR_SUCCESS if the owner is retrieved successfully
- */
-APU_DECLARE(apr_status_t) apr_thread_pool_task_owner_get(apr_thread_t *thd,
- void **owner);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_HAS_THREADS */
-#endif /* !APR_THREAD_POOL_H */
diff --git a/include/apr_uri.h b/include/apr_uri.h
deleted file mode 100644
index 02908a9d..00000000
--- a/include/apr_uri.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * apr_uri.h: External Interface of apr_uri.c
- */
-
-/**
- * @file apr_uri.h
- * @brief APR-UTIL URI Routines
- */
-
-#ifndef APR_URI_H
-#define APR_URI_H
-
-#include "apu.h"
-
-#include "apr_network_io.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup APR_Util_URI URI
- * @ingroup APR_Util
- * @{
- */
-
-#define APR_URI_FTP_DEFAULT_PORT 21 /**< default FTP port */
-#define APR_URI_SSH_DEFAULT_PORT 22 /**< default SSH port */
-#define APR_URI_TELNET_DEFAULT_PORT 23 /**< default telnet port */
-#define APR_URI_GOPHER_DEFAULT_PORT 70 /**< default Gopher port */
-#define APR_URI_HTTP_DEFAULT_PORT 80 /**< default HTTP port */
-#define APR_URI_POP_DEFAULT_PORT 110 /**< default POP port */
-#define APR_URI_NNTP_DEFAULT_PORT 119 /**< default NNTP port */
-#define APR_URI_IMAP_DEFAULT_PORT 143 /**< default IMAP port */
-#define APR_URI_PROSPERO_DEFAULT_PORT 191 /**< default Prospero port */
-#define APR_URI_WAIS_DEFAULT_PORT 210 /**< default WAIS port */
-#define APR_URI_LDAP_DEFAULT_PORT 389 /**< default LDAP port */
-#define APR_URI_HTTPS_DEFAULT_PORT 443 /**< default HTTPS port */
-#define APR_URI_RTSP_DEFAULT_PORT 554 /**< default RTSP port */
-#define APR_URI_SNEWS_DEFAULT_PORT 563 /**< default SNEWS port */
-#define APR_URI_ACAP_DEFAULT_PORT 674 /**< default ACAP port */
-#define APR_URI_NFS_DEFAULT_PORT 2049 /**< default NFS port */
-#define APR_URI_TIP_DEFAULT_PORT 3372 /**< default TIP port */
-#define APR_URI_SIP_DEFAULT_PORT 5060 /**< default SIP port */
-
-/** Flags passed to unparse_uri_components(): */
-/** suppress "scheme://user\@site:port" */
-#define APR_URI_UNP_OMITSITEPART (1U<<0)
-/** Just omit user */
-#define APR_URI_UNP_OMITUSER (1U<<1)
-/** Just omit password */
-#define APR_URI_UNP_OMITPASSWORD (1U<<2)
-/** omit "user:password\@" part */
-#define APR_URI_UNP_OMITUSERINFO (APR_URI_UNP_OMITUSER | \
- APR_URI_UNP_OMITPASSWORD)
-/** Show plain text password (default: show XXXXXXXX) */
-#define APR_URI_UNP_REVEALPASSWORD (1U<<3)
-/** Show "scheme://user\@site:port" only */
-#define APR_URI_UNP_OMITPATHINFO (1U<<4)
-/** Omit the "?queryarg" from the path */
-#define APR_URI_UNP_OMITQUERY (1U<<5)
-
-/** @see apr_uri_t */
-typedef struct apr_uri_t apr_uri_t;
-
-/**
- * A structure to encompass all of the fields in a uri
- */
-struct apr_uri_t {
- /** scheme ("http"/"ftp"/...) */
- char *scheme;
- /** combined [user[:password]\@]host[:port] */
- char *hostinfo;
- /** user name, as in http://user:passwd\@host:port/ */
- char *user;
- /** password, as in http://user:passwd\@host:port/ */
- char *password;
- /** hostname from URI (or from Host: header) */
- char *hostname;
- /** port string (integer representation is in "port") */
- char *port_str;
- /** the request path (or NULL if only scheme://host was given) */
- char *path;
- /** Everything after a '?' in the path, if present */
- char *query;
- /** Trailing "#fragment" string, if present */
- char *fragment;
-
- /** structure returned from gethostbyname() */
- struct hostent *hostent;
-
- /** The port number, numeric, valid only if port_str != NULL */
- apr_port_t port;
-
- /** has the structure been initialized */
- unsigned is_initialized:1;
-
- /** has the DNS been looked up yet */
- unsigned dns_looked_up:1;
- /** has the dns been resolved yet */
- unsigned dns_resolved:1;
-};
-
-/* apr_uri.c */
-/**
- * Return the default port for a given scheme. The schemes recognized are
- * http, ftp, https, gopher, wais, nntp, snews, and prospero
- * @param scheme_str The string that contains the current scheme
- * @return The default port for this scheme
- */
-APU_DECLARE(apr_port_t) apr_uri_port_of_scheme(const char *scheme_str);
-
-/**
- * Unparse a apr_uri_t structure to an URI string. Optionally
- * suppress the password for security reasons.
- * @param p The pool to allocate out of
- * @param uptr All of the parts of the uri
- * @param flags How to unparse the uri. One of:
- * <PRE>
- * APR_URI_UNP_OMITSITEPART Suppress "scheme://user\@site:port"
- * APR_URI_UNP_OMITUSER Just omit user
- * APR_URI_UNP_OMITPASSWORD Just omit password
- * APR_URI_UNP_OMITUSERINFO Omit "user:password\@" part
- * APR_URI_UNP_REVEALPASSWORD Show plain text password (default: show XXXXXXXX)
- * APR_URI_UNP_OMITPATHINFO Show "scheme://user\@site:port" only
- * APR_URI_UNP_OMITQUERY Omit "?queryarg" or "#fragment"
- * </PRE>
- * @return The uri as a string
- */
-APU_DECLARE(char *) apr_uri_unparse(apr_pool_t *p,
- const apr_uri_t *uptr,
- unsigned flags);
-
-/**
- * Parse a given URI, fill in all supplied fields of a apr_uri_t
- * structure. This eliminates the necessity of extracting host, port,
- * path, query info repeatedly in the modules.
- * @param p The pool to allocate out of
- * @param uri The uri to parse
- * @param uptr The apr_uri_t to fill out
- * @return APR_SUCCESS for success or error code
- */
-APU_DECLARE(apr_status_t) apr_uri_parse(apr_pool_t *p, const char *uri,
- apr_uri_t *uptr);
-
-/**
- * Special case for CONNECT parsing: it comes with the hostinfo part only
- * @param p The pool to allocate out of
- * @param hostinfo The hostinfo string to parse
- * @param uptr The apr_uri_t to fill out
- * @return APR_SUCCESS for success or error code
- */
-APU_DECLARE(apr_status_t) apr_uri_parse_hostinfo(apr_pool_t *p,
- const char *hostinfo,
- apr_uri_t *uptr);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_URI_H */
diff --git a/include/apr_uuid.h b/include/apr_uuid.h
deleted file mode 100644
index 5312a9f6..00000000
--- a/include/apr_uuid.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file apr_uuid.h
- * @brief APR UUID library
- */
-#ifndef APR_UUID_H
-#define APR_UUID_H
-
-#include "apu.h"
-#include "apr_errno.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup APR_UUID UUID Handling
- * @ingroup APR
- * @{
- */
-
-/**
- * we represent a UUID as a block of 16 bytes.
- */
-
-typedef struct {
- unsigned char data[16]; /**< the actual UUID */
-} apr_uuid_t;
-
-/** UUIDs are formatted as: 00112233-4455-6677-8899-AABBCCDDEEFF */
-#define APR_UUID_FORMATTED_LENGTH 36
-
-
-/**
- * Generate and return a (new) UUID
- * @param uuid The resulting UUID
- */
-APU_DECLARE(void) apr_uuid_get(apr_uuid_t *uuid);
-
-/**
- * Format a UUID into a string, following the standard format
- * @param buffer The buffer to place the formatted UUID string into. It must
- * be at least APR_UUID_FORMATTED_LENGTH + 1 bytes long to hold
- * the formatted UUID and a null terminator
- * @param uuid The UUID to format
- */
-APU_DECLARE(void) apr_uuid_format(char *buffer, const apr_uuid_t *uuid);
-
-/**
- * Parse a standard-format string into a UUID
- * @param uuid The resulting UUID
- * @param uuid_str The formatted UUID
- */
-APU_DECLARE(apr_status_t) apr_uuid_parse(apr_uuid_t *uuid, const char *uuid_str);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_UUID_H */
diff --git a/include/apr_xlate.h b/include/apr_xlate.h
deleted file mode 100644
index 32636685..00000000
--- a/include/apr_xlate.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_XLATE_H
-#define APR_XLATE_H
-
-#include "apu.h"
-#include "apr_pools.h"
-#include "apr_errno.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @file apr_xlate.h
- * @brief APR I18N translation library
- */
-
-/**
- * @defgroup APR_XLATE I18N translation library
- * @ingroup APR
- * @{
- */
-/** Opaque translation buffer */
-typedef struct apr_xlate_t apr_xlate_t;
-
-/**
- * Set up for converting text from one charset to another.
- * @param convset The handle to be filled in by this function
- * @param topage The name of the target charset
- * @param frompage The name of the source charset
- * @param pool The pool to use
- * @remark
- * Specify APR_DEFAULT_CHARSET for one of the charset
- * names to indicate the charset of the source code at
- * compile time. This is useful if there are literal
- * strings in the source code which must be translated
- * according to the charset of the source code.
- * APR_DEFAULT_CHARSET is not useful if the source code
- * of the caller was not encoded in the same charset as
- * APR at compile time.
- *
- * @remark
- * Specify APR_LOCALE_CHARSET for one of the charset
- * names to indicate the charset of the current locale.
- *
- * @remark
- * Return APR_EINVAL if unable to procure a convset, or APR_ENOTIMPL
- * if charset transcoding is not available in this instance of
- * apr-util at all (i.e., APR_HAS_XLATE is undefined).
- */
-APU_DECLARE(apr_status_t) apr_xlate_open(apr_xlate_t **convset,
- const char *topage,
- const char *frompage,
- apr_pool_t *pool);
-
-/**
- * This is to indicate the charset of the sourcecode at compile time
- * names to indicate the charset of the source code at
- * compile time. This is useful if there are literal
- * strings in the source code which must be translated
- * according to the charset of the source code.
- */
-#define APR_DEFAULT_CHARSET (const char *)0
-/**
- * To indicate charset names of the current locale
- */
-#define APR_LOCALE_CHARSET (const char *)1
-
-/**
- * Find out whether or not the specified conversion is single-byte-only.
- * @param convset The handle allocated by apr_xlate_open, specifying the
- * parameters of conversion
- * @param onoff Output: whether or not the conversion is single-byte-only
- * @remark
- * Return APR_ENOTIMPL if charset transcoding is not available
- * in this instance of apr-util (i.e., APR_HAS_XLATE is undefined).
- */
-APU_DECLARE(apr_status_t) apr_xlate_sb_get(apr_xlate_t *convset, int *onoff);
-
-/**
- * Convert a buffer of text from one codepage to another.
- * @param convset The handle allocated by apr_xlate_open, specifying
- * the parameters of conversion
- * @param inbuf The address of the source buffer
- * @param inbytes_left Input: the amount of input data to be translated
- * Output: the amount of input data not yet translated
- * @param outbuf The address of the destination buffer
- * @param outbytes_left Input: the size of the output buffer
- * Output: the amount of the output buffer not yet used
- * @remark
- * Returns APR_ENOTIMPL if charset transcoding is not available
- * in this instance of apr-util (i.e., APR_HAS_XLATE is undefined).
- * Returns APR_INCOMPLETE if the input buffer ends in an incomplete
- * multi-byte character.
- *
- * To correctly terminate the output buffer for some multi-byte
- * character set encodings, a final call must be made to this function
- * after the complete input string has been converted, passing
- * the inbuf and inbytes_left parameters as NULL. (Note that this
- * mode only works from version 1.1.0 onwards)
- */
-APU_DECLARE(apr_status_t) apr_xlate_conv_buffer(apr_xlate_t *convset,
- const char *inbuf,
- apr_size_t *inbytes_left,
- char *outbuf,
- apr_size_t *outbytes_left);
-
-/* @see apr_file_io.h the comment in apr_file_io.h about this hack */
-#ifdef APR_NOT_DONE_YET
-/**
- * The purpose of apr_xlate_conv_char is to translate one character
- * at a time. This needs to be written carefully so that it works
- * with double-byte character sets.
- * @param convset The handle allocated by apr_xlate_open, specifying the
- * parameters of conversion
- * @param inchar The character to convert
- * @param outchar The converted character
- */
-APU_DECLARE(apr_status_t) apr_xlate_conv_char(apr_xlate_t *convset,
- char inchar, char outchar);
-#endif
-
-/**
- * Convert a single-byte character from one charset to another.
- * @param convset The handle allocated by apr_xlate_open, specifying the
- * parameters of conversion
- * @param inchar The single-byte character to convert.
- * @warning This only works when converting between single-byte character sets.
- * -1 will be returned if the conversion can't be performed.
- */
-APU_DECLARE(apr_int32_t) apr_xlate_conv_byte(apr_xlate_t *convset,
- unsigned char inchar);
-
-/**
- * Close a codepage translation handle.
- * @param convset The codepage translation handle to close
- * @remark
- * Return APR_ENOTIMPL if charset transcoding is not available
- * in this instance of apr-util (i.e., APR_HAS_XLATE is undefined).
- */
-APU_DECLARE(apr_status_t) apr_xlate_close(apr_xlate_t *convset);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ! APR_XLATE_H */
diff --git a/include/apr_xml.h b/include/apr_xml.h
deleted file mode 100644
index 2a43b283..00000000
--- a/include/apr_xml.h
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * @file apr_xml.h
- * @brief APR-UTIL XML Library
- */
-#ifndef APR_XML_H
-#define APR_XML_H
-
-/**
- * @defgroup APR_Util_XML XML
- * @ingroup APR_Util
- * @{
- */
-#include "apr_pools.h"
-#include "apr_tables.h"
-#include "apr_file_io.h"
-
-#include "apu.h"
-#if APR_CHARSET_EBCDIC
-#include "apr_xlate.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @package Apache XML library
- */
-
-/* -------------------------------------------------------------------- */
-
-/* ### these will need to move at some point to a more logical spot */
-
-/** @see apr_text */
-typedef struct apr_text apr_text;
-
-/** Structure to keep a linked list of pieces of text */
-struct apr_text {
- /** The current piece of text */
- const char *text;
- /** a pointer to the next piece of text */
- struct apr_text *next;
-};
-
-/** @see apr_text_header */
-typedef struct apr_text_header apr_text_header;
-
-/** A list of pieces of text */
-struct apr_text_header {
- /** The first piece of text in the list */
- apr_text *first;
- /** The last piece of text in the list */
- apr_text *last;
-};
-
-/**
- * Append a piece of text to the end of a list
- * @param p The pool to allocate out of
- * @param hdr The text header to append to
- * @param text The new text to append
- */
-APU_DECLARE(void) apr_text_append(apr_pool_t *p, apr_text_header *hdr,
- const char *text);
-
-
-/* --------------------------------------------------------------------
-**
-** XML PARSING
-*/
-
-/*
-** Qualified namespace values
-**
-** APR_XML_NS_DAV_ID
-** We always insert the "DAV:" namespace URI at the head of the
-** namespace array. This means that it will always be at ID==0,
-** making it much easier to test for.
-**
-** APR_XML_NS_NONE
-** This special ID is used for two situations:
-**
-** 1) The namespace prefix begins with "xml" (and we do not know
-** what it means). Namespace prefixes with "xml" (any case) as
-** their first three characters are reserved by the XML Namespaces
-** specification for future use. mod_dav will pass these through
-** unchanged. When this identifier is used, the prefix is LEFT in
-** the element/attribute name. Downstream processing should not
-** prepend another prefix.
-**
-** 2) The element/attribute does not have a namespace.
-**
-** a) No prefix was used, and a default namespace has not been
-** defined.
-** b) No prefix was used, and the default namespace was specified
-** to mean "no namespace". This is done with a namespace
-** declaration of: xmlns=""
-** (this declaration is typically used to override a previous
-** specification for the default namespace)
-**
-** In these cases, we need to record that the elem/attr has no
-** namespace so that we will not attempt to prepend a prefix.
-** All namespaces that are used will have a prefix assigned to
-** them -- mod_dav will never set or use the default namespace
-** when generating XML. This means that "no prefix" will always
-** mean "no namespace".
-**
-** In both cases, the XML generation will avoid prepending a prefix.
-** For the first case, this means the original prefix/name will be
-** inserted into the output stream. For the latter case, it means
-** the name will have no prefix, and since we never define a default
-** namespace, this means it will have no namespace.
-**
-** Note: currently, mod_dav understands the "xmlns" prefix and the
-** "xml:lang" attribute. These are handled specially (they aren't
-** left within the XML tree), so the APR_XML_NS_NONE value won't ever
-** really apply to these values.
-*/
-#define APR_XML_NS_DAV_ID 0 /**< namespace ID for "DAV:" */
-#define APR_XML_NS_NONE -10 /**< no namespace for this elem/attr */
-
-#define APR_XML_NS_ERROR_BASE -100 /**< used only during processing */
-/** Is this namespace an error? */
-#define APR_XML_NS_IS_ERROR(e) ((e) <= APR_XML_NS_ERROR_BASE)
-
-/** @see apr_xml_attr */
-typedef struct apr_xml_attr apr_xml_attr;
-/** @see apr_xml_elem */
-typedef struct apr_xml_elem apr_xml_elem;
-/** @see apr_xml_doc */
-typedef struct apr_xml_doc apr_xml_doc;
-
-/** apr_xml_attr: holds a parsed XML attribute */
-struct apr_xml_attr {
- /** attribute name */
- const char *name;
- /** index into namespace array */
- int ns;
-
- /** attribute value */
- const char *value;
-
- /** next attribute */
- struct apr_xml_attr *next;
-};
-
-/** apr_xml_elem: holds a parsed XML element */
-struct apr_xml_elem {
- /** element name */
- const char *name;
- /** index into namespace array */
- int ns;
- /** xml:lang for attrs/contents */
- const char *lang;
-
- /** cdata right after start tag */
- apr_text_header first_cdata;
- /** cdata after MY end tag */
- apr_text_header following_cdata;
-
- /** parent element */
- struct apr_xml_elem *parent;
- /** next (sibling) element */
- struct apr_xml_elem *next;
- /** first child element */
- struct apr_xml_elem *first_child;
- /** first attribute */
- struct apr_xml_attr *attr;
-
- /* used only during parsing */
- /** last child element */
- struct apr_xml_elem *last_child;
- /** namespaces scoped by this elem */
- struct apr_xml_ns_scope *ns_scope;
-
- /* used by modules during request processing */
- /** Place for modules to store private data */
- void *priv;
-};
-
-/** Is this XML element empty? */
-#define APR_XML_ELEM_IS_EMPTY(e) ((e)->first_child == NULL && \
- (e)->first_cdata.first == NULL)
-
-/** apr_xml_doc: holds a parsed XML document */
-struct apr_xml_doc {
- /** root element */
- apr_xml_elem *root;
- /** array of namespaces used */
- apr_array_header_t *namespaces;
-};
-
-/** Opaque XML parser structure */
-typedef struct apr_xml_parser apr_xml_parser;
-
-/**
- * Create an XML parser
- * @param pool The pool for allocating the parser and the parse results.
- * @return The new parser.
- */
-APU_DECLARE(apr_xml_parser *) apr_xml_parser_create(apr_pool_t *pool);
-
-/**
- * Parse a File, producing a xml_doc
- * @param p The pool for allocating the parse results.
- * @param parser A pointer to *parser (needed so calling function can get
- * errors), will be set to NULL on successfull completion.
- * @param ppdoc A pointer to *apr_xml_doc (which has the parsed results in it)
- * @param xmlfd A file to read from.
- * @param buffer_length Buffer length which would be suitable
- * @return Any errors found during parsing.
- */
-APU_DECLARE(apr_status_t) apr_xml_parse_file(apr_pool_t *p,
- apr_xml_parser **parser,
- apr_xml_doc **ppdoc,
- apr_file_t *xmlfd,
- apr_size_t buffer_length);
-
-
-/**
- * Feed input into the parser
- * @param parser The XML parser for parsing this data.
- * @param data The data to parse.
- * @param len The length of the data.
- * @return Any errors found during parsing.
- * @remark Use apr_xml_parser_geterror() to get more error information.
- */
-APU_DECLARE(apr_status_t) apr_xml_parser_feed(apr_xml_parser *parser,
- const char *data,
- apr_size_t len);
-
-/**
- * Terminate the parsing and return the result
- * @param parser The XML parser for parsing this data.
- * @param pdoc The resulting parse information. May be NULL to simply
- * terminate the parsing without fetching the info.
- * @return Any errors found during the final stage of parsing.
- * @remark Use apr_xml_parser_geterror() to get more error information.
- */
-APU_DECLARE(apr_status_t) apr_xml_parser_done(apr_xml_parser *parser,
- apr_xml_doc **pdoc);
-
-/**
- * Fetch additional error information from the parser.
- * @param parser The XML parser to query for errors.
- * @param errbuf A buffer for storing error text.
- * @param errbufsize The length of the error text buffer.
- * @return The error buffer
- */
-APU_DECLARE(char *) apr_xml_parser_geterror(apr_xml_parser *parser,
- char *errbuf,
- apr_size_t errbufsize);
-
-
-/**
- * Converts an XML element tree to flat text
- * @param p The pool to allocate out of
- * @param elem The XML element to convert
- * @param style How to covert the XML. One of:
- * <PRE>
- * APR_XML_X2T_FULL start tag, contents, end tag
- * APR_XML_X2T_INNER contents only
- * APR_XML_X2T_LANG_INNER xml:lang + inner contents
- * APR_XML_X2T_FULL_NS_LANG FULL + ns defns + xml:lang
- * </PRE>
- * @param namespaces The namespace of the current XML element
- * @param ns_map Namespace mapping
- * @param pbuf Buffer to put the converted text into
- * @param psize Size of the converted text
- */
-APU_DECLARE(void) apr_xml_to_text(apr_pool_t *p, const apr_xml_elem *elem,
- int style, apr_array_header_t *namespaces,
- int *ns_map, const char **pbuf,
- apr_size_t *psize);
-
-/* style argument values: */
-#define APR_XML_X2T_FULL 0 /**< start tag, contents, end tag */
-#define APR_XML_X2T_INNER 1 /**< contents only */
-#define APR_XML_X2T_LANG_INNER 2 /**< xml:lang + inner contents */
-#define APR_XML_X2T_FULL_NS_LANG 3 /**< FULL + ns defns + xml:lang */
-
-/**
- * empty XML element
- * @param p The pool to allocate out of
- * @param elem The XML element to empty
- * @return the string that was stored in the XML element
- */
-APU_DECLARE(const char *) apr_xml_empty_elem(apr_pool_t *p,
- const apr_xml_elem *elem);
-
-/**
- * quote an XML string
- * Replace '<', '>', and '&' with '&lt;', '&gt;', and '&amp;'.
- * @param p The pool to allocate out of
- * @param s The string to quote
- * @param quotes If quotes is true, then replace '"' with '&quot;'.
- * @return The quoted string
- * @note If the string does not contain special characters, it is not
- * duplicated into the pool and the original string is returned.
- */
-APU_DECLARE(const char *) apr_xml_quote_string(apr_pool_t *p, const char *s,
- int quotes);
-
-/**
- * Quote an XML element
- * @param p The pool to allocate out of
- * @param elem The element to quote
- */
-APU_DECLARE(void) apr_xml_quote_elem(apr_pool_t *p, apr_xml_elem *elem);
-
-/* manage an array of unique URIs: apr_xml_insert_uri() and APR_XML_URI_ITEM() */
-
-/**
- * return the URI's (existing) index, or insert it and return a new index
- * @param uri_array array to insert into
- * @param uri The uri to insert
- * @return int The uri's index
- */
-APU_DECLARE(int) apr_xml_insert_uri(apr_array_header_t *uri_array,
- const char *uri);
-
-/** Get the URI item for this XML element */
-#define APR_XML_GET_URI_ITEM(ary, i) (((const char * const *)(ary)->elts)[i])
-
-#if APR_CHARSET_EBCDIC
-/**
- * Convert parsed tree in EBCDIC
- * @param p The pool to allocate out of
- * @param pdoc The apr_xml_doc to convert.
- * @param xlate The translation handle to use.
- * @return Any errors found during conversion.
- */
-APU_DECLARE(apr_status_t) apr_xml_parser_convert_doc(apr_pool_t *p,
- apr_xml_doc *pdoc,
- apr_xlate_t *convset);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-/** @} */
-#endif /* APR_XML_H */
diff --git a/include/apu.h.in b/include/apu.h.in
deleted file mode 100644
index 4037094d..00000000
--- a/include/apu.h.in
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * apu.h is generated from apu.h.in by configure -- do not edit apu.h
- */
-/* @file apu.h
- * @brief APR-Utility main file
- */
-/**
- * @defgroup APR_Util APR Utility Functions
- * @{
- */
-
-
-#ifndef APU_H
-#define APU_H
-
-/**
- * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
- * so that all public symbols are exported.
- *
- * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
- * to provide static linkage when the dynamic library may be unavailable.
- *
- * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
- * including the APR-UTIL public headers, to import and link the symbols from
- * the dynamic APR-UTIL library and assure appropriate indirection and calling
- * conventions at compile time.
- */
-
-/**
- * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
- * use the most appropriate calling convention. Public APR functions with
- * variable arguments must use APU_DECLARE_NONSTD().
- *
- * @fn APU_DECLARE(rettype) apr_func(args);
- */
-#define APU_DECLARE(type) type
-/**
- * The public APR-UTIL functions using variable arguments are declared with
- * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
- *
- * @fn APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
- */
-#define APU_DECLARE_NONSTD(type) type
-/**
- * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
- * This assures the appropriate indirection is invoked at compile time.
- *
- * @fn APU_DECLARE_DATA type apr_variable;
- * @note APU_DECLARE_DATA extern type apr_variable; syntax is required for
- * declarations within headers to properly import the variable.
- */
-#define APU_DECLARE_DATA
-
-#if !defined(WIN32) || defined(APU_MODULE_DECLARE_STATIC)
-/**
- * Declare a dso module's exported module structure as APU_MODULE_DECLARE_DATA.
- *
- * Unless APU_MODULE_DECLARE_STATIC is defined at compile time, symbols
- * declared with APU_MODULE_DECLARE_DATA are always exported.
- * @code
- * module APU_MODULE_DECLARE_DATA mod_tag
- * @endcode
- */
-#define APU_MODULE_DECLARE_DATA
-#else
-#define APU_MODULE_DECLARE_DATA __declspec(dllexport)
-#endif
-
-/*
- * we always have SDBM (it's in our codebase)
- */
-#define APU_HAVE_SDBM @apu_have_sdbm@
-#define APU_HAVE_GDBM @apu_have_gdbm@
-#define APU_HAVE_NDBM @apu_have_ndbm@
-#define APU_HAVE_DB @apu_have_db@
-
-#if APU_HAVE_DB
-#define APU_HAVE_DB_VERSION @apu_db_version@
-#endif
-
-#define APU_HAVE_PGSQL @apu_have_pgsql@
-#define APU_HAVE_MYSQL @apu_have_mysql@
-#define APU_HAVE_SQLITE3 @apu_have_sqlite3@
-#define APU_HAVE_SQLITE2 @apu_have_sqlite2@
-#define APU_HAVE_ORACLE @apu_have_oracle@
-#define APU_HAVE_FREETDS @apu_have_freetds@
-#define APU_HAVE_ODBC @apu_have_odbc@
-
-#define APU_HAVE_CRYPTO @apu_have_crypto@
-#define APU_HAVE_OPENSSL @apu_have_openssl@
-#define APU_HAVE_NSS @apu_have_nss@
-
-#define APU_HAVE_APR_ICONV @have_apr_iconv@
-#define APU_HAVE_ICONV @have_iconv@
-#define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
-
-#endif /* APU_H */
-/** @} */
diff --git a/include/apu.hnw b/include/apu.hnw
deleted file mode 100644
index 31c0dfb4..00000000
--- a/include/apu.hnw
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Note: This is a NetWare specific version of apu.h. It is renamed to
- * apu.h at the start of a NetWare build.
- */
-/* @file apu.h
- * @brief APR-Utility main file
- */
-
-#ifdef NETWARE
-#ifndef APU_H
-#define APU_H
-/**
- * @defgroup APR_Util APR Utility Functions
- * @{
- */
-
-
-/**
- * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
- * so that all public symbols are exported.
- *
- * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
- * to provide static linkage when the dynamic library may be unavailable.
- *
- * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
- * including the APR-UTIL public headers, to import and link the symbols from
- * the dynamic APR-UTIL library and assure appropriate indirection and calling
- * conventions at compile time.
- */
-
-/**
- * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
- * use the most appropriate calling convention. Public APR functions with
- * variable arguments must use APU_DECLARE_NONSTD().
- *
- * @fn APU_DECLARE(rettype) apr_func(args);
- */
-#define APU_DECLARE(type) type
-/**
- * The public APR-UTIL functions using variable arguments are declared with
- * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
- *
- * @fn APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
- */
-#define APU_DECLARE_NONSTD(type) type
-/**
- * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
- * This assures the appropriate indirection is invoked at compile time.
- *
- * @fn APU_DECLARE_DATA type apr_variable;
- * @note APU_DECLARE_DATA extern type apr_variable; syntax is required for
- * declarations within headers to properly import the variable.
- */
-#define APU_DECLARE_DATA
-
-/**
- * Declare a dso module's exported module structure as APU_MODULE_DECLARE_DATA.
- *
- * Unless APU_MODULE_DECLARE_STATIC is defined at compile time, symbols
- * declared with APU_MODULE_DECLARE_DATA are always exported.
- * @code
- * module APU_MODULE_DECLARE_DATA mod_tag
- * @endcode
- */
-#define APU_MODULE_DECLARE_DATA
-
-/*
- * we always have SDBM (it's in our codebase)
- */
-#define APU_HAVE_SDBM 1
-
-#ifndef APU_DSO_MODULE_BUILD
-#define APU_HAVE_GDBM 0
-#define APU_HAVE_NDBM 0
-#define APU_HAVE_DB 0
-
-#if APU_HAVE_DB
-#define APU_HAVE_DB_VERSION 0
-#endif
-#endif
-
-/*
- * we always enable dynamic driver loads within apr_dbd
- */
-#ifndef APU_DSO_MODULE_BUILD
-#define APU_HAVE_PGSQL 0
-#define APU_HAVE_MYSQL 0
-#define APU_HAVE_SQLITE3 0
-#define APU_HAVE_SQLITE2 0
-#define APU_HAVE_ORACLE 0
-#define APU_HAVE_FREETDS 0
-#define APU_HAVE_ODBC 0
-#endif
-
-#define APU_HAVE_CRYPTO 0
-
-#ifndef APU_DSO_MODULE_BUILD
-#define APU_HAVE_OPENSSL 0
-#define APU_HAVE_NSS 0
-#endif
-
-#define APU_HAVE_APR_ICONV 0
-#define APU_HAVE_ICONV 1
-#define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
-
-#endif /* APU_H */
-#endif /* NETWARE */
-
diff --git a/include/apu.hw b/include/apu.hw
deleted file mode 100644
index 5be70de6..00000000
--- a/include/apu.hw
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * apu.h is duplicated from apu.hw at build time -- do not edit apu.h
- */
-/* @file apu.h
- * @brief APR-Utility main file
- */
-/**
- * @defgroup APR_Util APR Utility Functions
- * @{
- */
-
-
-#ifndef APU_H
-#define APU_H
-
-/**
- * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
- * so that all public symbols are exported.
- *
- * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
- * to provide static linkage when the dynamic library may be unavailable.
- *
- * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
- * including the APR-UTIL public headers, to import and link the symbols from
- * the dynamic APR-UTIL library and assure appropriate indirection and calling
- * conventions at compile time.
- */
-
-#if defined(DOXYGEN) || !defined(WIN32)
-/**
- * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
- * use the most appropriate calling convention. Public APR functions with
- * variable arguments must use APU_DECLARE_NONSTD().
- *
- * @fn APU_DECLARE(rettype) apr_func(args);
- */
-#define APU_DECLARE(type) type
-/**
- * The public APR-UTIL functions using variable arguments are declared with
- * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
- *
- * @fn APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
- */
-#define APU_DECLARE_NONSTD(type) type
-/**
- * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
- * This assures the appropriate indirection is invoked at compile time.
- *
- * @fn APU_DECLARE_DATA type apr_variable;
- * @note extern APU_DECLARE_DATA type apr_variable; syntax is required for
- * declarations within headers to properly import the variable.
- */
-#define APU_DECLARE_DATA
-#elif defined(APU_DECLARE_STATIC)
-#define APU_DECLARE(type) type __stdcall
-#define APU_DECLARE_NONSTD(type) type __cdecl
-#define APU_DECLARE_DATA
-#elif defined(APU_DECLARE_EXPORT)
-#define APU_DECLARE(type) __declspec(dllexport) type __stdcall
-#define APU_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl
-#define APU_DECLARE_DATA __declspec(dllexport)
-#else
-#define APU_DECLARE(type) __declspec(dllimport) type __stdcall
-#define APU_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl
-#define APU_DECLARE_DATA __declspec(dllimport)
-#endif
-
-#if !defined(WIN32) || defined(APU_MODULE_DECLARE_STATIC)
-/**
- * Declare a dso module's exported module structure as APU_MODULE_DECLARE_DATA.
- *
- * Unless APU_MODULE_DECLARE_STATIC is defined at compile time, symbols
- * declared with APU_MODULE_DECLARE_DATA are always exported.
- * @code
- * module APU_MODULE_DECLARE_DATA mod_tag
- * @endcode
- */
-#define APU_MODULE_DECLARE_DATA
-#else
-#define APU_MODULE_DECLARE_DATA __declspec(dllexport)
-#endif
-
-/*
- * we always have SDBM (it's in our codebase)
- */
-#define APU_HAVE_SDBM 1
-
-#ifndef APU_DSO_MODULE_BUILD
-#define APU_HAVE_GDBM 0
-#define APU_HAVE_NDBM 0
-#define APU_HAVE_DB 0
-
-#if APU_HAVE_DB
-#define APU_HAVE_DB_VERSION 0
-#endif
-#endif
-
-/*
- * we always enable dynamic driver loads within apr_dbd
- * Win32 always has odbc (it's always installed)
- */
-#ifndef APU_DSO_MODULE_BUILD
-#define APU_HAVE_PGSQL 0
-#define APU_HAVE_MYSQL 0
-#define APU_HAVE_SQLITE3 0
-#define APU_HAVE_SQLITE2 0
-#define APU_HAVE_ORACLE 0
-#define APU_HAVE_FREETDS 0
-#define APU_HAVE_ODBC 1
-#endif
-
-#define APU_HAVE_CRYPTO 0
-
-#ifndef APU_DSO_MODULE_BUILD
-#define APU_HAVE_OPENSSL 0
-#define APU_HAVE_NSS 0
-#endif
-
-#define APU_HAVE_APR_ICONV 1
-#define APU_HAVE_ICONV 0
-#define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
-
-#endif /* APU_H */
-/** @} */
diff --git a/include/apu_errno.h b/include/apu_errno.h
deleted file mode 100644
index c0a8ec7d..00000000
--- a/include/apu_errno.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APU_ERRNO_H
-#define APU_ERRNO_H
-
-/**
- * @file apu_errno.h
- * @brief APR-Util Error Codes
- */
-
-#include "apr.h"
-#include "apr_errno.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup apu_errno Error Codes
- * @ingroup APR_Util
- * @{
- */
-
-/**
- * @defgroup APR_Util_Error APR_Util Error Values
- * <PRE>
- * <b>APU ERROR VALUES</b>
- * APR_ENOKEY The key provided was empty or NULL
- * APR_ENOIV The initialisation vector provided was NULL
- * APR_EKEYTYPE The key type was not recognised
- * APR_ENOSPACE The buffer supplied was not big enough
- * APR_ECRYPT An error occurred while encrypting or decrypting
- * APR_EPADDING Padding was not supported
- * APR_EKEYLENGTH The key length was incorrect
- * APR_ENOCIPHER The cipher provided was not recognised
- * APR_ENODIGEST The digest provided was not recognised
- * APR_ENOENGINE The engine provided was not recognised
- * APR_EINITENGINE The engine could not be initialised
- * APR_EREINIT Underlying crypto has already been initialised
- * </PRE>
- *
- * <PRE>
- * <b>APR STATUS VALUES</b>
- * APR_INCHILD Program is currently executing in the child
- * </PRE>
- * @{
- */
-/** @see APR_STATUS_IS_ENOKEY */
-#define APR_ENOKEY (APR_UTIL_START_STATUS + 1)
-/** @see APR_STATUS_IS_ENOIV */
-#define APR_ENOIV (APR_UTIL_START_STATUS + 2)
-/** @see APR_STATUS_IS_EKEYTYPE */
-#define APR_EKEYTYPE (APR_UTIL_START_STATUS + 3)
-/** @see APR_STATUS_IS_ENOSPACE */
-#define APR_ENOSPACE (APR_UTIL_START_STATUS + 4)
-/** @see APR_STATUS_IS_ECRYPT */
-#define APR_ECRYPT (APR_UTIL_START_STATUS + 5)
-/** @see APR_STATUS_IS_EPADDING */
-#define APR_EPADDING (APR_UTIL_START_STATUS + 6)
-/** @see APR_STATUS_IS_EKEYLENGTH */
-#define APR_EKEYLENGTH (APR_UTIL_START_STATUS + 7)
-/** @see APR_STATUS_IS_ENOCIPHER */
-#define APR_ENOCIPHER (APR_UTIL_START_STATUS + 8)
-/** @see APR_STATUS_IS_ENODIGEST */
-#define APR_ENODIGEST (APR_UTIL_START_STATUS + 9)
-/** @see APR_STATUS_IS_ENOENGINE */
-#define APR_ENOENGINE (APR_UTIL_START_STATUS + 10)
-/** @see APR_STATUS_IS_EINITENGINE */
-#define APR_EINITENGINE (APR_UTIL_START_STATUS + 11)
-/** @see APR_STATUS_IS_EREINIT */
-#define APR_EREINIT (APR_UTIL_START_STATUS + 12)
-/** @} */
-
-/**
- * @defgroup APU_STATUS_IS Status Value Tests
- * @warning For any particular error condition, more than one of these tests
- * may match. This is because platform-specific error codes may not
- * always match the semantics of the POSIX codes these tests (and the
- * corresponding APR error codes) are named after. A notable example
- * are the APR_STATUS_IS_ENOENT and APR_STATUS_IS_ENOTDIR tests on
- * Win32 platforms. The programmer should always be aware of this and
- * adjust the order of the tests accordingly.
- * @{
- */
-
-/** @} */
-
-/**
- * @addtogroup APR_Util_Error
- * @{
- */
-/**
- * The key was empty or not provided
- */
-#define APR_STATUS_IS_ENOKEY(s) ((s) == APR_ENOKEY)
-/**
- * The initialisation vector was not provided
- */
-#define APR_STATUS_IS_ENOIV(s) ((s) == APR_ENOIV)
-/**
- * The key type was not recognised
- */
-#define APR_STATUS_IS_EKEYTYPE(s) ((s) == APR_EKEYTYPE)
-/**
- * The buffer provided was not big enough
- */
-#define APR_STATUS_IS_ENOSPACE(s) ((s) == APR_ENOSPACE)
-/**
- * An error occurred while encrypting or decrypting
- */
-#define APR_STATUS_IS_ECRYPT(s) ((s) == APR_ECRYPT)
-/**
- * An error occurred while padding
- */
-#define APR_STATUS_IS_EPADDING(s) ((s) == APR_EPADDING)
-/**
- * An error occurred with the key length
- */
-#define APR_STATUS_IS_EKEYLENGTH(s) ((s) == APR_EKEYLENGTH)
-/**
- * The cipher provided was not recognised
- */
-#define APR_STATUS_IS_ENOCIPHER(s) ((s) == APR_ENOCIPHER)
-/**
- * The digest provided was not recognised
- */
-#define APR_STATUS_IS_ENODIGEST(s) ((s) == APR_ENODIGEST)
-/**
- * The engine provided was not recognised
- */
-#define APR_STATUS_IS_ENOENGINE(s) ((s) == APR_ENOENGINE)
-/**
- * The engine could not be initialised
- */
-#define APR_STATUS_IS_EINITENGINE(s) ((s) == APR_EINITENGINE)
-/**
- * Crypto has already been initialised
- */
-#define APR_STATUS_IS_EREINIT(s) ((s) == APR_EREINIT)
-/** @} */
-
-/**
- * This structure allows the underlying API error codes to be returned
- * along with plain text error messages that explain to us mere mortals
- * what really happened.
- */
-typedef struct apu_err_t {
- const char *reason;
- const char *msg;
- int rc;
-} apu_err_t;
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ! APU_ERRNO_H */
diff --git a/include/apu_version.h b/include/apu_version.h
deleted file mode 100644
index 9db3f81a..00000000
--- a/include/apu_version.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APU_VERSION_H
-#define APU_VERSION_H
-
-/**
- * @file apu_version.h
- * @brief APR-util Versioning Interface
- *
- * APR-util's Version
- *
- * There are several different mechanisms for accessing the version. There
- * is a string form, and a set of numbers; in addition, there are constants
- * which can be compiled into your application, and you can query the library
- * being used for its actual version.
- *
- * Note that it is possible for an application to detect that it has been
- * compiled against a different version of APU by use of the compile-time
- * constants and the use of the run-time query function.
- *
- * APU version numbering follows the guidelines specified in:
- *
- * http://apr.apache.org/versioning.html
- */
-
-
-/* The numeric compile-time version constants. These constants are the
- * authoritative version numbers for APU.
- */
-
-/** major version
- * Major API changes that could cause compatibility problems for older
- * programs such as structure size changes. No binary compatibility is
- * possible across a change in the major version.
- */
-#define APU_MAJOR_VERSION 2
-
-/** minor version
- * Minor API changes that do not cause binary compatibility problems.
- * Reset to 0 when upgrading APU_MAJOR_VERSION
- */
-#define APU_MINOR_VERSION 0
-
-/** patch level
- * The Patch Level never includes API changes, simply bug fixes.
- * Reset to 0 when upgrading APR_MINOR_VERSION
- */
-#define APU_PATCH_VERSION 0
-
-/**
- * The symbol APU_IS_DEV_VERSION is only defined for internal,
- * "development" copies of APU. It is undefined for released versions
- * of APU.
- */
-#define APU_IS_DEV_VERSION
-
-
-#if defined(APU_IS_DEV_VERSION) || defined(DOXYGEN)
-/** Internal: string form of the "is dev" flag */
-#define APU_IS_DEV_STRING "-dev"
-#else
-#define APU_IS_DEV_STRING ""
-#endif
-
-
-#ifndef APU_STRINGIFY
-/** Properly quote a value as a string in the C preprocessor */
-#define APU_STRINGIFY(n) APU_STRINGIFY_HELPER(n)
-/** Helper macro for APU_STRINGIFY */
-#define APU_STRINGIFY_HELPER(n) #n
-#endif
-
-/** The formatted string of APU's version */
-#define APU_VERSION_STRING \
- APU_STRINGIFY(APU_MAJOR_VERSION) "." \
- APU_STRINGIFY(APU_MINOR_VERSION) "." \
- APU_STRINGIFY(APU_PATCH_VERSION) \
- APU_IS_DEV_STRING
-
-/** An alternative formatted string of APR's version */
-/* macro for Win32 .rc files using numeric csv representation */
-#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION ##, \
- ##APU_MINOR_VERSION ##, \
- ##APU_PATCH_VERSION
-
-
-#ifndef APU_VERSION_ONLY
-
-/* The C language API to access the version at run time,
- * as opposed to compile time. APU_VERSION_ONLY may be defined
- * externally when preprocessing apr_version.h to obtain strictly
- * the C Preprocessor macro declarations.
- */
-
-#include "apr_version.h"
-
-#include "apu.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Return APR-util's version information information in a numeric form.
- *
- * @param pvsn Pointer to a version structure for returning the version
- * information.
- */
-APU_DECLARE(void) apu_version(apr_version_t *pvsn);
-
-/** Return APU's version information as a string. */
-APU_DECLARE(const char *) apu_version_string(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ndef APU_VERSION_ONLY */
-
-#endif /* ndef APU_VERSION_H */
diff --git a/include/apu_want.h.in b/include/apu_want.h.in
deleted file mode 100644
index a296e5c5..00000000
--- a/include/apu_want.h.in
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "apu.h" /* configuration data */
-
-/**
- * @file apu_want.h
- * @brief APR Standard Headers Support
- *
- * <PRE>
- * Features:
- *
- * APU_WANT_DB: <@apu_db_header@>
- *
- * Typical usage:
- *
- * #define APU_WANT_DB
- * #include "apu_want.h"
- *
- * The appropriate headers will be included.
- *
- * Note: it is safe to use this in a header (it won't interfere with other
- * headers' or source files' use of apu_want.h)
- * </PRE>
- */
-
-/* --------------------------------------------------------------------- */
-
-#ifdef APU_WANT_DB
-
-#if APU_HAVE_DB
-#include <@apu_db_header@>
-#endif
-
-#undef APU_WANT_DB
-#endif
-
-/* --------------------------------------------------------------------- */
diff --git a/include/apu_want.hnw b/include/apu_want.hnw
deleted file mode 100644
index afdc9f74..00000000
--- a/include/apu_want.hnw
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "apu.h" /* configuration data */
-
-/**
- * @file apu_want.h
- * @brief APR Standard Headers Support
- *
- * <PRE>
- * Features:
- *
- * APU_WANT_DB: <@apu_db_header>
- *
- * Typical usage:
- *
- * #define APU_WANT_DB
- * #include "apu_want.h"
- *
- * The appropriate headers will be included.
- *
- * Note: it is safe to use this in a header (it won't interfere with other
- * headers' or source files' use of apu_want.h)
- * </PRE>
- */
-
-/* --------------------------------------------------------------------- */
-
-#ifdef APU_WANT_DB
-
-#if APU_HAVE_DB
-/* win32 note.. you will need to change this for db1 */
-#include <db.h>
-#endif
-
-#undef APU_WANT_DB
-#endif
-
-/* --------------------------------------------------------------------- */
diff --git a/include/apu_want.hw b/include/apu_want.hw
deleted file mode 100644
index 8bb56ce7..00000000
--- a/include/apu_want.hw
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "apu.h" /* configuration data */
-
-/**
- * @file apu_want.h
- * @brief APR Standard Headers Support
- *
- * <PRE>
- * Features:
- *
- * APU_WANT_DB: <db.h>
- *
- * Typical usage:
- *
- * #define APU_WANT_DB
- * #include "apu_want.h"
- *
- * The appropriate headers will be included.
- *
- * Note: it is safe to use this in a header (it won't interfere with other
- * headers' or source files' use of apu_want.h)
- * </PRE>
- */
-
-/* --------------------------------------------------------------------- */
-
-#ifdef APU_WANT_DB
-
-#if APU_HAVE_DB
-/* win32 note.. you will need to change this for db1 */
-#include <db.h>
-#endif
-
-#undef APU_WANT_DB
-#endif
-
-/* --------------------------------------------------------------------- */
diff --git a/include/private/apr_crypto_internal.h b/include/private/apr_crypto_internal.h
deleted file mode 100644
index de109de5..00000000
--- a/include/private/apr_crypto_internal.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_CRYPTO_INTERNAL_H
-#define APR_CRYPTO_INTERNAL_H
-
-#include <stdarg.h>
-
-#include "apr_crypto.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if APU_HAVE_CRYPTO
-
-struct apr_crypto_driver_t {
-
- /** name */
- const char *name;
-
- /**
- * @brief: allow driver to perform once-only initialisation.
- * Called once only.
- * @param pool The pool to register the cleanup in.
- * @param params An array of optional init parameters.
- */
- apr_status_t (*init)(apr_pool_t *pool, const apr_array_header_t *params, int *rc);
-
- /**
- * @brief Create a context for supporting encryption. Keys, certificates,
- * algorithms and other parameters will be set per context. More than
- * one context can be created at one time. A cleanup will be automatically
- * registered with the given pool to guarantee a graceful shutdown.
- * @param driver - driver to use
- * @param pool - process pool
- * @param params - array of key parameters
- * @param f - context pointer will be written here
- * @return APR_ENOENGINE when the engine specified does not exist. APR_EINITENGINE
- * if the engine cannot be initialised.
- */
- apr_status_t (*factory)(apr_pool_t *pool, const apr_array_header_t *params,
- apr_crypto_t **f);
-
- /**
- * @brief Create a key from the given passphrase. By default, the PBKDF2
- * algorithm is used to generate the key from the passphrase. It is expected
- * that the same pass phrase will generate the same key, regardless of the
- * backend crypto platform used. The key is cleaned up when the context
- * is cleaned, and may be reused with multiple encryption or decryption
- * operations.
- * @note If *key is NULL, a apr_crypto_key_t will be created from a pool. If
- * *key is not NULL, *key must point at a previously created structure.
- * @param driver - driver to use
- * @param p The pool to use.
- * @param f The context to use.
- * @param pass The passphrase to use.
- * @param passLen The passphrase length in bytes
- * @param salt The salt to use.
- * @param saltLen The salt length in bytes
- * @param type 3DES_192, AES_128, AES_192, AES_256.
- * @param mode Electronic Code Book / Cipher Block Chaining.
- * @param doPad Pad if necessary.
- * @param key The key returned, see note.
- * @param ivSize The size of the initialisation vector will be returned, based
- * on whether an IV is relevant for this type of crypto.
- * @return Returns APR_ENOKEY if the pass phrase is missing or empty, or if a backend
- * error occurred while generating the key. APR_ENOCIPHER if the type or mode
- * is not supported by the particular backend. APR_EKEYTYPE if the key type is
- * not known. APR_EPADDING if padding was requested but is not supported.
- * APR_ENOTIMPL if not implemented.
- */
- apr_status_t (*passphrase)(apr_pool_t *p, const apr_crypto_t *f,
- const char *pass, apr_size_t passLen, const unsigned char * salt,
- apr_size_t saltLen, const apr_crypto_block_key_type_e type,
- const apr_crypto_block_key_mode_e mode, const int doPad,
- const int iterations, apr_crypto_key_t **key, apr_size_t *ivSize);
-
- /**
- * @brief Initialise a context for encrypting arbitrary data using the given key.
- * @note If *ctx is NULL, a apr_crypto_block_t will be created from a pool. If
- * *ctx is not NULL, *ctx must point at a previously created structure.
- * @param p The pool to use.
- * @param f The block factory to use.
- * @param key The key structure.
- * @param iv Optional initialisation vector. If the buffer pointed to is NULL,
- * an IV will be created at random, in space allocated from the pool.
- * If the buffer pointed to is not NULL, the IV in the buffer will be
- * used.
- * @param ctx The block context returned, see note.
- * @param ivSize The size of the initialisation vector will be returned, based
- * on whether an IV is relevant for this type of crypto.
- * @param blockSize The block size of the cipher.
- * @return Returns APR_ENOIV if an initialisation vector is required but not specified.
- * Returns APR_EINIT if the backend failed to initialise the context. Returns
- * APR_ENOTIMPL if not implemented.
- */
- apr_status_t (*block_encrypt_init)(apr_pool_t *p, const apr_crypto_t *f,
- const apr_crypto_key_t *key, const unsigned char **iv,
- apr_crypto_block_t **ctx, apr_size_t *blockSize);
-
- /**
- * @brief Encrypt data provided by in, write it to out.
- * @note The number of bytes written will be written to outlen. If
- * out is NULL, outlen will contain the maximum size of the
- * buffer needed to hold the data, including any data
- * generated by apr_crypto_block_encrypt_finish below. If *out points
- * to NULL, a buffer sufficiently large will be created from
- * the pool provided. If *out points to a not-NULL value, this
- * value will be used as a buffer instead.
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written,
- * see note.
- * @param outlen Length of the output will be written here.
- * @param in Address of the buffer to read.
- * @param inlen Length of the buffer to read.
- * @return APR_ECRYPT if an error occurred. Returns APR_ENOTIMPL if
- * not implemented.
- */
- apr_status_t (*block_encrypt)(apr_crypto_block_t *ctx, unsigned char **out,
- apr_size_t *outlen, const unsigned char *in, apr_size_t inlen);
-
- /**
- * @brief Encrypt final data block, write it to out.
- * @note If necessary the final block will be written out after being
- * padded. Typically the final block will be written to the
- * same buffer used by apr_crypto_block_encrypt, offset by the
- * number of bytes returned as actually written by the
- * apr_crypto_block_encrypt() call. After this call, the context
- * is cleaned and can be reused by apr_crypto_block_encrypt_init().
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written. This
- * buffer must already exist, and is usually the same
- * buffer used by apr_evp_crypt(). See note.
- * @param outlen Length of the output will be written here.
- * @return APR_ECRYPT if an error occurred.
- * @return APR_EPADDING if padding was enabled and the block was incorrectly
- * formatted.
- * @return APR_ENOTIMPL if not implemented.
- */
- apr_status_t (*block_encrypt_finish)(apr_crypto_block_t *ctx,
- unsigned char *out, apr_size_t *outlen);
-
- /**
- * @brief Initialise a context for decrypting arbitrary data using the given key.
- * @note If *ctx is NULL, a apr_crypto_block_t will be created from a pool. If
- * *ctx is not NULL, *ctx must point at a previously created structure.
- * @param p The pool to use.
- * @param f The block factory to use.
- * @param key The key structure.
- * @param iv Optional initialisation vector. If the buffer pointed to is NULL,
- * an IV will be created at random, in space allocated from the pool.
- * If the buffer is not NULL, the IV in the buffer will be used.
- * @param ctx The block context returned, see note.
- * @param blockSize The block size of the cipher.
- * @return Returns APR_ENOIV if an initialisation vector is required but not specified.
- * Returns APR_EINIT if the backend failed to initialise the context. Returns
- * APR_ENOTIMPL if not implemented.
- */
- apr_status_t (*block_decrypt_init)(apr_pool_t *p, const apr_crypto_t *f,
- const apr_crypto_key_t *key, const unsigned char *iv,
- apr_crypto_block_t **ctx, apr_size_t *blockSize);
-
- /**
- * @brief Decrypt data provided by in, write it to out.
- * @note The number of bytes written will be written to outlen. If
- * out is NULL, outlen will contain the maximum size of the
- * buffer needed to hold the data, including any data
- * generated by apr_crypto_block_decrypt_finish below. If *out points
- * to NULL, a buffer sufficiently large will be created from
- * the pool provided. If *out points to a not-NULL value, this
- * value will be used as a buffer instead.
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written,
- * see note.
- * @param outlen Length of the output will be written here.
- * @param in Address of the buffer to read.
- * @param inlen Length of the buffer to read.
- * @return APR_ECRYPT if an error occurred. Returns APR_ENOTIMPL if
- * not implemented.
- */
- apr_status_t (*block_decrypt)(apr_crypto_block_t *ctx, unsigned char **out,
- apr_size_t *outlen, const unsigned char *in, apr_size_t inlen);
-
- /**
- * @brief Decrypt final data block, write it to out.
- * @note If necessary the final block will be written out after being
- * padded. Typically the final block will be written to the
- * same buffer used by apr_crypto_block_decrypt, offset by the
- * number of bytes returned as actually written by the
- * apr_crypto_block_decrypt() call. After this call, the context
- * is cleaned and can be reused by apr_crypto_block_decrypt_init().
- * @param ctx The block context to use.
- * @param out Address of a buffer to which data will be written. This
- * buffer must already exist, and is usually the same
- * buffer used by apr_evp_crypt(). See note.
- * @param outlen Length of the output will be written here.
- * @return APR_ECRYPT if an error occurred.
- * @return APR_EPADDING if padding was enabled and the block was incorrectly
- * formatted.
- * @return APR_ENOTIMPL if not implemented.
- */
- apr_status_t (*block_decrypt_finish)(apr_crypto_block_t *ctx,
- unsigned char *out, apr_size_t *outlen);
-
- /**
- * @brief Clean encryption / decryption context.
- * @note After cleanup, a context is free to be reused if necessary.
- * @param driver - driver to use
- * @param ctx The block context to use.
- * @return Returns APR_ENOTIMPL if not supported.
- */
- apr_status_t (*block_cleanup)(apr_crypto_block_t *ctx);
-
- /**
- * @brief Clean encryption / decryption factory.
- * @note After cleanup, a factory is free to be reused if necessary.
- * @param driver - driver to use
- * @param f The factory to use.
- * @return Returns APR_ENOTIMPL if not supported.
- */
- apr_status_t (*cleanup)(apr_crypto_t *f);
-
- /**
- * @brief Clean encryption / decryption factory.
- * @note After cleanup, a factory is free to be reused if necessary.
- * @param pool The pool to use.
- * @return Returns APR_ENOTIMPL if not supported.
- */
- apr_status_t (*shutdown)(apr_pool_t *p);
-
-};
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/private/apr_dbd_internal.h b/include/private/apr_dbd_internal.h
deleted file mode 100644
index 671ffb21..00000000
--- a/include/private/apr_dbd_internal.h
+++ /dev/null
@@ -1,365 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* Overview of what this is and does:
- * http://www.apache.org/~niq/dbd.html
- */
-
-#ifndef APR_DBD_INTERNAL_H
-#define APR_DBD_INTERNAL_H
-
-#include <stdarg.h>
-
-#include "apr_dbd.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define TXN_IGNORE_ERRORS(t) \
- ((t) && ((t)->mode & APR_DBD_TRANSACTION_IGNORE_ERRORS))
-#define TXN_NOTICE_ERRORS(t) \
- ((t) && !((t)->mode & APR_DBD_TRANSACTION_IGNORE_ERRORS))
-
-#define TXN_DO_COMMIT(t) (!((t)->mode & APR_DBD_TRANSACTION_ROLLBACK))
-#define TXN_DO_ROLLBACK(t) ((t)->mode & APR_DBD_TRANSACTION_ROLLBACK)
-
-#define TXN_MODE_BITS \
- (APR_DBD_TRANSACTION_ROLLBACK|APR_DBD_TRANSACTION_IGNORE_ERRORS)
-
-struct apr_dbd_driver_t {
- /** name */
- const char *name;
-
- /** init: allow driver to perform once-only initialisation.
- * Called once only. May be NULL
- */
- void (*init)(apr_pool_t *pool);
-
- /** native_handle: return the native database handle of the underlying db
- *
- * @param handle - apr_dbd handle
- * @return - native handle
- */
- void *(*native_handle)(apr_dbd_t *handle);
-
- /** open: obtain a database connection from the server rec.
- * Must be explicitly closed when you're finished with it.
- * WARNING: only use this when you need a connection with
- * a lifetime other than a request
- *
- * @param pool - a pool to use for error messages (if any).
- * @param params - connection parameters.
- * @param error - descriptive error.
- * @return database handle, or NULL on error.
- */
- apr_dbd_t *(*open)(apr_pool_t *pool, const char *params,
- const char **error);
-
- /** check_conn: check status of a database connection
- *
- * @param pool - a pool to use for error messages (if any).
- * @param handle - the connection to check
- * @return APR_SUCCESS or error
- */
- apr_status_t (*check_conn)(apr_pool_t *pool, apr_dbd_t *handle);
-
- /** close: close/release a connection obtained from open()
- *
- * @param handle - the connection to release
- * @return APR_SUCCESS or error
- */
- apr_status_t (*close)(apr_dbd_t *handle);
-
- /** set_dbname: select database name. May be a no-op if not supported.
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param name - the database to select
- * @return 0 for success or error code
- */
- int (*set_dbname)(apr_pool_t* pool, apr_dbd_t *handle, const char *name);
-
- /** transaction: start a transaction. May be a no-op.
- *
- * @param pool - a pool to use for error messages (if any).
- * @param handle - the connection
- * @param trans - ptr to a transaction. May be null on entry
- * @return 0 for success or error code
- */
- int (*start_transaction)(apr_pool_t *pool, apr_dbd_t *handle,
- apr_dbd_transaction_t **trans);
-
- /** end_transaction: end a transaction
- * (commit on success, rollback on error).
- * May be a no-op.
- *
- * @param trans - the transaction.
- * @return 0 for success or error code
- */
- int (*end_transaction)(apr_dbd_transaction_t *trans);
-
- /** query: execute an SQL query that doesn't return a result set
- *
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the SQL statement to execute
- * @return 0 for success or error code
- */
- int (*query)(apr_dbd_t *handle, int *nrows, const char *statement);
-
- /** select: execute an SQL query that returns a result set
- *
- * @param pool - pool to allocate the result set
- * @param handle - the connection
- * @param res - pointer to result set pointer. May point to NULL on entry
- * @param statement - the SQL statement to execute
- * @param random - 1 to support random access to results (seek any row);
- * 0 to support only looping through results in order
- * (async access - faster)
- * @return 0 for success or error code
- */
- int (*select)(apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res,
- const char *statement, int random);
-
- /** num_cols: get the number of columns in a results set
- *
- * @param res - result set.
- * @return number of columns
- */
- int (*num_cols)(apr_dbd_results_t *res);
-
- /** num_tuples: get the number of rows in a results set
- * of a synchronous select
- *
- * @param res - result set.
- * @return number of rows, or -1 if the results are asynchronous
- */
- int (*num_tuples)(apr_dbd_results_t *res);
-
- /** get_row: get a row from a result set
- *
- * @param pool - pool to allocate the row
- * @param res - result set pointer
- * @param row - pointer to row pointer. May point to NULL on entry
- * @param rownum - row number, or -1 for "next row". Ignored if random
- * access is not supported.
- * @return 0 for success, -1 for rownum out of range or data finished
- */
- int (*get_row)(apr_pool_t *pool, apr_dbd_results_t *res,
- apr_dbd_row_t **row, int rownum);
-
- /** get_entry: get an entry from a row
- *
- * @param row - row pointer
- * @param col - entry number
- * @param val - entry to fill
- * @return 0 for success, -1 for no data, +1 for general error
- */
- const char* (*get_entry)(const apr_dbd_row_t *row, int col);
-
- /** error: get current error message (if any)
- *
- * @param handle - the connection
- * @param errnum - error code from operation that returned an error
- * @return the database current error message, or message for errnum
- * (implementation-dependent whether errnum is ignored)
- */
- const char *(*error)(apr_dbd_t *handle, int errnum);
-
- /** escape: escape a string so it is safe for use in query/select
- *
- * @param pool - pool to alloc the result from
- * @param string - the string to escape
- * @param handle - the connection
- * @return the escaped, safe string
- */
- const char *(*escape)(apr_pool_t *pool, const char *string,
- apr_dbd_t *handle);
-
- /** prepare: prepare a statement
- *
- * @param pool - pool to alloc the result from
- * @param handle - the connection
- * @param query - the SQL query
- * @param label - A label for the prepared statement.
- * use NULL for temporary prepared statements
- * (eg within a Request in httpd)
- * @param nargs - number of parameters in the query
- * @param nvals - number of values passed in p[b]query/select
- * @param types - pointer to an array with types of parameters
- * @param statement - statement to prepare. May point to null on entry.
- * @return 0 for success or error code
- */
- int (*prepare)(apr_pool_t *pool, apr_dbd_t *handle, const char *query,
- const char *label, int nargs, int nvals,
- apr_dbd_type_e *types, apr_dbd_prepared_t **statement);
-
- /** pvquery: query using a prepared statement + args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param args - args to prepared statement
- * @return 0 for success or error code
- */
- int (*pvquery)(apr_pool_t *pool, apr_dbd_t *handle, int *nrows,
- apr_dbd_prepared_t *statement, va_list args);
-
- /** pvselect: select using a prepared statement + args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param args - args to prepared statement
- * @return 0 for success or error code
- */
- int (*pvselect)(apr_pool_t *pool, apr_dbd_t *handle,
- apr_dbd_results_t **res,
- apr_dbd_prepared_t *statement, int random, va_list args);
-
- /** pquery: query using a prepared statement + args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param args - args to prepared statement
- * @return 0 for success or error code
- */
- int (*pquery)(apr_pool_t *pool, apr_dbd_t *handle, int *nrows,
- apr_dbd_prepared_t *statement, const char **args);
-
- /** pselect: select using a prepared statement + args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param args - args to prepared statement
- * @return 0 for success or error code
- */
- int (*pselect)(apr_pool_t *pool, apr_dbd_t *handle,
- apr_dbd_results_t **res, apr_dbd_prepared_t *statement,
- int random, const char **args);
-
-
- /** get_name: get a column title from a result set
- *
- * @param res - result set pointer
- * @param col - entry number
- * @return param name, or NULL if col is out of bounds.
- */
- const char* (*get_name)(const apr_dbd_results_t *res, int col);
-
- /** transaction_mode_get: get the mode of transaction
- *
- * @param trans - the transaction.
- * @return mode of transaction
- */
- int (*transaction_mode_get)(apr_dbd_transaction_t *trans);
-
- /** transaction_mode_set: get the mode of transaction
- *
- * @param trans - the transaction.
- * @param mode - new mode of the transaction
- * @return the mode of transaction in force after the call
- */
- int (*transaction_mode_set)(apr_dbd_transaction_t *trans, int mode);
-
- /** format of prepared statement parameters */
- const char *pformat;
-
- /** pvbquery: query using a prepared statement + binary args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param args - binary args to prepared statement
- * @return 0 for success or error code
- */
- int (*pvbquery)(apr_pool_t *pool, apr_dbd_t *handle, int *nrows,
- apr_dbd_prepared_t *statement, va_list args);
-
- /** pvbselect: select using a prepared statement + binary args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param args - binary args to prepared statement
- * @return 0 for success or error code
- */
- int (*pvbselect)(apr_pool_t *pool, apr_dbd_t *handle,
- apr_dbd_results_t **res,
- apr_dbd_prepared_t *statement, int random, va_list args);
-
- /** pbquery: query using a prepared statement + binary args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param nrows - number of rows affected.
- * @param statement - the prepared statement to execute
- * @param args - binary args to prepared statement
- * @return 0 for success or error code
- */
- int (*pbquery)(apr_pool_t *pool, apr_dbd_t *handle, int *nrows,
- apr_dbd_prepared_t *statement,const void **args);
-
- /** pbselect: select using a prepared statement + binary args
- *
- * @param pool - working pool
- * @param handle - the connection
- * @param res - pointer to query results. May point to NULL on entry
- * @param statement - the prepared statement to execute
- * @param random - Whether to support random-access to results
- * @param args - binary args to prepared statement
- * @return 0 for success or error code
- */
- int (*pbselect)(apr_pool_t *pool, apr_dbd_t *handle,
- apr_dbd_results_t **res, apr_dbd_prepared_t *statement,
- int random, const void **args);
-
- /** datum_get: get a binary entry from a row
- *
- * @param row - row pointer
- * @param col - entry number
- * @param type - type of data to get
- * @param data - pointer to data, allocated by the caller
- * @return APR_SUCCESS, an error code on error or if col is out of bounds
- */
- apr_status_t (*datum_get)(const apr_dbd_row_t *row, int col,
- apr_dbd_type_e type, void *data);
-};
-
-/* Export mutex lock/unlock for drivers that need it
- * deprecated; create a per-dbd mutex within the (*init) function
- * to avoid blocking other providers running on other threads
- */
-APU_DECLARE(apr_status_t) apr_dbd_mutex_lock(void);
-APU_DECLARE(apr_status_t) apr_dbd_mutex_unlock(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/private/apr_dbd_odbc_v2.h b/include/private/apr_dbd_odbc_v2.h
deleted file mode 100644
index dc7bc9c9..00000000
--- a/include/private/apr_dbd_odbc_v2.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/* ONLY USED FOR ODBC Version 2 -DODBCV2
-*
-* Re-define everything to work (more-or-less) in an ODBC V2 environment
-* Random access to retrieved rows is not supported - i.e. calls to apr_dbd_select() cannot
-* have a 'random' argument of 1. apr_dbd_get_row() must always pass rownum as 0 (get next row)
-*
-*/
-
-#define SQLHANDLE SQLHENV // Presumes that ENV, DBC, and STMT handles are all the same datatype
-#define SQL_NULL_HANDLE 0
-#define SQL_HANDLE_STMT 1
-#define SQL_HANDLE_DBC 2
-#define SQL_HANDLE_ENV 3
-#define SQL_NO_DATA SQL_NO_DATA_FOUND
-
-#ifndef SQL_SUCCEEDED
-#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
-#endif
-
-#undef SQLSetEnvAttr
-#define SQLSetEnvAttr(henv, Attribute, Value, StringLength) (0)
-
-#undef SQLAllocHandle
-#define SQLAllocHandle(type, parent, hndl) \
-( (type == SQL_HANDLE_STMT) ? SQLAllocStmt(parent, hndl) \
- : (type == SQL_HANDLE_ENV) ? SQLAllocEnv(hndl) \
- : SQLAllocConnect(parent, hndl) \
-)
-
-#undef SQLFreeHandle
-#define SQLFreeHandle(type, hndl) \
-( (type == SQL_HANDLE_STMT) ? SQLFreeStmt(hndl, SQL_DROP) \
- : (type == SQL_HANDLE_ENV) ? SQLFreeEnv(hndl) \
- : SQLFreeConnect(hndl) \
-)
-
-#undef SQLGetDiagRec
-#define SQLGetDiagRec(type, h, i, state, native, buffer, bufsize, reslen) \
- SQLError( (type == SQL_HANDLE_ENV) ? h : NULL, \
- (type == SQL_HANDLE_DBC) ? h : NULL, \
- (type == SQL_HANDLE_STMT) ? h : NULL, \
- state, native, buffer, bufsize, reslen)
-
-#undef SQLCloseCursor
-#define SQLCloseCursor(stmt) SQLFreeStmt(stmt, SQL_CLOSE)
-
-#undef SQLGetConnectAttr
-#define SQLGetConnectAttr(hdbc, fOption, ValuePtr, BufferLength, NULL) \
- SQLGetConnectOption(hdbc, fOption, ValuePtr)
-
-#undef SQLSetConnectAttr
-#define SQLSetConnectAttr(hdbc, fOption, ValuePtr, BufferLength) \
- SQLSetConnectOption(hdbc, fOption, (SQLUINTEGER) ValuePtr)
-
-#undef SQLSetStmtAttr
-#define SQLSetStmtAttr(hstmt, fOption, ValuePtr, BufferLength) (0); return APR_ENOTIMPL;
-
-#undef SQLEndTran
-#define SQLEndTran(hType, hdbc,type) SQLTransact(henv, hdbc, type)
-
-#undef SQLFetchScroll
-#define SQLFetchScroll(stmt, orient, rownum) (0); return APR_ENOTIMPL;
-
-#define SQL_DESC_TYPE SQL_COLUMN_TYPE
-#define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE
-#define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE
-#define SQL_DESC_OCTET_LENGTH SQL_COLUMN_LENGTH
-#define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED
-
-#undef SQLColAttribute
-#define SQLColAttribute(s, c, f, a, l, m, n) SQLColAttributes(s, c, f, a, l, m, n)
-
-#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
-#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
-#define SQL_ATTR_CONNECTION_TIMEOUT 113
-#define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER
-#define SQL_ATTR_DISCONNECT_BEHAVIOR 114
-#define SQL_ATTR_ENLIST_IN_DTC 1207
-#define SQL_ATTR_ENLIST_IN_XA 1208
-
-#define SQL_ATTR_CONNECTION_DEAD 1209
-#define SQL_CD_TRUE 1L /* Connection is closed/dead */
-#define SQL_CD_FALSE 0L /* Connection is open/available */
-
-#define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT
-#define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS
-#define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE
-#define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE
-#define SQL_ATTR_TRACE SQL_OPT_TRACE
-#define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE
-#define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL
-#define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION
-#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
-
-#define SQL_ATTR_CURSOR_SCROLLABLE -1
-
-#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET) /* SIGNED BIGINT */
-#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED BIGINT */
-
-#define SQL_FALSE 0
-#define SQL_TRUE 1
-
diff --git a/include/private/apr_dbm_private.h b/include/private/apr_dbm_private.h
deleted file mode 100644
index 020d3a6b..00000000
--- a/include/private/apr_dbm_private.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APR_DBM_PRIVATE_H
-#define APR_DBM_PRIVATE_H
-
-#include "apr.h"
-#include "apr_errno.h"
-#include "apr_pools.h"
-#include "apr_dbm.h"
-#include "apr_file_io.h"
-
-#include "apu.h"
-
-/* ### for now, include the DBM selection; this will go away once we start
- ### building and linking all of the DBMs at once. */
-#include "apu_select_dbm.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @internal */
-
-/**
- * Most DBM libraries take a POSIX mode for creating files. Don't trust
- * the mode_t type, some platforms may not support it, int is safe.
- */
-APU_DECLARE(int) apr_posix_perms2mode(apr_fileperms_t perm);
-
-/**
- * Structure to describe the operations of the DBM
- */
-typedef struct {
- /** The name of the DBM Type */
- const char *name;
-
- /** Open the DBM */
- apr_status_t (*open)(apr_dbm_t **pdb, const char *pathname,
- apr_int32_t mode, apr_fileperms_t perm,
- apr_pool_t *pool);
-
- /** Close the DBM */
- void (*close)(apr_dbm_t *dbm);
-
- /** Fetch a dbm record value by key */
- apr_status_t (*fetch)(apr_dbm_t *dbm, apr_datum_t key,
- apr_datum_t * pvalue);
-
- /** Store a dbm record value by key */
- apr_status_t (*store)(apr_dbm_t *dbm, apr_datum_t key, apr_datum_t value);
-
- /** Delete a dbm record value by key */
- apr_status_t (*del)(apr_dbm_t *dbm, apr_datum_t key);
-
- /** Search for a key within the dbm */
- int (*exists)(apr_dbm_t *dbm, apr_datum_t key);
-
- /** Retrieve the first record key from a dbm */
- apr_status_t (*firstkey)(apr_dbm_t *dbm, apr_datum_t * pkey);
-
- /** Retrieve the next record key from a dbm */
- apr_status_t (*nextkey)(apr_dbm_t *dbm, apr_datum_t * pkey);
-
- /** Proactively toss any memory associated with the apr_datum_t. */
- void (*freedatum)(apr_dbm_t *dbm, apr_datum_t data);
-
- /** Get the names that the DBM will use for a given pathname. */
- void (*getusednames)(apr_pool_t *pool,
- const char *pathname,
- const char **used1,
- const char **used2);
-
-} apr_dbm_type_t;
-
-
-/**
- * The actual DBM
- */
-struct apr_dbm_t
-{
- /** Associated pool */
- apr_pool_t *pool;
-
- /** pointer to DB Implementation Specific data */
- void *file;
-
- /** Current integer error code */
- int errcode;
- /** Current string error code */
- const char *errmsg;
-
- /** the type of DBM */
- const apr_dbm_type_t *type;
-};
-
-
-/* Declare all of the DBM provider tables */
-APU_MODULE_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_sdbm;
-APU_MODULE_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_gdbm;
-APU_MODULE_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_ndbm;
-APU_MODULE_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_db;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APR_DBM_PRIVATE_H */
diff --git a/include/private/apu_config.hnw b/include/private/apu_config.hnw
deleted file mode 100644
index 9c6c73e4..00000000
--- a/include/private/apu_config.hnw
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Note: This is a NetWare specific version of apu_config.hnw. It is copied
- * as apu_config.h at the start of a NetWare build.
- */
-
-#ifdef NETWARE
-
-#ifndef APU_CONFIG_H
-#define APU_CONFIG_H
-
-/* Always compile Netware with DSO support for .nlm builds */
-#define APU_DSO_BUILD 0
-
-/*
- * NetWare does not have GDBM, and we always use the bundled (new) Expat
- */
-
-/* Define if you have the gdbm library (-lgdbm). */
-/* #undef HAVE_LIBGDBM */
-
-/* define if Expat 1.0 or 1.1 was found */
-/* #undef APR_HAVE_OLD_EXPAT */
-
-/* NetWare uses its own ICONV implementation. */
-#define HAVE_ICONV_H 1
-
-/*
- * check for newer NDKs which use now correctly 'const char*' with iconv.
- */
-#include <ndkvers.h>
-#if (CURRENT_NDK_THRESHOLD >= 705110000)
-#define APU_ICONV_INBUF_CONST
-#endif
-
-#endif /* APU_CONFIG_H */
-#endif /* NETWARE */
-
diff --git a/include/private/apu_config.hw b/include/private/apu_config.hw
deleted file mode 100644
index 015dd526..00000000
--- a/include/private/apu_config.hw
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Note: This is a Windows specific version of apu_config.hw. It is copied
- * as apu_config.h at the start of a Windows build.
- */
-
-#ifdef WIN32
-
-#ifndef APU_CONFIG_H
-#define APU_CONFIG_H
-
-/* Compile win32 with DSO support for .dll builds */
-#ifdef APU_DECLARE_STATIC
-#define APU_DSO_BUILD 0
-#else
-#define APU_DSO_BUILD 1
-#endif
-
-/*
- * Windows does not have GDBM, and we always use the bundled (new) Expat
- */
-
-/* Define if you have the gdbm library (-lgdbm). */
-/* #undef HAVE_LIBGDBM */
-
-/* define if Expat 1.0 or 1.1 was found */
-/* #undef APR_HAVE_OLD_EXPAT */
-
-
-#endif /* APU_CONFIG_H */
-#endif /* WIN32 */
diff --git a/include/private/apu_internal.h b/include/private/apu_internal.h
deleted file mode 100644
index c95c9d50..00000000
--- a/include/private/apu_internal.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "apr.h"
-#include "apr_dso.h"
-#include "apu.h"
-
-#ifndef APU_INTERNAL_H
-#define APU_INTERNAL_H
-
-#if APU_DSO_BUILD
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For modular dso loading, an internal interlock to allow us to
- * continue to initialize modules by multiple threads, the caller
- * of apu_dso_load must lock first, and not unlock until any init
- * finalization is complete.
- */
-apr_status_t apu_dso_init(apr_pool_t *pool);
-
-apr_status_t apu_dso_mutex_lock(void);
-apr_status_t apu_dso_mutex_unlock(void);
-
-apr_status_t apu_dso_load(apr_dso_handle_t **dso, apr_dso_handle_sym_t *dsoptr, const char *module,
- const char *modsym, apr_pool_t *pool);
-
-#if APR_HAS_LDAP
-
-/* For LDAP internal builds, wrap our LDAP namespace */
-
-struct apr__ldap_dso_fntable {
- int (*info)(apr_pool_t *pool, apr_ldap_err_t **result_err);
- int (*init)(apr_pool_t *pool, LDAP **ldap, const char *hostname,
- int portno, int secure, apr_ldap_err_t **result_err);
- int (*ssl_init)(apr_pool_t *pool, const char *cert_auth_file,
- int cert_file_type, apr_ldap_err_t **result_err);
- int (*ssl_deinit)(void);
- int (*get_option)(apr_pool_t *pool, LDAP *ldap, int option,
- void *outvalue, apr_ldap_err_t **result_err);
- int (*set_option)(apr_pool_t *pool, LDAP *ldap, int option,
- const void *invalue, apr_ldap_err_t **result_err);
- apr_status_t (*rebind_init)(apr_pool_t *pool);
- apr_status_t (*rebind_add)(apr_pool_t *pool, LDAP *ld,
- const char *bindDN, const char *bindPW);
- apr_status_t (*rebind_remove)(LDAP *ld);
-};
-
-#endif /* APR_HAS_LDAP */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* APU_DSO_BUILD */
-
-#endif /* APU_INTERNAL_H */
-
diff --git a/include/private/apu_select_dbm.h.in b/include/private/apu_select_dbm.h.in
deleted file mode 100644
index b69aec03..00000000
--- a/include/private/apu_select_dbm.h.in
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APU_SELECT_DBM_H
-#define APU_SELECT_DBM_H
-
-/*
-** The following macros control what features APRUTIL will use
-*/
-#define APU_USE_SDBM @apu_use_sdbm@
-#define APU_USE_NDBM @apu_use_ndbm@
-#define APU_USE_GDBM @apu_use_gdbm@
-#define APU_USE_DB @apu_use_db@
-
-#endif /* !APU_SELECT_DBM_H */
diff --git a/include/private/apu_select_dbm.hw b/include/private/apu_select_dbm.hw
deleted file mode 100644
index 97c7b6c2..00000000
--- a/include/private/apu_select_dbm.hw
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef APU_SELECT_DBM_H
-#define APU_SELECT_DBM_H
-
-/*
-** The following macros control what features APRUTIL will use
-*/
-#define APU_USE_SDBM 1
-#define APU_USE_GDBM 0
-#define APU_USE_NDBM 0
-#define APU_USE_DB 0
-
-#endif /* !APU_SELECT_DBM_H */