42 #if !defined(LIBTELNET_INCLUDE)
43 #define LIBTELNET_INCLUDE 1
49 #if defined(__cplusplus)
55 # define TELNET_GNU_PRINTF(f,a) __attribute__((format(printf, f, a)))
56 # define TELNET_GNU_SENTINEL __attribute__((sentinel))
58 # define TELNET_GNU_PRINTF(f,a)
59 # define TELNET_GNU_SENTINEL
74 #define TELNET_IAC 255
75 #define TELNET_DONT 254
77 #define TELNET_WONT 252
78 #define TELNET_WILL 251
83 #define TELNET_AYT 246
86 #define TELNET_BREAK 243
88 #define TELNET_NOP 241
90 #define TELNET_EOR 239
91 #define TELNET_ABORT 238
92 #define TELNET_SUSP 237
93 #define TELNET_EOF 236
99 #define TELNET_TELOPT_BINARY 0
100 #define TELNET_TELOPT_ECHO 1
101 #define TELNET_TELOPT_RCP 2
102 #define TELNET_TELOPT_SGA 3
103 #define TELNET_TELOPT_NAMS 4
104 #define TELNET_TELOPT_STATUS 5
105 #define TELNET_TELOPT_TM 6
106 #define TELNET_TELOPT_RCTE 7
107 #define TELNET_TELOPT_NAOL 8
108 #define TELNET_TELOPT_NAOP 9
109 #define TELNET_TELOPT_NAOCRD 10
110 #define TELNET_TELOPT_NAOHTS 11
111 #define TELNET_TELOPT_NAOHTD 12
112 #define TELNET_TELOPT_NAOFFD 13
113 #define TELNET_TELOPT_NAOVTS 14
114 #define TELNET_TELOPT_NAOVTD 15
115 #define TELNET_TELOPT_NAOLFD 16
116 #define TELNET_TELOPT_XASCII 17
117 #define TELNET_TELOPT_LOGOUT 18
118 #define TELNET_TELOPT_BM 19
119 #define TELNET_TELOPT_DET 20
120 #define TELNET_TELOPT_SUPDUP 21
121 #define TELNET_TELOPT_SUPDUPOUTPUT 22
122 #define TELNET_TELOPT_SNDLOC 23
123 #define TELNET_TELOPT_TTYPE 24
124 #define TELNET_TELOPT_EOR 25
125 #define TELNET_TELOPT_TUID 26
126 #define TELNET_TELOPT_OUTMRK 27
127 #define TELNET_TELOPT_TTYLOC 28
128 #define TELNET_TELOPT_3270REGIME 29
129 #define TELNET_TELOPT_X3PAD 30
130 #define TELNET_TELOPT_NAWS 31
131 #define TELNET_TELOPT_TSPEED 32
132 #define TELNET_TELOPT_LFLOW 33
133 #define TELNET_TELOPT_LINEMODE 34
134 #define TELNET_TELOPT_XDISPLOC 35
135 #define TELNET_TELOPT_ENVIRON 36
136 #define TELNET_TELOPT_AUTHENTICATION 37
137 #define TELNET_TELOPT_ENCRYPT 38
138 #define TELNET_TELOPT_NEW_ENVIRON 39
139 #define TELNET_TELOPT_MSSP 70
140 #define TELNET_TELOPT_COMPRESS2 86
141 #define TELNET_TELOPT_ZMP 93
142 #define TELNET_TELOPT_EXOPL 255
144 #define TELNET_TELOPT_MCCP2 86
150 #define TELNET_TTYPE_IS 0
151 #define TELNET_TTYPE_SEND 1
157 #define TELNET_ENVIRON_IS 0
158 #define TELNET_ENVIRON_SEND 1
159 #define TELNET_ENVIRON_INFO 2
160 #define TELNET_ENVIRON_VAR 0
161 #define TELNET_ENVIRON_VALUE 1
162 #define TELNET_ENVIRON_ESC 2
163 #define TELNET_ENVIRON_USERVAR 3
169 #define TELNET_MSSP_VAR 1
170 #define TELNET_MSSP_VAL 2
176 #define TELNET_FLAG_PROXY (1<<0)
178 #define TELNET_PFLAG_DEFLATE (1<<7)
434 const char *buffer,
size_t size);
447 unsigned char telopt);
457 #define telnet_finish_sb(telnet) telnet_iac((telnet), TELNET_SE)
473 const char *buffer,
size_t size);
571 #define telnet_finish_newenviron(telnet) telnet_finish_sb((telnet))
664 #define telnet_finish_zmp(telnet) telnet_finish_sb((telnet))
667 #if defined(__cplusplus)
unsigned char telopt
Definition: libtelnet.h:283
Definition: libtelnet.h:204
Definition: libtelnet.h:242
void telnet_iac(telnet_t *telnet, unsigned char cmd)
Send a telnet command.
enum telnet_event_type_t _type
Definition: libtelnet.h:272
#define TELNET_GNU_PRINTF(f, a)
Definition: libtelnet.h:58
Definition: libtelnet.h:351
Definition: libtelnet.h:201
void telnet_begin_newenviron(telnet_t *telnet, unsigned char type)
Begin a new set of NEW-ENVIRON values to request or send.
enum telnet_event_type_t _type
Definition: libtelnet.h:308
void(* telnet_event_handler_t)(telnet_t *telnet, telnet_event_t *event, void *user_data)
event handler
Definition: libtelnet.h:345
void telnet_send(telnet_t *telnet, const char *buffer, size_t size)
Definition: libtelnet.h:202
const char * buffer
Definition: libtelnet.h:281
Definition: libtelnet.h:205
Definition: libtelnet.h:316
Definition: libtelnet.h:289
enum telnet_event_type_t _type
Definition: libtelnet.h:327
unsigned char telopt
Definition: libtelnet.h:273
Definition: libtelnet.h:186
Definition: libtelnet.h:185
Definition: libtelnet.h:251
Definition: libtelnet.h:219
Definition: libtelnet.h:326
Definition: libtelnet.h:279
enum telnet_event_type_t _type
Definition: libtelnet.h:317
short telopt
Definition: libtelnet.h:352
Definition: libtelnet.h:188
Definition: libtelnet.h:187
int telnet_raw_printf(telnet_t *telnet, const char *fmt,...) TELNET_GNU_PRINTF(2
Send formatted data (no newline escaping).
struct telnet_t telnet_t
Definition: libtelnet.h:63
void telnet_newenviron_value(telnet_t *telnet, unsigned char type, const char *string)
Send a NEW-ENVIRON variable name or value.
Definition: libtelnet.h:211
unsigned char cmd
Definition: libtelnet.h:265
const char * buffer
Definition: libtelnet.h:244
unsigned char type
Definition: libtelnet.h:220
const char * func
Definition: libtelnet.h:254
unsigned char him
Definition: libtelnet.h:354
Definition: libtelnet.h:198
enum telnet_event_type_t _type
Definition: libtelnet.h:252
Definition: libtelnet.h:210
size_t size
Definition: libtelnet.h:245
void telnet_subnegotiation(telnet_t *telnet, unsigned char telopt, const char *buffer, size_t size)
Shortcut for sending a complete subnegotiation buffer.
enum telnet_event_type_t _type
Definition: libtelnet.h:290
void telnet_free(telnet_t *telnet)
Free up any memory allocated by a state tracker.
Definition: libtelnet.h:307
enum telnet_event_type_t _type
Definition: libtelnet.h:243
void telnet_zmp_arg(telnet_t *telnet, const char *arg)
Send a ZMP command argument.
void telnet_ttype_is(telnet_t *telnet, const char *ttype)
Send the TERMINAL-TYPE IS command.
const char * file
Definition: libtelnet.h:253
char * value
Definition: libtelnet.h:222
enum telnet_event_type_t _type
Definition: libtelnet.h:264
Definition: libtelnet.h:206
int telnet_printf(telnet_t *telnet, const char *fmt,...) TELNET_GNU_PRINTF(2
Send formatted data.
Definition: libtelnet.h:298
Definition: libtelnet.h:199
void telnet_begin_zmp(telnet_t *telnet, const char *cmd)
Begin sending a ZMP command.
enum telnet_event_type_t _type
Definition: libtelnet.h:299
const struct telnet_environ_t * values
Definition: libtelnet.h:318
Definition: libtelnet.h:271
Definition: libtelnet.h:190
size_t size
Definition: libtelnet.h:319
void telnet_negotiate(telnet_t *telnet, unsigned char cmd, unsigned char opt)
Send negotiation command.
int int telnet_raw_vprintf(telnet_t *telnet, const char *fmt, va_list va)
Send formatted data (no newline escaping).
void telnet_begin_compress2(telnet_t *telnet)
Begin sending compressed data.
Definition: libtelnet.h:208
void telnet_ttype_send(telnet_t *telnet)
Send the TERMINAL-TYPE SEND command.
Definition: libtelnet.h:263
void telnet_send_vzmpv(telnet_t *telnet, va_list va)
Send a ZMP command.
void telnet_recv(telnet_t *telnet, const char *buffer, size_t size)
Push a byte buffer into the state tracker.
const char ** argv
Definition: libtelnet.h:291
const struct telnet_environ_t * values
Definition: libtelnet.h:328
telnet_event_type_t
Definition: libtelnet.h:197
size_t size
Definition: libtelnet.h:282
Definition: libtelnet.h:212
Definition: libtelnet.h:228
char * var
Definition: libtelnet.h:221
int int telnet_vprintf(telnet_t *telnet, const char *fmt, va_list va)
Send formatted data.
Definition: libtelnet.h:207
Definition: libtelnet.h:200
void telnet_begin_sb(telnet_t *telnet, unsigned char telopt)
Begin a sub-negotiation command.
unsigned char us
Definition: libtelnet.h:353
int line
Definition: libtelnet.h:256
size_t argc
Definition: libtelnet.h:292
const char * msg
Definition: libtelnet.h:255
unsigned char cmd
Definition: libtelnet.h:320
Definition: libtelnet.h:189
enum telnet_event_type_t _type
Definition: libtelnet.h:280
Definition: libtelnet.h:209
void telnet_send_zmp(telnet_t *telnet, size_t argc, const char **argv)
Send a ZMP command.
void telnet_send_zmpv(telnet_t *telnet,...) TELNET_GNU_SENTINEL
Send a ZMP command.
unsigned char cmd
Definition: libtelnet.h:300
Definition: libtelnet.h:203
telnet_error_t errcode
Definition: libtelnet.h:257
enum telnet_event_type_t type
Event type.
Definition: libtelnet.h:237
unsigned char state
Definition: libtelnet.h:309
#define TELNET_GNU_SENTINEL
Definition: libtelnet.h:59
telnet_error_t
Definition: libtelnet.h:184
telnet_t * telnet_init(const telnet_telopt_t *telopts, telnet_event_handler_t eh, unsigned char flags, void *user_data)
Initialize a telnet state tracker.
size_t size
Definition: libtelnet.h:329
const char * name
Definition: libtelnet.h:301