⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 externs.h

📁 这是关于远程登陆TELNET 的源代码 已经测试过的。
💻 H
字号:
/* * Copyright (c) 1988, 1990 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. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. 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. * *	from: @(#)externs.h	5.3 (Berkeley) 3/22/91 *	$Id: externs.h,v 1.20 1999/08/19 09:34:15 dholland Exp $ */#ifndef	BSD#define BSD 43#endif#include <stdio.h>#include <setjmp.h>#include <sys/ioctl.h>#include <features.h>#include <termios.h>#if defined(NO_CC_T)typedef unsigned char cc_t;#endif#ifdef __linux__#include <unistd.h>   /* get _POSIX_VDISABLE */#endif#ifndef	_POSIX_VDISABLE#error "Please fix externs.h to define _POSIX_VDISABLE"#endif#define	SUBBUFSIZE	256extern int autologin;		/* Autologin enabled */extern int skiprc;		/* Don't process the ~/.telnetrc file */extern int eight;		/* use eight bit mode (binary in and/or out */extern int flushout;		/* flush output */extern int connected;		/* Are we connected to the other side? */extern int globalmode;		/* Mode tty should be in */extern int In3270;			/* Are we in 3270 mode? */extern int telnetport;		/* Are we connected to the telnet port? */extern int localflow;		/* Flow control handled locally */extern int localchars;		/* we recognize interrupt/quit */extern int donelclchars;		/* the user has set "localchars" */extern int showoptions;extern int crlf;	/* Should '\r' be mapped to <CR><LF> (or <CR><NUL>)? */extern int autoflush;		/* flush output when interrupting? */extern int autosynch;		/* send interrupt characters with SYNCH? */extern int SYNCHing;		/* Is the stream in telnet SYNCH mode? */extern int donebinarytoggle;	/* the user has put us in binary */extern int dontlecho;		/* do we suppress local echoing right now? */extern int crmod;//extern int netdata;		/* Print out network data flow *///extern int prettydump;	/* Print "netdata" output in user readable format */extern int debug;			/* Debug level */#ifdef TN3270extern int cursesdata;		/* Print out curses data flow */#endif /* unix and TN3270 */extern cc_t escapechar;	 /* Escape to command mode */extern cc_t rlogin;	 /* Rlogin mode escape character */#ifdef	KLUDGELINEMODEextern cc_t echoc;	/* Toggle local echoing */#endifextern char *prompt;		/* Prompt for command. */extern char doopt[];extern char dont[];extern char will[];extern char wont[];extern char options[];		/* All the little options */extern char *hostname;		/* Who are we connected to? *//* * We keep track of each side of the option negotiation. */#define	MY_STATE_WILL		0x01#define	MY_WANT_STATE_WILL	0x02#define	MY_STATE_DO		0x04#define	MY_WANT_STATE_DO	0x08/* * Macros to check the current state of things */#define	my_state_is_do(opt)		(options[opt]&MY_STATE_DO)#define	my_state_is_will(opt)		(options[opt]&MY_STATE_WILL)#define my_want_state_is_do(opt)	(options[opt]&MY_WANT_STATE_DO)#define my_want_state_is_will(opt)	(options[opt]&MY_WANT_STATE_WILL)#define	my_state_is_dont(opt)		(!my_state_is_do(opt))#define	my_state_is_wont(opt)		(!my_state_is_will(opt))#define my_want_state_is_dont(opt)	(!my_want_state_is_do(opt))#define my_want_state_is_wont(opt)	(!my_want_state_is_will(opt))#define	set_my_state_do(opt)		{options[opt] |= MY_STATE_DO;}#define	set_my_state_will(opt)		{options[opt] |= MY_STATE_WILL;}#define	set_my_want_state_do(opt)	{options[opt] |= MY_WANT_STATE_DO;}#define	set_my_want_state_will(opt)	{options[opt] |= MY_WANT_STATE_WILL;}#define	set_my_state_dont(opt)		{options[opt] &= ~MY_STATE_DO;}#define	set_my_state_wont(opt)		{options[opt] &= ~MY_STATE_WILL;}#define	set_my_want_state_dont(opt)	{options[opt] &= ~MY_WANT_STATE_DO;}#define	set_my_want_state_wont(opt)	{options[opt] &= ~MY_WANT_STATE_WILL;}/* * Make everything symmetric */#define	HIS_STATE_WILL			MY_STATE_DO#define	HIS_WANT_STATE_WILL		MY_WANT_STATE_DO#define HIS_STATE_DO			MY_STATE_WILL#define HIS_WANT_STATE_DO		MY_WANT_STATE_WILL#define	his_state_is_do			my_state_is_will#define	his_state_is_will		my_state_is_do#define his_want_state_is_do		my_want_state_is_will#define his_want_state_is_will		my_want_state_is_do#define	his_state_is_dont		my_state_is_wont#define	his_state_is_wont		my_state_is_dont#define his_want_state_is_dont		my_want_state_is_wont#define his_want_state_is_wont		my_want_state_is_dont#define	set_his_state_do		set_my_state_will#define	set_his_state_will		set_my_state_do#define	set_his_want_state_do		set_my_want_state_will#define	set_his_want_state_will		set_my_want_state_do#define	set_his_state_dont		set_my_state_wont#define	set_his_state_wont		set_my_state_dont#define	set_his_want_state_dont		set_my_want_state_wont#define	set_his_want_state_wont		set_my_want_state_dontextern FILE *NetTrace;		/* Where debugging output goes */extern char NetTraceFile[];	/* Name of file where debugging output goes */void SetNetTrace(const char *);	/* Function to change where debugging goes */extern sigjmp_buf peerdied;extern sigjmp_buf toplevel;		/* For error conditions. */void command(int, const char *, int);void Dump (int, char *, int);void init_3270 (void);void printoption(const char *, int, int);void printsub (int, unsigned char *, int);void sendnaws (void);void setconnmode(int);void setcommandmode (void);void setneturg (void);void sys_telnet_init (void);void telnet(const char *);void tel_enter_binary(int);void TerminalFlushOutput(void);void TerminalNewMode(int);void TerminalRestoreState(void);void TerminalSaveState(void);void tninit(void);void upcase(char *);void willoption(int);void wontoption(int);void lm_will(unsigned char *, int);void lm_wont(unsigned char *, int);void lm_do(unsigned char *, int);void lm_dont(unsigned char *, int);void lm_mode(unsigned char *, int, int);void slc_init(void);void slcstate(void);void slc_mode_export(void);void slc_mode_import(int);void slc_import(int);void slc_export(void);void slc(unsigned char *, int);void slc_check(void);void slc_start_reply(void);void slc_add_reply(int, int, int);void slc_end_reply(void);int slc_update(void);void env_opt(unsigned char *, int);void env_opt_start(void);void env_opt_start_info(void);void env_opt_add(const char *);void env_opt_end(int);int get_status(const char *, const char *);int dosynch(void);cc_t *tcval(int);//#if 0extern struct termios new_tc;#define termEofChar		new_tc.c_cc[VEOF]#define termEraseChar		new_tc.c_cc[VERASE]#define termIntChar		new_tc.c_cc[VINTR]#define termKillChar		new_tc.c_cc[VKILL]#define termQuitChar		new_tc.c_cc[VQUIT]#ifndef	VSUSPextern cc_t termSuspChar;#else#define termSuspChar		new_tc.c_cc[VSUSP]#endif#if defined(VFLUSHO) && !defined(VDISCARD)#define VDISCARD VFLUSHO#endif#ifndef	VDISCARDextern cc_t termFlushChar;#else#define termFlushChar		new_tc.c_cc[VDISCARD]#endif#ifndef VWERASEextern cc_t termWerasChar;#else#define termWerasChar		new_tc.c_cc[VWERASE]#endif#ifndef	VREPRINTextern cc_t termRprntChar;#else#define termRprntChar		new_tc.c_cc[VREPRINT]#endif#ifndef	VLNEXTextern cc_t termLiteralNextChar;#else#define termLiteralNextChar	new_tc.c_cc[VLNEXT]#endif#ifndef	VSTARTextern cc_t termStartChar;#else#define termStartChar		new_tc.c_cc[VSTART]#endif#ifndef	VSTOPextern cc_t termStopChar;#else#define termStopChar		new_tc.c_cc[VSTOP]#endif#ifndef	VEOLextern cc_t termForw1Char;#else#define termForw1Char		new_tc.c_cc[VEOL]#endif#ifndef	VEOL2extern cc_t termForw2Char;#else#define termForw2Char		new_tc.c_cc[VEOL]#endif#ifndef	VSTATUSextern cc_t termAytChar;#else#define termAytChar		new_tc.c_cc[VSTATUS]#endif//#endif /* 0 *///#if 0#if !defined(CRAY) || defined(__STDC__)#define termEofCharp	&termEofChar#define termEraseCharp	&termEraseChar#define termIntCharp	&termIntChar#define termKillCharp	&termKillChar#define termQuitCharp	&termQuitChar#define termSuspCharp	&termSuspChar#define termFlushCharp	&termFlushChar#define termWerasCharp	&termWerasChar#define termRprntCharp	&termRprntChar#define termLiteralNextCharp	&termLiteralNextChar#define termStartCharp	&termStartChar#define termStopCharp	&termStopChar#define termForw1Charp	&termForw1Char#define termForw2Charp	&termForw2Char#define termAytCharp	&termAytChar#else	/* Work around a compiler bug */#define termEofCharp		0#define termEraseCharp		0#define termIntCharp		0#define termKillCharp		0#define termQuitCharp		0#define termSuspCharp		0#define termFlushCharp		0#define termWerasCharp		0#define termRprntCharp		0#define termLiteralNextCharp	0#define termStartCharp		0#define termStopCharp		0#define termForw1Charp		0#define termForw2Charp		0#define termAytCharp		0#endif//#endif /* 0 *//* Ring buffer structures which are shared */extern ringbuf netoring;extern ringbuf netiring;extern ringbuf ttyoring;extern ringbuf ttyiring;/* Tn3270 section */#if defined(TN3270)extern int HaveInput;	/* Whether an asynchronous I/O indication came in */extern int noasynchtty;	/* Don't do signals on I/O (SIGURG, SIGIO) */extern int noasynchnet;	/* Don't do signals on I/O (SIGURG, SIGIO) */extern int sigiocount;		/* Count of SIGIO receptions */extern int shell_active;	/* Subshell is active */extern char *Ibackp;		/* Oldest byte of 3270 data */extern char Ibuf[];		/* 3270 buffer */extern char *Ifrontp;		/* Where next 3270 byte goes */extern char tline[];extern char *transcom;		/* Transparent command */void settranscom(int, char**);int shell(int, char**);void inputAvailable(void);#endif	/* defined(TN3270) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -