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