📄 cli_telnet.inc
字号:
/************************************************************************
Copyright 200X - 200X+1.
filename : CLI_User.inc
description : 定义telnet模块中所用到的宏定义、数据结构、状态机等、
对Cli_telnet.c的函数进行声明
author : Woodhead
modification : Woodhead create 2004-12-07
************************************************************************/
#ifndef _CLI_TELNET_INC
#define _CLI_TELNET_INC
#define TCSB (_U8)250 /* 开始选项子协商 */
#define TCSE (_U8)240 /* 子协商结束 */
#define TCNOP (_U8)241 /* 空操作 */
#define TCDM (_U8)242 /* 数据标记 */
#define TCBRK (_U8)243 /* 网络虚拟终端字符BRK */
#define TCIP (_U8)244 /* 中断处理 */
#define TCAO (_U8)245 /* 忽略输出 */
#define TCAYT (_U8)246 /* "Are You There?" Function*/
#define TCEC (_U8)247 /* 擦除字符 */
#define TCEL (_U8)248 /* 擦除行 */
#define TCGA (_U8)249 /* "Go Ahead" Function */
#define TCWILL (_U8)251 /* 要求或者确认Will Do Option*/
#define TCWONT (_U8)252 /* 拒绝Do Option */
#define TCDO (_U8)253 /* 要求Do Option */
#define TCDONT (_U8)254 /* 要求NOT To Do Option */
#define TCIAC (_U8)255 /* Interpret As Command Escape*/
/*------------------------------------------------------------------*/
/* telnet 选项代码 */
/*------------------------------------------------------------------*/
#define TOTXBINARY (_U8) 0 /* 二进制传送选项 */
#define TOECHO (_U8) 1 /* ECHO 选项 */
#define TONOGA (_U8) 3 /* 禁止 Go-Ahead 选项 */
#define TOTERMTYPE (_U8) 24 /* 中断类型选项 */
/*------------------------------------------------------------------*/
/* 选项子协商 */
/*------------------------------------------------------------------*/
#define TT_IS 0 /* TERMINAL_TYPE option "IS" command*/
#define TT_SEND 1 /* TERMINAL_TYPE option "SEND" command*/
/*------------------------------------------------------------------*/
/* Telnet Socket-Input FSM States: */
/*------------------------------------------------------------------*/
#define TSDATA 0 /* normal data processing */
#define TSIAC 1 /* have seen IAC */
#define TSWOPT 2 /* have seen IAC-{WILL/WONT} */
#define TSDOPT 3 /* have seen IAC-{DO/DONT} */
#define TSSUBNEG 4 /* have seen IAC-SB */
#define TSSUBIAC 5 /* have seen IAC-SB-...-IAC */
#define NTSTATES 6 /* # of TS* states */
/*------------------------------------------------------------------*/
/* Telnet Option Subnegotiation FSM States: */
/*------------------------------------------------------------------*/
#define SS_START 0 /* initial state */
#define SS_TERMTYPE 1 /* TERMINAL_TYPE option subnegotiation*/
#define SS_IS 2
#define SS_END 3 /* state after all legal input */
#define NSSTATES 4 /* # of SS_* states */
#define FSINVALID 0xff /* an invalid state number */
#define NCHRS 256 /* number of valid characters */
#define TCANY (NCHRS+1) /* match any character */
/* 状态转换表数据结构 */
struct Fsm_Trans_S
{
_U8 Ft_State ; /* 当前状态 */
short Ft_Char ; /* 输入字符 */
_U8 Ft_Next ; /* 转换到的下一状态 */
/* 该状态下对应的处理函数 */
_U32 ( * Ft_Action ) ( PTerm_Data_S, _U8 ) ;
} ;
#define TINVALID 0xff /* an invalid transition index */
extern struct Fsm_Trans_S TTStab[ ], SubStab[ ];
extern _U8 TTFsm[ ][ NCHRS ], SubFsm[ ][ NCHRS ] ;
/* Function in the module - tfsm.c */
_U32 CLI_SubTermType( PTerm_Data_S, _U8 ) ;
_VOID CLI_NegotiateOption( PTerm_Data_S ) ;
_VOID CLI_FsmBuild ( _VOID ) ;
_VOID CLI_FsmInit ( _U8 [ ][ 256 ] , struct Fsm_Trans_S [ ], _U8 ) ;
_U32 CLI_tcdm ( PTerm_Data_S, _U8 ) ;
_U32 CLI_RecOpt ( PTerm_Data_S, _U8 ) ;
_U32 CLI_Noop ( PTerm_Data_S, _U8 ) ;
_U32 CLI_SubOpt ( PTerm_Data_S, _U8 ) ;
_U32 CLI_SubEnd ( PTerm_Data_S, _U8 ) ;
_U32 CLI_Abort ( PTerm_Data_S, _U8 ) ;
_U32 CLI_DoNotSup ( PTerm_Data_S, _U8 ) ;
_U32 CLI_WillNotSup ( PTerm_Data_S, _U8 ) ;
_U32 CLI_WillEcho ( PTerm_Data_S, _U8 ) ;
_U32 CLI_WillNoga ( PTerm_Data_S, _U8 ) ;
_U32 CLI_DoTxBinary ( PTerm_Data_S, _U8 ) ;
_U32 CLI_WillTxBinary ( PTerm_Data_S, _U8 ) ;
_U32 CLI_DoTermType ( PTerm_Data_S, _U8 ) ;
_VOID CLI_TelFSMDegOut (_S8 *szInfoEn, _S8 *szInfoCh);
#endif /*end of #ifndef _CLI_TELNET_INC*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -