ext.h revision 72445
1210284Sjmallett/* 2232812Sjmallett * Copyright (c) 1989, 1993 3215990Sjmallett * The Regents of the University of California. All rights reserved. 4210284Sjmallett * 5210284Sjmallett * Redistribution and use in source and binary forms, with or without 6215990Sjmallett * modification, are permitted provided that the following conditions 7215990Sjmallett * are met: 8215990Sjmallett * 1. Redistributions of source code must retain the above copyright 9210284Sjmallett * notice, this list of conditions and the following disclaimer. 10215990Sjmallett * 2. Redistributions in binary form must reproduce the above copyright 11215990Sjmallett * notice, this list of conditions and the following disclaimer in the 12210284Sjmallett * documentation and/or other materials provided with the distribution. 13215990Sjmallett * 3. All advertising materials mentioning features or use of this software 14215990Sjmallett * must display the following acknowledgement: 15215990Sjmallett * This product includes software developed by the University of 16215990Sjmallett * California, Berkeley and its contributors. 17215990Sjmallett * 4. Neither the name of the University nor the names of its contributors 18232812Sjmallett * may be used to endorse or promote products derived from this software 19215990Sjmallett * without specific prior written permission. 20215990Sjmallett * 21215990Sjmallett * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22215990Sjmallett * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23215990Sjmallett * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24215990Sjmallett * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25215990Sjmallett * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26215990Sjmallett * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27215990Sjmallett * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28215990Sjmallett * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29232812Sjmallett * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30215990Sjmallett * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31215990Sjmallett * SUCH DAMAGE. 32215990Sjmallett * 33215990Sjmallett * @(#)ext.h 8.2 (Berkeley) 12/15/93 34215990Sjmallett */ 35215990Sjmallett 36215990Sjmallett/* $Id: ext.h,v 1.20 2000/11/15 23:03:38 assar Exp $ */ 37215990Sjmallett 38210284Sjmallett#ifndef __EXT_H__ 39210284Sjmallett#define __EXT_H__ 40210284Sjmallett 41210284Sjmallett/* 42210284Sjmallett * Telnet server variable declarations 43210284Sjmallett */ 44210284Sjmallettextern char options[256]; 45215990Sjmallettextern char do_dont_resp[256]; 46210284Sjmallettextern char will_wont_resp[256]; 47210284Sjmallettextern int flowmode; /* current flow control state */ 48210284Sjmallettextern int restartany; /* restart output on any character state */ 49210284Sjmallett#ifdef DIAGNOSTICS 50210284Sjmallettextern int diagnostic; /* telnet diagnostic capabilities */ 51232812Sjmallett#endif /* DIAGNOSTICS */ 52210284Sjmallettextern int require_otp; 53210284Sjmallett#ifdef AUTHENTICATION 54210284Sjmallettextern int auth_level; 55210284Sjmallett#endif 56210284Sjmallettextern const char *new_login; 57232812Sjmallett 58232812Sjmallettextern slcfun slctab[NSLC + 1]; /* slc mapping table */ 59232812Sjmallett 60232812Sjmallettextern char *terminaltype; 61210284Sjmallett 62210284Sjmallett/* 63210284Sjmallett * I/O data buffers, pointers, and counters. 64210284Sjmallett */ 65210284Sjmallettextern char ptyobuf[BUFSIZ+NETSLOP], *pfrontp, *pbackp; 66210284Sjmallett 67210284Sjmallettextern char netibuf[BUFSIZ], *netip; 68210284Sjmallett 69210284Sjmallettextern char netobuf[BUFSIZ+NETSLOP], *nfrontp, *nbackp; 70210284Sjmallettextern char *neturg; /* one past last bye of urgent data */ 71210284Sjmallett 72210284Sjmallettextern int pcc, ncc; 73210284Sjmallett 74210284Sjmallettextern int ourpty, net; 75210284Sjmallettextern char *line; 76210284Sjmallettextern int SYNCHing; /* we are in TELNET SYNCH mode */ 77210284Sjmallett 78210284Sjmallettint telnet_net_write (unsigned char *str, int len); 79210284Sjmallettvoid net_encrypt (void); 80210284Sjmallettint telnet_spin (void); 81210284Sjmallettchar *telnet_getenv (const char *val); 82210284Sjmallettchar *telnet_gets (char *prompt, char *result, int length, int echo); 83210284Sjmallettvoid get_slc_defaults (void); 84210284Sjmallettvoid telrcv (void); 85210284Sjmallettvoid send_do (int option, int init); 86210284Sjmallettvoid willoption (int option); 87210284Sjmallettvoid send_dont (int option, int init); 88210284Sjmallettvoid wontoption (int option); 89210284Sjmallettvoid send_will (int option, int init); 90210284Sjmallettvoid dooption (int option); 91210284Sjmallettvoid send_wont (int option, int init); 92210284Sjmallettvoid dontoption (int option); 93210284Sjmallettvoid suboption (void); 94210284Sjmallettvoid doclientstat (void); 95210284Sjmallettvoid send_status (void); 96210284Sjmallettvoid init_termbuf (void); 97210284Sjmallettvoid set_termbuf (void); 98210284Sjmallettint spcset (int func, cc_t *valp, cc_t **valpp); 99210284Sjmallettvoid set_utid (void); 100210284Sjmallettint getpty (int *ptynum); 101210284Sjmallettint tty_isecho (void); 102210284Sjmallettint tty_flowmode (void); 103210284Sjmallettint tty_restartany (void); 104210284Sjmallettvoid tty_setecho (int on); 105210284Sjmallettint tty_israw (void); 106210284Sjmallettvoid tty_binaryin (int on); 107210284Sjmallettvoid tty_binaryout (int on); 108210284Sjmallettint tty_isbinaryin (void); 109210284Sjmallettint tty_isbinaryout (void); 110210284Sjmallettint tty_issofttab (void); 111210284Sjmallettvoid tty_setsofttab (int on); 112210284Sjmallettint tty_islitecho (void); 113210284Sjmallettvoid tty_setlitecho (int on); 114210284Sjmallettint tty_iscrnl (void); 115210284Sjmallettvoid tty_tspeed (int val); 116210284Sjmallettvoid tty_rspeed (int val); 117210284Sjmallettvoid getptyslave (void); 118210284Sjmallettint cleanopen (char *line); 119210284Sjmallettvoid startslave (char *host, int autologin, char *autoname); 120210284Sjmallettvoid init_env (void); 121210284Sjmallettvoid start_login (char *host, int autologin, char *name); 122210284Sjmallettvoid cleanup (int sig); 123210284Sjmallettint main (int argc, char **argv); 124210284Sjmallettint getterminaltype (char *name, size_t); 125210284Sjmallettvoid _gettermname (void); 126210284Sjmallettint terminaltypeok (char *s); 127210284Sjmallettvoid my_telnet (int f, int p, char*, int, char*); 128210284Sjmallettvoid interrupt (void); 129210284Sjmallettvoid sendbrk (void); 130210284Sjmallettvoid sendsusp (void); 131210284Sjmallettvoid recv_ayt (void); 132210284Sjmallettvoid doeof (void); 133210284Sjmallettvoid flowstat (void); 134210284Sjmallettvoid clientstat (int code, int parm1, int parm2); 135210284Sjmallettint ttloop (void); 136210284Sjmallettint stilloob (int s); 137210284Sjmallettvoid ptyflush (void); 138210284Sjmallettchar *nextitem (char *current); 139210284Sjmallettvoid netclear (void); 140210284Sjmallettvoid netflush (void); 141210284Sjmallettvoid writenet (unsigned char *ptr, int len); 142210284Sjmallettvoid fatal (int f, char *msg); 143210284Sjmallettvoid fatalperror (int f, const char *msg); 144210284Sjmallettvoid edithost (char *pat, char *host); 145210284Sjmallettvoid putstr (char *s); 146210284Sjmallettvoid putchr (int cc); 147210284Sjmallettvoid putf (char *cp, char *where); 148210284Sjmallettvoid printoption (char *fmt, int option); 149210284Sjmallettvoid printsub (int direction, unsigned char *pointer, int length); 150210284Sjmallettvoid printdata (char *tag, char *ptr, int cnt); 151210284Sjmallettint login_tty(int t); 152210284Sjmallett 153210284Sjmallett#ifdef ENCRYPTION 154210284Sjmallettextern void (*encrypt_output) (unsigned char *, int); 155210284Sjmallettextern int (*decrypt_input) (int); 156210284Sjmallettextern char *nclearto; 157210284Sjmallett#endif 158210284Sjmallett 159210284Sjmallett 160210284Sjmallett/* 161210284Sjmallett * The following are some clocks used to decide how to interpret 162210284Sjmallett * the relationship between various variables. 163210284Sjmallett */ 164210284Sjmallett 165210284Sjmallettstruct clocks_t{ 166210284Sjmallett int 167210284Sjmallett system, /* what the current time is */ 168210284Sjmallett echotoggle, /* last time user entered echo character */ 169210284Sjmallett modenegotiated, /* last time operating mode negotiated */ 170210284Sjmallett didnetreceive, /* last time we read data from network */ 171210284Sjmallett ttypesubopt, /* ttype subopt is received */ 172210284Sjmallett tspeedsubopt, /* tspeed subopt is received */ 173210284Sjmallett environsubopt, /* environ subopt is received */ 174210284Sjmallett oenvironsubopt, /* old environ subopt is received */ 175210284Sjmallett xdisplocsubopt, /* xdisploc subopt is received */ 176210284Sjmallett baseline, /* time started to do timed action */ 177210284Sjmallett gotDM; /* when did we last see a data mark */ 178210284Sjmallett}; 179210284Sjmallettextern struct clocks_t clocks; 180210284Sjmallett 181210284Sjmallettextern int log_unauth; 182210284Sjmallettextern int no_warn; 183210284Sjmallett 184210284Sjmallett#ifdef STREAMSPTY 185210284Sjmallettextern int really_stream; 186210284Sjmallett#endif 187210284Sjmallett 188210284Sjmallett#ifndef USE_IM 189210284Sjmallett# ifdef CRAY 190210284Sjmallett# define USE_IM "Cray UNICOS (%h) (%t)" 191210284Sjmallett# endif 192210284Sjmallett# ifdef _AIX 193210284Sjmallett# define USE_IM "%s %v.%r (%h) (%t)" 194210284Sjmallett# endif 195210284Sjmallett# ifndef USE_IM 196210284Sjmallett# define USE_IM "%s %r (%h) (%t)" 197210284Sjmallett# endif 198210284Sjmallett#endif 199210284Sjmallett 200210284Sjmallett#define DEFAULT_IM "\r\n\r\n" USE_IM "\r\n\r\n\r\n" 201210284Sjmallett 202210284Sjmallett#endif /* __EXT_H__ */ 203210284Sjmallett