1*0Sstevel@tonic-gate /* 2*0Sstevel@tonic-gate * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3*0Sstevel@tonic-gate * Use is subject to license terms. 4*0Sstevel@tonic-gate */ 5*0Sstevel@tonic-gate 6*0Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 7*0Sstevel@tonic-gate 8*0Sstevel@tonic-gate /* src/config.h. Generated automatically by configure. */ 9*0Sstevel@tonic-gate /**************************************************************************** 10*0Sstevel@tonic-gate 11*0Sstevel@tonic-gate Copyright (c) 1999,2000 WU-FTPD Development Group. 12*0Sstevel@tonic-gate All rights reserved. 13*0Sstevel@tonic-gate 14*0Sstevel@tonic-gate Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994 15*0Sstevel@tonic-gate The Regents of the University of California. 16*0Sstevel@tonic-gate Portions Copyright (c) 1993, 1994 Washington University in Saint Louis. 17*0Sstevel@tonic-gate Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc. 18*0Sstevel@tonic-gate Portions Copyright (c) 1989 Massachusetts Institute of Technology. 19*0Sstevel@tonic-gate Portions Copyright (c) 1998 Sendmail, Inc. 20*0Sstevel@tonic-gate Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P. Allman. 21*0Sstevel@tonic-gate Portions Copyright (c) 1997 by Stan Barber. 22*0Sstevel@tonic-gate Portions Copyright (c) 1997 by Kent Landfield. 23*0Sstevel@tonic-gate Portions Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997 24*0Sstevel@tonic-gate Free Software Foundation, Inc. 25*0Sstevel@tonic-gate 26*0Sstevel@tonic-gate Use and distribution of this software and its source code are governed 27*0Sstevel@tonic-gate by the terms and conditions of the WU-FTPD Software License ("LICENSE"). 28*0Sstevel@tonic-gate 29*0Sstevel@tonic-gate If you did not receive a copy of the license, it may be obtained online 30*0Sstevel@tonic-gate at http://www.wu-ftpd.org/license.html. 31*0Sstevel@tonic-gate 32*0Sstevel@tonic-gate $Id: config.h.in,v 1.31 2000/07/01 18:04:21 wuftpd Exp $ 33*0Sstevel@tonic-gate 34*0Sstevel@tonic-gate ****************************************************************************/ 35*0Sstevel@tonic-gate 36*0Sstevel@tonic-gate #define SOLARIS_2 37*0Sstevel@tonic-gate #define SVR4 38*0Sstevel@tonic-gate #define HAVE_STATVFS 39*0Sstevel@tonic-gate #define NO_UTMP 40*0Sstevel@tonic-gate #define HAVE_FGETPWENT 41*0Sstevel@tonic-gate #define HAVE_MKSTEMP 42*0Sstevel@tonic-gate #define HAVE_SYS_SENDFILE_H 43*0Sstevel@tonic-gate 44*0Sstevel@tonic-gate /* 45*0Sstevel@tonic-gate * Configuration file for autoconf - will be modified by configure 46*0Sstevel@tonic-gate */ 47*0Sstevel@tonic-gate 48*0Sstevel@tonic-gate #define HAVE_FCNTL_H 1 49*0Sstevel@tonic-gate #define HAVE_DIRENT_H 1 50*0Sstevel@tonic-gate #define HAVE_REGEX_H 1 51*0Sstevel@tonic-gate #define TIME_WITH_SYS_TIME 1 52*0Sstevel@tonic-gate /* #undef HAVE_SYS_TIME_H */ 53*0Sstevel@tonic-gate /* #undef HAVE_TIME_H */ 54*0Sstevel@tonic-gate /* #undef HAVE_MNTENT_H */ 55*0Sstevel@tonic-gate #define HAVE_SYS_MNTENT_H 1 56*0Sstevel@tonic-gate #define HAVE_SYS_MNTTAB_H 1 57*0Sstevel@tonic-gate /* #undef HAVE_NDIR_H */ 58*0Sstevel@tonic-gate #define HAVE_STRING_H 1 59*0Sstevel@tonic-gate /* #undef HAVE_SYS_DIR_H */ 60*0Sstevel@tonic-gate /* #undef HAVE_SYS_NDIR_H */ 61*0Sstevel@tonic-gate /* #undef HAVE_SYS_QUOTA_H */ 62*0Sstevel@tonic-gate #define HAVE_SYS_FS_UFS_QUOTA_H 1 63*0Sstevel@tonic-gate /* #undef HAVE_UFS_QUOTA_H */ 64*0Sstevel@tonic-gate /* #undef HAVE_JFS_QUOTA_H */ 65*0Sstevel@tonic-gate /* #undef HAVE_UFS_UFS_QUOTA_H */ 66*0Sstevel@tonic-gate /* #undef HAVE_LINUX_QUOTA_H */ 67*0Sstevel@tonic-gate #define HAVE_STDLIB_H 1 68*0Sstevel@tonic-gate #define HAVE_UNISTD_H 1 69*0Sstevel@tonic-gate #define HAVE_SYS_TYPES_H 1 70*0Sstevel@tonic-gate #define HAVE_GLOB_H 1 71*0Sstevel@tonic-gate #define HAVE_GRP_H 1 72*0Sstevel@tonic-gate #define HAVE_SHADOW_H 1 73*0Sstevel@tonic-gate /* #undef HAVE_VMSDIR_H */ 74*0Sstevel@tonic-gate 75*0Sstevel@tonic-gate /* #undef QUOTA_INODE */ 76*0Sstevel@tonic-gate #define QUOTA_DEVICE 77*0Sstevel@tonic-gate #define QSORT_IS_VOID 1 78*0Sstevel@tonic-gate 79*0Sstevel@tonic-gate #define HAVE_SIGPROCMASK 1 80*0Sstevel@tonic-gate #define HAVE_VSNPRINTF 1 81*0Sstevel@tonic-gate /* #undef HAVE_DIRFD */ 82*0Sstevel@tonic-gate /* #undef HAVE_FLOCK */ 83*0Sstevel@tonic-gate #define HAVE_FTW 1 84*0Sstevel@tonic-gate #define HAVE_GETCWD 1 85*0Sstevel@tonic-gate #define HAVE_GETDTABLESIZE 1 86*0Sstevel@tonic-gate #define HAVE_GETRLIMIT 1 87*0Sstevel@tonic-gate /* #undef HAVE_PSTAT */ 88*0Sstevel@tonic-gate #define HAVE_LSTAT 1 89*0Sstevel@tonic-gate #define HAVE_VPRINTF 1 90*0Sstevel@tonic-gate #define HAVE_SNPRINTF 1 91*0Sstevel@tonic-gate #define HAVE_REGEX 1 92*0Sstevel@tonic-gate #define HAVE_REGEXEC 1 93*0Sstevel@tonic-gate #define HAVE_SETSID 1 94*0Sstevel@tonic-gate #define HAVE_MEMMOVE 1 95*0Sstevel@tonic-gate #define HAVE_STRTOUL 1 96*0Sstevel@tonic-gate /* #undef HAVE_SIGLIST */ 97*0Sstevel@tonic-gate #define FACILITY LOG_DAEMON 98*0Sstevel@tonic-gate 99*0Sstevel@tonic-gate #define HAVE_LIMITS_H 1 100*0Sstevel@tonic-gate #define HAVE_VALUES_H 1 101*0Sstevel@tonic-gate /* #undef HAVE_BSD_BSD_H */ 102*0Sstevel@tonic-gate #define HAVE_SYS_PARAM_H 1 103*0Sstevel@tonic-gate /* #undef NEED_LIMITS_H */ 104*0Sstevel@tonic-gate /* #undef NEED_VALUES_H */ 105*0Sstevel@tonic-gate /* #undef NEED_BSD_BSD_H */ 106*0Sstevel@tonic-gate #define NEED_SYS_PARAM_H 1 107*0Sstevel@tonic-gate #if defined(HAVE_SYS_PARAM_H) && defined(NEED_SYS_PARAM_H) 108*0Sstevel@tonic-gate #include <sys/param.h> 109*0Sstevel@tonic-gate #endif 110*0Sstevel@tonic-gate #if defined(HAVE_VALUES_H) && defined(NEED_VALUES_H) 111*0Sstevel@tonic-gate #include <values.h> 112*0Sstevel@tonic-gate #endif 113*0Sstevel@tonic-gate #if defined(HAVE_LIMITS_H) && defined(NEED_LIMITS_H) 114*0Sstevel@tonic-gate #include <limits.h> 115*0Sstevel@tonic-gate #endif 116*0Sstevel@tonic-gate #if defined(HAVE_BSD_BSD_H) && defined(NEED_BSD_BSD_H) 117*0Sstevel@tonic-gate #include <bsd/bsd.h> 118*0Sstevel@tonic-gate #endif 119*0Sstevel@tonic-gate /* #undef NBBY */ 120*0Sstevel@tonic-gate 121*0Sstevel@tonic-gate #define SIGNAL_TYPE void 122*0Sstevel@tonic-gate #define HAVE_SETUID 1 123*0Sstevel@tonic-gate #define HAVE_SETEUID 1 124*0Sstevel@tonic-gate /* #undef HAVE_SETREUID */ 125*0Sstevel@tonic-gate /* #undef HAVE_SETRESUID */ 126*0Sstevel@tonic-gate #define HAVE_SETEGID 1 127*0Sstevel@tonic-gate /* #undef HAVE_SETREGID */ 128*0Sstevel@tonic-gate /* #undef HAVE_SETRESGID */ 129*0Sstevel@tonic-gate #define HAVE_ST_BLKSIZE 1 130*0Sstevel@tonic-gate #define HAVE_SYSCONF 1 131*0Sstevel@tonic-gate #define HAVE_SYS_SYSTEMINFO_H 1 132*0Sstevel@tonic-gate /* #undef HAVE_PATHS_H */ 133*0Sstevel@tonic-gate #define HAVE_SYSLOG_H 1 134*0Sstevel@tonic-gate #define HAVE_SYS_SYSLOG_H 1 135*0Sstevel@tonic-gate #define HAVE_FCHDIR 1 136*0Sstevel@tonic-gate /* #undef HAVE_QUOTACTL */ 137*0Sstevel@tonic-gate #define HAS_OLDSTYLE_GETMNTENT 138*0Sstevel@tonic-gate /* #undef HAS_PW_EXPIRE */ 139*0Sstevel@tonic-gate #define SHADOW_PASSWORD 1 140*0Sstevel@tonic-gate #define AUTOCONF 1 141*0Sstevel@tonic-gate #if _FILE_OFFSET_BITS == 64 142*0Sstevel@tonic-gate #define L_FORMAT "lld" 143*0Sstevel@tonic-gate #else 144*0Sstevel@tonic-gate #define L_FORMAT "ld" 145*0Sstevel@tonic-gate #endif 146*0Sstevel@tonic-gate #define T_FORMAT "ld" 147*0Sstevel@tonic-gate #define PW_UID_FORMAT "ld" 148*0Sstevel@tonic-gate #define GR_GID_FORMAT "ld" 149*0Sstevel@tonic-gate 150*0Sstevel@tonic-gate /* #undef HAVE_UT_UT_HOST */ 151*0Sstevel@tonic-gate #define HAVE_UT_UT_EXIT_E_TERMINATION 1 152*0Sstevel@tonic-gate 153*0Sstevel@tonic-gate /* Here instead of everywhere: */ 154*0Sstevel@tonic-gate #include <stdio.h> 155*0Sstevel@tonic-gate #include <stdlib.h> 156*0Sstevel@tonic-gate #ifdef HAVE_UNISTD_H 157*0Sstevel@tonic-gate #include <unistd.h> 158*0Sstevel@tonic-gate #endif 159*0Sstevel@tonic-gate 160*0Sstevel@tonic-gate /* Newer systems will have seteuid/setegid */ 161*0Sstevel@tonic-gate /* Older systems may have the BSD setreuid/setregid */ 162*0Sstevel@tonic-gate /* HP/UX has setresuid/setresgid */ 163*0Sstevel@tonic-gate /* Some SCO systems appearently have none of this. 164*0Sstevel@tonic-gate so if HAVE_SETUID is not defined we'll presume it's 165*0Sstevel@tonic-gate all needed since we're compiling support/sco.c */ 166*0Sstevel@tonic-gate 167*0Sstevel@tonic-gate #ifdef HAVE_SETUID 168*0Sstevel@tonic-gate 169*0Sstevel@tonic-gate #ifndef HAVE_SETEUID 170*0Sstevel@tonic-gate #ifdef HAVE_SETREUID 171*0Sstevel@tonic-gate #define seteuid(euid) setreuid(-1,(euid)) 172*0Sstevel@tonic-gate #else 173*0Sstevel@tonic-gate #ifdef HAVE_SETRESUID 174*0Sstevel@tonic-gate #define seteuid(euid) setresuid(-1,(euid),-1) 175*0Sstevel@tonic-gate #else 176*0Sstevel@tonic-gate #error No seteuid() functions. 177*0Sstevel@tonic-gate #endif 178*0Sstevel@tonic-gate #endif 179*0Sstevel@tonic-gate #endif 180*0Sstevel@tonic-gate 181*0Sstevel@tonic-gate #ifndef HAVE_SETEGID 182*0Sstevel@tonic-gate #ifdef HAVE_SETREGID 183*0Sstevel@tonic-gate #define setegid(egid) setregid(-1,(egid)) 184*0Sstevel@tonic-gate #else 185*0Sstevel@tonic-gate #ifdef HAVE_SETRESGID 186*0Sstevel@tonic-gate #define setegid(egid) setresgid(-1,(egid),-1) 187*0Sstevel@tonic-gate #else 188*0Sstevel@tonic-gate #error No setegid() functions. 189*0Sstevel@tonic-gate #endif 190*0Sstevel@tonic-gate #endif 191*0Sstevel@tonic-gate #endif 192*0Sstevel@tonic-gate 193*0Sstevel@tonic-gate #endif /* HAVE_SETUID */ 194*0Sstevel@tonic-gate 195*0Sstevel@tonic-gate #ifndef HAVE_FCHDIR 196*0Sstevel@tonic-gate #define HAS_NO_FCHDIR 1 197*0Sstevel@tonic-gate #endif 198*0Sstevel@tonic-gate #ifndef HAVE_QUOTACTL 199*0Sstevel@tonic-gate #define HAS_NO_QUOTACTL 200*0Sstevel@tonic-gate #endif 201*0Sstevel@tonic-gate #ifdef HAVE_SYS_SYSTEMINFO_H 202*0Sstevel@tonic-gate #define HAVE_SYSINFO 1 203*0Sstevel@tonic-gate #endif 204*0Sstevel@tonic-gate #ifndef HAVE_SETSID 205*0Sstevel@tonic-gate #define NO_SETSID 1 206*0Sstevel@tonic-gate #endif 207*0Sstevel@tonic-gate 208*0Sstevel@tonic-gate #ifndef HAVE_MEMMOVE 209*0Sstevel@tonic-gate #define memmove(a,b,c) bcopy(b,a,c) 210*0Sstevel@tonic-gate #endif 211*0Sstevel@tonic-gate #ifndef HAVE_STRTOUL 212*0Sstevel@tonic-gate #define strtoul(a,b,c) (unsigned long)strtol(a,b,c) 213*0Sstevel@tonic-gate #endif 214*0Sstevel@tonic-gate 215*0Sstevel@tonic-gate #ifndef RAND_MAX 216*0Sstevel@tonic-gate #define RAND_MAX 2147483647 217*0Sstevel@tonic-gate #endif 218*0Sstevel@tonic-gate 219*0Sstevel@tonic-gate #define USE_PAM 1 220*0Sstevel@tonic-gate 221*0Sstevel@tonic-gate /* 222*0Sstevel@tonic-gate * Socket macros which help with socket structure manipulation in a mixed 223*0Sstevel@tonic-gate * IPv4 / IPv6 environment. 224*0Sstevel@tonic-gate */ 225*0Sstevel@tonic-gate #ifdef INET6 226*0Sstevel@tonic-gate #define HAVE_SIN6_SCOPE_ID 227*0Sstevel@tonic-gate #ifdef HAVE__SS_FAMILY 228*0Sstevel@tonic-gate #define ss_family __ss_family 229*0Sstevel@tonic-gate #endif 230*0Sstevel@tonic-gate #define SOCKSTORAGE sockaddr_storage 231*0Sstevel@tonic-gate #define SOCK_FAMILY(ss) ((ss).ss_family) 232*0Sstevel@tonic-gate #define SOCK_PORT(ss) ((ss).ss_family == AF_INET6 ? \ 233*0Sstevel@tonic-gate ((struct sockaddr_in6 *)&(ss))->sin6_port : \ 234*0Sstevel@tonic-gate ((struct sockaddr_in *)&(ss))->sin_port) 235*0Sstevel@tonic-gate #define SOCK_LEN(ss) ((ss).ss_family == AF_INET6 ? \ 236*0Sstevel@tonic-gate sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) 237*0Sstevel@tonic-gate #define SOCK_ADDR(ss) ((ss).ss_family == AF_INET6 ? \ 238*0Sstevel@tonic-gate (void *)&((struct sockaddr_in6 *)&(ss))->sin6_addr : \ 239*0Sstevel@tonic-gate (void *)&((struct sockaddr_in *)&(ss))->sin_addr) 240*0Sstevel@tonic-gate #define SET_SOCK_FAMILY(ss, family) (SOCK_FAMILY(ss) = (family)) 241*0Sstevel@tonic-gate #define SET_SOCK_PORT(ss, port) \ 242*0Sstevel@tonic-gate ((ss).ss_family == AF_INET6 ? \ 243*0Sstevel@tonic-gate (((struct sockaddr_in6 *)&(ss))->sin6_port = (port)) : \ 244*0Sstevel@tonic-gate (((struct sockaddr_in *)&(ss))->sin_port = (port))) 245*0Sstevel@tonic-gate #define SET_SOCK_ADDR4(ss, addr) ((void)(sock_set_inaddr(&(ss), (addr)))) 246*0Sstevel@tonic-gate #define SET_SOCK_ADDR_ANY(ss) \ 247*0Sstevel@tonic-gate ((void)((ss).ss_family == AF_INET6 ? \ 248*0Sstevel@tonic-gate (void)(((struct sockaddr_in6 *)&(ss))->sin6_addr = \ 249*0Sstevel@tonic-gate in6addr_any) : \ 250*0Sstevel@tonic-gate (void)(((struct sockaddr_in *)&(ss))->sin_addr.s_addr = \ 251*0Sstevel@tonic-gate htonl(INADDR_ANY)))) 252*0Sstevel@tonic-gate #define SET_SOCK_SCOPE(dst, src) sock_set_scope(&(dst), &(src)) 253*0Sstevel@tonic-gate #else 254*0Sstevel@tonic-gate #define SOCKSTORAGE sockaddr_in 255*0Sstevel@tonic-gate #define SOCK_FAMILY(sin) ((sin).sin_family) 256*0Sstevel@tonic-gate #define SOCK_PORT(sin) ((sin).sin_port) 257*0Sstevel@tonic-gate #define SOCK_LEN(sin) (sizeof(sin)) 258*0Sstevel@tonic-gate #define SOCK_ADDR(sin) ((void *)&(sin).sin_addr) 259*0Sstevel@tonic-gate #define SET_SOCK_FAMILY(sin, family) (SOCK_FAMILY(sin) = (family)) 260*0Sstevel@tonic-gate #define SET_SOCK_PORT(sin, port) ((sin).sin_port = (port)) 261*0Sstevel@tonic-gate #define SET_SOCK_ADDR4(sin, addr) ((sin).sin_addr = (addr)) 262*0Sstevel@tonic-gate #define SET_SOCK_ADDR_ANY(sin) ((sin).sin_addr.s_addr = htonl(INADDR_ANY)) 263*0Sstevel@tonic-gate #endif /* INET6 */ 264*0Sstevel@tonic-gate 265*0Sstevel@tonic-gate #define delay_signaling() 266*0Sstevel@tonic-gate #define enable_signaling() 267*0Sstevel@tonic-gate 268*0Sstevel@tonic-gate #include "wu_config.h" 269