/* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)telnetd.h 8.1 (Berkeley) 6/4/93 */ #include #include #include #include #define HAVE_STDARG_H #define HAVE_NETDB_H #define HAVE_SYS_STAT_H #define HAVE_SYSLOG_H #define HAVE_UTMP_H #define HAVE_SYS_TYPES_H #define HAVE_SYS_SOCKET_H #define HAVE_FCNTL_H #define HAVE_SYS_IOCTL_H #define HAVE_UNISTD_H #define HAVE_SYS_UTSNAME_H #define HAVE_UNAME #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef TIME_WITH_SYS_TIME #include #include #elif defined(HAVE_SYS_TIME_H) #include #else #include #endif #ifdef HAVE_SYS_RESOURCE_H #include #endif /* HAVE_SYS_RESOURCE_H */ #ifdef HAVE_SYS_WAIT_H #include #endif #ifdef HAVE_FCNTL_H #include #endif #ifdef HAVE_SYS_FILE_H #include #endif #ifdef HAVE_SYS_STAT_H #include #endif /* including both and in SunOS 4 generates a lot of warnings */ #if defined(HAVE_SYS_IOCTL_H) && SunOS != 40 #include #endif #ifdef HAVE_SYS_FILIO_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_NETINET_IN6_H #include #endif #ifdef HAVE_NETINET6_IN6_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #include #include #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_SYSLOG_H #include #endif #include #ifdef HAVE_UNISTD_H #include #endif #include #ifdef HAVE_PTY_H #include #endif #include "defs.h" #ifndef _POSIX_VDISABLE # ifdef VDISABLE # define _POSIX_VDISABLE VDISABLE # else # define _POSIX_VDISABLE ((unsigned char)'\377') # endif #endif #ifdef HAVE_SYS_PTY_H #include #endif #ifdef HAVE_SYS_SELECT_H #include #endif #ifdef HAVE_SYS_PTYIO_H #include #endif #ifdef HAVE_SYS_UTSNAME_H #include #endif #ifdef HAVE_PATHS_H #include #endif #ifdef HAVE_ARPA_TELNET_H #include #endif #ifdef HAVE_STDARG_H #include #endif #include "ext.h" #ifdef SOCKS #include /* This doesn't belong here. */ struct tm *localtime(const time_t *); struct hostent *gethostbyname(const char *); #endif #ifdef KRB4 #include #endif #ifdef AUTHENTICATION #include #include #ifdef ENCRYPTION #include #endif #endif #ifdef HAVE_LIBUTIL_H #include #endif /* Don't use the system login, use our version instead */ /* BINDIR should be defined somewhere else... */ #ifndef BINDIR #define BINDIR "/usr/bin" #endif #undef _PATH_LOGIN #define _PATH_LOGIN BINDIR "/login" /* fallbacks */ #ifndef _PATH_DEV #define _PATH_DEV "/dev/" #endif #ifndef _PATH_TTY #define _PATH_TTY "/dev/tty" #endif /* _PATH_TTY */ #ifdef DIAGNOSTICS #define DIAG(a,b) if (diagnostic & (a)) b #else #define DIAG(a,b) #endif /* other external variables */ extern char **environ; /* prototypes */ /* appends data to nfrontp and advances */ int output_data (const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 1, 2))) #endif ; void esetenv(const char *, const char *, int); void mini_inetd(int); void socket_set_reuseaddr (int, int);