conserver/compat.h

215 lines
3.4 KiB
C
Raw Normal View History

2001-02-19 06:50:29 +00:00
#include <config.h>
/* hpux doesn't have getdtablesize() and they don't provide a macro
* in non-KERNEL cpp mode
*/
#ifndef HAVE_GETDTABLESIZE
# ifdef HAVE_GETRLIMIT
static int
getdtablesize()
{
auto struct rlimit rl;
(void)getrlimit(RLIMIT_NOFILE, &rl);
return rl.rlim_cur;
}
# else /* ! HAVE_GETRLIMIT */
# ifndef OPEN_MAX
# define OPEN_MAX 64
# endif
# define getdtablesize() OPEN_MAX
# endif /* HAVE_GETRLIMIT */
#endif /* ! HAVE_GETDTABLESIZE */
#if STDC_HEADERS
# include <string.h>
# include <stdlib.h>
#else
# include <strings.h>
# ifndef HAVE_STRCHR
# define strchr index
# define strrchr rindex
# endif
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
/* if you do not have fd_set's here is a possible emulation
*/
#ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
#endif
#ifndef FD_ZERO
typedef long fd_set;
# define FD_ZERO(a) {*(a)=0;}
# define FD_SET(d,a) {*(a) |= (1 << (d));}
# define FD_CLR(d,a) {*(a) &= ~(1 << (d));}
# define FD_ISSET(d,a) (*(a) & (1 << (d)))
#endif
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
#ifdef HAVE_SYS_IOCTL_COMPAT_H
# include <sys/ioctl_compat.h>
#endif
#ifdef HAVE_TERMIOS_H
# include <termios.h> /* POSIX */
#else
# ifdef HAVE_TERMIO_H
# include <termio.h> /* SysV */
# else
# ifdef HAVE_SGTTY_H
# include <sgtty.h> /* BSD */
# endif
# endif
#endif
#ifdef HAVE_STROPTS_H
# include <stropts.h>
#endif
#ifdef HAVE_TTYENT_H
# include <ttyent.h>
#endif
#ifdef HAVE_SYS_TTOLD_H
# include <sys/ttold.h>
#endif
/* which type does wait(2) take for status location
*/
#include <sys/types.h>
#if HAVE_SYS_WAIT_H
# include <sys/wait.h>
#else
# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
#endif
#ifdef HAVE_SIGACTION
extern void Set_signal(int isg, RETSIGTYPE (*disp)(int));
#else
# define Set_signal(sig, disp) (void)signal((sig), (disp))
#endif
#include <errno.h>
#if !defined(HAVE_STRERROR)
extern int errno;
extern char *sys_errlist[];
# define strerror(Me) (sys_errlist[Me])
#endif
#if HAVE_H_ERRLIST
extern int h_errno;
extern char *h_errlist[];
# define hstrerror(Me) (h_errlist[Me])
#else
# define hstrerror(Me) "host lookup error"
#endif
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_SHADOW_H
# include <shadow.h>
#endif
#ifdef HAVE_CRYPT_H
# include <crypt.h>
#endif
#ifdef HAVE_GETOPT_H
# include <getopt.h>
#endif
#ifdef HAVE_SYS_VLIMIT_H
# include <sys/vlimit.h>
#else
# include <limits.h>
#endif
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
#endif
#ifdef HAVE_SYS_UIO_H
# include <sys/uio.h>
#endif
#ifdef HAVE_SYS_PROC_H
# include <sys/proc.h>
#endif
#ifdef HAVE_SYS_AUDIT_H
# include <sys/audit.h>
#endif
#ifdef HAVE_USERSEC_H
#include <usersec.h>
#endif
#ifndef NGROUPS_MAX
# define NGROUPS_MAX 8
#endif
#ifndef HAVE_GETSID
# define getsid(Mp) (Mp)
#endif
#ifndef HAVE_SETSID
# define setsid() getpid()
#endif
#ifndef HAVE_SETGROUPS
# define setgroups(x, y) 0
#endif
2001-05-03 13:44:08 +00:00
/*
* IUCLC, OLCUC and XCASE were removed from IEEE Std 1003.1-200x
* as legacy definitions.
*/
#ifndef IUCLC
#define IUCLC 0
#endif
#ifndef OLCUC
#define OLCUC 0
#endif
#ifndef XCASE
#define XCASE 0
#endif
/* Some systems don't have OFILL or *DLY. */
#ifndef OFILL
#define OFILL 0
#endif
#ifndef NLDLY
#define NLDLY 0
#endif
#ifndef CRDLY
#define CRDLY 0
#endif
#ifndef TABDLY
#define TABDLY 0
#endif
#ifndef BSDLY
#define BSDLY 0
#endif