xref: /original-bsd/libexec/telnetd/defs.h (revision 10020db5)
1 /*
2  * Copyright (c) 1989 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms are permitted
6  * provided that the above copyright notice and this paragraph are
7  * duplicated in all such forms and that any documentation,
8  * advertising materials, and other materials related to such
9  * distribution and use acknowledge that the software was developed
10  * by the University of California, Berkeley.  The name of the
11  * University may not be used to endorse or promote products derived
12  * from this software without specific prior written permission.
13  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16  *
17  *	@(#)defs.h	5.4 (Berkeley) 02/28/90
18  */
19 
20 /*
21  * Telnet server defines
22  */
23 #include <sys/types.h>
24 #include <sys/param.h>
25 
26 #ifndef	BSD
27 # define	BSD 43
28 #endif
29 
30 #if BSD > 43
31 #define	USE_TERMIO
32 #endif
33 
34 #ifdef	CRAY
35 # define	NEWINIT
36 # define	SYSV_TERMIO
37 # define	NO_GETTYTAB
38 # define	signal sigset
39 #endif	/* CRAY */
40 
41 #ifdef	SYSV_TERMIO
42 # define	USE_TERMIO
43 #endif
44 
45 #include <sys/socket.h>
46 #ifndef	CRAY
47 #include <sys/wait.h>
48 #endif	/* CRAY */
49 #include <sys/file.h>
50 #include <sys/stat.h>
51 #include <sys/time.h>
52 #include <sys/ioctl.h>
53 
54 #include <netinet/in.h>
55 
56 #include <arpa/telnet.h>
57 
58 #include <stdio.h>
59 #include <signal.h>
60 #include <errno.h>
61 #include <netdb.h>
62 #include <syslog.h>
63 #ifndef	LOG_DAEMON
64 #define	LOG_DAEMON	0
65 #endif
66 #ifndef	LOG_ODELAY
67 #define	LOG_ODELAY	0
68 #endif
69 #include <ctype.h>
70 #include <strings.h>
71 
72 #ifndef	USE_TERMIO
73 #include <sgtty.h>
74 typedef unsigned char cc_t;
75 #else
76 # ifdef	SYSV_TERMIO
77 # include <termio.h>
78 # else
79 # include <termios.h>
80 # endif
81 #endif
82 
83 #ifdef	CRAY
84 #include <sys/fcntl.h>
85 # ifdef	CRAY1
86 # include <sys/pty.h>
87 #  ifndef FD_ZERO
88 # include <sys/select.h>
89 #  endif /* FD_ZERO */
90 # endif	/* CRAY1 */
91 
92 #include <memory.h>
93 #endif	/* CRAY */
94 
95 #if	defined(TCSIG) || defined(TIOCPKT_IOCTL)
96 # define	LINEMODE
97 # define	KLUDGELINEMODE
98 #endif
99 
100 #ifndef	FD_SET
101 #ifndef	HAVE_fd_set
102 typedef struct fd_set { int fds_bits[1]; } fd_set;
103 #endif
104 
105 #define	FD_SET(n, p)	((p)->fds_bits[0] |= (1<<(n)))
106 #define	FD_CLR(n, p)	((p)->fds_bits[0] &= ~(1<<(n)))
107 #define	FD_ISSET(n, p)	((p)->fds_bits[0] & (1<<(n)))
108 #define FD_ZERO(p)	((p)->fds_bits[0] = 0)
109 #endif	/* FD_SET */
110 
111 #define	OPT_NO			0		/* won't do this option */
112 #define	OPT_YES			1		/* will do this option */
113 #define	OPT_YES_BUT_ALWAYS_LOOK	2
114 #define	OPT_NO_BUT_ALWAYS_LOOK	3
115 
116 /*
117  * I/O data buffers defines
118  */
119 #define	NETSLOP	64
120 #ifdef CRAY
121 #undef BUFSIZ
122 #define BUFSIZ  2048
123 #endif
124 
125 #define	NIACCUM(c)	{   *netip++ = c; \
126 			    ncc++; \
127 			}
128 
129 /* clock manipulations */
130 #define	settimer(x)	(clocks.x = ++clocks.system)
131 #define	sequenceIs(x,y)	(clocks.x < clocks.y)
132 
133 /*
134  * Linemode support states, in decreasing order of importance
135  */
136 #define REAL_LINEMODE	0x02
137 #define KLUDGE_LINEMODE	0x01
138 #define NO_LINEMODE	0x00
139 
140 /*
141  * Structures of information for each special character function.
142  */
143 typedef struct {
144 	unsigned char	flag;		/* the flags for this function */
145 	cc_t		val;		/* the value of the special character */
146 } slcent, *Slcent;
147 
148 typedef struct {
149 	slcent		defset;		/* the default settings */
150 	slcent		current;	/* the current settings */
151 	cc_t		*sptr;		/* a pointer to the char in */
152 					/* system data structures */
153 } slcfun, *Slcfun;
154