2009-03-13 03:33:27 +00:00
|
|
|
=====================================================================
|
|
|
|
libtelnet - TELNET protocol handling library
|
|
|
|
=====================================================================
|
|
|
|
|
|
|
|
Sean Middleditch
|
|
|
|
sean@sourcemud.org
|
|
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
The author or authors of this code dedicate any and all copyright
|
|
|
|
interest in this code to the public domain. We make this dedication
|
|
|
|
for the benefit of the public at large and to the detriment of our
|
|
|
|
heirs and successors. We intend this dedication to be an overt act of
|
|
|
|
relinquishment in perpetuity of all present and future rights to this
|
|
|
|
code under copyright law.
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
2009-03-14 09:24:56 +00:00
|
|
|
*** TODO ***
|
|
|
|
|
|
|
|
- RFC 1143 option negotiation algorithm
|
|
|
|
- automatic MCCP2 handling (controllable by host app)
|
|
|
|
- efficient one-byte sub-requests
|
|
|
|
? MCCP1
|
|
|
|
? ZMP parsing
|
|
|
|
? MSSP parsing
|
|
|
|
? ENVIRON/NEW-ENVIRON parsing
|
|
|
|
? telnet-status testing tool
|
|
|
|
? few options to make telnet-proxy even more useful
|
|
|
|
|
2009-03-13 03:33:27 +00:00
|
|
|
I. INTRODUCTION
|
|
|
|
=====================================================================
|
|
|
|
|
|
|
|
libtelnet provides safe and correct handling of the core TELNET
|
|
|
|
protocol. It does not include any "smarts," and all use of the
|
|
|
|
protocol (such as deciding which options to support, enabling
|
|
|
|
and disabling options, or processing subrequests) must be implemented
|
|
|
|
by the application author.
|
|
|
|
|
|
|
|
II. LIBTELNET API
|
|
|
|
=====================================================================
|
|
|
|
|
|
|
|
FIXME: fill in notes about user-facing API
|
|
|
|
|
|
|
|
III. INTEGRATING LIBTELNET
|
|
|
|
=====================================================================
|
|
|
|
|
|
|
|
FIXME: fill in notes about implementing the libtelnet_*_cb functions
|
|
|
|
|
|
|
|
IV. OUTPUT PROCESSING
|
|
|
|
=====================================================================
|
|
|
|
|
|
|
|
FIXME: fill in notes about output buffering recommendations
|
|
|
|
|
|
|
|
V. SAFETY AND CORRECTNESS CONSIDERATIONS
|
|
|
|
=====================================================================
|
|
|
|
|
|
|
|
FIXME: fill in notes about recommending the user of libtelnet over
|
|
|
|
all output functions for ensuring safety
|