1 /* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. All advertising materials mentioning features or use of this software 14 * must display the following acknowledgement: 15 * This product includes software developed by the University of 16 * California, Berkeley and its contributors. 17 * 4. Neither the name of the University nor the names of its contributors 18 * may be used to endorse or promote products derived from this software 19 * without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * from: @(#)ext.h 8.1 (Berkeley) 6/4/93 34 * $Id: ext.h,v 1.4 1994/02/25 03:20:47 cgd Exp $ 35 */ 36 37 /* 38 * Telnet server variable declarations 39 */ 40 extern char options[256]; 41 extern char do_dont_resp[256]; 42 extern char will_wont_resp[256]; 43 extern int linemode; /* linemode on/off */ 44 #ifdef LINEMODE 45 extern int uselinemode; /* what linemode to use (on/off) */ 46 extern int editmode; /* edit modes in use */ 47 extern int useeditmode; /* edit modes to use */ 48 extern int alwayslinemode; /* command line option */ 49 # ifdef KLUDGELINEMODE 50 extern int lmodetype; /* Client support for linemode */ 51 # endif /* KLUDGELINEMODE */ 52 #endif /* LINEMODE */ 53 extern int flowmode; /* current flow control state */ 54 extern int restartany; /* restart output on any character state */ 55 #ifdef DIAGNOSTICS 56 extern int diagnostic; /* telnet diagnostic capabilities */ 57 #endif /* DIAGNOSTICS */ 58 #ifdef BFTPDAEMON 59 extern int bftpd; /* behave as bftp daemon */ 60 #endif /* BFTPDAEMON */ 61 #if defined(SecurID) 62 extern int require_SecurID; 63 #endif 64 #if defined(AUTHENTICATION) 65 extern int auth_level; 66 #endif 67 68 extern slcfun slctab[NSLC + 1]; /* slc mapping table */ 69 70 char *terminaltype; 71 72 /* 73 * I/O data buffers, pointers, and counters. 74 */ 75 extern char ptyobuf[BUFSIZ+NETSLOP], *pfrontp, *pbackp; 76 77 extern char netibuf[BUFSIZ], *netip; 78 79 extern char netobuf[BUFSIZ+NETSLOP], *nfrontp, *nbackp; 80 extern char *neturg; /* one past last bye of urgent data */ 81 82 extern int pcc, ncc; 83 84 #if defined(CRAY2) && defined(UNICOS5) 85 extern int unpcc; /* characters left unprocessed by CRAY-2 terminal routine */ 86 extern char *unptyip; /* pointer to remaining characters in buffer */ 87 #endif 88 89 extern int pty, net; 90 extern char *line; 91 extern int SYNCHing; /* we are in TELNET SYNCH mode */ 92 93 #ifndef P 94 # ifdef __STDC__ 95 # define P(x) x 96 # else 97 # define P(x) () 98 # endif 99 #endif 100 101 extern void 102 _termstat P((void)), 103 add_slc P((int, int, int)), 104 check_slc P((void)), 105 change_slc P((int, int, int)), 106 cleanup P((int)), 107 clientstat P((int, int, int)), 108 copy_termbuf P((char *, int)), 109 deferslc P((void)), 110 defer_terminit P((void)), 111 do_opt_slc P((unsigned char *, int)), 112 doeof P((void)), 113 dooption P((int)), 114 dontoption P((int)), 115 edithost P((char *, char *)), 116 fatal P((int, char *)), 117 fatalperror P((int, char *)), 118 get_slc_defaults P((void)), 119 init_env P((void)), 120 init_termbuf P((void)), 121 interrupt P((void)), 122 localstat P((void)), 123 flowstat P((void)), 124 netclear P((void)), 125 netflush P((void)), 126 #ifdef DIAGNOSTICS 127 printoption P((char *, int)), 128 printdata P((char *, char *, int)), 129 printsub P((int, unsigned char *, int)), 130 #endif 131 ptyflush P((void)), 132 putchr P((int)), 133 putf P((char *, char *)), 134 recv_ayt P((void)), 135 send_do P((int, int)), 136 send_dont P((int, int)), 137 send_slc P((void)), 138 send_status P((void)), 139 send_will P((int, int)), 140 send_wont P((int, int)), 141 sendbrk P((void)), 142 sendsusp P((void)), 143 set_termbuf P((void)), 144 start_login P((char *, int, char *)), 145 start_slc P((int)), 146 #if defined(AUTHENTICATION) 147 start_slave P((char *)), 148 #else 149 start_slave P((char *, int, char *)), 150 #endif 151 suboption P((void)), 152 telrcv P((void)), 153 ttloop P((void)), 154 tty_binaryin P((int)), 155 tty_binaryout P((int)); 156 157 extern int 158 end_slc P((unsigned char **)), 159 getnpty P((void)), 160 #ifndef convex 161 getpty P((int *)), 162 #endif 163 login_tty P((int)), 164 spcset P((int, cc_t *, cc_t **)), 165 stilloob P((int)), 166 terminit P((void)), 167 termstat P((void)), 168 tty_flowmode P((void)), 169 tty_restartany P((void)), 170 tty_isbinaryin P((void)), 171 tty_isbinaryout P((void)), 172 tty_iscrnl P((void)), 173 tty_isecho P((void)), 174 tty_isediting P((void)), 175 tty_islitecho P((void)), 176 tty_isnewmap P((void)), 177 tty_israw P((void)), 178 tty_issofttab P((void)), 179 tty_istrapsig P((void)), 180 tty_linemode P((void)); 181 182 extern void 183 tty_rspeed P((int)), 184 tty_setecho P((int)), 185 tty_setedit P((int)), 186 tty_setlinemode P((int)), 187 tty_setlitecho P((int)), 188 tty_setsig P((int)), 189 tty_setsofttab P((int)), 190 tty_tspeed P((int)), 191 willoption P((int)), 192 wontoption P((int)), 193 writenet P((unsigned char *, int)); 194 195 196 197 /* 198 * The following are some clocks used to decide how to interpret 199 * the relationship between various variables. 200 */ 201 202 extern struct { 203 int 204 system, /* what the current time is */ 205 echotoggle, /* last time user entered echo character */ 206 modenegotiated, /* last time operating mode negotiated */ 207 didnetreceive, /* last time we read data from network */ 208 ttypesubopt, /* ttype subopt is received */ 209 tspeedsubopt, /* tspeed subopt is received */ 210 environsubopt, /* environ subopt is received */ 211 oenvironsubopt, /* old environ subopt is received */ 212 xdisplocsubopt, /* xdisploc subopt is received */ 213 baseline, /* time started to do timed action */ 214 gotDM; /* when did we last see a data mark */ 215 } clocks; 216 217 218 #if defined(CRAY2) && defined(UNICOS5) 219 extern int needtermstat; 220 #endif 221 222 #ifndef DEFAULT_IM 223 # ifdef CRAY 224 # define DEFAULT_IM "\r\n\r\nCray UNICOS (%h) (%t)\r\n\r\r\n\r" 225 # else 226 # ifdef sun 227 # define DEFAULT_IM "\r\n\r\nSunOS UNIX (%h) (%t)\r\n\r\r\n\r" 228 # else 229 # ifdef ultrix 230 # define DEFAULT_IM "\r\n\r\nULTRIX (%h) (%t)\r\n\r\r\n\r" 231 # else 232 # define DEFAULT_IM "\r\n\r\n4.4 BSD UNIX (%h) (%t)\r\n\r\r\n\r" 233 # endif 234 # endif 235 # endif 236 #endif 237