Compare commits
55 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50a6b600bf | |||
| 465f31ba87 | |||
| 90c5387613 | |||
| 6bf10a6901 | |||
| f759c0e3cc | |||
| 0606891b78 | |||
| 899596fd5b | |||
| a21ba0cb9c | |||
| 8f03384964 | |||
| b314659125 | |||
| 42a4e2e062 | |||
| 0b402cdb6b | |||
| 302ed6d796 | |||
| bf11b1dd15 | |||
| 33de2e875c | |||
| eccd32fdfb | |||
| 089b733f27 | |||
| 41802ce7e9 | |||
| e51a98e4b2 | |||
| 9db6c5d83c | |||
| e3675b9e89 | |||
| cf6b334bcc | |||
| 09e96e72f7 | |||
| 688fc53caf | |||
| 4d1d6978e4 | |||
| 8f03aabe30 | |||
| 3cad2c060d | |||
| 89f8ec8018 | |||
| de0845a9ce | |||
| 732eb8da25 | |||
| 0f95e0779e | |||
| 0cc9b58a65 | |||
| 314e4b1b99 | |||
| effca015a8 | |||
| 85394b243e | |||
| 673ddd9739 | |||
| 1e05632ec0 | |||
| 86aebe372e | |||
| 71de4b1ab4 | |||
| a05b17f142 | |||
| ef3d01556e | |||
| 2fe0428d92 | |||
| af3c3d4162 | |||
| 540ddd5659 | |||
| 6dc40e44e2 | |||
| 08e7fb1d7e | |||
| d85251400f | |||
| e8913f62af | |||
| 44ddf67386 | |||
| 2d993212c5 | |||
| 00430e5f64 | |||
| 1ded3b11d2 | |||
| bf21ada8c7 | |||
| e68e140ef0 | |||
| 02a2149c1f |
+1
-1
@@ -20,7 +20,7 @@ Makefile
|
||||
|
||||
# build
|
||||
*.o
|
||||
/ttynvt
|
||||
/src/ttynvt
|
||||
|
||||
/ttynvt-*.tar.gz
|
||||
/ttynvt-*.tar.xz
|
||||
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
-kr -i4 --no-tabs --line-length79 -di16
|
||||
--braces-after-if-line --brace-indent0 --dont-cuddle-else --cuddle-do-while
|
||||
--blank-lines-after-declarations --blank-lines-after-procedures
|
||||
--break-after-boolean-operator
|
||||
--no-space-after-casts
|
||||
--else-endif-column0
|
||||
+2
-15
@@ -1,20 +1,7 @@
|
||||
# Build ttynvt
|
||||
#
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
aclocal.m4 autom4te.cache compile config.h.in config.h.in~ configure \
|
||||
depcomp install-sh missing \
|
||||
Makefile.in
|
||||
Makefile.in */Makefile.in
|
||||
|
||||
CFLAGS_OPT = -O3
|
||||
CFLAGS_WARN = -Wall -Wextra -Werror -Wno-unused-parameter
|
||||
|
||||
bin_PROGRAMS = ttynvt
|
||||
|
||||
ttynvt_SOURCES = \
|
||||
ttynvt.c \
|
||||
telnet_basic.c telnet_rfc2217.c telnet.h telnet_param.h
|
||||
|
||||
ttynvt_CPPFLAGS = -I$(top_builddir) $(FUSE_CFLAGS) $(CFLAGS_OPT) $(CFLAGS_WARN)
|
||||
|
||||
ttynvt_LDADD = $(FUSE_LIBS)
|
||||
SUBDIRS = src
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
m4_define([pkg_version], [0.10])
|
||||
m4_define([pkg_version], [0.15])
|
||||
#m4_define([pkg_revision], [005])
|
||||
m4_define([pkg_version], m4_ifdef([pkg_revision], [pkg_version.pkg_revision], [pkg_version]))
|
||||
|
||||
@@ -32,6 +32,7 @@ PKG_CHECK_MODULES(FUSE, fuse)
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
src/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
CFLAGS_WARN = -Wall -Wextra -Werror -Wno-unused-parameter
|
||||
|
||||
bin_PROGRAMS = ttynvt
|
||||
|
||||
ttynvt_SOURCES = \
|
||||
ttynvt.c nvt_log.c nvt_log.h \
|
||||
telnet_basic.c telnet_rfc2217.c telnet.h telnet_param.h
|
||||
|
||||
ttynvt_CPPFLAGS = -I$(top_builddir) $(FUSE_CFLAGS) $(CFLAGS_WARN)
|
||||
|
||||
ttynvt_LDADD = $(FUSE_LIBS)
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Logging functions
|
||||
*/
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <syslog.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "nvt_log.h"
|
||||
|
||||
#include <sys/syscall.h>
|
||||
#define gettid() (pid_t)syscall(__NR_gettid)
|
||||
|
||||
char log_level = 0;
|
||||
char log_stdout = 0;
|
||||
|
||||
static const char *_hms_txt(char *buf, unsigned int len)
|
||||
{
|
||||
struct timeval tv;
|
||||
unsigned int sod, hh, mm, ss;
|
||||
|
||||
gettimeofday(&tv, NULL);
|
||||
|
||||
sod = tv.tv_sec % (24 * 3600);
|
||||
hh = sod / 3600;
|
||||
mm = (sod - hh * 3600) / 60;
|
||||
ss = sod - hh * 3600 - mm * 60;
|
||||
snprintf(buf, len, "%02d:%02d:%02d.%06d",
|
||||
hh, mm, ss, (unsigned int)tv.tv_usec);
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
void nvt_log(int prio, const char *fmt, ...)
|
||||
{
|
||||
va_list arg;
|
||||
char buf[256], buft[64];
|
||||
const char *eol;
|
||||
int len;
|
||||
|
||||
va_start(arg, fmt);
|
||||
len = vsnprintf(buf, sizeof(buf), fmt, arg);
|
||||
|
||||
if (log_stdout)
|
||||
{
|
||||
eol = (len > 0 && buf[len - 1] != '\n') ? "\n" : "";
|
||||
printf("%s: [%d] %d: %s%s",
|
||||
_hms_txt(buft, sizeof(buft)), gettid(), prio, buf, eol);
|
||||
}
|
||||
else
|
||||
{
|
||||
syslog(prio, "[%d] %s", gettid(), buf);
|
||||
}
|
||||
|
||||
va_end(arg);
|
||||
}
|
||||
|
||||
#define BPL 16 /* Bytes per line */
|
||||
|
||||
void nvt_log_buf(int prio, const char *txt, const void *ptr_, unsigned int len)
|
||||
{
|
||||
unsigned int ix, i, imax;
|
||||
int l, n;
|
||||
char buf[128];
|
||||
const unsigned char *ptr = ptr_;
|
||||
|
||||
for (ix = 0; ix < len || (len == 0 && ix == 0); ix += BPL)
|
||||
{
|
||||
n = snprintf(buf, sizeof(buf), "%s: %04x:", txt, ix);
|
||||
if (n <= 0)
|
||||
return; /* Just playing it safe */
|
||||
imax = (len - ix < BPL) ? len - ix : BPL;
|
||||
for (i = 0; i < imax; i++)
|
||||
{
|
||||
l = snprintf(buf + n, sizeof(buf) - n, " %02x", *ptr++);
|
||||
if (l <= 0)
|
||||
return; /* Just playing it safe */
|
||||
n += l;
|
||||
}
|
||||
nvt_log(prio, "%s\n", buf);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Logging functions
|
||||
*/
|
||||
#ifndef NVT_LOG_H
|
||||
#define NVT_LOG_H
|
||||
|
||||
#include <syslog.h>
|
||||
|
||||
#define _PRF_N_(no) __attribute__((__format__(__printf__, (no), (no) + 1)))
|
||||
#define _PRF2_ _PRF_N_(2)
|
||||
|
||||
_PRF2_ void nvt_log(int prio, const char *fmt, ...);
|
||||
void nvt_log_buf(int prio, const char *txt,
|
||||
const void *ptr, unsigned int len);
|
||||
|
||||
extern char log_level;
|
||||
extern char log_stdout;
|
||||
|
||||
#define DBG(...) \
|
||||
if (log_level > 0) nvt_log(LOG_DEBUG, __VA_ARGS__)
|
||||
#define DBG2(...) \
|
||||
if (log_level > 1) nvt_log(LOG_DEBUG, __VA_ARGS__)
|
||||
#define DBG2_BUF(txt, ptr, len) \
|
||||
if (log_level > 1) nvt_log_buf(LOG_DEBUG, txt, ptr, len)
|
||||
|
||||
#endif /* NVT_LOG_H */
|
||||
@@ -31,7 +31,7 @@ extern tn_ctx_t *telnet_ctx_init(void *cctx, srv_tx_f * ftx, srv_rx_f * frx,
|
||||
|
||||
extern int telnet_open(tn_ctx_t * tcc);
|
||||
|
||||
extern int telnet_rx(tn_ctx_t * tcc, char *buf, size_t * plen);
|
||||
extern int telnet_rx(tn_ctx_t * tcc, char *buf, int *plen);
|
||||
extern int telnet_tx(tn_ctx_t * tcc, const char *buf, int len);
|
||||
|
||||
extern void telnet_set_opt(tn_ctx_t * tcc, int opt, int prm,
|
||||
@@ -42,10 +42,10 @@ extern void telnet_rfc2217_handle_opt(tn_ctx_t * tcc, int opt,
|
||||
|
||||
extern void telnet_rfc2217_cfg(tn_ctx_t * tcc, int cmd,
|
||||
const void *val, int nd);
|
||||
extern void telnet_rfc2217_ctl(tn_ctx_t * tcc, int cmd);
|
||||
extern void telnet_rfc2217_ctl(tn_ctx_t * tcc, unsigned int val);
|
||||
|
||||
/*RFC2217 modem state*/
|
||||
#define TNS_STATE_CD 0x80
|
||||
#define TNS_STATE_DCD 0x80
|
||||
#define TNS_STATE_RI 0x40
|
||||
#define TNS_STATE_DSR 0x20
|
||||
#define TNS_STATE_CTS 0x10
|
||||
@@ -60,11 +60,12 @@ extern void telnet_rfc2217_ctl(tn_ctx_t * tcc, int cmd);
|
||||
|
||||
/*RFC2217 control commands*/
|
||||
#define TNS_CTL_NOFLOW 1
|
||||
#define TNS_CTL_XONOFF 2
|
||||
#define TNS_CTL_XONOFF_OUT 2
|
||||
#define TNS_CTL_CTSRTS 3
|
||||
#define TNS_CTL_DTR_ON 8
|
||||
#define TNS_CTL_DTR_OFF 9
|
||||
#define TNS_CTL_RTS_ON 11
|
||||
#define TNS_CTL_RTS_OFF 12
|
||||
#define TNS_CTL_XONOFF_IN 15
|
||||
|
||||
#endif /*TELNET_H */
|
||||
@@ -121,18 +121,18 @@ static void _telnet_handle_opt(tn_ctx_t * tcc, int opt,
|
||||
}
|
||||
}
|
||||
|
||||
int telnet_rx(tn_ctx_t * tcc, char *buf, size_t * plen)
|
||||
int telnet_rx(tn_ctx_t * tcc, char *buf, int *plen)
|
||||
{
|
||||
char *s, *p;
|
||||
unsigned char *pu;
|
||||
size_t len, rem;
|
||||
int len, rem;
|
||||
int np, nd;
|
||||
int b1, b2;
|
||||
|
||||
len = *plen;
|
||||
tcc->bytes_rx += len;
|
||||
|
||||
if (len < (size_t) tcc->off_rx)
|
||||
if (len < (int)tcc->off_rx)
|
||||
tcc->off_rx = 0;
|
||||
|
||||
for (s = buf + tcc->off_rx, rem = len - tcc->off_rx; rem > 0; s = p)
|
||||
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Lars Thrane A/S
|
||||
* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Telnet parameters
|
||||
*/
|
||||
#ifndef TELNET_PARAM_H
|
||||
#define TELNET_PARAM_H
|
||||
|
||||
|
||||
/*
|
||||
* Telnet commands
|
||||
*/
|
||||
|
||||
#define TNC_F0_SE (0xf0) /* End of subnegotiation parameters */
|
||||
#define TNC_F1_NOP (0xf1) /* No operation */
|
||||
#define TNC_F2_MARK (0xf2) /* The data stream portion of a Synch.
|
||||
This should always be accompanied
|
||||
by a TCP Urgent notification. */
|
||||
#define TNC_F3_BRK (0xf3) /* NVT character BRK. */
|
||||
#define TNC_F4_IP (0xf4) /* The function IP (interrupt process) */
|
||||
#define TNC_F5_AO (0xf5) /* The function AO (abort output) */
|
||||
#define TNC_F6_AYT (0xf6) /* The function AYT (are you there) */
|
||||
#define TNC_F7_EC (0xf7) /* The function EC (erase charceter) */
|
||||
#define TNC_F8_EL (0xf8) /* The function EL (erase line) */
|
||||
#define TNC_F9_GA (0xf9) /* The GA signal (go ahead) */
|
||||
#define TNC_FA_SB (0xfa) /* Subnegotiation begin */
|
||||
#define TNC_FB_WILL (0xfb) /* Indicates the desire to begin
|
||||
performing, or confirmation that
|
||||
you are now performing, the
|
||||
indicated option. */
|
||||
#define TNC_FC_WONT (0xfc) /* Indicates the refusal to perform,
|
||||
or continue performing, the
|
||||
indicated option. */
|
||||
#define TNC_FD_DO (0xfd) /* Indicates the request that the
|
||||
other party perform, or
|
||||
confirmation that you are expecting
|
||||
the other party to perform, the
|
||||
indicated option. */
|
||||
#define TNC_FE_DONT (0xfe) /* Indicates the demand that the
|
||||
other party stop performing,
|
||||
or confirmation that you are no
|
||||
longer expecting the other party
|
||||
to perform, the indicated option. */
|
||||
#define TNC_FF_IAC (0xff) /* Interpret as Command / data byte */
|
||||
|
||||
|
||||
/*
|
||||
* Telnet options
|
||||
*/
|
||||
|
||||
/*
|
||||
* https://www.iana.org/assignments/telnet-options/telnet-options.xhtml
|
||||
*
|
||||
* 0 00 Binary Transmission [RFC856]
|
||||
* 1 01 Echo [RFC857]
|
||||
* 2 02 Reconnection [DDN Protocol Handbook, ... ]
|
||||
* 3 03 Suppress Go Ahead [RFC858]
|
||||
* 4 04 Approx Message Size Negotiation ["The Ethernet, ..." ]
|
||||
* 5 05 Status [RFC859]
|
||||
* 6 06 Timing Mark [RFC860]
|
||||
* 7 07 Remote Controlled Trans and Echo [RFC726]
|
||||
* 8 08 Output Line Width [DDN Protocol Handbook, ... ]
|
||||
* 9 09 Output Page Size [DDN Protocol Handbook, ... ]
|
||||
* 10 0a Output Carriage-Return Disposition [RFC652]
|
||||
* 11 0b Output Horizontal Tab Stops [RFC653]
|
||||
* 12 0c Output Horizontal Tab Disposition [RFC654]
|
||||
* 13 0d Output Formfeed Disposition [RFC655]
|
||||
* 14 0e Output Vertical Tabstops [RFC656]
|
||||
* 15 0f Output Vertical Tab Disposition [RFC657]
|
||||
* 16 10 Output Linefeed Disposition [RFC658]
|
||||
* 17 11 Extended ASCII [RFC698]
|
||||
* 18 12 Logout [RFC727]
|
||||
* 19 13 Byte Macro [RFC735]
|
||||
* 20 14 Data Entry Terminal [RFC1043][RFC732]
|
||||
* 21 15 SUPDUP [RFC736][RFC734]
|
||||
* 22 16 SUPDUP Output [RFC749]
|
||||
* 23 17 Send Location [RFC779]
|
||||
* 24 18 Terminal Type [RFC1091]
|
||||
* 25 19 End of Record [RFC885]
|
||||
* 26 1a TACACS User Identification [RFC927]
|
||||
* 27 1b Output Marking [RFC933]
|
||||
* 28 1c Terminal Location Number [RFC946]
|
||||
* 29 1d Telnet 3270 Regime [RFC1041]
|
||||
* 30 1e X.3 PAD [RFC1053]
|
||||
* 31 1f Negotiate About Window Size [RFC1073]
|
||||
* 32 20 Terminal Speed [RFC1079]
|
||||
* 33 21 Remote Flow Control [RFC1372]
|
||||
* 34 22 Linemode [RFC1184]
|
||||
* 35 23 X Display Location [RFC1096]
|
||||
* 36 24 Environment Option [RFC1408]
|
||||
* 37 25 Authentication Option [RFC2941]
|
||||
* 38 26 Encryption Option [RFC2946]
|
||||
* 39 27 New Environment Option [RFC1572]
|
||||
* 40 28 TN3270E [RFC2355]
|
||||
* 41 29 XAUTH [Rob_Earhart]
|
||||
* 42 2a CHARSET [RFC2066]
|
||||
* 43 2b Telnet Remote Serial Port (RSP) [Robert_Barnes]
|
||||
* 44 2c Com Port Control Option [RFC2217]
|
||||
* 45 2d Telnet Suppress Local Echo [Wirt_Atmar]
|
||||
* 46 2e Telnet Start TLS [Michael_Boe]
|
||||
* 47 2f KERMIT [RFC2840]
|
||||
* 48 30 SEND-URL [David_Croft]
|
||||
* 49 31 FORWARD_X [Jeffrey_Altman]
|
||||
* 50-137 32-89 Unassigned [IANA]
|
||||
* 138 8a TELOPT PRAGMA LOGON [Steve_McGregory]
|
||||
* 139 8b TELOPT SSPI LOGON [Steve_McGregory]
|
||||
* 140 8c TELOPT PRAGMA HEARTBEAT [Steve_McGregory]
|
||||
* 141-254 8d-fe Unassigned
|
||||
* 255 ff Extended-Options-List [RFC861]
|
||||
*/
|
||||
|
||||
#define TNO_BINARY 0 /* 00 Binary Transmission */
|
||||
#define TNO_ECHO 1 /* 01 Echo */
|
||||
#define TNO_SUPP_GA 3 /* 03 Suppress Go Ahead */
|
||||
#define TNO_LOGOUT 18 /* 12 Logout */
|
||||
#define TNO_TTYP 24 /* 18 Terminal Type */
|
||||
#define TNO_NAWS 31 /* 1f Negotiate About Window Size */
|
||||
#define TNO_NEO 39 /* 27 New Environment Option */
|
||||
#define TNO_CPCO 44 /* 2c RFC 2217 */
|
||||
#define TNO_KERMIT 47 /* 2f Kermit */
|
||||
|
||||
#endif /* TELNET_PARAM_H */
|
||||
@@ -43,10 +43,12 @@ void telnet_rfc2217_cfg(tn_ctx_t * tcc, int cmd, const void *val, int nd)
|
||||
telnet_set_opt(tcc, TNO_CPCO, cmd, val, nd);
|
||||
}
|
||||
|
||||
void telnet_rfc2217_ctl(tn_ctx_t * tcc, int cmd)
|
||||
void telnet_rfc2217_ctl(tn_ctx_t * tcc, unsigned int val)
|
||||
{
|
||||
unsigned char byte = val;
|
||||
|
||||
if (!tcc->mode_rfc2217)
|
||||
return;
|
||||
|
||||
telnet_set_opt(tcc, TNO_CPCO, TNS_SET_CONTROL, &cmd, 1);
|
||||
telnet_set_opt(tcc, TNO_CPCO, TNS_SET_CONTROL, &byte, 1);
|
||||
}
|
||||
+410
-185
File diff suppressed because it is too large
Load Diff
-123
@@ -1,123 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Lars Thrane A/S
|
||||
* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Telnet parameters
|
||||
*/
|
||||
#ifndef TELNET_PARAM_H
|
||||
#define TELNET_PARAM_H
|
||||
|
||||
|
||||
/*
|
||||
* Telnet commands
|
||||
*/
|
||||
|
||||
#define TNC_F0_SE (0xf0) /* End of subnegotiation parameters */
|
||||
#define TNC_F1_NOP (0xf1) /* No operation */
|
||||
#define TNC_F2_MARK (0xf2) /* The data stream portion of a Synch.
|
||||
This should always be accompanied
|
||||
by a TCP Urgent notification. */
|
||||
#define TNC_F3_BRK (0xf3) /* NVT character BRK. */
|
||||
#define TNC_F4_IP (0xf4) /* The function IP (interrupt process) */
|
||||
#define TNC_F5_AO (0xf5) /* The function AO (abort output) */
|
||||
#define TNC_F6_AYT (0xf6) /* The function AYT (are you there) */
|
||||
#define TNC_F7_EC (0xf7) /* The function EC (erase charceter) */
|
||||
#define TNC_F8_EL (0xf8) /* The function EL (erase line) */
|
||||
#define TNC_F9_GA (0xf9) /* The GA signal (go ahead) */
|
||||
#define TNC_FA_SB (0xfa) /* Subnegotiation begin */
|
||||
#define TNC_FB_WILL (0xfb) /* Indicates the desire to begin
|
||||
performing, or confirmation that
|
||||
you are now performing, the
|
||||
indicated option. */
|
||||
#define TNC_FC_WONT (0xfc) /* Indicates the refusal to perform,
|
||||
or continue performing, the
|
||||
indicated option. */
|
||||
#define TNC_FD_DO (0xfd) /* Indicates the request that the
|
||||
other party perform, or
|
||||
confirmation that you are expecting
|
||||
the other party to perform, the
|
||||
indicated option. */
|
||||
#define TNC_FE_DONT (0xfe) /* Indicates the demand that the
|
||||
other party stop performing,
|
||||
or confirmation that you are no
|
||||
longer expecting the other party
|
||||
to perform, the indicated option. */
|
||||
#define TNC_FF_IAC (0xff) /* Interpret as Command / data byte */
|
||||
|
||||
|
||||
/*
|
||||
* Telnet options
|
||||
*/
|
||||
|
||||
/*
|
||||
* https://www.iana.org/assignments/telnet-options/telnet-options.xhtml
|
||||
*
|
||||
* 0 Binary Transmission [RFC856]
|
||||
* 1 Echo [RFC857]
|
||||
* 2 Reconnection [DDN Protocol Handbook, ... ]
|
||||
* 3 Suppress Go Ahead [RFC858]
|
||||
* 4 Approx Message Size Negotiation ["The Ethernet, ... ]
|
||||
* 5 Status [RFC859]
|
||||
* 6 Timing Mark [RFC860]
|
||||
* 7 Remote Controlled Trans and Echo [RFC726]
|
||||
* 8 Output Line Width [DDN Protocol Handbook, ... ]
|
||||
* 9 Output Page Size [DDN Protocol Handbook, ... ]
|
||||
* 10 Output Carriage-Return Disposition [RFC652]
|
||||
* 11 Output Horizontal Tab Stops [RFC653]
|
||||
* 12 Output Horizontal Tab Disposition [RFC654]
|
||||
* 13 Output Formfeed Disposition [RFC655]
|
||||
* 14 Output Vertical Tabstops [RFC656]
|
||||
* 15 Output Vertical Tab Disposition [RFC657]
|
||||
* 16 Output Linefeed Disposition [RFC658]
|
||||
* 17 Extended ASCII [RFC698]
|
||||
* 18 Logout [RFC727]
|
||||
* 19 Byte Macro [RFC735]
|
||||
* 20 Data Entry Terminal [RFC1043][RFC732]
|
||||
* 21 SUPDUP [RFC736][RFC734]
|
||||
* 22 SUPDUP Output [RFC749]
|
||||
* 23 Send Location [RFC779]
|
||||
* 24 Terminal Type [RFC1091]
|
||||
* 25 End of Record [RFC885]
|
||||
* 26 TACACS User Identification [RFC927]
|
||||
* 27 Output Marking [RFC933]
|
||||
* 28 Terminal Location Number [RFC946]
|
||||
* 29 Telnet 3270 Regime [RFC1041]
|
||||
* 30 X.3 PAD [RFC1053]
|
||||
* 31 Negotiate About Window Size [RFC1073]
|
||||
* 32 Terminal Speed [RFC1079]
|
||||
* 33 Remote Flow Control [RFC1372]
|
||||
* 34 Linemode [RFC1184]
|
||||
* 35 X Display Location [RFC1096]
|
||||
* 36 Environment Option [RFC1408]
|
||||
* 37 Authentication Option [RFC2941]
|
||||
* 38 Encryption Option [RFC2946]
|
||||
* 39 New Environment Option [RFC1572]
|
||||
* 40 TN3270E [RFC2355]
|
||||
* 41 XAUTH [Rob_Earhart]
|
||||
* 42 CHARSET [RFC2066]
|
||||
* 43 Telnet Remote Serial Port (RSP) [Robert_Barnes]
|
||||
* 44 Com Port Control Option [RFC2217]
|
||||
* 45 Telnet Suppress Local Echo [Wirt_Atmar]
|
||||
* 46 Telnet Start TLS [Michael_Boe]
|
||||
* 47 KERMIT [RFC2840]
|
||||
* 48 SEND-URL [David_Croft]
|
||||
* 49 FORWARD_X [Jeffrey_Altman]
|
||||
* 50-137 Unassigned [IANA]
|
||||
* 138 TELOPT PRAGMA LOGON [Steve_McGregory]
|
||||
* 139 TELOPT SSPI LOGON [Steve_McGregory]
|
||||
* 140 TELOPT PRAGMA HEARTBEAT [Steve_McGregory]
|
||||
* 141-254 Unassigned
|
||||
* 255 Extended-Options-List [RFC861]
|
||||
*/
|
||||
|
||||
#define TNO_BINARY 0 /* Binary Transmission */
|
||||
#define TNO_ECHO 1 /* Echo */
|
||||
#define TNO_SUPP_GA 3 /* Suppress Go Ahead */
|
||||
#define TNO_LOGOUT 18 /* Logout */
|
||||
#define TNO_TTYP 24 /* Terminal Type */
|
||||
#define TNO_NAWS 31 /* Negotiate About Window Size */
|
||||
#define TNO_NEO 39 /* New Environment Option */
|
||||
#define TNO_CPCO 44 /* RFC 2217 */
|
||||
#define TNO_KERMIT 47 /* Kermit */
|
||||
|
||||
#endif /* TELNET_PARAM_H */
|
||||
Reference in New Issue
Block a user