1251875Speter/* Licensed to the Apache Software Foundation (ASF) under one or more
2251875Speter * contributor license agreements.  See the NOTICE file distributed with
3251875Speter * this work for additional information regarding copyright ownership.
4251875Speter * The ASF licenses this file to You under the Apache License, Version 2.0
5251875Speter * (the "License"); you may not use this file except in compliance with
6251875Speter * the License.  You may obtain a copy of the License at
7251875Speter *
8251875Speter *     http://www.apache.org/licenses/LICENSE-2.0
9251875Speter *
10251875Speter * Unless required by applicable law or agreed to in writing, software
11251875Speter * distributed under the License is distributed on an "AS IS" BASIS,
12251875Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13251875Speter * See the License for the specific language governing permissions and
14251875Speter * limitations under the License.
15251875Speter */
16251875Speter
17251875Speter#include "apr.h"        /* configuration data */
18251875Speter/**
19251875Speter * @file apr_want.h
20251875Speter * @brief APR Standard Headers Support
21251875Speter *
22251875Speter * <PRE>
23251875Speter * Features:
24251875Speter *
25251875Speter *   APR_WANT_STRFUNC:  strcmp, strcat, strcpy, etc
26251875Speter *   APR_WANT_MEMFUNC:  memcmp, memcpy, etc
27251875Speter *   APR_WANT_STDIO:    <stdio.h> and related bits
28251875Speter *   APR_WANT_IOVEC:    struct iovec
29251875Speter *   APR_WANT_BYTEFUNC: htons, htonl, ntohl, ntohs
30251875Speter *
31251875Speter * Typical usage:
32251875Speter *
33251875Speter *   \#define APR_WANT_STRFUNC
34251875Speter *   \#define APR_WANT_MEMFUNC
35251875Speter *   \#include "apr_want.h"
36251875Speter *
37251875Speter * The appropriate headers will be included.
38251875Speter *
39251875Speter * Note: it is safe to use this in a header (it won't interfere with other
40251875Speter *       headers' or source files' use of apr_want.h)
41251875Speter * </PRE>
42251875Speter */
43251875Speter
44251875Speter/* --------------------------------------------------------------------- */
45251875Speter
46251875Speter#ifdef APR_WANT_STRFUNC
47251875Speter
48251875Speter#if APR_HAVE_STRING_H
49251875Speter#include <string.h>
50251875Speter#endif
51251875Speter#if APR_HAVE_STRINGS_H
52251875Speter#include <strings.h>
53251875Speter#endif
54251875Speter
55251875Speter#undef APR_WANT_STRFUNC
56251875Speter#endif
57251875Speter
58251875Speter/* --------------------------------------------------------------------- */
59251875Speter
60251875Speter#ifdef APR_WANT_MEMFUNC
61251875Speter
62251875Speter#if APR_HAVE_STRING_H
63251875Speter#include <string.h>
64251875Speter#endif
65251875Speter
66251875Speter#undef APR_WANT_MEMFUNC
67251875Speter#endif
68251875Speter
69251875Speter/* --------------------------------------------------------------------- */
70251875Speter
71251875Speter#ifdef APR_WANT_STDIO
72251875Speter
73251875Speter#if APR_HAVE_STDIO_H
74251875Speter#include <stdio.h>
75251875Speter#endif
76251875Speter
77251875Speter#undef APR_WANT_STDIO
78251875Speter#endif
79251875Speter
80251875Speter/* --------------------------------------------------------------------- */
81251875Speter
82251875Speter#ifdef APR_WANT_IOVEC
83251875Speter
84251875Speter#if APR_HAVE_IOVEC
85251875Speter
86251875Speter#if APR_HAVE_SYS_UIO_H
87251875Speter#include <sys/uio.h>
88251875Speter#endif
89251875Speter
90251875Speter#else
91251875Speter
92251875Speter#ifndef APR_IOVEC_DEFINED
93251875Speter#define APR_IOVEC_DEFINED
94251875Speterstruct iovec
95251875Speter{
96251875Speter    void *iov_base;
97251875Speter    size_t iov_len;
98251875Speter};
99251875Speter#endif /* !APR_IOVEC_DEFINED */
100251875Speter
101251875Speter#endif /* APR_HAVE_IOVEC */
102251875Speter
103251875Speter#undef APR_WANT_IOVEC
104251875Speter#endif
105251875Speter
106251875Speter/* --------------------------------------------------------------------- */
107251875Speter
108251875Speter#ifdef APR_WANT_BYTEFUNC
109251875Speter
110251875Speter/* Single Unix says they are in arpa/inet.h.  Linux has them in
111251875Speter * netinet/in.h.  FreeBSD has them in arpa/inet.h but requires that
112251875Speter * netinet/in.h be included first.
113251875Speter */
114251875Speter#if APR_HAVE_NETINET_IN_H
115251875Speter#include <netinet/in.h>
116251875Speter#endif
117251875Speter#if APR_HAVE_ARPA_INET_H
118251875Speter#include <arpa/inet.h>
119251875Speter#endif
120251875Speter
121251875Speter#undef APR_WANT_BYTEFUNC
122251875Speter#endif
123251875Speter
124251875Speter/* --------------------------------------------------------------------- */
125