📄 ckccfg.txt
字号:
supported in a future release. It will be needed to allow C-Kermit to be built only as an FTP client.) NO_KERBEROS Means do not compile in any KERBEROS support when CK_AUTHENTICATION has been defined. NO_SRP Do not compile in any SRP support when CK_AUTHENTICATION has been defined. NO_SSL Do not compile in any SSL/TLS support NO_ENCRYPTION Do not compile in any Telnet encryption support. It does not affect the use of SSL/TLS NOSSH Do not compile in any SSH support whether internal or external CK_AUTHENTICATION Telnet AUTHENTICATION support. (Also, required if SSL/TLS support is desired.) On most platforms this does not autodefine any authentication mechanisms such as Kerberos V, Kerberos IV, SRP, ... Those need to be defined separately. CK_KERBEROS Defined automatically when KRB4, KRB5, or KRB524 are defined. Implies that some version of Kerberos is in use. KRB4 Should be defined when Kerberos IV support is desired. KRB5 Should be defined when Kerberos V support is desired. KRB524 Should be defined if both Kerberos V and Kerberos IV are used and the Kerberos IV support is provided by the MIT Kerberos IV compatibility library in the current Kerberos 5 distribution. KRB5_U2U Should be defined if KRB5 is defined and Kerberos 5 User to User mode is desired. HEIMDAL Should be defined if Kerberos V support is provided by HEIMDAL. Support for this option is not complete in C-Kermit 8.0. Anyone interested in working on this should contact kermit-support. CK_SRP Should be defined if SRP support is desired. CK_ENCRYPTION Should be defined if TELNET ENCRYPTION option support is desired. This option does not define any particular encryption types. That should be done by defining CK_DES or CK_CAST. CK_DES Should be defined if either DES or 3DES Telnet Encryption option support is desired. LIBDES If CK_DES is defined and DES support is being provided by either Eric Young's libdes.a or OpenSSL 0.9.6x or earlier, this option must be defined. If it is not defined, it will be assumed that DES support is provided by the MIT Kerberos IV libraries. CK_CAST Should be defined if CAST Telnet Encryption option support is desired CK_SSL Should be defined if SSL/TLS support (OpenSSL) is desired. SSL_KRB5 If KRB5 is defined, and OpenSSL is built to support the Kerberos 5 ciphers, then you should define SSL_KRB5 NOSSLKRB5 If you are using OpenSSL 0.9.7 or higher and do not wish to build with support for Kerberos 5 TLS ciphers, this option must be defined. ZLIB If you are using OpenSSL 0.9.6 or higher and it has been compiled with support for ZLIB compression, this option should be defined to enable Kermit to properly enable the use of compression. SSHCMD Defined for C-Kermit to enable the use of external SSH clients from the Kermit command language SSHBUILTIN Defined for Kermit implementations that have integrated SSH support. Currently only Windows. ANYSSH Defined if either SSHCMD or SSHBUILTIN are defined. CK_SNDLOC Telnet Send Location support. NOSNDLOC Do not include Telnet Send Location support. CK_XDISPLOC Telnet X-Display Location support. Determines if the X-Display location information is sent to the Telnet server either via Telnet XDISPLOC or NEW-ENV options. NOXDISPLOC Do not include Telnet X-Display Location support. CK_FORWARD_X Telnet Forward X Windows Session Data option. Used to protect the privacy and integrity of X Windows Sessions when secure telnet sessions are in use. NOFORWARDX Do not include Telnet Forward X Windows Session Data option. Besides the strong forms of security listed above, C-Kermit also embodies various internal security features, including: NOPUSH Compiling with the NOPUSH symbol defined removes all the "shell escape" features from the program, including the PUSH, RUN, and SPAWN commands, the "!" and "@" command prefixes, OPEN !READ, OPEN !WRITE, job control (including the SUSPEND command), the REDIRECT command, shell/DCL escape from CONNECT mode, as well as the server's execution of REMOTE HOST commands (and, of course, the ENABLE HOST command). Add NODISPO to also prevent acceptance of incoming MAIL or REMOTE PRINT files. For UNIX, also be sure to read [130]Section 11 of the [131]Unix C-Kermit Installation Instructions. about set[ug]id configuration. Additional restrictions can be enforced when in server mode; read about the DISABLE command in the user manual. NOCCTRAP Compiling with NOCCTRAP prevents the trapping of SIGINT by Kermit. Thus if the user generates a SIGINT signal (e.g. by typing the system's interrupt character), Kermit will exit immediately, rather than returning to its prompt. NOPUSH and NOCCTRAP together allow Kermit to be run from restricted shells, preventing access to system functions. [ [132]C-Kermit Home ] [ [133]Kermit Home ] ________________________________________________________________________ 11. ENABLING SELECT() [ [134]Top ] [ [135]Contents ] [ [136]Next ] [ [137]Previous ] Kermit works best if it can do nonblocking reads, nondestructive input buffer checking, and millisecond sleeps. All of these functions can be accomplished by the select() function, which, unfortunately, is not universally available. Furthermore, select() is required if incoming TCP/IP connections are to be supported. select() was introduced with Berkeley UNIX, rejected by AT&T for System V, but is gradually creeping in to all UNIX versions (and other operating systems too) by virtue of its presence in the sockets library, which is needed for TCP/IP. AT&T SVID for System V R4 includes select(), but that does not mean that all SVR4 implementations have it. Furthermore, even when select() is available, it might work only on socket file descriptors, but not on others like serial ports, pipes, etc. For example, in AOS/VS and BeOS, it works only with file descriptors that were created by socket() and opened by connect() or accept(). Other alternatives include poll() and rdchk(). Only one of these three functions should be included. The following symbols govern this: SELECT Use select() (BSD, or systems with sockets libraries) CK_POLL Use poll() (System V) RDCHK Use rdchk() (SCO XENIX and UNIX) If your system supports the select() function, but your version of C-Kermit does not, try adding: -DSELECT to the CFLAGS, and removing -DRDCHK or -DCK_POLL if it is there. If you get compilation errors, some adjustments to ck*tio.c and/or ck*net.c might be needed; search for SELECT (uppercase) in these files (note that there are several variations on the calling conventions for select()). Various macros and data types need to be defined in order to use select(). Usually these are picked up from <types.h> or <sys/types.h>. But on some systems, they are in <sys/select.h>. In that case, add the following: -DSELECT_H to the CFLAGS to tell C-Kermit to #include <sys/select.h>. A good indication that you need to do this would be if you get compile-time complaints about "fd_set" or "FD_SET" not being declared or defined. In UNIX, the use of select() vs fork() in the CONNECT command is independent of the above considerations, and is governed by choosing a particular makefile target. As of C-Kermit 7.0, select() is also the preferred control mechanism for the CONNECT command. Unfortunately, the structures used by the original UNIX CONNECT command, based on fork(), and those used by select(), are so different, it was not practical to implement them both in one module. So the select()-based CONNECT command module for UNIX is [138]ckucns.c, and the fork-based one remains [139]ckucon.c. To choose the fork-based one, which is more portable (but slower and more fragile), use "wermit" as the make target. To choose the select-based one, use "xermit". Only do this if you can verify that the CONNECT command works on serial connections and PIPE connections as well as TCP connections. The select()-based Unix CONNECT module, ckucns.c, must be used if encryption is to be done, since the fork() version (ckucon.c) loses its ability to share vital state information between the two forks. Also note that the select() version is superior in many other ways too. For example, it recovers better from exterior killing, forced disconnections, etc, plus it goes faster. SHOW VERSIONS tells whether the CONNECT module uses fork() or select(). C-Kermit 8.0 adds learned script capability, which depends on select(). All the "wermit" based targets (as opposed to "xermit") had NOLEARN added to them. Whenever changing a target over from wermit to xermit, also remember to remove NOLEARN. [ [140]C-Kermit Home ] [ [141]Kermit Home ] ________________________________________________________________________ 12. I/O REDIRECTION [ [142]Top ] [ [143]Contents ] [ [144]Next ] [ [145]Previous ] The REDIRECT command allows a local program to be run with its i/o redirected over the communications connection. Your version of C-Kermit has a REDIRECT command if it was built with the following CFLAG: -DCK_REDIR This, in turn, is possible only if the underlying API is there. In the case of UNIX this is just the wait() system call, so all UNIX versions get this feature as of 6.0.192 (earlier versions needed a <sys/wait.h> header file defining the symbols WIFEXITED and WEXITSTATUS). As of version 7.0, file transfer can be done using pipes and filters. To enable this feature, #define PIPESEND (and fill in the code). To disable on systems where it is normally enabled, define NOPIPESEND. This feature is, of course, also disabled by building with NOPUSH (or giving the "nopush" command at runtime). C-Kermit 7.0 also adds the PIPE and SET HOST /COMMAND commands, which provide another form of redirection. This feature is selected with -DNETCMD. CK_RDIR must also be defined, since the same mechanisms are used internally. [ [146]C-Kermit Home ] [ [147]Kermit Home ] ________________________________________________________________________ 13. FLOATING-POINT NUMBERS, TIMERS, AND ARITHMETIC [ [148]Top ] [ [149]Contents ] [ [150]Next ] [ [151]Previous ] Floating-point support was added in C-Kermit 7.0. Floating-point numbers are enabled internally, at least for use in high-precision file-transfer timers and statistics, unless the following symbol is defined at compile time: -DNOFLOAT This might be necessary on old PCs that do not have built-in floating-point hardware. When NOFLOAT is not defined, the following symbol tells which floating-point type to use: -DCKFLOAT=xxxx The value is either "double" (normal for 32- and 16-bit architectures) or "float" (normal for 64-bit architectures). C-Kermit can be configured to use high-precision file-transfer timers for more accurate statistics. This feature is enabled with:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -