/* * 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 <err.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #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 #define HAVE_UTIL_H #define HAVE_OPENPTY #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_SYS_PARAM_H #include <sys/param.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef TIME_WITH_SYS_TIME #include <sys/time.h> #include <time.h> #elif defined(HAVE_SYS_TIME_H) #include <sys/time.h> #else #include <time.h> #endif #ifdef HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif /* HAVE_SYS_RESOURCE_H */ #ifdef HAVE_SYS_WAIT_H #include <sys/wait.h> #endif #ifdef HAVE_FCNTL_H #include <fcntl.h> #endif #ifdef HAVE_SYS_FILE_H #include <sys/file.h> #endif #ifdef HAVE_SYS_STAT_H #include <sys/stat.h> #endif /* including both <sys/ioctl.h> and <termios.h> in SunOS 4 generates a lot of warnings */ #if defined(HAVE_SYS_IOCTL_H) && SunOS != 40 #include <sys/ioctl.h> #endif #ifdef HAVE_SYS_FILIO_H #include <sys/filio.h> #endif #ifdef HAVE_NETINET_IN_H #include <netinet/in.h> #endif #ifdef HAVE_NETINET_IN6_H #include <netinet/in6.h> #endif #ifdef HAVE_NETINET6_IN6_H #include <netinet6/in6.h> #endif #ifdef HAVE_ARPA_INET_H #include <arpa/inet.h> #endif #include <signal.h> #include <errno.h> #ifdef HAVE_NETDB_H #include <netdb.h> #endif #ifdef HAVE_SYSLOG_H #include <syslog.h> #endif #include <ctype.h> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #include <termios.h> #ifdef HAVE_PTY_H #include <pty.h> #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 <sys/pty.h> #endif #ifdef HAVE_SYS_SELECT_H #include <sys/select.h> #endif #ifdef HAVE_SYS_PTYIO_H #include <sys/ptyio.h> #endif #ifdef HAVE_SYS_UTSNAME_H #include <sys/utsname.h> #endif #ifdef HAVE_PATHS_H #include <paths.h> #endif #ifdef HAVE_ARPA_TELNET_H #include <arpa/telnet.h> #endif #ifdef HAVE_STDARG_H #include <stdarg.h> #endif #include "ext.h" #ifdef SOCKS #include <socks.h> /* This doesn't belong here. */ struct tm *localtime(const time_t *); struct hostent *gethostbyname(const char *); #endif #ifdef KRB4 #include <kerberosIV/krb.h> #endif #ifdef AUTHENTICATION #include <auth.h> #include <misc.h> #ifdef ENCRYPTION #include <encrypt.h> #endif #endif #ifdef HAVE_LIBUTIL_H #include <libutil.h> #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);